[*] Binary protection state of overlayd

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


[*] Function sprintf tear down of overlayd

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/overlayd @ 0x13e58 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00013e58 ()                  | void fcn_00013e58 () {
                                             | label_8:
    0x00013e58 lui gp, 7                     |     
    0x00013e5c addiu gp, gp, 0x11c8          |     
    0x00013e60 addu gp, gp, t9               |     gp += t9;
    0x00013e64 addiu sp, sp, -0x88           |     
    0x00013e68 lw t9, -0x7e20(gp)            |     t9 = sym.overlay_dbus_lookup_overlay_info;
    0x00013e6c sw s3, 0x74(sp)               |     *(var_74h) = s3;
    0x00013e70 lw s3, -0x773c(gp)            |     s3 = *((gp - 7631));
    0x00013e74 sw gp, 0x18(sp)               |     *(var_18h_2) = gp;
    0x00013e78 sw s1, 0x6c(sp)               |     *(var_6ch) = s1;
    0x00013e7c lw v0, (s3)                   |     v0 = *(s3);
    0x00013e80 sw ra, 0x84(sp)               |     *(var_84h) = ra;
    0x00013e84 sw s6, 0x80(sp)               |     *(var_80h) = s6;
    0x00013e88 sw s5, 0x7c(sp)               |     *(var_7ch) = s5;
    0x00013e8c sw s4, 0x78(sp)               |     *(var_78h) = s4;
    0x00013e90 sw s2, 0x70(sp)               |     *(var_70h) = s2;
    0x00013e94 sw s0, 0x68(sp)               |     *(var_68h) = s0;
    0x00013e98 sw zero, 0x20(sp)             |     *(var_20h_2) = 0;
    0x00013e9c sw v0, 0x64(sp)               |     *(var_64h) = v0;
    0x00013ea0 move s1, a0                   |     s1 = a0;
    0x00013ea4 bal 0x1eb80                   |     sym_overlay_dbus_lookup_overlay_info ();
    0x00013ea8 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x00013eac beqz v0, 0x140c4              |         goto label_10;
                                             |     }
    0x00013eb0 move s0, v0                   |     s0 = v0;
    0x00013eb4 lw v0, 0x14(v0)               |     v0 = *((v0 + 5));
    0x00013eb8 lw a3, -0x7fd4(gp)            |     a3 = *(gp);
                                             |     if (v0 >= 0) {
    0x00013ebc bgez v0, 0x13f34              |         goto label_11;
                                             |     }
                                             | label_3:
    0x00013ec0 lw t9, -0x7e1c(gp)            |     t9 = sym.overlay_backend_remove;
    0x00013ec4 move a0, s0                   |     a0 = s0;
    0x00013ec8 bal 0x1c818                   |     sym_overlay_backend_remove ();
    0x00013ecc lw v1, 0x1024(s0)             |     v1 = *((s0 + 1033));
    0x00013ed0 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00013ed4 move s4, v0                   |     s4 = v0;
                                             |     if (v1 != 0) {
    0x00013ed8 bnez v1, 0x13fcc              |         goto label_12;
                                             |     }
                                             |     do {
                                             | label_2:
    0x00013edc lw t9, -0x7e18(gp)            |         t9 = sym.overlay_dbus_unexport_overlay_object;
    0x00013ee0 lw a0, 0x18(s0)               |         a0 = *((s0 + 6));
    0x00013ee4 bal 0x1e998                   |         sym_overlay_dbus_unexport_overlay_object ();
    0x00013ee8 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00013eec lw t9, -0x7e14(gp)            |         t9 = sym.overlay_dbus_remove_overlay_info;
    0x00013ef0 move a0, s0                   |         a0 = s0;
    0x00013ef4 bal 0x1eaf0                   |         sym_overlay_dbus_remove_overlay_info ();
    0x00013ef8 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             | label_5:
    0x00013efc lw a0, 0x64(sp)               |         a0 = *(var_64h);
    0x00013f00 lw v1, (s3)                   |         v1 = *(s3);
    0x00013f04 move v0, s4                   |         v0 = s4;
                                             |         if (a0 != v1) {
    0x00013f08 bne a0, v1, 0x140ec           |             goto label_13;
                                             |         }
    0x00013f0c lw ra, 0x84(sp)               |         ra = *(var_84h);
    0x00013f10 lw s6, 0x80(sp)               |         s6 = *(var_80h);
    0x00013f14 lw s5, 0x7c(sp)               |         s5 = *(var_7ch);
    0x00013f18 lw s4, 0x78(sp)               |         s4 = *(var_78h);
    0x00013f1c lw s3, 0x74(sp)               |         s3 = *(var_74h);
    0x00013f20 lw s2, 0x70(sp)               |         s2 = *(var_70h);
    0x00013f24 lw s1, 0x6c(sp)               |         s1 = *(var_6ch);
    0x00013f28 lw s0, 0x68(sp)               |         s0 = *(var_68h);
    0x00013f2c addiu sp, sp, 0x88            |         
    0x00013f30 jr ra                         |         return v0;
                                             | label_11:
    0x00013f34 lw t9, -0x7894(gp)            |         t9 = sym.imp.__sprintf_chk
    0x00013f38 addiu s1, sp, 0x24            |         s1 = sp + 0x24;
                                             |         /* str.Overlay_d */
    0x00013f3c addiu a3, a3, 0x6504          |         a3 += 0x6504;
    0x00013f40 addiu a2, zero, 0x40          |         a2 = 0x40;
    0x00013f44 addiu a1, zero, 1             |         a1 = 1;
    0x00013f48 move a0, s1                   |         a0 = s1;
    0x00013f4c sw v0, 0x10(sp)               |         *(var_10h_3) = v0;
    0x00013f50 jalr t9                       |         t9 ();
    0x00013f54 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00013f58 addiu s2, sp, 0x20            |         s2 = sp + 0x20;
    0x00013f5c move a2, s2                   |         a2 = s2;
    0x00013f60 lw v0, -0x7fdc(gp)            |         v0 = *((gp - 8183));
    0x00013f64 lw t9, -0x7630(gp)            |         t9 = sym.imp.g_key_file_remove_group;
    0x00013f68 move a1, s1                   |         a1 = s1;
    0x00013f6c lw a0, -0x2380(v0)            |         a0 = *((v0 - 2272));
    0x00013f70 jalr t9                       |         t9 ();
    0x00013f74 lw v0, 0x20(sp)               |         v0 = *(var_20h_2);
    0x00013f78 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 == 0) {
    0x00013f7c beqz v0, 0x140a0              |             goto label_14;
                                             |         }
    0x00013f80 lw a2, -0x7fd4(gp)            |         a2 = *(gp);
                                             | label_4:
    0x00013f84 lw t9, -0x7774(gp)            |         t9 = sym.imp.__syslog_chk;
    0x00013f88 lw a3, 8(v0)                  |         a3 = *((v0 + 2));
                                             |         /* str.could_not_remove_overlay_from_conf_file_due_to__s_n */
    0x00013f8c addiu a2, a2, 0x6510          |         a2 += 0x6510;
    0x00013f90 addiu a1, zero, 1             |         a1 = 1;
    0x00013f94 addiu a0, zero, 3             |         a0 = 3;
    0x00013f98 jalr t9                       |         t9 ();
    0x00013f9c lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00013fa0 lw t9, -0x78ac(gp)            |         t9 = sym.imp.g_error_free;
    0x00013fa4 lw a0, 0x20(sp)               |         a0 = *(var_20h_2);
    0x00013fa8 jalr t9                       |         t9 ();
    0x00013fac lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00013fb0 lw t9, -0x7e1c(gp)            |         t9 = sym.overlay_backend_remove;
    0x00013fb4 move a0, s0                   |         a0 = s0;
    0x00013fb8 bal 0x1c818                   |         sym_overlay_backend_remove ();
    0x00013fbc lw v1, 0x1024(s0)             |         v1 = *((s0 + 1033));
    0x00013fc0 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00013fc4 move s4, v0                   |         s4 = v0;
    0x00013fc8 beqz v1, 0x13edc              |         
                                             |     } while (v1 == 0);
                                             | label_12:
    0x00013fcc lw t9, -0x7e10(gp)            |     t9 = sym.overlay_dbus_get_overlay_info_keys;
    0x00013fd0 lw s5, 8(s0)                  |     s5 = *((s0 + 2));
    0x00013fd4 bal 0x1ec6c                   |     sym_overlay_dbus_get_overlay_info_keys ();
    0x00013fd8 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00013fdc move a0, v0                   |     a0 = v0;
    0x00013fe0 lw t9, -0x7880(gp)            |     t9 = sym.imp.g_list_first;
    0x00013fe4 move s6, v0                   |     s6 = v0;
    0x00013fe8 jalr t9                       |     t9 ();
    0x00013fec move s1, v0                   |     s1 = v0;
    0x00013ff0 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 != 0) {
    0x00013ff4 bnez v0, 0x1400c              |         goto label_15;
                                             |     }
    0x00013ff8 lw t9, -0x7570(gp)            |     t9 = sym.imp.g_list_free;
    0x00013ffc b 0x14078                     |     goto label_16;
                                             |     do {
                                             | label_1:
    0x00014000 lw s1, 4(s1)                  |         s1 = *((s1 + 1));
                                             | label_0:
    0x00014004 lw t9, -0x7570(gp)            |         t9 = sym.imp.g_list_free;
                                             |         if (s1 == 0) {
    0x00014008 beqz s1, 0x14078              |             goto label_16;
                                             |         }
                                             | label_15:
    0x0001400c lw t9, -0x7e20(gp)            |         t9 = sym.overlay_dbus_lookup_overlay_info;
    0x00014010 lw a0, (s1)                   |         a0 = *(s1);
    0x00014014 bal 0x1eb80                   |         sym_overlay_dbus_lookup_overlay_info ();
    0x00014018 move s2, v0                   |         s2 = v0;
    0x0001401c lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x00014020 beqz v0, 0x14000              |         
                                             |     } while (v0 == 0);
    0x00014024 lw v0, 8(v0)                  |     v0 = *((v0 + 2));
    0x00014028 lw s1, 4(s1)                  |     s1 = *((s1 + 1));
                                             |     if (s5 == v0) {
    0x0001402c bnel s5, v0, 0x14004          |         goto label_0;
                                             |     }
    0x00014030 lw v0, 0x102c(s2)             |     v0 = *(s2);
    0x00014034 lw s1, 4(s1)                  |     s1 = *((s1 + 1));
                                             |     if (v0 == 0) {
    0x00014038 bnel v0, zero, 0x14004        |         goto label_0;
                                             |     }
    0x0001403c lw v0, 0x1028(s2)             |     v0 = *((s2 + 1034));
                                             |     if (v0 == 0) {
    0x00014040 beql v0, zero, 0x14004        |         goto label_0;
                                             |     }
    0x00014044 lw s1, 4(s1)                  |     s1 = *((s1 + 1));
    0x00014048 lw t9, -0x7e0c(gp)            |     t9 = sym.overlay_backend_set_visibility;
    0x0001404c addiu a1, zero, 1             |     a1 = 1;
    0x00014050 move a0, s2                   |     a0 = s2;
    0x00014054 bal 0x1d1ac                   |     sym_overlay_backend_set_visibility ();
    0x00014058 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 != 0) {
    0x0001405c bnez v0, 0x14000              |         goto label_1;
                                             |     }
    0x00014060 lw t9, -0x7e5c(gp)            |     t9 = sym.overlay_dbus_set_visible;
    0x00014064 lw a0, 0x18(s2)               |     a0 = *((s2 + 6));
    0x00014068 addiu a1, zero, 1             |     a1 = 1;
    0x0001406c bal 0x1efac                   |     sym_overlay_dbus_set_visible ();
    0x00014070 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00014074 b 0x14000                     |     goto label_1;
                                             | label_16:
    0x00014078 move a0, s6                   |     a0 = s6;
    0x0001407c jalr t9                       |     t9 ();
    0x00014080 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x00014084 lw v0, 8(s0)                  |     v0 = *((s0 + 2));
    0x00014088 lw v1, -0x7fdc(gp)            |     v1 = *((gp - 8183));
    0x0001408c sll v0, v0, 2                 |     v0 <<= 2;
    0x00014090 addiu v1, v1, -0x23c8         |     v1 += -0x23c8;
    0x00014094 addu v0, v0, v1               |     v0 += v1;
    0x00014098 sw zero, (v0)                 |     *(v0) = 0;
    0x0001409c b 0x13edc                     |     goto label_2;
                                             | label_14:
    0x000140a0 lw t9, -0x7f58(gp)            |     t9 = *(gp);
                                             |     /* fcn.00013d94 */
    0x000140a4 addiu t9, t9, 0x3d94          |     t9 += 0x3d94;
    0x000140a8 move a0, s2                   |     a0 = s2;
    0x000140ac bal 0x13d94                   |     fcn_00013d94 ();
    0x000140b0 lw v0, 0x20(sp)               |     v0 = *(var_20h_2);
    0x000140b4 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x000140b8 beqz v0, 0x13ec0              |         goto label_3;
                                             |     }
    0x000140bc lw a2, -0x7fd4(gp)            |     a2 = *(gp);
    0x000140c0 b 0x13f84                     |     goto label_4;
                                             | label_10:
    0x000140c4 lw a2, -0x7fd4(gp)            |     a2 = *(gp);
    0x000140c8 lw t9, -0x7774(gp)            |     t9 = sym.imp.__syslog_chk;
    0x000140cc move a3, s1                   |     a3 = s1;
                                             |     /* str.Invalid_overlay_handle:__s */
    0x000140d0 addiu a2, a2, 0x64e8          |     a2 += 0x64e8;
    0x000140d4 addiu a1, zero, 1             |     a1 = 1;
    0x000140d8 addiu a0, zero, 3             |     a0 = 3;
    0x000140dc jalr t9                       |     t9 ();
    0x000140e0 addiu s4, zero, -3            |     s4 = -3;
    0x000140e4 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x000140e8 b 0x13efc                     |     goto label_5;
                                             | label_13:
    0x000140ec lw t9, -0x77d4(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x000140f0 jalr t9                       |     t9 ();
    0x000140f4 nop                           |     
    0x000140f8 lui gp, 7                     |     
    0x000140fc addiu gp, gp, 0xf28           |     
    0x00014100 addu gp, gp, t9               |     gp += t9;
    0x00014104 addiu sp, sp, -0x38           |     
    0x00014108 sw s0, 0x1c(sp)               |     *(var_1ch_2) = s0;
    0x0001410c lw s0, (a2)                   |     s0 = *(a2);
    0x00014110 sw gp, 0x10(sp)               |     *(var_10h_2) = gp;
    0x00014114 sw s2, 0x24(sp)               |     *(var_24h_2) = s2;
    0x00014118 sw ra, 0x34(sp)               |     *(var_34h) = ra;
    0x0001411c sw s5, 0x30(sp)               |     *(var_30h) = s5;
    0x00014120 sw s4, 0x2c(sp)               |     *(var_2ch_2) = s4;
    0x00014124 sw s3, 0x28(sp)               |     *(var_28h_2) = s3;
    0x00014128 sw s1, 0x20(sp)               |     *(var_20h_3) = s1;
    0x0001412c move s2, a2                   |     s2 = a2;
                                             |     if (s0 == 0) {
    0x00014130 beqz s0, 0x14190              |         goto label_17;
                                             |     }
    0x00014134 lw a1, -0x7fd4(gp)            |     a1 = *(gp);
    0x00014138 lw t9, -0x790c(gp)            |     t9 = sym.imp.strcmp;
                                             |     /* str.dbus_send */
    0x0001413c addiu a1, a1, 0x6544          |     a1 += 0x6544;
    0x00014140 move a0, s0                   |     a0 = s0;
    0x00014144 jalr t9                       |     t9 ();
    0x00014148 lw gp, 0x10(sp)               |     gp = *(var_10h_2);
    0x0001414c bnez v0, 0x14174              |     
                                             |     while (v0 == 0) {
    0x00014150 lw ra, 0x34(sp)               |         ra = *(var_34h);
    0x00014154 lw s5, 0x30(sp)               |         s5 = *(var_30h);
    0x00014158 lw s4, 0x2c(sp)               |         s4 = *(var_2ch_2);
    0x0001415c lw s3, 0x28(sp)               |         s3 = *(var_28h_2);
    0x00014160 lw s2, 0x24(sp)               |         s2 = *(var_24h_2);
    0x00014164 lw s1, 0x20(sp)               |         s1 = *(var_20h_3);
    0x00014168 lw s0, 0x1c(sp)               |         s0 = *(var_1ch_2);
    0x0001416c addiu sp, sp, 0x38            |         
    0x00014170 jr ra                         |         return v0;
    0x00014174 lw a1, -0x7fd4(gp)            |         a1 = *(gp);
    0x00014178 lw t9, -0x790c(gp)            |         t9 = sym.imp.strcmp;
                                             |         /* str.gdbus */
    0x0001417c addiu a1, a1, 0x6550          |         a1 += 0x6550;
    0x00014180 move a0, s0                   |         a0 = s0;
    0x00014184 jalr t9                       |         t9 ();
    0x00014188 lw gp, 0x10(sp)               |         gp = *(var_10h_2);
    0x0001418c beqz v0, 0x14150              |         
                                             |     }
                                             | label_17:
    0x00014190 lw a2, -0x7fd4(gp)            |     a2 = *(gp);
    0x00014194 lw t9, -0x7774(gp)            |     t9 = sym.imp.__syslog_chk;
    0x00014198 move a3, s0                   |     a3 = s0;
                                             |     /* str._s_vanished__removing_its_overlays */
    0x0001419c addiu a2, a2, 0x6558          |     a2 += 0x6558;
    0x000141a0 addiu a1, zero, 1             |     a1 = 1;
    0x000141a4 addiu a0, zero, 6             |     a0 = 6;
    0x000141a8 jalr t9                       |     t9 ();
    0x000141ac lw gp, 0x10(sp)               |     gp = *(var_10h_2);
    0x000141b0 lw t9, -0x7e10(gp)            |     t9 = sym.overlay_dbus_get_overlay_info_keys;
    0x000141b4 bal 0x1ec6c                   |     sym_overlay_dbus_get_overlay_info_keys ();
    0x000141b8 nop                           |     
    0x000141bc lw gp, 0x10(sp)               |     gp = *(var_10h_2);
    0x000141c0 move a0, v0                   |     a0 = v0;
    0x000141c4 lw t9, -0x7880(gp)            |     t9 = sym.imp.g_list_first;
    0x000141c8 move s4, v0                   |     s4 = v0;
    0x000141cc jalr t9                       |     t9 ();
    0x000141d0 move s0, v0                   |     s0 = v0;
    0x000141d4 lw gp, 0x10(sp)               |     gp = *(var_10h_2);
                                             |     if (v0 == 0) {
    0x000141d8 beqz v0, 0x14258              |         goto label_18;
                                             |     }
    0x000141dc lw s5, -0x7f58(gp)            |     s5 = *(gp);
    0x000141e0 addiu s3, zero, -1            |     s3 = -1;
                                             |     /* fcn.00013e58 */
    0x000141e4 addiu s5, s5, 0x3e58          |     s5 += 0x3e58;
    0x000141e8 b 0x141f8                     |     
                                             |     while (v0 == 0) {
                                             | label_6:
    0x000141ec lw s0, 4(s0)                  |         s0 = *((s0 + 1));
                                             |         if (s0 == 0) {
                                             | label_7:
    0x000141f0 beql s0, zero, 0x1425c        |             goto label_19;
                                             |         }
    0x000141f4 lw t9, -0x7570(gp)            |         t9 = sym.imp.g_list_free;
                                             | label_9:
    0x000141f8 lw t9, -0x7e20(gp)            |         t9 = sym.overlay_dbus_lookup_overlay_info;
    0x000141fc lw a0, (s0)                   |         a0 = *(s0);
    0x00014200 bal 0x1eb80                   |         sym_overlay_dbus_lookup_overlay_info ();
    0x00014204 lw gp, 0x10(sp)               |         gp = *(var_10h_2);
    0x00014208 move s1, v0                   |         s1 = v0;
    0x0001420c addiu a0, v0, 0x20            |         a0 = v0 + 0x20;
    0x00014210 lw t9, -0x790c(gp)            |         t9 = sym.imp.strcmp;
    0x00014214 beqz v0, 0x141ec              |         
                                             |     }
    0x00014218 lw a1, (s2)                   |     a1 = *(s2);
    0x0001421c jalr t9                       |     t9 ();
    0x00014220 lw gp, 0x10(sp)               |     gp = *(var_10h_2);
                                             |     if (v0 != 0) {
    0x00014224 bnez v0, 0x141ec              |         goto label_6;
                                             |     }
    0x00014228 lw v0, 0x14(s1)               |     v0 = *((s1 + 5));
    0x0001422c lw s0, 4(s0)                  |     s0 = *((s0 + 1));
                                             |     if (v0 == s3) {
    0x00014230 bnel v0, s3, 0x141f0          |         goto label_7;
                                             |     }
    0x00014234 lw v0, 0x1038(s1)             |     v0 = *((s1 + 1038));
                                             |     if (v0 == 0) {
    0x00014238 beql v0, zero, 0x141f0        |         goto label_7;
                                             |     }
    0x0001423c lw s0, 4(s0)                  |     s0 = *((s0 + 1));
    0x00014240 move t9, s5                   |     t9 = s5;
    0x00014244 lw a0, (s0)                   |     a0 = *(s0);
    0x00014248 bal 0x13e58                   |     fcn_00013e58 ();
                                             |     goto label_8;
    0x0001424c lw s0, 4(s0)                  |     s0 = *((s0 + 1));
    0x00014250 lw gp, 0x10(sp)               |     gp = *(var_10h_2);
                                             |     if (s0 != 0) {
    0x00014254 bnez s0, 0x141f8              |         goto label_9;
                                             |     }
                                             | label_18:
    0x00014258 lw t9, -0x7570(gp)            |     t9 = sym.imp.g_list_free;
                                             | label_19:
    0x0001425c move a0, s4                   |     a0 = s4;
    0x00014260 jalr t9                       |     t9 ();
    0x00014264 lw v0, 4(s2)                  |     v0 = *((s2 + 1));
    0x00014268 lw gp, 0x10(sp)               |     gp = *(var_10h_2);
    0x0001426c bnez v0, 0x142ac              |     
                                             |     while (1) {
    0x00014270 lw t9, -0x7450(gp)            |         t9 = *((gp - 7444));
    0x00014274 lw a0, (s2)                   |         a0 = *(s2);
    0x00014278 jalr t9                       |         t9 ();
    0x0001427c lw gp, 0x10(sp)               |         gp = *(var_10h_2);
    0x00014280 lw ra, 0x34(sp)               |         ra = *(var_34h);
    0x00014284 lw s5, 0x30(sp)               |         s5 = *(var_30h);
    0x00014288 lw s4, 0x2c(sp)               |         s4 = *(var_2ch_2);
    0x0001428c lw s3, 0x28(sp)               |         s3 = *(var_28h_2);
    0x00014290 lw s1, 0x20(sp)               |         s1 = *(var_20h_3);
    0x00014294 lw s0, 0x1c(sp)               |         s0 = *(var_1ch_2);
    0x00014298 move a0, s2                   |         a0 = s2;
    0x0001429c lw t9, -0x7450(gp)            |         t9 = *((gp - 7444));
    0x000142a0 lw s2, 0x24(sp)               |         s2 = *(var_24h_2);
    0x000142a4 addiu sp, sp, 0x38            |         
    0x000142a8 jr t9                         |         t9 ();
    0x000142ac lw v0, -0x7fdc(gp)            |         v0 = *((gp - 8183));
    0x000142b0 lw t9, -0x75b8(gp)            |         t9 = sym.imp.g_hash_table_remove;
    0x000142b4 lw a1, (s2)                   |         a1 = *(s2);
    0x000142b8 lw a0, -0x23cc(v0)            |         a0 = *((v0 - 2291));
    0x000142bc jalr t9                       |         t9 ();
    0x000142c0 lw gp, 0x10(sp)               |         gp = *(var_10h_2);
    0x000142c4 lw t9, -0x77a0(gp)            |         t9 = sym.imp.g_bus_unwatch_name;
    0x000142c8 lw a0, 4(s2)                  |         a0 = *((s2 + 1));
    0x000142cc jalr t9                       |         t9 ();
    0x000142d0 lw gp, 0x10(sp)               |         gp = *(var_10h_2);
    0x000142d4 b 0x14270                     |         
                                             |     }
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/overlayd @ 0x142d8 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000142d8 ()              | void fcn_000142d8 () {
    0x000142d8 lui gp, 7                 |     
    0x000142dc addiu gp, gp, 0xd48       |     
    0x000142e0 addu gp, gp, t9           |     gp += t9;
    0x000142e4 addiu sp, sp, -0x98       |     
    0x000142e8 sw s2, 0x78(sp)           |     *(var_78h) = s2;
    0x000142ec sw s1, 0x74(sp)           |     *(var_74h) = s1;
    0x000142f0 lw s2, -0x773c(gp)        |     s2 = *((gp - 7631));
    0x000142f4 lw s1, -0x7fdc(gp)        |     s1 = *((gp - 8183));
    0x000142f8 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x000142fc lw v1, (s2)               |     v1 = *(s2);
    0x00014300 lw v0, -0x2380(s1)        |     v0 = *((s1 - 2272));
    0x00014304 sw ra, 0x94(sp)           |     *(var_94h) = ra;
    0x00014308 sw fp, 0x90(sp)           |     *(var_90h) = fp;
    0x0001430c sw s7, 0x8c(sp)           |     *(var_8ch) = s7;
    0x00014310 sw s6, 0x88(sp)           |     *(var_88h) = s6;
    0x00014314 sw s5, 0x84(sp)           |     *(var_84h) = s5;
    0x00014318 sw s4, 0x80(sp)           |     *(var_80h) = s4;
    0x0001431c sw s3, 0x7c(sp)           |     *(var_7ch) = s3;
    0x00014320 sw s0, 0x70(sp)           |     *(var_70h) = s0;
    0x00014324 sw v1, 0x6c(sp)           |     *(var_6ch) = v1;
    0x00014328 sw zero, 0x28(sp)         |     *(var_28h) = 0;
                                         |     if (v0 == 0) {
    0x0001432c beqz v0, 0x1434c          |         goto label_0;
                                         |     }
    0x00014330 lw v0, 4(a1)              |     v0 = *((a1 + 1));
    0x00014334 move s0, a1               |     s0 = a1;
                                         |     if (v0 == 0) {
    0x00014338 beqz v0, 0x1434c          |         goto label_0;
                                         |     }
    0x0001433c lw s3, 0xc(a1)            |     s3 = *((a1 + 3));
    0x00014340 addiu v0, zero, -1        |     v0 = -1;
    0x00014344 addiu s5, a1, 0x20        |     s5 = a1 + 0x20;
    0x00014348 beq s3, v0, 0x14388       |     
                                         |     while (v0 != 0) {
                                         | label_0:
    0x0001434c lw v1, 0x6c(sp)           |         v1 = *(var_6ch);
    0x00014350 lw v0, (s2)               |         v0 = *(s2);
    0x00014354 lw ra, 0x94(sp)           |         ra = *(var_94h);
                                         |         if (v1 != v0) {
    0x00014358 bne v1, v0, 0x148c8       |             goto label_5;
                                         |         }
    0x0001435c lw fp, 0x90(sp)           |         fp = *(var_90h);
    0x00014360 lw s7, 0x8c(sp)           |         s7 = *(var_8ch);
    0x00014364 lw s6, 0x88(sp)           |         s6 = *(var_88h);
    0x00014368 lw s5, 0x84(sp)           |         s5 = *(var_84h);
    0x0001436c lw s4, 0x80(sp)           |         s4 = *(var_80h);
    0x00014370 lw s3, 0x7c(sp)           |         s3 = *(var_7ch);
    0x00014374 lw s2, 0x78(sp)           |         s2 = *(var_78h);
    0x00014378 lw s1, 0x74(sp)           |         s1 = *(var_74h);
    0x0001437c lw s0, 0x70(sp)           |         s0 = *(var_70h);
    0x00014380 addiu sp, sp, 0x98        |         
    0x00014384 jr ra                     |         return v0;
    0x00014388 lw a1, -0x7fd4(gp)        |         a1 = *(gp);
    0x0001438c lw t9, -0x790c(gp)        |         t9 = sym.imp.strcmp;
    0x00014390 move s4, a0               |         s4 = a0;
                                         |         /* str._usr_bin_dynamic_overlayd */
    0x00014394 addiu a1, a1, 0x657c      |         a1 += 0x657c;
    0x00014398 move a0, s5               |         a0 = s5;
    0x0001439c jalr t9                   |         t9 ();
    0x000143a0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000143a4 bnez v0, 0x1434c          |         
                                         |     }
    0x000143a8 lw s7, 0x14(s0)           |     s7 = *((s0 + 5));
    0x000143ac lw t9, -0x787c(gp)        |     t9 = sym.imp.rand;
                                         |     if (s7 == s3) {
    0x000143b0 beq s7, s3, 0x14688       |         goto label_6;
                                         |     }
    0x000143b4 lw s6, -0x7fd4(gp)        |     s6 = *(gp);
    0x000143b8 addiu s3, sp, 0x2c        |     s3 = sp + 0x2c;
                                         | label_3:
    0x000143bc lw t9, -0x7894(gp)        |     t9 = sym.imp.__sprintf_chk
    0x000143c0 sw s7, 0x10(sp)           |     *(var_10h_2) = s7;
                                         |     /* str.Overlay_d */
    0x000143c4 addiu a3, s6, 0x6504      |     a3 = s6 + 0x6504;
    0x000143c8 addiu a2, zero, 0x40      |     a2 = 0x40;
    0x000143cc addiu a1, zero, 1         |     a1 = 1;
    0x000143d0 move a0, s3               |     a0 = s3;
    0x000143d4 jalr t9                   |     t9 ();
    0x000143d8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (s4 == 0) {
    0x000143dc beqz s4, 0x1434c          |         goto label_0;
                                         |     }
    0x000143e0 lw a2, -0x7fd4(gp)        |     a2 = *(gp);
    0x000143e4 lw t9, -0x785c(gp)        |     t9 = sym.imp.g_key_file_set_integer;
    0x000143e8 lw a3, 8(s0)              |     a3 = *((s0 + 2));
    0x000143ec lw a0, -0x2380(s1)        |     a0 = *((s1 - 2272));
                                         |     /* str.CameraID */
    0x000143f0 addiu a2, a2, 0x6598      |     a2 += 0x6598;
    0x000143f4 move a1, s3               |     a1 = s3;
    0x000143f8 jalr t9                   |     t9 ();
    0x000143fc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00014400 lw a3, 0xc(s0)            |     a3 = *((s0 + 3));
    0x00014404 lw a0, -0x2380(s1)        |     a0 = *((s1 - 2272));
    0x00014408 lw a2, -0x7fd4(gp)        |     a2 = *(gp);
    0x0001440c lw t9, -0x785c(gp)        |     t9 = sym.imp.g_key_file_set_integer;
                                         |     /* str.StreamID */
    0x00014410 addiu a2, a2, 0x65a4      |     a2 += 0x65a4;
    0x00014414 move a1, s3               |     a1 = s3;
    0x00014418 jalr t9                   |     t9 ();
    0x0001441c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00014420 lw a3, 4(s0)              |     a3 = *((s0 + 1));
    0x00014424 lw a0, -0x2380(s1)        |     a0 = *((s1 - 2272));
    0x00014428 lw a2, -0x7fd4(gp)        |     a2 = *(gp);
    0x0001442c lw t9, -0x785c(gp)        |     t9 = sym.imp.g_key_file_set_integer;
                                         |     /* str.OverlayType */
    0x00014430 addiu a2, a2, 0x65b0      |     a2 += 0x65b0;
    0x00014434 move a1, s3               |     a1 = s3;
    0x00014438 jalr t9                   |     t9 ();
    0x0001443c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00014440 lw a0, -0x2380(s1)        |     a0 = *((s1 - 2272));
    0x00014444 move a3, s5               |     a3 = s5;
    0x00014448 lw a2, -0x7fd4(gp)        |     a2 = *(gp);
    0x0001444c lw t9, -0x7564(gp)        |     t9 = sym.imp.g_key_file_set_string;
                                         |     /* str.Owner */
    0x00014450 addiu a2, a2, 0x65bc      |     a2 += 0x65bc;
    0x00014454 lw s5, -0x7fd4(gp)        |     s5 = *(gp);
    0x00014458 move a1, s3               |     a1 = s3;
    0x0001445c jalr t9                   |     t9 ();
    0x00014460 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     /* esilref: 'Position' */
    0x00014464 addiu a1, s5, 0x55fc      |     a1 = s5 + 0x55fc;
    0x00014468 lw t9, -0x7810(gp)        |     t9 = sym.imp.g_hash_table_lookup;
    0x0001446c move a0, s4               |     a0 = s4;
    0x00014470 jalr t9                   |     t9 ();
    0x00014474 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00014478 beqz v0, 0x14498          |         
    0x0001447c lw t9, -0x7564(gp)        |         t9 = sym.imp.g_key_file_set_string;
    0x00014480 lw a0, -0x2380(s1)        |         a0 = *((s1 - 2272));
    0x00014484 move a3, v0               |         a3 = v0;
                                         |         /* esilref: 'Position' */
    0x00014488 addiu a2, s5, 0x55fc      |         a2 = s5 + 0x55fc;
    0x0001448c move a1, s3               |         a1 = s3;
    0x00014490 jalr t9                   |         t9 ();
    0x00014494 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x00014498 lw v0, 0x1020(s0)         |     v0 = *((s0 + 1032));
    0x0001449c lw a0, -0x2380(s1)        |     a0 = *((s1 - 2272));
                                         |     if (v0 != 0) {
    0x000144a0 bnez v0, 0x14670          |         goto label_7;
                                         |     }
    0x000144a4 lw a3, -0x7fd4(gp)        |     a3 = *(gp);
                                         |     /* str.false */
    0x000144a8 addiu a3, a3, 0x54d8      |     a3 += 0x54d8;
                                         | label_1:
    0x000144ac lw a2, -0x7fd4(gp)        |     a2 = *(gp);
    0x000144b0 lw t9, -0x7564(gp)        |     t9 = sym.imp.g_key_file_set_string;
                                         |     /* str.Legacy */
    0x000144b4 addiu a2, a2, 0x65c4      |     a2 += 0x65c4;
    0x000144b8 move a1, s3               |     a1 = s3;
    0x000144bc jalr t9                   |     t9 ();
    0x000144c0 lw v0, 0x1028(s0)         |     v0 = *((s0 + 1034));
    0x000144c4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000144c8 lw a0, -0x2380(s1)        |     a0 = *((s1 - 2272));
                                         |     if (v0 != 0) {
    0x000144cc bnez v0, 0x1467c          |         goto label_8;
                                         |     }
    0x000144d0 lw a3, -0x7fd4(gp)        |     a3 = *(gp);
                                         |     /* str.false */
    0x000144d4 addiu a3, a3, 0x54d8      |     a3 += 0x54d8;
                                         | label_2:
    0x000144d8 lw a2, -0x7fd4(gp)        |     a2 = *(gp);
    0x000144dc lw t9, -0x7564(gp)        |     t9 = sym.imp.g_key_file_set_string;
                                         |     /* str.Visible */
    0x000144e0 addiu a2, a2, 0x54c8      |     a2 += 0x54c8;
    0x000144e4 lw s5, -0x7fd4(gp)        |     s5 = *(gp);
    0x000144e8 move a1, s3               |     a1 = s3;
    0x000144ec jalr t9                   |     t9 ();
    0x000144f0 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     /* str.AnchorPoint */
    0x000144f4 addiu a1, s5, 0x6428      |     a1 = s5 + 0x6428;
    0x000144f8 lw t9, -0x7810(gp)        |     t9 = sym.imp.g_hash_table_lookup;
    0x000144fc move a0, s4               |     a0 = s4;
    0x00014500 jalr t9                   |     t9 ();
    0x00014504 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00014508 beqz v0, 0x14528          |         
    0x0001450c lw t9, -0x7564(gp)        |         t9 = sym.imp.g_key_file_set_string;
    0x00014510 lw a0, -0x2380(s1)        |         a0 = *((s1 - 2272));
    0x00014514 move a3, v0               |         a3 = v0;
                                         |         /* str.AnchorPoint */
    0x00014518 addiu a2, s5, 0x6428      |         a2 = s5 + 0x6428;
    0x0001451c move a1, s3               |         a1 = s3;
    0x00014520 jalr t9                   |         t9 ();
    0x00014524 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x00014528 lw s5, -0x7fd4(gp)        |     s5 = *(gp);
    0x0001452c lw t9, -0x7810(gp)        |     t9 = sym.imp.g_hash_table_lookup;
                                         |     /* str.Reference */
    0x00014530 addiu a1, s5, 0x54bc      |     a1 = s5 + 0x54bc;
    0x00014534 move a0, s4               |     a0 = s4;
    0x00014538 jalr t9                   |     t9 ();
    0x0001453c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00014540 beqz v0, 0x14560          |         
    0x00014544 lw t9, -0x7564(gp)        |         t9 = sym.imp.g_key_file_set_string;
    0x00014548 lw a0, -0x2380(s1)        |         a0 = *((s1 - 2272));
    0x0001454c move a3, v0               |         a3 = v0;
                                         |         /* str.Reference */
    0x00014550 addiu a2, s5, 0x54bc      |         a2 = s5 + 0x54bc;
    0x00014554 move a1, s3               |         a1 = s3;
    0x00014558 jalr t9                   |         t9 ();
    0x0001455c lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x00014560 lw s5, -0x7fd4(gp)        |     s5 = *(gp);
    0x00014564 lw t9, -0x7810(gp)        |     t9 = sym.imp.g_hash_table_lookup;
                                         |     /* str.ZIndex */
    0x00014568 addiu a1, s5, 0x6434      |     a1 = s5 + 0x6434;
    0x0001456c move a0, s4               |     a0 = s4;
    0x00014570 jalr t9                   |     t9 ();
    0x00014574 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00014578 beqz v0, 0x14598          |         
    0x0001457c lw t9, -0x7564(gp)        |         t9 = sym.imp.g_key_file_set_string;
    0x00014580 lw a0, -0x2380(s1)        |         a0 = *((s1 - 2272));
    0x00014584 move a3, v0               |         a3 = v0;
                                         |         /* str.ZIndex */
    0x00014588 addiu a2, s5, 0x6434      |         a2 = s5 + 0x6434;
    0x0001458c move a1, s3               |         a1 = s3;
    0x00014590 jalr t9                   |         t9 ();
    0x00014594 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x00014598 lw s5, -0x7fd4(gp)        |     s5 = *(gp);
    0x0001459c lw t9, -0x7810(gp)        |     t9 = sym.imp.g_hash_table_lookup;
                                         |     /* str.AlwaysOn */
    0x000145a0 addiu a1, s5, 0x643c      |     a1 = s5 + 0x643c;
    0x000145a4 move a0, s4               |     a0 = s4;
    0x000145a8 jalr t9                   |     t9 ();
    0x000145ac lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x000145b0 beqz v0, 0x145d0          |         
    0x000145b4 lw t9, -0x7564(gp)        |         t9 = sym.imp.g_key_file_set_string;
    0x000145b8 lw a0, -0x2380(s1)        |         a0 = *((s1 - 2272));
    0x000145bc move a3, v0               |         a3 = v0;
                                         |         /* str.AlwaysOn */
    0x000145c0 addiu a2, s5, 0x643c      |         a2 = s5 + 0x643c;
    0x000145c4 move a1, s3               |         a1 = s3;
    0x000145c8 jalr t9                   |         t9 ();
    0x000145cc lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x000145d0 lw s5, -0x7fd4(gp)        |     s5 = *(gp);
    0x000145d4 lw t9, -0x7810(gp)        |     t9 = sym.imp.g_hash_table_lookup;
                                         |     /* str.NbrOfBuffers */
    0x000145d8 addiu a1, s5, 0x6458      |     a1 = s5 + 0x6458;
    0x000145dc move a0, s4               |     a0 = s4;
    0x000145e0 jalr t9                   |     t9 ();
    0x000145e4 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x000145e8 beqz v0, 0x14608          |         
    0x000145ec lw t9, -0x7564(gp)        |         t9 = sym.imp.g_key_file_set_string;
    0x000145f0 lw a0, -0x2380(s1)        |         a0 = *((s1 - 2272));
    0x000145f4 move a3, v0               |         a3 = v0;
                                         |         /* str.NbrOfBuffers */
    0x000145f8 addiu a2, s5, 0x6458      |         a2 = s5 + 0x6458;
    0x000145fc move a1, s3               |         a1 = s3;
    0x00014600 jalr t9                   |         t9 ();
    0x00014604 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x00014608 lw v0, 4(s0)              |     v0 = *((s0 + 1));
    0x0001460c addiu v1, zero, 1         |     v1 = 1;
    0x00014610 addiu v1, zero, 2         |     v1 = 2;
                                         |     if (v0 == v1) {
    0x00014614 beq v0, v1, 0x1473c       |         goto label_9;
                                         |     }
    0x00014618 lw s0, -0x7fd4(gp)        |     s0 = *(gp);
                                         |     if (v0 == v1) {
    0x0001461c beq v0, v1, 0x14778       |         goto label_10;
                                         |     }
                                         | label_4:
    0x00014620 lw t9, -0x7f58(gp)        |     t9 = *(gp);
                                         |     /* fcn.00013d94 */
    0x00014624 addiu t9, t9, 0x3d94      |     t9 += 0x3d94;
    0x00014628 addiu a0, sp, 0x28        |     a0 = sp + 0x28;
    0x0001462c bal 0x13d94               |     fcn_00013d94 ();
    0x00014630 lw v0, 0x28(sp)           |     v0 = *(var_28h);
    0x00014634 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00014638 beqz v0, 0x1434c          |         goto label_0;
                                         |     }
    0x0001463c lw a2, -0x7fd4(gp)        |     a2 = *(gp);
    0x00014640 lw t9, -0x7774(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00014644 lw a3, 8(v0)              |     a3 = *((v0 + 2));
                                         |     /* str.save_to_conf_file_failed_due_to__s_n */
    0x00014648 addiu a2, a2, 0x65cc      |     a2 += 0x65cc;
    0x0001464c addiu a1, zero, 1         |     a1 = 1;
    0x00014650 addiu a0, zero, 3         |     a0 = 3;
    0x00014654 jalr t9                   |     t9 ();
    0x00014658 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0001465c lw t9, -0x78ac(gp)        |     t9 = sym.imp.g_error_free;
    0x00014660 lw a0, 0x28(sp)           |     a0 = *(var_28h);
    0x00014664 jalr t9                   |     t9 ();
    0x00014668 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0001466c b 0x1434c                 |     goto label_0;
                                         | label_7:
    0x00014670 lw a3, -0x7fd4(gp)        |     a3 = *(gp);
                                         |     /* str.true */
    0x00014674 addiu a3, a3, 0x54d0      |     a3 += 0x54d0;
    0x00014678 b 0x144ac                 |     goto label_1;
                                         | label_8:
    0x0001467c lw a3, -0x7fd4(gp)        |     a3 = *(gp);
                                         |     /* str.true */
    0x00014680 addiu a3, a3, 0x54d0      |     a3 += 0x54d0;
    0x00014684 b 0x144d8                 |     goto label_2;
                                         | label_6:
    0x00014688 lw s6, -0x7fd4(gp)        |     s6 = *(gp);
    0x0001468c addiu s3, sp, 0x2c        |     s3 = sp + 0x2c;
    0x00014690 jalr t9                   |     t9 ();
    0x00014694 lui v1, 0x1062            |     v1 = 0x10624dd3;
    0x00014698 addiu v1, v1, 0x4dd3      |     
    0x0001469c mult v0, v1               |     __asm ("mult v0, v1");
    0x000146a0 mfhi v1                   |     __asm ("mfhi v1");
    0x000146a4 sra a0, v0, 0x1f          |     a0 = v0 >> 0x1f;
    0x000146a8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     /* str.Overlay_d */
    0x000146ac addiu a3, s6, 0x6504      |     a3 = s6 + 0x6504;
    0x000146b0 sra v1, v1, 6             |     v1 >>= 6;
    0x000146b4 subu s7, v1, a0           |     __asm ("subu s7, v1, a0");
    0x000146b8 addiu a0, zero, 0x3e8     |     a0 = aav.0x000003e8;
    0x000146bc mul v1, s7, a0            |     __asm ("mul v1, s7, a0");
    0x000146c0 lw t9, -0x7894(gp)        |     t9 = sym.imp.__sprintf_chk
    0x000146c4 addiu a2, zero, 0x40      |     a2 = 0x40;
    0x000146c8 addiu a1, zero, 1         |     a1 = 1;
    0x000146cc move a0, s3               |     a0 = s3;
    0x000146d0 subu s7, v0, v1           |     __asm ("subu s7, v0, v1");
    0x000146d4 sw s7, 0x10(sp)           |     *(var_10h_2) = s7;
    0x000146d8 jalr t9                   |     t9 ();
                                         |     /* str.Overlay_d */
    0x000146dc addiu v0, s6, 0x6504      |     v0 = s6 + 0x6504;
    0x000146e0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000146e4 addiu fp, zero, 0x3e8     |     fp = aav.0x000003e8;
    0x000146e8 sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x000146ec b 0x1471c                 |     
                                         |     while (v0 != 0) {
    0x000146f0 addiu s7, s7, 1           |         s7++;
                                         |         if (s7 != fp) {
    0x000146f4 beql s7, fp, 0x146fc      |             
    0x000146f8 move s7, zero             |             s7 = 0;
                                         |         }
    0x000146fc lw t9, -0x7894(gp)        |         t9 = sym.imp.__sprintf_chk
    0x00014700 lw a3, 0x24(sp)           |         a3 = *(var_24h);
    0x00014704 sw s7, 0x10(sp)           |         *(var_10h_2) = s7;
    0x00014708 addiu a2, zero, 0x40      |         a2 = 0x40;
    0x0001470c addiu a1, zero, 1         |         a1 = 1;
    0x00014710 move a0, s3               |         a0 = s3;
    0x00014714 jalr t9                   |         t9 ();
    0x00014718 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0001471c lw t9, -0x75c0(gp)        |         t9 = sym.imp.g_key_file_has_group;
    0x00014720 lw a0, -0x2380(s1)        |         a0 = *((s1 - 2272));
    0x00014724 move a1, s3               |         a1 = s3;
    0x00014728 jalr t9                   |         t9 ();
    0x0001472c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00014730 bnez v0, 0x146f0          |         
                                         |     }
    0x00014734 sw s7, 0x14(s0)           |     *((s0 + 5)) = s7;
    0x00014738 b 0x143bc                 |     goto label_3;
                                         | label_9:
    0x0001473c lw s0, -0x7fd4(gp)        |     s0 = *(gp);
    0x00014740 lw t9, -0x7810(gp)        |     t9 = sym.imp.g_hash_table_lookup;
                                         |     /* str.OverlayPath */
    0x00014744 addiu a1, s0, 0x5274      |     a1 = s0 + 0x5274;
    0x00014748 move a0, s4               |     a0 = s4;
    0x0001474c jalr t9                   |     t9 ();
    0x00014750 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00014754 beqz v0, 0x14620          |         goto label_4;
                                         |     }
    0x00014758 lw t9, -0x7564(gp)        |     t9 = sym.imp.g_key_file_set_string;
    0x0001475c lw a0, -0x2380(s1)        |     a0 = *((s1 - 2272));
    0x00014760 move a3, v0               |     a3 = v0;
                                         |     /* str.OverlayPath */
    0x00014764 addiu a2, s0, 0x5274      |     a2 = s0 + 0x5274;
    0x00014768 move a1, s3               |     a1 = s3;
    0x0001476c jalr t9                   |     t9 ();
    0x00014770 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00014774 b 0x14620                 |     goto label_4;
                                         | label_10:
    0x00014778 lw t9, -0x7810(gp)        |     t9 = sym.imp.g_hash_table_lookup;
                                         |     /* str.Text */
    0x0001477c addiu a1, s0, 0x5298      |     a1 = s0 + 0x5298;
    0x00014780 move a0, s4               |     a0 = s4;
    0x00014784 jalr t9                   |     t9 ();
    0x00014788 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x0001478c beqz v0, 0x147ac          |         
    0x00014790 lw t9, -0x7564(gp)        |         t9 = sym.imp.g_key_file_set_string;
    0x00014794 lw a0, -0x2380(s1)        |         a0 = *((s1 - 2272));
    0x00014798 move a3, v0               |         a3 = v0;
                                         |         /* str.Text */
    0x0001479c addiu a2, s0, 0x5298      |         a2 = s0 + 0x5298;
    0x000147a0 move a1, s3               |         a1 = s3;
    0x000147a4 jalr t9                   |         t9 ();
    0x000147a8 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x000147ac lw s0, -0x7fd4(gp)        |     s0 = *(gp);
    0x000147b0 lw t9, -0x7810(gp)        |     t9 = sym.imp.g_hash_table_lookup;
                                         |     /* str.TextColor */
    0x000147b4 addiu a1, s0, 0x52a0      |     a1 = s0 + 0x52a0;
    0x000147b8 move a0, s4               |     a0 = s4;
    0x000147bc jalr t9                   |     t9 ();
    0x000147c0 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x000147c4 beqz v0, 0x147e4          |         
    0x000147c8 lw t9, -0x7564(gp)        |         t9 = sym.imp.g_key_file_set_string;
    0x000147cc lw a0, -0x2380(s1)        |         a0 = *((s1 - 2272));
    0x000147d0 move a3, v0               |         a3 = v0;
                                         |         /* str.TextColor */
    0x000147d4 addiu a2, s0, 0x52a0      |         a2 = s0 + 0x52a0;
    0x000147d8 move a1, s3               |         a1 = s3;
    0x000147dc jalr t9                   |         t9 ();
    0x000147e0 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x000147e4 lw s0, -0x7fd4(gp)        |     s0 = *(gp);
    0x000147e8 lw t9, -0x7810(gp)        |     t9 = sym.imp.g_hash_table_lookup;
                                         |     /* str.TextBGColor */
    0x000147ec addiu a1, s0, 0x52ac      |     a1 = s0 + 0x52ac;
    0x000147f0 move a0, s4               |     a0 = s4;
    0x000147f4 jalr t9                   |     t9 ();
    0x000147f8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x000147fc beqz v0, 0x1481c          |         
    0x00014800 lw t9, -0x7564(gp)        |         t9 = sym.imp.g_key_file_set_string;
    0x00014804 lw a0, -0x2380(s1)        |         a0 = *((s1 - 2272));
    0x00014808 move a3, v0               |         a3 = v0;
                                         |         /* str.TextBGColor */
    0x0001480c addiu a2, s0, 0x52ac      |         a2 = s0 + 0x52ac;
    0x00014810 move a1, s3               |         a1 = s3;
    0x00014814 jalr t9                   |         t9 ();
    0x00014818 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x0001481c lw s0, -0x7fd4(gp)        |     s0 = *(gp);
    0x00014820 lw t9, -0x7810(gp)        |     t9 = sym.imp.g_hash_table_lookup;
                                         |     /* str.TextOLColor */
    0x00014824 addiu a1, s0, 0x6400      |     a1 = s0 + 0x6400;
    0x00014828 move a0, s4               |     a0 = s4;
    0x0001482c jalr t9                   |     t9 ();
    0x00014830 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00014834 beqz v0, 0x14854          |         
    0x00014838 lw t9, -0x7564(gp)        |         t9 = sym.imp.g_key_file_set_string;
    0x0001483c lw a0, -0x2380(s1)        |         a0 = *((s1 - 2272));
    0x00014840 move a3, v0               |         a3 = v0;
                                         |         /* str.TextOLColor */
    0x00014844 addiu a2, s0, 0x6400      |         a2 = s0 + 0x6400;
    0x00014848 move a1, s3               |         a1 = s3;
    0x0001484c jalr t9                   |         t9 ();
    0x00014850 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x00014854 lw s0, -0x7fd4(gp)        |     s0 = *(gp);
    0x00014858 lw t9, -0x7810(gp)        |     t9 = sym.imp.g_hash_table_lookup;
                                         |     /* str.FontSize */
    0x0001485c addiu a1, s0, 0x52c4      |     a1 = s0 + 0x52c4;
    0x00014860 move a0, s4               |     a0 = s4;
    0x00014864 jalr t9                   |     t9 ();
    0x00014868 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x0001486c beqz v0, 0x1488c          |         
    0x00014870 lw t9, -0x7564(gp)        |         t9 = sym.imp.g_key_file_set_string;
    0x00014874 lw a0, -0x2380(s1)        |         a0 = *((s1 - 2272));
    0x00014878 move a3, v0               |         a3 = v0;
                                         |         /* str.FontSize */
    0x0001487c addiu a2, s0, 0x52c4      |         a2 = s0 + 0x52c4;
    0x00014880 move a1, s3               |         a1 = s3;
    0x00014884 jalr t9                   |         t9 ();
    0x00014888 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x0001488c lw s0, -0x7fd4(gp)        |     s0 = *(gp);
    0x00014890 lw t9, -0x7810(gp)        |     t9 = sym.imp.g_hash_table_lookup;
                                         |     /* str.ScrollSpeed */
    0x00014894 addiu a1, s0, 0x640c      |     a1 = s0 + 0x640c;
    0x00014898 move a0, s4               |     a0 = s4;
    0x0001489c jalr t9                   |     t9 ();
    0x000148a0 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x000148a4 beqz v0, 0x14620          |         goto label_4;
                                         |     }
    0x000148a8 lw t9, -0x7564(gp)        |     t9 = sym.imp.g_key_file_set_string;
    0x000148ac lw a0, -0x2380(s1)        |     a0 = *((s1 - 2272));
    0x000148b0 move a3, v0               |     a3 = v0;
                                         |     /* str.ScrollSpeed */
    0x000148b4 addiu a2, s0, 0x640c      |     a2 = s0 + 0x640c;
    0x000148b8 move a1, s3               |     a1 = s3;
    0x000148bc jalr t9                   |     t9 ();
    0x000148c0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000148c4 b 0x14620                 |     goto label_4;
                                         | label_5:
    0x000148c8 lw t9, -0x77d4(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x000148cc jalr t9                   |     t9 ();
    0x000148d0 nop                       |     
                                         | }

[*] Function sprintf used 5 times overlayd