[*] Binary protection state of lightd

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


[*] Function strcpy tear down of lightd

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/lightd @ 0x10084 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.led_3_i2c_setup ()       | void led_3_i2c_setup () {
    0x00010084 lui gp, 3                 |     
    0x00010088 addiu gp, gp, 0x101c      |     
    0x0001008c addu gp, gp, t9           |     gp += t9;
    0x00010090 lw v0, -0x7d08(gp)        |     v0 = *((gp - 8002));
    0x00010094 addiu sp, sp, -0x220      |     
    0x00010098 lw t9, -0x7ef0(gp)        |     t9 = sym.led_3_i2c_get_type;
    0x0001009c sw v0, 0x28(sp)           |     *(var_28h) = v0;
    0x000100a0 lw v0, (v0)               |     v0 = *(v0);
    0x000100a4 sw ra, 0x21c(sp)          |     *(var_21ch) = ra;
    0x000100a8 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x000100ac sw s7, 0x214(sp)          |     *(var_214h) = s7;
    0x000100b0 sw s5, 0x20c(sp)          |     *(var_20ch) = s5;
    0x000100b4 sw s4, 0x208(sp)          |     *(var_208h) = s4;
    0x000100b8 sw s3, 0x204(sp)          |     *(var_204h) = s3;
    0x000100bc sw s1, 0x1fc(sp)          |     *(var_1fch) = s1;
    0x000100c0 sw s0, 0x1f8(sp)          |     *(var_1f8h) = s0;
    0x000100c4 sw a0, 0x2c(sp)           |     *(var_2ch) = a0;
    0x000100c8 sw fp, 0x218(sp)          |     *(var_218h) = fp;
    0x000100cc sw s6, 0x210(sp)          |     *(var_210h) = s6;
    0x000100d0 sw s2, 0x200(sp)          |     *(var_200h) = s2;
    0x000100d4 sw v0, 0x1f4(sp)          |     *(var_1f4h) = v0;
    0x000100d8 sw zero, 0x48(sp)         |     *(var_48h) = 0;
    0x000100dc move s0, a0               |     s0 = a0;
    0x000100e0 move s5, a1               |     s5 = a1;
    0x000100e4 bal 0xff30                |     sym_led_3_i2c_get_type ();
    0x000100e8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000100ec move a0, s0               |     a0 = s0;
    0x000100f0 move a1, v0               |     a1 = v0;
    0x000100f4 lw t9, -0x7d58(gp)        |     t9 = sym.imp.g_type_check_instance_cast;
    0x000100f8 addiu s0, sp, 0x48        |     s0 = sp + 0x48;
    0x000100fc jalr t9                   |     t9 ();
    0x00010100 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010104 addiu a2, zero, 0xfa      |     a2 = 0xfa;
    0x00010108 move a1, zero             |     a1 = 0;
    0x0001010c lw t9, -0x7c20(gp)        |     t9 = sym.imp.memset;
    0x00010110 addiu a0, sp, 0xf8        |     a0 = sp + 0xf8;
    0x00010114 sb zero, 0x47(sp)         |     *(var_47h) = 0;
    0x00010118 sh zero, 0xf0(sp)         |     *(var_f0h) = 0;
    0x0001011c sw zero, 0xf4(sp)         |     *(var_f4h) = 0;
    0x00010120 move s1, v0               |     s1 = v0;
    0x00010124 jalr t9                   |     t9 ();
    0x00010128 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0001012c lw t9, -0x7be0(gp)        |     t9 = sym.imp.g_key_file_new;
    0x00010130 lw s4, -0x7fc4(gp)        |     s4 = *(gp);
    0x00010134 lw s7, -0x7fc4(gp)        |     s7 = *(gp);
    0x00010138 jalr t9                   |     t9 ();
    0x0001013c nop                       |     
    0x00010140 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010144 move a2, s0               |     a2 = s0;
    0x00010148 addiu a1, s4, 0x4060      |     a1 = s4 + 0x4060;
    0x0001014c lw t9, -0x7c34(gp)        |     t9 = sym.imp.g_io_channel_new_file;
                                         |     /* str._etc_lightd_dimming.conf */
    0x00010150 addiu a0, s7, 0x64dc      |     a0 = s7 + 0x64dc;
    0x00010154 move s3, v0               |     s3 = v0;
    0x00010158 jalr t9                   |     t9 ();
    0x0001015c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00010160 beqz v0, 0x10688          |         goto label_11;
                                         |     }
    0x00010164 lw t9, -0x7bac(gp)        |     t9 = sym.imp.g_io_channel_set_encoding;
    0x00010168 move a2, zero             |     a2 = 0;
    0x0001016c move a1, zero             |     a1 = 0;
    0x00010170 move a0, v0               |     a0 = v0;
    0x00010174 move s2, v0               |     s2 = v0;
    0x00010178 jalr t9                   |     t9 ();
    0x0001017c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010180 addiu v0, sp, 0x50        |     v0 = sp + 0x50;
    0x00010184 addiu fp, sp, 0x4c        |     fp = sp + 0x4c;
    0x00010188 lw t9, -0x7c04(gp)        |     t9 = sym.imp.g_io_channel_read_to_end;
    0x0001018c sw v0, 0x30(sp)           |     *(var_30h_2) = v0;
    0x00010190 move a3, s0               |     a3 = s0;
    0x00010194 move a2, v0               |     a2 = v0;
    0x00010198 move a1, fp               |     a1 = fp;
    0x0001019c move a0, s2               |     a0 = s2;
    0x000101a0 jalr t9                   |     t9 ();
    0x000101a4 addiu v1, zero, 1         |     v1 = 1;
    0x000101a8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == v1) {
    0x000101ac beq v0, v1, 0x1024c       |         goto label_12;
                                         |     }
    0x000101b0 lw a2, -0x7fc4(gp)        |     a2 = *(gp);
    0x000101b4 lw t9, -0x7d30(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.Failed_reading_file */
    0x000101b8 addiu a2, a2, 0x6448      |     a2 += 0x6448;
    0x000101bc addiu a1, zero, 1         |     a1 = 1;
    0x000101c0 addiu a0, zero, 3         |     a0 = 3;
    0x000101c4 jalr t9                   |     t9 ();
    0x000101c8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000101cc lw a0, 0x48(sp)           |     a0 = *(var_48h);
    0x000101d0 lw t9, -0x7dbc(gp)        |     t9 = sym.imp.g_error_free;
    0x000101d4 sw zero, 0x24(sp)         |     *(var_24h) = 0;
    0x000101d8 jalr t9                   |     t9 ();
    0x000101dc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000101e0 lw t9, -0x7d94(gp)        |     t9 = sym.imp.g_io_channel_unref;
    0x000101e4 move a0, s2               |     a0 = s2;
    0x000101e8 jalr t9                   |     t9 ();
    0x000101ec lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000101f0 sw zero, 0x20(sp)         |     *(var_20h) = 0;
                                         |     do {
                                         | label_2:
    0x000101f4 lw t9, -0x7b7c(gp)        |         t9 = sym.imp.g_free;
    0x000101f8 lw a0, 0x24(sp)           |         a0 = *(var_24h);
    0x000101fc sw s3, 0x178(s1)          |         *(s1) = s3;
    0x00010200 jalr t9                   |         t9 ();
    0x00010204 lw v0, 0x28(sp)           |         v0 = *(var_28h);
    0x00010208 lw a0, 0x1f4(sp)          |         a0 = *(var_1f4h);
    0x0001020c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010210 lw v1, (v0)               |         v1 = *(v0);
    0x00010214 lw v0, 0x20(sp)           |         v0 = *(var_20h);
                                         |         if (a0 != v1) {
    0x00010218 bne a0, v1, 0x10e00       |             goto label_13;
                                         |         }
    0x0001021c lw ra, 0x21c(sp)          |         ra = *(var_21ch);
    0x00010220 lw fp, 0x218(sp)          |         fp = *(var_218h);
    0x00010224 lw s7, 0x214(sp)          |         s7 = *(var_214h);
    0x00010228 lw s6, 0x210(sp)          |         s6 = *(var_210h);
    0x0001022c lw s5, 0x20c(sp)          |         s5 = *(var_20ch);
    0x00010230 lw s4, 0x208(sp)          |         s4 = *(var_208h);
    0x00010234 lw s3, 0x204(sp)          |         s3 = *(var_204h);
    0x00010238 lw s2, 0x200(sp)          |         s2 = *(var_200h);
    0x0001023c lw s1, 0x1fc(sp)          |         s1 = *(var_1fch);
    0x00010240 lw s0, 0x1f8(sp)          |         s0 = *(var_1f8h);
    0x00010244 addiu sp, sp, 0x220       |         
    0x00010248 jr ra                     |         return v1;
                                         | label_12:
    0x0001024c lw t9, -0x7e2c(gp)        |         t9 = sym.imp.g_key_file_load_from_data;
    0x00010250 lw a2, 0x50(sp)           |         a2 = *(var_50h);
    0x00010254 lw a1, 0x4c(sp)           |         a1 = *(var_4ch);
    0x00010258 sw s0, 0x10(sp)           |         *(var_10h) = s0;
    0x0001025c move a3, zero             |         a3 = 0;
    0x00010260 move a0, s3               |         a0 = s3;
    0x00010264 jalr t9                   |         t9 ();
    0x00010268 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x0001026c beqz v0, 0x106d0          |             goto label_14;
                                         |         }
    0x00010270 lw t9, -0x7b7c(gp)        |         t9 = sym.imp.g_free;
    0x00010274 lw s7, -0x7fc4(gp)        |         s7 = *(gp);
    0x00010278 lw a0, 0x4c(sp)           |         a0 = *(var_4ch);
    0x0001027c jalr t9                   |         t9 ();
    0x00010280 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010284 lw t9, -0x7d94(gp)        |         t9 = sym.imp.g_io_channel_unref;
    0x00010288 move a0, s2               |         a0 = s2;
    0x0001028c jalr t9                   |         t9 ();
    0x00010290 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010294 move a3, s0               |         a3 = s0;
                                         |         /* str.regulator */
    0x00010298 addiu a1, s7, 0x4de4      |         a1 = s7 + 0x4de4;
    0x0001029c lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x000102a0 lw t9, -0x7ca0(gp)        |         t9 = sym.imp.g_key_file_get_integer;
                                         |         /* str.sample_time */
    0x000102a4 addiu a2, a2, 0x6500      |         a2 += 0x6500;
    0x000102a8 move a0, s3               |         a0 = s3;
    0x000102ac jalr t9                   |         t9 ();
    0x000102b0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000102b4 lw s2, 0x2c(sp)           |         s2 = *(var_2ch);
    0x000102b8 move a0, s0               |         a0 = s0;
    0x000102bc lw t9, -0x7be8(gp)        |         t9 = sym.imp.g_clear_error;
    0x000102c0 sw v0, 0x11c(s2)          |         *(s2) = v0;
    0x000102c4 jalr t9                   |         t9 ();
    0x000102c8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000102cc move a2, s0               |         a2 = s0;
    0x000102d0 move a1, s3               |         a1 = s3;
    0x000102d4 lw t9, -0x7f20(gp)        |         t9 = sym.led_base_conf_temp_sensor_ids;
    0x000102d8 move a0, s2               |         a0 = s2;
    0x000102dc bal 0x7bec                |         sym_led_base_conf_temp_sensor_ids ();
    0x000102e0 slti v0, v0, 3            |         v0 = (v0 < 3) ? 1 : 0;
    0x000102e4 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x000102e8 beqz v0, 0x10660          |             goto label_15;
                                         |         }
                                         | label_1:
    0x000102ec lw t9, -0x7be8(gp)        |         t9 = sym.imp.g_clear_error;
    0x000102f0 move a0, s0               |         a0 = s0;
    0x000102f4 jalr t9                   |         t9 ();
    0x000102f8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000102fc move a3, s0               |         a3 = s0;
                                         |         /* str.regulator */
    0x00010300 addiu a1, s7, 0x4de4      |         a1 = s7 + 0x4de4;
    0x00010304 lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x00010308 lw t9, -0x7c24(gp)        |         t9 = sym.imp.g_key_file_get_double;
                                         |         /* esilref: 'k_p' */
    0x0001030c addiu a2, a2, 0x6544      |         a2 += 0x6544;
    0x00010310 move a0, s3               |         a0 = s3;
    0x00010314 jalr t9                   |         t9 ();
    0x00010318 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0001031c sw v0, 0x150(s1)          |         *(s1) = v0;
    0x00010320 sw v1, 0x154(s1)          |         *((s1 + 85)) = v1;
    0x00010324 lw t9, -0x7be8(gp)        |         t9 = sym.imp.g_clear_error;
    0x00010328 move a0, s0               |         a0 = s0;
    0x0001032c jalr t9                   |         t9 ();
    0x00010330 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010334 move a3, s0               |         a3 = s0;
                                         |         /* str.regulator */
    0x00010338 addiu a1, s7, 0x4de4      |         a1 = s7 + 0x4de4;
    0x0001033c lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x00010340 lw t9, -0x7c24(gp)        |         t9 = sym.imp.g_key_file_get_double;
                                         |         /* esilref: 'k_i' */
    0x00010344 addiu a2, a2, 0x6548      |         a2 += 0x6548;
    0x00010348 move a0, s3               |         a0 = s3;
    0x0001034c jalr t9                   |         t9 ();
    0x00010350 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010354 sw v0, 0x158(s1)          |         *((s1 + 86)) = v0;
    0x00010358 sw v1, 0x15c(s1)          |         *((s1 + 87)) = v1;
    0x0001035c lw t9, -0x7be8(gp)        |         t9 = sym.imp.g_clear_error;
    0x00010360 move a0, s0               |         a0 = s0;
    0x00010364 jalr t9                   |         t9 ();
    0x00010368 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0001036c move a3, s0               |         a3 = s0;
                                         |         /* str.regulator */
    0x00010370 addiu a1, s7, 0x4de4      |         a1 = s7 + 0x4de4;
    0x00010374 lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x00010378 lw t9, -0x7c24(gp)        |         t9 = sym.imp.g_key_file_get_double;
                                         |         /* esilref: 'k_d' */
    0x0001037c addiu a2, a2, 0x654c      |         a2 += 0x654c;
    0x00010380 move a0, s3               |         a0 = s3;
    0x00010384 jalr t9                   |         t9 ();
    0x00010388 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0001038c sw v0, 0x160(s1)          |         *((s1 + 88)) = v0;
    0x00010390 sw v1, 0x164(s1)          |         *((s1 + 89)) = v1;
    0x00010394 lw t9, -0x7be8(gp)        |         t9 = sym.imp.g_clear_error;
    0x00010398 move a0, s0               |         a0 = s0;
    0x0001039c jalr t9                   |         t9 ();
    0x000103a0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000103a4 move a3, s0               |         a3 = s0;
                                         |         /* str.regulator */
    0x000103a8 addiu a1, s7, 0x4de4      |         a1 = s7 + 0x4de4;
    0x000103ac lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x000103b0 lw t9, -0x7c24(gp)        |         t9 = sym.imp.g_key_file_get_double;
                                         |         /* str.ref_temp */
    0x000103b4 addiu a2, a2, 0x6550      |         a2 += 0x6550;
    0x000103b8 move a0, s3               |         a0 = s3;
    0x000103bc jalr t9                   |         t9 ();
    0x000103c0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000103c4 sw v1, 0x16c(s1)          |         *((s1 + 91)) = v1;
    0x000103c8 sw v0, 0x168(s1)          |         *((s1 + 90)) = v0;
    0x000103cc lw t9, -0x7be8(gp)        |         t9 = sym.imp.g_clear_error;
    0x000103d0 lw s2, -0x7fc4(gp)        |         s2 = *(gp);
    0x000103d4 move a0, s0               |         a0 = s0;
    0x000103d8 jalr t9                   |         t9 ();
    0x000103dc lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000103e0 move a3, s0               |         a3 = s0;
                                         |         /* str.poe_class_present */
    0x000103e4 addiu a2, s2, 0x68c4      |         a2 = s2 + 0x68c4;
    0x000103e8 lw t9, -0x7b94(gp)        |         t9 = sym.imp.g_key_file_has_key;
                                         |         /* str.regulator */
    0x000103ec addiu a1, s7, 0x4de4      |         a1 = s7 + 0x4de4;
    0x000103f0 move a0, s3               |         a0 = s3;
    0x000103f4 jalr t9                   |         t9 ();
    0x000103f8 lw v1, 0x48(sp)           |         v1 = *(var_48h);
    0x000103fc lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010400 move s6, v0               |         s6 = v0;
                                         |         if (v1 != 0) {
    0x00010404 beqz v1, 0x10418          |             
    0x00010408 lw t9, -0x7be8(gp)        |             t9 = sym.imp.g_clear_error;
    0x0001040c move a0, s0               |             a0 = s0;
    0x00010410 jalr t9                   |             t9 ();
    0x00010414 lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |         }
    0x00010418 addiu v1, zero, 1         |         v1 = 1;
    0x0001041c lw t9, -0x7cf4(gp)        |         t9 = sym.imp.g_key_file_get_boolean;
                                         |         if (s6 == v1) {
    0x00010420 beq s6, v1, 0x108c0       |             goto label_16;
                                         |         }
                                         | label_5:
    0x00010424 lw t9, -0x7dac(gp)        |         t9 = sym.imp.g_key_file_free;
    0x00010428 move a0, s3               |         a0 = s3;
    0x0001042c jalr t9                   |         t9 ();
    0x00010430 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010434 lw v0, 0x2c(sp)           |         v0 = *(var_2ch);
    0x00010438 move a2, zero             |         a2 = 0;
    0x0001043c lw a1, -0x7fc4(gp)        |         a1 = *(gp);
    0x00010440 lw t9, -0x7c08(gp)        |         t9 = sym.imp.g_strconcat;
    0x00010444 lw a0, 0x98(v0)           |         a0 = *((v0 + 38));
                                         |         /* str._AAID */
    0x00010448 addiu a1, a1, 0x4874      |         a1 += 0x4874;
    0x0001044c jalr t9                   |         t9 ();
    0x00010450 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010454 sw v0, 0x24(sp)           |         *(var_24h) = v0;
    0x00010458 addiu a2, sp, 0x60        |         a2 = sp + 0x60;
    0x0001045c lw t9, -0x7bc8(gp)        |         t9 = sym.imp.__xstat;
    0x00010460 move a1, v0               |         a1 = v0;
    0x00010464 addiu a0, zero, 3         |         a0 = 3;
    0x00010468 jalr t9                   |         t9 ();
    0x0001046c sw v0, 0x20(sp)           |         *(var_20h) = v0;
    0x00010470 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00010474 beqz v0, 0x105f0          |             goto label_17;
                                         |         }
    0x00010478 addiu v0, zero, 1         |         v0 = 1;
    0x0001047c sw v0, 0x170(s1)          |         *((s1 + 92)) = v0;
    0x00010480 sw v0, 0x20(sp)           |         *(var_20h) = v0;
                                         | label_0:
    0x00010484 lw v1, -0x7fc4(gp)        |         v1 = *(gp);
    0x00010488 addiu s5, sp, 0xf4        |         s5 = sp + 0xf4;
                                         |         /* str._etc_lightd_illumination.conf */
    0x0001048c addiu v0, v1, 0x48ac      |         v0 = v1 + 0x48ac;
    0x00010490 lw t1, 0x48ac(v1)         |         t1 = *((v1 + 4651));
    0x00010494 lw a0, 0x14(v0)           |         a0 = *((v0 + 5));
    0x00010498 sw t1, 0xf4(sp)           |         *(var_f4h) = t1;
    0x0001049c lw t0, 4(v0)              |         t0 = *((v0 + 1));
    0x000104a0 lw a3, 8(v0)              |         a3 = *((v0 + 2));
    0x000104a4 lw a2, 0xc(v0)            |         a2 = *((v0 + 3));
    0x000104a8 lw a1, 0x10(v0)           |         a1 = *((v0 + 4));
    0x000104ac lw v1, 0x18(v0)           |         v1 = *((v0 + 6));
    0x000104b0 sw a0, 0x14(s5)           |         *((s5 + 5)) = a0;
    0x000104b4 lhu v0, 0x1c(v0)          |         v0 = *((v0 + 14));
    0x000104b8 lw a0, -0x7fc4(gp)        |         a0 = *(gp);
    0x000104bc lw t9, -0x7d64(gp)        |         t9 = sym.imp.bootblock_get;
    0x000104c0 sw t0, 4(s5)              |         *((s5 + 1)) = t0;
    0x000104c4 sw a3, 8(s5)              |         *((s5 + 2)) = a3;
    0x000104c8 sw a2, 0xc(s5)            |         *((s5 + 3)) = a2;
    0x000104cc sw a1, 0x10(s5)           |         *((s5 + 4)) = a1;
    0x000104d0 sw v1, 0x18(s5)           |         *((s5 + 6)) = v1;
    0x000104d4 sh v0, 0x1c(s5)           |         *((s5 + 14)) = v0;
                                         |         /* str.OPTICS */
    0x000104d8 addiu a0, a0, 0x695c      |         a0 += 0x695c;
    0x000104dc jalr t9                   |         t9 ();
    0x000104e0 move s2, v0               |         s2 = v0;
    0x000104e4 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x000104e8 beqz v0, 0x1070c          |             goto label_18;
                                         |         }
    0x000104ec lw t9, -0x7ce4(gp)        |         t9 = sym.imp.strlen;
    0x000104f0 move a0, s5               |         a0 = s5;
    0x000104f4 jalr t9                   |         t9 ();
    0x000104f8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000104fc addu v0, s5, v0           |         v0 = s5 + v0;
    0x00010500 addiu v1, zero, 0x2e      |         v1 = 0x2e;
    0x00010504 lw t9, -0x7d20(gp)        |         t9 = sym.imp.__strcpy_chk
    0x00010508 sb v1, (v0)               |         *(v0) = v1;
    0x0001050c sb zero, 1(v0)            |         *((v0 + 1)) = 0;
    0x00010510 addiu a2, zero, 0xfe      |         a2 = 0xfe;
    0x00010514 move a1, s2               |         a1 = s2;
    0x00010518 addiu a0, v0, 1           |         a0 = v0 + 1;
    0x0001051c jalr t9                   |         t9 ();
    0x00010520 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         | label_4:
    0x00010524 lw t9, -0x7be4(gp)        |         t9 = sym.imp.g_strdup;
    0x00010528 move a0, s5               |         a0 = s5;
    0x0001052c jalr t9                   |         t9 ();
    0x00010530 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010534 lw v1, -0x7fd4(gp)        |         v1 = *((gp - 8181));
    0x00010538 lw t9, -0x7be0(gp)        |         t9 = sym.imp.g_key_file_new;
    0x0001053c sw v0, -0x69d4(v1)        |         *((v1 - 6773)) = v0;
    0x00010540 jalr t9                   |         t9 ();
    0x00010544 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010548 move a2, s0               |         a2 = s0;
    0x0001054c addiu a1, s4, 0x4060      |         a1 = s4 + 0x4060;
    0x00010550 lw t9, -0x7c34(gp)        |         t9 = sym.imp.g_io_channel_new_file;
    0x00010554 move a0, s5               |         a0 = s5;
    0x00010558 move s3, v0               |         s3 = v0;
    0x0001055c jalr t9                   |         t9 ();
    0x00010560 move s2, v0               |         s2 = v0;
    0x00010564 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00010568 beqz v0, 0x10bd8          |             goto label_19;
                                         |         }
    0x0001056c lw t9, -0x7bac(gp)        |         t9 = sym.imp.g_io_channel_set_encoding;
    0x00010570 move a2, zero             |         a2 = 0;
    0x00010574 move a1, zero             |         a1 = 0;
    0x00010578 move a0, v0               |         a0 = v0;
    0x0001057c jalr t9                   |         t9 ();
    0x00010580 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010584 lw a2, 0x30(sp)           |         a2 = *(var_30h_2);
    0x00010588 move a3, s0               |         a3 = s0;
    0x0001058c lw t9, -0x7c04(gp)        |         t9 = sym.imp.g_io_channel_read_to_end;
    0x00010590 move a1, fp               |         a1 = fp;
    0x00010594 move a0, s2               |         a0 = s2;
    0x00010598 jalr t9                   |         t9 ();
    0x0001059c addiu v1, zero, 1         |         v1 = 1;
    0x000105a0 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == v1) {
    0x000105a4 beq v0, v1, 0x10748       |             goto label_20;
                                         |         }
    0x000105a8 lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x000105ac lw t9, -0x7d30(gp)        |         t9 = sym.imp.__syslog_chk;
    0x000105b0 addiu a0, zero, 3         |         a0 = 3;
                                         |         /* str.Failed_reading_file */
    0x000105b4 addiu a2, a2, 0x6448      |         a2 += 0x6448;
    0x000105b8 addiu a1, zero, 1         |         a1 = 1;
    0x000105bc jalr t9                   |         t9 ();
    0x000105c0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000105c4 lw a0, 0x48(sp)           |         a0 = *(var_48h);
    0x000105c8 lw t9, -0x7dbc(gp)        |         t9 = sym.imp.g_error_free;
                                         | label_3:
    0x000105cc sw zero, 0x20(sp)         |         *(var_20h) = 0;
                                         | label_7:
    0x000105d0 jalr t9                   |         t9 ();
    0x000105d4 nop                       |         
    0x000105d8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000105dc lw t9, -0x7d94(gp)        |         t9 = sym.imp.g_io_channel_unref;
    0x000105e0 move a0, s2               |         a0 = s2;
    0x000105e4 jalr t9                   |         t9 ();
    0x000105e8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000105ec b 0x101f4                 |         
                                         |     } while (1);
                                         | label_17:
    0x000105f0 lw t9, -0x7b84(gp)        |     t9 = sym.imp.open;
    0x000105f4 lw a0, 0x24(sp)           |     a0 = *(var_24h);
    0x000105f8 move a1, zero             |     a1 = 0;
    0x000105fc jalr t9                   |     t9 ();
    0x00010600 move s2, v0               |     s2 = v0;
    0x00010604 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010608 bgez v0, 0x10870          |     
                                         |     while (v1 != v0) {
    0x0001060c lw a0, -0x7fc4(gp)        |         a0 = *(gp);
    0x00010610 lw t9, -0x7d1c(gp)        |         t9 = sym.imp.g_quark_from_static_string;
                                         |         /* str.light_control_error_quark */
    0x00010614 addiu a0, a0, 0x414c      |         a0 += 0x414c;
    0x00010618 jalr t9                   |         t9 ();
    0x0001061c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010620 move a1, v0               |         a1 = v0;
    0x00010624 addiu a2, zero, 6         |         a2 = 6;
    0x00010628 lw a3, -0x7fc4(gp)        |         a3 = *(gp);
    0x0001062c lw t9, -0x7d04(gp)        |         t9 = sym.imp.g_set_error;
                                         |         /* str.No_IR_light_PCB_found */
    0x00010630 addiu a3, a3, 0x4168      |         a3 += 0x4168;
    0x00010634 move a0, s5               |         a0 = s5;
    0x00010638 jalr t9                   |         t9 ();
    0x0001063c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010640 addiu a1, zero, 1         |         a1 = 1;
    0x00010644 addiu a0, zero, 6         |         a0 = 6;
    0x00010648 lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x0001064c lw t9, -0x7d30(gp)        |         t9 = sym.imp.__syslog_chk;
                                         |         /* str.Could_not_find_MCU_driver */
    0x00010650 addiu a2, a2, 0x642c      |         a2 += 0x642c;
    0x00010654 jalr t9                   |         t9 ();
    0x00010658 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0001065c b 0x10484                 |         goto label_0;
                                         | label_15:
    0x00010660 lw v0, 0x2c(sp)           |         v0 = *(var_2ch);
    0x00010664 lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x00010668 lw t9, -0x7d30(gp)        |         t9 = sym.imp.__syslog_chk;
    0x0001066c lw a3, 0x128(v0)          |         a3 = *((v0 + 74));
                                         |         /* str.Expected_at_most_2_temperature_sensors__but_found__d. */
    0x00010670 addiu a2, a2, 0x6720      |         a2 += 0x6720;
    0x00010674 addiu a1, zero, 1         |         a1 = 1;
    0x00010678 addiu a0, zero, 4         |         a0 = 4;
    0x0001067c jalr t9                   |         t9 ();
    0x00010680 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010684 b 0x102ec                 |         goto label_1;
                                         | label_11:
    0x00010688 lw v0, 0x48(sp)           |         v0 = *(var_48h);
    0x0001068c lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x00010690 lw t9, -0x7d30(gp)        |         t9 = sym.imp.__syslog_chk;
    0x00010694 lw v0, 8(v0)              |         v0 = *((v0 + 2));
                                         |         /* str._etc_lightd_dimming.conf */
    0x00010698 addiu a3, s7, 0x64dc      |         a3 = s7 + 0x64dc;
                                         |         /* str.could_not_open__s:__s */
    0x0001069c addiu a2, a2, 0x48cc      |         a2 += 0x48cc;
    0x000106a0 addiu a1, zero, 1         |         a1 = 1;
    0x000106a4 addiu a0, zero, 3         |         a0 = 3;
    0x000106a8 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x000106ac jalr t9                   |         t9 ();
    0x000106b0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000106b4 lw a0, 0x48(sp)           |         a0 = *(var_48h);
    0x000106b8 lw t9, -0x7dbc(gp)        |         t9 = sym.imp.g_error_free;
    0x000106bc sw zero, 0x24(sp)         |         *(var_24h) = 0;
    0x000106c0 jalr t9                   |         t9 ();
    0x000106c4 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000106c8 sw zero, 0x20(sp)         |         *(var_20h) = 0;
    0x000106cc b 0x101f4                 |         goto label_2;
                                         | label_14:
    0x000106d0 lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x000106d4 lw t9, -0x7d30(gp)        |         t9 = sym.imp.__syslog_chk;
                                         |         /* str.Could_not_load_data_to_GKeyFile */
    0x000106d8 addiu a2, a2, 0x48f8      |         a2 += 0x48f8;
    0x000106dc addiu a1, zero, 1         |         a1 = 1;
    0x000106e0 addiu a0, zero, 3         |         a0 = 3;
    0x000106e4 jalr t9                   |         t9 ();
    0x000106e8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000106ec lw a0, 0x48(sp)           |         a0 = *(var_48h);
    0x000106f0 lw t9, -0x7dbc(gp)        |         t9 = sym.imp.g_error_free;
    0x000106f4 sw zero, 0x24(sp)         |         *(var_24h) = 0;
    0x000106f8 jalr t9                   |         t9 ();
    0x000106fc lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010700 lw a0, 0x4c(sp)           |         a0 = *(var_4ch);
    0x00010704 lw t9, -0x7b7c(gp)        |         t9 = sym.imp.g_free;
    0x00010708 b 0x105cc                 |         goto label_3;
                                         | label_18:
    0x0001070c lw t9, -0x7b78(gp)        |         t9 = sym.imp.__errno_location;
    0x00010710 jalr t9                   |         t9 ();
    0x00010714 nop                       |         
    0x00010718 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0001071c lw v1, (v0)               |         v1 = *(v0);
    0x00010720 addiu v0, zero, 2         |         v0 = 2;
    0x00010724 lw t9, -0x7d30(gp)        |         t9 = sym.imp.__syslog_chk;
                                         |         if (v1 == v0) {
    0x00010728 beq v1, v0, 0x10c1c       |             goto label_21;
                                         |         }
    0x0001072c lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x00010730 addiu a1, zero, 1         |         a1 = 1;
                                         |         /* str.Error_reading_optics_bootblock_parameter___using_default_config */
    0x00010734 addiu a2, a2, 0x69a0      |         a2 += 0x69a0;
    0x00010738 addiu a0, zero, 4         |         a0 = 4;
    0x0001073c jalr t9                   |         t9 ();
    0x00010740 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010744 b 0x10524                 |         goto label_4;
                                         | label_20:
    0x00010748 lw t9, -0x7e2c(gp)        |         t9 = sym.imp.g_key_file_load_from_data;
    0x0001074c lw a2, 0x50(sp)           |         a2 = *(var_50h);
    0x00010750 lw a1, 0x4c(sp)           |         a1 = *(var_4ch);
    0x00010754 sw s0, 0x10(sp)           |         *(var_10h) = s0;
    0x00010758 move a3, zero             |         a3 = 0;
    0x0001075c move a0, s3               |         a0 = s3;
    0x00010760 jalr t9                   |         t9 ();
    0x00010764 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00010768 beqz v0, 0x10c38          |             goto label_22;
                                         |         }
    0x0001076c lw t9, -0x7b7c(gp)        |         t9 = sym.imp.g_free;
    0x00010770 lw s4, -0x7fc4(gp)        |         s4 = *(gp);
    0x00010774 lw a0, 0x4c(sp)           |         a0 = *(var_4ch);
    0x00010778 jalr t9                   |         t9 ();
    0x0001077c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010780 lw t9, -0x7d94(gp)        |         t9 = sym.imp.g_io_channel_unref;
    0x00010784 move a0, s2               |         a0 = s2;
    0x00010788 jalr t9                   |         t9 ();
    0x0001078c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010790 move a3, s0               |         a3 = s0;
                                         |         /* esilref: 'info' */
    0x00010794 addiu a1, s4, 0x7014      |         a1 = s4 + 0x7014;
    0x00010798 lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x0001079c lw t9, -0x7ca0(gp)        |         t9 = sym.imp.g_key_file_get_integer;
                                         |         /* str.angle_div */
    0x000107a0 addiu a2, a2, 0x69e0      |         a2 += 0x69e0;
    0x000107a4 move a0, s3               |         a0 = s3;
    0x000107a8 jalr t9                   |         t9 ();
    0x000107ac lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000107b0 move a3, s0               |         a3 = s0;
                                         |         /* esilref: 'info' */
    0x000107b4 addiu a1, s4, 0x7014      |         a1 = s4 + 0x7014;
    0x000107b8 lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x000107bc lw t9, -0x7ca0(gp)        |         t9 = sym.imp.g_key_file_get_integer;
                                         |         /* str.intensity_div */
    0x000107c0 addiu a2, a2, 0x69ec      |         a2 += 0x69ec;
    0x000107c4 move a0, s3               |         a0 = s3;
    0x000107c8 sw v0, 0x148(s1)          |         *((s1 + 82)) = v0;
    0x000107cc jalr t9                   |         t9 ();
    0x000107d0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000107d4 addiu a1, sp, 0x54        |         a1 = sp + 0x54;
    0x000107d8 move a0, s3               |         a0 = s3;
    0x000107dc lw t9, -0x7d40(gp)        |         t9 = sym.imp.g_key_file_get_groups;
    0x000107e0 sw v0, 0x14c(s1)          |         *((s1 + 83)) = v0;
    0x000107e4 jalr t9                   |         t9 ();
    0x000107e8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000107ec sw v0, 0x3c(sp)           |         *(var_3ch_2) = v0;
    0x000107f0 lw a1, 4(v0)              |         a1 = *((v0 + 1));
    0x000107f4 lw v0, 0x54(sp)           |         v0 = *(var_54h);
    0x000107f8 addiu a2, sp, 0x58        |         a2 = sp + 0x58;
    0x000107fc lw t9, -0x7ba0(gp)        |         t9 = sym.imp.g_key_file_get_keys;
    0x00010800 addiu v0, v0, -1          |         v0 += -1;
    0x00010804 sw a2, 0x38(sp)           |         *(var_38h_2) = a2;
    0x00010808 move a3, s0               |         a3 = s0;
    0x0001080c move a0, s3               |         a0 = s3;
    0x00010810 sw v0, 0x54(sp)           |         *(var_54h) = v0;
    0x00010814 jalr t9                   |         t9 ();
    0x00010818 lw v1, 0x48(sp)           |         v1 = *(var_48h);
    0x0001081c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010820 move s2, v0               |         s2 = v0;
                                         |         if (v1 == 0) {
    0x00010824 beqz v1, 0x108e0          |             goto label_23;
                                         |         }
    0x00010828 lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x0001082c lw t9, -0x7d30(gp)        |         t9 = sym.imp.__syslog_chk;
    0x00010830 lw a3, 8(v1)              |         a3 = *((v1 + 2));
                                         |         /* str.Error___s__parsing_key_file */
    0x00010834 addiu a2, a2, 0x69fc      |         a2 += 0x69fc;
    0x00010838 addiu a1, zero, 1         |         a1 = 1;
    0x0001083c addiu a0, zero, 3         |         a0 = 3;
    0x00010840 jalr t9                   |         t9 ();
    0x00010844 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010848 lw a0, 0x48(sp)           |         a0 = *(var_48h);
    0x0001084c lw t9, -0x7dbc(gp)        |         t9 = sym.imp.g_error_free;
    0x00010850 sw zero, 0x20(sp)         |         *(var_20h) = 0;
    0x00010854 jalr t9                   |         t9 ();
    0x00010858 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0001085c lw t9, -0x7dc4(gp)        |         t9 = sym.imp.g_strfreev;
    0x00010860 move a0, s2               |         a0 = s2;
    0x00010864 jalr t9                   |         t9 ();
    0x00010868 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0001086c b 0x101f4                 |         goto label_2;
    0x00010870 lw t9, -0x7c54(gp)        |         t9 = sym.imp.read;
    0x00010874 addiu a2, zero, 1         |         a2 = 1;
    0x00010878 addiu a1, sp, 0x47        |         a1 = sp + 0x47;
    0x0001087c move a0, v0               |         a0 = v0;
    0x00010880 jalr t9                   |         t9 ();
    0x00010884 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010888 move a0, s2               |         a0 = s2;
    0x0001088c lw t9, -0x7d38(gp)        |         t9 = sym.imp.close;
    0x00010890 move s2, v0               |         s2 = v0;
    0x00010894 jalr t9                   |         t9 ();
    0x00010898 lb v1, 0x47(sp)           |         v1 = *(var_47h);
    0x0001089c addiu v0, zero, 0x31      |         v0 = 0x31;
    0x000108a0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000108a4 bne v1, v0, 0x1060c       |         
                                         |     }
    0x000108a8 lw v0, 0x174(s1)          |     v0 = *(s1);
    0x000108ac addiu v0, zero, 0x33      |     v0 = 0x33;
                                         |     if (v0 != 0) {
    0x000108b0 bnez v0, 0x10ca0          |         goto label_24;
                                         |     }
    0x000108b4 sh v0, 0xf0(sp)           |     *(var_f0h) = v0;
    0x000108b8 sw s2, 0x20(sp)           |     *(var_20h) = s2;
    0x000108bc b 0x10484                 |     goto label_0;
                                         | label_16:
    0x000108c0 move a3, s0               |     a3 = s0;
                                         |     /* str.poe_class_present */
    0x000108c4 addiu a2, s2, 0x68c4      |     a2 = s2 + 0x68c4;
                                         |     /* str.regulator */
    0x000108c8 addiu a1, s7, 0x4de4      |     a1 = s7 + 0x4de4;
    0x000108cc move a0, s3               |     a0 = s3;
    0x000108d0 jalr t9                   |     t9 ();
    0x000108d4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000108d8 sw v0, 0x174(s1)          |     *(s1) = v0;
    0x000108dc b 0x10424                 |     goto label_5;
                                         | label_23:
    0x000108e0 lw t9, -0x7dc4(gp)        |     t9 = sym.imp.g_strfreev;
    0x000108e4 move a0, v0               |     a0 = v0;
    0x000108e8 jalr t9                   |     t9 ();
    0x000108ec lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000108f0 lw a0, 0x54(sp)           |     a0 = *(var_54h);
    0x000108f4 lw t9, -0x7c38(gp)        |     t9 = sym.imp.g_malloc;
    0x000108f8 sll a0, a0, 2             |     a0 <<= 2;
    0x000108fc jalr t9                   |     t9 ();
    0x00010900 move s2, v0               |     s2 = v0;
    0x00010904 lw a0, 0x54(sp)           |     a0 = *(var_54h);
    0x00010908 lw v0, 0x58(sp)           |     v0 = *(var_58h);
    0x0001090c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010910 mul a0, a0, v0            |     __asm ("mul a0, a0, v0");
    0x00010914 sw s2, 0x144(s1)          |     *((s1 + 81)) = s2;
    0x00010918 lw t9, -0x7c38(gp)        |     t9 = sym.imp.g_malloc;
    0x0001091c sll a0, a0, 3             |     a0 <<= 3;
    0x00010920 jalr t9                   |     t9 ();
    0x00010924 lw v1, 0x54(sp)           |     v1 = *(var_54h);
    0x00010928 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0001092c sw v0, (s2)               |     *(s2) = v0;
    0x00010930 sltiu v0, v1, 2           |     v0 = (v1 < 2) ? 1 : 0;
    0x00010934 lw a2, 0x58(sp)           |     a2 = *(var_58h);
                                         |     if (v0 != 0) {
    0x00010938 bnez v0, 0x10d78          |         goto label_25;
                                         |     }
    0x0001093c lw a3, 0x144(s1)          |     a3 = *((s1 + 81));
    0x00010940 sll a2, a2, 3             |     a2 <<= 3;
    0x00010944 sll v1, v1, 2             |     v1 <<= 2;
    0x00010948 addiu v0, a3, 4           |     v0 = a3 + 4;
    0x0001094c addu a1, a3, v1           |     a1 = a3 + v1;
    0x00010950 move a0, a2               |     a0 = a2;
                                         |     do {
    0x00010954 lw v1, (a3)               |         v1 = *(a3);
    0x00010958 addiu v0, v0, 4           |         v0 += 4;
    0x0001095c addu v1, v1, a0           |         v1 += a0;
    0x00010960 sw v1, -4(v0)             |         *((v0 - 1)) = v1;
    0x00010964 addu a0, a0, a2           |         a0 += a2;
    0x00010968 bne a1, v0, 0x10954       |         
                                         |     } while (a1 != v0);
    0x0001096c lw v0, 0x3c(sp)           |     v0 = *(var_3ch_2);
                                         | label_9:
    0x00010970 sw zero, 0x30(sp)         |     *(var_30h_2) = 0;
    0x00010974 addiu s5, v0, 4           |     s5 = v0 + 4;
    0x00010978 addiu fp, sp, 0x5c        |     fp = sp + 0x5c;
    0x0001097c lw t9, -0x7ba0(gp)        |     t9 = sym.imp.g_key_file_get_keys;
                                         | label_6:
    0x00010980 lw a1, (s5)               |     a1 = *(s5);
    0x00010984 lw a2, 0x38(sp)           |     a2 = *(var_38h_2);
    0x00010988 move a3, s0               |     a3 = s0;
    0x0001098c move a0, s3               |     a0 = s3;
    0x00010990 jalr t9                   |     t9 ();
    0x00010994 lw v1, 0x58(sp)           |     v1 = *(var_58h);
    0x00010998 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0001099c sw v0, 0x34(sp)           |     *(var_34h_2) = v0;
                                         |     if (v1 == 0) {
    0x000109a0 beqz v1, 0x10a68          |         goto label_26;
                                         |     }
    0x000109a4 move s2, v0               |     s2 = v0;
    0x000109a8 move s4, zero             |     s4 = 0;
                                         |     do {
    0x000109ac lw t9, -0x7c0c(gp)        |         t9 = sym.imp.g_key_file_get_integer_list;
    0x000109b0 lw a2, (s2)               |         a2 = *(s2);
    0x000109b4 lw a1, (s5)               |         a1 = *(s5);
    0x000109b8 move a3, fp               |         a3 = fp;
    0x000109bc move a0, s3               |         a0 = s3;
    0x000109c0 sw s0, 0x10(sp)           |         *(var_10h) = s0;
    0x000109c4 jalr t9                   |         t9 ();
    0x000109c8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000109cc lw a0, (s5)               |         a0 = *(s5);
    0x000109d0 addiu a2, zero, 0xa       |         a2 = 0xa;
    0x000109d4 lw t9, -0x7c60(gp)        |         t9 = sym.imp.strtol;
    0x000109d8 move a1, zero             |         a1 = 0;
    0x000109dc move s7, v0               |         s7 = v0;
    0x000109e0 jalr t9                   |         t9 ();
    0x000109e4 lw v1, 0x148(s1)          |         v1 = *((s1 + 82));
    0x000109e8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000109ec div zero, v0, v1          |         __asm ("div zero, v0, v1");
    0x000109f0 teq v1, zero, 7           |         __asm ("teq v1, zero, 7");
    0x000109f4 lw a0, (s2)               |         a0 = *(s2);
    0x000109f8 lw t9, -0x7c60(gp)        |         t9 = sym.imp.strtol;
    0x000109fc addiu a2, zero, 0xa       |         a2 = 0xa;
    0x00010a00 move a1, zero             |         a1 = 0;
    0x00010a04 addiu s4, s4, 1           |         s4++;
    0x00010a08 addiu s2, s2, 4           |         s2 += 4;
    0x00010a0c mflo s6                   |         __asm ("mflo s6");
    0x00010a10 jalr t9                   |         t9 ();
    0x00010a14 lw a1, 0x14c(s1)          |         a1 = *((s1 + 83));
    0x00010a18 lw v1, 0x144(s1)          |         v1 = *((s1 + 81));
    0x00010a1c div zero, v0, a1          |         __asm ("div zero, v0, a1");
    0x00010a20 teq a1, zero, 7           |         __asm ("teq a1, zero, 7");
    0x00010a24 sll a3, s6, 2             |         a3 = s6 << 2;
    0x00010a28 lw a2, (s7)               |         a2 = *(s7);
    0x00010a2c lwx v1, a3(v1)            |         __asm ("lwx v1, a3(v1)");
    0x00010a30 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010a34 move a0, s7               |         a0 = s7;
    0x00010a38 lw t9, -0x7b7c(gp)        |         t9 = sym.imp.g_free;
    0x00010a3c mflo v0                   |         __asm ("mflo v0");
    0x00010a40 sll v0, v0, 3             |         v0 <<= 3;
    0x00010a44 addu v0, v1, v0           |         v0 = v1 + v0;
    0x00010a48 sw a2, (v0)               |         *(v0) = a2;
    0x00010a4c lw v1, 4(s7)              |         v1 = *((s7 + 1));
    0x00010a50 sw v1, 4(v0)              |         *((v0 + 1)) = v1;
    0x00010a54 jalr t9                   |         t9 ();
    0x00010a58 lw v0, 0x58(sp)           |         v0 = *(var_58h);
    0x00010a5c sltu v0, s4, v0           |         v0 = (s4 < v0) ? 1 : 0;
    0x00010a60 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010a64 bnez v0, 0x109ac          |         
                                         |     } while (v0 != 0);
                                         | label_26:
    0x00010a68 lw t9, -0x7dc4(gp)        |     t9 = sym.imp.g_strfreev;
    0x00010a6c lw a0, 0x34(sp)           |     a0 = *(var_34h_2);
    0x00010a70 addiu s5, s5, 4           |     s5 += 4;
    0x00010a74 jalr t9                   |     t9 ();
    0x00010a78 lw v0, 0x30(sp)           |     v0 = *(var_30h_2);
    0x00010a7c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010a80 addiu v0, v0, 1           |     v0++;
    0x00010a84 move v1, v0               |     v1 = v0;
    0x00010a88 sw v0, 0x30(sp)           |     *(var_30h_2) = v0;
    0x00010a8c lw v0, 0x54(sp)           |     v0 = *(var_54h);
    0x00010a90 sltu v0, v1, v0           |     v0 = (v1 < v0) ? 1 : 0;
    0x00010a94 lw t9, -0x7ba0(gp)        |     t9 = sym.imp.g_key_file_get_keys;
                                         |     if (v0 != 0) {
    0x00010a98 bnez v0, 0x10980          |         goto label_6;
                                         |     }
    0x00010a9c lw t9, -0x7dc4(gp)        |     t9 = sym.imp.g_strfreev;
                                         | label_8:
    0x00010aa0 lw a0, 0x3c(sp)           |     a0 = *(var_3ch_2);
    0x00010aa4 jalr t9                   |     t9 ();
    0x00010aa8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010aac lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00010ab0 lw t9, -0x7e00(gp)        |     t9 = sym.imp.getpwnam;
                                         |     /* str.light */
    0x00010ab4 addiu a0, a0, 0x3eec      |     a0 += sym._init;
    0x00010ab8 jalr t9                   |     t9 ();
    0x00010abc lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00010ac0 beqz v0, 0x10d54          |         goto label_27;
                                         |     }
    0x00010ac4 lw v1, 0x2c(sp)           |     v1 = *(var_2ch);
    0x00010ac8 lw a1, -0x7fc4(gp)        |     a1 = *(gp);
    0x00010acc lw t9, -0x7c08(gp)        |     t9 = sym.imp.g_strconcat;
    0x00010ad0 lw a0, 0x98(v1)           |     a0 = *((v1 + 38));
    0x00010ad4 move a2, zero             |     a2 = 0;
                                         |     /* str._led0 */
    0x00010ad8 addiu a1, a1, 0x64b4      |     a1 += 0x64b4;
    0x00010adc lw s0, 0xc(v0)            |     s0 = *((v0 + 3));
    0x00010ae0 jalr t9                   |     t9 ();
    0x00010ae4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010ae8 sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x00010aec move a2, s0               |     a2 = s0;
    0x00010af0 lw t9, -0x7dfc(gp)        |     t9 = sym.imp.chown;
    0x00010af4 addiu a1, zero, -1        |     a1 = -1;
    0x00010af8 move a0, v0               |     a0 = v0;
    0x00010afc jalr t9                   |     t9 ();
    0x00010b00 addiu s2, zero, -1        |     s2 = -1;
    0x00010b04 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == s2) {
    0x00010b08 beq v0, s2, 0x10c74       |         goto label_28;
                                         |     }
    0x00010b0c lw t9, -0x7b7c(gp)        |     t9 = sym.imp.g_free;
    0x00010b10 lw a0, 0x24(sp)           |     a0 = *(var_24h);
    0x00010b14 jalr t9                   |     t9 ();
    0x00010b18 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010b1c lw v0, 0x2c(sp)           |     v0 = *(var_2ch);
    0x00010b20 move a2, zero             |     a2 = 0;
    0x00010b24 lw a1, -0x7fc4(gp)        |     a1 = *(gp);
    0x00010b28 lw t9, -0x7c08(gp)        |     t9 = sym.imp.g_strconcat;
    0x00010b2c lw a0, 0x98(v0)           |     a0 = *((v0 + 38));
                                         |     /* str._led1 */
    0x00010b30 addiu a1, a1, 0x6694      |     a1 += 0x6694;
    0x00010b34 jalr t9                   |     t9 ();
    0x00010b38 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010b3c sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x00010b40 move a2, s0               |     a2 = s0;
    0x00010b44 lw t9, -0x7dfc(gp)        |     t9 = sym.imp.chown;
    0x00010b48 addiu a1, zero, -1        |     a1 = -1;
    0x00010b4c move a0, v0               |     a0 = v0;
    0x00010b50 jalr t9                   |     t9 ();
    0x00010b54 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == s2) {
    0x00010b58 beq v0, s2, 0x10c74       |         goto label_28;
                                         |     }
    0x00010b5c lw t9, -0x7b7c(gp)        |     t9 = sym.imp.g_free;
    0x00010b60 lw a0, 0x24(sp)           |     a0 = *(var_24h);
    0x00010b64 jalr t9                   |     t9 ();
    0x00010b68 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010b6c lw v0, 0x2c(sp)           |     v0 = *(var_2ch);
    0x00010b70 move a2, zero             |     a2 = 0;
    0x00010b74 lw a1, -0x7fc4(gp)        |     a1 = *(gp);
    0x00010b78 lw t9, -0x7c08(gp)        |     t9 = sym.imp.g_strconcat;
    0x00010b7c lw a0, 0x98(v0)           |     a0 = *((v0 + 38));
                                         |     /* str._led2 */
    0x00010b80 addiu a1, a1, 0x6a18      |     a1 += 0x6a18;
    0x00010b84 jalr t9                   |     t9 ();
    0x00010b88 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010b8c sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x00010b90 move a2, s0               |     a2 = s0;
    0x00010b94 lw t9, -0x7dfc(gp)        |     t9 = sym.imp.chown;
    0x00010b98 addiu a1, zero, -1        |     a1 = -1;
    0x00010b9c move a0, v0               |     a0 = v0;
    0x00010ba0 jalr t9                   |     t9 ();
    0x00010ba4 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != s2) {
    0x00010ba8 bne v0, s2, 0x101f4       |         goto label_2;
                                         |     }
    0x00010bac lw a2, -0x7fc4(gp)        |     a2 = *(gp);
    0x00010bb0 lw t9, -0x7d30(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00010bb4 lw a3, 0x24(sp)           |     a3 = *(var_24h);
    0x00010bb8 sw s0, 0x10(sp)           |     *(var_10h) = s0;
                                         |     /* str.Failed_to_chown__s_to_gid__d */
    0x00010bbc addiu a2, a2, 0x64bc      |     a2 += 0x64bc;
    0x00010bc0 addiu a1, zero, 1         |     a1 = 1;
    0x00010bc4 addiu a0, zero, 3         |     a0 = 3;
    0x00010bc8 sw zero, 0x20(sp)         |     *(var_20h) = 0;
    0x00010bcc jalr t9                   |     t9 ();
    0x00010bd0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010bd4 b 0x101f4                 |     goto label_2;
                                         | label_19:
    0x00010bd8 lw v0, 0x48(sp)           |     v0 = *(var_48h);
    0x00010bdc lw a2, -0x7fc4(gp)        |     a2 = *(gp);
    0x00010be0 lw t9, -0x7d30(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00010be4 lw v0, 8(v0)              |     v0 = *((v0 + 2));
    0x00010be8 move a3, s5               |     a3 = s5;
                                         |     /* str.could_not_open__s:__s */
    0x00010bec addiu a2, a2, 0x48cc      |     a2 += 0x48cc;
    0x00010bf0 addiu a1, zero, 1         |     a1 = 1;
    0x00010bf4 addiu a0, zero, 3         |     a0 = 3;
    0x00010bf8 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00010bfc jalr t9                   |     t9 ();
    0x00010c00 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010c04 lw a0, 0x48(sp)           |     a0 = *(var_48h);
    0x00010c08 lw t9, -0x7dbc(gp)        |     t9 = sym.imp.g_error_free;
    0x00010c0c sw zero, 0x20(sp)         |     *(var_20h) = 0;
    0x00010c10 jalr t9                   |     t9 ();
    0x00010c14 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010c18 b 0x101f4                 |     goto label_2;
                                         | label_21:
    0x00010c1c lw a2, -0x7fc4(gp)        |     a2 = *(gp);
    0x00010c20 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str.No_optics_bootblock_parameter_found___using_default_config */
    0x00010c24 addiu a2, a2, 0x6964      |     a2 += 0x6964;
    0x00010c28 addiu a0, zero, 6         |     a0 = 6;
    0x00010c2c jalr t9                   |     t9 ();
    0x00010c30 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010c34 b 0x10524                 |     goto label_4;
                                         | label_22:
    0x00010c38 lw a2, -0x7fc4(gp)        |     a2 = *(gp);
    0x00010c3c lw t9, -0x7d30(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.Could_not_load_data_to_GKeyFile */
    0x00010c40 addiu a2, a2, 0x48f8      |     a2 += 0x48f8;
    0x00010c44 addiu a1, zero, 1         |     a1 = 1;
    0x00010c48 addiu a0, zero, 3         |     a0 = 3;
    0x00010c4c jalr t9                   |     t9 ();
    0x00010c50 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010c54 lw a0, 0x48(sp)           |     a0 = *(var_48h);
    0x00010c58 lw t9, -0x7dbc(gp)        |     t9 = sym.imp.g_error_free;
    0x00010c5c sw zero, 0x20(sp)         |     *(var_20h) = 0;
    0x00010c60 jalr t9                   |     t9 ();
    0x00010c64 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010c68 lw a0, 0x4c(sp)           |     a0 = *(var_4ch);
    0x00010c6c lw t9, -0x7b7c(gp)        |     t9 = sym.imp.g_free;
    0x00010c70 b 0x105d0                 |     goto label_7;
                                         | label_28:
    0x00010c74 lw a2, -0x7fc4(gp)        |     a2 = *(gp);
    0x00010c78 lw t9, -0x7d30(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00010c7c lw a3, 0x24(sp)           |     a3 = *(var_24h);
    0x00010c80 sw s0, 0x10(sp)           |     *(var_10h) = s0;
                                         |     /* str.Failed_to_chown__s_to_gid__d */
    0x00010c84 addiu a2, a2, 0x64bc      |     a2 += 0x64bc;
    0x00010c88 addiu a1, zero, 1         |     a1 = 1;
    0x00010c8c addiu a0, zero, 3         |     a0 = 3;
    0x00010c90 jalr t9                   |     t9 ();
    0x00010c94 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010c98 sw zero, 0x20(sp)         |     *(var_20h) = 0;
    0x00010c9c b 0x101f4                 |     goto label_2;
                                         | label_24:
    0x00010ca0 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00010ca4 lw t9, -0x7b84(gp)        |     t9 = sym.imp.open;
    0x00010ca8 move a1, zero             |     a1 = 0;
                                         |     /* str._var_run_poeclass */
    0x00010cac addiu a0, a0, 0x68d8      |     a0 += 0x68d8;
    0x00010cb0 jalr t9                   |     t9 ();
    0x00010cb4 move s3, v0               |     s3 = v0;
    0x00010cb8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 < 0) {
    0x00010cbc bltz v0, 0x10d88          |         goto label_29;
                                         |     }
    0x00010cc0 addiu v1, sp, 0xf0        |     v1 = sp + 0xf0;
    0x00010cc4 lw t9, -0x7c54(gp)        |     t9 = sym.imp.read;
    0x00010cc8 move a1, v1               |     a1 = v1;
    0x00010ccc sw v1, 0x34(sp)           |     *(var_34h_2) = v1;
    0x00010cd0 addiu a2, zero, 1         |     a2 = 1;
    0x00010cd4 move a0, v0               |     a0 = v0;
    0x00010cd8 jalr t9                   |     t9 ();
    0x00010cdc move s2, v0               |     s2 = v0;
    0x00010ce0 addiu v0, zero, 1         |     v0 = 1;
    0x00010ce4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010ce8 lw v1, 0x34(sp)           |     v1 = *(var_34h_2);
                                         |     if (s2 != v0) {
    0x00010cec beq s2, v0, 0x10d14       |         
    0x00010cf0 lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x00010cf4 lw t9, -0x7d30(gp)        |         t9 = sym.imp.__syslog_chk;
                                         |         /* str.Could_not_read_poe_class_value */
    0x00010cf8 addiu a2, a2, 0x6908      |         a2 += 0x6908;
    0x00010cfc addiu a1, zero, 1         |         a1 = 1;
    0x00010d00 addiu a0, zero, 3         |         a0 = 3;
    0x00010d04 jalr t9                   |         t9 ();
    0x00010d08 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00010d0c lw v1, 0x34(sp)           |         v1 = *(var_34h_2);
    0x00010d10 move s2, zero             |         s2 = 0;
                                         |     }
    0x00010d14 lw t9, -0x7d38(gp)        |     t9 = sym.imp.close;
    0x00010d18 sw v1, 0x34(sp)           |     *(var_34h_2) = v1;
    0x00010d1c move a0, s3               |     a0 = s3;
    0x00010d20 jalr t9                   |     t9 ();
    0x00010d24 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010d28 lw v1, 0x34(sp)           |     v1 = *(var_34h_2);
    0x00010d2c sb zero, 0xf1(sp)         |     *(var_f1h) = 0;
                                         | label_10:
    0x00010d30 lw a1, -0x7fc4(gp)        |     a1 = *(gp);
    0x00010d34 lw t9, -0x7e04(gp)        |     t9 = sym.imp.strcmp;
    0x00010d38 addiu a1, a1, 0x6928      |     a1 += 0x6928;
    0x00010d3c move a0, v1               |     a0 = v1;
    0x00010d40 jalr t9                   |     t9 ();
    0x00010d44 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00010d48 bnez v0, 0x10dac          |         goto label_30;
                                         |     }
    0x00010d4c sw s2, 0x20(sp)           |     *(var_20h) = s2;
    0x00010d50 b 0x10484                 |     goto label_0;
                                         | label_27:
    0x00010d54 lw a2, -0x7fc4(gp)        |     a2 = *(gp);
    0x00010d58 lw t9, -0x7d30(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.Lightd_failed_getting_passwd_for_user_light */
    0x00010d5c addiu a2, a2, 0x6488      |     a2 += 0x6488;
    0x00010d60 addiu a1, zero, 1         |     a1 = 1;
    0x00010d64 addiu a0, zero, 3         |     a0 = 3;
    0x00010d68 jalr t9                   |     t9 ();
    0x00010d6c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010d70 sw zero, 0x20(sp)         |     *(var_20h) = 0;
    0x00010d74 b 0x101f4                 |     goto label_2;
                                         | label_25:
    0x00010d78 lw t9, -0x7dc4(gp)        |     t9 = sym.imp.g_strfreev;
                                         |     if (v1 == 0) {
    0x00010d7c beqz v1, 0x10aa0          |         goto label_8;
                                         |     }
    0x00010d80 lw v0, 0x3c(sp)           |     v0 = *(var_3ch_2);
    0x00010d84 b 0x10970                 |     goto label_9;
                                         | label_29:
    0x00010d88 lw a2, -0x7fc4(gp)        |     a2 = *(gp);
    0x00010d8c lw t9, -0x7d30(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.Could_not_read_poe_class */
    0x00010d90 addiu a2, a2, 0x68ec      |     a2 += 0x68ec;
    0x00010d94 addiu a1, zero, 1         |     a1 = 1;
    0x00010d98 addiu a0, zero, 3         |     a0 = 3;
    0x00010d9c jalr t9                   |     t9 ();
    0x00010da0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010da4 addiu v1, sp, 0xf0        |     v1 = sp + 0xf0;
    0x00010da8 b 0x10d30                 |     goto label_10;
                                         | label_30:
    0x00010dac lw a0, -0x7fc4(gp)        |     a0 = *(gp);
    0x00010db0 lw t9, -0x7d1c(gp)        |     t9 = sym.imp.g_quark_from_static_string;
                                         |     /* str.light_control_error_quark */
    0x00010db4 addiu a0, a0, 0x414c      |     a0 += 0x414c;
    0x00010db8 jalr t9                   |     t9 ();
    0x00010dbc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010dc0 move a1, v0               |     a1 = v0;
    0x00010dc4 addiu a2, zero, 7         |     a2 = 7;
    0x00010dc8 lw a3, -0x7fc4(gp)        |     a3 = *(gp);
    0x00010dcc lw t9, -0x7d04(gp)        |     t9 = sym.imp.g_set_error;
                                         |     /* str.Must_run_on_poe_class_3 */
    0x00010dd0 addiu a3, a3, 0x692c      |     a3 += 0x692c;
    0x00010dd4 move a0, s5               |     a0 = s5;
    0x00010dd8 jalr t9                   |     t9 ();
    0x00010ddc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010de0 addiu a1, zero, 1         |     a1 = 1;
    0x00010de4 addiu a0, zero, 6         |     a0 = 6;
    0x00010de8 lw a2, -0x7fc4(gp)        |     a2 = *(gp);
    0x00010dec lw t9, -0x7d30(gp)        |     t9 = sym.imp.__syslog_chk;
                                         |     /* str.Wrong_poe_for_IR_light */
    0x00010df0 addiu a2, a2, 0x6944      |     a2 += 0x6944;
    0x00010df4 jalr t9                   |     t9 ();
    0x00010df8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00010dfc b 0x10484                 |     goto label_0;
                                         | label_13:
    0x00010e00 lw t9, -0x7d5c(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00010e04 jalr t9                   |     t9 ();
    0x00010e08 nop                       |     
                                         | }

[*] Function strcpy used 2 times lightd