[*] Binary protection state of overlayimage.cgi

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


[*] Function printf tear down of overlayimage.cgi

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/overlayimage.cgi @ 0x39cc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.backend_delete_image ()      | void backend_delete_image () {
    0x000039cc lui gp, 2                     |     
    0x000039d0 addiu gp, gp, -0x49bc         |     
    0x000039d4 addu gp, gp, t9               |     gp += t9;
    0x000039d8 lw v0, -0x7efc(gp)            |     v0 = *((gp - 8127));
    0x000039dc addiu sp, sp, -0x200          |     
    0x000039e0 lw t9, -0x7e3c(gp)            |     t9 = sym.imp.__xstat;
    0x000039e4 sw v0, 0x48(sp)               |     *(var_48h) = v0;
    0x000039e8 lw v0, (v0)                   |     v0 = *(v0);
    0x000039ec sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x000039f0 sw a0, 0x2c(sp)               |     *(var_2ch) = a0;
    0x000039f4 move a1, a0                   |     a1 = a0;
    0x000039f8 sw ra, 0x1fc(sp)              |     *(var_1fch) = ra;
    0x000039fc sw fp, 0x1f8(sp)              |     *(var_1f8h) = fp;
    0x00003a00 sw s7, 0x1f4(sp)              |     *(var_1f4h) = s7;
    0x00003a04 sw s6, 0x1f0(sp)              |     *(var_1f0h) = s6;
    0x00003a08 sw s5, 0x1ec(sp)              |     *(var_1ech) = s5;
    0x00003a0c sw s4, 0x1e8(sp)              |     *(var_1e8h) = s4;
    0x00003a10 sw s3, 0x1e4(sp)              |     *(var_1e4h) = s3;
    0x00003a14 sw s2, 0x1e0(sp)              |     *(var_1e0h) = s2;
    0x00003a18 sw s1, 0x1dc(sp)              |     *(var_1dch) = s1;
    0x00003a1c sw s0, 0x1d8(sp)              |     *(var_1d8h) = s0;
    0x00003a20 addiu a2, sp, 0x144           |     a2 = sp + 0x144;
    0x00003a24 addiu a0, zero, 3             |     a0 = 3;
    0x00003a28 sw v0, 0x1d4(sp)              |     *(var_1d4h) = v0;
    0x00003a2c jalr t9                       |     t9 ();
    0x00003a30 nop                           |     
    0x00003a34 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 < 0) {
    0x00003a38 bltz v0, 0x4210               |         goto label_16;
                                             |     }
    0x00003a3c lw t9, -0x7fdc(gp)            |     t9 = *((gp - 8183));
    0x00003a40 addiu t9, t9, 0x22bc          |     t9 += fcn.000022bc;
    0x00003a44 sw zero, 0x68(sp)             |     *(var_68h) = 0;
    0x00003a48 bal 0x22bc                    |     fcn_000022bc ();
    0x00003a4c sw v0, 0x40(sp)               |     *(var_40h) = v0;
    0x00003a50 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003a54 move a0, v0                   |     a0 = v0;
                                             |     if (v0 != 0) {
    0x00003a58 beqz v0, 0x3a70               |         
    0x00003a5c lw t9, -0x7f74(gp)            |         t9 = sym.imp.strcmp;
    0x00003a60 lw a1, 0x2c(sp)               |         a1 = *(var_2ch);
    0x00003a64 jalr t9                       |         t9 ();
    0x00003a68 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == 0) {
    0x00003a6c beqz v0, 0x41dc               |             goto label_17;
                                             |         }
                                             |     }
    0x00003a70 lw t9, -0x7fdc(gp)            |     t9 = *((gp - 8183));
    0x00003a74 addiu t9, t9, 0x1fb0          |     t9 += fcn.00001fb0;
    0x00003a78 bal 0x1fb0                    |     fcn_00001fb0 ();
    0x00003a7c nop                           |     
    0x00003a80 sltiu v0, v0, 2               |     v0 = (v0 < 2) ? 1 : 0;
    0x00003a84 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003a88 bnez v0, 0x3b1c               |     
                                             |     while (v0 == 0) {
    0x00003a8c lw t9, -0x7e0c(gp)            |         t9 = sym.imp.g_free;
    0x00003a90 lw a0, 0x40(sp)               |         a0 = *(var_40h);
    0x00003a94 jalr t9                       |         t9 ();
    0x00003a98 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             | label_0:
    0x00003a9c lw a0, 0x68(sp)               |         a0 = *(var_68h);
    0x00003aa0 lw t9, -0x7f60(gp)            |         t9 = sym.imp.g_error_free;
                                             |         if (a0 != 0) {
    0x00003aa4 beqz a0, 0x3ab4               |             
    0x00003aa8 jalr t9                       |             t9 ();
    0x00003aac nop                           |             
    0x00003ab0 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |         }
                                             | label_5:
    0x00003ab4 lw v0, 0x158(sp)              |         v0 = *(var_158h);
                                             | label_6:
    0x00003ab8 addiu v1, zero, 0x4000        |         v1 = 0x4000;
    0x00003abc andi v0, v0, 0xf000           |         v0 &= 0xf000;
    0x00003ac0 lw t9, -0x7ee0(gp)            |         t9 = sym.imp.unlink;
                                             |         if (v0 == v1) {
    0x00003ac4 beq v0, v1, 0x3b98            |             goto label_18;
                                             |         }
    0x00003ac8 lw a0, 0x2c(sp)               |         a0 = *(var_2ch);
    0x00003acc move s4, zero                 |         s4 = 0;
    0x00003ad0 jalr t9                       |         t9 ();
    0x00003ad4 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             | label_3:
    0x00003ad8 lw v0, 0x48(sp)               |         v0 = *(var_48h);
    0x00003adc lw a0, 0x1d4(sp)              |         a0 = *(var_1d4h);
    0x00003ae0 lw v1, (v0)                   |         v1 = *(v0);
    0x00003ae4 move v0, s4                   |         v0 = s4;
                                             |         if (a0 != v1) {
    0x00003ae8 bne a0, v1, 0x428c            |             goto label_19;
                                             |         }
    0x00003aec lw ra, 0x1fc(sp)              |         ra = *(var_1fch);
    0x00003af0 lw fp, 0x1f8(sp)              |         fp = *(var_1f8h);
    0x00003af4 lw s7, 0x1f4(sp)              |         s7 = *(var_1f4h);
    0x00003af8 lw s6, 0x1f0(sp)              |         s6 = *(var_1f0h);
    0x00003afc lw s5, 0x1ec(sp)              |         s5 = *(var_1ech);
    0x00003b00 lw s4, 0x1e8(sp)              |         s4 = *(var_1e8h);
    0x00003b04 lw s3, 0x1e4(sp)              |         s3 = *(var_1e4h);
    0x00003b08 lw s2, 0x1e0(sp)              |         s2 = *(var_1e0h);
    0x00003b0c lw s1, 0x1dc(sp)              |         s1 = *(var_1dch);
    0x00003b10 lw s0, 0x1d8(sp)              |         s0 = *(var_1d8h);
    0x00003b14 addiu sp, sp, 0x200           |         
    0x00003b18 jr ra                         |         return v0;
    0x00003b1c lw v0, -0x7fdc(gp)            |         v0 = *((gp - 8183));
    0x00003b20 lw a3, -0x7fdc(gp)            |         a3 = *((gp - 8183));
    0x00003b24 addiu v0, v0, 0x6240          |         v0 += str.com.axis.Overlay2.Overlay;
    0x00003b28 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x00003b2c lw v0, -0x7fdc(gp)            |         v0 = *((gp - 8183));
    0x00003b30 lw t9, -0x7f68(gp)            |         t9 = sym.imp.g_dbus_proxy_new_for_bus_sync;
    0x00003b34 addiu v0, v0, 0x625c          |         v0 += str._com_axis_Overlay2_Overlay;
    0x00003b38 addiu s0, sp, 0x68            |         s0 = sp + 0x68;
    0x00003b3c sw s0, 0x1c(sp)               |         *(var_1ch) = s0;
    0x00003b40 sw zero, 0x18(sp)             |         *(var_18h) = 0;
    0x00003b44 sw v0, 0x10(sp)               |         *(var_10h_2) = v0;
    0x00003b48 addiu a3, a3, 0x622c          |         a3 += str.com.axis.Overlay2;
    0x00003b4c move a2, zero                 |         a2 = 0;
    0x00003b50 move a1, zero                 |         a1 = 0;
    0x00003b54 addiu a0, zero, 1             |         a0 = 1;
    0x00003b58 jalr t9                       |         t9 ();
    0x00003b5c sw v0, 0x4c(sp)               |         *(var_4ch_2) = v0;
    0x00003b60 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00003b64 beqz v0, 0x3a8c               |         
                                             |     }
    0x00003b68 lw v0, 0x68(sp)               |     v0 = *(var_68h);
    0x00003b6c lw a1, -0x7fdc(gp)            |     a1 = *((gp - 8183));
                                             |     if (v0 == 0) {
    0x00003b70 beqz v0, 0x3ca0               |         goto label_20;
                                             |     }
                                             | label_4:
    0x00003b74 lw t9, -0x7e0c(gp)            |     t9 = sym.imp.g_free;
    0x00003b78 lw a0, 0x40(sp)               |     a0 = *(var_40h);
    0x00003b7c jalr t9                       |     t9 ();
    0x00003b80 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003b84 lw t9, -0x7e4c(gp)            |     t9 = sym.imp.g_object_unref;
    0x00003b88 lw a0, 0x4c(sp)               |     a0 = *(var_4ch_2);
    0x00003b8c jalr t9                       |     t9 ();
    0x00003b90 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003b94 b 0x3a9c                      |     goto label_0;
                                             | label_18:
    0x00003b98 lw t9, -0x7eb8(gp)            |     t9 = sym.imp.opendir;
    0x00003b9c lw a0, 0x2c(sp)               |     a0 = *(var_2ch);
    0x00003ba0 jalr t9                       |     t9 ();
    0x00003ba4 move s2, v0                   |     s2 = v0;
    0x00003ba8 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == 0) {
    0x00003bac beqz v0, 0x4254               |         goto label_21;
                                             |     }
    0x00003bb0 lw t9, -0x7e94(gp)            |     t9 = sym.imp.readdir;
    0x00003bb4 move a0, v0                   |     a0 = v0;
    0x00003bb8 jalr t9                       |     t9 ();
    0x00003bbc lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == 0) {
    0x00003bc0 beqz v0, 0x3c78               |         goto label_22;
                                             |     }
    0x00003bc4 lw s3, -0x7fdc(gp)            |     s3 = *((gp - 8183));
    0x00003bc8 lw s4, -0x7fdc(gp)            |     s4 = *((gp - 8183));
    0x00003bcc lw s6, -0x7fdc(gp)            |     s6 = *((gp - 8183));
    0x00003bd0 addiu s3, s3, 0x6348          |     s3 += 0x6348;
    0x00003bd4 addiu s4, s4, 0x634c          |     s4 += 0x634c;
    0x00003bd8 addiu s6, s6, 0x60ec          |     s6 += str._s__s;
    0x00003bdc b 0x3bf4                      |     
                                             |     while (v0 == 0) {
                                             | label_1:
    0x00003be0 lw t9, -0x7e94(gp)            |         t9 = sym.imp.readdir;
    0x00003be4 move a0, s2                   |         a0 = s2;
    0x00003be8 jalr t9                       |         t9 ();
    0x00003bec lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == 0) {
    0x00003bf0 beqz v0, 0x3c78               |             goto label_22;
                                             |         }
                                             | label_2:
    0x00003bf4 lw t9, -0x7f74(gp)            |         t9 = sym.imp.strcmp;
    0x00003bf8 addiu s0, v0, 0xb             |         s0 = v0 + 0xb;
    0x00003bfc move a1, s3                   |         a1 = s3;
    0x00003c00 move a0, s0                   |         a0 = s0;
    0x00003c04 jalr t9                       |         t9 ();
    0x00003c08 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00003c0c beqz v0, 0x3be0               |         
                                             |     }
    0x00003c10 lw t9, -0x7f74(gp)            |     t9 = sym.imp.strcmp;
    0x00003c14 move a1, s4                   |     a1 = s4;
    0x00003c18 move a0, s0                   |     a0 = s0;
    0x00003c1c jalr t9                       |     t9 ();
    0x00003c20 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == 0) {
    0x00003c24 beqz v0, 0x3be0               |         goto label_1;
                                             |     }
    0x00003c28 lw t9, -0x7eac(gp)            |     t9 = sym.imp.g_strdup_printf
    0x00003c2c lw a1, 0x2c(sp)               |     a1 = *(var_2ch);
    0x00003c30 move a2, s0                   |     a2 = s0;
    0x00003c34 move a0, s6                   |     a0 = s6;
    0x00003c38 jalr t9                       |     t9 ();
    0x00003c3c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003c40 move a0, v0                   |     a0 = v0;
    0x00003c44 lw t9, -0x7ee0(gp)            |     t9 = sym.imp.unlink;
    0x00003c48 move s0, v0                   |     s0 = v0;
    0x00003c4c jalr t9                       |     t9 ();
    0x00003c50 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003c54 lw t9, -0x7e0c(gp)            |     t9 = sym.imp.g_free;
    0x00003c58 move a0, s0                   |     a0 = s0;
    0x00003c5c jalr t9                       |     t9 ();
    0x00003c60 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003c64 lw t9, -0x7e94(gp)            |     t9 = sym.imp.readdir;
    0x00003c68 move a0, s2                   |     a0 = s2;
    0x00003c6c jalr t9                       |     t9 ();
    0x00003c70 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x00003c74 bnez v0, 0x3bf4               |         goto label_2;
                                             |     }
                                             | label_22:
    0x00003c78 lw t9, -0x7f0c(gp)            |     t9 = sym.imp.closedir;
    0x00003c7c move a0, s2                   |     a0 = s2;
    0x00003c80 jalr t9                       |     t9 ();
    0x00003c84 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003c88 lw a0, 0x2c(sp)               |     a0 = *(var_2ch);
    0x00003c8c lw t9, -0x7f38(gp)            |     t9 = sym.imp.rmdir;
    0x00003c90 move s4, zero                 |     s4 = 0;
    0x00003c94 jalr t9                       |     t9 ();
    0x00003c98 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003c9c b 0x3ad8                      |     goto label_3;
                                             | label_20:
    0x00003ca0 lw t9, -0x7e74(gp)            |     t9 = sym.imp.g_dbus_proxy_call_sync;
    0x00003ca4 addiu v0, zero, -1            |     v0 = -1;
    0x00003ca8 lw a0, 0x4c(sp)               |     a0 = *(var_4ch_2);
    0x00003cac sw s0, 0x18(sp)               |     *(var_18h) = s0;
    0x00003cb0 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x00003cb4 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x00003cb8 move a3, zero                 |     a3 = 0;
    0x00003cbc move a2, zero                 |     a2 = 0;
    0x00003cc0 addiu a1, a1, 0x6278          |     a1 += str.org.freedesktop.DBus.ObjectManager.GetManagedObjects;
    0x00003cc4 jalr t9                       |     t9 ();
    0x00003cc8 sw v0, 0x50(sp)               |     *(var_50h) = v0;
    0x00003ccc lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == 0) {
    0x00003cd0 beqz v0, 0x3b74               |         goto label_4;
                                             |     }
    0x00003cd4 lw v0, 0x68(sp)               |     v0 = *(var_68h);
    0x00003cd8 lw t9, -0x7e0c(gp)            |     t9 = sym.imp.g_free;
                                             |     if (v0 == 0) {
    0x00003cdc beqz v0, 0x3d50               |         goto label_23;
                                             |     }
    0x00003ce0 lw a0, 0x40(sp)               |     a0 = *(var_40h);
    0x00003ce4 jalr t9                       |     t9 ();
    0x00003ce8 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003cec lw t9, -0x7e4c(gp)            |     t9 = sym.imp.g_object_unref;
    0x00003cf0 lw a0, 0x4c(sp)               |     a0 = *(var_4ch_2);
    0x00003cf4 jalr t9                       |     t9 ();
    0x00003cf8 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003cfc lw t9, -0x7f30(gp)            |     t9 = sym.imp.g_variant_unref;
    0x00003d00 lw a0, 0x50(sp)               |     a0 = *(var_50h);
    0x00003d04 jalr t9                       |     t9 ();
    0x00003d08 lw a0, 0x68(sp)               |     a0 = *(var_68h);
    0x00003d0c lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (a0 == 0) {
    0x00003d10 beqz a0, 0x3ab4               |         goto label_5;
                                             |     }
    0x00003d14 move s4, zero                 |     s4 = 0;
                                             | label_9:
    0x00003d18 lw t9, -0x7f60(gp)            |     t9 = sym.imp.g_error_free;
    0x00003d1c jalr t9                       |     t9 ();
    0x00003d20 nop                           |     
    0x00003d24 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (s4 == 0) {
                                             | label_10:
    0x00003d28 beql s4, zero, 0x3ab8         |         goto label_6;
                                             |     }
    0x00003d2c lw v0, 0x158(sp)              |     v0 = *(var_158h);
                                             | label_12:
    0x00003d30 lw a2, -0x7fdc(gp)            |     a2 = *((gp - 8183));
    0x00003d34 lw t9, -0x7f04(gp)            |     t9 = sym.imp.__syslog_chk;
    0x00003d38 addiu a2, a2, 0x632c          |     a2 += str.in_use;
    0x00003d3c addiu a1, zero, 1             |     a1 = 1;
    0x00003d40 addiu a0, zero, 3             |     a0 = 3;
    0x00003d44 jalr t9                       |     t9 ();
    0x00003d48 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003d4c b 0x3ad8                      |     goto label_3;
                                             | label_23:
    0x00003d50 lw t9, -0x7ea0(gp)            |     t9 = sym.imp.g_variant_get_child_value;
    0x00003d54 lw a0, 0x50(sp)               |     a0 = *(var_50h);
    0x00003d58 move a1, zero                 |     a1 = 0;
    0x00003d5c jalr t9                       |     t9 ();
    0x00003d60 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003d64 addiu v1, sp, 0x84            |     v1 = sp + 0x84;
    0x00003d68 sw v1, 0x58(sp)               |     *(var_58h) = v1;
    0x00003d6c lw t9, -0x7f00(gp)            |     t9 = sym.imp.g_variant_iter_init;
    0x00003d70 move a0, v1                   |     a0 = v1;
    0x00003d74 sw v0, 0x54(sp)               |     *(var_54h) = v0;
    0x00003d78 move a1, v0                   |     a1 = v0;
    0x00003d7c jalr t9                       |     t9 ();
    0x00003d80 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003d84 addiu s7, sp, 0x70            |     s7 = sp + 0x70;
    0x00003d88 addiu fp, sp, 0x6c            |     fp = sp + 0x6c;
    0x00003d8c lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x00003d90 lw v1, -0x7fdc(gp)            |     v1 = *((gp - 8183));
    0x00003d94 sw v0, 0x34(sp)               |     *(var_34h) = v0;
    0x00003d98 addiu v0, v0, 0x62bc          |     v0 += str.sv;
    0x00003d9c sw v0, 0x38(sp)               |     *(var_38h) = v0;
    0x00003da0 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x00003da4 sw v1, 0x5c(sp)               |     *(var_5ch) = v1;
    0x00003da8 lw v1, -0x7fdc(gp)            |     v1 = *((gp - 8183));
    0x00003dac addiu v0, v0, 0x62b0          |     v0 += str.OverlayPath;
    0x00003db0 move s4, zero                 |     s4 = 0;
    0x00003db4 sw v1, 0x30(sp)               |     *(var_30h) = v1;
    0x00003db8 sw v0, 0x3c(sp)               |     *(var_3ch) = v0;
    0x00003dbc sw fp, 0x60(sp)               |     *(var_60h) = fp;
    0x00003dc0 sw s7, 0x64(sp)               |     *(var_64h) = s7;
                                             | label_7:
    0x00003dc4 lw v0, 0x30(sp)               |     v0 = *(var_30h);
    0x00003dc8 addiu s2, sp, 0xc4            |     s2 = sp + 0xc4;
    0x00003dcc addiu s0, v0, 0x62c4          |     s0 = v0 + str.s_asv;
                                             |     do {
                                             | label_8:
    0x00003dd0 lw v0, 0x5c(sp)               |         v0 = *(var_5ch);
    0x00003dd4 lw t9, -0x7e98(gp)            |         t9 = sym.imp.g_variant_iter_next;
    0x00003dd8 lw a3, 0x64(sp)               |         a3 = *(var_64h);
    0x00003ddc lw a2, 0x60(sp)               |         a2 = *(var_60h);
    0x00003de0 lw a0, 0x58(sp)               |         a0 = *(var_58h);
    0x00003de4 addiu a1, v0, 0x631c          |         a1 = v0 + str.o_asasv;
    0x00003de8 jalr t9                       |         t9 ();
    0x00003dec lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == 0) {
    0x00003df0 beqz v0, 0x4150               |             goto label_24;
                                             |         }
    0x00003df4 lw t9, -0x7f00(gp)            |         t9 = sym.imp.g_variant_iter_init;
    0x00003df8 lw a1, 0x70(sp)               |         a1 = *(var_70h);
    0x00003dfc move a0, s2                   |         a0 = s2;
    0x00003e00 jalr t9                       |         t9 ();
    0x00003e04 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00003e08 addiu fp, sp, 0x78            |         fp = sp + 0x78;
    0x00003e0c addiu s7, sp, 0x74            |         s7 = sp + 0x74;
    0x00003e10 addiu s1, sp, 0x104           |         s1 = sp + 0x104;
                                             | label_15:
    0x00003e14 lw t9, -0x7e98(gp)            |         t9 = sym.imp.g_variant_iter_next;
    0x00003e18 move a3, fp                   |         a3 = fp;
    0x00003e1c move a2, s7                   |         a2 = s7;
    0x00003e20 move a1, s0                   |         a1 = s0;
    0x00003e24 move a0, s2                   |         a0 = s2;
    0x00003e28 jalr t9                       |         t9 ();
    0x00003e2c lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00003e30 beqz v0, 0x3dd0               |         
                                             |     } while (v0 == 0);
    0x00003e34 lw t9, -0x7f00(gp)            |     t9 = sym.imp.g_variant_iter_init;
    0x00003e38 lw a1, 0x78(sp)               |     a1 = *(var_78h);
    0x00003e3c move a0, s1                   |     a0 = s1;
    0x00003e40 jalr t9                       |     t9 ();
    0x00003e44 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003e48 addiu s6, sp, 0x80            |     s6 = sp + 0x80;
    0x00003e4c addiu s5, sp, 0x7c            |     s5 = sp + 0x7c;
                                             |     do {
    0x00003e50 lw t9, -0x7e98(gp)            |         t9 = sym.imp.g_variant_iter_next;
    0x00003e54 lw a1, 0x38(sp)               |         a1 = *(var_38h);
    0x00003e58 move a3, s6                   |         a3 = s6;
    0x00003e5c move a2, s5                   |         a2 = s5;
    0x00003e60 move a0, s1                   |         a0 = s1;
    0x00003e64 jalr t9                       |         t9 ();
    0x00003e68 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == 0) {
    0x00003e6c beqz v0, 0x42c0               |             goto label_25;
                                             |         }
    0x00003e70 lw t9, -0x7e9c(gp)            |         t9 = sym.imp.g_variant_get_data;
    0x00003e74 lw a0, 0x80(sp)               |         a0 = *(var_80h);
    0x00003e78 jalr t9                       |         t9 ();
    0x00003e7c lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00003e80 lw a0, 0x7c(sp)               |         a0 = *(var_7ch);
    0x00003e84 lw a1, 0x3c(sp)               |         a1 = *(var_3ch);
    0x00003e88 lw t9, -0x7f74(gp)            |         t9 = sym.imp.strcmp;
    0x00003e8c move s3, v0                   |         s3 = v0;
    0x00003e90 jalr t9                       |         t9 ();
    0x00003e94 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == 0) {
    0x00003e98 beqz v0, 0x3eb0               |             goto label_26;
                                             |         }
    0x00003e9c lw t9, -0x7f30(gp)            |         t9 = sym.imp.g_variant_unref;
    0x00003ea0 lw a0, 0x80(sp)               |         a0 = *(var_80h);
    0x00003ea4 jalr t9                       |         t9 ();
    0x00003ea8 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00003eac b 0x3e50                      |         
                                             |     } while (1);
                                             | label_26:
    0x00003eb0 lw t9, -0x7f74(gp)            |     t9 = sym.imp.strcmp;
    0x00003eb4 lw a1, 0x2c(sp)               |     a1 = *(var_2ch);
    0x00003eb8 move a0, s3                   |     a0 = s3;
    0x00003ebc jalr t9                       |     t9 ();
    0x00003ec0 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003ec4 lw a0, 0x80(sp)               |     a0 = *(var_80h);
    0x00003ec8 lw t9, -0x7f30(gp)            |     t9 = sym.imp.g_variant_unref;
                                             |     if (v0 != 0) {
    0x00003ecc bnez v0, 0x40f0               |         goto label_27;
                                             |     }
    0x00003ed0 jalr t9                       |     t9 ();
    0x00003ed4 nop                           |     
    0x00003ed8 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003edc lw v0, 0x30(sp)               |     v0 = *(var_30h);
    0x00003ee0 lw a0, 0x78(sp)               |     a0 = *(var_78h);
    0x00003ee4 lw t9, -0x7f30(gp)            |     t9 = sym.imp.g_variant_unref;
    0x00003ee8 addiu s4, v0, 0x62c4          |     s4 = v0 + str.s_asv;
    0x00003eec jalr t9                       |     t9 ();
    0x00003ef0 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003ef4 lw a1, 0x70(sp)               |     a1 = *(var_70h);
    0x00003ef8 lw t9, -0x7f00(gp)            |     t9 = sym.imp.g_variant_iter_init;
    0x00003efc move a0, s2                   |     a0 = s2;
    0x00003f00 jalr t9                       |     t9 ();
    0x00003f04 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003f08 lw v0, 0x34(sp)               |     v0 = *(var_34h);
    0x00003f0c lw s0, -0x7fdc(gp)            |     s0 = *((gp - 8183));
    0x00003f10 addiu s3, v0, 0x62bc          |     s3 = v0 + str.sv;
    0x00003f14 addiu s0, s0, 0x62d0          |     s0 += str.Owner;
                                             | label_14:
    0x00003f18 lw t9, -0x7e98(gp)            |     t9 = sym.imp.g_variant_iter_next;
    0x00003f1c move a3, fp                   |     a3 = fp;
    0x00003f20 move a2, s7                   |     a2 = s7;
    0x00003f24 move a1, s4                   |     a1 = s4;
    0x00003f28 move a0, s2                   |     a0 = s2;
    0x00003f2c jalr t9                       |     t9 ();
    0x00003f30 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == 0) {
    0x00003f34 beqz v0, 0x3ff4               |         goto label_28;
                                             |     }
    0x00003f38 lw t9, -0x7f00(gp)            |     t9 = sym.imp.g_variant_iter_init;
    0x00003f3c lw a1, 0x78(sp)               |     a1 = *(var_78h);
    0x00003f40 move a0, s1                   |     a0 = s1;
    0x00003f44 jalr t9                       |     t9 ();
    0x00003f48 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     do {
    0x00003f4c lw t9, -0x7e98(gp)            |         t9 = sym.imp.g_variant_iter_next;
    0x00003f50 move a3, s6                   |         a3 = s6;
    0x00003f54 move a2, s5                   |         a2 = s5;
    0x00003f58 move a1, s3                   |         a1 = s3;
    0x00003f5c move a0, s1                   |         a0 = s1;
    0x00003f60 jalr t9                       |         t9 ();
    0x00003f64 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == 0) {
    0x00003f68 beqz v0, 0x42ac               |             goto label_29;
                                             |         }
    0x00003f6c lw t9, -0x7e9c(gp)            |         t9 = sym.imp.g_variant_get_data;
    0x00003f70 lw a0, 0x80(sp)               |         a0 = *(var_80h);
    0x00003f74 jalr t9                       |         t9 ();
    0x00003f78 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00003f7c lw a0, 0x7c(sp)               |         a0 = *(var_7ch);
    0x00003f80 move a1, s0                   |         a1 = s0;
    0x00003f84 lw t9, -0x7f74(gp)            |         t9 = sym.imp.strcmp;
    0x00003f88 sw v0, 0x44(sp)               |         *(var_44h) = v0;
    0x00003f8c jalr t9                       |         t9 ();
    0x00003f90 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == 0) {
    0x00003f94 bnez v0, 0x4110               |             
    0x00003f98 lw a1, -0x7fdc(gp)            |             a1 = *((gp - 8183));
    0x00003f9c lw s0, 0x44(sp)               |             s0 = *(var_44h);
    0x00003fa0 lw t9, -0x7f74(gp)            |             t9 = sym.imp.strcmp;
    0x00003fa4 addiu a1, a1, 0x62d8          |             a1 += str._usr_bin_parhand;
    0x00003fa8 move a0, s0                   |             a0 = s0;
    0x00003fac jalr t9                       |             t9 ();
    0x00003fb0 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 == 0) {
    0x00003fb4 beqz v0, 0x4124               |                 goto label_30;
                                             |             }
    0x00003fb8 lw a1, -0x7fdc(gp)            |             a1 = *((gp - 8183));
    0x00003fbc lw t9, -0x7f74(gp)            |             t9 = sym.imp.strcmp;
    0x00003fc0 addiu a1, a1, 0x62ec          |             a1 += str._usr_bin_monolith;
    0x00003fc4 move a0, s0                   |             a0 = s0;
    0x00003fc8 jalr t9                       |             t9 ();
    0x00003fcc lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 == 0) {
    0x00003fd0 beqz v0, 0x4124               |                 goto label_30;
                                             |             }
    0x00003fd4 lw t9, -0x7f30(gp)            |             t9 = sym.imp.g_variant_unref;
    0x00003fd8 lw a0, 0x80(sp)               |             a0 = *(var_80h);
    0x00003fdc jalr t9                       |             t9 ();
    0x00003fe0 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x00003fe4 lw t9, -0x7f30(gp)            |             t9 = sym.imp.g_variant_unref;
    0x00003fe8 lw a0, 0x78(sp)               |             a0 = *(var_78h);
    0x00003fec jalr t9                       |             t9 ();
    0x00003ff0 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             | label_28:
    0x00003ff4 lw t9, -0x7f00(gp)            |             t9 = sym.imp.g_variant_iter_init;
    0x00003ff8 lw a1, 0x70(sp)               |             a1 = *(var_70h);
    0x00003ffc move a0, s2                   |             a0 = s2;
    0x00004000 jalr t9                       |             t9 ();
    0x00004004 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x00004008 lw v0, 0x30(sp)               |             v0 = *(var_30h);
    0x0000400c addiu v0, v0, 0x62c4          |             v0 += str.s_asv;
    0x00004010 sw v0, 0x44(sp)               |             *(var_44h) = v0;
    0x00004014 lw s3, -0x7fdc(gp)            |             s3 = *((gp - 8183));
    0x00004018 lw v0, 0x34(sp)               |             v0 = *(var_34h);
    0x0000401c addiu s3, s3, 0x62d0          |             s3 += str.Owner;
    0x00004020 addiu s4, v0, 0x62bc          |             s4 = v0 + str.sv;
                                             | label_13:
    0x00004024 lw t9, -0x7e98(gp)            |             t9 = sym.imp.g_variant_iter_next;
    0x00004028 lw a1, 0x44(sp)               |             a1 = *(var_44h);
    0x0000402c move a3, fp                   |             a3 = fp;
    0x00004030 move a2, s7                   |             a2 = s7;
    0x00004034 move a0, s2                   |             a0 = s2;
    0x00004038 jalr t9                       |             t9 ();
    0x0000403c lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 == 0) {
    0x00004040 beqz v0, 0x41d0               |                 goto label_31;
                                             |             }
    0x00004044 lw t9, -0x7f00(gp)            |             t9 = sym.imp.g_variant_iter_init;
    0x00004048 lw a1, 0x78(sp)               |             a1 = *(var_78h);
    0x0000404c move a0, s1                   |             a0 = s1;
    0x00004050 jalr t9                       |             t9 ();
    0x00004054 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             | label_11:
    0x00004058 lw t9, -0x7e98(gp)            |             t9 = sym.imp.g_variant_iter_next;
    0x0000405c move a3, s6                   |             a3 = s6;
    0x00004060 move a2, s5                   |             a2 = s5;
    0x00004064 move a1, s4                   |             a1 = s4;
    0x00004068 move a0, s1                   |             a0 = s1;
    0x0000406c jalr t9                       |             t9 ();
    0x00004070 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 == 0) {
    0x00004074 beqz v0, 0x4298               |                 goto label_32;
                                             |             }
    0x00004078 lw t9, -0x7e9c(gp)            |             t9 = sym.imp.g_variant_get_data;
    0x0000407c lw a0, 0x80(sp)               |             a0 = *(var_80h);
    0x00004080 jalr t9                       |             t9 ();
    0x00004084 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x00004088 lw a0, 0x7c(sp)               |             a0 = *(var_7ch);
    0x0000408c move a1, s3                   |             a1 = s3;
    0x00004090 lw t9, -0x7f74(gp)            |             t9 = sym.imp.strcmp;
    0x00004094 move s0, v0                   |             s0 = v0;
    0x00004098 jalr t9                       |             t9 ();
    0x0000409c lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 != 0) {
    0x000040a0 bnez v0, 0x41a0               |                 goto label_33;
                                             |             }
    0x000040a4 lw a1, -0x7fdc(gp)            |             a1 = *((gp - 8183));
    0x000040a8 lw t9, -0x7f74(gp)            |             t9 = sym.imp.strcmp;
    0x000040ac move a0, s0                   |             a0 = s0;
    0x000040b0 addiu a1, a1, 0x6300          |             a1 += str._usr_bin_dynamic_overlayd;
    0x000040b4 jalr t9                       |             t9 ();
    0x000040b8 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x000040bc lw a0, 0x80(sp)               |             a0 = *(var_80h);
    0x000040c0 lw t9, -0x7f30(gp)            |             t9 = sym.imp.g_variant_unref;
                                             |             if (v0 != 0) {
    0x000040c4 bnez v0, 0x41b4               |                 goto label_34;
                                             |             }
    0x000040c8 jalr t9                       |             t9 ();
    0x000040cc nop                           |             
    0x000040d0 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x000040d4 lw a0, 0x78(sp)               |             a0 = *(var_78h);
    0x000040d8 addiu v0, zero, -0x3f3        |             v0 = -0x3f3;
    0x000040dc lw t9, -0x7f30(gp)            |             t9 = sym.imp.g_variant_unref;
    0x000040e0 move s4, v0                   |             s4 = v0;
    0x000040e4 jalr t9                       |             t9 ();
    0x000040e8 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x000040ec b 0x3dc4                      |             goto label_7;
                                             | label_27:
    0x000040f0 jalr t9                       |             t9 ();
    0x000040f4 nop                           |             
    0x000040f8 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x000040fc lw t9, -0x7f30(gp)            |             t9 = sym.imp.g_variant_unref;
    0x00004100 lw a0, 0x78(sp)               |             a0 = *(var_78h);
    0x00004104 jalr t9                       |             t9 ();
    0x00004108 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x0000410c b 0x3dd0                      |             goto label_8;
                                             |         }
    0x00004110 lw t9, -0x7f30(gp)            |         t9 = sym.imp.g_variant_unref;
    0x00004114 lw a0, 0x80(sp)               |         a0 = *(var_80h);
    0x00004118 jalr t9                       |         t9 ();
    0x0000411c lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00004120 b 0x3f4c                      |         
                                             |     } while (1);
                                             | label_30:
    0x00004124 lw t9, -0x7f30(gp)            |     t9 = sym.imp.g_variant_unref;
    0x00004128 lw a0, 0x80(sp)               |     a0 = *(var_80h);
    0x0000412c addiu v0, zero, -0x3f4        |     v0 = -0x3f4;
    0x00004130 move s4, v0                   |     s4 = v0;
    0x00004134 jalr t9                       |     t9 ();
    0x00004138 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0000413c lw t9, -0x7f30(gp)            |     t9 = sym.imp.g_variant_unref;
    0x00004140 lw a0, 0x78(sp)               |     a0 = *(var_78h);
    0x00004144 jalr t9                       |     t9 ();
    0x00004148 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0000414c b 0x3dc4                      |     goto label_7;
                                             | label_24:
    0x00004150 lw t9, -0x7f30(gp)            |     t9 = sym.imp.g_variant_unref;
    0x00004154 lw a0, 0x54(sp)               |     a0 = *(var_54h);
    0x00004158 jalr t9                       |     t9 ();
    0x0000415c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00004160 lw t9, -0x7e0c(gp)            |     t9 = sym.imp.g_free;
    0x00004164 lw a0, 0x40(sp)               |     a0 = *(var_40h);
    0x00004168 jalr t9                       |     t9 ();
    0x0000416c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00004170 lw t9, -0x7e4c(gp)            |     t9 = sym.imp.g_object_unref;
    0x00004174 lw a0, 0x4c(sp)               |     a0 = *(var_4ch_2);
    0x00004178 jalr t9                       |     t9 ();
    0x0000417c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00004180 lw t9, -0x7f30(gp)            |     t9 = sym.imp.g_variant_unref;
    0x00004184 lw a0, 0x50(sp)               |     a0 = *(var_50h);
    0x00004188 jalr t9                       |     t9 ();
    0x0000418c lw a0, 0x68(sp)               |     a0 = *(var_68h);
    0x00004190 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (a0 != 0) {
    0x00004194 bnez a0, 0x3d18               |         goto label_9;
                                             |     }
    0x00004198 b 0x3d28                      |     goto label_10;
    0x0000419c nop                           |     
                                             | label_33:
    0x000041a0 lw t9, -0x7f30(gp)            |     t9 = sym.imp.g_variant_unref;
    0x000041a4 lw a0, 0x80(sp)               |     a0 = *(var_80h);
    0x000041a8 jalr t9                       |     t9 ();
    0x000041ac lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000041b0 b 0x4058                      |     goto label_11;
                                             | label_34:
    0x000041b4 jalr t9                       |     t9 ();
    0x000041b8 nop                           |     
    0x000041bc lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000041c0 lw t9, -0x7f30(gp)            |     t9 = sym.imp.g_variant_unref;
    0x000041c4 lw a0, 0x78(sp)               |     a0 = *(var_78h);
    0x000041c8 jalr t9                       |     t9 ();
    0x000041cc lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             | label_31:
    0x000041d0 addiu v0, zero, -0x3f6        |     v0 = -0x3f6;
    0x000041d4 move s4, v0                   |     s4 = v0;
    0x000041d8 b 0x3dc4                      |     goto label_7;
                                             | label_17:
    0x000041dc lw t9, -0x7e0c(gp)            |     t9 = sym.imp.g_free;
    0x000041e0 lw a0, 0x40(sp)               |     a0 = *(var_40h);
    0x000041e4 jalr t9                       |     t9 ();
    0x000041e8 lw a0, 0x68(sp)               |     a0 = *(var_68h);
    0x000041ec lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (a0 != 0) {
    0x000041f0 beqz a0, 0x4248               |         
    0x000041f4 lw t9, -0x7f60(gp)            |         t9 = sym.imp.g_error_free;
    0x000041f8 jalr t9                       |         t9 ();
    0x000041fc nop                           |         
    0x00004200 addiu v0, zero, -0x3f5        |         v0 = -0x3f5;
    0x00004204 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00004208 move s4, v0                   |         s4 = v0;
    0x0000420c b 0x3d30                      |         goto label_12;
                                             | label_16:
    0x00004210 lw t9, -0x7e08(gp)            |         t9 = sym.imp.__errno_location;
    0x00004214 addiu v0, zero, -0x3eb        |         v0 = -0x3eb;
    0x00004218 move s4, v0                   |         s4 = v0;
    0x0000421c jalr t9                       |         t9 ();
    0x00004220 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00004224 lw a3, (v0)                   |         a3 = *(v0);
    0x00004228 addiu a1, zero, 1             |         a1 = 1;
    0x0000422c lw a2, -0x7fdc(gp)            |         a2 = *((gp - 8183));
    0x00004230 lw t9, -0x7f04(gp)            |         t9 = sym.imp.__syslog_chk;
    0x00004234 addiu a2, a2, 0x621c          |         a2 += str.stat_failed__d;
    0x00004238 addiu a0, zero, 3             |         a0 = 3;
    0x0000423c jalr t9                       |         t9 ();
    0x00004240 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00004244 b 0x3ad8                      |         goto label_3;
                                             |     }
    0x00004248 addiu v0, zero, -0x3f5        |     v0 = -0x3f5;
    0x0000424c move s4, v0                   |     s4 = v0;
    0x00004250 b 0x3d30                      |     goto label_12;
                                             | label_21:
    0x00004254 lw t9, -0x7e08(gp)            |     t9 = sym.imp.__errno_location;
    0x00004258 addiu v0, zero, -0x3e8        |     v0 = -0x3e8;
    0x0000425c move s4, v0                   |     s4 = v0;
    0x00004260 jalr t9                       |     t9 ();
    0x00004264 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00004268 lw a3, (v0)                   |     a3 = *(v0);
    0x0000426c addiu a1, zero, 1             |     a1 = 1;
    0x00004270 lw a2, -0x7fdc(gp)            |     a2 = *((gp - 8183));
    0x00004274 lw t9, -0x7f04(gp)            |     t9 = sym.imp.__syslog_chk;
    0x00004278 addiu a2, a2, 0x6334          |     a2 += str.opendir_failed__d;
    0x0000427c addiu a0, zero, 3             |     a0 = 3;
    0x00004280 jalr t9                       |     t9 ();
    0x00004284 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00004288 b 0x3ad8                      |     goto label_3;
                                             | label_19:
    0x0000428c lw t9, -0x7f2c(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x00004290 jalr t9                       |     t9 ();
    0x00004294 nop                           |     
                                             | label_32:
    0x00004298 lw t9, -0x7f30(gp)            |     t9 = sym.imp.g_variant_unref;
    0x0000429c lw a0, 0x78(sp)               |     a0 = *(var_78h);
    0x000042a0 jalr t9                       |     t9 ();
    0x000042a4 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000042a8 b 0x4024                      |     goto label_13;
                                             | label_29:
    0x000042ac lw t9, -0x7f30(gp)            |     t9 = sym.imp.g_variant_unref;
    0x000042b0 lw a0, 0x78(sp)               |     a0 = *(var_78h);
    0x000042b4 jalr t9                       |     t9 ();
    0x000042b8 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000042bc b 0x3f18                      |     goto label_14;
                                             | label_25:
    0x000042c0 lw t9, -0x7f30(gp)            |     t9 = sym.imp.g_variant_unref;
    0x000042c4 lw a0, 0x78(sp)               |     a0 = *(var_78h);
    0x000042c8 jalr t9                       |     t9 ();
    0x000042cc lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000042d0 b 0x3e14                      |     goto label_15;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/overlayimage.cgi @ 0x35dc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.backend_list_overlays ()     | void backend_list_overlays () {
    0x000035dc lui gp, 2                     |     
    0x000035e0 addiu gp, gp, -0x45cc         |     
    0x000035e4 addu gp, gp, t9               |     gp += t9;
    0x000035e8 addiu sp, sp, -0x40           |     
    0x000035ec lw t9, -0x7eb8(gp)            |     t9 = sym.imp.opendir;
    0x000035f0 sw s4, 0x2c(sp)               |     *(var_2ch) = s4;
    0x000035f4 lw s4, -0x7fdc(gp)            |     s4 = *((gp - 8183));
    0x000035f8 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x000035fc sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x00003600 sw s7, 0x38(sp)               |     *(var_38h) = s7;
    0x00003604 sw s6, 0x34(sp)               |     *(var_34h) = s6;
    0x00003608 sw s5, 0x30(sp)               |     *(var_30h) = s5;
    0x0000360c sw s3, 0x28(sp)               |     *(var_28h) = s3;
    0x00003610 sw s2, 0x24(sp)               |     *(var_24h) = s2;
    0x00003614 sw s1, 0x20(sp)               |     *(var_20h) = s1;
    0x00003618 sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x0000361c addiu a0, s4, 0x6140          |     a0 = s4 + str._etc_overlays;
    0x00003620 jalr t9                       |     t9 ();
    0x00003624 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 == 0) {
    0x00003628 beqz v0, 0x372c               |         goto label_0;
                                             |     }
    0x0000362c lw t9, -0x7e94(gp)            |     t9 = sym.imp.readdir;
    0x00003630 move a0, v0                   |     a0 = v0;
    0x00003634 move s1, v0                   |     s1 = v0;
    0x00003638 jalr t9                       |     t9 ();
    0x0000363c move s0, v0                   |     s0 = v0;
    0x00003640 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00003644 move s2, zero                 |     s2 = 0;
                                             |     if (v0 == 0) {
    0x00003648 beqz v0, 0x36f0               |         goto label_1;
                                             |     }
    0x0000364c lw s3, -0x7fdc(gp)            |     s3 = *((gp - 8183));
    0x00003650 lw s5, -0x7fdc(gp)            |     s5 = *((gp - 8183));
    0x00003654 addiu s3, s3, 0x6214          |     s3 += 0x6214;
    0x00003658 addiu s4, s4, 0x6140          |     s4 += str._etc_overlays;
    0x0000365c addiu s5, s5, 0x60ec          |     s5 += str._s__s;
                                             |     do {
    0x00003660 lw t9, -0x7f24(gp)            |         t9 = sym.imp.strstr;
    0x00003664 addiu s6, s0, 0xb             |         s6 = s0 + 0xb;
    0x00003668 move a0, s6                   |         a0 = s6;
    0x0000366c move a1, s3                   |         a1 = s3;
    0x00003670 jalr t9                       |         t9 ();
    0x00003674 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00003678 addiu a0, zero, 8             |         a0 = 8;
    0x0000367c lw t9, -0x7e7c(gp)            |         t9 = sym.imp.g_malloc;
                                             |         if (v0 != 0) {
    0x00003680 beqz v0, 0x36d8               |             
    0x00003684 jalr t9                       |             t9 ();
    0x00003688 nop                           |             
    0x0000368c lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00003690 move s7, v0                   |             s7 = v0;
    0x00003694 move a2, s6                   |             a2 = s6;
    0x00003698 lw t9, -0x7eac(gp)            |             t9 = sym.imp.g_strdup_printf
    0x0000369c move a1, s4                   |             a1 = s4;
    0x000036a0 move a0, s5                   |             a0 = s5;
    0x000036a4 jalr t9                       |             t9 ();
    0x000036a8 sw v0, (s7)                   |             *(s7) = v0;
    0x000036ac lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x000036b0 lbu v0, 0xa(s0)               |             v0 = *((s0 + 10));
    0x000036b4 move a0, s2                   |             a0 = s2;
    0x000036b8 xori v0, v0, 4                |             v0 ^= 4;
    0x000036bc lw t9, -0x7ea4(gp)            |             t9 = sym.imp.g_slist_append;
    0x000036c0 sltiu v0, v0, 1               |             v0 = (v0 < 1) ? 1 : 0;
    0x000036c4 move a1, s7                   |             a1 = s7;
    0x000036c8 sw v0, 4(s7)                  |             *((s7 + 1)) = v0;
    0x000036cc jalr t9                       |             t9 ();
    0x000036d0 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x000036d4 move s2, v0                   |             s2 = v0;
                                             |         }
    0x000036d8 lw t9, -0x7e94(gp)            |         t9 = sym.imp.readdir;
    0x000036dc move a0, s1                   |         a0 = s1;
    0x000036e0 jalr t9                       |         t9 ();
    0x000036e4 move s0, v0                   |         s0 = v0;
    0x000036e8 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x000036ec bnez v0, 0x3660               |         
                                             |     } while (v0 != 0);
                                             | label_1:
    0x000036f0 lw t9, -0x7f0c(gp)            |     t9 = sym.imp.closedir;
    0x000036f4 move a0, s1                   |     a0 = s1;
    0x000036f8 jalr t9                       |     t9 ();
    0x000036fc lw ra, 0x3c(sp)               |     ra = *(var_3ch);
    0x00003700 move v0, s2                   |     v0 = s2;
    0x00003704 lw s7, 0x38(sp)               |     s7 = *(var_38h);
    0x00003708 lw s6, 0x34(sp)               |     s6 = *(var_34h);
    0x0000370c lw s5, 0x30(sp)               |     s5 = *(var_30h);
    0x00003710 lw s4, 0x2c(sp)               |     s4 = *(var_2ch);
    0x00003714 lw s3, 0x28(sp)               |     s3 = *(var_28h);
    0x00003718 lw s2, 0x24(sp)               |     s2 = *(var_24h);
    0x0000371c lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x00003720 lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x00003724 addiu sp, sp, 0x40            |     
    0x00003728 jr ra                         |     return v0;
                                             | label_0:
    0x0000372c lw ra, 0x3c(sp)               |     ra = *(var_3ch);
    0x00003730 move s2, zero                 |     s2 = 0;
    0x00003734 move v0, s2                   |     v0 = s2;
    0x00003738 lw s7, 0x38(sp)               |     s7 = *(var_38h);
    0x0000373c lw s6, 0x34(sp)               |     s6 = *(var_34h);
    0x00003740 lw s5, 0x30(sp)               |     s5 = *(var_30h);
    0x00003744 lw s4, 0x2c(sp)               |     s4 = *(var_2ch);
    0x00003748 lw s3, 0x28(sp)               |     s3 = *(var_28h);
    0x0000374c lw s2, 0x24(sp)               |     s2 = *(var_24h);
    0x00003750 lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x00003754 lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x00003758 addiu sp, sp, 0x40            |     
    0x0000375c jr ra                         |     return v0;
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/overlayimage.cgi @ 0x37c8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.backend_set_default_image ()     | void backend_set_default_image () {
    0x000037c8 lui gp, 2                         |     
    0x000037cc addiu gp, gp, -0x47b8             |     
    0x000037d0 addu gp, gp, t9                   |     gp += t9;
    0x000037d4 addiu sp, sp, -0x100              |     
    0x000037d8 lw t9, -0x7eac(gp)                |     t9 = sym.imp.g_strdup_printf
    0x000037dc sw s2, 0xec(sp)                   |     *(var_ech) = s2;
    0x000037e0 lw s2, -0x7efc(gp)                |     s2 = *((gp - 8127));
    0x000037e4 sw s4, 0xf4(sp)                   |     *(var_f4h) = s4;
    0x000037e8 sw s1, 0xe8(sp)                   |     *(var_e8h) = s1;
    0x000037ec lw s4, -0x7fdc(gp)                |     s4 = *((gp - 8183));
    0x000037f0 lw v0, (s2)                       |     v0 = *(s2);
    0x000037f4 move s1, a0                       |     s1 = a0;
    0x000037f8 lw a0, -0x7fdc(gp)                |     a0 = *((gp - 8183));
    0x000037fc sw gp, 0x10(sp)                   |     *(var_10h) = gp;
    0x00003800 sw ra, 0xfc(sp)                   |     *(var_fch) = ra;
    0x00003804 sw s3, 0xf0(sp)                   |     *(var_f0h) = s3;
    0x00003808 addiu a1, s4, 0x6140              |     a1 = s4 + str._etc_overlays;
    0x0000380c addiu a0, a0, 0x61a0              |     a0 += 0x61a0;
    0x00003810 sw s5, 0xf8(sp)                   |     *(var_f8h) = s5;
    0x00003814 sw s0, 0xe4(sp)                   |     *(var_e4h) = s0;
    0x00003818 sw v0, 0xdc(sp)                   |     *(var_dch) = v0;
    0x0000381c jalr t9                           |     t9 ();
    0x00003820 nop                               |     
    0x00003824 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00003828 addiu a2, sp, 0x4c                |     a2 = sp + 0x4c;
    0x0000382c move a1, s1                       |     a1 = s1;
    0x00003830 lw t9, -0x7e3c(gp)                |     t9 = sym.imp.__xstat;
    0x00003834 addiu a0, zero, 3                 |     a0 = 3;
    0x00003838 move s3, v0                       |     s3 = v0;
    0x0000383c jalr t9                           |     t9 ();
    0x00003840 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 < 0) {
    0x00003844 bltz v0, 0x399c                   |         goto label_1;
                                                 |     }
    0x00003848 lw t9, -0x7f24(gp)                |     t9 = sym.imp.strstr;
    0x0000384c move a1, s3                       |     a1 = s3;
    0x00003850 move a0, s1                       |     a0 = s1;
    0x00003854 jalr t9                           |     t9 ();
    0x00003858 move s0, v0                       |     s0 = v0;
    0x0000385c lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 != s1) {
    0x00003860 bne v0, s1, 0x3944                |         goto label_2;
                                                 |     }
    0x00003864 lw a1, -0x7fdc(gp)                |     a1 = *((gp - 8183));
    0x00003868 lw t9, -0x7f24(gp)                |     t9 = sym.imp.strstr;
    0x0000386c addiu a1, a1, 0x6214              |     a1 += 0x6214;
    0x00003870 move a0, v0                       |     a0 = v0;
    0x00003874 jalr t9                           |     t9 ();
    0x00003878 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x0000387c move a0, s0                       |     a0 = s0;
    0x00003880 lw t9, -0x7ed4(gp)                |     t9 = sym.imp.strlen;
    0x00003884 move s5, v0                       |     s5 = v0;
    0x00003888 jalr t9                           |     t9 ();
    0x0000388c addiu v0, v0, -4                  |     v0 += -4;
    0x00003890 addu v0, s0, v0                   |     v0 = s0 + v0;
    0x00003894 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (s5 != v0) {
    0x00003898 bne s5, v0, 0x3944                |         goto label_2;
                                                 |     }
    0x0000389c lw t9, -0x7e0c(gp)                |     t9 = sym.imp.g_free;
    0x000038a0 move a0, s3                       |     a0 = s3;
    0x000038a4 jalr t9                           |     t9 ();
    0x000038a8 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x000038ac addiu s1, sp, 0x1c                |     s1 = sp + 0x1c;
    0x000038b0 move a0, s1                       |     a0 = s1;
    0x000038b4 lw t9, -0x7e34(gp)                |     t9 = sym.imp.cli_resetOptions;
    0x000038b8 sw zero, 0x18(sp)                 |     *(var_18h_2) = 0;
    0x000038bc jalr t9                           |     t9 ();
    0x000038c0 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x000038c4 addiu s3, sp, 0x18                |     s3 = sp + 0x18;
    0x000038c8 move a3, s3                       |     a3 = s3;
    0x000038cc lw a0, -0x7fdc(gp)                |     a0 = *((gp - 8183));
    0x000038d0 lw t9, -0x7f80(gp)                |     t9 = sym.imp.cli_setCustomParam;
    0x000038d4 move a2, s1                       |     a2 = s1;
    0x000038d8 move a1, s0                       |     a1 = s0;
    0x000038dc addiu a0, a0, 0x5fa4              |     a0 += str.root.Image.OverlayPath;
    0x000038e0 jalr t9                           |     t9 ();
    0x000038e4 lw v0, 0x18(sp)                   |     v0 = *(var_18h_2);
    0x000038e8 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x000038ec beqz v0, 0x38f8                   |     
                                                 |     while (v0 != 0) {
    0x000038f0 addiu v0, zero, -0x3e8            |         v0 = -0x3e8;
    0x000038f4 b 0x3914                          |         goto label_3;
    0x000038f8 lw t9, -0x7f88(gp)                |         t9 = sym.imp.cli_sync;
    0x000038fc move a1, s3                       |         a1 = s3;
    0x00003900 move a0, s1                       |         a0 = s1;
    0x00003904 jalr t9                           |         t9 ();
    0x00003908 lw v0, 0x18(sp)                   |         v0 = *(var_18h_2);
    0x0000390c lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00003910 bnez v0, 0x38f0                   |         
                                                 |     }
                                                 |     do {
                                                 | label_3:
    0x00003914 lw a0, 0xdc(sp)                   |         a0 = *(var_dch);
    0x00003918 lw v1, (s2)                       |         v1 = *(s2);
    0x0000391c lw ra, 0xfc(sp)                   |         ra = *(var_fch);
                                                 |         if (a0 != v1) {
    0x00003920 bne a0, v1, 0x39c0                |             goto label_4;
                                                 |         }
    0x00003924 lw s5, 0xf8(sp)                   |         s5 = *(var_f8h);
    0x00003928 lw s4, 0xf4(sp)                   |         s4 = *(var_f4h);
    0x0000392c lw s3, 0xf0(sp)                   |         s3 = *(var_f0h);
    0x00003930 lw s2, 0xec(sp)                   |         s2 = *(var_ech);
    0x00003934 lw s1, 0xe8(sp)                   |         s1 = *(var_e8h);
    0x00003938 lw s0, 0xe4(sp)                   |         s0 = *(var_e4h);
    0x0000393c addiu sp, sp, 0x100               |         
    0x00003940 jr ra                             |         return v0;
                                                 | label_2:
    0x00003944 lw a2, -0x7fdc(gp)                |         a2 = *((gp - 8183));
    0x00003948 lw t9, -0x7f04(gp)                |         t9 = sym.imp.__syslog_chk;
    0x0000394c move a3, s1                       |         a3 = s1;
    0x00003950 addiu a2, a2, 0x61c0              |         a2 += str.File_exists_but_path_is_not_correct._path:__s;
    0x00003954 addiu a1, zero, 1                 |         a1 = 1;
    0x00003958 addiu a0, zero, 3                 |         a0 = 3;
    0x0000395c jalr t9                           |         t9 ();
    0x00003960 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00003964 addiu a3, s4, 0x6140              |         a3 = s4 + str._etc_overlays;
    0x00003968 lw a2, -0x7fdc(gp)                |         a2 = *((gp - 8183));
    0x0000396c lw t9, -0x7f04(gp)                |         t9 = sym.imp.__syslog_chk;
    0x00003970 addiu a2, a2, 0x61f0              |         a2 += str.Correct_path_format_is__s__FILENAME_.ovl;
                                                 | label_0:
    0x00003974 addiu a1, zero, 1                 |         a1 = 1;
    0x00003978 addiu a0, zero, 3                 |         a0 = 3;
    0x0000397c jalr t9                           |         t9 ();
    0x00003980 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00003984 lw t9, -0x7e0c(gp)                |         t9 = sym.imp.g_free;
    0x00003988 move a0, s3                       |         a0 = s3;
    0x0000398c jalr t9                           |         t9 ();
    0x00003990 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00003994 addiu v0, zero, -0x3eb            |         v0 = -0x3eb;
    0x00003998 b 0x3914                          |         
                                                 |     } while (1);
                                                 | label_1:
    0x0000399c lw t9, -0x7e08(gp)                |     t9 = sym.imp.__errno_location;
    0x000039a0 jalr t9                           |     t9 ();
    0x000039a4 nop                               |     
    0x000039a8 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x000039ac lw a3, (v0)                       |     a3 = *(v0);
    0x000039b0 lw a2, -0x7fdc(gp)                |     a2 = *((gp - 8183));
    0x000039b4 lw t9, -0x7f04(gp)                |     t9 = sym.imp.__syslog_chk;
    0x000039b8 addiu a2, a2, 0x61a4              |     a2 += str.File_Path_doesnt_exist__d;
    0x000039bc b 0x3974                          |     goto label_0;
                                                 | label_4:
    0x000039c0 lw t9, -0x7f2c(gp)                |     t9 = sym.imp.__stack_chk_fail;
    0x000039c4 jalr t9                           |     t9 ();
    0x000039c8 nop                               |     
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/overlayimage.cgi @ 0x2864 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.backend_store_image ()       | void backend_store_image () {
    0x00002864 lui gp, 2                     |     
    0x00002868 addiu gp, gp, -0x3854         |     
    0x0000286c addu gp, gp, t9               |     gp += t9;
    0x00002870 addiu sp, sp, -0x198          |     
    0x00002874 lw t9, -0x7e2c(gp)            |     t9 = sym.imp.statfs;
    0x00002878 sw s2, 0x178(sp)              |     *(var_178h) = s2;
    0x0000287c lw s2, -0x7efc(gp)            |     s2 = *((gp - 8127));
    0x00002880 lw v1, 0x1a8(sp)              |     v1 = *(arg_1a8h);
    0x00002884 sw s1, 0x174(sp)              |     *(var_174h) = s1;
    0x00002888 lw v0, (s2)                   |     v0 = *(s2);
    0x0000288c lw s1, -0x7fdc(gp)            |     s1 = *((gp - 8183));
    0x00002890 sw v1, 0x28(sp)               |     *(var_28h) = v1;
    0x00002894 lw v1, 0x1ac(sp)              |     v1 = *(arg_1ach);
    0x00002898 sw s3, 0x17c(sp)              |     *(var_17ch) = s3;
    0x0000289c addiu s3, sp, 0x5c            |     s3 = sp + 0x5c;
    0x000028a0 sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x000028a4 sw s5, 0x184(sp)              |     *(var_184h) = s5;
    0x000028a8 sw s4, 0x180(sp)              |     *(var_180h) = s4;
    0x000028ac sw s0, 0x170(sp)              |     *(var_170h) = s0;
    0x000028b0 sw ra, 0x194(sp)              |     *(var_194h) = ra;
    0x000028b4 sw fp, 0x190(sp)              |     *(var_190h) = fp;
    0x000028b8 sw s7, 0x18c(sp)              |     *(var_18ch) = s7;
    0x000028bc sw s6, 0x188(sp)              |     *(var_188h) = s6;
    0x000028c0 move s4, a0                   |     s4 = a0;
    0x000028c4 move s0, a1                   |     s0 = a1;
    0x000028c8 addiu a0, s1, 0x60e4          |     a0 = s1 + str._tmp;
    0x000028cc move a1, s3                   |     a1 = s3;
    0x000028d0 sw a3, 0x1a4(sp)              |     *(arg_1a4h) = a3;
    0x000028d4 sw v1, 0x2c(sp)               |     *(var_2ch) = v1;
    0x000028d8 sw v0, 0x16c(sp)              |     *(var_16ch) = v0;
    0x000028dc move s5, a2                   |     s5 = a2;
    0x000028e0 jalr t9                       |     t9 ();
    0x000028e4 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 < 0) {
    0x000028e8 bltz v0, 0x2a48               |         goto label_20;
                                             |     }
    0x000028ec lw v1, 0x60(sp)               |     v1 = *(var_60h);
    0x000028f0 lw v0, 0x6c(sp)               |     v0 = *(var_6ch);
    0x000028f4 mul v0, v0, v1                |     __asm ("mul v0, v0, v1");
    0x000028f8 lui v1, 1                     |     v1 = 0x19000;
    0x000028fc ori v1, v1, 0x9000            |     
    0x00002900 subu v0, v0, s0               |     __asm ("subu v0, v0, s0");
    0x00002904 slt v0, v0, v1                |     v0 = (v0 < v1) ? 1 : 0;
    0x00002908 lw s7, -0x7fdc(gp)            |     s7 = *((gp - 8183));
                                             |     if (v0 != 0) {
    0x0000290c bnez v0, 0x2a48               |         goto label_20;
                                             |     }
    0x00002910 lw t9, -0x7eac(gp)            |     t9 = sym.imp.g_strdup_printf
    0x00002914 addiu a1, s1, 0x60e4          |     a1 = s1 + str._tmp;
    0x00002918 move a2, s5                   |     a2 = s5;
    0x0000291c addiu a0, s7, 0x60ec          |     a0 = s7 + str._s__s;
    0x00002920 jalr t9                       |     t9 ();
    0x00002924 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00002928 move a0, v0                   |     a0 = v0;
    0x0000292c move s1, v0                   |     s1 = v0;
    0x00002930 lw a1, -0x7fdc(gp)            |     a1 = *((gp - 8183));
    0x00002934 lw t9, -0x7f3c(gp)            |     t9 = sym.imp.fopen;
    0x00002938 addiu a1, a1, 0x60f4          |     a1 += 0x60f4;
    0x0000293c jalr t9                       |     t9 ();
    0x00002940 move s6, v0                   |     s6 = v0;
    0x00002944 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == 0) {
    0x00002948 beqz v0, 0x3030               |         goto label_21;
                                             |     }
    0x0000294c lw t9, -0x7f18(gp)            |     t9 = sym.imp.fwrite;
    0x00002950 move a3, v0                   |     a3 = v0;
    0x00002954 move a2, s0                   |     a2 = s0;
    0x00002958 addiu a1, zero, 1             |     a1 = 1;
    0x0000295c move a0, s4                   |     a0 = s4;
    0x00002960 jalr t9                       |     t9 ();
    0x00002964 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (s0 == v0) {
    0x00002968 beq s0, v0, 0x2a50            |         goto label_22;
                                             |     }
    0x0000296c lw t9, -0x7e0c(gp)            |     t9 = sym.imp.g_free;
    0x00002970 move a0, s1                   |     a0 = s1;
    0x00002974 jalr t9                       |     t9 ();
    0x00002978 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0000297c move a0, s6                   |     a0 = s6;
    0x00002980 lw t9, -0x7ec8(gp)            |     t9 = sym.imp.fclose;
    0x00002984 addiu s0, zero, -0x3e8        |     s0 = -0x3e8;
    0x00002988 jalr t9                       |     t9 ();
    0x0000298c lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     do {
                                             | label_19:
    0x00002990 move s4, zero                 |         s4 = 0;
                                             | label_7:
    0x00002994 move s6, zero                 |         s6 = 0;
    0x00002998 move fp, zero                 |         fp = 0;
    0x0000299c move s5, zero                 |         s5 = 0;
    0x000029a0 move s7, zero                 |         s7 = 0;
    0x000029a4 move s1, zero                 |         s1 = 0;
                                             | label_0:
    0x000029a8 lw t9, -0x7e0c(gp)            |         t9 = sym.imp.g_free;
    0x000029ac move a0, s6                   |         a0 = s6;
    0x000029b0 jalr t9                       |         t9 ();
    0x000029b4 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x000029b8 lw t9, -0x7e0c(gp)            |         t9 = sym.imp.g_free;
    0x000029bc move a0, s7                   |         a0 = s7;
    0x000029c0 jalr t9                       |         t9 ();
    0x000029c4 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x000029c8 lw t9, -0x7e0c(gp)            |         t9 = sym.imp.g_free;
    0x000029cc move a0, s5                   |         a0 = s5;
    0x000029d0 jalr t9                       |         t9 ();
    0x000029d4 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x000029d8 lw t9, -0x7e0c(gp)            |         t9 = sym.imp.g_free;
    0x000029dc move a0, s1                   |         a0 = s1;
    0x000029e0 jalr t9                       |         t9 ();
    0x000029e4 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x000029e8 lw t9, -0x7e0c(gp)            |         t9 = sym.imp.g_free;
    0x000029ec move a0, s4                   |         a0 = s4;
    0x000029f0 jalr t9                       |         t9 ();
    0x000029f4 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x000029f8 lw t9, -0x7e0c(gp)            |         t9 = sym.imp.g_free;
    0x000029fc move a0, fp                   |         a0 = fp;
    0x00002a00 jalr t9                       |         t9 ();
    0x00002a04 lw a0, 0x16c(sp)              |         a0 = *(var_16ch);
    0x00002a08 lw v1, (s2)                   |         v1 = *(s2);
    0x00002a0c lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00002a10 move v0, s0                   |         v0 = s0;
                                             |         if (a0 != v1) {
    0x00002a14 bne a0, v1, 0x3474            |             goto label_23;
                                             |         }
    0x00002a18 lw ra, 0x194(sp)              |         ra = *(var_194h);
    0x00002a1c lw fp, 0x190(sp)              |         fp = *(var_190h);
    0x00002a20 lw s7, 0x18c(sp)              |         s7 = *(var_18ch);
    0x00002a24 lw s6, 0x188(sp)              |         s6 = *(var_188h);
    0x00002a28 lw s5, 0x184(sp)              |         s5 = *(var_184h);
    0x00002a2c lw s4, 0x180(sp)              |         s4 = *(var_180h);
    0x00002a30 lw s3, 0x17c(sp)              |         s3 = *(var_17ch);
    0x00002a34 lw s2, 0x178(sp)              |         s2 = *(var_178h);
    0x00002a38 lw s1, 0x174(sp)              |         s1 = *(var_174h);
    0x00002a3c lw s0, 0x170(sp)              |         s0 = *(var_170h);
    0x00002a40 addiu sp, sp, 0x198           |         
    0x00002a44 jr ra                         |         return v0;
                                             | label_20:
    0x00002a48 addiu s0, zero, -0x3ef        |         s0 = -0x3ef;
    0x00002a4c b 0x2990                      |         
                                             |     } while (1);
                                             | label_22:
    0x00002a50 lw t9, -0x7ec8(gp)            |     t9 = sym.imp.fclose;
    0x00002a54 move a0, s6                   |     a0 = s6;
    0x00002a58 jalr t9                       |     t9 ();
    0x00002a5c lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (s1 == 0) {
    0x00002a60 beqz s1, 0x3578               |         goto label_24;
                                             |     }
    0x00002a64 lw t9, -0x7fdc(gp)            |     t9 = *((gp - 8183));
    0x00002a68 addiu t9, t9, 0x1fb0          |     t9 += fcn.00001fb0;
    0x00002a6c bal 0x1fb0                    |     fcn_00001fb0 ();
    0x00002a70 nop                           |     
    0x00002a74 move fp, v0                   |     fp = v0;
    0x00002a78 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x00002a7c beqz v0, 0x2a9c               |         
    0x00002a80 addiu v0, zero, 3             |         v0 = 3;
    0x00002a84 lw s4, -0x7fdc(gp)            |         s4 = *((gp - 8183));
                                             |         if (fp != v0) {
    0x00002a88 beq fp, v0, 0x2a9c            |             
    0x00002a8c lw s0, -0x7fdc(gp)            |             s0 = *((gp - 8183));
    0x00002a90 addiu s4, s4, 0x60b0          |             s4 += str.__dump_palette;
    0x00002a94 addiu s0, s0, 0x60c0          |             s0 += str._usr_bin_bmp2overlay;
    0x00002a98 b 0x2aac                      |             
                                             |         }
                                             |     } else {
    0x00002a9c lw s4, -0x7fdc(gp)            |         s4 = *((gp - 8183));
    0x00002aa0 lw s0, -0x7fdc(gp)            |         s0 = *((gp - 8183));
    0x00002aa4 addiu s4, s4, 0x6098          |         s4 += 0x6098;
    0x00002aa8 addiu s0, s0, 0x609c          |         s0 += str._usr_bin_image2ovl;
                                             |     }
    0x00002aac lw t9, -0x7f64(gp)            |     t9 = sym.imp.pipe;
    0x00002ab0 addiu v0, sp, 0x54            |     v0 = sp + 0x54;
    0x00002ab4 sw v0, 0x30(sp)               |     *(var_30h) = v0;
    0x00002ab8 move a0, v0                   |     a0 = v0;
    0x00002abc jalr t9                       |     t9 ();
    0x00002ac0 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 >= 0) {
    0x00002ac4 bltz v0, 0x2b88               |         
    0x00002ac8 lw t9, -0x7f64(gp)            |         t9 = sym.imp.pipe;
    0x00002acc move a0, s3                   |         a0 = s3;
    0x00002ad0 jalr t9                       |         t9 ();
    0x00002ad4 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 < 0) {
    0x00002ad8 bltz v0, 0x33bc               |             goto label_25;
                                             |         }
    0x00002adc lw t9, -0x7f4c(gp)            |         t9 = sym.imp.fork;
    0x00002ae0 jalr t9                       |         t9 ();
    0x00002ae4 nop                           |         
    0x00002ae8 move s6, v0                   |         s6 = v0;
    0x00002aec lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00002af0 lw a0, 0x54(sp)               |         a0 = *(var_54h);
                                             |         if (v0 == 0) {
    0x00002af4 beqz v0, 0x3480               |             goto label_26;
                                             |         }
    0x00002af8 lw t9, -0x7f10(gp)            |         t9 = sym.imp.close;
    0x00002afc addiu s4, sp, 0x108           |         s4 = sp + 0x108;
    0x00002b00 jalr t9                       |         t9 ();
    0x00002b04 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00002b08 lw t9, -0x7f10(gp)            |         t9 = sym.imp.close;
    0x00002b0c lw a0, 0x60(sp)               |         a0 = *(var_60h);
    0x00002b10 jalr t9                       |         t9 ();
    0x00002b14 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00002b18 addiu a2, zero, 0x64          |         a2 = 0x64;
    0x00002b1c move a1, zero                 |         a1 = 0;
    0x00002b20 lw t9, -0x7e6c(gp)            |         t9 = sym.imp.memset;
    0x00002b24 move a0, s4                   |         a0 = s4;
    0x00002b28 jalr t9                       |         t9 ();
    0x00002b2c lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00002b30 lw a0, 0x5c(sp)               |         a0 = *(var_5ch);
    0x00002b34 addiu a2, zero, 0x64          |         a2 = 0x64;
    0x00002b38 lw t9, -0x7e8c(gp)            |         t9 = sym.imp.read;
    0x00002b3c move a1, s4                   |         a1 = s4;
    0x00002b40 jalr t9                       |         t9 ();
    0x00002b44 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 < 0) {
    0x00002b48 bltz v0, 0x2b88               |             goto label_27;
                                             |         }
    0x00002b4c lw t9, -0x7ef4(gp)            |         t9 = sym.imp.waitpid;
    0x00002b50 addiu v0, sp, 0x50            |         v0 = sp + 0x50;
    0x00002b54 sw v0, 0x34(sp)               |         *(var_34h) = v0;
    0x00002b58 move a2, zero                 |         a2 = 0;
    0x00002b5c move a1, v0                   |         a1 = v0;
    0x00002b60 move a0, s6                   |         a0 = s6;
    0x00002b64 jalr t9                       |         t9 ();
    0x00002b68 lw s0, 0x50(sp)               |         s0 = *(var_50h);
    0x00002b6c andi v0, s0, 0x7f             |         v0 = s0 & 0x7f;
    0x00002b70 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 != 0) {
    0x00002b74 bnez v0, 0x2bb4               |             goto label_28;
                                             |         }
    0x00002b78 ext s0, s0, 8, 8              |         __asm ("ext s0, s0, 8, 8");
    0x00002b7c slti v0, s0, 7                |         v0 = (s0 < 7) ? 1 : 0;
    0x00002b80 lw v0, -0x7fdc(gp)            |         v0 = *((gp - 8183));
                                             |         if (v0 != 0) {
    0x00002b84 bnez v0, 0x2e88               |             goto label_29;
                                             |         }
                                             |     }
                                             | label_27:
    0x00002b88 move s7, zero                 |     s7 = 0;
    0x00002b8c move fp, zero                 |     fp = 0;
    0x00002b90 move s6, zero                 |     s6 = 0;
    0x00002b94 addiu s0, zero, -0x3e8        |     s0 = -0x3e8;
    0x00002b98 move s4, zero                 |     s4 = 0;
    0x00002b9c move s5, zero                 |     s5 = 0;
                                             | label_1:
    0x00002ba0 lw t9, -0x7ee0(gp)            |     t9 = sym.imp.unlink;
                                             | label_8:
    0x00002ba4 move a0, s1                   |     a0 = s1;
    0x00002ba8 jalr t9                       |     t9 ();
    0x00002bac lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00002bb0 b 0x29a8                      |     goto label_0;
                                             |     do {
                                             | label_28:
    0x00002bb4 lw a1, -0x7fdc(gp)            |         a1 = *((gp - 8183));
    0x00002bb8 lw t9, -0x7f24(gp)            |         t9 = sym.imp.strstr;
    0x00002bbc addiu a1, a1, 0x60f8          |         a1 += str.typefullcolor;
    0x00002bc0 move a0, s4                   |         a0 = s4;
    0x00002bc4 jalr t9                       |         t9 ();
    0x00002bc8 addiu v1, zero, 2             |         v1 = 2;
    0x00002bcc lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (fp == v1) {
    0x00002bd0 beq fp, v1, 0x2eb0            |             goto label_30;
                                             |         }
                                             |         if (v0 == 0) {
    0x00002bd4 beql v0, zero, 0x2ed8         |             goto label_31;
                                             |         }
    0x00002bd8 move s7, zero                 |         s7 = 0;
                                             | label_3:
    0x00002bdc lw v0, 0x1a4(sp)              |         v0 = *(arg_1a4h);
                                             | label_2:
    0x00002be0 lw v0, 0x28(sp)               |         v0 = *(var_28h);
                                             |         if (v0 != 0) {
    0x00002be4 beqz v0, 0x2c08               |             
    0x00002be8 lw a1, -0x7fdc(gp)            |             a1 = *((gp - 8183));
    0x00002bec lw t9, -0x7f24(gp)            |             t9 = sym.imp.strstr;
    0x00002bf0 addiu a1, a1, 0x611c          |             a1 += str.scalabletrue;
    0x00002bf4 move a0, s4                   |             a0 = s4;
    0x00002bf8 jalr t9                       |             t9 ();
    0x00002bfc lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 == 0) {
    0x00002c00 beqz v0, 0x3458               |                 goto label_32;
                                             |             }
    0x00002c04 lw v0, 0x28(sp)               |             v0 = *(var_28h);
                                             |         }
    0x00002c08 lw t9, -0x7f6c(gp)            |         t9 = sym.imp.strdup;
                                             |         if (v0 != 0) {
    0x00002c0c beqz v0, 0x2c30               |             
    0x00002c10 lw a1, -0x7fdc(gp)            |             a1 = *((gp - 8183));
    0x00002c14 lw t9, -0x7f24(gp)            |             t9 = sym.imp.strstr;
    0x00002c18 addiu a1, a1, 0x612c          |             a1 += str.transparencytrue;
    0x00002c1c move a0, s4                   |             a0 = s4;
    0x00002c20 jalr t9                       |             t9 ();
    0x00002c24 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 != 0) {
    0x00002c28 bnez v0, 0x33f8               |                 goto label_33;
                                             |             }
    0x00002c2c lw t9, -0x7f6c(gp)            |             t9 = sym.imp.strdup;
                                             |         }
    0x00002c30 move a0, s5                   |         a0 = s5;
    0x00002c34 jalr t9                       |         t9 ();
    0x00002c38 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00002c3c addiu a1, zero, 0x2e          |         a1 = 0x2e;
    0x00002c40 move a0, v0                   |         a0 = v0;
    0x00002c44 lw t9, -0x7e80(gp)            |         t9 = sym.imp.strrchr;
    0x00002c48 move s6, v0                   |         s6 = v0;
    0x00002c4c jalr t9                       |         t9 ();
    0x00002c50 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 != 0) {
    0x00002c54 beqz v0, 0x2c5c               |             
    0x00002c58 sb zero, (v0)                 |             *(v0) = 0;
                                             |         }
    0x00002c5c lw v0, 0x1a4(sp)              |         v0 = *(arg_1a4h);
    0x00002c60 lw a1, -0x7fdc(gp)            |         a1 = *((gp - 8183));
                                             |         if (v0 != 0) {
    0x00002c64 bnez v0, 0x2f7c               |             goto label_34;
                                             |         }
    0x00002c68 lw t9, -0x7eac(gp)            |         t9 = sym.imp.g_strdup_printf
    0x00002c6c addiu a0, s7, 0x60ec          |         a0 = s7 + str._s__s;
    0x00002c70 move a2, s6                   |         a2 = s6;
    0x00002c74 addiu a1, a1, 0x6140          |         a1 += str._etc_overlays;
    0x00002c78 jalr t9                       |         t9 ();
    0x00002c7c lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00002c80 move s7, v0                   |         s7 = v0;
    0x00002c84 move s5, zero                 |         s5 = 0;
                                             | label_5:
    0x00002c88 lw v1, -0x7fdc(gp)            |         v1 = *((gp - 8183));
    0x00002c8c lw t9, -0x7eb4(gp)            |         t9 = sym.imp.mkstemp;
    0x00002c90 addiu v0, v1, 0x6184          |         v0 = v1 + str._tmp_overlay_palette.XXXXXX;
    0x00002c94 lw t1, 0x6184(v1)             |         t1 = *(v1);
    0x00002c98 lw t0, 4(v0)                  |         t0 = *((v0 + 1));
    0x00002c9c lw a3, 8(v0)                  |         a3 = *((v0 + 2));
    0x00002ca0 lw a2, 0xc(v0)                |         a2 = *((v0 + 3));
    0x00002ca4 lw a1, 0x10(v0)               |         a1 = *((v0 + 4));
    0x00002ca8 lw v1, 0x14(v0)               |         v1 = *((v0 + 5));
    0x00002cac lw v0, 0x18(v0)               |         v0 = *((v0 + 6));
    0x00002cb0 addiu a0, sp, 0xec            |         a0 = sp + 0xec;
    0x00002cb4 sw a0, 0x38(sp)               |         *(var_38h) = a0;
    0x00002cb8 sw t1, 0xec(sp)               |         *(var_ech) = t1;
    0x00002cbc sw t0, 0xf0(sp)               |         *(var_f0h) = t0;
    0x00002cc0 sw a3, 0xf4(sp)               |         *(var_f4h) = a3;
    0x00002cc4 sw a2, 0xf8(sp)               |         *(var_f8h) = a2;
    0x00002cc8 sw a1, 0xfc(sp)               |         *(var_fch) = a1;
    0x00002ccc sw v1, 0x100(sp)              |         *(var_100h) = v1;
    0x00002cd0 sw v0, 0x104(sp)              |         *(var_104h) = v0;
    0x00002cd4 jalr t9                       |         t9 ();
    0x00002cd8 move s0, v0                   |         s0 = v0;
    0x00002cdc lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 >= 0) {
    0x00002ce0 bltz v0, 0x2e78               |             
    0x00002ce4 lw a1, -0x7fdc(gp)            |             a1 = *((gp - 8183));
    0x00002ce8 lw t9, -0x7e44(gp)            |             t9 = sym.imp.fdopen;
    0x00002cec addiu a1, a1, 0x616c          |             a1 += 0x616c;
    0x00002cf0 move a0, v0                   |             a0 = v0;
    0x00002cf4 jalr t9                       |             t9 ();
    0x00002cf8 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 == 0) {
    0x00002cfc beqz v0, 0x2e78               |                 goto label_35;
                                             |             }
    0x00002d00 lw a3, 0x28(sp)               |             a3 = *(var_28h);
    0x00002d04 lw a2, -0x7fdc(gp)            |             a2 = *((gp - 8183));
                                             |             if (a3 == 0) {
    0x00002d08 beqz a3, 0x3088               |                 goto label_36;
                                             |             }
    0x00002d0c lw t9, -0x7e38(gp)            |             t9 = sym.imp.__fprintf_chk
    0x00002d10 addiu a2, a2, 0x6178          |             a2 += str.f__s;
    0x00002d14 addiu a1, zero, 1             |             a1 = 1;
    0x00002d18 move a0, v0                   |             a0 = v0;
    0x00002d1c sw v0, 0x28(sp)               |             *(var_28h) = v0;
    0x00002d20 jalr t9                       |             t9 ();
    0x00002d24 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x00002d28 lw v1, 0x28(sp)               |             v1 = *(var_28h);
                                             | label_9:
    0x00002d2c lw t9, -0x7ec8(gp)            |             t9 = sym.imp.fclose;
    0x00002d30 move a0, v1                   |             a0 = v1;
    0x00002d34 jalr t9                       |             t9 ();
    0x00002d38 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x00002d3c lw t9, -0x7f10(gp)            |             t9 = sym.imp.close;
    0x00002d40 move a0, s0                   |             a0 = s0;
    0x00002d44 jalr t9                       |             t9 ();
    0x00002d48 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (fp == 0) {
    0x00002d4c beqz fp, 0x3000               |                 goto label_37;
                                             |             }
    0x00002d50 addiu v0, zero, 3             |             v0 = 3;
    0x00002d54 lw v0, -0x7fdc(gp)            |             v0 = *((gp - 8183));
                                             |             if (fp == v0) {
    0x00002d58 beq fp, v0, 0x3328            |                 goto label_38;
                                             |             }
    0x00002d5c lw v0, 0x38(sp)               |             v0 = *(var_38h);
    0x00002d60 sw s7, 0x44(sp)               |             *(var_44h) = s7;
    0x00002d64 sw v0, 0x3c(sp)               |             *(var_3ch) = v0;
    0x00002d68 lw v0, -0x7fdc(gp)            |             v0 = *((gp - 8183));
    0x00002d6c sw s1, 0x40(sp)               |             *(var_40h) = s1;
    0x00002d70 addiu v0, v0, 0x60c0          |             v0 += str._usr_bin_bmp2overlay;
    0x00002d74 sw zero, 0x4c(sp)             |             *(var_4ch) = 0;
    0x00002d78 sw zero, 0x48(sp)             |             *(var_48h) = 0;
    0x00002d7c sw v0, 0x28(sp)               |             *(var_28h) = v0;
                                             | label_6:
    0x00002d80 lw t9, -0x7f64(gp)            |             t9 = sym.imp.pipe;
    0x00002d84 lw a0, 0x30(sp)               |             a0 = *(var_30h);
    0x00002d88 jalr t9                       |             t9 ();
    0x00002d8c lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 < 0) {
    0x00002d90 bltz v0, 0x2e78               |                 goto label_35;
                                             |             }
    0x00002d94 lw t9, -0x7f64(gp)            |             t9 = sym.imp.pipe;
    0x00002d98 move a0, s3                   |             a0 = s3;
    0x00002d9c jalr t9                       |             t9 ();
    0x00002da0 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 < 0) {
    0x00002da4 bltz v0, 0x342c               |                 goto label_39;
                                             |             }
    0x00002da8 lw t9, -0x7f4c(gp)            |             t9 = sym.imp.fork;
    0x00002dac jalr t9                       |             t9 ();
    0x00002db0 nop                           |             
    0x00002db4 move s0, v0                   |             s0 = v0;
    0x00002db8 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x00002dbc lw a0, 0x54(sp)               |             a0 = *(var_54h);
                                             |             if (v0 == 0) {
    0x00002dc0 beqz v0, 0x34f0               |                 goto label_40;
                                             |             }
    0x00002dc4 lw t9, -0x7f10(gp)            |             t9 = sym.imp.close;
    0x00002dc8 jalr t9                       |             t9 ();
    0x00002dcc nop                           |             
    0x00002dd0 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x00002dd4 lw t9, -0x7f10(gp)            |             t9 = sym.imp.close;
    0x00002dd8 lw a0, 0x60(sp)               |             a0 = *(var_60h);
    0x00002ddc jalr t9                       |             t9 ();
    0x00002de0 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x00002de4 addiu a2, zero, 0x64          |             a2 = 0x64;
    0x00002de8 move a1, zero                 |             a1 = 0;
    0x00002dec lw t9, -0x7e6c(gp)            |             t9 = sym.imp.memset;
    0x00002df0 move a0, s4                   |             a0 = s4;
    0x00002df4 jalr t9                       |             t9 ();
    0x00002df8 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x00002dfc lw a0, 0x5c(sp)               |             a0 = *(var_5ch);
    0x00002e00 addiu a2, zero, 0x64          |             a2 = 0x64;
    0x00002e04 lw t9, -0x7e8c(gp)            |             t9 = sym.imp.read;
    0x00002e08 move a1, s4                   |             a1 = s4;
    0x00002e0c jalr t9                       |             t9 ();
    0x00002e10 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 < 0) {
    0x00002e14 bltz v0, 0x2e78               |                 goto label_35;
                                             |             }
    0x00002e18 lw t9, -0x7e60(gp)            |             t9 = sym.imp.strchr;
    0x00002e1c addiu a1, zero, 0xa           |             a1 = 0xa;
    0x00002e20 move a0, s4                   |             a0 = s4;
    0x00002e24 jalr t9                       |             t9 ();
    0x00002e28 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 != 0) {
    0x00002e2c beqz v0, 0x2e34               |                 
    0x00002e30 sb zero, (v0)                 |                 *(v0) = 0;
                                             |             }
    0x00002e34 lw t9, -0x7ee0(gp)            |             t9 = sym.imp.unlink;
    0x00002e38 lw a0, 0x38(sp)               |             a0 = *(var_38h);
    0x00002e3c jalr t9                       |             t9 ();
    0x00002e40 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x00002e44 lw a1, 0x34(sp)               |             a1 = *(var_34h);
    0x00002e48 move a0, s0                   |             a0 = s0;
    0x00002e4c lw t9, -0x7ef4(gp)            |             t9 = sym.imp.waitpid;
    0x00002e50 move a2, zero                 |             a2 = 0;
    0x00002e54 jalr t9                       |             t9 ();
    0x00002e58 lw s0, 0x50(sp)               |             s0 = *(var_50h);
    0x00002e5c andi v0, s0, 0x7f             |             v0 = s0 & 0x7f;
    0x00002e60 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 != 0) {
    0x00002e64 bnez v0, 0x2f04               |                 goto label_41;
                                             |             }
    0x00002e68 ext s0, s0, 8, 8              |             __asm ("ext s0, s0, 8, 8");
    0x00002e6c slti v0, s0, 7                |             v0 = (s0 < 7) ? 1 : 0;
    0x00002e70 lw v0, -0x7fdc(gp)            |             v0 = *((gp - 8183));
                                             |             if (v0 != 0) {
    0x00002e74 bnez v0, 0x2ef0               |                 goto label_42;
                                             |             }
                                             |         }
                                             | label_35:
    0x00002e78 addiu s0, zero, -0x3e8        |         s0 = -0x3e8;
    0x00002e7c move s4, zero                 |         s4 = 0;
                                             | label_4:
    0x00002e80 move fp, zero                 |         fp = 0;
    0x00002e84 b 0x306c                      |         goto label_43;
                                             | label_29:
    0x00002e88 sll s0, s0, 2                 |         s0 <<= 2;
    0x00002e8c addiu v0, v0, 0x6350          |         v0 += 0x6350;
    0x00002e90 lwx s0, s0(v0)                |         __asm ("lwx s0, s0(v0)");
    0x00002e94 move s6, zero                 |         s6 = 0;
    0x00002e98 bgez s0, 0x2bb4               |         
                                             |     } while (s0 >= 0);
    0x00002e9c move s7, zero                 |     s7 = 0;
    0x00002ea0 move fp, zero                 |     fp = 0;
    0x00002ea4 move s4, zero                 |     s4 = 0;
    0x00002ea8 move s5, zero                 |     s5 = 0;
    0x00002eac b 0x2ba0                      |     goto label_1;
                                             | label_30:
    0x00002eb0 lw v0, 0x1a4(sp)              |     v0 = *(arg_1a4h);
                                             |     if (v0 != 0) {
    0x00002eb4 bnez v0, 0x2be0               |         goto label_2;
                                             |     }
    0x00002eb8 lw a1, -0x7fdc(gp)            |     a1 = *((gp - 8183));
    0x00002ebc lw t9, -0x7f24(gp)            |     t9 = sym.imp.strstr;
    0x00002ec0 addiu a1, a1, 0x6108          |     a1 += str.typewin_eight_bits;
    0x00002ec4 move a0, s4                   |     a0 = s4;
    0x00002ec8 jalr t9                       |     t9 ();
    0x00002ecc lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x00002ed0 bnez v0, 0x2bdc               |         goto label_3;
                                             |     }
    0x00002ed4 move s7, zero                 |     s7 = 0;
                                             | label_31:
    0x00002ed8 move fp, zero                 |     fp = 0;
    0x00002edc move s6, zero                 |     s6 = 0;
    0x00002ee0 addiu s0, zero, -0x3ee        |     s0 = -0x3ee;
    0x00002ee4 move s4, zero                 |     s4 = 0;
    0x00002ee8 move s5, zero                 |     s5 = 0;
    0x00002eec b 0x2ba0                      |     goto label_1;
                                             | label_42:
    0x00002ef0 sll s0, s0, 2                 |     s0 <<= 2;
    0x00002ef4 addiu v0, v0, 0x6350          |     v0 += 0x6350;
    0x00002ef8 lwx s0, s0(v0)                |     __asm ("lwx s0, s0(v0)");
                                             |     if (s0 < 0) {
    0x00002efc bltzl s0, 0x2e80              |         goto label_4;
                                             |     }
    0x00002f00 move s4, zero                 |     s4 = 0;
                                             | label_41:
    0x00002f04 lw a0, -0x7fdc(gp)            |     a0 = *((gp - 8183));
    0x00002f08 lw t9, -0x7eac(gp)            |     t9 = sym.imp.g_strdup_printf
    0x00002f0c move a1, s4                   |     a1 = s4;
    0x00002f10 addiu a0, a0, 0x6180          |     a0 += 0x6180;
    0x00002f14 jalr t9                       |     t9 ();
    0x00002f18 move s4, v0                   |     s4 = v0;
    0x00002f1c lw v0, 0x1a4(sp)              |     v0 = *(arg_1a4h);
    0x00002f20 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x00002f24 beqz v0, 0x2f30               |         
    0x00002f28 lw t9, -0x7e80(gp)            |         t9 = sym.imp.strrchr;
                                             |         if (fp == 0) {
    0x00002f2c beqz fp, 0x30a8               |             goto label_44;
                                             |         }
                                             |     }
                                             | label_10:
    0x00002f30 lw a0, -0x7fdc(gp)            |     a0 = *((gp - 8183));
    0x00002f34 lw t9, -0x7e2c(gp)            |     t9 = sym.imp.statfs;
    0x00002f38 move a1, s3                   |     a1 = s3;
    0x00002f3c addiu a0, a0, 0x6170          |     a0 += str._etc;
    0x00002f40 jalr t9                       |     t9 ();
    0x00002f44 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 >= 0) {
    0x00002f48 bltz v0, 0x303c               |         
    0x00002f4c lw v1, 0x60(sp)               |         v1 = *(var_60h);
    0x00002f50 lw v0, 0x6c(sp)               |         v0 = *(var_6ch);
    0x00002f54 mul v0, v0, v1                |         __asm ("mul v0, v0, v1");
    0x00002f58 lui v1, 1                     |         v1 = 0x10000;
    0x00002f5c slt v0, v0, v1                |         v0 = (v0 < v1) ? 1 : 0;
    0x00002f60 lw v0, 0x2c(sp)               |         v0 = *(var_2ch);
                                             |         if (v0 != 0) {
    0x00002f64 bnez v0, 0x303c               |             goto label_45;
                                             |         }
    0x00002f68 move s0, zero                 |         s0 = 0;
    0x00002f6c move fp, zero                 |         fp = 0;
    0x00002f70 sw s4, (v0)                   |         *(v0) = s4;
    0x00002f74 move s4, zero                 |         s4 = 0;
    0x00002f78 b 0x2ba0                      |         goto label_1;
                                             | label_34:
    0x00002f7c lw s0, -0x7fdc(gp)            |         s0 = *((gp - 8183));
                                             |         if (fp != 0) {
    0x00002f80 bnez fp, 0x3114               |             goto label_46;
                                             |         }
    0x00002f84 lw a1, -0x7fdc(gp)            |         a1 = *((gp - 8183));
    0x00002f88 lw t9, -0x7eac(gp)            |         t9 = sym.imp.g_strdup_printf
    0x00002f8c move a2, s6                   |         a2 = s6;
    0x00002f90 addiu a1, a1, 0x6140          |         a1 += str._etc_overlays;
    0x00002f94 addiu a0, s0, 0x6150          |         a0 = s0 + str._s__s.ovl;
    0x00002f98 jalr t9                       |         t9 ();
    0x00002f9c lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00002fa0 addiu a0, zero, 2             |         a0 = 2;
    0x00002fa4 lw t9, -0x7ec4(gp)            |         t9 = sym.imp.umask;
    0x00002fa8 move s5, v0                   |         s5 = v0;
    0x00002fac jalr t9                       |         t9 ();
    0x00002fb0 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00002fb4 addiu a1, zero, 0x1fd         |         a1 = 0x1fd;
    0x00002fb8 move a0, s5                   |         a0 = s5;
    0x00002fbc lw t9, -0x7e18(gp)            |         t9 = sym.imp.mkdir;
    0x00002fc0 move s7, v0                   |         s7 = v0;
    0x00002fc4 jalr t9                       |         t9 ();
    0x00002fc8 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 < 0) {
    0x00002fcc bltz v0, 0x30c4               |             goto label_47;
                                             |         }
    0x00002fd0 lw t9, -0x7ec4(gp)            |         t9 = sym.imp.umask;
    0x00002fd4 move a0, s7                   |         a0 = s7;
    0x00002fd8 jalr t9                       |         t9 ();
    0x00002fdc lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00002fe0 move a2, s6                   |         a2 = s6;
    0x00002fe4 move a1, s5                   |         a1 = s5;
    0x00002fe8 lw t9, -0x7eac(gp)            |         t9 = sym.imp.g_strdup_printf
    0x00002fec addiu a0, s0, 0x6150          |         a0 = s0 + str._s__s.ovl;
    0x00002ff0 jalr t9                       |         t9 ();
    0x00002ff4 move s7, v0                   |         s7 = v0;
    0x00002ff8 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00002ffc b 0x2c88                      |         goto label_5;
                                             | label_37:
    0x00003000 lw v0, 0x38(sp)               |         v0 = *(var_38h);
    0x00003004 sw s7, 0x48(sp)               |         *(var_48h) = s7;
    0x00003008 sw s1, 0x44(sp)               |         *(var_44h) = s1;
    0x0000300c sw zero, 0x4c(sp)             |         *(var_4ch) = 0;
                                             | label_12:
    0x00003010 sw v0, 0x40(sp)               |         *(var_40h) = v0;
    0x00003014 lw v0, -0x7fdc(gp)            |         v0 = *((gp - 8183));
    0x00003018 addiu v0, v0, 0x60d8          |         v0 += 0x60d8;
    0x0000301c sw v0, 0x3c(sp)               |         *(var_3ch) = v0;
    0x00003020 lw v0, -0x7fdc(gp)            |         v0 = *((gp - 8183));
    0x00003024 addiu v0, v0, 0x609c          |         v0 += str._usr_bin_image2ovl;
    0x00003028 sw v0, 0x28(sp)               |         *(var_28h) = v0;
    0x0000302c b 0x2d80                      |         goto label_6;
                                             | label_21:
    0x00003030 move s4, zero                 |         s4 = 0;
    0x00003034 addiu s0, zero, -0x3e8        |         s0 = -0x3e8;
    0x00003038 b 0x2994                      |         goto label_7;
                                             |     }
                                             | label_45:
    0x0000303c addiu s0, zero, -0x3ef        |     s0 = -0x3ef;
                                             | label_15:
    0x00003040 move fp, zero                 |     fp = 0;
                                             |     if (s4 == 0) {
    0x00003044 beqz s4, 0x2e80               |         goto label_4;
                                             |     }
                                             | label_14:
    0x00003048 lw t9, -0x7ee0(gp)            |     t9 = sym.imp.unlink;
    0x0000304c move a0, s4                   |     a0 = s4;
    0x00003050 jalr t9                       |     t9 ();
    0x00003054 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (fp != 0) {
    0x00003058 beqz fp, 0x306c               |         
    0x0000305c lw t9, -0x7ee0(gp)            |         t9 = sym.imp.unlink;
    0x00003060 move a0, fp                   |         a0 = fp;
    0x00003064 jalr t9                       |         t9 ();
    0x00003068 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |     }
                                             | label_43:
    0x0000306c lw t9, -0x7ee0(gp)            |     t9 = sym.imp.unlink;
                                             |     if (s5 == 0) {
    0x00003070 beqz s5, 0x2ba4               |         goto label_8;
                                             |     }
                                             | label_11:
    0x00003074 lw t9, -0x7f38(gp)            |     t9 = sym.imp.rmdir;
    0x00003078 move a0, s5                   |     a0 = s5;
    0x0000307c jalr t9                       |     t9 ();
    0x00003080 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003084 b 0x2ba0                      |     goto label_1;
                                             | label_36:
    0x00003088 lw t9, -0x7f34(gp)            |     t9 = sym.imp.fputc;
    0x0000308c move a1, v0                   |     a1 = v0;
    0x00003090 sw v0, 0x28(sp)               |     *(var_28h) = v0;
    0x00003094 addiu a0, zero, 0x66          |     a0 = 0x66;
    0x00003098 jalr t9                       |     t9 ();
    0x0000309c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000030a0 lw v1, 0x28(sp)               |     v1 = *(var_28h);
    0x000030a4 b 0x2d2c                      |     goto label_9;
                                             | label_44:
    0x000030a8 addiu a1, zero, 0x2f          |     a1 = 0x2f;
    0x000030ac move a0, s4                   |     a0 = s4;
    0x000030b0 jalr t9                       |     t9 ();
    0x000030b4 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == 0) {
    0x000030b8 beqz v0, 0x2f30               |         goto label_10;
                                             |     }
    0x000030bc sb zero, (v0)                 |     *(v0) = 0;
    0x000030c0 b 0x2f30                      |     goto label_10;
                                             | label_47:
    0x000030c4 lw t9, -0x7e08(gp)            |     t9 = sym.imp.__errno_location;
    0x000030c8 jalr t9                       |     t9 ();
    0x000030cc nop                           |     
    0x000030d0 lw s0, (v0)                   |     s0 = *(v0);
    0x000030d4 addiu v0, zero, 0x11          |     v0 = 0x11;
    0x000030d8 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (s0 == v0) {
    0x000030dc beq s0, v0, 0x3384            |         goto label_48;
                                             |     }
    0x000030e0 xori s0, s0, 0x1c             |     s0 ^= 0x1c;
    0x000030e4 addiu v1, zero, -0x3ef        |     v1 = -0x3ef;
    0x000030e8 addiu v0, zero, -0x3e8        |     v0 = -0x3e8;
                                             |     if (s0 != 0) {
    0x000030ec movz v0, v1, s0               |         v0 = v1;
                                             |     }
    0x000030f0 move s0, v0                   |     s0 = v0;
                                             | label_13:
    0x000030f4 lw t9, -0x7ec4(gp)            |     t9 = sym.imp.umask;
    0x000030f8 move a0, s7                   |     a0 = s7;
    0x000030fc jalr t9                       |     t9 ();
    0x00003100 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     do {
    0x00003104 move s7, zero                 |         s7 = 0;
    0x00003108 move fp, zero                 |         fp = 0;
    0x0000310c move s4, zero                 |         s4 = 0;
    0x00003110 b 0x3074                      |         goto label_11;
                                             | label_46:
    0x00003114 lw a1, -0x7fdc(gp)            |         a1 = *((gp - 8183));
    0x00003118 lw a0, -0x7fdc(gp)            |         a0 = *((gp - 8183));
    0x0000311c lw t9, -0x7eac(gp)            |         t9 = sym.imp.g_strdup_printf
    0x00003120 move a2, s6                   |         a2 = s6;
    0x00003124 addiu a1, a1, 0x6140          |         a1 += str._etc_overlays;
    0x00003128 addiu a0, a0, 0x6150          |         a0 += str._s__s.ovl;
    0x0000312c jalr t9                       |         t9 ();
    0x00003130 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00003134 addiu a0, zero, 2             |         a0 = 2;
    0x00003138 lw t9, -0x7ec4(gp)            |         t9 = sym.imp.umask;
    0x0000313c move s5, v0                   |         s5 = v0;
    0x00003140 jalr t9                       |         t9 ();
    0x00003144 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00003148 addiu a1, zero, 0x1fd         |         a1 = 0x1fd;
    0x0000314c move a0, s5                   |         a0 = s5;
    0x00003150 lw t9, -0x7e18(gp)            |         t9 = sym.imp.mkdir;
    0x00003154 move s4, v0                   |         s4 = v0;
    0x00003158 jalr t9                       |         t9 ();
    0x0000315c lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 >= 0) {
    0x00003160 bltz v0, 0x3344               |             
    0x00003164 lw t9, -0x7ec4(gp)            |             t9 = sym.imp.umask;
    0x00003168 move a0, s4                   |             a0 = s4;
    0x0000316c jalr t9                       |             t9 ();
    0x00003170 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x00003174 move a1, s5                   |             a1 = s5;
    0x00003178 lw a0, -0x7fdc(gp)            |             a0 = *((gp - 8183));
    0x0000317c lw t9, -0x7eac(gp)            |             t9 = sym.imp.g_strdup_printf
    0x00003180 addiu a0, a0, 0x615c          |             a0 += str._s_bmp;
    0x00003184 jalr t9                       |             t9 ();
    0x00003188 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x0000318c move a2, s3                   |             a2 = s3;
    0x00003190 move a1, s1                   |             a1 = s1;
    0x00003194 lw t9, -0x7e3c(gp)            |             t9 = sym.imp.__xstat;
    0x00003198 addiu a0, zero, 3             |             a0 = 3;
    0x0000319c move s4, v0                   |             s4 = v0;
    0x000031a0 jalr t9                       |             t9 ();
    0x000031a4 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 < 0) {
    0x000031a8 bltz v0, 0x3398               |                 goto label_49;
                                             |             }
    0x000031ac lw t9, -0x7e10(gp)            |             t9 = sym.imp.open;
    0x000031b0 move a1, zero                 |             a1 = 0;
    0x000031b4 move a0, s1                   |             a0 = s1;
    0x000031b8 jalr t9                       |             t9 ();
    0x000031bc move s7, v0                   |             s7 = v0;
    0x000031c0 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 < 0) {
    0x000031c4 bltz v0, 0x3398               |                 goto label_49;
                                             |             }
    0x000031c8 lw t9, -0x7e10(gp)            |             t9 = sym.imp.open;
    0x000031cc addiu a2, zero, 0x1a4         |             a2 = 0x1a4;
    0x000031d0 addiu a1, zero, 0x101         |             a1 = 0x101;
    0x000031d4 move a0, s4                   |             a0 = s4;
    0x000031d8 jalr t9                       |             t9 ();
    0x000031dc move fp, v0                   |             fp = v0;
    0x000031e0 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 < 0) {
    0x000031e4 bltz v0, 0x33ac               |                 goto label_50;
                                             |             }
    0x000031e8 lw t9, -0x7f58(gp)            |             t9 = sym.imp.sendfile;
    0x000031ec lw a3, 0x8c(sp)               |             a3 = *(var_8ch);
    0x000031f0 move a2, zero                 |             a2 = 0;
    0x000031f4 move a1, s7                   |             a1 = s7;
    0x000031f8 move a0, v0                   |             a0 = v0;
    0x000031fc jalr t9                       |             t9 ();
    0x00003200 lw v1, 0x8c(sp)               |             v1 = *(var_8ch);
    0x00003204 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 == v1) {
    0x00003208 beq v0, v1, 0x3414            |                 goto label_51;
                                             |             }
    0x0000320c lw t9, -0x7e08(gp)            |             t9 = sym.imp.__errno_location;
    0x00003210 jalr t9                       |             t9 ();
    0x00003214 nop                           |             
    0x00003218 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x0000321c lw s0, (v0)                   |             s0 = *(v0);
    0x00003220 addiu v1, zero, -0x3ef        |             v1 = -0x3ef;
    0x00003224 lw t9, -0x7ee0(gp)            |             t9 = sym.imp.unlink;
    0x00003228 xori s0, s0, 0xb              |             s0 ^= 0xb;
    0x0000322c addiu v0, zero, -0x3e8        |             v0 = -0x3e8;
                                             |             if (s0 != 0) {
    0x00003230 movz v0, v1, s0               |                 v0 = v1;
                                             |             }
    0x00003234 move a0, s4                   |             a0 = s4;
    0x00003238 move s0, v0                   |             s0 = v0;
    0x0000323c jalr t9                       |             t9 ();
    0x00003240 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             | label_17:
    0x00003244 lw t9, -0x7f10(gp)            |             t9 = sym.imp.close;
                                             |             if (s7 != 0) {
    0x00003248 beqz s7, 0x3258               |                 
    0x0000324c move a0, s7                   |                 a0 = s7;
    0x00003250 jalr t9                       |                 t9 ();
    0x00003254 lw gp, 0x20(sp)               |                 gp = *(var_20h);
                                             |             }
    0x00003258 lw t9, -0x7f10(gp)            |             t9 = sym.imp.close;
                                             |             if (fp > 0) {
    0x0000325c blez fp, 0x326c               |                 
    0x00003260 move a0, s7                   |                 a0 = s7;
    0x00003264 jalr t9                       |                 t9 ();
    0x00003268 lw gp, 0x20(sp)               |                 gp = *(var_20h);
                                             |             }
    0x0000326c lw t9, -0x7ee0(gp)            |             t9 = sym.imp.unlink;
                                             |             if (s0 != 0) {
    0x00003270 bnez s0, 0x358c               |                 goto label_52;
                                             |             }
    0x00003274 lw s7, 0x28(sp)               |             s7 = *(var_28h);
    0x00003278 lw t9, -0x7eac(gp)            |             t9 = sym.imp.g_strdup_printf
                                             |             if (s7 == 0) {
    0x0000327c beqz s7, 0x33b4               |                 goto label_53;
                                             |             }
    0x00003280 lw a0, -0x7fdc(gp)            |             a0 = *((gp - 8183));
    0x00003284 move a1, s5                   |             a1 = s5;
    0x00003288 addiu a0, a0, 0x6164          |             a0 += str._s_pal;
    0x0000328c jalr t9                       |             t9 ();
    0x00003290 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x00003294 move a0, v0                   |             a0 = v0;
    0x00003298 move fp, v0                   |             fp = v0;
    0x0000329c lw a1, -0x7fdc(gp)            |             a1 = *((gp - 8183));
    0x000032a0 lw t9, -0x7f3c(gp)            |             t9 = sym.imp.fopen;
    0x000032a4 addiu a1, a1, 0x616c          |             a1 += 0x616c;
    0x000032a8 jalr t9                       |             t9 ();
    0x000032ac move s0, v0                   |             s0 = v0;
    0x000032b0 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 == 0) {
    0x000032b4 beqz v0, 0x3580               |                 goto label_54;
                                             |             }
    0x000032b8 lw t9, -0x7e04(gp)            |             t9 = sym.imp.fputs;
    0x000032bc move a1, v0                   |             a1 = v0;
    0x000032c0 move a0, s7                   |             a0 = s7;
    0x000032c4 jalr t9                       |             t9 ();
    0x000032c8 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x000032cc lw t9, -0x7ec8(gp)            |             t9 = sym.imp.fclose;
    0x000032d0 move a0, s0                   |             a0 = s0;
    0x000032d4 jalr t9                       |             t9 ();
    0x000032d8 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             | label_18:
    0x000032dc lw a0, -0x7fdc(gp)            |             a0 = *((gp - 8183));
    0x000032e0 lw t9, -0x7e2c(gp)            |             t9 = sym.imp.statfs;
    0x000032e4 move a1, s3                   |             a1 = s3;
    0x000032e8 addiu a0, a0, 0x6170          |             a0 += str._etc;
    0x000032ec jalr t9                       |             t9 ();
    0x000032f0 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 < 0) {
    0x000032f4 bltz v0, 0x338c               |                 goto label_55;
                                             |             }
    0x000032f8 lw v1, 0x60(sp)               |             v1 = *(var_60h);
    0x000032fc lw v0, 0x6c(sp)               |             v0 = *(var_6ch);
    0x00003300 mul v0, v0, v1                |             __asm ("mul v0, v0, v1");
    0x00003304 lui v1, 1                     |             v1 = 0x10000;
    0x00003308 slt v0, v0, v1                |             v0 = (v0 < v1) ? 1 : 0;
    0x0000330c lw v0, 0x2c(sp)               |             v0 = *(var_2ch);
                                             |             if (v0 != 0) {
    0x00003310 bnez v0, 0x338c               |                 goto label_55;
                                             |             }
    0x00003314 move s0, zero                 |             s0 = 0;
    0x00003318 move s7, zero                 |             s7 = 0;
    0x0000331c sw s5, (v0)                   |             *(v0) = s5;
    0x00003320 move s5, zero                 |             s5 = 0;
    0x00003324 b 0x2ba0                      |             goto label_1;
                                             | label_38:
    0x00003328 sw s7, 0x48(sp)               |             *(var_48h) = s7;
    0x0000332c addiu v0, v0, 0x60dc          |             v0 += str.argb16;
    0x00003330 sw v0, 0x4c(sp)               |             *(var_4ch) = v0;
    0x00003334 lw v0, -0x7fdc(gp)            |             v0 = *((gp - 8183));
    0x00003338 sw s1, 0x44(sp)               |             *(var_44h) = s1;
    0x0000333c addiu v0, v0, 0x63ac          |             v0 += 0x63ac;
    0x00003340 b 0x3010                      |             goto label_12;
                                             |         }
    0x00003344 lw t9, -0x7e08(gp)            |         t9 = sym.imp.__errno_location;
    0x00003348 jalr t9                       |         t9 ();
    0x0000334c nop                           |         
    0x00003350 lw v0, (v0)                   |         v0 = *(v0);
    0x00003354 addiu v1, zero, 0x11          |         v1 = 0x11;
    0x00003358 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |         if (v0 == v1) {
    0x0000335c beq v0, v1, 0x33a4            |             goto label_56;
                                             |         }
    0x00003360 xori v0, v0, 0x1c             |         v0 ^= 0x1c;
    0x00003364 addiu v1, zero, -0x3ef        |         v1 = -0x3ef;
    0x00003368 addiu s0, zero, -0x3e8        |         s0 = -0x3e8;
                                             |         if (v0 != 0) {
    0x0000336c movz s0, v1, v0               |             s0 = v1;
                                             |         }
                                             | label_16:
    0x00003370 lw t9, -0x7ec4(gp)            |         t9 = sym.imp.umask;
    0x00003374 move a0, s4                   |         a0 = s4;
    0x00003378 jalr t9                       |         t9 ();
    0x0000337c lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00003380 b 0x3104                      |         
                                             |     } while (1);
                                             | label_48:
    0x00003384 addiu s0, zero, -0x3f2        |     s0 = -0x3f2;
    0x00003388 b 0x30f4                      |     goto label_13;
                                             | label_55:
    0x0000338c addiu s0, zero, -0x3ef        |     s0 = -0x3ef;
    0x00003390 move s7, zero                 |     s7 = 0;
    0x00003394 b 0x3048                      |     goto label_14;
                                             | label_49:
    0x00003398 addiu s0, zero, -0x3e8        |     s0 = -0x3e8;
    0x0000339c move s7, zero                 |     s7 = 0;
    0x000033a0 b 0x3040                      |     goto label_15;
                                             | label_56:
    0x000033a4 addiu s0, zero, -0x3f2        |     s0 = -0x3f2;
    0x000033a8 b 0x3370                      |     goto label_16;
                                             | label_50:
    0x000033ac addiu s0, zero, -0x3e8        |     s0 = -0x3e8;
    0x000033b0 b 0x3244                      |     goto label_17;
                                             | label_53:
    0x000033b4 move fp, zero                 |     fp = 0;
    0x000033b8 b 0x32dc                      |     goto label_18;
                                             | label_25:
    0x000033bc lw t9, -0x7f10(gp)            |     t9 = sym.imp.close;
    0x000033c0 lw a0, 0x54(sp)               |     a0 = *(var_54h);
    0x000033c4 move s7, zero                 |     s7 = 0;
    0x000033c8 jalr t9                       |     t9 ();
    0x000033cc lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000033d0 lw a0, 0x58(sp)               |     a0 = *(var_58h);
    0x000033d4 move fp, zero                 |     fp = 0;
    0x000033d8 lw t9, -0x7f10(gp)            |     t9 = sym.imp.close;
    0x000033dc move s6, zero                 |     s6 = 0;
    0x000033e0 jalr t9                       |     t9 ();
    0x000033e4 addiu s0, zero, -0x3e8        |     s0 = -0x3e8;
    0x000033e8 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000033ec move s4, zero                 |     s4 = 0;
    0x000033f0 move s5, zero                 |     s5 = 0;
    0x000033f4 b 0x2ba0                      |     goto label_1;
                                             | label_33:
    0x000033f8 move s7, zero                 |     s7 = 0;
    0x000033fc move fp, zero                 |     fp = 0;
    0x00003400 move s6, zero                 |     s6 = 0;
    0x00003404 addiu s0, zero, -0x3f0        |     s0 = -0x3f0;
    0x00003408 move s4, zero                 |     s4 = 0;
    0x0000340c move s5, zero                 |     s5 = 0;
    0x00003410 b 0x2ba0                      |     goto label_1;
                                             | label_51:
    0x00003414 lw t9, -0x7ee0(gp)            |     t9 = sym.imp.unlink;
    0x00003418 move a0, s1                   |     a0 = s1;
    0x0000341c jalr t9                       |     t9 ();
    0x00003420 move s0, zero                 |     s0 = 0;
    0x00003424 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003428 b 0x3244                      |     goto label_17;
                                             | label_39:
    0x0000342c lw t9, -0x7f10(gp)            |     t9 = sym.imp.close;
    0x00003430 lw a0, 0x54(sp)               |     a0 = *(var_54h);
    0x00003434 addiu s0, zero, -0x3e8        |     s0 = -0x3e8;
    0x00003438 jalr t9                       |     t9 ();
    0x0000343c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003440 lw a0, 0x58(sp)               |     a0 = *(var_58h);
    0x00003444 lw t9, -0x7f10(gp)            |     t9 = sym.imp.close;
    0x00003448 move s4, zero                 |     s4 = 0;
    0x0000344c jalr t9                       |     t9 ();
    0x00003450 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003454 b 0x2e80                      |     goto label_4;
                                             | label_32:
    0x00003458 move s7, zero                 |     s7 = 0;
    0x0000345c move fp, zero                 |     fp = 0;
    0x00003460 move s6, zero                 |     s6 = 0;
    0x00003464 addiu s0, zero, -0x3f1        |     s0 = -0x3f1;
    0x00003468 move s4, zero                 |     s4 = 0;
    0x0000346c move s5, zero                 |     s5 = 0;
    0x00003470 b 0x2ba0                      |     goto label_1;
                                             | label_23:
    0x00003474 lw t9, -0x7f2c(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x00003478 jalr t9                       |     t9 ();
    0x0000347c nop                           |     
                                             | label_26:
    0x00003480 lw t9, -0x7ec0(gp)            |     t9 = sym.imp.dup2;
    0x00003484 move a1, zero                 |     a1 = 0;
    0x00003488 jalr t9                       |     t9 ();
    0x0000348c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003490 lw a0, 0x60(sp)               |     a0 = *(var_60h);
    0x00003494 lw t9, -0x7ec0(gp)            |     t9 = sym.imp.dup2;
    0x00003498 addiu a1, zero, 1             |     a1 = 1;
    0x0000349c jalr t9                       |     t9 ();
    0x000034a0 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000034a4 lw t9, -0x7f10(gp)            |     t9 = sym.imp.close;
    0x000034a8 lw a0, 0x58(sp)               |     a0 = *(var_58h);
    0x000034ac jalr t9                       |     t9 ();
    0x000034b0 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000034b4 lw t9, -0x7f10(gp)            |     t9 = sym.imp.close;
    0x000034b8 lw a0, 0x5c(sp)               |     a0 = *(var_5ch);
    0x000034bc jalr t9                       |     t9 ();
    0x000034c0 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000034c4 move a0, s0                   |     a0 = s0;
    0x000034c8 sw zero, 0x10(sp)             |     *(var_10h) = 0;
    0x000034cc lw t9, -0x7e78(gp)            |     t9 = sym.imp.execl;
    0x000034d0 move a3, s1                   |     a3 = s1;
    0x000034d4 move a2, s4                   |     a2 = s4;
    0x000034d8 move a1, s0                   |     a1 = s0;
    0x000034dc jalr t9                       |     t9 ();
    0x000034e0 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000034e4 lw t9, -0x7f7c(gp)            |     t9 = sym.imp.exit;
    0x000034e8 move a0, v0                   |     a0 = v0;
    0x000034ec jalr t9                       |     t9 ();
                                             | label_40:
    0x000034f0 lw t9, -0x7ec0(gp)            |     t9 = sym.imp.dup2;
    0x000034f4 move a1, zero                 |     a1 = 0;
    0x000034f8 jalr t9                       |     t9 ();
    0x000034fc lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003500 lw a0, 0x60(sp)               |     a0 = *(var_60h);
    0x00003504 lw t9, -0x7ec0(gp)            |     t9 = sym.imp.dup2;
    0x00003508 addiu a1, zero, 1             |     a1 = 1;
    0x0000350c jalr t9                       |     t9 ();
    0x00003510 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003514 lw t9, -0x7f10(gp)            |     t9 = sym.imp.close;
    0x00003518 lw a0, 0x58(sp)               |     a0 = *(var_58h);
    0x0000351c jalr t9                       |     t9 ();
    0x00003520 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003524 lw t9, -0x7f10(gp)            |     t9 = sym.imp.close;
    0x00003528 lw a0, 0x5c(sp)               |     a0 = *(var_5ch);
    0x0000352c jalr t9                       |     t9 ();
    0x00003530 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00003534 addiu v0, zero, 3             |     v0 = 3;
    0x00003538 lw t9, -0x7e78(gp)            |     t9 = sym.imp.execl;
                                             |     if (fp == v0) {
    0x0000353c beq fp, v0, 0x35a4            |         goto label_57;
                                             |     }
    0x00003540 lw v0, 0x48(sp)               |     v0 = *(var_48h);
    0x00003544 lw a1, 0x28(sp)               |     a1 = *(var_28h);
    0x00003548 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0000354c lw v0, 0x44(sp)               |     v0 = *(var_44h);
    0x00003550 lw a3, 0x40(sp)               |     a3 = *(var_40h);
    0x00003554 lw a2, 0x3c(sp)               |     a2 = *(var_3ch);
    0x00003558 sw zero, 0x18(sp)             |     *(var_18h) = 0;
    0x0000355c sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00003560 move a0, a1                   |     a0 = a1;
    0x00003564 jalr t9                       |     t9 ();
    0x00003568 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     do {
    0x0000356c lw t9, -0x7f7c(gp)            |         t9 = sym.imp.exit;
    0x00003570 move a0, v0                   |         a0 = v0;
    0x00003574 jalr t9                       |         t9 ();
                                             | label_24:
    0x00003578 addiu s0, zero, -0x3e8        |         s0 = -0x3e8;
    0x0000357c b 0x2990                      |         goto label_19;
                                             | label_54:
    0x00003580 addiu s0, zero, -0x3e8        |         s0 = -0x3e8;
    0x00003584 move s7, zero                 |         s7 = 0;
    0x00003588 b 0x3048                      |         goto label_14;
                                             | label_52:
    0x0000358c move a0, s4                   |         a0 = s4;
    0x00003590 jalr t9                       |         t9 ();
    0x00003594 move s7, zero                 |         s7 = 0;
    0x00003598 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0000359c move fp, zero                 |         fp = 0;
    0x000035a0 b 0x3074                      |         goto label_11;
                                             | label_57:
    0x000035a4 lw v0, 0x4c(sp)               |         v0 = *(var_4ch);
    0x000035a8 lw a1, 0x28(sp)               |         a1 = *(var_28h);
    0x000035ac sw v0, 0x18(sp)               |         *(var_18h) = v0;
    0x000035b0 lw v0, 0x48(sp)               |         v0 = *(var_48h);
    0x000035b4 lw a3, 0x40(sp)               |         a3 = *(var_40h);
    0x000035b8 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x000035bc lw v0, 0x44(sp)               |         v0 = *(var_44h);
    0x000035c0 lw a2, 0x3c(sp)               |         a2 = *(var_3ch);
    0x000035c4 sw zero, 0x1c(sp)             |         *(var_1ch) = 0;
    0x000035c8 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x000035cc move a0, a1                   |         a0 = a1;
    0x000035d0 jalr t9                       |         t9 ();
    0x000035d4 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x000035d8 b 0x356c                      |         
                                             |     } while (1);
                                             | }

[*] Function printf used 13 times overlayimage.cgi