[*] Binary protection state of overlayd

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


[*] Function strcpy tear down of overlayd

    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/overlayd @ 0x15e9c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.overlay_frontend_change_owner ()         | void overlay_frontend_change_owner () {
    0x00015e9c lui gp, 7                                 |     
    0x00015ea0 addiu gp, gp, -0xe7c                      |     
    0x00015ea4 addu gp, gp, t9                           |     gp += t9;
    0x00015ea8 addiu sp, sp, -0x38                       |     
    0x00015eac sw gp, 0x18(sp)                           |     *(var_18h) = gp;
    0x00015eb0 sw s4, 0x30(sp)                           |     *(var_30h) = s4;
    0x00015eb4 sw s3, 0x2c(sp)                           |     *(var_2ch) = s3;
    0x00015eb8 sw ra, 0x34(sp)                           |     *(var_34h) = ra;
    0x00015ebc sw s2, 0x28(sp)                           |     *(var_28h) = s2;
    0x00015ec0 sw s1, 0x24(sp)                           |     *(var_24h) = s1;
    0x00015ec4 sw s0, 0x20(sp)                           |     *(var_20h) = s0;
    0x00015ec8 move s3, a0                               |     s3 = a0;
    0x00015ecc move s4, a1                               |     s4 = a1;
                                                         |     if (a2 != 0) {
    0x00015ed0 beqz a2, 0x15f44                          |         
    0x00015ed4 move s0, a3                               |         s0 = a3;
                                                         |         if (a3 == 0) {
    0x00015ed8 beqz a3, 0x15f44                          |             goto label_0;
                                                         |         }
    0x00015edc lw t9, -0x7e20(gp)                        |         t9 = sym.overlay_dbus_lookup_overlay_info;
    0x00015ee0 move a0, a2                               |         a0 = a2;
    0x00015ee4 move s1, a2                               |         s1 = a2;
    0x00015ee8 bal 0x1eb80                               |         sym_overlay_dbus_lookup_overlay_info ();
    0x00015eec move s2, v0                               |         s2 = v0;
    0x00015ef0 lw gp, 0x18(sp)                           |         gp = *(var_18h);
                                                         |         if (v0 == 0) {
    0x00015ef4 beqz v0, 0x15f9c                          |             goto label_1;
                                                         |         }
    0x00015ef8 lw t9, -0x775c(gp)                        |         t9 = sym.imp.__strcpy_chk
    0x00015efc addiu a2, zero, 0x1000                    |         a2 = 0x1000;
    0x00015f00 move a1, s0                               |         a1 = s0;
    0x00015f04 addiu a0, v0, 0x20                        |         a0 = v0 + 0x20;
    0x00015f08 jalr t9                                   |         t9 ();
    0x00015f0c lw gp, 0x18(sp)                           |         gp = *(var_18h);
    0x00015f10 lw a0, 0x18(s2)                           |         a0 = *((s2 + 6));
    0x00015f14 lw t9, -0x7ddc(gp)                        |         t9 = sym.overlay_dbus_set_owner;
    0x00015f18 move a1, s0                               |         a1 = s0;
    0x00015f1c bal 0x1f1bc                               |         sym_overlay_dbus_set_owner ();
    0x00015f20 lw ra, 0x34(sp)                           |         ra = *(var_34h);
    0x00015f24 lw s4, 0x30(sp)                           |         s4 = *(var_30h);
    0x00015f28 lw s3, 0x2c(sp)                           |         s3 = *(var_2ch);
    0x00015f2c lw s2, 0x28(sp)                           |         s2 = *(var_28h);
    0x00015f30 lw s1, 0x24(sp)                           |         s1 = *(var_24h);
    0x00015f34 lw s0, 0x20(sp)                           |         s0 = *(var_20h);
    0x00015f38 addiu v0, zero, 1                         |         v0 = 1;
    0x00015f3c addiu sp, sp, 0x38                        |         
    0x00015f40 jr ra                                     |         return v0;
                                                         |     }
                                                         | label_0:
    0x00015f44 lw s0, -0x7fd4(gp)                        |     s0 = *(gp);
    0x00015f48 lw t9, -0x7774(gp)                        |     t9 = sym.imp.__syslog_chk;
                                                         |     /* str.No_overlay_handle_or_owner_provided */
    0x00015f4c addiu a2, s0, 0x6730                      |     a2 = s0 + 0x6730;
    0x00015f50 addiu a1, zero, 1                         |     a1 = 1;
    0x00015f54 addiu a0, zero, 3                         |     a0 = 3;
    0x00015f58 jalr t9                                   |     t9 ();
    0x00015f5c lw gp, 0x18(sp)                           |     gp = *(var_18h);
                                                         |     /* str.No_overlay_handle_or_owner_provided */
    0x00015f60 addiu a3, s0, 0x6730                      |     a3 = s0 + 0x6730;
    0x00015f64 move a1, s4                               |     a1 = s4;
    0x00015f68 lw t9, -0x7930(gp)                        |     t9 = sym.imp.g_dbus_method_invocation_return_error;
    0x00015f6c move a0, s3                               |     a0 = s3;
    0x00015f70 addiu a2, zero, 2                         |     a2 = 2;
    0x00015f74 jalr t9                                   |     t9 ();
    0x00015f78 lw ra, 0x34(sp)                           |     ra = *(var_34h);
    0x00015f7c lw s4, 0x30(sp)                           |     s4 = *(var_30h);
    0x00015f80 lw s3, 0x2c(sp)                           |     s3 = *(var_2ch);
    0x00015f84 lw s2, 0x28(sp)                           |     s2 = *(var_28h);
    0x00015f88 lw s1, 0x24(sp)                           |     s1 = *(var_24h);
    0x00015f8c lw s0, 0x20(sp)                           |     s0 = *(var_20h);
    0x00015f90 move v0, zero                             |     v0 = 0;
    0x00015f94 addiu sp, sp, 0x38                        |     
    0x00015f98 jr ra                                     |     return v0;
                                                         | label_1:
    0x00015f9c lw s0, -0x7fd4(gp)                        |     s0 = *(gp);
    0x00015fa0 lw t9, -0x7774(gp)                        |     t9 = sym.imp.__syslog_chk;
    0x00015fa4 move a3, s1                               |     a3 = s1;
                                                         |     /* str.Invalid_overlay_handle:__s */
    0x00015fa8 addiu a2, s0, 0x64e8                      |     a2 = s0 + 0x64e8;
    0x00015fac addiu a1, zero, 1                         |     a1 = 1;
    0x00015fb0 addiu a0, zero, 3                         |     a0 = 3;
    0x00015fb4 jalr t9                                   |     t9 ();
    0x00015fb8 lw gp, 0x18(sp)                           |     gp = *(var_18h);
    0x00015fbc sw s1, 0x10(sp)                           |     *(var_10h_2) = s1;
                                                         |     /* str.Invalid_overlay_handle:__s */
    0x00015fc0 addiu a3, s0, 0x64e8                      |     a3 = s0 + 0x64e8;
    0x00015fc4 lw t9, -0x7930(gp)                        |     t9 = sym.imp.g_dbus_method_invocation_return_error;
    0x00015fc8 move a1, s4                               |     a1 = s4;
    0x00015fcc move a0, s3                               |     a0 = s3;
    0x00015fd0 addiu a2, zero, 2                         |     a2 = 2;
    0x00015fd4 jalr t9                                   |     t9 ();
    0x00015fd8 lw ra, 0x34(sp)                           |     ra = *(var_34h);
    0x00015fdc lw s4, 0x30(sp)                           |     s4 = *(var_30h);
    0x00015fe0 lw s3, 0x2c(sp)                           |     s3 = *(var_2ch);
    0x00015fe4 lw s2, 0x28(sp)                           |     s2 = *(var_28h);
    0x00015fe8 lw s1, 0x24(sp)                           |     s1 = *(var_24h);
    0x00015fec lw s0, 0x20(sp)                           |     s0 = *(var_20h);
    0x00015ff0 move v0, zero                             |     v0 = 0;
    0x00015ff4 addiu sp, sp, 0x38                        |     
    0x00015ff8 jr ra                                     |     return v0;
                                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/overlayd @ 0x162d0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.overlay_frontend_create ()       | void overlay_frontend_create () {
    0x000162d0 lui gp, 7                         |     
    0x000162d4 addiu gp, gp, -0x12b0             |     
    0x000162d8 addu gp, gp, t9                   |     gp += t9;
    0x000162dc addiu sp, sp, -0x70               |     
    0x000162e0 lw t9, -0x7f14(gp)                |     t9 = sym.overlay_backend_is_external_chip;
    0x000162e4 sw s5, 0x5c(sp)                   |     *(var_5ch) = s5;
    0x000162e8 lw s5, -0x773c(gp)                |     s5 = *((gp - 7631));
    0x000162ec sw gp, 0x20(sp)                   |     *(var_20h) = gp;
    0x000162f0 sw s6, 0x60(sp)                   |     *(var_60h) = s6;
    0x000162f4 lw v0, (s5)                       |     v0 = *(s5);
    0x000162f8 sw s4, 0x58(sp)                   |     *(var_58h) = s4;
    0x000162fc sw s3, 0x54(sp)                   |     *(var_54h) = s3;
    0x00016300 sw s2, 0x50(sp)                   |     *(var_50h) = s2;
    0x00016304 sw s1, 0x4c(sp)                   |     *(var_4ch) = s1;
    0x00016308 sw ra, 0x6c(sp)                   |     *(var_6ch) = ra;
    0x0001630c sw fp, 0x68(sp)                   |     *(var_68h) = fp;
    0x00016310 sw s7, 0x64(sp)                   |     *(var_64h) = s7;
    0x00016314 sw s0, 0x48(sp)                   |     *(var_48h) = s0;
    0x00016318 sw v0, 0x44(sp)                   |     *(var_44h) = v0;
    0x0001631c move s3, a0                       |     s3 = a0;
    0x00016320 move s6, a1                       |     s6 = a1;
    0x00016324 move s1, a2                       |     s1 = a2;
    0x00016328 move s4, a3                       |     s4 = a3;
    0x0001632c lw s2, 0x80(sp)                   |     s2 = *(arg_80h);
    0x00016330 bal 0x1d6fc                       |     sym_overlay_backend_is_external_chip ();
    0x00016334 lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (v0 != 0) {
    0x00016338 bnez v0, 0x168b4                  |         goto label_21;
                                                 |     }
                                                 | label_7:
    0x0001633c lw a1, -0x7fd4(gp)                |     a1 = *(gp);
    0x00016340 lw t9, -0x7810(gp)                |     t9 = sym.imp.g_hash_table_lookup;
                                                 |     /* str.Camera */
    0x00016344 addiu a1, a1, 0x54b4              |     a1 += 0x54b4;
    0x00016348 move a0, s1                       |     a0 = s1;
    0x0001634c jalr t9                           |     t9 ();
    0x00016350 move s7, v0                       |     s7 = v0;
    0x00016354 lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (v0 == 0) {
    0x00016358 beqz v0, 0x169ec                  |         goto label_22;
                                                 |     }
    0x0001635c lw a1, -0x7fd4(gp)                |     a1 = *(gp);
    0x00016360 lw t9, -0x790c(gp)                |     t9 = sym.imp.strcmp;
                                                 |     /* str.quad */
    0x00016364 addiu a1, a1, 0x6350              |     a1 += 0x6350;
    0x00016368 move a0, v0                       |     a0 = v0;
    0x0001636c jalr t9                           |     t9 ();
    0x00016370 move s0, v0                       |     s0 = v0;
    0x00016374 lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (v0 != 0) {
    0x00016378 bnez v0, 0x1684c                  |         goto label_23;
                                                 |     }
                                                 | label_5:
    0x0001637c lw s7, -0x7fd4(gp)                |     s7 = *(gp);
                                                 | label_14:
    0x00016380 lw t9, -0x7810(gp)                |     t9 = sym.imp.g_hash_table_lookup;
                                                 |     /* esilref: 'Stream' */
    0x00016384 addiu a1, s7, 0x5f10              |     a1 = s7 + 0x5f10;
    0x00016388 move a0, s1                       |     a0 = s1;
    0x0001638c jalr t9                           |     t9 ();
    0x00016390 lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (v0 == 0) {
    0x00016394 beqz v0, 0x168ac                  |         goto label_24;
                                                 |     }
    0x00016398 lw t9, -0x7604(gp)                |     t9 = sym.imp.strtol;
    0x0001639c addiu a2, zero, 0xa               |     a2 = 0xa;
    0x000163a0 move a1, zero                     |     a1 = 0;
    0x000163a4 move a0, v0                       |     a0 = v0;
    0x000163a8 jalr t9                           |     t9 ();
    0x000163ac lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x000163b0 move s7, v0                       |     s7 = v0;
                                                 | label_6:
    0x000163b4 lw t9, -0x7f58(gp)                |     t9 = *(gp);
    0x000163b8 move a1, s4                       |     a1 = s4;
                                                 |     /* fcn.00013614 */
    0x000163bc addiu t9, t9, 0x3614              |     t9 += 0x3614;
    0x000163c0 move a0, s1                       |     a0 = s1;
    0x000163c4 bal 0x13614                       |     fcn_00013614 ();
    0x000163c8 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x000163cc move a1, s0                       |     a1 = s0;
    0x000163d0 move a2, s7                       |     a2 = s7;
    0x000163d4 lw t9, -0x7df4(gp)                |     t9 = sym.overlay_frontend_allocate_overlay_info;
    0x000163d8 move a0, s4                       |     a0 = s4;
    0x000163dc bal 0x14dd8                       |     sym_overlay_frontend_allocate_overlay_info ();
    0x000163e0 move s0, v0                       |     s0 = v0;
    0x000163e4 lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (v0 == 0) {
    0x000163e8 beqz v0, 0x16b94                  |         goto label_25;
                                                 |     }
    0x000163ec lw t9, -0x7dc8(gp)                |     t9 = sym.overlay_frontend_get_calling_process;
                                                 |     if (s3 == 0) {
    0x000163f0 beqz s3, 0x1690c                  |         goto label_26;
                                                 |     }
    0x000163f4 move a0, s3                       |     a0 = s3;
    0x000163f8 bal 0x15ffc                       |     sym_overlay_frontend_get_calling_process ();
    0x000163fc move s7, v0                       |     s7 = v0;
    0x00016400 lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (v0 == 0) {
    0x00016404 beqz v0, 0x16bb4                  |         goto label_27;
                                                 |     }
    0x00016408 lw t9, -0x775c(gp)                |     t9 = sym.imp.__strcpy_chk
                                                 | label_10:
    0x0001640c addiu a2, zero, 0x1000            |     a2 = 0x1000;
    0x00016410 move a1, s7                       |     a1 = s7;
    0x00016414 addiu a0, s0, 0x20                |     a0 = s0 + 0x20;
    0x00016418 jalr t9                           |     t9 ();
    0x0001641c lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 | label_9:
    0x00016420 lw t9, -0x7450(gp)                |     t9 = *((gp - 7444));
    0x00016424 move a0, s7                       |     a0 = s7;
    0x00016428 jalr t9                           |     t9 ();
    0x0001642c lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016430 andi v1, s2, 1                    |     v1 = s2 & 1;
    0x00016434 andi v0, s2, 2                    |     v0 = s2 & 2;
    0x00016438 lw a1, -0x7fd4(gp)                |     a1 = *(gp);
    0x0001643c lw t9, -0x7810(gp)                |     t9 = sym.imp.g_hash_table_lookup;
    0x00016440 andi s2, s2, 4                    |     s2 &= 4;
    0x00016444 sw v1, 0x1020(s0)                 |     *((s0 + 1032)) = v1;
    0x00016448 sw v0, 0x1034(s0)                 |     *((s0 + 1037)) = v0;
    0x0001644c sw s2, 0x1024(s0)                 |     *((s0 + 1033)) = s2;
                                                 |     /* str.DestroyOnClose */
    0x00016450 addiu a1, a1, 0x6448              |     a1 += 0x6448;
    0x00016454 move a0, s1                       |     a0 = s1;
    0x00016458 jalr t9                           |     t9 ();
    0x0001645c lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (v0 == 0) {
    0x00016460 beqz v0, 0x16930                  |         goto label_28;
                                                 |     }
    0x00016464 lw a1, -0x7fd4(gp)                |     a1 = *(gp);
    0x00016468 lw t9, -0x790c(gp)                |     t9 = sym.imp.strcmp;
                                                 |     /* str.true */
    0x0001646c addiu a1, a1, 0x54d0              |     a1 += 0x54d0;
    0x00016470 move a0, v0                       |     a0 = v0;
    0x00016474 jalr t9                           |     t9 ();
    0x00016478 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x0001647c sltiu v0, v0, 1                   |     v0 = (v0 < 1) ? 1 : 0;
                                                 | label_11:
    0x00016480 lw s2, -0x7fd4(gp)                |     s2 = *(gp);
    0x00016484 lw t9, -0x7810(gp)                |     t9 = sym.imp.g_hash_table_lookup;
    0x00016488 sw v0, 0x1038(s0)                 |     *((s0 + 1038)) = v0;
                                                 |     /* str.Visible */
    0x0001648c addiu a1, s2, 0x54c8              |     a1 = s2 + 0x54c8;
    0x00016490 move a0, s1                       |     a0 = s1;
    0x00016494 jalr t9                           |     t9 ();
    0x00016498 lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (v0 == 0) {
    0x0001649c beqz v0, 0x16938                  |         goto label_29;
                                                 |     }
    0x000164a0 lw a1, -0x7fd4(gp)                |     a1 = *(gp);
    0x000164a4 lw t9, -0x790c(gp)                |     t9 = sym.imp.strcmp;
                                                 |     /* str.true */
    0x000164a8 addiu a1, a1, 0x54d0              |     a1 += 0x54d0;
    0x000164ac move a0, v0                       |     a0 = v0;
    0x000164b0 jalr t9                           |     t9 ();
    0x000164b4 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x000164b8 sltiu v0, v0, 1                   |     v0 = (v0 < 1) ? 1 : 0;
                                                 | label_12:
    0x000164bc lw v1, 8(s0)                      |     v1 = *((s0 + 2));
    0x000164c0 lw s7, -0x7fdc(gp)                |     s7 = *((gp - 8183));
    0x000164c4 sll v1, v1, 2                     |     v1 <<= 2;
    0x000164c8 addiu s7, s7, -0x23c8             |     s7 += -0x23c8;
    0x000164cc sw v0, 0x1028(s0)                 |     *((s0 + 1034)) = v0;
    0x000164d0 lwx v1, v1(s7)                    |     __asm ("lwx v1, v1(s7)");
    0x000164d4 lw v0, 0x1024(s0)                 |     v0 = *((s0 + 1033));
                                                 |     if (v1 != 0) {
    0x000164d8 bnez v1, 0x166dc                  |         goto label_30;
                                                 |     }
    0x000164dc lw fp, 8(s0)                      |     fp = *((s0 + 2));
                                                 |     if (v0 == 0) {
    0x000164e0 bnel v0, zero, 0x16748            |         goto label_31;
                                                 |     }
                                                 |     do {
                                                 | label_8:
    0x000164e4 lw t9, -0x7df0(gp)                |         t9 = sym.overlay_backend_add;
    0x000164e8 move a1, s1                       |         a1 = s1;
    0x000164ec move a0, s0                       |         a0 = s0;
    0x000164f0 bal 0x1c940                       |         sym_overlay_backend_add ();
    0x000164f4 move s2, v0                       |         s2 = v0;
    0x000164f8 lw gp, 0x20(sp)                   |         gp = *(var_20h);
                                                 |         if (v0 < 0) {
    0x000164fc bltz v0, 0x16a78                  |             goto label_32;
                                                 |         }
    0x00016500 lw v0, 0x1020(s0)                 |         v0 = *((s0 + 1032));
    0x00016504 lw v1, 4(s0)                      |         v1 = *((s0 + 1));
                                                 |         if (v0 == 0) {
    0x00016508 bnel v0, zero, 0x16808            |             goto label_33;
                                                 |         }
    0x0001650c lw v0, 0x1c(s0)                   |         v0 = *((s0 + 7));
                                                 | label_2:
    0x00016510 lw v0, 0xc(v0)                    |         v0 = *((v0 + 3));
    0x00016514 sw v0, 0x34(sp)                   |         *(var_34h_2) = v0;
                                                 | label_3:
    0x00016518 lw a0, -0x7fd4(gp)                |         a0 = *(gp);
    0x0001651c lw t9, -0x7530(gp)                |         t9 = sym.imp.g_strdup;
                                                 |         /* esilref: 'Size' */
    0x00016520 addiu a0, a0, 0x6240              |         a0 += 0x6240;
    0x00016524 jalr t9                           |         t9 ();
    0x00016528 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x0001652c lw v1, 0x1c(s0)                   |         v1 = *((s0 + 7));
    0x00016530 lw a1, 0x34(sp)                   |         a1 = *(var_34h_2);
    0x00016534 lw a0, -0x7fd4(gp)                |         a0 = *(gp);
    0x00016538 lw a2, 0x10(v1)                   |         a2 = *((v1 + 4));
    0x0001653c lw t9, -0x764c(gp)                |         t9 = sym.imp.g_strdup_printf;
                                                 |         /* str._dx_d */
    0x00016540 addiu a0, a0, 0x62b4              |         a0 += 0x62b4;
    0x00016544 move s2, v0                       |         s2 = v0;
    0x00016548 jalr t9                           |         t9 ();
    0x0001654c lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x00016550 move a2, v0                       |         a2 = v0;
    0x00016554 move a1, s2                       |         a1 = s2;
    0x00016558 lw t9, -0x756c(gp)                |         t9 = sym.imp.g_hash_table_insert;
    0x0001655c move a0, s1                       |         a0 = s1;
    0x00016560 jalr t9                           |         t9 ();
    0x00016564 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x00016568 lw t9, -0x7dec(gp)                |         t9 = sym.overlay_dbus_create_overlay_object;
    0x0001656c lw a0, 0x10(s0)                   |         a0 = *((s0 + 4));
    0x00016570 bal 0x1e6b8                       |         sym_overlay_dbus_create_overlay_object ();
    0x00016574 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x00016578 sw v0, 0x18(s0)                   |         *((s0 + 6)) = v0;
                                                 |         if (v0 == 0) {
    0x0001657c beqz v0, 0x16a10                  |             goto label_34;
                                                 |         }
    0x00016580 lw t9, -0x7de0(gp)                |         t9 = sym.overlay_dbus_set_overlay_id;
    0x00016584 lw a1, 0x10(s0)                   |         a1 = *((s0 + 4));
    0x00016588 move a0, v0                       |         a0 = v0;
    0x0001658c bal 0x1f164                       |         sym_overlay_dbus_set_overlay_id ();
    0x00016590 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x00016594 addiu s2, s0, 0x20                |         s2 = s0 + 0x20;
    0x00016598 lw a0, 0x18(s0)                   |         a0 = *((s0 + 6));
    0x0001659c lw t9, -0x7ddc(gp)                |         t9 = sym.overlay_dbus_set_owner;
    0x000165a0 move a1, s2                       |         a1 = s2;
    0x000165a4 bal 0x1f1bc                       |         sym_overlay_dbus_set_owner ();
    0x000165a8 lw v0, 8(s0)                      |         v0 = *((s0 + 2));
    0x000165ac lw gp, 0x20(sp)                   |         gp = *(var_20h);
                                                 |         if (v0 == 0) {
    0x000165b0 beqz v0, 0x16830                  |             goto label_35;
                                                 |         }
    0x000165b4 sw v0, 0x14(sp)                   |         *(var_14h) = v0;
    0x000165b8 lw v0, -0x7fd4(gp)                |         v0 = *(gp);
    0x000165bc lw t9, -0x78a8(gp)                |         t9 = sym.imp.__snprintf_chk;
    0x000165c0 addiu s6, sp, 0x3c                |         s6 = sp + 0x3c;
                                                 |         /* esilref: '&d' */
    0x000165c4 addiu v0, v0, 0x62f8              |         v0 += 0x62f8;
    0x000165c8 addiu a3, zero, 8                 |         a3 = 8;
    0x000165cc addiu a2, zero, 1                 |         a2 = 1;
    0x000165d0 addiu a1, zero, 8                 |         a1 = 8;
    0x000165d4 move a0, s6                       |         a0 = s6;
    0x000165d8 sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x000165dc jalr t9                           |         t9 ();
    0x000165e0 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x000165e4 lw a0, 0x18(s0)                   |         a0 = *((s0 + 6));
    0x000165e8 lw t9, -0x7de8(gp)                |         t9 = sym.overlay_dbus_set_camera;
    0x000165ec move a1, s6                       |         a1 = s6;
    0x000165f0 bal 0x1f214                       |         sym_overlay_dbus_set_camera ();
    0x000165f4 lw gp, 0x20(sp)                   |         gp = *(var_20h);
                                                 | label_4:
    0x000165f8 lw t9, -0x7f58(gp)                |         t9 = *(gp);
    0x000165fc lw a0, 4(s0)                      |         a0 = *((s0 + 1));
                                                 |         /* fcn.00013d30 */
    0x00016600 addiu t9, t9, 0x3d30              |         t9 += 0x3d30;
    0x00016604 addiu a1, s0, 0x18                |         a1 = s0 + 0x18;
    0x00016608 bal 0x13d30                       |         fcn_00013d30 ();
    0x0001660c lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x00016610 lw a1, 0xc(s0)                    |         a1 = *((s0 + 3));
    0x00016614 lw t9, -0x7de4(gp)                |         t9 = sym.overlay_dbus_set_stream;
    0x00016618 lw a0, 0x18(s0)                   |         a0 = *((s0 + 6));
    0x0001661c bal 0x1f2c4                       |         sym_overlay_dbus_set_stream ();
    0x00016620 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x00016624 addiu a3, zero, 1                 |         a3 = 1;
    0x00016628 move a2, s4                       |         a2 = s4;
    0x0001662c lw t9, -0x7f58(gp)                |         t9 = *(gp);
    0x00016630 move a1, s0                       |         a1 = s0;
                                                 |         /* fcn.00012f10 */
    0x00016634 addiu t9, t9, 0x2f10              |         t9 += 0x2f10;
    0x00016638 move a0, s1                       |         a0 = s1;
    0x0001663c bal 0x12f10                       |         fcn_00012f10 ();
    0x00016640 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x00016644 move a1, s0                       |         a1 = s0;
    0x00016648 lw t9, -0x7f58(gp)                |         t9 = *(gp);
                                                 |         /* fcn.000142d8 */
    0x0001664c addiu t9, t9, 0x42d8              |         t9 += 0x42d8;
    0x00016650 move a0, s1                       |         a0 = s1;
    0x00016654 bal 0x142d8                       |         fcn_000142d8 ();
    0x00016658 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x0001665c lw t9, -0x7dd4(gp)                |         t9 = sym.overlay_dbus_add_overlay_info;
    0x00016660 move a0, s0                       |         a0 = s0;
    0x00016664 bal 0x1ea10                       |         sym_overlay_dbus_add_overlay_info ();
    0x00016668 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x0001666c lw t9, -0x7dd8(gp)                |         t9 = sym.overlay_dbus_export_overlay_object;
    0x00016670 lw a0, 0x18(s0)                   |         a0 = *((s0 + 6));
    0x00016674 bal 0x1e8c0                       |         sym_overlay_dbus_export_overlay_object ();
    0x00016678 lw gp, 0x20(sp)                   |         gp = *(var_20h);
                                                 |         if (s3 != 0) {
    0x0001667c beqz s3, 0x1669c                  |             
    0x00016680 lw s1, -0x7fdc(gp)                |             s1 = *((gp - 8183));
    0x00016684 lw t9, -0x77dc(gp)                |             t9 = sym.imp.g_hash_table_contains;
    0x00016688 move a1, s2                       |             a1 = s2;
    0x0001668c lw a0, -0x23cc(s1)                |             a0 = *((s1 - 2291));
    0x00016690 jalr t9                           |             t9 ();
    0x00016694 lw gp, 0x20(sp)                   |             gp = *(var_20h);
                                                 |             if (v0 == 0) {
    0x00016698 beqz v0, 0x16940                  |                 goto label_36;
                                                 |             }
                                                 |         }
                                                 | label_13:
    0x0001669c lw v0, 0x18(s0)                   |         v0 = *((s0 + 6));
                                                 | label_15:
    0x000166a0 lw a0, 0x44(sp)                   |         a0 = *(var_44h);
    0x000166a4 lw v1, (s5)                       |         v1 = *(s5);
    0x000166a8 lw ra, 0x6c(sp)                   |         ra = *(var_6ch);
                                                 |         if (a0 != v1) {
    0x000166ac bne a0, v1, 0x16be0               |             goto label_37;
                                                 |         }
    0x000166b0 lw fp, 0x68(sp)                   |         fp = *(var_68h);
    0x000166b4 lw s7, 0x64(sp)                   |         s7 = *(var_64h);
    0x000166b8 lw s6, 0x60(sp)                   |         s6 = *(var_60h);
    0x000166bc lw s5, 0x5c(sp)                   |         s5 = *(var_5ch);
    0x000166c0 lw s4, 0x58(sp)                   |         s4 = *(var_58h);
    0x000166c4 lw s3, 0x54(sp)                   |         s3 = *(var_54h);
    0x000166c8 lw s2, 0x50(sp)                   |         s2 = *(var_50h);
    0x000166cc lw s1, 0x4c(sp)                   |         s1 = *(var_4ch);
    0x000166d0 lw s0, 0x48(sp)                   |         s0 = *(var_48h);
    0x000166d4 addiu sp, sp, 0x70                |         
    0x000166d8 jr ra                             |         return v0;
                                                 | label_30:
    0x000166dc lw a2, -0x7fd4(gp)                |         a2 = *(gp);
                                                 |         if (v0 != 0) {
    0x000166e0 bnez v0, 0x16b54                  |             goto label_38;
                                                 |         }
    0x000166e4 lw t9, -0x7774(gp)                |         t9 = sym.imp.__syslog_chk;
                                                 |         /* str.Prioritized_mode__overlay_added_but_not_shown */
    0x000166e8 addiu a2, a2, 0x6908              |         a2 += 0x6908;
    0x000166ec addiu a1, zero, 1                 |         a1 = 1;
    0x000166f0 addiu a0, zero, 5                 |         a0 = 5;
    0x000166f4 jalr t9                           |         t9 ();
    0x000166f8 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x000166fc lw t9, -0x7530(gp)                |         t9 = sym.imp.g_strdup;
                                                 |         /* str.Visible */
    0x00016700 addiu a0, s2, 0x54c8              |         a0 = s2 + 0x54c8;
    0x00016704 jalr t9                           |         t9 ();
    0x00016708 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x0001670c move s2, v0                       |         s2 = v0;
    0x00016710 lw a0, -0x7fd4(gp)                |         a0 = *(gp);
    0x00016714 lw t9, -0x7530(gp)                |         t9 = sym.imp.g_strdup;
                                                 |         /* str.false */
    0x00016718 addiu a0, a0, 0x54d8              |         a0 += 0x54d8;
    0x0001671c jalr t9                           |         t9 ();
    0x00016720 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x00016724 move a2, v0                       |         a2 = v0;
    0x00016728 move a1, s2                       |         a1 = s2;
    0x0001672c lw t9, -0x756c(gp)                |         t9 = sym.imp.g_hash_table_insert;
    0x00016730 move a0, s1                       |         a0 = s1;
    0x00016734 jalr t9                           |         t9 ();
    0x00016738 lw v0, 0x1024(s0)                 |         v0 = *((s0 + 1033));
    0x0001673c lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x00016740 beqz v0, 0x164e4                  |         
                                                 |     } while (v0 == 0);
    0x00016744 lw fp, 8(s0)                      |     fp = *((s0 + 2));
                                                 | label_31:
    0x00016748 lw t9, -0x7e10(gp)                |     t9 = sym.overlay_dbus_get_overlay_info_keys;
    0x0001674c sll v0, fp, 2                     |     v0 = fp << 2;
    0x00016750 addu s7, s7, v0                   |     s7 += v0;
    0x00016754 addiu v0, zero, 1                 |     v0 = 1;
    0x00016758 sw v0, (s7)                       |     *(s7) = v0;
    0x0001675c bal 0x1ec6c                       |     sym_overlay_dbus_get_overlay_info_keys ();
    0x00016760 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016764 move a0, v0                       |     a0 = v0;
    0x00016768 lw t9, -0x7880(gp)                |     t9 = sym.imp.g_list_first;
    0x0001676c move s7, v0                       |     s7 = v0;
    0x00016770 jalr t9                           |     t9 ();
    0x00016774 move s2, v0                       |     s2 = v0;
    0x00016778 lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (v0 != 0) {
    0x0001677c bnez v0, 0x16794                  |         goto label_39;
                                                 |     }
    0x00016780 lw t9, -0x7570(gp)                |     t9 = sym.imp.g_list_free;
    0x00016784 b 0x168fc                         |     goto label_40;
                                                 |     do {
                                                 | label_1:
    0x00016788 lw s2, 4(s2)                      |         s2 = *((s2 + 1));
                                                 | label_0:
    0x0001678c lw t9, -0x7570(gp)                |         t9 = sym.imp.g_list_free;
                                                 |         if (s2 == 0) {
    0x00016790 beqz s2, 0x168fc                  |             goto label_40;
                                                 |         }
                                                 | label_39:
    0x00016794 lw t9, -0x7e20(gp)                |         t9 = sym.overlay_dbus_lookup_overlay_info;
    0x00016798 lw a0, (s2)                       |         a0 = *(s2);
    0x0001679c bal 0x1eb80                       |         sym_overlay_dbus_lookup_overlay_info ();
    0x000167a0 move v1, v0                       |         v1 = v0;
    0x000167a4 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x000167a8 beqz v0, 0x16788                  |         
                                                 |     } while (v0 == 0);
    0x000167ac lw v0, 8(v0)                      |     v0 = *((v0 + 2));
    0x000167b0 lw s2, 4(s2)                      |     s2 = *((s2 + 1));
                                                 |     if (fp == v0) {
    0x000167b4 bnel fp, v0, 0x1678c              |         goto label_0;
                                                 |     }
    0x000167b8 lw v0, 0x102c(v1)                 |     v0 = *(v1);
                                                 |     if (v0 == 0) {
    0x000167bc beql v0, zero, 0x1678c            |         goto label_0;
                                                 |     }
    0x000167c0 lw s2, 4(s2)                      |     s2 = *((s2 + 1));
    0x000167c4 lw v0, 0x1030(v1)                 |     v0 = *((v1 + 1036));
    0x000167c8 lw s2, 4(s2)                      |     s2 = *((s2 + 1));
                                                 |     if (v0 == 0) {
    0x000167cc bnel v0, zero, 0x1678c            |         goto label_0;
                                                 |     }
    0x000167d0 lw t9, -0x7e0c(gp)                |     t9 = sym.overlay_backend_set_visibility;
    0x000167d4 move a0, v1                       |     a0 = v1;
    0x000167d8 sw v1, 0x2c(sp)                   |     *(var_2ch_2) = v1;
    0x000167dc move a1, zero                     |     a1 = 0;
    0x000167e0 bal 0x1d1ac                       |     sym_overlay_backend_set_visibility ();
    0x000167e4 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x000167e8 lw v1, 0x2c(sp)                   |     v1 = *(var_2ch_2);
                                                 |     if (v0 != 0) {
    0x000167ec bnez v0, 0x16788                  |         goto label_1;
                                                 |     }
    0x000167f0 lw t9, -0x7e5c(gp)                |     t9 = sym.overlay_dbus_set_visible;
    0x000167f4 lw a0, 0x18(v1)                   |     a0 = *((v1 + 6));
    0x000167f8 move a1, zero                     |     a1 = 0;
    0x000167fc bal 0x1efac                       |     sym_overlay_dbus_set_visible ();
    0x00016800 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016804 b 0x16788                         |     goto label_1;
                                                 | label_33:
    0x00016808 addiu v0, zero, 2                 |     v0 = 2;
    0x0001680c lw v0, 0x1c(s0)                   |     v0 = *((s0 + 7));
                                                 |     if (v1 == v0) {
    0x00016810 bnel v1, v0, 0x16510              |         goto label_2;
                                                 |     }
    0x00016814 lw t9, -0x7e04(gp)                |     t9 = sym.stream_get_resolution;
    0x00016818 lw a0, 0xc(s0)                    |     a0 = *((s0 + 3));
    0x0001681c addiu a2, sp, 0x38                |     a2 = sp + 0x38;
    0x00016820 addiu a1, sp, 0x34                |     a1 = sp + 0x34;
    0x00016824 jalr t9                           |     t9 ();
    0x00016828 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x0001682c b 0x16518                         |     goto label_3;
                                                 | label_35:
    0x00016830 lw a1, -0x7fd4(gp)                |     a1 = *(gp);
    0x00016834 lw t9, -0x7de8(gp)                |     t9 = sym.overlay_dbus_set_camera;
    0x00016838 lw a0, 0x18(s0)                   |     a0 = *((s0 + 6));
                                                 |     /* str.quad */
    0x0001683c addiu a1, a1, 0x6350              |     a1 += 0x6350;
    0x00016840 bal 0x1f214                       |     sym_overlay_dbus_set_camera ();
    0x00016844 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016848 b 0x165f8                         |     goto label_4;
                                                 | label_23:
    0x0001684c lw t9, -0x7604(gp)                |     t9 = sym.imp.strtol;
    0x00016850 addiu a2, zero, 0xa               |     a2 = 0xa;
    0x00016854 move a1, zero                     |     a1 = 0;
    0x00016858 move a0, s7                       |     a0 = s7;
    0x0001685c jalr t9                           |     t9 ();
    0x00016860 move s0, v0                       |     s0 = v0;
    0x00016864 addiu v0, v0, -1                  |     v0 += -1;
    0x00016868 sltiu v0, v0, 0x10                |     v0 = (v0 < 0x10) ? 1 : 0;
    0x0001686c lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (v0 != 0) {
    0x00016870 bnez v0, 0x1637c                  |         goto label_5;
                                                 |     }
    0x00016874 lw s0, -0x7fd4(gp)                |     s0 = *(gp);
    0x00016878 lw t9, -0x7774(gp)                |     t9 = sym.imp.__syslog_chk;
    0x0001687c move a3, s7                       |     a3 = s7;
                                                 |     /* str.Invalid_Camera___s */
    0x00016880 addiu a2, s0, 0x6838              |     a2 = s0 + 0x6838;
    0x00016884 addiu a1, zero, 1                 |     a1 = 1;
    0x00016888 addiu a0, zero, 3                 |     a0 = 3;
    0x0001688c jalr t9                           |     t9 ();
    0x00016890 lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (s3 == 0) {
    0x00016894 beqz s3, 0x16a70                  |         goto label_18;
                                                 |     }
    0x00016898 lw t9, -0x7930(gp)                |     t9 = sym.imp.g_dbus_method_invocation_return_error;
    0x0001689c sw s7, 0x10(sp)                   |     *(var_10h) = s7;
                                                 |     /* str.Invalid_Camera___s */
    0x000168a0 addiu a3, s0, 0x6838              |     a3 = s0 + 0x6838;
    0x000168a4 addiu a2, zero, 2                 |     a2 = 2;
    0x000168a8 b 0x16ae4                         |     goto label_41;
                                                 | label_24:
    0x000168ac addiu s7, zero, -1                |     s7 = -1;
    0x000168b0 b 0x163b4                         |     goto label_6;
                                                 | label_21:
    0x000168b4 lw t9, -0x7f58(gp)                |     t9 = *(gp);
                                                 |     /* fcn.00013570 */
    0x000168b8 addiu t9, t9, 0x3570              |     t9 += 0x3570;
    0x000168bc move a0, s1                       |     a0 = s1;
    0x000168c0 bal 0x13570                       |     fcn_00013570 ();
    0x000168c4 lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (v0 != 0) {
    0x000168c8 bnez v0, 0x1633c                  |         goto label_7;
                                                 |     }
    0x000168cc lw s0, -0x7fd4(gp)                |     s0 = *(gp);
    0x000168d0 lw t9, -0x7774(gp)                |     t9 = sym.imp.__syslog_chk;
                                                 |     /* str.Unsupported_property */
    0x000168d4 addiu a2, s0, 0x65f0              |     a2 = s0 + 0x65f0;
    0x000168d8 addiu a1, zero, 1                 |     a1 = 1;
    0x000168dc addiu a0, zero, 3                 |     a0 = 3;
    0x000168e0 jalr t9                           |     t9 ();
    0x000168e4 lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (s3 == 0) {
    0x000168e8 beqz s3, 0x16a70                  |         goto label_18;
                                                 |     }
    0x000168ec lw t9, -0x7930(gp)                |     t9 = sym.imp.g_dbus_method_invocation_return_error;
                                                 |     /* str.Unsupported_property */
    0x000168f0 addiu a3, s0, 0x65f0              |     a3 = s0 + 0x65f0;
    0x000168f4 addiu a2, zero, 3                 |     a2 = 3;
    0x000168f8 b 0x16a60                         |     goto label_19;
                                                 | label_40:
    0x000168fc move a0, s7                       |     a0 = s7;
    0x00016900 jalr t9                           |     t9 ();
    0x00016904 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016908 b 0x164e4                         |     goto label_8;
                                                 | label_26:
    0x0001690c lw a0, -0x7fd4(gp)                |     a0 = *(gp);
    0x00016910 lw t9, -0x7530(gp)                |     t9 = sym.imp.g_strdup;
                                                 |     /* str._bin_parhand */
    0x00016914 addiu a0, a0, 0x590c              |     a0 += 0x590c;
    0x00016918 jalr t9                           |     t9 ();
    0x0001691c move s7, v0                       |     s7 = v0;
    0x00016920 lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (v0 == 0) {
    0x00016924 beqz v0, 0x16420                  |         goto label_9;
                                                 |     }
    0x00016928 lw t9, -0x775c(gp)                |     t9 = sym.imp.__strcpy_chk
    0x0001692c b 0x1640c                         |     goto label_10;
                                                 | label_28:
    0x00016930 move v0, zero                     |     v0 = 0;
    0x00016934 b 0x16480                         |     goto label_11;
                                                 | label_29:
    0x00016938 move v0, zero                     |     v0 = 0;
    0x0001693c b 0x164bc                         |     goto label_12;
                                                 | label_36:
    0x00016940 lw t9, -0x75b0(gp)                |     t9 = sym.imp.g_malloc;
    0x00016944 addiu a0, zero, 8                 |     a0 = 8;
    0x00016948 jalr t9                           |     t9 ();
    0x0001694c lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016950 move a0, s2                       |     a0 = s2;
    0x00016954 lw t9, -0x7530(gp)                |     t9 = sym.imp.g_strdup;
    0x00016958 move s4, v0                       |     s4 = v0;
    0x0001695c jalr t9                           |     t9 ();
    0x00016960 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016964 move a0, s3                       |     a0 = s3;
    0x00016968 lw t9, -0x74a0(gp)                |     t9 = sym.imp.g_dbus_method_invocation_get_connection;
    0x0001696c sw v0, (s4)                       |     *(s4) = v0;
    0x00016970 jalr t9                           |     t9 ();
    0x00016974 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016978 move a0, s3                       |     a0 = s3;
    0x0001697c lw t9, -0x7730(gp)                |     t9 = sym.imp.g_dbus_method_invocation_get_sender;
    0x00016980 move s3, v0                       |     s3 = v0;
    0x00016984 jalr t9                           |     t9 ();
    0x00016988 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x0001698c move a1, v0                       |     a1 = v0;
    0x00016990 move a3, zero                     |     a3 = 0;
    0x00016994 lw v0, -0x7f58(gp)                |     v0 = *(gp);
    0x00016998 lw t9, -0x781c(gp)                |     t9 = sym.imp.g_bus_watch_name_on_connection;
    0x0001699c addiu v0, v0, 0x40f8              |     v0 += 0x40f8;
    0x000169a0 move a2, zero                     |     a2 = 0;
    0x000169a4 move a0, s3                       |     a0 = s3;
    0x000169a8 sw zero, 0x18(sp)                 |     *(var_18h_2) = 0;
    0x000169ac sw s4, 0x14(sp)                   |     *(var_14h) = s4;
    0x000169b0 sw v0, 0x10(sp)                   |     *(var_10h) = v0;
    0x000169b4 jalr t9                           |     t9 ();
    0x000169b8 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x000169bc move a0, s2                       |     a0 = s2;
    0x000169c0 sw v0, 4(s4)                      |     *((s4 + 1)) = v0;
    0x000169c4 lw t9, -0x7530(gp)                |     t9 = sym.imp.g_strdup;
    0x000169c8 lw s1, -0x23cc(s1)                |     s1 = *((s1 - 2291));
    0x000169cc jalr t9                           |     t9 ();
    0x000169d0 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x000169d4 move a1, v0                       |     a1 = v0;
    0x000169d8 lw t9, -0x74bc(gp)                |     t9 = sym.imp.g_hash_table_add;
    0x000169dc move a0, s1                       |     a0 = s1;
    0x000169e0 jalr t9                           |     t9 ();
    0x000169e4 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x000169e8 b 0x1669c                         |     goto label_13;
                                                 | label_22:
    0x000169ec lw s7, -0x7fd4(gp)                |     s7 = *(gp);
    0x000169f0 lw t9, -0x77dc(gp)                |     t9 = sym.imp.g_hash_table_contains;
                                                 |     /* esilref: 'Stream' */
    0x000169f4 addiu a1, s7, 0x5f10              |     a1 = s7 + 0x5f10;
    0x000169f8 move a0, s1                       |     a0 = s1;
    0x000169fc jalr t9                           |     t9 ();
    0x00016a00 lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     if (v0 == 0) {
    0x00016a04 beqz v0, 0x16afc                  |         goto label_42;
                                                 |     }
    0x00016a08 addiu s0, zero, 1                 |     s0 = 1;
    0x00016a0c b 0x16380                         |     goto label_14;
                                                 | label_34:
    0x00016a10 lw a2, -0x7fd4(gp)                |     a2 = *(gp);
    0x00016a14 lw t9, -0x7774(gp)                |     t9 = sym.imp.__syslog_chk;
                                                 |     /* str.Failed_to_allocate_dbus_overlay_object */
    0x00016a18 addiu a2, a2, 0x6960              |     a2 += 0x6960;
    0x00016a1c addiu a1, zero, 1                 |     a1 = 1;
    0x00016a20 addiu a0, zero, 3                 |     a0 = 3;
    0x00016a24 jalr t9                           |     t9 ();
    0x00016a28 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016a2c lw t9, -0x7e1c(gp)                |     t9 = sym.overlay_backend_remove;
    0x00016a30 move a0, s0                       |     a0 = s0;
    0x00016a34 bal 0x1c818                       |     sym_overlay_backend_remove ();
    0x00016a38 lw v0, (s0)                       |     v0 = *(s0);
    0x00016a3c lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016a40 addiu v0, v0, -1                  |     v0 += -1;
    0x00016a44 sw v0, (s0)                       |     *(s0) = v0;
                                                 |     if (v0 <= 0) {
    0x00016a48 blez v0, 0x16b24                  |         goto label_43;
                                                 |     }
                                                 | label_16:
    0x00016a4c lw a3, -0x7fd4(gp)                |     a3 = *(gp);
                                                 |     if (s3 == 0) {
    0x00016a50 beqz s3, 0x16a70                  |         goto label_18;
                                                 |     }
    0x00016a54 lw t9, -0x7930(gp)                |     t9 = sym.imp.g_dbus_method_invocation_return_error;
                                                 |     /* str.Failed_to_allocate_memory */
    0x00016a58 addiu a3, a3, 0x68a8              |     a3 += 0x68a8;
    0x00016a5c addiu a2, zero, 1                 |     a2 = 1;
                                                 | label_19:
    0x00016a60 move a1, s6                       |     a1 = s6;
    0x00016a64 move a0, s3                       |     a0 = s3;
    0x00016a68 jalr t9                           |     t9 ();
    0x00016a6c lw gp, 0x20(sp)                   |     gp = *(var_20h);
                                                 |     do {
                                                 | label_18:
    0x00016a70 move v0, zero                     |         v0 = 0;
    0x00016a74 b 0x166a0                         |         goto label_15;
                                                 | label_32:
    0x00016a78 lw a2, -0x7fd4(gp)                |         a2 = *(gp);
    0x00016a7c lw t9, -0x7774(gp)                |         t9 = sym.imp.__syslog_chk;
    0x00016a80 move a3, v0                       |         a3 = v0;
                                                 |         /* str.Failed_to_add_overlay__error_code:__d */
    0x00016a84 addiu a2, a2, 0x6938              |         a2 += 0x6938;
    0x00016a88 addiu a1, zero, 1                 |         a1 = 1;
    0x00016a8c addiu a0, zero, 6                 |         a0 = 6;
    0x00016a90 jalr t9                           |         t9 ();
    0x00016a94 lw v0, (s0)                       |         v0 = *(s0);
    0x00016a98 lw gp, 0x20(sp)                   |         gp = *(var_20h);
    0x00016a9c addiu v0, v0, -1                  |         v0 += -1;
    0x00016aa0 sw v0, (s0)                       |         *(s0) = v0;
                                                 |         if (v0 <= 0) {
    0x00016aa4 blez v0, 0x16b3c                  |             goto label_44;
                                                 |         }
                                                 | label_17:
    0x00016aa8 lw t9, -0x7ee4(gp)                |         t9 = sym.error_overlayd2dbus;
    0x00016aac beqz s3, 0x16a70                  |         
                                                 |     } while (s3 == 0);
    0x00016ab0 move a0, s2                       |     a0 = s2;
    0x00016ab4 bal 0xce90                        |     sym_error_overlayd2dbus ();
    0x00016ab8 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016abc move a0, s2                       |     a0 = s2;
    0x00016ac0 lw t9, -0x7ee0(gp)                |     t9 = sym.error_overlayd_message;
    0x00016ac4 move s0, v0                       |     s0 = v0;
    0x00016ac8 bal 0xcef8                        |     sym_error_overlayd_message ();
    0x00016acc lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016ad0 sw v0, 0x10(sp)                   |     *(var_10h) = v0;
    0x00016ad4 move a2, s0                       |     a2 = s0;
    0x00016ad8 lw a3, -0x7fd4(gp)                |     a3 = *(gp);
    0x00016adc lw t9, -0x7930(gp)                |     t9 = sym.imp.g_dbus_method_invocation_return_error;
                                                 |     /* esilref: '&s' */
    0x00016ae0 addiu a3, a3, 0x6848              |     a3 += 0x6848;
                                                 | label_41:
    0x00016ae4 move a1, s6                       |     a1 = s6;
    0x00016ae8 move a0, s3                       |     a0 = s3;
    0x00016aec jalr t9                           |     t9 ();
    0x00016af0 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016af4 move v0, zero                     |     v0 = 0;
    0x00016af8 b 0x166a0                         |     goto label_15;
                                                 | label_42:
    0x00016afc lw a2, -0x7fd4(gp)                |     a2 = *(gp);
    0x00016b00 lw t9, -0x7774(gp)                |     t9 = sym.imp.__syslog_chk;
    0x00016b04 addiu a3, zero, 1                 |     a3 = 1;
                                                 |     /* str.No_CameraID_specified__using_default_CameraID:__d */
    0x00016b08 addiu a2, a2, 0x684c              |     a2 += 0x684c;
    0x00016b0c addiu a1, zero, 1                 |     a1 = 1;
    0x00016b10 addiu a0, zero, 6                 |     a0 = 6;
    0x00016b14 jalr t9                           |     t9 ();
    0x00016b18 addiu s0, zero, 1                 |     s0 = 1;
    0x00016b1c lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016b20 b 0x16380                         |     goto label_14;
                                                 | label_43:
    0x00016b24 lw t9, -0x7f58(gp)                |     t9 = *(gp);
                                                 |     /* fcn.00014ae0 */
    0x00016b28 addiu t9, t9, 0x4ae0              |     t9 += 0x4ae0;
    0x00016b2c move a0, s0                       |     a0 = s0;
    0x00016b30 bal 0x14ae0                       |     fcn_00014ae0 ();
    0x00016b34 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016b38 b 0x16a4c                         |     goto label_16;
                                                 | label_44:
    0x00016b3c lw t9, -0x7f58(gp)                |     t9 = *(gp);
                                                 |     /* fcn.00014ae0 */
    0x00016b40 addiu t9, t9, 0x4ae0              |     t9 += 0x4ae0;
    0x00016b44 move a0, s0                       |     a0 = s0;
    0x00016b48 bal 0x14ae0                       |     fcn_00014ae0 ();
    0x00016b4c lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016b50 b 0x16aa8                         |     goto label_17;
                                                 | label_38:
    0x00016b54 lw s1, -0x7fd4(gp)                |     s1 = *(gp);
    0x00016b58 lw t9, -0x7774(gp)                |     t9 = sym.imp.__syslog_chk;
                                                 |     /* str.Only_one_prioritized_overlay_is_allowed_at_a_time */
    0x00016b5c addiu a2, s1, 0x68d4              |     a2 = s1 + 0x68d4;
    0x00016b60 addiu a1, zero, 1                 |     a1 = 1;
    0x00016b64 addiu a0, zero, 3                 |     a0 = 3;
    0x00016b68 jalr t9                           |     t9 ();
    0x00016b6c lw v0, (s0)                       |     v0 = *(s0);
    0x00016b70 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016b74 addiu v0, v0, -1                  |     v0 += -1;
    0x00016b78 sw v0, (s0)                       |     *(s0) = v0;
                                                 |     if (v0 <= 0) {
    0x00016b7c blez v0, 0x16bc8                  |         goto label_45;
                                                 |     }
                                                 | label_20:
    0x00016b80 lw t9, -0x7930(gp)                |     t9 = sym.imp.g_dbus_method_invocation_return_error;
                                                 |     if (s3 == 0) {
    0x00016b84 beqz s3, 0x16a70                  |         goto label_18;
                                                 |     }
                                                 |     /* str.Only_one_prioritized_overlay_is_allowed_at_a_time */
    0x00016b88 addiu a3, s1, 0x68d4              |     a3 = s1 + 0x68d4;
    0x00016b8c addiu a2, zero, 5                 |     a2 = 5;
    0x00016b90 b 0x16a60                         |     goto label_19;
                                                 | label_25:
    0x00016b94 lw a2, -0x7fd4(gp)                |     a2 = *(gp);
    0x00016b98 lw t9, -0x7774(gp)                |     t9 = sym.imp.__syslog_chk;
                                                 |     /* str.Failed_to_allocate_overlay_info_struct */
    0x00016b9c addiu a2, a2, 0x6880              |     a2 += 0x6880;
    0x00016ba0 addiu a1, zero, 1                 |     a1 = 1;
    0x00016ba4 addiu a0, zero, 3                 |     a0 = 3;
    0x00016ba8 jalr t9                           |     t9 ();
    0x00016bac lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016bb0 b 0x16a4c                         |     goto label_16;
                                                 | label_27:
    0x00016bb4 lw a3, -0x7fd4(gp)                |     a3 = *(gp);
    0x00016bb8 lw t9, -0x7930(gp)                |     t9 = sym.imp.g_dbus_method_invocation_return_error;
                                                 |     /* str.No_owner_found */
    0x00016bbc addiu a3, a3, 0x68c4              |     a3 += 0x68c4;
    0x00016bc0 move a2, zero                     |     a2 = 0;
    0x00016bc4 b 0x16a60                         |     goto label_19;
                                                 | label_45:
    0x00016bc8 lw t9, -0x7f58(gp)                |     t9 = *(gp);
                                                 |     /* fcn.00014ae0 */
    0x00016bcc addiu t9, t9, 0x4ae0              |     t9 += 0x4ae0;
    0x00016bd0 move a0, s0                       |     a0 = s0;
    0x00016bd4 bal 0x14ae0                       |     fcn_00014ae0 ();
    0x00016bd8 lw gp, 0x20(sp)                   |     gp = *(var_20h);
    0x00016bdc b 0x16b80                         |     goto label_20;
                                                 | label_37:
    0x00016be0 lw t9, -0x77d4(gp)                |     t9 = sym.imp.__stack_chk_fail;
    0x00016be4 jalr t9                           |     t9 ();
    0x00016be8 nop                               |     
                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/overlayd @ 0x14e98 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.overlay_frontend_overlay_dbus_api_initialized ()     | void overlay_frontend_overlay_dbus_api_initialized () {
    0x00014e98 lui gp, 7                                             |     
    0x00014e9c addiu gp, gp, 0x188                                   |     
    0x00014ea0 addu gp, gp, t9                                       |     gp += t9;
    0x00014ea4 addiu sp, sp, -0x88                                   |     
    0x00014ea8 lw t9, -0x7df8(gp)                                    |     t9 = sym.overlay_dbus_num_supported_apis;
    0x00014eac sw s0, 0x60(sp)                                       |     *(var_60h) = s0;
    0x00014eb0 lw s0, -0x773c(gp)                                    |     s0 = *((gp - 7631));
    0x00014eb4 sw gp, 0x18(sp)                                       |     *(var_18h) = gp;
    0x00014eb8 sw ra, 0x84(sp)                                       |     *(var_84h) = ra;
    0x00014ebc lw v0, (s0)                                           |     v0 = *(s0);
    0x00014ec0 sw fp, 0x80(sp)                                       |     *(var_80h) = fp;
    0x00014ec4 sw s7, 0x7c(sp)                                       |     *(var_7ch) = s7;
    0x00014ec8 sw s6, 0x78(sp)                                       |     *(var_78h) = s6;
    0x00014ecc sw s5, 0x74(sp)                                       |     *(var_74h) = s5;
    0x00014ed0 sw s4, 0x70(sp)                                       |     *(var_70h) = s4;
    0x00014ed4 sw s3, 0x6c(sp)                                       |     *(var_6ch) = s3;
    0x00014ed8 sw s2, 0x68(sp)                                       |     *(var_68h) = s2;
    0x00014edc sw s1, 0x64(sp)                                       |     *(var_64h) = s1;
    0x00014ee0 sw v0, 0x5c(sp)                                       |     *(var_5ch) = v0;
    0x00014ee4 bal 0x1e67c                                           |     sym_overlay_dbus_num_supported_apis ();
    0x00014ee8 nop                                                   |     
    0x00014eec lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00014ef0 lw a0, -0x7fdc(gp)                                    |     a0 = *((gp - 8183));
    0x00014ef4 lw v1, -0x23d0(a0)                                    |     v1 = *((a0 - 2292));
    0x00014ef8 slt a1, v1, v0                                        |     a1 = (v1 < v0) ? 1 : 0;
    0x00014efc addiu v1, v1, 1                                       |     v1++;
                                                                     |     if (a1 == 0) {
    0x00014f00 beqz a1, 0x14f0c                                      |         goto label_1;
                                                                     |     }
    0x00014f04 sw v1, -0x23d0(a0)                                    |     *((a0 - 2292)) = v1;
    0x00014f08 beq v1, v0, 0x14f48                                   |     
                                                                     |     while (v0 != 0) {
                                                                     | label_1:
    0x00014f0c lw v1, 0x5c(sp)                                       |         v1 = *(var_5ch);
    0x00014f10 lw v0, (s0)                                           |         v0 = *(s0);
    0x00014f14 lw ra, 0x84(sp)                                       |         ra = *(var_84h);
                                                                     |         if (v1 != v0) {
    0x00014f18 bne v1, v0, 0x15c94                                   |             goto label_57;
                                                                     |         }
    0x00014f1c lw fp, 0x80(sp)                                       |         fp = *(var_80h);
    0x00014f20 lw s7, 0x7c(sp)                                       |         s7 = *(var_7ch);
    0x00014f24 lw s6, 0x78(sp)                                       |         s6 = *(var_78h);
    0x00014f28 lw s5, 0x74(sp)                                       |         s5 = *(var_74h);
    0x00014f2c lw s4, 0x70(sp)                                       |         s4 = *(var_70h);
    0x00014f30 lw s3, 0x6c(sp)                                       |         s3 = *(var_6ch);
    0x00014f34 lw s2, 0x68(sp)                                       |         s2 = *(var_68h);
    0x00014f38 lw s1, 0x64(sp)                                       |         s1 = *(var_64h);
    0x00014f3c lw s0, 0x60(sp)                                       |         s0 = *(var_60h);
    0x00014f40 addiu sp, sp, 0x88                                    |         
    0x00014f44 jr ra                                                 |         return v0;
    0x00014f48 lw t9, -0x7f14(gp)                                    |         t9 = sym.overlay_backend_is_external_chip;
    0x00014f4c bal 0x1d6fc                                           |         sym_overlay_backend_is_external_chip ();
    0x00014f50 nop                                                   |         
    0x00014f54 lw gp, 0x18(sp)                                       |         gp = *(var_18h);
    0x00014f58 bnez v0, 0x14f0c                                      |         
                                                                     |     }
    0x00014f5c lw v0, -0x7fdc(gp)                                    |     v0 = *((gp - 8183));
    0x00014f60 sw zero, 0x48(sp)                                     |     *(var_48h) = 0;
    0x00014f64 lw s2, -0x2380(v0)                                    |     s2 = *((v0 - 2272));
    0x00014f68 lw t9, -0x7798(gp)                                    |     t9 = sym.imp.g_key_file_get_groups;
                                                                     |     if (s2 == 0) {
    0x00014f6c beqz s2, 0x155e0                                      |         goto label_58;
                                                                     |     }
    0x00014f70 move a1, zero                                         |     a1 = 0;
    0x00014f74 move a0, s2                                           |     a0 = s2;
    0x00014f78 jalr t9                                               |     t9 ();
    0x00014f7c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00014f80 sw v0, 0x3c(sp)                                       |     *(var_3ch) = v0;
    0x00014f84 addiu s3, v0, 4                                       |     s3 = v0 + 4;
    0x00014f88 addiu v0, zero, 1                                     |     v0 = 1;
    0x00014f8c sw v0, 0x30(sp)                                       |     *(var_30h) = v0;
    0x00014f90 lw v0, -0x7fd4(gp)                                    |     v0 = *(gp);
    0x00014f94 lw fp, -0x7fd4(gp)                                    |     fp = *(gp);
    0x00014f98 sw v0, 0x20(sp)                                       |     *(var_20h) = v0;
    0x00014f9c lw v0, -0x7f58(gp)                                    |     v0 = *(gp);
    0x00014fa0 sw zero, 0x2c(sp)                                     |     *(var_2ch) = 0;
                                                                     |     /* fcn.00013614 */
    0x00014fa4 addiu v0, v0, 0x3614                                  |     v0 += 0x3614;
    0x00014fa8 sw v0, 0x38(sp)                                       |     *(var_38h) = v0;
    0x00014fac lw v0, -0x7f58(gp)                                    |     v0 = *(gp);
                                                                     |     /* fcn.00012f10 */
    0x00014fb0 addiu v0, v0, 0x2f10                                  |     v0 += 0x2f10;
    0x00014fb4 sw v0, 0x40(sp)                                       |     *(var_40h) = v0;
    0x00014fb8 lw v0, -0x7f58(gp)                                    |     v0 = *(gp);
                                                                     |     /* fcn.00013d30 */
    0x00014fbc addiu v0, v0, 0x3d30                                  |     v0 += 0x3d30;
    0x00014fc0 sw v0, 0x44(sp)                                       |     *(var_44h) = v0;
                                                                     |     do {
                                                                     | label_0:
    0x00014fc4 lw s1, -4(s3)                                         |         s1 = *((s3 - 1));
    0x00014fc8 lw t9, -0x7654(gp)                                    |         t9 = sym.imp.g_key_file_get_integer;
                                                                     |         if (s1 == 0) {
    0x00014fcc beqz s1, 0x155d0                                      |             goto label_59;
                                                                     |         }
    0x00014fd0 addiu a3, sp, 0x48                                    |         a3 = sp + 0x48;
                                                                     |         /* str.OverlayType */
    0x00014fd4 addiu a2, fp, 0x65b0                                  |         a2 = fp + 0x65b0;
    0x00014fd8 move a1, s1                                           |         a1 = s1;
    0x00014fdc move a0, s2                                           |         a0 = s2;
    0x00014fe0 jalr t9                                               |         t9 ();
    0x00014fe4 lw v1, 0x48(sp)                                       |         v1 = *(var_48h);
    0x00014fe8 lw gp, 0x18(sp)                                       |         gp = *(var_18h);
    0x00014fec move s6, v0                                           |         s6 = v0;
                                                                     |         if (v1 == 0) {
    0x00014ff0 beqz v1, 0x15030                                      |             goto label_60;
                                                                     |         }
    0x00014ff4 lw v0, 0x20(sp)                                       |         v0 = *(var_20h);
    0x00014ff8 lw t9, -0x7774(gp)                                    |         t9 = sym.imp.__syslog_chk;
    0x00014ffc move a3, s1                                           |         a3 = s1;
    0x00015000 addiu a2, v0, 0x6704                                  |         a2 = v0 + 0x6704;
    0x00015004 addiu a1, zero, 1                                     |         a1 = 1;
    0x00015008 addiu a0, zero, 4                                     |         a0 = 4;
    0x0001500c jalr t9                                               |         t9 ();
    0x00015010 lw gp, 0x18(sp)                                       |         gp = *(var_18h);
    0x00015014 lw a0, 0x48(sp)                                       |         a0 = *(var_48h);
    0x00015018 lw t9, -0x78ac(gp)                                    |         t9 = sym.imp.g_error_free;
    0x0001501c addiu s3, s3, 4                                       |         s3 += 4;
    0x00015020 jalr t9                                               |         t9 ();
    0x00015024 lw gp, 0x18(sp)                                       |         gp = *(var_18h);
    0x00015028 sw zero, 0x48(sp)                                     |         *(var_48h) = 0;
    0x0001502c b 0x14fc4                                             |         
                                                                     |     } while (1);
                                                                     | label_60:
    0x00015030 lw a3, -0x7450(gp)                                    |     a3 = *((gp - 7444));
    0x00015034 lw t9, -0x7694(gp)                                    |     t9 = sym.imp.g_hash_table_new_full;
    0x00015038 lw a1, -0x7928(gp)                                    |     a1 = *((gp - 7754));
    0x0001503c lw a0, -0x74c8(gp)                                    |     a0 = *((gp - 7474));
    0x00015040 move a2, a3                                           |     a2 = a3;
    0x00015044 jalr t9                                               |     t9 ();
    0x00015048 addiu v1, s6, -1                                      |     v1 = s6 + -1;
    0x0001504c sltiu v1, v1, 2                                       |     v1 = (v1 < 2) ? 1 : 0;
    0x00015050 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015054 move s7, v0                                           |     s7 = v0;
                                                                     |     if (v1 == 0) {
    0x00015058 beqz v1, 0x155f4                                      |         goto label_61;
                                                                     |     }
    0x0001505c addiu v0, zero, 2                                     |     v0 = 2;
    0x00015060 sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
                                                                     |     if (s6 == v0) {
    0x00015064 beq s6, v0, 0x15708                                   |         goto label_62;
                                                                     |     }
    0x00015068 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
    0x0001506c lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x00015070 addiu s5, sp, 0x4c                                    |     s5 = sp + 0x4c;
    0x00015074 move a0, s2                                           |     a0 = s2;
    0x00015078 move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.OverlayPath */
    0x0001507c addiu a2, v1, 0x5274                                  |     a2 = v1 + 0x5274;
    0x00015080 sw v1, 0x24(sp)                                       |     *(var_24h) = v1;
    0x00015084 move a1, s1                                           |     a1 = s1;
    0x00015088 jalr t9                                               |     t9 ();
    0x0001508c move s4, v0                                           |     s4 = v0;
    0x00015090 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015094 lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x00015098 beqz v0, 0x156a8                                      |         goto label_21;
                                                                     |     }
    0x0001509c lw v1, 0x24(sp)                                       |     v1 = *(var_24h);
                                                                     |     if (a0 == 0) {
    0x000150a0 beqz a0, 0x15b70                                      |         goto label_63;
                                                                     |     }
                                                                     | label_22:
    0x000150a4 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
                                                                     | label_10:
    0x000150a8 jalr t9                                               |     t9 ();
    0x000150ac nop                                                   |     
    0x000150b0 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     | label_23:
    0x000150b4 lw a2, -0x7fd4(gp)                                    |     a2 = *(gp);
                                                                     | label_9:
    0x000150b8 lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x000150bc move a0, s2                                           |     a0 = s2;
    0x000150c0 move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.Legacy */
    0x000150c4 addiu a2, a2, 0x65c4                                  |     a2 += 0x65c4;
    0x000150c8 move a1, s1                                           |     a1 = s1;
    0x000150cc sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x000150d0 jalr t9                                               |     t9 ();
    0x000150d4 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x000150d8 lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x000150dc beqz v0, 0x156f8                                      |         goto label_64;
                                                                     |     }
    0x000150e0 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
                                                                     |     if (a0 == 0) {
    0x000150e4 beqz a0, 0x15948                                      |         goto label_65;
                                                                     |     }
                                                                     | label_20:
    0x000150e8 jalr t9                                               |     t9 ();
    0x000150ec nop                                                   |     
    0x000150f0 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     | label_27:
    0x000150f4 lw s4, -0x7fd4(gp)                                    |     s4 = *(gp);
                                                                     | label_19:
    0x000150f8 lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x000150fc move a0, s2                                           |     a0 = s2;
    0x00015100 move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.Visible */
    0x00015104 addiu a2, s4, 0x54c8                                  |     a2 = s4 + 0x54c8;
    0x00015108 move a1, s1                                           |     a1 = s1;
    0x0001510c sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x00015110 jalr t9                                               |     t9 ();
    0x00015114 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015118 lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x0001511c beqz v0, 0x156e8                                      |         goto label_66;
                                                                     |     }
    0x00015120 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
                                                                     |     if (a0 == 0) {
    0x00015124 beqz a0, 0x159c4                                      |         goto label_67;
                                                                     |     }
                                                                     | label_18:
    0x00015128 jalr t9                                               |     t9 ();
    0x0001512c nop                                                   |     
    0x00015130 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     | label_39:
    0x00015134 lw v0, -0x7fd4(gp)                                    |     v0 = *(gp);
                                                                     | label_17:
    0x00015138 lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x0001513c move a0, s2                                           |     a0 = s2;
    0x00015140 sw v0, 0x34(sp)                                       |     *(var_34h) = v0;
    0x00015144 move a3, s5                                           |     a3 = s5;
                                                                     |     /* esilref: 'Position' */
    0x00015148 addiu a2, v0, 0x55fc                                  |     a2 = v0 + 0x55fc;
    0x0001514c move a1, s1                                           |     a1 = s1;
    0x00015150 sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x00015154 jalr t9                                               |     t9 ();
    0x00015158 move s4, v0                                           |     s4 = v0;
    0x0001515c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015160 lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x00015164 beqz v0, 0x156d8                                      |         goto label_68;
                                                                     |     }
    0x00015168 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
                                                                     |     if (a0 == 0) {
    0x0001516c beqz a0, 0x15af0                                      |         goto label_69;
                                                                     |     }
                                                                     | label_16:
    0x00015170 jalr t9                                               |     t9 ();
    0x00015174 nop                                                   |     
    0x00015178 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     | label_45:
    0x0001517c lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     | label_15:
    0x00015180 lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x00015184 move a0, s2                                           |     a0 = s2;
    0x00015188 move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.AnchorPoint */
    0x0001518c addiu a2, v1, 0x6428                                  |     a2 = v1 + 0x6428;
    0x00015190 sw v1, 0x24(sp)                                       |     *(var_24h) = v1;
    0x00015194 move a1, s1                                           |     a1 = s1;
    0x00015198 sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x0001519c jalr t9                                               |     t9 ();
    0x000151a0 move s4, v0                                           |     s4 = v0;
    0x000151a4 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x000151a8 lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x000151ac beqz v0, 0x156c8                                      |         goto label_70;
                                                                     |     }
    0x000151b0 lw v1, 0x24(sp)                                       |     v1 = *(var_24h);
                                                                     |     if (a0 == 0) {
    0x000151b4 beqz a0, 0x15ac4                                      |         goto label_71;
                                                                     |     }
    0x000151b8 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
                                                                     | label_14:
    0x000151bc jalr t9                                               |     t9 ();
    0x000151c0 nop                                                   |     
    0x000151c4 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     | label_44:
    0x000151c8 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     | label_13:
    0x000151cc lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x000151d0 move a0, s2                                           |     a0 = s2;
    0x000151d4 move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.Reference */
    0x000151d8 addiu a2, v1, 0x54bc                                  |     a2 = v1 + 0x54bc;
    0x000151dc sw v1, 0x24(sp)                                       |     *(var_24h) = v1;
    0x000151e0 move a1, s1                                           |     a1 = s1;
    0x000151e4 sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x000151e8 jalr t9                                               |     t9 ();
    0x000151ec move s4, v0                                           |     s4 = v0;
    0x000151f0 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x000151f4 lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x000151f8 beqz v0, 0x156b8                                      |         goto label_72;
                                                                     |     }
    0x000151fc lw v1, 0x24(sp)                                       |     v1 = *(var_24h);
                                                                     |     if (a0 == 0) {
    0x00015200 beqz a0, 0x15a98                                      |         goto label_73;
                                                                     |     }
    0x00015204 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
                                                                     | label_12:
    0x00015208 jalr t9                                               |     t9 ();
    0x0001520c nop                                                   |     
    0x00015210 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     | label_43:
    0x00015214 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     | label_11:
    0x00015218 lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x0001521c move a0, s2                                           |     a0 = s2;
    0x00015220 move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.ZIndex */
    0x00015224 addiu a2, v1, 0x6434                                  |     a2 = v1 + 0x6434;
    0x00015228 sw v1, 0x24(sp)                                       |     *(var_24h) = v1;
    0x0001522c move a1, s1                                           |     a1 = s1;
    0x00015230 sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x00015234 jalr t9                                               |     t9 ();
    0x00015238 move s4, v0                                           |     s4 = v0;
    0x0001523c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015240 lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x00015244 beqz v0, 0x15698                                      |         goto label_74;
                                                                     |     }
    0x00015248 lw v1, 0x24(sp)                                       |     v1 = *(var_24h);
                                                                     |     if (a0 == 0) {
    0x0001524c beqz a0, 0x15a14                                      |         goto label_75;
                                                                     |     }
    0x00015250 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
                                                                     | label_8:
    0x00015254 jalr t9                                               |     t9 ();
    0x00015258 nop                                                   |     
    0x0001525c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     | label_40:
    0x00015260 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     | label_7:
    0x00015264 lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x00015268 move a0, s2                                           |     a0 = s2;
    0x0001526c move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.AlwaysOn */
    0x00015270 addiu a2, v1, 0x643c                                  |     a2 = v1 + 0x643c;
    0x00015274 sw v1, 0x24(sp)                                       |     *(var_24h) = v1;
    0x00015278 move a1, s1                                           |     a1 = s1;
    0x0001527c sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x00015280 jalr t9                                               |     t9 ();
    0x00015284 move s4, v0                                           |     s4 = v0;
    0x00015288 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x0001528c lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x00015290 beqz v0, 0x15688                                      |         goto label_76;
                                                                     |     }
    0x00015294 lw v1, 0x24(sp)                                       |     v1 = *(var_24h);
                                                                     |     if (a0 == 0) {
    0x00015298 beqz a0, 0x15a6c                                      |         goto label_77;
                                                                     |     }
    0x0001529c lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
                                                                     | label_6:
    0x000152a0 jalr t9                                               |     t9 ();
    0x000152a4 nop                                                   |     
    0x000152a8 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     | label_42:
    0x000152ac lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     | label_5:
    0x000152b0 lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x000152b4 move a0, s2                                           |     a0 = s2;
    0x000152b8 move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.NbrOfBuffers */
    0x000152bc addiu a2, v1, 0x6458                                  |     a2 = v1 + 0x6458;
    0x000152c0 sw v1, 0x24(sp)                                       |     *(var_24h) = v1;
    0x000152c4 move a1, s1                                           |     a1 = s1;
    0x000152c8 sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x000152cc jalr t9                                               |     t9 ();
    0x000152d0 move s4, v0                                           |     s4 = v0;
    0x000152d4 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x000152d8 lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x000152dc beqz v0, 0x15678                                      |         goto label_78;
                                                                     |     }
    0x000152e0 lw v1, 0x24(sp)                                       |     v1 = *(var_24h);
                                                                     |     if (a0 == 0) {
    0x000152e4 beqz a0, 0x15a40                                      |         goto label_79;
                                                                     |     }
    0x000152e8 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
                                                                     | label_4:
    0x000152ec jalr t9                                               |     t9 ();
    0x000152f0 nop                                                   |     
    0x000152f4 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     | label_41:
    0x000152f8 lw a2, -0x7fd4(gp)                                    |     a2 = *(gp);
                                                                     | label_3:
    0x000152fc lw t9, -0x7654(gp)                                    |     t9 = sym.imp.g_key_file_get_integer;
    0x00015300 move a0, s2                                           |     a0 = s2;
    0x00015304 move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.CameraID */
    0x00015308 addiu a2, a2, 0x6598                                  |     a2 += 0x6598;
    0x0001530c move a1, s1                                           |     a1 = s1;
    0x00015310 sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x00015314 jalr t9                                               |     t9 ();
    0x00015318 lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
    0x0001531c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015320 sw v0, 0x24(sp)                                       |     *(var_24h) = v0;
                                                                     |     if (a0 != 0) {
    0x00015324 beqz a0, 0x1533c                                      |         
    0x00015328 lw t9, -0x78ac(gp)                                    |         t9 = sym.imp.g_error_free;
    0x0001532c addiu v0, zero, 1                                     |         v0 = 1;
    0x00015330 sw v0, 0x24(sp)                                       |         *(var_24h) = v0;
    0x00015334 jalr t9                                               |         t9 ();
    0x00015338 lw gp, 0x18(sp)                                       |         gp = *(var_18h);
                                                                     |     }
    0x0001533c lw a2, -0x7fd4(gp)                                    |     a2 = *(gp);
    0x00015340 lw t9, -0x7654(gp)                                    |     t9 = sym.imp.g_key_file_get_integer;
    0x00015344 move a0, s2                                           |     a0 = s2;
    0x00015348 move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.StreamID */
    0x0001534c addiu a2, a2, 0x65a4                                  |     a2 += 0x65a4;
    0x00015350 move a1, s1                                           |     a1 = s1;
    0x00015354 sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x00015358 jalr t9                                               |     t9 ();
    0x0001535c lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
    0x00015360 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015364 sw v0, 0x28(sp)                                       |     *(var_28h) = v0;
                                                                     |     if (a0 != 0) {
    0x00015368 beqz a0, 0x1537c                                      |         
    0x0001536c lw t9, -0x78ac(gp)                                    |         t9 = sym.imp.g_error_free;
    0x00015370 addiu v0, zero, -1                                    |         v0 = -1;
    0x00015374 sw v0, 0x28(sp)                                       |         *(var_28h) = v0;
    0x00015378 jalr t9                                               |         t9 ();
                                                                     |     }
    0x0001537c lw t9, 0x38(sp)                                       |     t9 = *(var_38h);
    0x00015380 move a1, s6                                           |     a1 = s6;
    0x00015384 move a0, s7                                           |     a0 = s7;
    0x00015388 jalr t9                                               |     t9 ();
    0x0001538c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015390 lw a2, 0x28(sp)                                       |     a2 = *(var_28h);
    0x00015394 lw a1, 0x24(sp)                                       |     a1 = *(var_24h);
    0x00015398 lw t9, -0x7df4(gp)                                    |     t9 = sym.overlay_frontend_allocate_overlay_info;
    0x0001539c move a0, s6                                           |     a0 = s6;
    0x000153a0 bal 0x14dd8                                           |     sym_overlay_frontend_allocate_overlay_info ();
    0x000153a4 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x000153a8 addiu a2, sp, 0x50                                    |     a2 = sp + 0x50;
    0x000153ac move a0, s1                                           |     a0 = s1;
    0x000153b0 lw a1, -0x7fd4(gp)                                    |     a1 = *(gp);
    0x000153b4 lw t9, -0x7524(gp)                                    |     t9 = sym.imp.__isoc99_sscanf;
                                                                     |     /* str.Overlay_d */
    0x000153b8 addiu a1, a1, 0x6504                                  |     a1 += 0x6504;
    0x000153bc move s4, v0                                           |     s4 = v0;
    0x000153c0 jalr t9                                               |     t9 ();
    0x000153c4 addiu v1, zero, 1                                     |     v1 = 1;
    0x000153c8 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     |     if (v0 != v1) {
    0x000153cc bne v0, v1, 0x15c8c                                   |         goto label_80;
                                                                     |     }
    0x000153d0 lw v0, 0x50(sp)                                       |     v0 = *(var_50h);
                                                                     | label_56:
    0x000153d4 sw v0, 0x14(s4)                                       |     *((s4 + 5)) = v0;
    0x000153d8 lw v0, 0x30(sp)                                       |     v0 = *(var_30h);
    0x000153dc lw t9, -0x7df0(gp)                                    |     t9 = sym.overlay_backend_add;
    0x000153e0 sw v0, 0x1028(s4)                                     |     *((s4 + 1034)) = v0;
    0x000153e4 lw v0, 0x2c(sp)                                       |     v0 = *(var_2ch);
    0x000153e8 move a1, s7                                           |     a1 = s7;
    0x000153ec sw v0, 0x1020(s4)                                     |     *((s4 + 1032)) = v0;
    0x000153f0 move a0, s4                                           |     a0 = s4;
    0x000153f4 bal 0x1c940                                           |     sym_overlay_backend_add ();
    0x000153f8 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     |     if (v0 < 0) {
    0x000153fc bltz v0, 0x15618                                      |         goto label_81;
                                                                     |     }
    0x00015400 lw t9, -0x7dec(gp)                                    |     t9 = sym.overlay_dbus_create_overlay_object;
    0x00015404 lw a0, 0x10(s4)                                       |     a0 = *((s4 + 4));
    0x00015408 bal 0x1e6b8                                           |     sym_overlay_dbus_create_overlay_object ();
    0x0001540c lw t9, 0x40(sp)                                       |     t9 = *(var_40h);
    0x00015410 sw v0, 0x18(s4)                                       |     *((s4 + 6)) = v0;
    0x00015414 addiu a3, zero, 1                                     |     a3 = 1;
    0x00015418 move a2, s6                                           |     a2 = s6;
    0x0001541c move a1, s4                                           |     a1 = s4;
    0x00015420 move a0, s7                                           |     a0 = s7;
    0x00015424 jalr t9                                               |     t9 ();
    0x00015428 lw v0, 0x24(sp)                                       |     v0 = *(var_24h);
    0x0001542c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     |     if (v0 != 0) {
    0x00015430 bnez v0, 0x158f0                                      |         goto label_82;
                                                                     |     }
    0x00015434 lw a1, -0x7fd4(gp)                                    |     a1 = *(gp);
    0x00015438 lw t9, -0x7de8(gp)                                    |     t9 = sym.overlay_dbus_set_camera;
    0x0001543c lw a0, 0x18(s4)                                       |     a0 = *((s4 + 6));
                                                                     |     /* str.quad */
    0x00015440 addiu a1, a1, 0x6350                                  |     a1 += 0x6350;
    0x00015444 bal 0x1f214                                           |     sym_overlay_dbus_set_camera ();
    0x00015448 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     | label_24:
    0x0001544c lw t9, -0x7de4(gp)                                    |     t9 = sym.overlay_dbus_set_stream;
    0x00015450 lw a0, 0x18(s4)                                       |     a0 = *((s4 + 6));
    0x00015454 lw a1, 0x28(sp)                                       |     a1 = *(var_28h);
    0x00015458 bal 0x1f2c4                                           |     sym_overlay_dbus_set_stream ();
    0x0001545c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015460 lw a1, 0x10(s4)                                       |     a1 = *((s4 + 4));
    0x00015464 lw t9, -0x7de0(gp)                                    |     t9 = sym.overlay_dbus_set_overlay_id;
    0x00015468 lw a0, 0x18(s4)                                       |     a0 = *((s4 + 6));
    0x0001546c bal 0x1f164                                           |     sym_overlay_dbus_set_overlay_id ();
    0x00015470 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015474 lw v0, 0x1c(s4)                                       |     v0 = *((s4 + 7));
    0x00015478 lw a0, -0x7fd4(gp)                                    |     a0 = *(gp);
    0x0001547c lw t9, -0x764c(gp)                                    |     t9 = sym.imp.g_strdup_printf;
    0x00015480 lw a2, 0x10(v0)                                       |     a2 = *((v0 + 4));
    0x00015484 lw a1, 0xc(v0)                                        |     a1 = *((v0 + 3));
                                                                     |     /* str._dx_d */
    0x00015488 addiu a0, a0, 0x62b4                                  |     a0 += 0x62b4;
    0x0001548c jalr t9                                               |     t9 ();
    0x00015490 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015494 lw a0, 0x18(s4)                                       |     a0 = *((s4 + 6));
    0x00015498 move a1, v0                                           |     a1 = v0;
    0x0001549c lw t9, -0x7e78(gp)                                    |     t9 = sym.overlay_dbus_set_size;
    0x000154a0 move s6, v0                                           |     s6 = v0;
    0x000154a4 bal 0x1ef54                                           |     sym_overlay_dbus_set_size ();
    0x000154a8 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x000154ac lw t9, -0x7450(gp)                                    |     t9 = *((gp - 7444));
    0x000154b0 move a0, s6                                           |     a0 = s6;
    0x000154b4 jalr t9                                               |     t9 ();
    0x000154b8 lw v1, 4(s4)                                          |     v1 = *((s4 + 1));
    0x000154bc addiu v0, zero, 2                                     |     v0 = 2;
    0x000154c0 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     |     if (v1 == v0) {
    0x000154c4 beq v1, v0, 0x15b20                                   |         goto label_83;
                                                                     |     }
                                                                     | label_46:
    0x000154c8 lw a2, -0x7fd4(gp)                                    |     a2 = *(gp);
    0x000154cc lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x000154d0 move a0, s2                                           |     a0 = s2;
    0x000154d4 move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.Owner */
    0x000154d8 addiu a2, a2, 0x65bc                                  |     a2 += 0x65bc;
    0x000154dc move a1, s1                                           |     a1 = s1;
    0x000154e0 sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x000154e4 jalr t9                                               |     t9 ();
    0x000154e8 move s6, v0                                           |     s6 = v0;
    0x000154ec lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x000154f0 addiu v1, s4, 0x20                                    |     v1 = s4 + 0x20;
    0x000154f4 lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x000154f8 beqz v0, 0x15938                                      |         goto label_84;
                                                                     |     }
    0x000154fc lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
                                                                     |     if (a0 == 0) {
    0x00015500 beqz a0, 0x15b7c                                      |         goto label_85;
                                                                     |     }
                                                                     | label_26:
    0x00015504 sw v1, 0x24(sp)                                       |     *(var_24h) = v1;
    0x00015508 jalr t9                                               |     t9 ();
    0x0001550c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015510 lw v1, 0x24(sp)                                       |     v1 = *(var_24h);
                                                                     | label_50:
    0x00015514 lw t9, -0x7ddc(gp)                                    |     t9 = sym.overlay_dbus_set_owner;
                                                                     | label_25:
    0x00015518 lw a0, 0x18(s4)                                       |     a0 = *((s4 + 6));
    0x0001551c move a1, v1                                           |     a1 = v1;
    0x00015520 bal 0x1f1bc                                           |     sym_overlay_dbus_set_owner ();
    0x00015524 lw a0, 4(s4)                                          |     a0 = *((s4 + 1));
    0x00015528 lw t9, 0x44(sp)                                       |     t9 = *(var_44h);
    0x0001552c addiu a1, s4, 0x18                                    |     a1 = s4 + 0x18;
    0x00015530 jalr t9                                               |     t9 ();
    0x00015534 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015538 lw v0, 0x34(sp)                                       |     v0 = *(var_34h);
    0x0001553c move a3, s5                                           |     a3 = s5;
    0x00015540 lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x00015544 addiu a2, v0, 0x55fc                                  |     a2 = v0 + 0x55fc;
    0x00015548 move a1, s1                                           |     a1 = s1;
    0x0001554c move a0, s2                                           |     a0 = s2;
    0x00015550 sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x00015554 jalr t9                                               |     t9 ();
    0x00015558 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     |     if (v0 == 0) {
    0x0001555c beqz v0, 0x15b3c                                      |         goto label_86;
                                                                     |     }
    0x00015560 lw v1, 0x4c(sp)                                       |     v1 = *(var_4ch);
    0x00015564 lw a0, 0x18(s4)                                       |     a0 = *((s4 + 6));
                                                                     |     if (v1 == 0) {
    0x00015568 beqz v1, 0x15b44                                      |         goto label_87;
                                                                     |     }
                                                                     | label_47:
    0x0001556c lw a1, -0x7fd4(gp)                                    |     a1 = *(gp);
    0x00015570 lw t9, -0x7e7c(gp)                                    |     t9 = sym.overlay_dbus_set_position;
                                                                     |     /* str._1.0x_1.0 */
    0x00015574 addiu a1, a1, 0x6480                                  |     a1 += 0x6480;
    0x00015578 bal 0x1eea4                                           |     sym_overlay_dbus_set_position ();
    0x0001557c lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
    0x00015580 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     |     if (a0 != 0) {
    0x00015584 beqz a0, 0x15598                                      |         
    0x00015588 lw t9, -0x78ac(gp)                                    |         t9 = sym.imp.g_error_free;
    0x0001558c jalr t9                                               |         t9 ();
    0x00015590 nop                                                   |         
    0x00015594 lw gp, 0x18(sp)                                       |         gp = *(var_18h);
                                                                     |     }
                                                                     | label_48:
    0x00015598 lw t9, -0x7dd8(gp)                                    |     t9 = sym.overlay_dbus_export_overlay_object;
    0x0001559c lw a0, 0x18(s4)                                       |     a0 = *((s4 + 6));
    0x000155a0 bal 0x1e8c0                                           |     sym_overlay_dbus_export_overlay_object ();
    0x000155a4 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x000155a8 lw t9, -0x7dd4(gp)                                    |     t9 = sym.overlay_dbus_add_overlay_info;
    0x000155ac move a0, s4                                           |     a0 = s4;
    0x000155b0 bal 0x1ea10                                           |     sym_overlay_dbus_add_overlay_info ();
    0x000155b4 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     |     do {
                                                                     | label_2:
    0x000155b8 lw t9, -0x74c4(gp)                                    |         t9 = sym.imp.g_hash_table_destroy;
    0x000155bc move a0, s7                                           |         a0 = s7;
    0x000155c0 jalr t9                                               |         t9 ();
    0x000155c4 addiu s3, s3, 4                                       |         s3 += 4;
    0x000155c8 lw gp, 0x18(sp)                                       |         gp = *(var_18h);
    0x000155cc b 0x14fc4                                             |         goto label_0;
                                                                     | label_59:
    0x000155d0 lw t9, -0x78b0(gp)                                    |         t9 = sym.imp.g_strfreev;
    0x000155d4 lw a0, 0x3c(sp)                                       |         a0 = *(var_3ch);
    0x000155d8 jalr t9                                               |         t9 ();
    0x000155dc lw gp, 0x18(sp)                                       |         gp = *(var_18h);
                                                                     | label_58:
    0x000155e0 lw t9, -0x7dd0(gp)                                    |         t9 = sym.parhand_initiate_overlay_connection;
    0x000155e4 bal 0xfbc8                                            |         sym_parhand_initiate_overlay_connection ();
    0x000155e8 nop                                                   |         
    0x000155ec lw gp, 0x18(sp)                                       |         gp = *(var_18h);
    0x000155f0 b 0x14f0c                                             |         goto label_1;
                                                                     | label_61:
    0x000155f4 lw a2, -0x7fd4(gp)                                    |         a2 = *(gp);
    0x000155f8 lw t9, -0x7774(gp)                                    |         t9 = sym.imp.__syslog_chk;
    0x000155fc move a3, s1                                           |         a3 = s1;
                                                                     |         /* str.Invalid_overlay_type_from___s__ */
    0x00015600 addiu a2, a2, 0x66e4                                  |         a2 += 0x66e4;
    0x00015604 addiu a1, zero, 1                                     |         a1 = 1;
    0x00015608 addiu a0, zero, 4                                     |         a0 = 4;
    0x0001560c jalr t9                                               |         t9 ();
    0x00015610 lw gp, 0x18(sp)                                       |         gp = *(var_18h);
    0x00015614 b 0x155b8                                             |         
                                                                     |     } while (1);
                                                                     | label_81:
    0x00015618 lw v1, 4(s4)                                          |     v1 = *((s4 + 1));
    0x0001561c addiu v0, zero, 1                                     |     v0 = 1;
    0x00015620 lw a3, -0x7fd4(gp)                                    |     a3 = *(gp);
                                                                     |     if (v1 == v0) {
    0x00015624 beq v1, v0, 0x1597c                                   |         goto label_88;
                                                                     |     }
    0x00015628 lw a3, -0x7fd4(gp)                                    |     a3 = *(gp);
                                                                     |     /* str.generic */
    0x0001562c addiu a3, a3, 0x66bc                                  |     a3 += 0x66bc;
                                                                     | label_30:
    0x00015630 lw a2, -0x7fd4(gp)                                    |     a2 = *(gp);
    0x00015634 lw t9, -0x7774(gp)                                    |     t9 = sym.imp.__syslog_chk;
    0x00015638 sw s4, 0x10(sp)                                       |     *(var_10h) = s4;
                                                                     |     /* str.Failed_to_create__s_overlay__p */
    0x0001563c addiu a2, a2, 0x66c4                                  |     a2 += 0x66c4;
    0x00015640 addiu a1, zero, 1                                     |     a1 = 1;
    0x00015644 addiu a0, zero, 3                                     |     a0 = 3;
    0x00015648 jalr t9                                               |     t9 ();
    0x0001564c lw v0, (s4)                                           |     v0 = *(s4);
    0x00015650 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015654 addiu v0, v0, -1                                      |     v0 += -1;
    0x00015658 sw v0, (s4)                                           |     *(s4) = v0;
                                                                     |     if (v0 > 0) {
    0x0001565c bgtz v0, 0x155b8                                      |         goto label_2;
                                                                     |     }
    0x00015660 lw t9, -0x7f58(gp)                                    |     t9 = *(gp);
                                                                     |     /* fcn.00014ae0 */
    0x00015664 addiu t9, t9, 0x4ae0                                  |     t9 += 0x4ae0;
    0x00015668 move a0, s4                                           |     a0 = s4;
    0x0001566c bal 0x14ae0                                           |     fcn_00014ae0 ();
    0x00015670 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015674 b 0x155b8                                             |     goto label_2;
                                                                     | label_78:
    0x00015678 lw a2, -0x7fd4(gp)                                    |     a2 = *(gp);
                                                                     |     if (a0 == 0) {
    0x0001567c beqz a0, 0x152fc                                      |         goto label_3;
                                                                     |     }
    0x00015680 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
    0x00015684 b 0x152ec                                             |     goto label_4;
                                                                     | label_76:
    0x00015688 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     |     if (a0 == 0) {
    0x0001568c beqz a0, 0x152b0                                      |         goto label_5;
                                                                     |     }
    0x00015690 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
    0x00015694 b 0x152a0                                             |     goto label_6;
                                                                     | label_74:
    0x00015698 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     |     if (a0 == 0) {
    0x0001569c beqz a0, 0x15264                                      |         goto label_7;
                                                                     |     }
    0x000156a0 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
    0x000156a4 b 0x15254                                             |     goto label_8;
                                                                     | label_21:
    0x000156a8 lw a2, -0x7fd4(gp)                                    |     a2 = *(gp);
                                                                     |     if (a0 == 0) {
    0x000156ac beqz a0, 0x150b8                                      |         goto label_9;
                                                                     |     }
    0x000156b0 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
    0x000156b4 b 0x150a8                                             |     goto label_10;
                                                                     | label_72:
    0x000156b8 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     |     if (a0 == 0) {
    0x000156bc beqz a0, 0x15218                                      |         goto label_11;
                                                                     |     }
    0x000156c0 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
    0x000156c4 b 0x15208                                             |     goto label_12;
                                                                     | label_70:
    0x000156c8 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     |     if (a0 == 0) {
    0x000156cc beqz a0, 0x151cc                                      |         goto label_13;
                                                                     |     }
    0x000156d0 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
    0x000156d4 b 0x151bc                                             |     goto label_14;
                                                                     | label_68:
    0x000156d8 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     |     if (a0 == 0) {
    0x000156dc beqz a0, 0x15180                                      |         goto label_15;
                                                                     |     }
    0x000156e0 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
    0x000156e4 b 0x15170                                             |     goto label_16;
                                                                     | label_66:
    0x000156e8 lw v0, -0x7fd4(gp)                                    |     v0 = *(gp);
                                                                     |     if (a0 == 0) {
    0x000156ec beqz a0, 0x15138                                      |         goto label_17;
                                                                     |     }
    0x000156f0 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
    0x000156f4 b 0x15128                                             |     goto label_18;
                                                                     | label_64:
    0x000156f8 lw s4, -0x7fd4(gp)                                    |     s4 = *(gp);
                                                                     |     if (a0 == 0) {
    0x000156fc beqz a0, 0x150f8                                      |         goto label_19;
                                                                     |     }
    0x00015700 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
    0x00015704 b 0x150e8                                             |     goto label_20;
                                                                     | label_62:
    0x00015708 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
    0x0001570c lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x00015710 addiu s5, sp, 0x4c                                    |     s5 = sp + 0x4c;
    0x00015714 move a0, s2                                           |     a0 = s2;
    0x00015718 move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.Text */
    0x0001571c addiu a2, v1, 0x5298                                  |     a2 = v1 + 0x5298;
    0x00015720 sw v1, 0x24(sp)                                       |     *(var_24h) = v1;
    0x00015724 move a1, s1                                           |     a1 = s1;
    0x00015728 jalr t9                                               |     t9 ();
    0x0001572c move s4, v0                                           |     s4 = v0;
    0x00015730 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015734 lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x00015738 beqz v0, 0x159b4                                      |         goto label_89;
                                                                     |     }
    0x0001573c lw v1, 0x24(sp)                                       |     v1 = *(var_24h);
                                                                     |     if (a0 == 0) {
    0x00015740 beqz a0, 0x15c34                                      |         goto label_90;
                                                                     |     }
    0x00015744 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
                                                                     | label_38:
    0x00015748 jalr t9                                               |     t9 ();
    0x0001574c nop                                                   |     
    0x00015750 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     | label_54:
    0x00015754 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     | label_37:
    0x00015758 lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x0001575c move a0, s2                                           |     a0 = s2;
    0x00015760 move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.TextColor */
    0x00015764 addiu a2, v1, 0x52a0                                  |     a2 = v1 + 0x52a0;
    0x00015768 sw v1, 0x24(sp)                                       |     *(var_24h) = v1;
    0x0001576c move a1, s1                                           |     a1 = s1;
    0x00015770 sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x00015774 jalr t9                                               |     t9 ();
    0x00015778 move s4, v0                                           |     s4 = v0;
    0x0001577c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015780 lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x00015784 beqz v0, 0x159a4                                      |         goto label_91;
                                                                     |     }
    0x00015788 lw v1, 0x24(sp)                                       |     v1 = *(var_24h);
                                                                     |     if (a0 == 0) {
    0x0001578c beqz a0, 0x15c08                                      |         goto label_92;
                                                                     |     }
    0x00015790 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
                                                                     | label_36:
    0x00015794 jalr t9                                               |     t9 ();
    0x00015798 nop                                                   |     
    0x0001579c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     | label_53:
    0x000157a0 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     | label_35:
    0x000157a4 lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x000157a8 move a0, s2                                           |     a0 = s2;
    0x000157ac move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.TextBGColor */
    0x000157b0 addiu a2, v1, 0x52ac                                  |     a2 = v1 + 0x52ac;
    0x000157b4 sw v1, 0x24(sp)                                       |     *(var_24h) = v1;
    0x000157b8 move a1, s1                                           |     a1 = s1;
    0x000157bc sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x000157c0 jalr t9                                               |     t9 ();
    0x000157c4 move s4, v0                                           |     s4 = v0;
    0x000157c8 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x000157cc lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x000157d0 beqz v0, 0x15994                                      |         goto label_93;
                                                                     |     }
    0x000157d4 lw v1, 0x24(sp)                                       |     v1 = *(var_24h);
                                                                     |     if (a0 == 0) {
    0x000157d8 beqz a0, 0x15bdc                                      |         goto label_94;
                                                                     |     }
    0x000157dc lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
                                                                     | label_34:
    0x000157e0 jalr t9                                               |     t9 ();
    0x000157e4 nop                                                   |     
    0x000157e8 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     | label_52:
    0x000157ec lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     | label_33:
    0x000157f0 lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x000157f4 move a0, s2                                           |     a0 = s2;
    0x000157f8 move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.TextOLColor */
    0x000157fc addiu a2, v1, 0x6400                                  |     a2 = v1 + 0x6400;
    0x00015800 sw v1, 0x24(sp)                                       |     *(var_24h) = v1;
    0x00015804 move a1, s1                                           |     a1 = s1;
    0x00015808 sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x0001580c jalr t9                                               |     t9 ();
    0x00015810 move s4, v0                                           |     s4 = v0;
    0x00015814 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015818 lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x0001581c beqz v0, 0x15984                                      |         goto label_95;
                                                                     |     }
    0x00015820 lw v1, 0x24(sp)                                       |     v1 = *(var_24h);
                                                                     |     if (a0 == 0) {
    0x00015824 beqz a0, 0x15bb0                                      |         goto label_96;
                                                                     |     }
    0x00015828 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
                                                                     | label_32:
    0x0001582c jalr t9                                               |     t9 ();
    0x00015830 nop                                                   |     
    0x00015834 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     | label_51:
    0x00015838 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     | label_31:
    0x0001583c lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x00015840 move a0, s2                                           |     a0 = s2;
    0x00015844 move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.FontSize */
    0x00015848 addiu a2, v1, 0x52c4                                  |     a2 = v1 + 0x52c4;
    0x0001584c sw v1, 0x24(sp)                                       |     *(var_24h) = v1;
    0x00015850 move a1, s1                                           |     a1 = s1;
    0x00015854 sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x00015858 jalr t9                                               |     t9 ();
    0x0001585c move s4, v0                                           |     s4 = v0;
    0x00015860 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015864 lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x00015868 beqz v0, 0x1596c                                      |         goto label_97;
                                                                     |     }
    0x0001586c lw v1, 0x24(sp)                                       |     v1 = *(var_24h);
                                                                     |     if (a0 == 0) {
    0x00015870 beqz a0, 0x15c60                                      |         goto label_98;
                                                                     |     }
    0x00015874 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
                                                                     | label_29:
    0x00015878 jalr t9                                               |     t9 ();
    0x0001587c nop                                                   |     
    0x00015880 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
                                                                     | label_55:
    0x00015884 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     | label_28:
    0x00015888 lw t9, -0x74f4(gp)                                    |     t9 = sym.imp.g_key_file_get_string;
    0x0001588c move a0, s2                                           |     a0 = s2;
    0x00015890 move a3, s5                                           |     a3 = s5;
                                                                     |     /* str.ScrollSpeed */
    0x00015894 addiu a2, v1, 0x640c                                  |     a2 = v1 + 0x640c;
    0x00015898 sw v1, 0x24(sp)                                       |     *(var_24h) = v1;
    0x0001589c move a1, s1                                           |     a1 = s1;
    0x000158a0 sw zero, 0x4c(sp)                                     |     *(var_4ch) = 0;
    0x000158a4 jalr t9                                               |     t9 ();
    0x000158a8 move s4, v0                                           |     s4 = v0;
    0x000158ac lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x000158b0 lw a0, 0x4c(sp)                                       |     a0 = *(var_4ch);
                                                                     |     if (v0 == 0) {
    0x000158b4 beqz v0, 0x156a8                                      |         goto label_21;
                                                                     |     }
    0x000158b8 lw v1, 0x24(sp)                                       |     v1 = *(var_24h);
                                                                     |     if (a0 != 0) {
    0x000158bc bnez a0, 0x150a4                                      |         goto label_22;
                                                                     |     }
    0x000158c0 lw t9, -0x7530(gp)                                    |     t9 = sym.imp.g_strdup;
    0x000158c4 addiu a0, v1, 0x640c                                  |     a0 = v1 + 0x640c;
                                                                     | label_49:
    0x000158c8 jalr t9                                               |     t9 ();
    0x000158cc nop                                                   |     
    0x000158d0 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x000158d4 move a2, s4                                           |     a2 = s4;
    0x000158d8 move a1, v0                                           |     a1 = v0;
    0x000158dc lw t9, -0x756c(gp)                                    |     t9 = sym.imp.g_hash_table_insert;
    0x000158e0 move a0, s7                                           |     a0 = s7;
    0x000158e4 jalr t9                                               |     t9 ();
    0x000158e8 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x000158ec b 0x150b4                                             |     goto label_23;
                                                                     | label_82:
    0x000158f0 lw t9, -0x78a8(gp)                                    |     t9 = sym.imp.__snprintf_chk;
    0x000158f4 sw v0, 0x14(sp)                                       |     *(var_14h) = v0;
    0x000158f8 lw v0, -0x7fd4(gp)                                    |     v0 = *(gp);
    0x000158fc addiu s6, sp, 0x54                                    |     s6 = sp + 0x54;
                                                                     |     /* esilref: '&d' */
    0x00015900 addiu v0, v0, 0x62f8                                  |     v0 += 0x62f8;
    0x00015904 addiu a3, zero, 8                                     |     a3 = 8;
    0x00015908 addiu a2, zero, 1                                     |     a2 = 1;
    0x0001590c addiu a1, zero, 8                                     |     a1 = 8;
    0x00015910 move a0, s6                                           |     a0 = s6;
    0x00015914 sw v0, 0x10(sp)                                       |     *(var_10h) = v0;
    0x00015918 jalr t9                                               |     t9 ();
    0x0001591c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015920 lw a0, 0x18(s4)                                       |     a0 = *((s4 + 6));
    0x00015924 lw t9, -0x7de8(gp)                                    |     t9 = sym.overlay_dbus_set_camera;
    0x00015928 move a1, s6                                           |     a1 = s6;
    0x0001592c bal 0x1f214                                           |     sym_overlay_dbus_set_camera ();
    0x00015930 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015934 b 0x1544c                                             |     goto label_24;
                                                                     |     if (a0 == 0) {
                                                                     | label_84:
    0x00015938 beql a0, zero, 0x15518                                |         goto label_25;
                                                                     |     }
    0x0001593c lw t9, -0x7ddc(gp)                                    |     t9 = sym.overlay_dbus_set_owner;
    0x00015940 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
    0x00015944 b 0x15504                                             |     goto label_26;
                                                                     | label_65:
    0x00015948 lw a1, -0x7fd4(gp)                                    |     a1 = *(gp);
    0x0001594c lw t9, -0x790c(gp)                                    |     t9 = sym.imp.strcmp;
                                                                     |     /* str.true */
    0x00015950 addiu a1, a1, 0x54d0                                  |     a1 += 0x54d0;
    0x00015954 move a0, v0                                           |     a0 = v0;
    0x00015958 jalr t9                                               |     t9 ();
    0x0001595c sltiu v0, v0, 1                                       |     v0 = (v0 < 1) ? 1 : 0;
    0x00015960 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015964 sw v0, 0x2c(sp)                                       |     *(var_2ch) = v0;
    0x00015968 b 0x150f4                                             |     goto label_27;
                                                                     | label_97:
    0x0001596c lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     |     if (a0 == 0) {
    0x00015970 beqz a0, 0x15888                                      |         goto label_28;
                                                                     |     }
    0x00015974 lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
    0x00015978 b 0x15878                                             |     goto label_29;
                                                                     |     /* str.image */
                                                                     | label_88:
    0x0001597c addiu a3, a3, 0x66b4                                  |     a3 += 0x66b4;
    0x00015980 b 0x15630                                             |     goto label_30;
                                                                     | label_95:
    0x00015984 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     |     if (a0 == 0) {
    0x00015988 beqz a0, 0x1583c                                      |         goto label_31;
                                                                     |     }
    0x0001598c lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
    0x00015990 b 0x1582c                                             |     goto label_32;
                                                                     | label_93:
    0x00015994 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     |     if (a0 == 0) {
    0x00015998 beqz a0, 0x157f0                                      |         goto label_33;
                                                                     |     }
    0x0001599c lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
    0x000159a0 b 0x157e0                                             |     goto label_34;
                                                                     | label_91:
    0x000159a4 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     |     if (a0 == 0) {
    0x000159a8 beqz a0, 0x157a4                                      |         goto label_35;
                                                                     |     }
    0x000159ac lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
    0x000159b0 b 0x15794                                             |     goto label_36;
                                                                     | label_89:
    0x000159b4 lw v1, -0x7fd4(gp)                                    |     v1 = *(gp);
                                                                     |     if (a0 == 0) {
    0x000159b8 beqz a0, 0x15758                                      |         goto label_37;
                                                                     |     }
    0x000159bc lw t9, -0x78ac(gp)                                    |     t9 = sym.imp.g_error_free;
    0x000159c0 b 0x15748                                             |     goto label_38;
                                                                     | label_67:
    0x000159c4 lw a1, -0x7fd4(gp)                                    |     a1 = *(gp);
    0x000159c8 lw t9, -0x790c(gp)                                    |     t9 = sym.imp.strcmp;
                                                                     |     /* str.true */
    0x000159cc addiu a1, a1, 0x54d0                                  |     a1 += 0x54d0;
    0x000159d0 move a0, v0                                           |     a0 = v0;
    0x000159d4 sw v0, 0x24(sp)                                       |     *(var_24h) = v0;
    0x000159d8 jalr t9                                               |     t9 ();
    0x000159dc lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x000159e0 sltiu v0, v0, 1                                       |     v0 = (v0 < 1) ? 1 : 0;
                                                                     |     /* str.Visible */
    0x000159e4 addiu a0, s4, 0x54c8                                  |     a0 = s4 + 0x54c8;
    0x000159e8 lw t9, -0x7530(gp)                                    |     t9 = sym.imp.g_strdup;
    0x000159ec sw v0, 0x30(sp)                                       |     *(var_30h) = v0;
    0x000159f0 jalr t9                                               |     t9 ();
    0x000159f4 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x000159f8 lw a2, 0x24(sp)                                       |     a2 = *(var_24h);
    0x000159fc move a1, v0                                           |     a1 = v0;
    0x00015a00 lw t9, -0x756c(gp)                                    |     t9 = sym.imp.g_hash_table_insert;
    0x00015a04 move a0, s7                                           |     a0 = s7;
    0x00015a08 jalr t9                                               |     t9 ();
    0x00015a0c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015a10 b 0x15134                                             |     goto label_39;
                                                                     | label_75:
    0x00015a14 lw t9, -0x7530(gp)                                    |     t9 = sym.imp.g_strdup;
    0x00015a18 addiu a0, v1, 0x6434                                  |     a0 = v1 + 0x6434;
    0x00015a1c jalr t9                                               |     t9 ();
    0x00015a20 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015a24 move a2, s4                                           |     a2 = s4;
    0x00015a28 move a1, v0                                           |     a1 = v0;
    0x00015a2c lw t9, -0x756c(gp)                                    |     t9 = sym.imp.g_hash_table_insert;
    0x00015a30 move a0, s7                                           |     a0 = s7;
    0x00015a34 jalr t9                                               |     t9 ();
    0x00015a38 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015a3c b 0x15260                                             |     goto label_40;
                                                                     | label_79:
    0x00015a40 lw t9, -0x7530(gp)                                    |     t9 = sym.imp.g_strdup;
    0x00015a44 addiu a0, v1, 0x6458                                  |     a0 = v1 + 0x6458;
    0x00015a48 jalr t9                                               |     t9 ();
    0x00015a4c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015a50 move a2, s4                                           |     a2 = s4;
    0x00015a54 move a1, v0                                           |     a1 = v0;
    0x00015a58 lw t9, -0x756c(gp)                                    |     t9 = sym.imp.g_hash_table_insert;
    0x00015a5c move a0, s7                                           |     a0 = s7;
    0x00015a60 jalr t9                                               |     t9 ();
    0x00015a64 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015a68 b 0x152f8                                             |     goto label_41;
                                                                     | label_77:
    0x00015a6c lw t9, -0x7530(gp)                                    |     t9 = sym.imp.g_strdup;
    0x00015a70 addiu a0, v1, 0x643c                                  |     a0 = v1 + 0x643c;
    0x00015a74 jalr t9                                               |     t9 ();
    0x00015a78 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015a7c move a2, s4                                           |     a2 = s4;
    0x00015a80 move a1, v0                                           |     a1 = v0;
    0x00015a84 lw t9, -0x756c(gp)                                    |     t9 = sym.imp.g_hash_table_insert;
    0x00015a88 move a0, s7                                           |     a0 = s7;
    0x00015a8c jalr t9                                               |     t9 ();
    0x00015a90 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015a94 b 0x152ac                                             |     goto label_42;
                                                                     | label_73:
    0x00015a98 lw t9, -0x7530(gp)                                    |     t9 = sym.imp.g_strdup;
    0x00015a9c addiu a0, v1, 0x54bc                                  |     a0 = v1 + 0x54bc;
    0x00015aa0 jalr t9                                               |     t9 ();
    0x00015aa4 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015aa8 move a2, s4                                           |     a2 = s4;
    0x00015aac move a1, v0                                           |     a1 = v0;
    0x00015ab0 lw t9, -0x756c(gp)                                    |     t9 = sym.imp.g_hash_table_insert;
    0x00015ab4 move a0, s7                                           |     a0 = s7;
    0x00015ab8 jalr t9                                               |     t9 ();
    0x00015abc lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015ac0 b 0x15214                                             |     goto label_43;
                                                                     | label_71:
    0x00015ac4 lw t9, -0x7530(gp)                                    |     t9 = sym.imp.g_strdup;
    0x00015ac8 addiu a0, v1, 0x6428                                  |     a0 = v1 + 0x6428;
    0x00015acc jalr t9                                               |     t9 ();
    0x00015ad0 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015ad4 move a2, s4                                           |     a2 = s4;
    0x00015ad8 move a1, v0                                           |     a1 = v0;
    0x00015adc lw t9, -0x756c(gp)                                    |     t9 = sym.imp.g_hash_table_insert;
    0x00015ae0 move a0, s7                                           |     a0 = s7;
    0x00015ae4 jalr t9                                               |     t9 ();
    0x00015ae8 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015aec b 0x151c8                                             |     goto label_44;
                                                                     | label_69:
    0x00015af0 lw v0, 0x34(sp)                                       |     v0 = *(var_34h);
    0x00015af4 lw t9, -0x7530(gp)                                    |     t9 = sym.imp.g_strdup;
    0x00015af8 addiu a0, v0, 0x55fc                                  |     a0 = v0 + 0x55fc;
    0x00015afc jalr t9                                               |     t9 ();
    0x00015b00 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015b04 move a2, s4                                           |     a2 = s4;
    0x00015b08 move a1, v0                                           |     a1 = v0;
    0x00015b0c lw t9, -0x756c(gp)                                    |     t9 = sym.imp.g_hash_table_insert;
    0x00015b10 move a0, s7                                           |     a0 = s7;
    0x00015b14 jalr t9                                               |     t9 ();
    0x00015b18 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015b1c b 0x1517c                                             |     goto label_45;
                                                                     | label_83:
    0x00015b20 lw v0, 0x1c(s4)                                       |     v0 = *((s4 + 7));
    0x00015b24 lw t9, -0x7e38(gp)                                    |     t9 = sym.overlay_dbus_set_text_length;
    0x00015b28 lw a0, 0x18(s4)                                       |     a0 = *((s4 + 6));
    0x00015b2c lw a1, 0x270(v0)                                      |     a1 = *(v0);
    0x00015b30 bal 0x1f43c                                           |     sym_overlay_dbus_set_text_length ();
    0x00015b34 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015b38 b 0x154c8                                             |     goto label_46;
                                                                     | label_86:
    0x00015b3c lw a0, 0x18(s4)                                       |     a0 = *((s4 + 6));
    0x00015b40 b 0x1556c                                             |     goto label_47;
                                                                     | label_87:
    0x00015b44 lw t9, -0x7e7c(gp)                                    |     t9 = sym.overlay_dbus_set_position;
    0x00015b48 move a1, v0                                           |     a1 = v0;
    0x00015b4c sw v0, 0x24(sp)                                       |     *(var_24h) = v0;
    0x00015b50 bal 0x1eea4                                           |     sym_overlay_dbus_set_position ();
    0x00015b54 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015b58 lw v0, 0x24(sp)                                       |     v0 = *(var_24h);
    0x00015b5c lw t9, -0x7450(gp)                                    |     t9 = *((gp - 7444));
    0x00015b60 move a0, v0                                           |     a0 = v0;
    0x00015b64 jalr t9                                               |     t9 ();
    0x00015b68 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015b6c b 0x15598                                             |     goto label_48;
                                                                     | label_63:
    0x00015b70 lw t9, -0x7530(gp)                                    |     t9 = sym.imp.g_strdup;
    0x00015b74 addiu a0, v1, 0x5274                                  |     a0 = v1 + 0x5274;
    0x00015b78 b 0x158c8                                             |     goto label_49;
                                                                     | label_85:
    0x00015b7c lw t9, -0x775c(gp)                                    |     t9 = sym.imp.__strcpy_chk
    0x00015b80 move a0, v1                                           |     a0 = v1;
    0x00015b84 sw v1, 0x24(sp)                                       |     *(var_24h) = v1;
    0x00015b88 addiu a2, zero, 0x1000                                |     a2 = 0x1000;
    0x00015b8c move a1, v0                                           |     a1 = v0;
    0x00015b90 jalr t9                                               |     t9 ();
    0x00015b94 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015b98 lw t9, -0x7450(gp)                                    |     t9 = *((gp - 7444));
    0x00015b9c move a0, s6                                           |     a0 = s6;
    0x00015ba0 jalr t9                                               |     t9 ();
    0x00015ba4 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015ba8 lw v1, 0x24(sp)                                       |     v1 = *(var_24h);
    0x00015bac b 0x15514                                             |     goto label_50;
                                                                     | label_96:
    0x00015bb0 lw t9, -0x7530(gp)                                    |     t9 = sym.imp.g_strdup;
    0x00015bb4 addiu a0, v1, 0x6400                                  |     a0 = v1 + 0x6400;
    0x00015bb8 jalr t9                                               |     t9 ();
    0x00015bbc lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015bc0 move a2, s4                                           |     a2 = s4;
    0x00015bc4 move a1, v0                                           |     a1 = v0;
    0x00015bc8 lw t9, -0x756c(gp)                                    |     t9 = sym.imp.g_hash_table_insert;
    0x00015bcc move a0, s7                                           |     a0 = s7;
    0x00015bd0 jalr t9                                               |     t9 ();
    0x00015bd4 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015bd8 b 0x15838                                             |     goto label_51;
                                                                     | label_94:
    0x00015bdc lw t9, -0x7530(gp)                                    |     t9 = sym.imp.g_strdup;
    0x00015be0 addiu a0, v1, 0x52ac                                  |     a0 = v1 + 0x52ac;
    0x00015be4 jalr t9                                               |     t9 ();
    0x00015be8 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015bec move a2, s4                                           |     a2 = s4;
    0x00015bf0 move a1, v0                                           |     a1 = v0;
    0x00015bf4 lw t9, -0x756c(gp)                                    |     t9 = sym.imp.g_hash_table_insert;
    0x00015bf8 move a0, s7                                           |     a0 = s7;
    0x00015bfc jalr t9                                               |     t9 ();
    0x00015c00 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015c04 b 0x157ec                                             |     goto label_52;
                                                                     | label_92:
    0x00015c08 lw t9, -0x7530(gp)                                    |     t9 = sym.imp.g_strdup;
    0x00015c0c addiu a0, v1, 0x52a0                                  |     a0 = v1 + 0x52a0;
    0x00015c10 jalr t9                                               |     t9 ();
    0x00015c14 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015c18 move a2, s4                                           |     a2 = s4;
    0x00015c1c move a1, v0                                           |     a1 = v0;
    0x00015c20 lw t9, -0x756c(gp)                                    |     t9 = sym.imp.g_hash_table_insert;
    0x00015c24 move a0, s7                                           |     a0 = s7;
    0x00015c28 jalr t9                                               |     t9 ();
    0x00015c2c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015c30 b 0x157a0                                             |     goto label_53;
                                                                     | label_90:
    0x00015c34 lw t9, -0x7530(gp)                                    |     t9 = sym.imp.g_strdup;
    0x00015c38 addiu a0, v1, 0x5298                                  |     a0 = v1 + 0x5298;
    0x00015c3c jalr t9                                               |     t9 ();
    0x00015c40 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015c44 move a2, s4                                           |     a2 = s4;
    0x00015c48 move a1, v0                                           |     a1 = v0;
    0x00015c4c lw t9, -0x756c(gp)                                    |     t9 = sym.imp.g_hash_table_insert;
    0x00015c50 move a0, s7                                           |     a0 = s7;
    0x00015c54 jalr t9                                               |     t9 ();
    0x00015c58 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015c5c b 0x15754                                             |     goto label_54;
                                                                     | label_98:
    0x00015c60 lw t9, -0x7530(gp)                                    |     t9 = sym.imp.g_strdup;
    0x00015c64 addiu a0, v1, 0x52c4                                  |     a0 = v1 + 0x52c4;
    0x00015c68 jalr t9                                               |     t9 ();
    0x00015c6c lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015c70 move a2, s4                                           |     a2 = s4;
    0x00015c74 move a1, v0                                           |     a1 = v0;
    0x00015c78 lw t9, -0x756c(gp)                                    |     t9 = sym.imp.g_hash_table_insert;
    0x00015c7c move a0, s7                                           |     a0 = s7;
    0x00015c80 jalr t9                                               |     t9 ();
    0x00015c84 lw gp, 0x18(sp)                                       |     gp = *(var_18h);
    0x00015c88 b 0x15884                                             |     goto label_55;
                                                                     | label_80:
    0x00015c8c addiu v0, zero, -1                                    |     v0 = -1;
    0x00015c90 b 0x153d4                                             |     goto label_56;
                                                                     | label_57:
    0x00015c94 lw t9, -0x77d4(gp)                                    |     t9 = sym.imp.__stack_chk_fail;
    0x00015c98 jalr t9                                               |     t9 ();
    0x00015c9c nop                                                   |     
                                                                     | }

[*] Function strcpy used 5 times overlayd