[*] Binary protection state of metadatad

  
  	Full RELRO     Canary found      NX disabled  PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function printf tear down of metadatad

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/metadatad @ 0x7a78 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00007a78 ()              | void fcn_00007a78 () {
                                         | label_1:
    0x00007a78 lui gp, 2                 |     
    0x00007a7c addiu gp, gp, -0x3a68     |     
    0x00007a80 addu gp, gp, t9           |     gp += t9;
    0x00007a84 addiu sp, sp, -0x48       |     
    0x00007a88 lw t9, -0x7e08(gp)        |     t9 = sym.imp.strlen;
    0x00007a8c sw s1, 0x34(sp)           |     *(var_34h) = s1;
    0x00007a90 lw s1, -0x7e34(gp)        |     s1 = *((gp - 8077));
    0x00007a94 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00007a98 sw ra, 0x44(sp)           |     *(var_44h) = ra;
    0x00007a9c sw s4, 0x40(sp)           |     *(var_40h) = s4;
    0x00007aa0 sw s3, 0x3c(sp)           |     *(var_3ch) = s3;
    0x00007aa4 sw s2, 0x38(sp)           |     *(var_38h) = s2;
    0x00007aa8 sw s0, 0x30(sp)           |     *(var_30h) = s0;
    0x00007aac lw v0, (s1)               |     v0 = *(s1);
    0x00007ab0 move s3, a0               |     s3 = a0;
    0x00007ab4 sw v0, 0x2c(sp)           |     *(var_2ch) = v0;
    0x00007ab8 move a0, a1               |     a0 = a1;
    0x00007abc sw zero, 0x28(sp)         |     *(var_28h) = 0;
    0x00007ac0 move s0, a1               |     s0 = a1;
    0x00007ac4 jalr t9                   |     t9 ();
    0x00007ac8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00007acc addiu s4, sp, 0x28        |     s4 = sp + 0x28;
    0x00007ad0 sw s4, 0x10(sp)           |     *(var_10h) = s4;
    0x00007ad4 lw t9, -0x7dc4(gp)        |     t9 = sym.imp.g_io_channel_write_chars;
    0x00007ad8 addiu a3, sp, 0x24        |     a3 = sp + 0x24;
    0x00007adc addiu a2, v0, 1           |     a2 = v0 + 1;
    0x00007ae0 move a1, s0               |     a1 = s0;
    0x00007ae4 move a0, s3               |     a0 = s3;
    0x00007ae8 jalr t9                   |     t9 ();
    0x00007aec move s2, v0               |     s2 = v0;
    0x00007af0 addiu v0, zero, 1         |     v0 = 1;
    0x00007af4 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (s2 != v0) {
    0x00007af8 bne s2, v0, 0x7b8c        |         goto label_9;
                                         |     }
    0x00007afc lw t9, -0x7e08(gp)        |     t9 = sym.imp.strlen;
    0x00007b00 move a0, s0               |     a0 = s0;
    0x00007b04 jalr t9                   |     t9 ();
    0x00007b08 lw v1, 0x24(sp)           |     v1 = *(var_24h);
    0x00007b0c addiu v0, v0, 1           |     v0++;
    0x00007b10 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != v1) {
    0x00007b14 beq v0, v1, 0x7b44        |         
    0x00007b18 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x00007b1c lw a3, -0x7fdc(gp)        |         a3 = *((gp - 8183));
    0x00007b20 lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
    0x00007b24 addiu v0, v0, -0x51c8     |         v0 += -0x51c8;
    0x00007b28 lw t9, -0x7da8(gp)        |         t9 = sym.imp.g_assertion_message_expr;
    0x00007b2c sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00007b30 addiu a3, a3, -0x4d90     |         a3 += -0x4d90;
    0x00007b34 addiu a2, zero, 0x144     |         a2 = 0x144;
    0x00007b38 addiu a1, a1, -0x51ec     |         a1 += -0x51ec;
    0x00007b3c move a0, zero             |         a0 = 0;
    0x00007b40 jalr t9                   |         t9 ();
                                         |     }
    0x00007b44 lw t9, -0x7ee0(gp)        |     t9 = sym.imp.g_io_channel_flush;
    0x00007b48 move a1, s4               |     a1 = s4;
    0x00007b4c move a0, s3               |     a0 = s3;
    0x00007b50 jalr t9                   |     t9 ();
    0x00007b54 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != s2) {
    0x00007b58 bne v0, s2, 0x7ba4        |         goto label_10;
                                         |     }
    0x00007b5c addiu v0, zero, 1         |     v0 = 1;
                                         |     do {
                                         | label_0:
    0x00007b60 lw a0, 0x2c(sp)           |         a0 = *(var_2ch);
    0x00007b64 lw v1, (s1)               |         v1 = *(s1);
    0x00007b68 lw ra, 0x44(sp)           |         ra = *(var_44h);
                                         |         if (a0 != v1) {
    0x00007b6c bne a0, v1, 0x7bbc        |             goto label_11;
                                         |         }
    0x00007b70 lw s4, 0x40(sp)           |         s4 = *(var_40h);
    0x00007b74 lw s3, 0x3c(sp)           |         s3 = *(var_3ch);
    0x00007b78 lw s2, 0x38(sp)           |         s2 = *(var_38h);
    0x00007b7c lw s1, 0x34(sp)           |         s1 = *(var_34h);
    0x00007b80 lw s0, 0x30(sp)           |         s0 = *(var_30h);
    0x00007b84 addiu sp, sp, 0x48        |         
    0x00007b88 jr ra                     |         return v0;
                                         | label_9:
    0x00007b8c lw t9, -0x7efc(gp)        |         t9 = sym.imp.g_error_free;
    0x00007b90 lw a0, 0x28(sp)           |         a0 = *(var_28h);
    0x00007b94 jalr t9                   |         t9 ();
    0x00007b98 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00007b9c move v0, zero             |         v0 = 0;
    0x00007ba0 b 0x7b60                  |         
                                         |     } while (1);
                                         | label_10:
    0x00007ba4 lw t9, -0x7efc(gp)        |     t9 = sym.imp.g_error_free;
    0x00007ba8 lw a0, 0x28(sp)           |     a0 = *(var_28h);
    0x00007bac jalr t9                   |     t9 ();
    0x00007bb0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00007bb4 move v0, zero             |     v0 = 0;
    0x00007bb8 b 0x7b60                  |     goto label_0;
                                         | label_11:
    0x00007bbc lw t9, -0x7e98(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00007bc0 jalr t9                   |     t9 ();
    0x00007bc4 nop                       |     
    0x00007bc8 lui gp, 2                 |     
    0x00007bcc addiu gp, gp, -0x3bb8     |     
    0x00007bd0 addu gp, gp, t9           |     gp += t9;
    0x00007bd4 addiu sp, sp, -0x70       |     
    0x00007bd8 lw t9, -0x7d08(gp)        |     t9 = sym.imp.g_io_channel_unix_new;
    0x00007bdc sw gp, 0x18(sp)           |     *(var_18h_2) = gp;
    0x00007be0 sw ra, 0x6c(sp)           |     *(var_6ch) = ra;
    0x00007be4 sw s4, 0x58(sp)           |     *(var_58h) = s4;
    0x00007be8 sw s1, 0x4c(sp)           |     *(var_4ch) = s1;
    0x00007bec sw s0, 0x48(sp)           |     *(var_48h) = s0;
    0x00007bf0 sw fp, 0x68(sp)           |     *(var_68h) = fp;
    0x00007bf4 sw s7, 0x64(sp)           |     *(var_64h) = s7;
    0x00007bf8 sw s6, 0x60(sp)           |     *(var_60h) = s6;
    0x00007bfc sw s5, 0x5c(sp)           |     *(var_5ch) = s5;
    0x00007c00 sw s3, 0x54(sp)           |     *(var_54h) = s3;
    0x00007c04 sw s2, 0x50(sp)           |     *(var_50h) = s2;
    0x00007c08 lw s4, -0x7e34(gp)        |     s4 = *((gp - 8077));
    0x00007c0c lw v0, 0xc(a1)            |     v0 = *((a1 + 3));
    0x00007c10 sw zero, 0x34(sp)         |     *(var_34h_2) = 0;
    0x00007c14 sw v0, 0x2c(sp)           |     *(var_2ch_2) = v0;
    0x00007c18 lw v0, (s4)               |     v0 = *(s4);
    0x00007c1c sw zero, 0x3c(sp)         |     *(var_3ch_2) = 0;
    0x00007c20 sw v0, 0x44(sp)           |     *(var_44h_2) = v0;
    0x00007c24 jalr t9                   |     t9 ();
    0x00007c28 nop                       |     
    0x00007c2c lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00007c30 move a2, zero             |     a2 = 0;
    0x00007c34 move a1, zero             |     a1 = 0;
    0x00007c38 lw t9, -0x7cf0(gp)        |     t9 = sym.imp.g_io_channel_set_encoding;
    0x00007c3c move a0, v0               |     a0 = v0;
    0x00007c40 move s1, v0               |     s1 = v0;
    0x00007c44 jalr t9                   |     t9 ();
    0x00007c48 move s0, v0               |     s0 = v0;
    0x00007c4c addiu v0, zero, 1         |     v0 = 1;
    0x00007c50 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
                                         |     if (s0 == v0) {
    0x00007c54 beq s0, v0, 0x7d04        |         goto label_12;
                                         |     }
    0x00007c58 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00007c5c lw t9, -0x7d2c(gp)        |     t9 = sym.imp.g_strdup;
    0x00007c60 addiu a0, a0, -0x51a4     |     a0 += -0x51a4;
                                         | label_8:
    0x00007c64 jalr t9                   |     t9 ();
    0x00007c68 nop                       |     
    0x00007c6c lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00007c70 move s0, v0               |     s0 = v0;
    0x00007c74 move a1, v0               |     a1 = v0;
    0x00007c78 move a0, s1               |     a0 = s1;
                                         |     do {
                                         | label_2:
    0x00007c7c lw t9, -0x7fd0(gp)        |         t9 = *((gp - 8180));
    0x00007c80 addiu t9, t9, 0x7a78      |         t9 += fcn.00007a78;
    0x00007c84 bal 0x7a78                |         fcn_00007a78 ();
                                         |         goto label_1;
    0x00007c88 nop                       |         
    0x00007c8c lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00007c90 move a0, s0               |         a0 = s0;
    0x00007c94 lw t9, -0x7cb8(gp)        |         t9 = *((gp - 7982));
                                         | label_5:
    0x00007c98 jalr t9                   |         t9 ();
    0x00007c9c nop                       |         
    0x00007ca0 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00007ca4 addiu a1, zero, 1         |         a1 = 1;
    0x00007ca8 lw t9, -0x7f08(gp)        |         t9 = sym.imp.g_io_channel_set_close_on_unref;
    0x00007cac move a0, s1               |         a0 = s1;
    0x00007cb0 jalr t9                   |         t9 ();
    0x00007cb4 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
                                         | label_6:
    0x00007cb8 lw t9, -0x7edc(gp)        |         t9 = sym.imp.g_io_channel_unref;
    0x00007cbc move a0, s1               |         a0 = s1;
    0x00007cc0 jalr t9                   |         t9 ();
    0x00007cc4 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
                                         | label_7:
    0x00007cc8 lw v1, 0x44(sp)           |         v1 = *(var_44h_2);
    0x00007ccc lw v0, (s4)               |         v0 = *(s4);
    0x00007cd0 lw ra, 0x6c(sp)           |         ra = *(var_6ch);
                                         |         if (v1 != v0) {
    0x00007cd4 bne v1, v0, 0x81e8        |             goto label_13;
                                         |         }
    0x00007cd8 lw fp, 0x68(sp)           |         fp = *(var_68h);
    0x00007cdc lw s7, 0x64(sp)           |         s7 = *(var_64h);
    0x00007ce0 lw s6, 0x60(sp)           |         s6 = *(var_60h);
    0x00007ce4 lw s5, 0x5c(sp)           |         s5 = *(var_5ch);
    0x00007ce8 lw s4, 0x58(sp)           |         s4 = *(var_58h);
    0x00007cec lw s3, 0x54(sp)           |         s3 = *(var_54h);
    0x00007cf0 lw s2, 0x50(sp)           |         s2 = *(var_50h);
    0x00007cf4 lw s1, 0x4c(sp)           |         s1 = *(var_4ch);
    0x00007cf8 lw s0, 0x48(sp)           |         s0 = *(var_48h);
    0x00007cfc addiu sp, sp, 0x70        |         
    0x00007d00 jr ra                     |         return v0;
                                         | label_12:
    0x00007d04 lw t9, -0x7d94(gp)        |         t9 = sym.imp.g_io_channel_read_line;
    0x00007d08 addiu s6, sp, 0x38        |         s6 = sp + 0x38;
    0x00007d0c addiu s5, sp, 0x34        |         s5 = sp + 0x34;
    0x00007d10 addiu s2, sp, 0x3c        |         s2 = sp + 0x3c;
    0x00007d14 sw s2, 0x10(sp)           |         *(var_10h_2) = s2;
    0x00007d18 move a3, zero             |         a3 = 0;
    0x00007d1c move a2, s6               |         a2 = s6;
    0x00007d20 move a1, s5               |         a1 = s5;
    0x00007d24 move a0, s1               |         a0 = s1;
    0x00007d28 jalr t9                   |         t9 ();
    0x00007d2c lw gp, 0x18(sp)           |         gp = *(var_18h_2);
                                         |         if (v0 == s0) {
    0x00007d30 beq v0, s0, 0x7d78        |             goto label_14;
                                         |         }
    0x00007d34 lw v0, 0x3c(sp)           |         v0 = *(var_3ch_2);
                                         |         if (v0 == 0) {
    0x00007d38 beql v0, zero, 0x7fc4     |             goto label_15;
                                         |         }
    0x00007d3c lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
    0x00007d40 lw a1, 8(v0)              |         a1 = *((v0 + 2));
                                         | label_4:
    0x00007d44 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x00007d48 lw t9, -0x7dc8(gp)        |         t9 = sym.imp.g_strdup_printf
    0x00007d4c addiu a0, a0, -0x516c     |         a0 += -0x516c;
    0x00007d50 jalr t9                   |         t9 ();
    0x00007d54 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00007d58 move a0, s2               |         a0 = s2;
    0x00007d5c lw t9, -0x7d30(gp)        |         t9 = sym.imp.g_clear_error;
    0x00007d60 move s0, v0               |         s0 = v0;
    0x00007d64 jalr t9                   |         t9 ();
    0x00007d68 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00007d6c move a1, s0               |         a1 = s0;
    0x00007d70 move a0, s1               |         a0 = s1;
    0x00007d74 b 0x7c7c                  |         
                                         |     } while (1);
                                         | label_14:
    0x00007d78 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00007d7c lw t9, -0x7d28(gp)        |     t9 = sym.imp.g_strcmp0;
    0x00007d80 lw a0, 0x34(sp)           |     a0 = *(var_34h_2);
    0x00007d84 addiu a1, a1, -0x5174     |     a1 += -0x5174;
    0x00007d88 jalr t9                   |     t9 ();
    0x00007d8c lw gp, 0x18(sp)           |     gp = *(var_18h_2);
                                         |     if (v0 != 0) {
    0x00007d90 bnez v0, 0x7f88           |         goto label_16;
                                         |     }
    0x00007d94 lw t9, -0x7cb8(gp)        |     t9 = *((gp - 7982));
    0x00007d98 lw a0, 0x34(sp)           |     a0 = *(var_34h_2);
    0x00007d9c addiu fp, sp, 0x40        |     fp = sp + 0x40;
    0x00007da0 jalr t9                   |     t9 ();
    0x00007da4 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00007da8 lw a3, -0x7cb8(gp)        |     a3 = *((gp - 7982));
    0x00007dac lw t9, -0x7df0(gp)        |     t9 = sym.imp.g_hash_table_new_full;
    0x00007db0 lw a1, -0x7f44(gp)        |     a1 = *((gp - 8145));
    0x00007db4 lw a0, -0x7cfc(gp)        |     a0 = *((gp - 7999));
    0x00007db8 move a2, a3               |     a2 = a3;
    0x00007dbc jalr t9                   |     t9 ();
    0x00007dc0 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00007dc4 move s3, v0               |     s3 = v0;
    0x00007dc8 lw s7, -0x7fdc(gp)        |     s7 = *((gp - 8183));
    0x00007dcc addiu v0, s7, -0x654c     |     v0 = s7 + -0x654c;
    0x00007dd0 sw v0, 0x24(sp)           |     *(var_24h_2) = v0;
    0x00007dd4 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00007dd8 addiu v0, v0, -0x50e4     |     v0 += -0x50e4;
    0x00007ddc sw v0, 0x28(sp)           |     *(var_28h_2) = v0;
                                         | label_3:
    0x00007de0 lw t9, -0x7d94(gp)        |     t9 = sym.imp.g_io_channel_read_line;
    0x00007de4 sw s2, 0x10(sp)           |     *(var_10h_2) = s2;
    0x00007de8 move a3, fp               |     a3 = fp;
    0x00007dec move a2, s6               |     a2 = s6;
    0x00007df0 move a1, s5               |     a1 = s5;
    0x00007df4 move a0, s1               |     a0 = s1;
    0x00007df8 jalr t9                   |     t9 ();
    0x00007dfc addiu v1, zero, 1         |     v1 = 1;
    0x00007e00 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
                                         |     if (v0 == v1) {
    0x00007e04 beq v0, v1, 0x7e54        |         goto label_17;
                                         |     }
    0x00007e08 lw v0, 0x3c(sp)           |     v0 = *(var_3ch_2);
    0x00007e0c lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00007e10 lw t9, -0x7dc8(gp)        |     t9 = sym.imp.g_strdup_printf
    0x00007e14 lw a1, 8(v0)              |     a1 = *((v0 + 2));
    0x00007e18 addiu a0, a0, -0x5118     |     a0 += -0x5118;
    0x00007e1c jalr t9                   |     t9 ();
    0x00007e20 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00007e24 move a0, s2               |     a0 = s2;
    0x00007e28 lw t9, -0x7d30(gp)        |     t9 = sym.imp.g_clear_error;
                                         |     do {
    0x00007e2c move s0, v0               |         s0 = v0;
    0x00007e30 jalr t9                   |         t9 ();
    0x00007e34 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00007e38 lw t9, -0x7ef8(gp)        |         t9 = sym.imp.g_hash_table_unref;
    0x00007e3c move a0, s3               |         a0 = s3;
    0x00007e40 jalr t9                   |         t9 ();
    0x00007e44 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00007e48 move a1, s0               |         a1 = s0;
    0x00007e4c move a0, s1               |         a0 = s1;
    0x00007e50 b 0x7c7c                  |         goto label_2;
                                         | label_17:
    0x00007e54 lw t9, -0x7d28(gp)        |         t9 = sym.imp.g_strcmp0;
    0x00007e58 lw a0, 0x34(sp)           |         a0 = *(var_34h_2);
    0x00007e5c lw a1, 0x24(sp)           |         a1 = *(var_24h_2);
    0x00007e60 jalr t9                   |         t9 ();
    0x00007e64 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
                                         |         if (v0 == 0) {
    0x00007e68 beqz v0, 0x7fcc           |             goto label_18;
                                         |         }
    0x00007e6c lw v1, 0x40(sp)           |         v1 = *(var_40h_2);
    0x00007e70 lw v0, 0x34(sp)           |         v0 = *(var_34h_2);
    0x00007e74 lw t9, -0x7d2c(gp)        |         t9 = sym.imp.g_strdup;
    0x00007e78 addu v0, v0, v1           |         v0 += v1;
    0x00007e7c sb zero, (v0)             |         *(v0) = 0;
    0x00007e80 lw a0, 0x34(sp)           |         a0 = *(var_34h_2);
    0x00007e84 jalr t9                   |         t9 ();
    0x00007e88 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00007e8c move a0, v0               |         a0 = v0;
    0x00007e90 lw t9, -0x7e5c(gp)        |         t9 = sym.imp.g_strchomp;
    0x00007e94 move s7, v0               |         s7 = v0;
    0x00007e98 jalr t9                   |         t9 ();
    0x00007e9c lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00007ea0 lw a1, 0x28(sp)           |         a1 = *(var_28h_2);
    0x00007ea4 move a0, v0               |         a0 = v0;
    0x00007ea8 lw t9, -0x7eb0(gp)        |         t9 = sym.imp.g_strsplit;
    0x00007eac addiu a2, zero, 2         |         a2 = 2;
    0x00007eb0 jalr t9                   |         t9 ();
    0x00007eb4 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00007eb8 move s0, v0               |         s0 = v0;
    0x00007ebc move a0, s7               |         a0 = s7;
    0x00007ec0 lw t9, -0x7cb8(gp)        |         t9 = *((gp - 7982));
                                         |         if (v0 != 0) {
    0x00007ec4 beqz v0, 0x7ef4           |             
    0x00007ec8 jalr t9                   |             t9 ();
    0x00007ecc nop                       |             
    0x00007ed0 lw gp, 0x18(sp)           |             gp = *(var_18h_2);
    0x00007ed4 lw t9, -0x7d98(gp)        |             t9 = sym.imp.g_strv_length;
    0x00007ed8 move a0, s0               |             a0 = s0;
    0x00007edc jalr t9                   |             t9 ();
    0x00007ee0 addiu v1, zero, 2         |             v1 = 2;
    0x00007ee4 lw gp, 0x18(sp)           |             gp = *(var_18h_2);
                                         |             if (v0 == v1) {
    0x00007ee8 beq v0, v1, 0x7f24        |                 goto label_19;
                                         |             }
    0x00007eec lw t9, -0x7f00(gp)        |             t9 = sym.imp.g_strfreev;
    0x00007ef0 move a0, s0               |             a0 = s0;
                                         |         }
    0x00007ef4 jalr t9                   |         t9 ();
    0x00007ef8 nop                       |         
    0x00007efc lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00007f00 lw a1, 0x34(sp)           |         a1 = *(var_34h_2);
    0x00007f04 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x00007f08 lw t9, -0x7dc8(gp)        |         t9 = sym.imp.g_strdup_printf
    0x00007f0c addiu a0, a0, -0x50e0     |         a0 += -0x50e0;
    0x00007f10 jalr t9                   |         t9 ();
    0x00007f14 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00007f18 lw a0, 0x34(sp)           |         a0 = *(var_34h_2);
    0x00007f1c lw t9, -0x7cb8(gp)        |         t9 = *((gp - 7982));
    0x00007f20 b 0x7e2c                  |         
                                         |     } while (1);
                                         | label_19:
    0x00007f24 lw t9, -0x7d2c(gp)        |     t9 = sym.imp.g_strdup;
    0x00007f28 lw a0, (s0)               |     a0 = *(s0);
    0x00007f2c jalr t9                   |     t9 ();
    0x00007f30 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00007f34 lw a0, 4(s0)              |     a0 = *((s0 + 1));
    0x00007f38 lw t9, -0x7d2c(gp)        |     t9 = sym.imp.g_strdup;
    0x00007f3c move s7, v0               |     s7 = v0;
    0x00007f40 jalr t9                   |     t9 ();
    0x00007f44 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00007f48 move a0, s0               |     a0 = s0;
    0x00007f4c lw t9, -0x7f00(gp)        |     t9 = sym.imp.g_strfreev;
    0x00007f50 move s0, v0               |     s0 = v0;
    0x00007f54 jalr t9                   |     t9 ();
    0x00007f58 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00007f5c lw t9, -0x7cb8(gp)        |     t9 = *((gp - 7982));
    0x00007f60 lw a0, 0x34(sp)           |     a0 = *(var_34h_2);
    0x00007f64 jalr t9                   |     t9 ();
    0x00007f68 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00007f6c move a2, s0               |     a2 = s0;
    0x00007f70 move a1, s7               |     a1 = s7;
    0x00007f74 lw t9, -0x7d38(gp)        |     t9 = sym.imp.g_hash_table_insert;
    0x00007f78 move a0, s3               |     a0 = s3;
    0x00007f7c jalr t9                   |     t9 ();
    0x00007f80 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00007f84 b 0x7de0                  |     goto label_3;
                                         | label_16:
    0x00007f88 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00007f8c lw t9, -0x7dc8(gp)        |     t9 = sym.imp.g_strdup_printf
    0x00007f90 lw a1, 0x34(sp)           |     a1 = *(var_34h_2);
    0x00007f94 lw a2, 0x38(sp)           |     a2 = *(var_38h_2);
    0x00007f98 addiu a0, a0, -0x5138     |     a0 += -0x5138;
    0x00007f9c jalr t9                   |     t9 ();
    0x00007fa0 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00007fa4 lw a0, 0x34(sp)           |     a0 = *(var_34h_2);
    0x00007fa8 lw t9, -0x7cb8(gp)        |     t9 = *((gp - 7982));
    0x00007fac move s0, v0               |     s0 = v0;
    0x00007fb0 jalr t9                   |     t9 ();
    0x00007fb4 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00007fb8 move a1, s0               |     a1 = s0;
    0x00007fbc move a0, s1               |     a0 = s1;
    0x00007fc0 b 0x7c7c                  |     goto label_2;
                                         | label_15:
    0x00007fc4 addiu a1, a1, -0x5d9c     |     a1 += -0x5d9c;
    0x00007fc8 b 0x7d44                  |     goto label_4;
                                         | label_18:
    0x00007fcc lw t9, -0x7cb8(gp)        |     t9 = *((gp - 7982));
    0x00007fd0 lw a0, 0x34(sp)           |     a0 = *(var_34h_2);
    0x00007fd4 move s5, zero             |     s5 = 0;
    0x00007fd8 jalr t9                   |     t9 ();
    0x00007fdc lw v0, 0x2c(sp)           |     v0 = *(var_2ch_2);
    0x00007fe0 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00007fe4 sw zero, 0x34(sp)         |     *(var_34h_2) = 0;
    0x00007fe8 lw s0, 0x10(v0)           |     s0 = *((v0 + 4));
    0x00007fec lw t9, -0x7fa0(gp)        |     t9 = sym.source_factory_get_type;
                                         |     if (s0 == 0) {
    0x00007ff0 bnel s0, zero, 0x8024     |         goto label_20;
                                         |     }
    0x00007ff4 lw t9, -0x7ef8(gp)        |     t9 = sym.imp.g_hash_table_unref;
    0x00007ff8 b 0x81bc                  |     goto label_21;
                                         |     do {
    0x00007ffc lw t9, -0x7e70(gp)        |         t9 = sym.imp.g_list_append;
                                         |         if (v0 != 0) {
    0x00008000 beqz v0, 0x8018           |             
    0x00008004 move a0, s5               |             a0 = s5;
    0x00008008 move a1, v0               |             a1 = v0;
    0x0000800c jalr t9                   |             t9 ();
    0x00008010 lw gp, 0x18(sp)           |             gp = *(var_18h_2);
    0x00008014 move s5, v0               |             s5 = v0;
                                         |         }
    0x00008018 lw s0, 4(s0)              |         s0 = *((s0 + 1));
    0x0000801c lw t9, -0x7fa0(gp)        |         t9 = sym.source_factory_get_type;
                                         |         if (s0 == 0) {
    0x00008020 beqz s0, 0x80c4           |             goto label_22;
                                         |         }
                                         | label_20:
    0x00008024 lw s6, (s0)               |         s6 = *(s0);
    0x00008028 bal 0x8ca8                |         sym_source_factory_get_type ();
    0x0000802c lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00008030 move a1, v0               |         a1 = v0;
    0x00008034 lw t9, -0x7e90(gp)        |         t9 = sym.imp.g_type_check_instance_cast;
    0x00008038 move a0, s6               |         a0 = s6;
    0x0000803c jalr t9                   |         t9 ();
    0x00008040 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00008044 move a2, s2               |         a2 = s2;
    0x00008048 move a1, s3               |         a1 = s3;
    0x0000804c lw t9, -0x7f78(gp)        |         t9 = sym.source_factory_create_source;
    0x00008050 move a0, v0               |         a0 = v0;
    0x00008054 bal 0x8da4                |         sym_source_factory_create_source ();
    0x00008058 lw v1, 0x3c(sp)           |         v1 = *(var_3ch_2);
    0x0000805c lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00008060 beqz v1, 0x7ffc           |         
                                         |     } while (v1 == 0);
    0x00008064 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00008068 lw a1, 8(v1)              |     a1 = *((v1 + 2));
    0x0000806c lw t9, -0x7dc8(gp)        |     t9 = sym.imp.g_strdup_printf
    0x00008070 addiu a0, a0, -0x50b8     |     a0 += -0x50b8;
    0x00008074 jalr t9                   |     t9 ();
    0x00008078 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x0000807c move a0, s2               |     a0 = s2;
    0x00008080 lw t9, -0x7d30(gp)        |     t9 = sym.imp.g_clear_error;
    0x00008084 move s0, v0               |     s0 = v0;
    0x00008088 jalr t9                   |     t9 ();
    0x0000808c lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00008090 move a1, s0               |     a1 = s0;
    0x00008094 lw t9, -0x7fd0(gp)        |     t9 = *((gp - 8180));
    0x00008098 addiu t9, t9, 0x7a78      |     t9 += fcn.00007a78;
    0x0000809c move a0, s1               |     a0 = s1;
    0x000080a0 bal 0x7a78                |     fcn_00007a78 ();
                                         |     goto label_1;
    0x000080a4 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x000080a8 lw t9, -0x7cb8(gp)        |     t9 = *((gp - 7982));
    0x000080ac move a0, s0               |     a0 = s0;
    0x000080b0 jalr t9                   |     t9 ();
    0x000080b4 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x000080b8 move a0, s3               |     a0 = s3;
    0x000080bc lw t9, -0x7ef8(gp)        |     t9 = sym.imp.g_hash_table_unref;
    0x000080c0 b 0x7c98                  |     goto label_5;
                                         | label_22:
    0x000080c4 lw t9, -0x7ef8(gp)        |     t9 = sym.imp.g_hash_table_unref;
    0x000080c8 move a0, s3               |     a0 = s3;
    0x000080cc jalr t9                   |     t9 ();
    0x000080d0 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
                                         |     if (s5 != 0) {
    0x000080d4 beqz s5, 0x81c8           |         
    0x000080d8 lw t9, -0x7e14(gp)        |         t9 = sym.imp.g_io_channel_unix_get_fd;
    0x000080dc move a0, s1               |         a0 = s1;
    0x000080e0 jalr t9                   |         t9 ();
    0x000080e4 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x000080e8 move a1, v0               |         a1 = v0;
    0x000080ec lw t9, -0x7f74(gp)        |         t9 = sym.connection_manager_new;
    0x000080f0 move a0, s5               |         a0 = s5;
    0x000080f4 bal 0x4130                |         sym_connection_manager_new ();
    0x000080f8 move s0, v0               |         s0 = v0;
    0x000080fc lw gp, 0x18(sp)           |         gp = *(var_18h_2);
                                         |         if (v0 == 0) {
    0x00008100 beqz v0, 0x81d8           |             goto label_23;
                                         |         }
    0x00008104 lw t9, -0x7f70(gp)        |         t9 = sym.connection_manager_prepare;
    0x00008108 move a0, v0               |         a0 = v0;
    0x0000810c bal 0x4210                |         sym_connection_manager_prepare ();
    0x00008110 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
                                         |         if (v0 != 0) {
    0x00008114 beqz v0, 0x8158           |             
    0x00008118 lw a1, -0x7fdc(gp)        |             a1 = *((gp - 8183));
    0x0000811c lw t9, -0x7fd0(gp)        |             t9 = *((gp - 8180));
    0x00008120 addiu a1, a1, -0x4ff4     |             a1 += -0x4ff4;
    0x00008124 addiu t9, t9, 0x7a78      |             t9 += fcn.00007a78;
    0x00008128 move a0, s1               |             a0 = s1;
    0x0000812c bal 0x7a78                |             fcn_00007a78 ();
                                         |             goto label_1;
    0x00008130 lw gp, 0x18(sp)           |             gp = *(var_18h_2);
    0x00008134 lw t9, -0x7f6c(gp)        |             t9 = sym.connection_manager_start;
    0x00008138 move a0, s0               |             a0 = s0;
    0x0000813c bal 0x4aac                |             sym_connection_manager_start ();
    0x00008140 lw gp, 0x18(sp)           |             gp = *(var_18h_2);
    0x00008144 lw t9, -0x7d24(gp)        |             t9 = *((gp - 8009));
    0x00008148 move a0, s0               |             a0 = s0;
    0x0000814c jalr t9                   |             t9 ();
    0x00008150 lw gp, 0x18(sp)           |             gp = *(var_18h_2);
    0x00008154 b 0x7cb8                  |             goto label_6;
                                         |         }
    0x00008158 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x0000815c lw t9, -0x7dc8(gp)        |         t9 = sym.imp.g_strdup_printf
    0x00008160 addiu a0, a0, -0x502c     |         a0 += -0x502c;
    0x00008164 jalr t9                   |         t9 ();
    0x00008168 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x0000816c move a1, v0               |         a1 = v0;
    0x00008170 move a0, s1               |         a0 = s1;
    0x00008174 lw t9, -0x7fd0(gp)        |         t9 = *((gp - 8180));
    0x00008178 addiu t9, t9, 0x7a78      |         t9 += fcn.00007a78;
    0x0000817c move s2, v0               |         s2 = v0;
    0x00008180 bal 0x7a78                |         fcn_00007a78 ();
                                         |         goto label_1;
    0x00008184 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00008188 lw t9, -0x7cb8(gp)        |         t9 = *((gp - 7982));
    0x0000818c move a0, s2               |         a0 = s2;
    0x00008190 jalr t9                   |         t9 ();
    0x00008194 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00008198 lw t9, -0x7edc(gp)        |         t9 = sym.imp.g_io_channel_unref;
    0x0000819c move a0, s1               |         a0 = s1;
    0x000081a0 jalr t9                   |         t9 ();
    0x000081a4 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x000081a8 lw t9, -0x7d24(gp)        |         t9 = *((gp - 8009));
    0x000081ac move a0, s0               |         a0 = s0;
    0x000081b0 jalr t9                   |         t9 ();
    0x000081b4 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x000081b8 b 0x7cc8                  |         goto label_7;
                                         | label_21:
    0x000081bc move a0, s3               |         a0 = s3;
    0x000081c0 jalr t9                   |         t9 ();
    0x000081c4 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
                                         |     }
    0x000081c8 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x000081cc lw t9, -0x7dc8(gp)        |     t9 = sym.imp.g_strdup_printf
    0x000081d0 addiu a0, a0, -0x5094     |     a0 += -0x5094;
    0x000081d4 b 0x7c64                  |     goto label_8;
                                         | label_23:
    0x000081d8 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x000081dc lw t9, -0x7dc8(gp)        |     t9 = sym.imp.g_strdup_printf
    0x000081e0 addiu a0, a0, -0x5064     |     a0 += -0x5064;
    0x000081e4 b 0x7c64                  |     goto label_8;
                                         | label_13:
    0x000081e8 lw t9, -0x7e98(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x000081ec jalr t9                   |     t9 ();
    0x000081f0 nop                       |     
                                         | }

[*] Function printf used 9 times metadatad