[*] Binary protection state of libsysutils.so

  
  	No RELRO       No Canary found   NX disabled  DSO          No RPATH     No RUNPATH   Symbols


[*] Function strcpy tear down of libsysutils.so

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libsysutils.so @ 0x11f0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.SU_Base_GetModelNumber ()    | void SU_Base_GetModelNumber () {
    0x000011f0 lui gp, 2                     |     
    0x000011f4 addiu gp, gp, -0x21d0         |     
    0x000011f8 addu gp, gp, t9               |     gp += t9;
    0x000011fc lw t9, -0x7f80(gp)            |     t9 = sym.imp.memset;
    0x00001200 addiu sp, sp, -0xb8           |     
    0x00001204 move a1, zero                 |     a1 = 0;
    0x00001208 addiu a2, zero, 0x7c          |     a2 = 0x7c;
    0x0000120c sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x00001210 sw ra, 0xb4(sp)               |     *(var_b4h) = ra;
    0x00001214 sw s1, 0xb0(sp)               |     *(var_b0h) = s1;
    0x00001218 sw s0, 0xac(sp)               |     *(var_ach) = s0;
    0x0000121c move s1, a0                   |     s1 = a0;
    0x00001220 sw zero, 0x28(sp)             |     *(var_28h) = 0;
    0x00001224 addiu a0, sp, 0x2c            |     a0 = sp + 0x2c;
    0x00001228 jalr t9                       |     t9 ();
    0x0000122c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00001230 lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x00001234 lw a1, -0x7fd8(gp)            |     a1 = *((gp - 8182));
    0x00001238 lw t9, -0x7f7c(gp)            |     t9 = sym.imp.fopen;
    0x0000123c addiu a0, a0, 0x5da0          |     a0 += str._proc_cpuinfo;
    0x00001240 addiu a1, a1, 0x5db0          |     a1 += 0x5db0;
    0x00001244 jalr t9                       |     t9 ();
    0x00001248 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == 0) {
    0x0000124c beqz v0, 0x12e4               |         goto label_1;
                                             |     }
    0x00001250 lw t9, -0x7f10(gp)            |     t9 = sym.imp.fgets;
    0x00001254 addiu a0, sp, 0x28            |     a0 = sp + 0x28;
    0x00001258 addiu a1, zero, 0x80          |     a1 = 0x80;
    0x0000125c move a2, v0                   |     a2 = v0;
    0x00001260 move s0, v0                   |     s0 = v0;
    0x00001264 jalr t9                       |     t9 ();
    0x00001268 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == 0) {
    0x0000126c beqz v0, 0x1344               |         goto label_2;
                                             |     }
    0x00001270 lw t9, -0x7f88(gp)            |     t9 = sym.imp.fclose;
    0x00001274 move a0, s0                   |     a0 = s0;
    0x00001278 jalr t9                       |     t9 ();
    0x0000127c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00001280 addiu a0, sp, 0x28            |     a0 = sp + 0x28;
    0x00001284 lw t9, -0x7fb8(gp)            |     t9 = sym.imp.strchr;
    0x00001288 addiu a1, zero, 0x3a          |     a1 = 0x3a;
    0x0000128c jalr t9                       |     t9 ();
    0x00001290 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00001294 move a0, s1                   |     a0 = s1;
    0x00001298 lw t9, -0x7ef8(gp)            |     t9 = sym._MIPS_STUBS_;
    0x0000129c addiu a1, v0, 2               |     a1 = v0 + 2;
    0x000012a0 jalr t9                       |     t9 ();
    0x000012a4 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000012a8 lw t9, -0x7fb0(gp)            |     t9 = sym.imp.strlen;
    0x000012ac move a0, s1                   |     a0 = s1;
    0x000012b0 jalr t9                       |     t9 ();
    0x000012b4 addiu v0, v0, -1              |     v0 += -1;
    0x000012b8 addu s1, s1, v0               |     s1 += v0;
    0x000012bc lb a0, (s1)                   |     a0 = *(s1);
    0x000012c0 addiu v1, zero, 0xa           |     v1 = 0xa;
    0x000012c4 move v0, zero                 |     v0 = 0;
                                             |     if (a0 != v1) {
    0x000012c8 bne a0, v1, 0x12d0            |         goto label_0;
                                             |     }
    0x000012cc sb zero, (s1)                 |     *(s1) = 0;
                                             |     do {
                                             | label_0:
    0x000012d0 lw ra, 0xb4(sp)               |         ra = *(var_b4h);
    0x000012d4 lw s1, 0xb0(sp)               |         s1 = *(var_b0h);
    0x000012d8 lw s0, 0xac(sp)               |         s0 = *(var_ach);
    0x000012dc addiu sp, sp, 0xb8            |         
    0x000012e0 jr ra                         |         return v0;
                                             | label_1:
    0x000012e4 lw t9, -0x7f78(gp)            |         t9 = sym.imp.IMP_Log_Get_Option;
    0x000012e8 jalr t9                       |         t9 ();
    0x000012ec nop                           |         
    0x000012f0 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x000012f4 move a1, v0                   |         a1 = v0;
    0x000012f8 addiu a0, zero, 6             |         a0 = 6;
    0x000012fc lw v1, -0x7fd8(gp)            |         v1 = *((gp - 8182));
    0x00001300 lw a3, -0x7fd8(gp)            |         a3 = *((gp - 8182));
    0x00001304 lw t9, -0x7f58(gp)            |         t9 = sym.imp.imp_log_fun;
    0x00001308 addiu v1, v1, 0x5dbc          |         v1 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_base_base.c;
    0x0000130c sw v1, 0x10(sp)               |         *(var_10h) = v1;
    0x00001310 addiu v1, zero, 0x22          |         v1 = 0x22;
    0x00001314 sw v1, 0x14(sp)               |         *(var_14h) = v1;
    0x00001318 lw v1, -0x7fd8(gp)            |         v1 = *((gp - 8182));
    0x0000131c addiu a2, zero, 2             |         a2 = 2;
    0x00001320 addiu a3, a3, 0x5db4          |         a3 += str.base;
    0x00001324 addiu v1, v1, 0x6030          |         v1 += obj.__func__.3734;
    0x00001328 sw v1, 0x18(sp)               |         *(var_18h) = v1;
    0x0000132c lw v1, -0x7fd8(gp)            |         v1 = *((gp - 8182));
    0x00001330 addiu v1, v1, 0x5dfc          |         v1 += str.Get_Model_Number_Error_n;
    0x00001334 sw v1, 0x1c(sp)               |         *(var_1ch) = v1;
    0x00001338 jalr t9                       |         t9 ();
    0x0000133c addiu v0, zero, -1            |         v0 = -1;
    0x00001340 b 0x12d0                      |         
                                             |     } while (1);
                                             | label_2:
    0x00001344 lw t9, -0x7f78(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00001348 jalr t9                       |     t9 ();
    0x0000134c nop                           |     
    0x00001350 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00001354 move a1, v0                   |     a1 = v0;
    0x00001358 addiu a0, zero, 6             |     a0 = 6;
    0x0000135c lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
    0x00001360 lw a3, -0x7fd8(gp)            |     a3 = *((gp - 8182));
    0x00001364 lw t9, -0x7f58(gp)            |     t9 = sym.imp.imp_log_fun;
    0x00001368 addiu v0, v0, 0x5dbc          |     v0 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_base_base.c;
    0x0000136c sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00001370 addiu v0, zero, 0x27          |     v0 = 0x27;
    0x00001374 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x00001378 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
    0x0000137c addiu a2, zero, 2             |     a2 = 2;
    0x00001380 addiu a3, a3, 0x5db4          |     a3 += str.base;
    0x00001384 addiu v0, v0, 0x6030          |     v0 += obj.__func__.3734;
    0x00001388 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0000138c lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
    0x00001390 addiu v0, v0, 0x5e14          |     v0 += str.fgets_Model_Number_Error_n;
    0x00001394 sw v0, 0x1c(sp)               |     *(var_1ch) = v0;
    0x00001398 jalr t9                       |     t9 ();
    0x0000139c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000013a0 lw t9, -0x7f88(gp)            |     t9 = sym.imp.fclose;
    0x000013a4 move a0, s0                   |     a0 = s0;
    0x000013a8 jalr t9                       |     t9 ();
    0x000013ac addiu v0, zero, -1            |     v0 = -1;
    0x000013b0 b 0x12d0                      |     goto label_0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libsysutils.so @ 0x45c0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.update_disabled_keys ()      | void update_disabled_keys () {
    0x000045c0 lui gp, 2                     |     
    0x000045c4 addiu gp, gp, -0x55a0         |     
    0x000045c8 addu gp, gp, t9               |     gp += t9;
    0x000045cc lw t9, -0x7f80(gp)            |     t9 = sym.imp.memset;
    0x000045d0 addiu sp, sp, -0x168          |     
    0x000045d4 addiu a0, sp, 0xb8            |     a0 = sp + 0xb8;
    0x000045d8 move a1, zero                 |     a1 = 0;
    0x000045dc sw gp, 0x30(sp)               |     *(var_30h) = gp;
    0x000045e0 sw ra, 0x164(sp)              |     *(var_164h) = ra;
    0x000045e4 sw s2, 0x14c(sp)              |     *(var_14ch) = s2;
    0x000045e8 sw s7, 0x160(sp)              |     *(var_160h) = s7;
    0x000045ec sw s6, 0x15c(sp)              |     *(var_15ch) = s6;
    0x000045f0 sw s5, 0x158(sp)              |     *(var_158h) = s5;
    0x000045f4 sw s4, 0x154(sp)              |     *(var_154h) = s4;
    0x000045f8 sw s3, 0x150(sp)              |     *(var_150h) = s3;
    0x000045fc sw s1, 0x148(sp)              |     *(var_148h) = s1;
    0x00004600 sw s0, 0x144(sp)              |     *(var_144h) = s0;
    0x00004604 addiu a2, zero, 0x80          |     a2 = 0x80;
    0x00004608 jalr t9                       |     t9 ();
    0x0000460c lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00004610 addiu a0, sp, 0x38            |     a0 = sp + 0x38;
    0x00004614 move a1, zero                 |     a1 = 0;
    0x00004618 lw s2, -0x7fe4(gp)            |     s2 = *((gp - 8185));
    0x0000461c lw t9, -0x7f80(gp)            |     t9 = sym.imp.memset;
    0x00004620 addiu a2, zero, 0x80          |     a2 = 0x80;
    0x00004624 jalr t9                       |     t9 ();
    0x00004628 lw v0, 0x7684(s2)             |     v0 = *((s2 + 7585));
    0x0000462c lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 <= 0) {
    0x00004630 blez v0, 0x498c               |         goto label_6;
                                             |     }
    0x00004634 lw s1, -0x7fd8(gp)            |     s1 = *((gp - 8182));
    0x00004638 lw s3, -0x7fe4(gp)            |     s3 = *((gp - 8185));
    0x0000463c move s0, zero                 |     s0 = 0;
    0x00004640 addiu s1, s1, 0x66f4          |     s1 += 0x66f4;
    0x00004644 b 0x4658                      |     
                                             |     while (v1 == 0) {
    0x00004648 lw v0, 0x7684(s2)             |         v0 = *((s2 + 7585));
    0x0000464c slt v0, s0, v0                |         v0 = (s0 < v0) ? 1 : 0;
    0x00004650 lb v0, 0xb8(sp)               |         v0 = *(var_b8h);
                                             |         if (v0 == 0) {
    0x00004654 beqz v0, 0x46b0               |             goto label_7;
                                             |         }
                                             | label_0:
    0x00004658 lw v1, 0x7680(s3)             |         v1 = *((s3 + 7584));
    0x0000465c sll v0, s0, 2                 |         v0 = s0 << 2;
    0x00004660 addu v0, v1, v0               |         v0 = v1 + v0;
    0x00004664 lhu v1, 2(v0)                 |         v1 = *((v0 + 1));
    0x00004668 addiu s0, s0, 1               |         s0++;
    0x0000466c beqz v1, 0x4648               |         
                                             |     }
    0x00004670 sw zero, 0x138(sp)            |     *(var_138h) = 0;
    0x00004674 lw t9, -0x7f9c(gp)            |     t9 = sym.imp.sprintf;
    0x00004678 lhu a2, (v0)                  |     a2 = *(v0);
    0x0000467c addiu a0, sp, 0x138           |     a0 = sp + aav.0x00000138;
    0x00004680 move a1, s1                   |     a1 = s1;
    0x00004684 jalr t9                       |     t9 ();
    0x00004688 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x0000468c addiu a0, sp, 0xb8            |     a0 = sp + 0xb8;
    0x00004690 lw t9, -0x7f40(gp)            |     t9 = sym.imp.strcat;
    0x00004694 addiu a1, sp, 0x138           |     a1 = sp + aav.0x00000138;
    0x00004698 jalr t9                       |     t9 ();
    0x0000469c lw v0, 0x7684(s2)             |     v0 = *((s2 + 7585));
    0x000046a0 slt v0, s0, v0                |     v0 = (s0 < v0) ? 1 : 0;
    0x000046a4 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 != 0) {
    0x000046a8 bnez v0, 0x4658               |         goto label_0;
                                             |     }
    0x000046ac lb v0, 0xb8(sp)               |     v0 = *(var_b8h);
                                             | label_7:
    0x000046b0 lw t9, -0x7f2c(gp)            |     t9 = sym.imp.strrchr;
                                             |     if (v0 == 0) {
    0x000046b4 beqz v0, 0x498c               |         goto label_6;
                                             |     }
    0x000046b8 addiu a0, sp, 0xb8            |     a0 = sp + 0xb8;
    0x000046bc addiu a1, zero, 0x2c          |     a1 = 0x2c;
    0x000046c0 jalr t9                       |     t9 ();
    0x000046c4 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 == 0) {
    0x000046c8 beqz v0, 0x49bc               |         goto label_8;
                                             |     }
    0x000046cc lw t9, -0x7f78(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
    0x000046d0 lw s4, -0x7fd8(gp)            |     s4 = *((gp - 8182));
    0x000046d4 sb zero, (v0)                 |     *(v0) = 0;
    0x000046d8 jalr t9                       |     t9 ();
    0x000046dc lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000046e0 addiu v1, zero, 0xda          |     v1 = 0xda;
    0x000046e4 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x000046e8 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x000046ec lw s5, -0x7fd8(gp)            |     s5 = *((gp - 8182));
    0x000046f0 lw s3, -0x7fd8(gp)            |     s3 = *((gp - 8182));
    0x000046f4 addiu v1, v1, 0x66f8          |     v1 += str.disabled_key_buf:_s_n;
    0x000046f8 lw t9, -0x7f58(gp)            |     t9 = sym.imp.imp_log_fun;
    0x000046fc sw v1, 0x1c(sp)               |     *(var_1ch) = v1;
    0x00004700 addiu s5, s5, 0x6634          |     s5 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_misc_key.c;
    0x00004704 addiu v1, sp, 0xb8            |     v1 = sp + 0xb8;
    0x00004708 addiu s3, s3, 0x69b8          |     s3 += obj.__func__.4674;
    0x0000470c sw s5, 0x10(sp)               |     *(var_10h) = s5;
    0x00004710 sw s3, 0x18(sp)               |     *(var_18h) = s3;
    0x00004714 sw v1, 0x20(sp)               |     *(var_20h) = v1;
    0x00004718 addiu a0, zero, 3             |     a0 = 3;
    0x0000471c move a1, v0                   |     a1 = v0;
    0x00004720 addiu a2, zero, 2             |     a2 = 2;
    0x00004724 addiu a3, s4, 0x662c          |     a3 = s4 + str.SU_Key;
    0x00004728 jalr t9                       |     t9 ();
    0x0000472c lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             | label_2:
    0x00004730 lw s0, -0x7fd8(gp)            |     s0 = *((gp - 8182));
    0x00004734 lw t9, -0x7fb4(gp)            |     t9 = sym.imp.open;
    0x00004738 addiu a1, zero, 2             |     a1 = 2;
    0x0000473c addiu a0, s0, 0x6710          |     a0 = s0 + str._sys_devices_platform_gpio_keys_disabled_keys;
    0x00004740 jalr t9                       |     t9 ();
    0x00004744 move s2, v0                   |     s2 = v0;
    0x00004748 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 < 0) {
    0x0000474c bltz v0, 0x4a48               |         goto label_9;
                                             |     }
    0x00004750 lw t9, -0x7f5c(gp)            |     t9 = sym.imp.read;
    0x00004754 move a0, v0                   |     a0 = v0;
    0x00004758 addiu a1, sp, 0x38            |     a1 = sp + 0x38;
    0x0000475c addiu a2, zero, 0x80          |     a2 = 0x80;
    0x00004760 jalr t9                       |     t9 ();
    0x00004764 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 < 0) {
    0x00004768 bltz v0, 0x4b3c               |         goto label_10;
                                             |     }
    0x0000476c lw t9, -0x7f2c(gp)            |     t9 = sym.imp.strrchr;
    0x00004770 addiu a0, sp, 0x38            |     a0 = sp + 0x38;
    0x00004774 addiu a1, zero, 0xa           |     a1 = 0xa;
    0x00004778 jalr t9                       |     t9 ();
    0x0000477c lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 != 0) {
    0x00004780 beqz v0, 0x4788               |         
    0x00004784 sb zero, (v0)                 |         *(v0) = 0;
                                             |     }
    0x00004788 lw t9, -0x7f2c(gp)            |     t9 = sym.imp.strrchr;
    0x0000478c addiu a0, sp, 0x38            |     a0 = sp + 0x38;
    0x00004790 addiu a1, zero, 0xd           |     a1 = 0xd;
    0x00004794 jalr t9                       |     t9 ();
    0x00004798 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 != 0) {
    0x0000479c beqz v0, 0x47a4               |         
    0x000047a0 sb zero, (v0)                 |         *(v0) = 0;
                                             |     }
    0x000047a4 lb v0, 0x38(sp)               |     v0 = *(var_38h);
    0x000047a8 move s6, zero                 |     s6 = 0;
                                             |     if (v0 == 0) {
    0x000047ac beqz v0, 0x49d4               |         goto label_11;
                                             |     }
    0x000047b0 addiu s1, sp, 0xb8            |     s1 = sp + 0xb8;
    0x000047b4 addiu s7, zero, 0x2c          |     s7 = 0x2c;
    0x000047b8 b 0x47cc                      |     
                                             |     while (v0 != 0) {
    0x000047bc addiu s1, s0, 1               |         s1 = s0 + 1;
                                             |         if (s0 == 0) {
    0x000047c0 beqz s0, 0x4858               |             goto label_12;
                                             |         }
                                             |         if (s1 == 0) {
                                             | label_1:
    0x000047c4 beqz s1, 0x4858               |             goto label_12;
                                             |         }
    0x000047c8 nop                           |         
    0x000047cc lw t9, -0x7fb8(gp)            |         t9 = sym.imp.strchr;
    0x000047d0 move a0, s1                   |         a0 = s1;
    0x000047d4 addiu a1, zero, 0x2c          |         a1 = 0x2c;
    0x000047d8 jalr t9                       |         t9 ();
    0x000047dc lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x000047e0 move a1, s1                   |         a1 = s1;
    0x000047e4 addiu a0, sp, 0x38            |         a0 = sp + 0x38;
    0x000047e8 move s0, v0                   |         s0 = v0;
    0x000047ec lw t9, -0x7f50(gp)            |         t9 = sym.imp.strstr;
                                             |         if (v0 != 0) {
    0x000047f0 beqz v0, 0x4804               |             
    0x000047f4 lb v0, (v0)                   |             v0 = *(v0);
                                             |             if (v0 == 0) {
    0x000047f8 beqz v0, 0x4804               |                 goto label_13;
                                             |             }
    0x000047fc nop                           |             
    0x00004800 sb zero, (s0)                 |             *(s0) = 0;
                                             |         }
                                             | label_13:
    0x00004804 jalr t9                       |         t9 ();
    0x00004808 nop                           |         
    0x0000480c lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00004810 bnez v0, 0x47bc               |         
                                             |     }
    0x00004814 lw t9, -0x7fb0(gp)            |     t9 = sym.imp.strlen;
    0x00004818 addiu a0, sp, 0x38            |     a0 = sp + 0x38;
    0x0000481c addiu s6, s6, 1               |     s6++;
    0x00004820 jalr t9                       |     t9 ();
    0x00004824 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00004828 addiu a0, sp, 0x38            |     a0 = sp + 0x38;
    0x0000482c addu v1, a0, v0               |     v1 = a0 + v0;
    0x00004830 lw t9, -0x7ef8(gp)            |     t9 = sym._MIPS_STUBS_;
    0x00004834 addiu a0, v0, 1               |     a0 = v0 + 1;
    0x00004838 addiu v0, sp, 0x38            |     v0 = sp + 0x38;
    0x0000483c move a1, s1                   |     a1 = s1;
    0x00004840 sb s7, (v1)                   |     *(v1) = s7;
    0x00004844 addu a0, v0, a0               |     a0 = v0 + a0;
    0x00004848 jalr t9                       |     t9 ();
    0x0000484c addiu s1, s0, 1               |     s1 = s0 + 1;
    0x00004850 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (s0 != 0) {
    0x00004854 bnez s0, 0x47c4               |         goto label_1;
                                             |     }
                                             | label_12:
    0x00004858 lw t9, -0x7f78(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
                                             |     if (s6 == 0) {
    0x0000485c beqz s6, 0x49ec               |         goto label_14;
                                             |     }
                                             |     do {
    0x00004860 lw t9, -0x7fb0(gp)            |         t9 = sym.imp.strlen;
    0x00004864 addiu a0, sp, 0xb8            |         a0 = sp + 0xb8;
    0x00004868 jalr t9                       |         t9 ();
    0x0000486c lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00004870 move a0, s2                   |         a0 = s2;
    0x00004874 addiu a1, sp, 0x38            |         a1 = sp + 0x38;
    0x00004878 lw t9, -0x7f38(gp)            |         t9 = sym.imp.write;
    0x0000487c addiu a2, v0, 1               |         a2 = v0 + 1;
    0x00004880 jalr t9                       |         t9 ();
    0x00004884 lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |         if (v0 < 0) {
    0x00004888 bltz v0, 0x4abc               |             goto label_15;
                                             |         }
    0x0000488c lw t9, -0x7f80(gp)            |         t9 = sym.imp.memset;
    0x00004890 addiu a0, sp, 0x38            |         a0 = sp + 0x38;
    0x00004894 move a1, zero                 |         a1 = 0;
    0x00004898 addiu a2, zero, 0x80          |         a2 = 0x80;
    0x0000489c jalr t9                       |         t9 ();
    0x000048a0 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x000048a4 move a0, s2                   |         a0 = s2;
    0x000048a8 addiu a1, sp, 0x38            |         a1 = sp + 0x38;
    0x000048ac lw t9, -0x7f5c(gp)            |         t9 = sym.imp.read;
    0x000048b0 addiu a2, zero, 0x80          |         a2 = 0x80;
    0x000048b4 jalr t9                       |         t9 ();
    0x000048b8 lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |         if (v0 < 0) {
    0x000048bc bltz v0, 0x4b8c               |             goto label_16;
                                             |         }
    0x000048c0 lw t9, -0x7f2c(gp)            |         t9 = sym.imp.strrchr;
    0x000048c4 addiu a0, sp, 0x38            |         a0 = sp + 0x38;
    0x000048c8 addiu a1, zero, 0xa           |         a1 = 0xa;
    0x000048cc jalr t9                       |         t9 ();
    0x000048d0 lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |         if (v0 != 0) {
    0x000048d4 beqz v0, 0x48dc               |             
    0x000048d8 sb zero, (v0)                 |             *(v0) = 0;
                                             |         }
    0x000048dc lw t9, -0x7f2c(gp)            |         t9 = sym.imp.strrchr;
    0x000048e0 addiu a0, sp, 0x38            |         a0 = sp + 0x38;
    0x000048e4 addiu a1, zero, 0xd           |         a1 = 0xd;
    0x000048e8 jalr t9                       |         t9 ();
    0x000048ec lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |         if (v0 != 0) {
    0x000048f0 beqz v0, 0x48f8               |             
    0x000048f4 sb zero, (v0)                 |             *(v0) = 0;
                                             |         }
    0x000048f8 lw t9, -0x7f78(gp)            |         t9 = sym.imp.IMP_Log_Get_Option;
    0x000048fc jalr t9                       |         t9 ();
    0x00004900 nop                           |         
    0x00004904 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00004908 addiu v1, zero, 0x11f         |         v1 = 0x11f;
    0x0000490c sw s5, 0x10(sp)               |         *(var_10h) = s5;
    0x00004910 lw a0, -0x7fd8(gp)            |         a0 = *((gp - 8182));
    0x00004914 lw t9, -0x7f58(gp)            |         t9 = sym.imp.imp_log_fun;
    0x00004918 sw v1, 0x14(sp)               |         *(var_14h) = v1;
    0x0000491c addiu a0, a0, 0x67e8          |         a0 += str._s__d_:disabled_keys___s_n;
    0x00004920 sw a0, 0x1c(sp)               |         *(var_1ch) = a0;
    0x00004924 addiu a0, sp, 0x38            |         a0 = sp + 0x38;
    0x00004928 sw a0, 0x28(sp)               |         *(var_28h) = a0;
    0x0000492c sw s3, 0x18(sp)               |         *(var_18h) = s3;
    0x00004930 sw s3, 0x20(sp)               |         *(var_20h) = s3;
    0x00004934 sw v1, 0x24(sp)               |         *(var_24h) = v1;
    0x00004938 addiu a0, zero, 3             |         a0 = 3;
    0x0000493c move a1, v0                   |         a1 = v0;
    0x00004940 addiu a2, zero, 2             |         a2 = 2;
    0x00004944 addiu a3, s4, 0x662c          |         a3 = s4 + str.SU_Key;
    0x00004948 jalr t9                       |         t9 ();
    0x0000494c lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             | label_3:
    0x00004950 lw t9, -0x7fc4(gp)            |         t9 = sym.imp.close;
    0x00004954 move a0, s2                   |         a0 = s2;
    0x00004958 jalr t9                       |         t9 ();
    0x0000495c move v0, zero                 |         v0 = 0;
                                             | label_4:
    0x00004960 lw ra, 0x164(sp)              |         ra = *(var_164h);
    0x00004964 lw s7, 0x160(sp)              |         s7 = *(var_160h);
    0x00004968 lw s6, 0x15c(sp)              |         s6 = *(var_15ch);
    0x0000496c lw s5, 0x158(sp)              |         s5 = *(var_158h);
    0x00004970 lw s4, 0x154(sp)              |         s4 = *(var_154h);
    0x00004974 lw s3, 0x150(sp)              |         s3 = *(var_150h);
    0x00004978 lw s2, 0x14c(sp)              |         s2 = *(var_14ch);
    0x0000497c lw s1, 0x148(sp)              |         s1 = *(var_148h);
    0x00004980 lw s0, 0x144(sp)              |         s0 = *(var_144h);
    0x00004984 addiu sp, sp, 0x168           |         
    0x00004988 jr ra                         |         return v1;
                                             | label_6:
    0x0000498c lw ra, 0x164(sp)              |         ra = *(var_164h);
    0x00004990 lw s7, 0x160(sp)              |         s7 = *(var_160h);
    0x00004994 lw s6, 0x15c(sp)              |         s6 = *(var_15ch);
    0x00004998 lw s5, 0x158(sp)              |         s5 = *(var_158h);
    0x0000499c lw s4, 0x154(sp)              |         s4 = *(var_154h);
    0x000049a0 lw s3, 0x150(sp)              |         s3 = *(var_150h);
    0x000049a4 lw s2, 0x14c(sp)              |         s2 = *(var_14ch);
    0x000049a8 lw s1, 0x148(sp)              |         s1 = *(var_148h);
    0x000049ac lw s0, 0x144(sp)              |         s0 = *(var_144h);
    0x000049b0 move v0, zero                 |         v0 = 0;
    0x000049b4 addiu sp, sp, 0x168           |         
    0x000049b8 jr ra                         |         return v1;
                                             | label_8:
    0x000049bc lw s5, -0x7fd8(gp)            |         s5 = *((gp - 8182));
    0x000049c0 lw s3, -0x7fd8(gp)            |         s3 = *((gp - 8182));
    0x000049c4 lw s4, -0x7fd8(gp)            |         s4 = *((gp - 8182));
    0x000049c8 addiu s5, s5, 0x6634          |         s5 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_misc_key.c;
    0x000049cc addiu s3, s3, 0x69b8          |         s3 += obj.__func__.4674;
    0x000049d0 b 0x4730                      |         goto label_2;
                                             | label_11:
    0x000049d4 lw t9, -0x7f40(gp)            |         t9 = sym.imp.strcat;
    0x000049d8 addiu a0, sp, 0x38            |         a0 = sp + 0x38;
    0x000049dc addiu a1, sp, 0xb8            |         a1 = sp + 0xb8;
    0x000049e0 jalr t9                       |         t9 ();
    0x000049e4 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x000049e8 b 0x4860                      |         
                                             |     } while (1);
                                             | label_14:
    0x000049ec jalr t9                       |     t9 ();
    0x000049f0 nop                           |     
    0x000049f4 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000049f8 addiu v1, zero, 0x105         |     v1 = 0x105;
    0x000049fc sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x00004a00 lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x00004a04 lw t9, -0x7f58(gp)            |     t9 = sym.imp.imp_log_fun;
    0x00004a08 sw v1, 0x24(sp)               |     *(var_24h) = v1;
    0x00004a0c addiu a0, a0, 0x6774          |     a0 += str._s__d_:disabled_keys___s__needdisablecnt___d_n;
    0x00004a10 addiu v1, sp, 0x38            |     v1 = sp + 0x38;
    0x00004a14 sw a0, 0x1c(sp)               |     *(var_1ch) = a0;
    0x00004a18 sw s5, 0x10(sp)               |     *(var_10h) = s5;
    0x00004a1c sw s3, 0x18(sp)               |     *(var_18h) = s3;
    0x00004a20 sw s3, 0x20(sp)               |     *(var_20h) = s3;
    0x00004a24 sw v1, 0x28(sp)               |     *(var_28h) = v1;
    0x00004a28 sw zero, 0x2c(sp)             |     *(var_2ch) = 0;
    0x00004a2c addiu a0, zero, 3             |     a0 = 3;
    0x00004a30 move a1, v0                   |     a1 = v0;
    0x00004a34 addiu a2, zero, 2             |     a2 = 2;
    0x00004a38 addiu a3, s4, 0x662c          |     a3 = s4 + str.SU_Key;
    0x00004a3c jalr t9                       |     t9 ();
    0x00004a40 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00004a44 b 0x4950                      |     goto label_3;
                                             | label_9:
    0x00004a48 lw t9, -0x7f78(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00004a4c addiu s0, s0, 0x6710          |     s0 += str._sys_devices_platform_gpio_keys_disabled_keys;
    0x00004a50 jalr t9                       |     t9 ();
    0x00004a54 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00004a58 lw t9, -0x7fa4(gp)            |     t9 = sym.imp.__errno_location;
    0x00004a5c move s1, v0                   |     s1 = v0;
    0x00004a60 jalr t9                       |     t9 ();
    0x00004a64 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00004a68 lw t9, -0x7f08(gp)            |     t9 = sym.imp.strerror;
    0x00004a6c lw a0, (v0)                   |     a0 = *(v0);
    0x00004a70 jalr t9                       |     t9 ();
    0x00004a74 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00004a78 addiu v1, zero, 0xdf          |     v1 = 0xdf;
    0x00004a7c sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x00004a80 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x00004a84 lw t9, -0x7f58(gp)            |     t9 = sym.imp.imp_log_fun;
    0x00004a88 sw v0, 0x24(sp)               |     *(var_24h) = v0;
    0x00004a8c addiu v1, v1, 0x6740          |     v1 += str.open__s_error:_s_n;
    0x00004a90 sw s5, 0x10(sp)               |     *(var_10h) = s5;
    0x00004a94 sw s3, 0x18(sp)               |     *(var_18h) = s3;
    0x00004a98 sw v1, 0x1c(sp)               |     *(var_1ch) = v1;
    0x00004a9c sw s0, 0x20(sp)               |     *(var_20h) = s0;
    0x00004aa0 addiu a0, zero, 6             |     a0 = 6;
    0x00004aa4 move a1, s1                   |     a1 = s1;
    0x00004aa8 addiu a2, zero, 2             |     a2 = 2;
    0x00004aac addiu a3, s4, 0x662c          |     a3 = s4 + str.SU_Key;
    0x00004ab0 jalr t9                       |     t9 ();
    0x00004ab4 addiu v0, zero, -1            |     v0 = -1;
    0x00004ab8 b 0x4960                      |     goto label_4;
                                             | label_15:
    0x00004abc lw t9, -0x7f78(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00004ac0 jalr t9                       |     t9 ();
    0x00004ac4 nop                           |     
    0x00004ac8 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00004acc lw t9, -0x7fa4(gp)            |     t9 = sym.imp.__errno_location;
    0x00004ad0 move s0, v0                   |     s0 = v0;
    0x00004ad4 jalr t9                       |     t9 ();
    0x00004ad8 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00004adc lw t9, -0x7f08(gp)            |     t9 = sym.imp.strerror;
    0x00004ae0 lw a0, (v0)                   |     a0 = *(v0);
    0x00004ae4 jalr t9                       |     t9 ();
    0x00004ae8 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00004aec addiu v1, zero, 0x10c         |     v1 = obj._DYNAMIC;
    0x00004af0 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x00004af4 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x00004af8 lw t9, -0x7f58(gp)            |     t9 = sym.imp.imp_log_fun;
    0x00004afc sw s5, 0x10(sp)               |     *(var_10h) = s5;
    0x00004b00 sw s3, 0x18(sp)               |     *(var_18h) = s3;
    0x00004b04 addiu v1, v1, 0x67a4          |     v1 += str.write_disabled_keys_error:__s_n;
                                             |     do {
                                             | label_5:
    0x00004b08 sw v1, 0x1c(sp)               |         *(var_1ch) = v1;
    0x00004b0c sw v0, 0x20(sp)               |         *(var_20h) = v0;
    0x00004b10 addiu a0, zero, 6             |         a0 = 6;
    0x00004b14 move a1, s0                   |         a1 = s0;
    0x00004b18 addiu a2, zero, 2             |         a2 = 2;
    0x00004b1c addiu a3, s4, 0x662c          |         a3 = s4 + str.SU_Key;
    0x00004b20 jalr t9                       |         t9 ();
    0x00004b24 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00004b28 lw t9, -0x7fc4(gp)            |         t9 = sym.imp.close;
    0x00004b2c move a0, s2                   |         a0 = s2;
    0x00004b30 jalr t9                       |         t9 ();
    0x00004b34 addiu v0, zero, -1            |         v0 = -1;
    0x00004b38 b 0x4960                      |         goto label_4;
                                             | label_10:
    0x00004b3c lw t9, -0x7f78(gp)            |         t9 = sym.imp.IMP_Log_Get_Option;
    0x00004b40 jalr t9                       |         t9 ();
    0x00004b44 nop                           |         
    0x00004b48 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00004b4c lw t9, -0x7fa4(gp)            |         t9 = sym.imp.__errno_location;
    0x00004b50 move s0, v0                   |         s0 = v0;
    0x00004b54 jalr t9                       |         t9 ();
    0x00004b58 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00004b5c lw t9, -0x7f08(gp)            |         t9 = sym.imp.strerror;
    0x00004b60 lw a0, (v0)                   |         a0 = *(v0);
    0x00004b64 jalr t9                       |         t9 ();
    0x00004b68 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00004b6c addiu v1, zero, 0xe5          |         v1 = 0xe5;
    0x00004b70 sw v1, 0x14(sp)               |         *(var_14h) = v1;
    0x00004b74 lw v1, -0x7fd8(gp)            |         v1 = *((gp - 8182));
    0x00004b78 sw s5, 0x10(sp)               |         *(var_10h) = s5;
    0x00004b7c lw t9, -0x7f58(gp)            |         t9 = sym.imp.imp_log_fun;
    0x00004b80 sw s3, 0x18(sp)               |         *(var_18h) = s3;
    0x00004b84 addiu v1, v1, 0x6754          |         v1 += str.read_disabled_keys_error:__s_n;
    0x00004b88 b 0x4b08                      |         
                                             |     } while (1);
                                             | label_16:
    0x00004b8c lw t9, -0x7f78(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00004b90 jalr t9                       |     t9 ();
    0x00004b94 nop                           |     
    0x00004b98 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00004b9c lw t9, -0x7fa4(gp)            |     t9 = sym.imp.__errno_location;
    0x00004ba0 move s0, v0                   |     s0 = v0;
    0x00004ba4 jalr t9                       |     t9 ();
    0x00004ba8 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00004bac lw t9, -0x7f08(gp)            |     t9 = sym.imp.strerror;
    0x00004bb0 lw a0, (v0)                   |     a0 = *(v0);
    0x00004bb4 jalr t9                       |     t9 ();
    0x00004bb8 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00004bbc addiu v1, zero, 0x113         |     v1 = 0x113;
    0x00004bc0 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x00004bc4 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x00004bc8 sw s5, 0x10(sp)               |     *(var_10h) = s5;
    0x00004bcc lw t9, -0x7f58(gp)            |     t9 = sym.imp.imp_log_fun;
    0x00004bd0 sw s3, 0x18(sp)               |     *(var_18h) = s3;
    0x00004bd4 addiu v1, v1, 0x67c4          |     v1 += str.read_back_disabled_keys_error:__s_n;
    0x00004bd8 b 0x4b08                      |     goto label_5;
                                             | }

[*] Function strcpy used 1 times libsysutils.so