[*] Binary protection state of libsysutils.so

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


[*] Function sprintf tear down of libsysutils.so

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libsysutils.so @ 0x3830 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.SU_ADC_Init ()           | void SU_ADC_Init () {
    0x00003830 lui gp, 2                 |     
    0x00003834 addiu gp, gp, -0x4810     |     
    0x00003838 addu gp, gp, t9           |     gp += t9;
    0x0000383c lw t9, -0x7f30(gp)        |     t9 = sym.imp.calloc;
    0x00003840 addiu sp, sp, -0x68       |     
    0x00003844 addiu a0, zero, 1         |     a0 = 1;
    0x00003848 sw gp, 0x20(sp)           |     *(var_20h) = gp;
    0x0000384c sw ra, 0x64(sp)           |     *(var_64h) = ra;
    0x00003850 sw s5, 0x60(sp)           |     *(var_60h) = s5;
    0x00003854 sw s4, 0x5c(sp)           |     *(var_5ch) = s4;
    0x00003858 sw s3, 0x58(sp)           |     *(var_58h) = s3;
    0x0000385c sw s2, 0x54(sp)           |     *(var_54h) = s2;
    0x00003860 sw s1, 0x50(sp)           |     *(var_50h) = s1;
    0x00003864 sw s0, 0x4c(sp)           |     *(var_4ch) = s0;
    0x00003868 addiu a1, zero, 0x20      |     a1 = 0x20;
    0x0000386c jalr t9                   |     t9 ();
    0x00003870 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == 0) {
    0x00003874 beqz v0, 0x3984           |         goto label_1;
                                         |     }
    0x00003878 lw s3, -0x7fd8(gp)        |     s3 = *((gp - 8182));
    0x0000387c lw s2, -0x7fd8(gp)        |     s2 = *((gp - 8182));
    0x00003880 move s5, v0               |     s5 = v0;
    0x00003884 move s1, v0               |     s1 = v0;
    0x00003888 move s0, zero             |     s0 = 0;
    0x0000388c addiu s3, s3, 0x6494      |     s3 += str._s_d;
    0x00003890 addiu s2, s2, 0x649c      |     s2 += str._dev_jz_adc_aux_;
    0x00003894 addiu s4, zero, 8         |     s4 = 8;
                                         |     do {
    0x00003898 lw t9, -0x7f9c(gp)        |         t9 = sym.imp.sprintf
    0x0000389c move a3, s0               |         a3 = s0;
    0x000038a0 addiu a0, sp, 0x28        |         a0 = sp + 0x28;
    0x000038a4 move a1, s3               |         a1 = s3;
    0x000038a8 move a2, s2               |         a2 = s2;
    0x000038ac jalr t9                   |         t9 ();
    0x000038b0 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x000038b4 addiu a0, sp, 0x28        |         a0 = sp + 0x28;
    0x000038b8 lw t9, -0x7fb4(gp)        |         t9 = sym.imp.open;
    0x000038bc move a1, zero             |         a1 = 0;
    0x000038c0 jalr t9                   |         t9 ();
    0x000038c4 lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         |         if (v0 < 0) {
    0x000038c8 bltz v0, 0x390c           |             goto label_2;
                                         |         }
    0x000038cc addiu s0, s0, 1           |         s0++;
    0x000038d0 sw v0, (s1)               |         *(s1) = v0;
    0x000038d4 addiu s1, s1, 4           |         s1 += 4;
    0x000038d8 bne s0, s4, 0x3898        |         
                                         |     } while (s0 != s4);
    0x000038dc lw v1, -0x7fe4(gp)        |     v1 = *((gp - 8185));
    0x000038e0 move v0, zero             |     v0 = 0;
    0x000038e4 sw s5, 0x7670(v1)         |     *((v1 + 7580)) = s5;
                                         |     do {
                                         | label_0:
    0x000038e8 lw ra, 0x64(sp)           |         ra = *(var_64h);
    0x000038ec lw s5, 0x60(sp)           |         s5 = *(var_60h);
    0x000038f0 lw s4, 0x5c(sp)           |         s4 = *(var_5ch);
    0x000038f4 lw s3, 0x58(sp)           |         s3 = *(var_58h);
    0x000038f8 lw s2, 0x54(sp)           |         s2 = *(var_54h);
    0x000038fc lw s1, 0x50(sp)           |         s1 = *(var_50h);
    0x00003900 lw s0, 0x4c(sp)           |         s0 = *(var_4ch);
    0x00003904 addiu sp, sp, 0x68        |         
    0x00003908 jr ra                     |         return v0;
                                         | label_2:
    0x0000390c lw t9, -0x7f78(gp)        |         t9 = sym.imp.IMP_Log_Get_Option;
    0x00003910 jalr t9                   |         t9 ();
    0x00003914 nop                       |         
    0x00003918 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x0000391c move a1, v0               |         a1 = v0;
    0x00003920 addiu a0, zero, 6         |         a0 = 6;
    0x00003924 lw v1, -0x7fd8(gp)        |         v1 = *((gp - 8182));
    0x00003928 lw a3, -0x7fd8(gp)        |         a3 = *((gp - 8182));
    0x0000392c lw t9, -0x7f58(gp)        |         t9 = sym.imp.imp_log_fun;
    0x00003930 addiu v1, v1, 0x6444      |         v1 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_misc_adc.c;
    0x00003934 sw v1, 0x10(sp)           |         *(var_10h) = v1;
    0x00003938 addiu v1, zero, 0x40      |         v1 = 0x40;
    0x0000393c sw v1, 0x14(sp)           |         *(var_14h) = v1;
    0x00003940 lw v1, -0x7fd8(gp)        |         v1 = *((gp - 8182));
    0x00003944 addiu a2, zero, 2         |         a2 = 2;
    0x00003948 addiu a3, a3, 0x6440      |         a3 += 0x6440;
    0x0000394c addiu v1, v1, 0x6570      |         v1 += obj.__func__.4560;
    0x00003950 sw v1, 0x18(sp)           |         *(var_18h) = v1;
    0x00003954 lw v1, -0x7fd8(gp)        |         v1 = *((gp - 8182));
    0x00003958 addiu v1, v1, 0x64b0      |         v1 += str.open_error___n;
    0x0000395c sw v1, 0x1c(sp)           |         *(var_1ch) = v1;
    0x00003960 jalr t9                   |         t9 ();
    0x00003964 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00003968 addiu v0, zero, -1        |         v0 = -1;
    0x0000396c beqz s0, 0x38e8           |         
                                         |     } while (s0 == 0);
                                         |     do {
    0x00003970 lw t9, -0x7fc4(gp)        |         t9 = sym.imp.close;
    0x00003974 lw a0, (s5)               |         a0 = *(s5);
    0x00003978 jalr t9                   |         t9 ();
    0x0000397c lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00003980 b 0x3970                  |         
                                         |     } while (1);
                                         | label_1:
    0x00003984 lw t9, -0x7f78(gp)        |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00003988 jalr t9                   |     t9 ();
    0x0000398c nop                       |     
    0x00003990 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00003994 move a1, v0               |     a1 = v0;
    0x00003998 addiu a0, zero, 6         |     a0 = 6;
    0x0000399c lw v1, -0x7fd8(gp)        |     v1 = *((gp - 8182));
    0x000039a0 lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x000039a4 lw t9, -0x7f58(gp)        |     t9 = sym.imp.imp_log_fun;
    0x000039a8 addiu v1, v1, 0x6444      |     v1 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_misc_adc.c;
    0x000039ac sw v1, 0x10(sp)           |     *(var_10h) = v1;
    0x000039b0 addiu v1, zero, 0x37      |     v1 = 0x37;
    0x000039b4 sw v1, 0x14(sp)           |     *(var_14h) = v1;
    0x000039b8 lw v1, -0x7fd8(gp)        |     v1 = *((gp - 8182));
    0x000039bc addiu a2, zero, 2         |     a2 = 2;
    0x000039c0 addiu a3, a3, 0x6440      |     a3 += 0x6440;
    0x000039c4 addiu v1, v1, 0x6570      |     v1 += obj.__func__.4560;
    0x000039c8 sw v1, 0x18(sp)           |     *(var_18h) = v1;
    0x000039cc lw v1, -0x7fd8(gp)        |     v1 = *((gp - 8182));
    0x000039d0 addiu v1, v1, 0x6484      |     v1 += str.calloc_error___n;
    0x000039d4 sw v1, 0x1c(sp)           |     *(var_1ch) = v1;
    0x000039d8 jalr t9                   |     t9 ();
    0x000039dc addiu v0, zero, -1        |     v0 = -1;
    0x000039e0 b 0x38e8                  |     goto label_0;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libsysutils.so @ 0x1400 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.SU_Base_GetDevID ()      | void SU_Base_GetDevID () {
    0x00001400 lui gp, 2                 |     
    0x00001404 addiu gp, gp, -0x23e0     |     
    0x00001408 addu gp, gp, t9           |     gp += t9;
    0x0000140c lw t9, -0x7f80(gp)        |     t9 = sym.imp.memset;
    0x00001410 addiu sp, sp, -0xe0       |     
    0x00001414 move a1, zero             |     a1 = 0;
    0x00001418 addiu a2, zero, 0x7c      |     a2 = 0x7c;
    0x0000141c sw gp, 0x28(sp)           |     *(var_28h) = gp;
    0x00001420 sw ra, 0xdc(sp)           |     *(var_dch) = ra;
    0x00001424 sw s3, 0xd8(sp)           |     *(var_d8h) = s3;
    0x00001428 sw s1, 0xd0(sp)           |     *(var_d0h) = s1;
    0x0000142c sw s2, 0xd4(sp)           |     *(var_d4h) = s2;
    0x00001430 sw s0, 0xcc(sp)           |     *(var_cch) = s0;
    0x00001434 move s3, a0               |     s3 = a0;
    0x00001438 sw zero, 0x30(sp)         |     *(var_30h) = 0;
    0x0000143c lw s1, -0x7fd8(gp)        |     s1 = *((gp - 8182));
    0x00001440 addiu a0, sp, 0x34        |     a0 = sp + 0x34;
    0x00001444 jalr t9                   |     t9 ();
    0x00001448 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x0000144c addiu a0, s1, 0x5e44      |     a0 = s1 + str._proc_jz_efuse_efuse_chip_id;
    0x00001450 sw zero, 0xb0(sp)         |     *(var_b0h) = 0;
    0x00001454 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001458 lw t9, -0x7f7c(gp)        |     t9 = sym.imp.fopen;
    0x0000145c sb zero, 0xb4(sp)         |     *(var_b4h) = 0;
    0x00001460 addiu a1, a1, 0x5db0      |     a1 += 0x5db0;
    0x00001464 sw zero, 0xc4(sp)         |     *(var_c4h) = 0;
    0x00001468 sw zero, 0xc0(sp)         |     *(var_c0h) = 0;
    0x0000146c sw zero, 0xbc(sp)         |     *(var_bch) = 0;
    0x00001470 sw zero, 0xb8(sp)         |     *(var_b8h) = 0;
    0x00001474 jalr t9                   |     t9 ();
    0x00001478 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x0000147c beqz v0, 0x15bc           |         goto label_1;
                                         |     }
    0x00001480 lw t9, -0x7f10(gp)        |     t9 = sym.imp.fgets;
    0x00001484 addiu a0, sp, 0x30        |     a0 = sp + 0x30;
    0x00001488 addiu a1, zero, 0x80      |     a1 = 0x80;
    0x0000148c move a2, v0               |     a2 = v0;
    0x00001490 move s0, v0               |     s0 = v0;
    0x00001494 jalr t9                   |     t9 ();
    0x00001498 lw gp, 0x28(sp)           |     gp = *(var_28h);
                                         |     if (v0 == 0) {
    0x0000149c beqz v0, 0x1620           |         goto label_2;
                                         |     }
    0x000014a0 lw t9, -0x7f88(gp)        |     t9 = sym.imp.fclose;
    0x000014a4 move a0, s0               |     a0 = s0;
    0x000014a8 addiu s2, sp, 0x50        |     s2 = sp + 0x50;
    0x000014ac jalr t9                   |     t9 ();
    0x000014b0 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x000014b4 addiu v0, sp, 0xbc        |     v0 = sp + 0xbc;
    0x000014b8 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x000014bc lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x000014c0 lw t9, -0x7f6c(gp)        |     t9 = sym.imp.sscanf;
    0x000014c4 addiu v0, sp, 0xb8        |     v0 = sp + 0xb8;
    0x000014c8 addiu a3, sp, 0xc0        |     a3 = sp + 0xc0;
    0x000014cc addiu a0, sp, 0x30        |     a0 = sp + 0x30;
    0x000014d0 addiu a1, a1, 0x5e98      |     a1 += str.__:_:__08x__08x__08x__08x;
    0x000014d4 addiu a2, sp, 0xc4        |     a2 = sp + 0xc4;
    0x000014d8 sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x000014dc jalr t9                   |     t9 ();
    0x000014e0 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x000014e4 addiu a0, sp, 0x30        |     a0 = sp + 0x30;
    0x000014e8 move a1, zero             |     a1 = 0;
    0x000014ec lw t9, -0x7f80(gp)        |     t9 = sym.imp.memset;
    0x000014f0 addiu a2, zero, 0x80      |     a2 = 0x80;
    0x000014f4 addiu s0, sp, 0x30        |     s0 = sp + 0x30;
    0x000014f8 jalr t9                   |     t9 ();
    0x000014fc lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00001500 lw v0, 0xbc(sp)           |     v0 = *(var_bch);
    0x00001504 lw a2, 0xc4(sp)           |     a2 = *(var_c4h);
    0x00001508 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x0000150c sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00001510 lw v0, 0xb8(sp)           |     v0 = *(var_b8h);
    0x00001514 lw t9, -0x7f9c(gp)        |     t9 = sym.imp.sprintf
    0x00001518 lw a3, 0xc0(sp)           |     a3 = *(var_c0h);
    0x0000151c addiu a0, sp, 0x30        |     a0 = sp + 0x30;
    0x00001520 addiu a1, a1, 0x5eb4      |     a1 += str._08x_08x_08x_08x;
    0x00001524 sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00001528 jalr t9                   |     t9 ();
    0x0000152c lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00001530 lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
    0x00001534 lw t9, -0x7fa8(gp)        |     t9 = sym.imp.atoi;
    0x00001538 addiu a0, a0, 0x5ec8      |     a0 += str.53ef;
    0x0000153c jalr t9                   |     t9 ();
    0x00001540 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00001544 move s1, v0               |     s1 = v0;
                                         |     do {
    0x00001548 lw t9, -0x7f64(gp)        |         t9 = sym.imp.strncpy;
    0x0000154c move a1, s0               |         a1 = s0;
    0x00001550 addiu a0, sp, 0xb0        |         a0 = sp + 0xb0;
    0x00001554 addiu a2, zero, 4         |         a2 = 4;
    0x00001558 jalr t9                   |         t9 ();
    0x0000155c lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x00001560 addiu a0, sp, 0xb0        |         a0 = sp + 0xb0;
    0x00001564 sb zero, 0xb4(sp)         |         *(var_b4h) = 0;
    0x00001568 lw t9, -0x7fa8(gp)        |         t9 = sym.imp.atoi;
    0x0000156c addiu s0, s0, 4           |         s0 += 4;
    0x00001570 jalr t9                   |         t9 ();
    0x00001574 xor s1, s1, v0            |         s1 ^= v0;
    0x00001578 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x0000157c bne s0, s2, 0x1548        |         
                                         |     } while (s0 != s2);
    0x00001580 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00001584 lw t9, -0x7f9c(gp)        |     t9 = sym.imp.sprintf
    0x00001588 move a0, s3               |     a0 = s3;
    0x0000158c addiu a1, a1, 0x5ed0      |     a1 += str._04x_s;
    0x00001590 move a2, s1               |     a2 = s1;
    0x00001594 addiu a3, sp, 0x30        |     a3 = sp + 0x30;
    0x00001598 jalr t9                   |     t9 ();
    0x0000159c move v0, zero             |     v0 = 0;
                                         |     do {
                                         | label_0:
    0x000015a0 lw ra, 0xdc(sp)           |         ra = *(var_dch);
    0x000015a4 lw s3, 0xd8(sp)           |         s3 = *(var_d8h);
    0x000015a8 lw s2, 0xd4(sp)           |         s2 = *(var_d4h);
    0x000015ac lw s1, 0xd0(sp)           |         s1 = *(var_d0h);
    0x000015b0 lw s0, 0xcc(sp)           |         s0 = *(var_cch);
    0x000015b4 addiu sp, sp, 0xe0        |         
    0x000015b8 jr ra                     |         return v0;
                                         | label_1:
    0x000015bc lw t9, -0x7f78(gp)        |         t9 = sym.imp.IMP_Log_Get_Option;
    0x000015c0 addiu s1, s1, 0x5e44      |         s1 += str._proc_jz_efuse_efuse_chip_id;
    0x000015c4 jalr t9                   |         t9 ();
    0x000015c8 lw gp, 0x28(sp)           |         gp = *(var_28h);
    0x000015cc move a1, v0               |         a1 = v0;
    0x000015d0 sw s1, 0x20(sp)           |         *(var_20h) = s1;
    0x000015d4 lw v1, -0x7fd8(gp)        |         v1 = *((gp - 8182));
    0x000015d8 lw a3, -0x7fd8(gp)        |         a3 = *((gp - 8182));
    0x000015dc lw t9, -0x7f58(gp)        |         t9 = sym.imp.imp_log_fun;
    0x000015e0 addiu v1, v1, 0x5dbc      |         v1 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_base_base.c;
    0x000015e4 sw v1, 0x10(sp)           |         *(var_10h) = v1;
    0x000015e8 addiu v1, zero, 0x4c      |         v1 = 0x4c;
    0x000015ec sw v1, 0x14(sp)           |         *(var_14h) = v1;
    0x000015f0 lw v1, -0x7fd8(gp)        |         v1 = *((gp - 8182));
    0x000015f4 addiu a0, zero, 6         |         a0 = 6;
    0x000015f8 addiu a2, zero, 2         |         a2 = 2;
    0x000015fc addiu v1, v1, 0x6048      |         v1 += obj.__func__.3750;
    0x00001600 sw v1, 0x18(sp)           |         *(var_18h) = v1;
    0x00001604 lw v1, -0x7fd8(gp)        |         v1 = *((gp - 8182));
    0x00001608 addiu a3, a3, 0x5db4      |         a3 += str.base;
    0x0000160c addiu v1, v1, 0x5e64      |         v1 += str.Get_Dev_ID__open__s_failed_n;
    0x00001610 sw v1, 0x1c(sp)           |         *(var_1ch) = v1;
    0x00001614 jalr t9                   |         t9 ();
    0x00001618 addiu v0, zero, -1        |         v0 = -1;
    0x0000161c b 0x15a0                  |         
                                         |     } while (1);
                                         | label_2:
    0x00001620 lw t9, -0x7f78(gp)        |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00001624 jalr t9                   |     t9 ();
    0x00001628 nop                       |     
    0x0000162c lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x00001630 move a1, v0               |     a1 = v0;
    0x00001634 addiu a0, zero, 6         |     a0 = 6;
    0x00001638 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x0000163c lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x00001640 lw t9, -0x7f58(gp)        |     t9 = sym.imp.imp_log_fun;
    0x00001644 addiu v0, v0, 0x5dbc      |     v0 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_base_base.c;
    0x00001648 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x0000164c addiu v0, zero, 0x51      |     v0 = 0x51;
    0x00001650 sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00001654 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x00001658 addiu a2, zero, 2         |     a2 = 2;
    0x0000165c addiu a3, a3, 0x5db4      |     a3 += str.base;
    0x00001660 addiu v0, v0, 0x6048      |     v0 += obj.__func__.3750;
    0x00001664 sw v0, 0x18(sp)           |     *(var_18h) = v0;
    0x00001668 lw v0, -0x7fd8(gp)        |     v0 = *((gp - 8182));
    0x0000166c addiu v0, v0, 0x5e80      |     v0 += str.Get_Device_ID_failed_n;
    0x00001670 sw v0, 0x1c(sp)           |     *(var_1ch) = v0;
    0x00001674 jalr t9                   |     t9 ();
    0x00001678 lw gp, 0x28(sp)           |     gp = *(var_28h);
    0x0000167c lw t9, -0x7f88(gp)        |     t9 = sym.imp.fclose;
    0x00001680 move a0, s0               |     a0 = s0;
    0x00001684 jalr t9                   |     t9 ();
    0x00001688 addiu v0, zero, -1        |     v0 = -1;
    0x0000168c b 0x15a0                  |     goto label_0;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libsysutils.so @ 0x13b4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.SU_Base_GetVersion ()    | void SU_Base_GetVersion () {
    0x000013b4 lui gp, 2                 |     
    0x000013b8 addiu gp, gp, -0x2394     |     
    0x000013bc addu gp, gp, t9           |     gp += t9;
    0x000013c0 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
                                         |     if (a0 != 0) {
    0x000013c4 beqz a0, 0x13f8           |         
    0x000013c8 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x000013cc lw t9, -0x7f9c(gp)        |         t9 = sym.imp.sprintf
    0x000013d0 addiu sp, sp, -0x20       |         
    0x000013d4 addiu a1, a1, 0x5e30      |         a1 += str.SYSUTILS__s;
    0x000013d8 sw ra, 0x1c(sp)           |         *(var_1ch) = ra;
    0x000013dc sw gp, 0x10(sp)           |         *(var_10h) = gp;
    0x000013e0 addiu a2, a2, 0x5e3c      |         a2 += str.3.11.0;
    0x000013e4 jalr t9                   |         t9 ();
    0x000013e8 lw ra, 0x1c(sp)           |         ra = *(var_1ch);
    0x000013ec move v0, zero             |         v0 = 0;
    0x000013f0 addiu sp, sp, 0x20        |         
    0x000013f4 jr ra                     |         return v0;
                                         |     }
    0x000013f8 addiu v0, zero, -1        |     v0 = -1;
    0x000013fc jr ra                     |     return v0;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libsysutils.so @ 0x51ec */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.SU_Key_OpenEvent ()      | void SU_Key_OpenEvent () {
    0x000051ec lui gp, 2                 |     
    0x000051f0 addiu gp, gp, -0x61cc     |     
    0x000051f4 addu gp, gp, t9           |     gp += t9;
    0x000051f8 addiu sp, sp, -0x10b0     |     
    0x000051fc sw s7, 0x10a4(sp)         |     *(var_10a4h) = s7;
    0x00005200 lw s7, -0x7fd8(gp)        |     s7 = *((gp - 8182));
    0x00005204 lw t9, -0x7f8c(gp)        |     t9 = sym.imp.opendir;
    0x00005208 sw gp, 0x30(sp)           |     *(var_30h) = gp;
    0x0000520c sw ra, 0x10ac(sp)         |     *(var_10ach) = ra;
    0x00005210 sw fp, 0x10a8(sp)         |     *(var_10a8h) = fp;
    0x00005214 sw s6, 0x10a0(sp)         |     *(var_10a0h) = s6;
    0x00005218 sw s5, 0x109c(sp)         |     *(var_109ch) = s5;
    0x0000521c sw s4, 0x1098(sp)         |     *(var_1098h) = s4;
    0x00005220 sw s3, 0x1094(sp)         |     *(var_1094h) = s3;
    0x00005224 sw s2, 0x1090(sp)         |     *(var_1090h) = s2;
    0x00005228 sw s1, 0x108c(sp)         |     *(var_108ch) = s1;
    0x0000522c sw s0, 0x1088(sp)         |     *(var_1088h) = s0;
    0x00005230 addiu a0, s7, 0x6848      |     a0 = s7 + str._dev_input;
    0x00005234 jalr t9                   |     t9 ();
    0x00005238 lw gp, 0x30(sp)           |     gp = *(var_30h);
                                         |     if (v0 == 0) {
    0x0000523c beqz v0, 0x554c           |         goto label_3;
                                         |     }
    0x00005240 lw s5, -0x7fd8(gp)        |     s5 = *((gp - 8182));
    0x00005244 lw s4, -0x7fd8(gp)        |     s4 = *((gp - 8182));
    0x00005248 lw fp, -0x7fd8(gp)        |     fp = *((gp - 8182));
    0x0000524c lw s3, -0x7fd8(gp)        |     s3 = *((gp - 8182));
    0x00005250 lw s6, -0x7fd8(gp)        |     s6 = *((gp - 8182));
    0x00005254 move s1, v0               |     s1 = v0;
    0x00005258 addiu s5, s5, 0x6634      |     s5 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_misc_key.c;
    0x0000525c addiu s4, s4, 0x6940      |     s4 += obj.__func__.4618;
    0x00005260 addiu fp, fp, 0x687c      |     fp += str.could_not_get_device_name_for__s__s:__s_n;
                                         |     do {
                                         | label_1:
    0x00005264 lw t9, -0x7f24(gp)        |         t9 = sym.imp.readdir;
    0x00005268 move a0, s1               |         a0 = s1;
    0x0000526c jalr t9                   |         t9 ();
    0x00005270 lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x00005274 move a0, s1               |         a0 = s1;
    0x00005278 addiu s2, v0, 0xb         |         s2 = v0 + 0xb;
    0x0000527c lw t9, -0x7f60(gp)        |         t9 = sym.imp.dirfd;
                                         |         if (v0 == 0) {
    0x00005280 beqz v0, 0x53f4           |             goto label_4;
                                         |         }
                                         | label_0:
    0x00005284 jalr t9                   |         t9 ();
    0x00005288 nop                       |         
    0x0000528c lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x00005290 move a1, s2               |         a1 = s2;
    0x00005294 move a0, v0               |         a0 = v0;
    0x00005298 lw t9, -0x7fac(gp)        |         t9 = sym.imp.openat;
    0x0000529c move a2, zero             |         a2 = 0;
    0x000052a0 jalr t9                   |         t9 ();
    0x000052a4 lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x000052a8 lui a1, 0x404f            |         a1 = 0x404f4506;
    0x000052ac addiu a1, a1, 0x4506      |         
    0x000052b0 addiu a2, sp, 0x1038      |         a2 = sp + 0x1038;
    0x000052b4 move s0, v0               |         s0 = v0;
    0x000052b8 move a0, v0               |         a0 = v0;
    0x000052bc lw t9, -0x7efc(gp)        |         t9 = sym.imp.ioctl;
                                         |         if (v0 < 0) {
    0x000052c0 bltz v0, 0x538c           |             goto label_5;
                                         |         }
    0x000052c4 jalr t9                   |         t9 ();
    0x000052c8 nop                       |         
    0x000052cc lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x000052d0 move a0, s0               |         a0 = s0;
    0x000052d4 lw t9, -0x7fc4(gp)        |         t9 = sym.imp.close;
    0x000052d8 move s0, v0               |         s0 = v0;
    0x000052dc jalr t9                   |         t9 ();
    0x000052e0 lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x000052e4 addiu a0, sp, 0x1038      |         a0 = sp + 0x1038;
    0x000052e8 addiu a1, s3, 0x68a8      |         a1 = s3 + str.gpio_keys;
    0x000052ec lw t9, -0x7f94(gp)        |         t9 = sym.imp.strcmp;
                                         |         if (s0 <= 0) {
    0x000052f0 blez s0, 0x5450           |             goto label_6;
                                         |         }
    0x000052f4 jalr t9                   |         t9 ();
    0x000052f8 nop                       |         
    0x000052fc lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x00005300 bnez v0, 0x5264           |         
                                         |     } while (v0 != 0);
    0x00005304 lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00005308 lw t9, -0x7f9c(gp)        |     t9 = sym.imp.sprintf
    0x0000530c addiu s0, sp, 0x38        |     s0 = sp + 0x38;
    0x00005310 move a0, s0               |     a0 = s0;
    0x00005314 addiu a1, a1, 0x68b4      |     a1 += str._s__s;
    0x00005318 addiu a2, s7, 0x6848      |     a2 = s7 + str._dev_input;
    0x0000531c move a3, s2               |     a3 = s2;
    0x00005320 jalr t9                   |     t9 ();
    0x00005324 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x00005328 lw t9, -0x7f78(gp)        |     t9 = sym.imp.IMP_Log_Get_Option;
    0x0000532c jalr t9                   |     t9 ();
    0x00005330 nop                       |     
    0x00005334 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x00005338 sw s0, 0x20(sp)           |     *(var_20h) = s0;
    0x0000533c addiu a0, zero, 3         |     a0 = 3;
    0x00005340 lw v1, -0x7fd8(gp)        |     v1 = *((gp - 8182));
    0x00005344 lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x00005348 lw t9, -0x7f58(gp)        |     t9 = sym.imp.imp_log_fun;
    0x0000534c addiu v1, v1, 0x6634      |     v1 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_misc_key.c;
    0x00005350 sw v1, 0x10(sp)           |     *(var_10h) = v1;
    0x00005354 addiu v1, zero, 0x4a      |     v1 = 0x4a;
    0x00005358 sw v1, 0x14(sp)           |     *(var_14h) = v1;
    0x0000535c lw v1, -0x7fd8(gp)        |     v1 = *((gp - 8182));
    0x00005360 move a1, v0               |     a1 = v0;
    0x00005364 addiu a2, zero, 2         |     a2 = 2;
    0x00005368 addiu v1, v1, 0x6940      |     v1 += obj.__func__.4618;
    0x0000536c sw v1, 0x18(sp)           |     *(var_18h) = v1;
    0x00005370 lw v1, -0x7fd8(gp)        |     v1 = *((gp - 8182));
    0x00005374 addiu a3, a3, 0x662c      |     a3 += str.SU_Key;
    0x00005378 addiu v1, v1, 0x68bc      |     v1 += str.GPIO_key_device_:__s;
    0x0000537c sw v1, 0x1c(sp)           |     *(var_1ch) = v1;
    0x00005380 jalr t9                   |     t9 ();
    0x00005384 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x00005388 b 0x53f8                  |     goto label_7;
                                         | label_5:
    0x0000538c lw t9, -0x7f78(gp)        |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00005390 jalr t9                   |     t9 ();
    0x00005394 nop                       |     
    0x00005398 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x0000539c addiu v1, zero, 0x3b      |     v1 = 0x3b;
    0x000053a0 sw v1, 0x14(sp)           |     *(var_14h) = v1;
    0x000053a4 lw v1, -0x7fd8(gp)        |     v1 = *((gp - 8182));
    0x000053a8 lw t9, -0x7f58(gp)        |     t9 = sym.imp.imp_log_fun;
    0x000053ac addiu a0, zero, 6         |     a0 = 6;
    0x000053b0 addiu v1, v1, 0x686c      |     v1 += str.openat_error_n;
    0x000053b4 sw v1, 0x1c(sp)           |     *(var_1ch) = v1;
    0x000053b8 move a1, v0               |     a1 = v0;
    0x000053bc addiu a2, zero, 2         |     a2 = 2;
    0x000053c0 addiu a3, s6, 0x662c      |     a3 = s6 + str.SU_Key;
    0x000053c4 sw s5, 0x10(sp)           |     *(var_10h) = s5;
    0x000053c8 sw s4, 0x18(sp)           |     *(var_18h) = s4;
    0x000053cc jalr t9                   |     t9 ();
    0x000053d0 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x000053d4 lw t9, -0x7f24(gp)        |     t9 = sym.imp.readdir;
    0x000053d8 move a0, s1               |     a0 = s1;
    0x000053dc jalr t9                   |     t9 ();
    0x000053e0 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x000053e4 move a0, s1               |     a0 = s1;
    0x000053e8 addiu s2, v0, 0xb         |     s2 = v0 + 0xb;
    0x000053ec lw t9, -0x7f60(gp)        |     t9 = sym.imp.dirfd;
                                         |     if (v0 != 0) {
    0x000053f0 bnez v0, 0x5284           |         goto label_0;
                                         |     }
                                         | label_4:
    0x000053f4 addiu s0, sp, 0x38        |     s0 = sp + 0x38;
                                         | label_7:
    0x000053f8 lw t9, -0x7fbc(gp)        |     t9 = sym.imp.closedir;
    0x000053fc move a0, s1               |     a0 = s1;
    0x00005400 jalr t9                   |     t9 ();
    0x00005404 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x00005408 move a0, s0               |     a0 = s0;
    0x0000540c lw t9, -0x7fb4(gp)        |     t9 = sym.imp.open;
    0x00005410 move a1, zero             |     a1 = 0;
    0x00005414 jalr t9                   |     t9 ();
    0x00005418 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x0000541c bltz v0, 0x54c4           |     
                                         |     while (1) {
                                         | label_2:
    0x00005420 lw ra, 0x10ac(sp)         |         ra = *(var_10ach);
    0x00005424 lw fp, 0x10a8(sp)         |         fp = *(var_10a8h);
    0x00005428 lw s7, 0x10a4(sp)         |         s7 = *(var_10a4h);
    0x0000542c lw s6, 0x10a0(sp)         |         s6 = *(var_10a0h);
    0x00005430 lw s5, 0x109c(sp)         |         s5 = *(var_109ch);
    0x00005434 lw s4, 0x1098(sp)         |         s4 = *(var_1098h);
    0x00005438 lw s3, 0x1094(sp)         |         s3 = *(var_1094h);
    0x0000543c lw s2, 0x1090(sp)         |         s2 = *(var_1090h);
    0x00005440 lw s1, 0x108c(sp)         |         s1 = *(var_108ch);
    0x00005444 lw s0, 0x1088(sp)         |         s0 = *(var_1088h);
    0x00005448 addiu sp, sp, 0x10b0      |         
    0x0000544c jr ra                     |         return v0;
                                         | label_6:
    0x00005450 lw t9, -0x7f78(gp)        |         t9 = sym.imp.IMP_Log_Get_Option;
    0x00005454 jalr t9                   |         t9 ();
    0x00005458 nop                       |         
    0x0000545c lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x00005460 lw t9, -0x7fa4(gp)        |         t9 = sym.imp.__errno_location;
    0x00005464 move s0, v0               |         s0 = v0;
    0x00005468 jalr t9                   |         t9 ();
    0x0000546c lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x00005470 lw t9, -0x7f08(gp)        |         t9 = sym.imp.strerror;
    0x00005474 lw a0, (v0)               |         a0 = *(v0);
    0x00005478 jalr t9                   |         t9 ();
    0x0000547c lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x00005480 addiu v1, s7, 0x6848      |         v1 = s7 + str._dev_input;
    0x00005484 addiu a0, zero, 0x44      |         a0 = 0x44;
    0x00005488 lw t9, -0x7f58(gp)        |         t9 = sym.imp.imp_log_fun;
    0x0000548c sw a0, 0x14(sp)           |         *(var_14h) = a0;
    0x00005490 sw s5, 0x10(sp)           |         *(var_10h) = s5;
    0x00005494 sw s4, 0x18(sp)           |         *(var_18h) = s4;
    0x00005498 sw fp, 0x1c(sp)           |         *(var_1ch) = fp;
    0x0000549c sw v1, 0x20(sp)           |         *(var_20h) = v1;
    0x000054a0 sw s2, 0x24(sp)           |         *(var_24h) = s2;
    0x000054a4 sw v0, 0x28(sp)           |         *(var_28h) = v0;
    0x000054a8 addiu a0, zero, 2         |         a0 = 2;
    0x000054ac move a1, s0               |         a1 = s0;
    0x000054b0 addiu a2, zero, 2         |         a2 = 2;
    0x000054b4 addiu a3, s6, 0x662c      |         a3 = s6 + str.SU_Key;
    0x000054b8 jalr t9                   |         t9 ();
    0x000054bc lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x000054c0 b 0x5264                  |         goto label_1;
    0x000054c4 lw t9, -0x7f78(gp)        |         t9 = sym.imp.IMP_Log_Get_Option;
    0x000054c8 jalr t9                   |         t9 ();
    0x000054cc nop                       |         
    0x000054d0 lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x000054d4 lw t9, -0x7fa4(gp)        |         t9 = sym.imp.__errno_location;
    0x000054d8 move s1, v0               |         s1 = v0;
    0x000054dc jalr t9                   |         t9 ();
    0x000054e0 lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x000054e4 lw t9, -0x7f08(gp)        |         t9 = sym.imp.strerror;
    0x000054e8 lw a0, (v0)               |         a0 = *(v0);
    0x000054ec jalr t9                   |         t9 ();
    0x000054f0 lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x000054f4 sw v0, 0x24(sp)           |         *(var_24h) = v0;
    0x000054f8 sw s0, 0x20(sp)           |         *(var_20h) = s0;
    0x000054fc lw v1, -0x7fd8(gp)        |         v1 = *((gp - 8182));
    0x00005500 lw a3, -0x7fd8(gp)        |         a3 = *((gp - 8182));
    0x00005504 lw t9, -0x7f58(gp)        |         t9 = sym.imp.imp_log_fun;
    0x00005508 addiu v1, v1, 0x6634      |         v1 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_misc_key.c;
    0x0000550c sw v1, 0x10(sp)           |         *(var_10h) = v1;
    0x00005510 addiu v1, zero, 0x53      |         v1 = 0x53;
    0x00005514 sw v1, 0x14(sp)           |         *(var_14h) = v1;
    0x00005518 lw v1, -0x7fd8(gp)        |         v1 = *((gp - 8182));
    0x0000551c addiu a0, zero, 6         |         a0 = 6;
    0x00005520 move a1, s1               |         a1 = s1;
    0x00005524 addiu v1, v1, 0x6940      |         v1 += obj.__func__.4618;
    0x00005528 sw v1, 0x18(sp)           |         *(var_18h) = v1;
    0x0000552c lw v1, -0x7fd8(gp)        |         v1 = *((gp - 8182));
    0x00005530 addiu a2, zero, 2         |         a2 = 2;
    0x00005534 addiu a3, a3, 0x662c      |         a3 += str.SU_Key;
    0x00005538 addiu v1, v1, 0x68d4      |         v1 += str.open__s_error:__s_n;
    0x0000553c sw v1, 0x1c(sp)           |         *(var_1ch) = v1;
    0x00005540 jalr t9                   |         t9 ();
    0x00005544 addiu v0, zero, -1        |         v0 = -1;
    0x00005548 b 0x5420                  |         
                                         |     }
                                         | label_3:
    0x0000554c lw t9, -0x7f78(gp)        |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00005550 jalr t9                   |     t9 ();
    0x00005554 nop                       |     
    0x00005558 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x0000555c move a1, v0               |     a1 = v0;
    0x00005560 addiu a0, zero, 6         |     a0 = 6;
    0x00005564 lw v1, -0x7fd8(gp)        |     v1 = *((gp - 8182));
    0x00005568 lw a3, -0x7fd8(gp)        |     a3 = *((gp - 8182));
    0x0000556c lw t9, -0x7f58(gp)        |     t9 = sym.imp.imp_log_fun;
    0x00005570 addiu v1, v1, 0x6634      |     v1 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_misc_key.c;
    0x00005574 sw v1, 0x10(sp)           |     *(var_10h) = v1;
    0x00005578 addiu v1, zero, 0x32      |     v1 = 0x32;
    0x0000557c sw v1, 0x14(sp)           |     *(var_14h) = v1;
    0x00005580 lw v1, -0x7fd8(gp)        |     v1 = *((gp - 8182));
    0x00005584 addiu a2, zero, 2         |     a2 = 2;
    0x00005588 addiu a3, a3, 0x662c      |     a3 += str.SU_Key;
    0x0000558c addiu v1, v1, 0x6940      |     v1 += obj.__func__.4618;
    0x00005590 sw v1, 0x18(sp)           |     *(var_18h) = v1;
    0x00005594 lw v1, -0x7fd8(gp)        |     v1 = *((gp - 8182));
    0x00005598 addiu v1, v1, 0x6854      |     v1 += str.open_input_dir_error_n;
    0x0000559c sw v1, 0x1c(sp)           |     *(var_1ch) = v1;
    0x000055a0 jalr t9                   |     t9 ();
    0x000055a4 addiu v0, zero, -1        |     v0 = -1;
    0x000055a8 b 0x5420                  |     goto label_2;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libsysutils.so @ 0x3fb0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.SU_LED_Command ()        | void SU_LED_Command () {
    0x00003fb0 lui gp, 2                 |     
    0x00003fb4 addiu gp, gp, -0x4f90     |     
    0x00003fb8 addu gp, gp, t9           |     gp += t9;
    0x00003fbc addiu sp, sp, -0x68       |     
    0x00003fc0 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00003fc4 sw s0, 0x5c(sp)           |     *(var_5ch) = s0;
    0x00003fc8 move s0, a1               |     s0 = a1;
    0x00003fcc lw a1, -0x7fd8(gp)        |     a1 = *((gp - 8182));
    0x00003fd0 lw t9, -0x7f9c(gp)        |     t9 = sym.imp.sprintf
    0x00003fd4 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x00003fd8 move a3, a0               |     a3 = a0;
    0x00003fdc sw ra, 0x64(sp)           |     *(var_64h) = ra;
    0x00003fe0 sw s1, 0x60(sp)           |     *(var_60h) = s1;
    0x00003fe4 addiu a0, sp, 0x18        |     a0 = sp + 0x18;
    0x00003fe8 addiu a1, a1, 0x6494      |     a1 += str._s_d;
    0x00003fec addiu a2, a2, 0x65c4      |     a2 += str._proc_board_power_led;
    0x00003ff0 jalr t9                   |     t9 ();
    0x00003ff4 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (s0 != 0) {
    0x00003ff8 bnez s0, 0x4064           |         goto label_1;
                                         |     }
    0x00003ffc lw s1, -0x7fd8(gp)        |     s1 = *((gp - 8182));
    0x00004000 addiu s1, s1, 0x5f50      |     s1 += 0x5f50;
                                         |     do {
    0x00004004 lw t9, -0x7fb4(gp)        |         t9 = sym.imp.open;
    0x00004008 addiu a0, sp, 0x18        |         a0 = sp + 0x18;
    0x0000400c addiu a1, zero, 1         |         a1 = 1;
    0x00004010 jalr t9                   |         t9 ();
    0x00004014 move s0, v0               |         s0 = v0;
    0x00004018 lw gp, 0x10(sp)           |         gp = *(var_10h);
                                         |         if (v0 < 0) {
    0x0000401c bltz v0, 0x40b0           |             goto label_2;
                                         |         }
    0x00004020 lw t9, -0x7f38(gp)        |         t9 = sym.imp.write;
    0x00004024 move a0, v0               |         a0 = v0;
    0x00004028 move a1, s1               |         a1 = s1;
    0x0000402c addiu a2, zero, 1         |         a2 = 1;
    0x00004030 jalr t9                   |         t9 ();
    0x00004034 addiu v1, zero, 1         |         v1 = 1;
    0x00004038 lw gp, 0x10(sp)           |         gp = *(var_10h);
                                         |         if (v0 != v1) {
    0x0000403c bne v0, v1, 0x4070        |             goto label_3;
                                         |         }
    0x00004040 lw t9, -0x7fc4(gp)        |         t9 = sym.imp.close;
    0x00004044 move a0, s0               |         a0 = s0;
    0x00004048 jalr t9                   |         t9 ();
    0x0000404c move v0, zero             |         v0 = 0;
                                         | label_0:
    0x00004050 lw ra, 0x64(sp)           |         ra = *(var_64h);
    0x00004054 lw s1, 0x60(sp)           |         s1 = *(var_60h);
    0x00004058 lw s0, 0x5c(sp)           |         s0 = *(var_5ch);
    0x0000405c addiu sp, sp, 0x68        |         
    0x00004060 jr ra                     |         return v0;
                                         | label_1:
    0x00004064 lw s1, -0x7fd8(gp)        |         s1 = *((gp - 8182));
    0x00004068 addiu s1, s1, 0x65c0      |         s1 += 0x65c0;
    0x0000406c b 0x4004                  |         
                                         |     } while (1);
                                         | label_3:
    0x00004070 lw t9, -0x7fa4(gp)        |     t9 = sym.imp.__errno_location;
    0x00004074 jalr t9                   |     t9 ();
    0x00004078 nop                       |     
    0x0000407c lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00004080 lw t9, -0x7f08(gp)        |     t9 = sym.imp.strerror;
    0x00004084 lw a0, (v0)               |     a0 = *(v0);
    0x00004088 jalr t9                   |     t9 ();
    0x0000408c lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00004090 addiu a1, sp, 0x18        |     a1 = sp + 0x18;
    0x00004094 move a2, v0               |     a2 = v0;
    0x00004098 lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
    0x0000409c lw t9, -0x7f04(gp)        |     t9 = sym.imp.printf;
    0x000040a0 addiu a0, a0, 0x65f0      |     a0 += str.write__s_error:__s;
    0x000040a4 jalr t9                   |     t9 ();
    0x000040a8 addiu v0, zero, -1        |     v0 = -1;
    0x000040ac b 0x4050                  |     goto label_0;
                                         | label_2:
    0x000040b0 lw t9, -0x7fa4(gp)        |     t9 = sym.imp.__errno_location;
    0x000040b4 jalr t9                   |     t9 ();
    0x000040b8 nop                       |     
    0x000040bc lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x000040c0 lw t9, -0x7f08(gp)        |     t9 = sym.imp.strerror;
    0x000040c4 lw a0, (v0)               |     a0 = *(v0);
    0x000040c8 jalr t9                   |     t9 ();
    0x000040cc lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x000040d0 addiu a1, sp, 0x18        |     a1 = sp + 0x18;
    0x000040d4 move a2, v0               |     a2 = v0;
    0x000040d8 lw a0, -0x7fd8(gp)        |     a0 = *((gp - 8182));
    0x000040dc lw t9, -0x7f04(gp)        |     t9 = sym.imp.printf;
    0x000040e0 addiu a0, a0, 0x65dc      |     a0 += str.open__s_error:__s;
    0x000040e4 jalr t9                   |     t9 ();
    0x000040e8 addiu v0, zero, -1        |     v0 = -1;
    0x000040ec b 0x4050                  |     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;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libsysutils.so @ 0x4bdc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.update_enabled_keys ()       | void update_enabled_keys () {
    0x00004bdc lui gp, 2                     |     
    0x00004be0 addiu gp, gp, -0x5bbc         |     
    0x00004be4 addu gp, gp, t9               |     gp += t9;
    0x00004be8 lw t9, -0x7f80(gp)            |     t9 = sym.imp.memset;
    0x00004bec addiu sp, sp, -0x158          |     
    0x00004bf0 addiu a0, sp, 0xb8            |     a0 = sp + 0xb8;
    0x00004bf4 move a1, zero                 |     a1 = 0;
    0x00004bf8 sw gp, 0x30(sp)               |     *(var_30h) = gp;
    0x00004bfc sw ra, 0x154(sp)              |     *(var_154h) = ra;
    0x00004c00 sw s2, 0x148(sp)              |     *(var_148h) = s2;
    0x00004c04 sw s4, 0x150(sp)              |     *(var_150h) = s4;
    0x00004c08 sw s3, 0x14c(sp)              |     *(var_14ch) = s3;
    0x00004c0c sw s1, 0x144(sp)              |     *(var_144h) = s1;
    0x00004c10 sw s0, 0x140(sp)              |     *(var_140h) = s0;
    0x00004c14 addiu a2, zero, 0x80          |     a2 = 0x80;
    0x00004c18 jalr t9                       |     t9 ();
    0x00004c1c lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00004c20 addiu a0, sp, 0x38            |     a0 = sp + 0x38;
    0x00004c24 move a1, zero                 |     a1 = 0;
    0x00004c28 lw s2, -0x7fe4(gp)            |     s2 = *((gp - 8185));
    0x00004c2c lw t9, -0x7f80(gp)            |     t9 = sym.imp.memset;
    0x00004c30 addiu a2, zero, 0x80          |     a2 = 0x80;
    0x00004c34 jalr t9                       |     t9 ();
    0x00004c38 lw v0, 0x7684(s2)             |     v0 = *((s2 + 7585));
    0x00004c3c lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 <= 0) {
    0x00004c40 blez v0, 0x4f00               |         goto label_3;
                                             |     }
    0x00004c44 lw s1, -0x7fd8(gp)            |     s1 = *((gp - 8182));
    0x00004c48 lw s3, -0x7fe4(gp)            |     s3 = *((gp - 8185));
    0x00004c4c move s0, zero                 |     s0 = 0;
    0x00004c50 addiu s1, s1, 0x66f4          |     s1 += 0x66f4;
    0x00004c54 b 0x4c68                      |     
                                             |     while (v1 != 0) {
    0x00004c58 lw v0, 0x7684(s2)             |         v0 = *((s2 + 7585));
    0x00004c5c slt v0, s0, v0                |         v0 = (s0 < v0) ? 1 : 0;
    0x00004c60 lb v0, 0xb8(sp)               |         v0 = *(var_b8h);
                                             |         if (v0 == 0) {
    0x00004c64 beqz v0, 0x4cc0               |             goto label_4;
                                             |         }
                                             | label_0:
    0x00004c68 lw v1, 0x7680(s3)             |         v1 = *((s3 + 7584));
    0x00004c6c sll v0, s0, 2                 |         v0 = s0 << 2;
    0x00004c70 addu v0, v1, v0               |         v0 = v1 + v0;
    0x00004c74 lhu v1, 2(v0)                 |         v1 = *((v0 + 1));
    0x00004c78 addiu s0, s0, 1               |         s0++;
    0x00004c7c bnez v1, 0x4c58               |         
                                             |     }
    0x00004c80 sw zero, 0x138(sp)            |     *(var_138h) = 0;
    0x00004c84 lw t9, -0x7f9c(gp)            |     t9 = sym.imp.sprintf
    0x00004c88 lhu a2, (v0)                  |     a2 = *(v0);
    0x00004c8c addiu a0, sp, 0x138           |     a0 = sp + aav.0x00000138;
    0x00004c90 move a1, s1                   |     a1 = s1;
    0x00004c94 jalr t9                       |     t9 ();
    0x00004c98 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00004c9c addiu a0, sp, 0xb8            |     a0 = sp + 0xb8;
    0x00004ca0 lw t9, -0x7f40(gp)            |     t9 = sym.imp.strcat;
    0x00004ca4 addiu a1, sp, 0x138           |     a1 = sp + aav.0x00000138;
    0x00004ca8 jalr t9                       |     t9 ();
    0x00004cac lw v0, 0x7684(s2)             |     v0 = *((s2 + 7585));
    0x00004cb0 slt v0, s0, v0                |     v0 = (s0 < v0) ? 1 : 0;
    0x00004cb4 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 != 0) {
    0x00004cb8 bnez v0, 0x4c68               |         goto label_0;
                                             |     }
    0x00004cbc lb v0, 0xb8(sp)               |     v0 = *(var_b8h);
                                             | label_4:
    0x00004cc0 lw t9, -0x7f2c(gp)            |     t9 = sym.imp.strrchr;
                                             |     if (v0 == 0) {
    0x00004cc4 beqz v0, 0x4f00               |         goto label_3;
                                             |     }
    0x00004cc8 addiu a0, sp, 0xb8            |     a0 = sp + 0xb8;
    0x00004ccc addiu a1, zero, 0x2c          |     a1 = 0x2c;
    0x00004cd0 jalr t9                       |     t9 ();
    0x00004cd4 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 != 0) {
    0x00004cd8 beqz v0, 0x4d40               |         
    0x00004cdc lw t9, -0x7f78(gp)            |         t9 = sym.imp.IMP_Log_Get_Option;
    0x00004ce0 sb zero, (v0)                 |         *(v0) = 0;
    0x00004ce4 jalr t9                       |         t9 ();
    0x00004ce8 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00004cec addiu a0, zero, 3             |         a0 = 3;
    0x00004cf0 move a1, v0                   |         a1 = v0;
    0x00004cf4 lw v1, -0x7fd8(gp)            |         v1 = *((gp - 8182));
    0x00004cf8 lw a3, -0x7fd8(gp)            |         a3 = *((gp - 8182));
    0x00004cfc lw t9, -0x7f58(gp)            |         t9 = sym.imp.imp_log_fun;
    0x00004d00 addiu v1, v1, 0x6634          |         v1 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_misc_key.c;
    0x00004d04 sw v1, 0x10(sp)               |         *(var_10h) = v1;
    0x00004d08 addiu v1, zero, 0x147         |         v1 = 0x147;
    0x00004d0c sw v1, 0x14(sp)               |         *(var_14h) = v1;
    0x00004d10 lw v1, -0x7fd8(gp)            |         v1 = *((gp - 8182));
    0x00004d14 addiu a2, zero, 2             |         a2 = 2;
    0x00004d18 addiu a3, a3, 0x662c          |         a3 += str.SU_Key;
    0x00004d1c addiu v1, v1, 0x6990          |         v1 += obj.__func__.4702;
    0x00004d20 sw v1, 0x18(sp)               |         *(var_18h) = v1;
    0x00004d24 lw v1, -0x7fd8(gp)            |         v1 = *((gp - 8182));
    0x00004d28 addiu v1, v1, 0x6804          |         v1 += str.enabled_key_buf:_s_n;
    0x00004d2c sw v1, 0x1c(sp)               |         *(var_1ch) = v1;
    0x00004d30 addiu v1, sp, 0xb8            |         v1 = sp + 0xb8;
    0x00004d34 sw v1, 0x20(sp)               |         *(var_20h) = v1;
    0x00004d38 jalr t9                       |         t9 ();
    0x00004d3c lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |     }
    0x00004d40 lw s0, -0x7fd8(gp)            |     s0 = *((gp - 8182));
    0x00004d44 lw t9, -0x7fb4(gp)            |     t9 = sym.imp.open;
    0x00004d48 addiu a1, zero, 2             |     a1 = 2;
    0x00004d4c addiu a0, s0, 0x6710          |     a0 = s0 + str._sys_devices_platform_gpio_keys_disabled_keys;
    0x00004d50 jalr t9                       |     t9 ();
    0x00004d54 move s4, v0                   |     s4 = v0;
    0x00004d58 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 < 0) {
    0x00004d5c bltz v0, 0x5010               |         goto label_5;
                                             |     }
    0x00004d60 lw t9, -0x7f5c(gp)            |     t9 = sym.imp.read;
    0x00004d64 move a0, v0                   |     a0 = v0;
    0x00004d68 addiu a1, sp, 0x38            |     a1 = sp + 0x38;
    0x00004d6c addiu a2, zero, 0x80          |     a2 = 0x80;
    0x00004d70 jalr t9                       |     t9 ();
    0x00004d74 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 < 0) {
    0x00004d78 bltz v0, 0x512c               |         goto label_6;
                                             |     }
    0x00004d7c lw t9, -0x7f2c(gp)            |     t9 = sym.imp.strrchr;
    0x00004d80 addiu a0, sp, 0x38            |     a0 = sp + 0x38;
    0x00004d84 addiu a1, zero, 0xa           |     a1 = 0xa;
    0x00004d88 jalr t9                       |     t9 ();
    0x00004d8c lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 != 0) {
    0x00004d90 beqz v0, 0x4d98               |         
    0x00004d94 sb zero, (v0)                 |         *(v0) = 0;
                                             |     }
    0x00004d98 lw t9, -0x7f2c(gp)            |     t9 = sym.imp.strrchr;
    0x00004d9c addiu a0, sp, 0x38            |     a0 = sp + 0x38;
    0x00004da0 addiu a1, zero, 0xd           |     a1 = 0xd;
    0x00004da4 jalr t9                       |     t9 ();
    0x00004da8 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 != 0) {
    0x00004dac beqz v0, 0x4db4               |         
    0x00004db0 sb zero, (v0)                 |         *(v0) = 0;
                                             |     }
    0x00004db4 lb v0, 0x38(sp)               |     v0 = *(var_38h);
    0x00004db8 move s3, zero                 |     s3 = 0;
                                             |     if (v0 == 0) {
    0x00004dbc beqz v0, 0x4ed0               |         goto label_7;
                                             |     }
    0x00004dc0 addiu s1, sp, 0xb8            |     s1 = sp + 0xb8;
    0x00004dc4 lw t9, -0x7fb8(gp)            |     t9 = sym.imp.strchr;
                                             |     do {
    0x00004dc8 move a0, s1                   |         a0 = s1;
    0x00004dcc addiu a1, zero, 0x2c          |         a1 = 0x2c;
    0x00004dd0 jalr t9                       |         t9 ();
    0x00004dd4 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00004dd8 move a1, s1                   |         a1 = s1;
    0x00004ddc addiu a0, sp, 0x38            |         a0 = sp + 0x38;
    0x00004de0 move s0, v0                   |         s0 = v0;
    0x00004de4 addiu s1, v0, 1               |         s1 = v0 + 1;
    0x00004de8 lw t9, -0x7f50(gp)            |         t9 = sym.imp.strstr;
                                             |         if (v0 != 0) {
    0x00004dec beqz v0, 0x4e00               |             
    0x00004df0 lb v0, (v0)                   |             v0 = *(v0);
                                             |             if (v0 == 0) {
    0x00004df4 beqz v0, 0x4e00               |                 goto label_8;
                                             |             }
    0x00004df8 nop                           |             
    0x00004dfc sb zero, (s0)                 |             *(s0) = 0;
                                             |         }
                                             | label_8:
    0x00004e00 jalr t9                       |         t9 ();
    0x00004e04 nop                           |         
    0x00004e08 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00004e0c addiu a1, zero, 0x2c          |         a1 = 0x2c;
    0x00004e10 move s2, v0                   |         s2 = v0;
    0x00004e14 move a0, v0                   |         a0 = v0;
    0x00004e18 lw t9, -0x7fb8(gp)            |         t9 = sym.imp.strchr;
                                             |         if (v0 != 0) {
    0x00004e1c beqz v0, 0x4e48               |             
    0x00004e20 addiu s3, s3, 1               |             s3++;
    0x00004e24 jalr t9                       |             t9 ();
    0x00004e28 lw gp, 0x30(sp)               |             gp = *(var_30h);
    0x00004e2c sb zero, (s2)                 |             *(s2) = 0;
    0x00004e30 lw t9, -0x7f40(gp)            |             t9 = sym.imp.strcat;
                                             |             if (v0 == 0) {
    0x00004e34 beqz v0, 0x4e48               |                 goto label_9;
                                             |             }
    0x00004e38 addiu a0, sp, 0x38            |             a0 = sp + 0x38;
    0x00004e3c addiu a1, v0, 1               |             a1 = v0 + 1;
    0x00004e40 jalr t9                       |             t9 ();
    0x00004e44 lw gp, 0x30(sp)               |             gp = *(var_30h);
                                             |         }
                                             |         if (s0 == 0) {
                                             | label_9:
    0x00004e48 beqz s0, 0x4e58               |             goto label_10;
                                             |         }
    0x00004e4c nop                           |         
    0x00004e50 lw t9, -0x7fb8(gp)            |         t9 = sym.imp.strchr;
    0x00004e54 bnez s1, 0x4dc8               |         
                                             |     } while (s1 != 0);
                                             | label_10:
    0x00004e58 lw t9, -0x7fb0(gp)            |     t9 = sym.imp.strlen;
                                             |     if (s3 != 0) {
    0x00004e5c bnez s3, 0x4f24               |         goto label_11;
                                             |     }
    0x00004e60 lw t9, -0x7f78(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00004e64 jalr t9                       |     t9 ();
    0x00004e68 nop                           |     
    0x00004e6c lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00004e70 addiu v1, zero, 0x174         |     v1 = 0x174;
    0x00004e74 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x00004e78 lw a1, -0x7fd8(gp)            |     a1 = *((gp - 8182));
    0x00004e7c lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x00004e80 lw t9, -0x7f58(gp)            |     t9 = sym.imp.imp_log_fun;
    0x00004e84 addiu a1, a1, 0x6634          |     a1 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_misc_key.c;
    0x00004e88 sw a1, 0x10(sp)               |     *(var_10h) = a1;
    0x00004e8c lw a1, -0x7fd8(gp)            |     a1 = *((gp - 8182));
    0x00004e90 addiu a0, a0, 0x6990          |     a0 += obj.__func__.4702;
    0x00004e94 sw v1, 0x24(sp)               |     *(var_24h) = v1;
    0x00004e98 addiu a1, a1, 0x6818          |     a1 += str._s__d_:disabled_keys___s__needenablecnt___d_n;
    0x00004e9c addiu v1, sp, 0x38            |     v1 = sp + 0x38;
    0x00004ea0 sw a0, 0x18(sp)               |     *(var_18h) = a0;
    0x00004ea4 sw a1, 0x1c(sp)               |     *(var_1ch) = a1;
    0x00004ea8 sw a0, 0x20(sp)               |     *(var_20h) = a0;
    0x00004eac sw v1, 0x28(sp)               |     *(var_28h) = v1;
    0x00004eb0 sw zero, 0x2c(sp)             |     *(var_2ch) = 0;
                                             |     do {
    0x00004eb4 lw a3, -0x7fd8(gp)            |         a3 = *((gp - 8182));
    0x00004eb8 addiu a0, zero, 3             |         a0 = 3;
    0x00004ebc move a1, v0                   |         a1 = v0;
    0x00004ec0 addiu a2, zero, 2             |         a2 = 2;
    0x00004ec4 addiu a3, a3, 0x662c          |         a3 += str.SU_Key;
    0x00004ec8 jalr t9                       |         t9 ();
    0x00004ecc lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             | label_7:
    0x00004ed0 lw t9, -0x7fc4(gp)            |         t9 = sym.imp.close;
    0x00004ed4 move a0, s4                   |         a0 = s4;
    0x00004ed8 jalr t9                       |         t9 ();
    0x00004edc move v0, zero                 |         v0 = 0;
                                             | label_1:
    0x00004ee0 lw ra, 0x154(sp)              |         ra = *(var_154h);
    0x00004ee4 lw s4, 0x150(sp)              |         s4 = *(var_150h);
    0x00004ee8 lw s3, 0x14c(sp)              |         s3 = *(var_14ch);
    0x00004eec lw s2, 0x148(sp)              |         s2 = *(var_148h);
    0x00004ef0 lw s1, 0x144(sp)              |         s1 = *(var_144h);
    0x00004ef4 lw s0, 0x140(sp)              |         s0 = *(var_140h);
    0x00004ef8 addiu sp, sp, 0x158           |         
    0x00004efc jr ra                         |         return v1;
                                             | label_3:
    0x00004f00 lw ra, 0x154(sp)              |         ra = *(var_154h);
    0x00004f04 lw s4, 0x150(sp)              |         s4 = *(var_150h);
    0x00004f08 lw s3, 0x14c(sp)              |         s3 = *(var_14ch);
    0x00004f0c lw s2, 0x148(sp)              |         s2 = *(var_148h);
    0x00004f10 lw s1, 0x144(sp)              |         s1 = *(var_144h);
    0x00004f14 lw s0, 0x140(sp)              |         s0 = *(var_140h);
    0x00004f18 move v0, zero                 |         v0 = 0;
    0x00004f1c addiu sp, sp, 0x158           |         
    0x00004f20 jr ra                         |         return v1;
                                             | label_11:
    0x00004f24 addiu a0, sp, 0xb8            |         a0 = sp + 0xb8;
    0x00004f28 jalr t9                       |         t9 ();
    0x00004f2c lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00004f30 move a0, s4                   |         a0 = s4;
    0x00004f34 addiu a1, sp, 0x38            |         a1 = sp + 0x38;
    0x00004f38 lw t9, -0x7f38(gp)            |         t9 = sym.imp.write;
    0x00004f3c addiu a2, v0, 1               |         a2 = v0 + 1;
    0x00004f40 jalr t9                       |         t9 ();
    0x00004f44 lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |         if (v0 < 0) {
    0x00004f48 bltz v0, 0x5098               |             goto label_12;
                                             |         }
    0x00004f4c lw t9, -0x7f80(gp)            |         t9 = sym.imp.memset;
    0x00004f50 addiu a0, sp, 0x38            |         a0 = sp + 0x38;
    0x00004f54 move a1, zero                 |         a1 = 0;
    0x00004f58 addiu a2, zero, 0x80          |         a2 = 0x80;
    0x00004f5c jalr t9                       |         t9 ();
    0x00004f60 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00004f64 move a0, s4                   |         a0 = s4;
    0x00004f68 addiu a1, sp, 0x38            |         a1 = sp + 0x38;
    0x00004f6c lw t9, -0x7f5c(gp)            |         t9 = sym.imp.read;
    0x00004f70 addiu a2, zero, 0x80          |         a2 = 0x80;
    0x00004f74 jalr t9                       |         t9 ();
    0x00004f78 lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |         if (v0 < 0) {
    0x00004f7c bltz v0, 0x518c               |             goto label_13;
                                             |         }
    0x00004f80 lw t9, -0x7f2c(gp)            |         t9 = sym.imp.strrchr;
    0x00004f84 addiu a0, sp, 0x38            |         a0 = sp + 0x38;
    0x00004f88 addiu a1, zero, 0xa           |         a1 = 0xa;
    0x00004f8c jalr t9                       |         t9 ();
    0x00004f90 lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |         if (v0 != 0) {
    0x00004f94 beqz v0, 0x4f9c               |             
    0x00004f98 sb zero, (v0)                 |             *(v0) = 0;
                                             |         }
    0x00004f9c lw t9, -0x7f2c(gp)            |         t9 = sym.imp.strrchr;
    0x00004fa0 addiu a0, sp, 0x38            |         a0 = sp + 0x38;
    0x00004fa4 addiu a1, zero, 0xd           |         a1 = 0xd;
    0x00004fa8 jalr t9                       |         t9 ();
    0x00004fac lw gp, 0x30(sp)               |         gp = *(var_30h);
                                             |         if (v0 != 0) {
    0x00004fb0 beqz v0, 0x4fb8               |             
    0x00004fb4 sb zero, (v0)                 |             *(v0) = 0;
                                             |         }
    0x00004fb8 lw t9, -0x7f78(gp)            |         t9 = sym.imp.IMP_Log_Get_Option;
    0x00004fbc jalr t9                       |         t9 ();
    0x00004fc0 nop                           |         
    0x00004fc4 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00004fc8 addiu v1, zero, 0x18d         |         v1 = 0x18d;
    0x00004fcc sw v1, 0x14(sp)               |         *(var_14h) = v1;
    0x00004fd0 lw a1, -0x7fd8(gp)            |         a1 = *((gp - 8182));
    0x00004fd4 lw a0, -0x7fd8(gp)            |         a0 = *((gp - 8182));
    0x00004fd8 sw v1, 0x24(sp)               |         *(var_24h) = v1;
    0x00004fdc addiu a1, a1, 0x6634          |         a1 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_misc_key.c;
    0x00004fe0 sw a1, 0x10(sp)               |         *(var_10h) = a1;
    0x00004fe4 lw a1, -0x7fd8(gp)            |         a1 = *((gp - 8182));
    0x00004fe8 addiu a0, a0, 0x6990          |         a0 += obj.__func__.4702;
    0x00004fec addiu v1, sp, 0x38            |         v1 = sp + 0x38;
    0x00004ff0 addiu a1, a1, 0x6818          |         a1 += str._s__d_:disabled_keys___s__needenablecnt___d_n;
    0x00004ff4 sw a0, 0x18(sp)               |         *(var_18h) = a0;
    0x00004ff8 lw t9, -0x7f58(gp)            |         t9 = sym.imp.imp_log_fun;
    0x00004ffc sw a1, 0x1c(sp)               |         *(var_1ch) = a1;
    0x00005000 sw a0, 0x20(sp)               |         *(var_20h) = a0;
    0x00005004 sw v1, 0x28(sp)               |         *(var_28h) = v1;
    0x00005008 sw s3, 0x2c(sp)               |         *(var_2ch) = s3;
    0x0000500c b 0x4eb4                      |         
                                             |     } while (1);
                                             | label_5:
    0x00005010 lw t9, -0x7f78(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00005014 addiu s0, s0, 0x6710          |     s0 += str._sys_devices_platform_gpio_keys_disabled_keys;
    0x00005018 jalr t9                       |     t9 ();
    0x0000501c lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00005020 lw t9, -0x7fa4(gp)            |     t9 = sym.imp.__errno_location;
    0x00005024 move s1, v0                   |     s1 = v0;
    0x00005028 jalr t9                       |     t9 ();
    0x0000502c lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00005030 lw t9, -0x7f08(gp)            |     t9 = sym.imp.strerror;
    0x00005034 lw a0, (v0)                   |     a0 = *(v0);
    0x00005038 jalr t9                       |     t9 ();
    0x0000503c lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00005040 sw v0, 0x24(sp)               |     *(var_24h) = v0;
    0x00005044 sw s0, 0x20(sp)               |     *(var_20h) = s0;
    0x00005048 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x0000504c lw a3, -0x7fd8(gp)            |     a3 = *((gp - 8182));
    0x00005050 lw t9, -0x7f58(gp)            |     t9 = sym.imp.imp_log_fun;
    0x00005054 addiu v1, v1, 0x6634          |     v1 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_misc_key.c;
    0x00005058 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x0000505c addiu v1, zero, 0x14c         |     v1 = 0x14c;
    0x00005060 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x00005064 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x00005068 addiu a0, zero, 6             |     a0 = 6;
    0x0000506c move a1, s1                   |     a1 = s1;
    0x00005070 addiu v1, v1, 0x6990          |     v1 += obj.__func__.4702;
    0x00005074 sw v1, 0x18(sp)               |     *(var_18h) = v1;
    0x00005078 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x0000507c addiu a2, zero, 2             |     a2 = 2;
    0x00005080 addiu a3, a3, 0x662c          |     a3 += str.SU_Key;
    0x00005084 addiu v1, v1, 0x6740          |     v1 += str.open__s_error:_s_n;
    0x00005088 sw v1, 0x1c(sp)               |     *(var_1ch) = v1;
    0x0000508c jalr t9                       |     t9 ();
    0x00005090 addiu v0, zero, -1            |     v0 = -1;
    0x00005094 b 0x4ee0                      |     goto label_1;
                                             | label_12:
    0x00005098 lw t9, -0x7f78(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
    0x0000509c jalr t9                       |     t9 ();
    0x000050a0 nop                           |     
    0x000050a4 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000050a8 lw t9, -0x7fa4(gp)            |     t9 = sym.imp.__errno_location;
    0x000050ac move s0, v0                   |     s0 = v0;
    0x000050b0 jalr t9                       |     t9 ();
    0x000050b4 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000050b8 lw t9, -0x7f08(gp)            |     t9 = sym.imp.strerror;
    0x000050bc lw a0, (v0)                   |     a0 = *(v0);
    0x000050c0 jalr t9                       |     t9 ();
    0x000050c4 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000050c8 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x000050cc lw t9, -0x7f58(gp)            |     t9 = sym.imp.imp_log_fun;
    0x000050d0 addiu v1, v1, 0x6634          |     v1 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_misc_key.c;
    0x000050d4 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x000050d8 addiu v1, zero, 0x17a         |     v1 = 0x17a;
    0x000050dc sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x000050e0 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x000050e4 addiu v1, v1, 0x6990          |     v1 += obj.__func__.4702;
    0x000050e8 sw v1, 0x18(sp)               |     *(var_18h) = v1;
    0x000050ec lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x000050f0 addiu v1, v1, 0x67a4          |     v1 += str.write_disabled_keys_error:__s_n;
                                             |     do {
                                             | label_2:
    0x000050f4 lw a3, -0x7fd8(gp)            |         a3 = *((gp - 8182));
    0x000050f8 sw v1, 0x1c(sp)               |         *(var_1ch) = v1;
    0x000050fc sw v0, 0x20(sp)               |         *(var_20h) = v0;
    0x00005100 addiu a0, zero, 6             |         a0 = 6;
    0x00005104 move a1, s0                   |         a1 = s0;
    0x00005108 addiu a2, zero, 2             |         a2 = 2;
    0x0000510c addiu a3, a3, 0x662c          |         a3 += str.SU_Key;
    0x00005110 jalr t9                       |         t9 ();
    0x00005114 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00005118 lw t9, -0x7fc4(gp)            |         t9 = sym.imp.close;
    0x0000511c move a0, s4                   |         a0 = s4;
    0x00005120 jalr t9                       |         t9 ();
    0x00005124 addiu v0, zero, -1            |         v0 = -1;
    0x00005128 b 0x4ee0                      |         goto label_1;
                                             | label_6:
    0x0000512c lw t9, -0x7f78(gp)            |         t9 = sym.imp.IMP_Log_Get_Option;
    0x00005130 jalr t9                       |         t9 ();
    0x00005134 nop                           |         
    0x00005138 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x0000513c lw t9, -0x7fa4(gp)            |         t9 = sym.imp.__errno_location;
    0x00005140 move s0, v0                   |         s0 = v0;
    0x00005144 jalr t9                       |         t9 ();
    0x00005148 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x0000514c lw t9, -0x7f08(gp)            |         t9 = sym.imp.strerror;
    0x00005150 lw a0, (v0)                   |         a0 = *(v0);
    0x00005154 jalr t9                       |         t9 ();
    0x00005158 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x0000515c lw v1, -0x7fd8(gp)            |         v1 = *((gp - 8182));
    0x00005160 lw t9, -0x7f58(gp)            |         t9 = sym.imp.imp_log_fun;
    0x00005164 addiu v1, v1, 0x6634          |         v1 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_misc_key.c;
    0x00005168 sw v1, 0x10(sp)               |         *(var_10h) = v1;
    0x0000516c addiu v1, zero, 0x152         |         v1 = 0x152;
    0x00005170 sw v1, 0x14(sp)               |         *(var_14h) = v1;
    0x00005174 lw v1, -0x7fd8(gp)            |         v1 = *((gp - 8182));
    0x00005178 addiu v1, v1, 0x6990          |         v1 += obj.__func__.4702;
    0x0000517c sw v1, 0x18(sp)               |         *(var_18h) = v1;
    0x00005180 lw v1, -0x7fd8(gp)            |         v1 = *((gp - 8182));
    0x00005184 addiu v1, v1, 0x6754          |         v1 += str.read_disabled_keys_error:__s_n;
    0x00005188 b 0x50f4                      |         
                                             |     } while (1);
                                             | label_13:
    0x0000518c lw t9, -0x7f78(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00005190 jalr t9                       |     t9 ();
    0x00005194 nop                           |     
    0x00005198 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x0000519c lw t9, -0x7fa4(gp)            |     t9 = sym.imp.__errno_location;
    0x000051a0 move s0, v0                   |     s0 = v0;
    0x000051a4 jalr t9                       |     t9 ();
    0x000051a8 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000051ac lw t9, -0x7f08(gp)            |     t9 = sym.imp.strerror;
    0x000051b0 lw a0, (v0)                   |     a0 = *(v0);
    0x000051b4 jalr t9                       |     t9 ();
    0x000051b8 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000051bc lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x000051c0 lw t9, -0x7f58(gp)            |     t9 = sym.imp.imp_log_fun;
    0x000051c4 addiu v1, v1, 0x6634          |     v1 += str._home_b_xbyu_work_isvp_w_proj_sdk_lv3_src_sysutils_misc_key.c;
    0x000051c8 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x000051cc addiu v1, zero, 0x181         |     v1 = 0x181;
    0x000051d0 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x000051d4 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x000051d8 addiu v1, v1, 0x6990          |     v1 += obj.__func__.4702;
    0x000051dc sw v1, 0x18(sp)               |     *(var_18h) = v1;
    0x000051e0 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x000051e4 addiu v1, v1, 0x67c4          |     v1 += str.read_back_disabled_keys_error:__s_n;
    0x000051e8 b 0x50f4                      |     goto label_2;
                                             | }

[*] Function sprintf used 9 times libsysutils.so