[*] Binary protection state of libmp.so

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


[*] Function mmap tear down of libmp.so

    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libmp.so @ 0x5b0f8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.IMP_ISP_EnableTuning ()          | void IMP_ISP_EnableTuning () {
    0x0005b0f8 lui gp, 9                         |     
    0x0005b0fc addiu gp, gp, 0x2318              |     
    0x0005b100 addu gp, gp, t9                   |     gp += t9;
    0x0005b104 lw v0, -0x7fa8(gp)                |     v0 = *((gp - 8170));
    0x0005b108 addiu sp, sp, -0xb8               |     
    0x0005b10c sw s0, 0xa0(sp)                   |     *(var_a0h) = s0;
    0x0005b110 lw s0, -0x6aa0(v0)                |     s0 = *((v0 - 6824));
    0x0005b114 sw gp, 0x40(sp)                   |     *(var_40h) = gp;
    0x0005b118 sw ra, 0xb4(sp)                   |     *(var_b4h) = ra;
    0x0005b11c sw s4, 0xb0(sp)                   |     *(var_b0h) = s4;
    0x0005b120 sw s3, 0xac(sp)                   |     *(var_ach) = s3;
    0x0005b124 sw s2, 0xa8(sp)                   |     *(var_a8h) = s2;
    0x0005b128 sw s1, 0xa4(sp)                   |     *(var_a4h) = s1;
    0x0005b12c sw zero, 0x94(sp)                 |     *(var_94h) = 0;
                                                 |     if (s0 == 0) {
    0x0005b130 beqz s0, 0x5b64c                  |         goto label_4;
                                                 |     }
    0x0005b134 lw v0, 0x9c(s0)                   |     v0 = *((s0 + 39));
    0x0005b138 lw v0, -0x7fc8(gp)                |     v0 = *(gp);
    0x0005b13c beqz v0, 0x5b164                  |     
                                                 |     while (v0 == 0) {
    0x0005b140 move v0, zero                     |         v0 = 0;
                                                 | label_0:
    0x0005b144 lw ra, 0xb4(sp)                   |         ra = *(var_b4h);
    0x0005b148 lw s4, 0xb0(sp)                   |         s4 = *(var_b0h);
    0x0005b14c lw s3, 0xac(sp)                   |         s3 = *(var_ach);
    0x0005b150 lw s2, 0xa8(sp)                   |         s2 = *(var_a8h);
    0x0005b154 lw s1, 0xa4(sp)                   |         s1 = *(var_a4h);
    0x0005b158 lw s0, 0xa0(sp)                   |         s0 = *(var_a0h);
    0x0005b15c addiu sp, sp, 0xb8                |         
    0x0005b160 jr ra                             |         return v0;
    0x0005b164 addiu a0, s0, 0x78                |         a0 = s0 + 0x78;
    0x0005b168 lw t9, -0x7e60(gp)                |         t9 = sym.imp.open;
    0x0005b16c lw a1, -0x2dac(v0)                |         a1 = *((v0 - 2923));
                                                 |         /* str._dev_video0 */
    0x0005b170 addiu v0, v0, -0x2dac             |         v0 += -0x2dac;
    0x0005b174 lw v1, 4(v0)                      |         v1 = *((v0 + 1));
    0x0005b178 swl a1, 3(a0)                     |         __asm ("swl a1, 3(a0)");
    0x0005b17c swr a1, (a0)                      |         __asm ("swr a1, (a0)");
    0x0005b180 lw v0, 8(v0)                      |         v0 = *((v0 + 2));
    0x0005b184 swl v1, 7(a0)                     |         __asm ("swl v1, 7(a0)");
    0x0005b188 swr v1, 4(a0)                     |         __asm ("swr v1, 4(a0)");
    0x0005b18c swl v0, 0xb(a0)                   |         __asm ("swl v0, 0xb(a0)");
    0x0005b190 lui a1, 8                         |         a1 = 0x80000;
    0x0005b194 swr v0, 8(a0)                     |         __asm ("swr v0, 8(a0)");
    0x0005b198 addiu a1, a1, 2                   |         a1 += 2;
    0x0005b19c move a2, zero                     |         a2 = 0;
    0x0005b1a0 jalr t9                           |         t9 ();
    0x0005b1a4 move s2, v0                       |         s2 = v0;
    0x0005b1a8 lw gp, 0x40(sp)                   |         gp = *(var_40h);
    0x0005b1ac sw v0, 0x98(s0)                   |         *((s0 + 38)) = v0;
                                                 |         if (v0 < 0) {
    0x0005b1b0 bltz v0, 0x5b6b4                  |             goto label_5;
                                                 |         }
    0x0005b1b4 lw t9, -0x76d8(gp)                |         t9 = sym.imp.malloc;
    0x0005b1b8 addiu a0, zero, 0x44              |         a0 = 0x44;
    0x0005b1bc jalr t9                           |         t9 ();
    0x0005b1c0 move s1, v0                       |         s1 = v0;
    0x0005b1c4 lw gp, 0x40(sp)                   |         gp = *(var_40h);
                                                 |         if (v0 == 0) {
    0x0005b1c8 beqz v0, 0x5b714                  |             goto label_6;
                                                 |         }
    0x0005b1cc lw t9, -0x7b18(gp)                |         t9 = sym.imp.memset;
    0x0005b1d0 move a0, v0                       |         a0 = v0;
    0x0005b1d4 move a1, zero                     |         a1 = 0;
    0x0005b1d8 lw s2, -0x7fcc(gp)                |         s2 = *(gp);
    0x0005b1dc addiu a2, zero, 0x44              |         a2 = 0x44;
    0x0005b1e0 jalr t9                           |         t9 ();
    0x0005b1e4 lw gp, 0x40(sp)                   |         gp = *(var_40h);
    0x0005b1e8 addiu v0, zero, 2                 |         v0 = 2;
    0x0005b1ec sw s1, 0x9c(s0)                   |         *((s0 + 39)) = s1;
    0x0005b1f0 lw t9, -0x7e60(gp)                |         t9 = sym.imp.open;
    0x0005b1f4 sw v0, 0xa8(s0)                   |         *((s0 + 42)) = v0;
                                                 |         /* str._dev_mem */
    0x0005b1f8 addiu a0, s2, 0x6b14              |         a0 = s2 + 0x6b14;
    0x0005b1fc addiu a1, zero, 0x12              |         a1 = 0x12;
    0x0005b200 jalr t9                           |         t9 ();
    0x0005b204 lw gp, 0x40(sp)                   |         gp = *(var_40h);
    0x0005b208 sw v0, 0xa0(s0)                   |         *((s0 + 40)) = v0;
                                                 |         if (v0 <= 0) {
    0x0005b20c blez v0, 0x5b570                  |             goto label_7;
                                                 |         }
    0x0005b210 lw t9, -0x77e8(gp)                |         t9 = sym.imp.mmap
    0x0005b214 sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x0005b218 lui a1, 1                         |         a1 = 0x10000;
    0x0005b21c lui v0, 0x1338                    |         v0 = 0x13380000;
    0x0005b220 sw v0, 0x14(sp)                   |         *(var_14h) = v0;
    0x0005b224 move a0, zero                     |         a0 = 0;
    0x0005b228 ori a1, a1, 0xb000                |         a1 |= 0xb000;
    0x0005b22c addiu a2, zero, 3                 |         a2 = 3;
    0x0005b230 addiu a3, zero, 1                 |         a3 = 1;
    0x0005b234 jalr t9                           |         t9 ();
    0x0005b238 lw gp, 0x40(sp)                   |         gp = *(var_40h);
    0x0005b23c sw v0, 0xa4(s0)                   |         *((s0 + 41)) = v0;
                                                 |         if (v0 == 0) {
    0x0005b240 beqz v0, 0x5b654                  |             goto label_8;
                                                 |         }
                                                 | label_2:
    0x0005b244 addiu v0, zero, 1                 |         v0 = 1;
    0x0005b248 sw v0, 0x88(sp)                   |         *(var_88h) = v0;
    0x0005b24c lui v0, 0x800                     |         v0 = .comment;
    0x0005b250 lw t9, -0x74a4(gp)                |         t9 = sym.imp.ioctl;
    0x0005b254 addiu v0, v0, 0xe0                |         v0 += 0xe0;
    0x0005b258 lw a0, 0x98(s0)                   |         a0 = *((s0 + 38));
    0x0005b25c sw v0, 0x8c(sp)                   |         *(var_8ch) = v0;
    0x0005b260 lui a1, 0xc00c                    |         a1 = 0xc00c0000;
    0x0005b264 addiu v0, sp, 0x94                |         v0 = sp + 0x94;
    0x0005b268 addiu a1, a1, 0x56c6              |         a1 += 0x56c6;
    0x0005b26c addiu a2, sp, 0x88                |         a2 = sp + 0x88;
    0x0005b270 sw v0, 0x90(sp)                   |         *(var_90h) = v0;
    0x0005b274 jalr t9                           |         t9 ();
    0x0005b278 lw gp, 0x40(sp)                   |         gp = *(var_40h);
                                                 |         if (v0 == 0) {
    0x0005b27c beqz v0, 0x5b54c                  |             goto label_9;
                                                 |         }
                                                 | label_1:
    0x0005b280 lw v0, -0x7fe4(gp)                |         v0 = *((gp - 8185));
    0x0005b284 lw t9, -0x7818(gp)                |         t9 = sym.IMP_ISP_Tuning_GetSharpness;
    0x0005b288 addiu a0, sp, 0x98                |         a0 = sp + 0x98;
    0x0005b28c lbu v0, 0x5140(v0)                |         v0 = *((v0 + 20800));
    0x0005b290 lw s2, -0x7fa8(gp)                |         s2 = *((gp - 8170));
    0x0005b294 sb v0, 0x31(s1)                   |         *((s1 + 49)) = v0;
    0x0005b298 jalr t9                           |         t9 ();
    0x0005b29c lw gp, 0x40(sp)                   |         gp = *(var_40h);
    0x0005b2a0 addiu a0, sp, 0x98                |         a0 = sp + 0x98;
    0x0005b2a4 lw t9, -0x7650(gp)                |         t9 = sym.IMP_ISP_Tuning_GetBrightness;
    0x0005b2a8 lw s3, -0x7fa8(gp)                |         s3 = *((gp - 8170));
    0x0005b2ac addiu s1, zero, 1                 |         s1 = 1;
    0x0005b2b0 jalr t9                           |         t9 ();
    0x0005b2b4 lw gp, 0x40(sp)                   |         gp = *(var_40h);
    0x0005b2b8 lw t9, -0x7848(gp)                |         t9 = sym.IMP_ISP_Tuning_GetSaturation;
    0x0005b2bc addiu a0, sp, 0x98                |         a0 = sp + 0x98;
    0x0005b2c0 jalr t9                           |         t9 ();
    0x0005b2c4 lw gp, 0x40(sp)                   |         gp = *(var_40h);
    0x0005b2c8 lw t9, -0x7d98(gp)                |         t9 = sym.imp.pthread_mutex_lock;
                                                 |         /* obj.g_isp_deamon_mutex */
    0x0005b2cc addiu a0, s2, -0x688c             |         a0 = s2 + -0x688c;
    0x0005b2d0 jalr t9                           |         t9 ();
    0x0005b2d4 lw v0, -0x6874(s3)                |         v0 = *(s3);
    0x0005b2d8 lw gp, 0x40(sp)                   |         gp = *(var_40h);
                                                 |         if (v0 == s1) {
    0x0005b2dc beq v0, s1, 0x5b5d4               |             goto label_10;
                                                 |         }
    0x0005b2e0 lw s4, -0x7fa8(gp)                |         s4 = *((gp - 8170));
    0x0005b2e4 lw t9, -0x7b18(gp)                |         t9 = sym.imp.memset;
    0x0005b2e8 move a1, zero                     |         a1 = 0;
                                                 |         /* obj.g_isp_deamon_info */
    0x0005b2ec addiu s4, s4, -0x6a9c             |         s4 += -0x6a9c;
    0x0005b2f0 move a0, s4                       |         a0 = s4;
    0x0005b2f4 addiu a2, zero, 0x14c             |         a2 = aav.0x0000014c;
    0x0005b2f8 jalr t9                           |         t9 ();
    0x0005b2fc lw gp, 0x40(sp)                   |         gp = *(var_40h);
                                                 |         /* obj.g_isp_deamon_mutex */
    0x0005b300 addiu a0, s2, -0x688c             |         a0 = s2 + -0x688c;
    0x0005b304 lw t9, -0x7bd0(gp)                |         t9 = sym.imp.pthread_mutex_unlock;
    0x0005b308 sw s1, -0x6874(s3)                |         *(s3) = s1;
    0x0005b30c jalr t9                           |         t9 ();
    0x0005b310 lw gp, 0x40(sp)                   |         gp = *(var_40h);
                                                 | label_3:
    0x0005b314 lw s1, -0x7f9c(gp)                |         s1 = *((gp - 8167));
    0x0005b318 lw a0, -0x7fc8(gp)                |         a0 = *(gp);
    0x0005b31c lw a1, -0x7f98(gp)                |         a1 = *((gp - 8166));
                                                 |         /* sym.isp_tuning_deamon_func_add.constprop.3 */
    0x0005b320 addiu s1, s1, 0x7c38              |         s1 += 0x7c38;
    0x0005b324 move t9, s1                       |         t9 = s1;
                                                 |         /* str.update_total_gain */
    0x0005b328 addiu a0, a0, -0x2fb0             |         a0 += -0x2fb0;
                                                 |         /* sym.isp_tuning_func_update_total_gain */
    0x0005b32c addiu a1, a1, -0x68b8             |         a1 += -0x68b8;
    0x0005b330 bal 0x57c38                       |         sym_isp_tuning_deamon_func_add_constprop_3 ();
    0x0005b334 lw gp, 0x40(sp)                   |         gp = *(var_40h);
    0x0005b338 move t9, s1                       |         t9 = s1;
    0x0005b33c lw a0, -0x7fc8(gp)                |         a0 = *(gp);
    0x0005b340 lw a1, -0x7f9c(gp)                |         a1 = *((gp - 8167));
                                                 |         /* str.contrastjudge */
    0x0005b344 addiu a0, a0, -0x2fc0             |         a0 += -0x2fc0;
                                                 |         /* sym.isp_tuning_func_contrast_judge */
    0x0005b348 addiu a1, a1, 0x7a9c              |         a1 += 0x7a9c;
    0x0005b34c bal 0x57c38                       |         sym_isp_tuning_deamon_func_add_constprop_3 ();
    0x0005b350 lw gp, 0x40(sp)                   |         gp = *(var_40h);
    0x0005b354 move t9, s1                       |         t9 = s1;
    0x0005b358 lw a0, -0x7fc8(gp)                |         a0 = *(gp);
    0x0005b35c lw a1, -0x7f9c(gp)                |         a1 = *((gp - 8167));
                                                 |         /* str.videodrop */
    0x0005b360 addiu a0, a0, -0x2fcc             |         a0 += -0x2fcc;
                                                 |         /* sym.isp_tuning_func_video_drop */
    0x0005b364 addiu a1, a1, 0x7640              |         a1 += 0x7640;
    0x0005b368 bal 0x57c38                       |         sym_isp_tuning_deamon_func_add_constprop_3 ();
    0x0005b36c lw gp, 0x40(sp)                   |         gp = *(var_40h);
    0x0005b370 move t9, s1                       |         t9 = s1;
    0x0005b374 lw a0, -0x7fc8(gp)                |         a0 = *(gp);
    0x0005b378 lw a1, -0x7f9c(gp)                |         a1 = *((gp - 8167));
                                                 |         /* str.update_ncu_params */
    0x0005b37c addiu a0, a0, -0x2fe0             |         a0 += -0x2fe0;
                                                 |         /* sym.isp_tuning_func_update_ncu_params */
    0x0005b380 addiu a1, a1, 0x7b90              |         a1 += 0x7b90;
    0x0005b384 bal 0x57c38                       |         sym_isp_tuning_deamon_func_add_constprop_3 ();
    0x0005b388 lw gp, 0x40(sp)                   |         gp = *(var_40h);
    0x0005b38c lw a2, 0x148(s4)                  |         a2 = *(s4);
    0x0005b390 addiu a0, sp, 0x68                |         a0 = sp + 0x68;
    0x0005b394 lw a1, -0x7fcc(gp)                |         a1 = *(gp);
    0x0005b398 lw t9, -0x7c30(gp)                |         t9 = sym.imp.sprintf;
                                                 |         /* esilref: '0x&x
' */
    0x0005b39c addiu a1, a1, 0x7930              |         a1 += 0x7930;
    0x0005b3a0 jalr t9                           |         t9 ();
    0x0005b3a4 lw gp, 0x40(sp)                   |         gp = *(var_40h);
    0x0005b3a8 lw a0, -0x7fc8(gp)                |         a0 = *(gp);
    0x0005b3ac lw a1, -0x7fc8(gp)                |         a1 = *(gp);
    0x0005b3b0 lw t9, -0x7b08(gp)                |         t9 = sym.imp.fopen;
                                                 |         /* str._tmp_isp_tuning_func */
    0x0005b3b4 addiu a0, a0, -0x32d0             |         a0 += -aav.0x000032d0;
                                                 |         /* esilref: 'w+' */
    0x0005b3b8 addiu a1, a1, -0x2d2c             |         a1 += -0x2d2c;
    0x0005b3bc jalr t9                           |         t9 ();
    0x0005b3c0 move s1, v0                       |         s1 = v0;
    0x0005b3c4 lw gp, 0x40(sp)                   |         gp = *(var_40h);
                                                 |         if (v0 != 0) {
    0x0005b3c8 beqz v0, 0x5b3f8                  |             
    0x0005b3cc lw t9, -0x7d48(gp)                |             t9 = sym.imp.fwrite;
    0x0005b3d0 addiu a0, sp, 0x68                |             a0 = sp + 0x68;
    0x0005b3d4 addiu a1, zero, 1                 |             a1 = 1;
    0x0005b3d8 addiu a2, zero, 0x20              |             a2 = 0x20;
    0x0005b3dc move a3, v0                       |             a3 = v0;
    0x0005b3e0 jalr t9                           |             t9 ();
    0x0005b3e4 lw gp, 0x40(sp)                   |             gp = *(var_40h);
    0x0005b3e8 lw t9, -0x7b54(gp)                |             t9 = sym.imp.fclose;
    0x0005b3ec move a0, s1                       |             a0 = s1;
    0x0005b3f0 jalr t9                           |             t9 ();
    0x0005b3f4 lw gp, 0x40(sp)                   |             gp = *(var_40h);
                                                 |         }
    0x0005b3f8 lw a0, -0x7fa8(gp)                |         a0 = *((gp - 8170));
    0x0005b3fc lw t9, -0x7b18(gp)                |         t9 = sym.imp.memset;
    0x0005b400 move a1, zero                     |         a1 = 0;
                                                 |         /* obj.gmovestate */
    0x0005b404 addiu a0, a0, -0x6950             |         a0 += -0x6950;
    0x0005b408 addiu a2, zero, 0xac              |         a2 = 0xac;
    0x0005b40c jalr t9                           |         t9 ();
    0x0005b410 lw gp, 0x40(sp)                   |         gp = *(var_40h);
    0x0005b414 move v1, zero                     |         v1 = 0;
    0x0005b418 move v0, zero                     |         v0 = 0;
    0x0005b41c lw a1, -0x7fc8(gp)                |         a1 = *(gp);
    0x0005b420 lw a2, -0x7fc8(gp)                |         a2 = *(gp);
    0x0005b424 lw t9, -0x7c30(gp)                |         t9 = sym.imp.sprintf;
    0x0005b428 addiu a3, s0, 0x28                |         a3 = s0 + 0x28;
    0x0005b42c addiu a0, sp, 0x48                |         a0 = sp + 0x48;
                                                 |         /* str._s_smove.txt */
    0x0005b430 addiu a1, a1, -0x2d28             |         a1 += -0x2d28;
                                                 |         /* str._etc_sensor_ */
    0x0005b434 addiu a2, a2, -0x34d8             |         a2 += -0x34d8;
    0x0005b438 sw v1, 0x4c(sp)                   |         *(var_4ch) = v1;
    0x0005b43c sw v1, 0x54(sp)                   |         *(var_54h) = v1;
    0x0005b440 sw v1, 0x5c(sp)                   |         *(var_5ch) = v1;
    0x0005b444 sw v1, 0x64(sp)                   |         *(var_64h) = v1;
    0x0005b448 sw v0, 0x48(sp)                   |         *(var_48h) = v0;
    0x0005b44c sw v0, 0x50(sp)                   |         *(var_50h) = v0;
    0x0005b450 sw v0, 0x58(sp)                   |         *(var_58h) = v0;
    0x0005b454 sw v0, 0x60(sp)                   |         *(var_60h) = v0;
    0x0005b458 jalr t9                           |         t9 ();
    0x0005b45c lw gp, 0x40(sp)                   |         gp = *(var_40h);
    0x0005b460 addiu a0, sp, 0x48                |         a0 = sp + 0x48;
    0x0005b464 lw a1, -0x7fc4(gp)                |         a1 = *((gp - 8177));
    0x0005b468 lw t9, -0x7b08(gp)                |         t9 = sym.imp.fopen;
                                                 |         /* esilref: '' */
    0x0005b46c addiu a1, a1, -0x7c6c             |         a1 += -0x7c6c;
    0x0005b470 jalr t9                           |         t9 ();
    0x0005b474 move s0, v0                       |         s0 = v0;
    0x0005b478 lw gp, 0x40(sp)                   |         gp = *(var_40h);
    0x0005b47c beqz v0, 0x5b140                  |         
                                                 |     }
    0x0005b480 move a0, v0                       |     a0 = v0;
    0x0005b484 lw v0, -0x7fa8(gp)                |     v0 = *((gp - 8170));
    0x0005b488 lw a1, -0x7fc8(gp)                |     a1 = *(gp);
    0x0005b48c lw a2, -0x7fa8(gp)                |     a2 = *((gp - 8170));
    0x0005b490 addiu v0, v0, -0x68d4             |     v0 += -0x68d4;
    0x0005b494 sw v0, 0x10(sp)                   |     *(var_10h) = v0;
    0x0005b498 lw v0, -0x7fa8(gp)                |     v0 = *((gp - 8170));
    0x0005b49c lw a3, -0x7fa8(gp)                |     a3 = *((gp - 8170));
    0x0005b4a0 lw t9, -0x7638(gp)                |     t9 = sym.imp.fscanf;
    0x0005b4a4 addiu v0, v0, -0x68d0             |     v0 += -0x68d0;
    0x0005b4a8 sw v0, 0x14(sp)                   |     *(var_14h) = v0;
    0x0005b4ac lw v0, -0x7fa8(gp)                |     v0 = *((gp - 8170));
                                                 |     /* str._02x__02x__02x__02x__02x__02x__02x__02x__02x__02x__02x__02x__02x__02x */
    0x0005b4b0 addiu a1, a1, -0x2d18             |     a1 += -0x2d18;
    0x0005b4b4 addiu a2, a2, -0x68dc             |     a2 += -0x68dc;
    0x0005b4b8 addiu v0, v0, -0x68cc             |     v0 += -0x68cc;
    0x0005b4bc sw v0, 0x18(sp)                   |     *(var_18h) = v0;
    0x0005b4c0 lw v0, -0x7fa8(gp)                |     v0 = *((gp - 8170));
    0x0005b4c4 addiu a3, a3, -0x68d8             |     a3 += -0x68d8;
    0x0005b4c8 addiu v0, v0, -0x68c8             |     v0 += -0x68c8;
    0x0005b4cc sw v0, 0x1c(sp)                   |     *(var_1ch) = v0;
    0x0005b4d0 lw v0, -0x7fa8(gp)                |     v0 = *((gp - 8170));
    0x0005b4d4 addiu v0, v0, -0x68c4             |     v0 += -0x68c4;
    0x0005b4d8 sw v0, 0x20(sp)                   |     *(var_20h) = v0;
    0x0005b4dc lw v0, -0x7fa8(gp)                |     v0 = *((gp - 8170));
    0x0005b4e0 addiu v0, v0, -0x68c0             |     v0 += -0x68c0;
    0x0005b4e4 sw v0, 0x24(sp)                   |     *(var_24h) = v0;
    0x0005b4e8 lw v0, -0x7fa8(gp)                |     v0 = *((gp - 8170));
    0x0005b4ec addiu v0, v0, -0x68bc             |     v0 += -0x68bc;
    0x0005b4f0 sw v0, 0x28(sp)                   |     *(var_28h) = v0;
    0x0005b4f4 lw v0, -0x7fa8(gp)                |     v0 = *((gp - 8170));
    0x0005b4f8 addiu v0, v0, -0x68b8             |     v0 += -0x68b8;
    0x0005b4fc sw v0, 0x2c(sp)                   |     *(var_2ch) = v0;
    0x0005b500 lw v0, -0x7fa8(gp)                |     v0 = *((gp - 8170));
    0x0005b504 addiu v0, v0, -0x68b4             |     v0 += -0x68b4;
    0x0005b508 sw v0, 0x30(sp)                   |     *(var_30h) = v0;
    0x0005b50c lw v0, -0x7fa8(gp)                |     v0 = *((gp - 8170));
    0x0005b510 addiu v0, v0, -0x68b0             |     v0 += -0x68b0;
    0x0005b514 sw v0, 0x34(sp)                   |     *(var_34h) = v0;
    0x0005b518 lw v0, -0x7fa8(gp)                |     v0 = *((gp - 8170));
    0x0005b51c addiu v0, v0, -0x68ac             |     v0 += -0x68ac;
    0x0005b520 sw v0, 0x38(sp)                   |     *(var_38h) = v0;
    0x0005b524 lw v0, -0x7fa8(gp)                |     v0 = *((gp - 8170));
    0x0005b528 addiu v0, v0, -0x68a8             |     v0 += -0x68a8;
    0x0005b52c sw v0, 0x3c(sp)                   |     *(var_3ch) = v0;
    0x0005b530 jalr t9                           |     t9 ();
    0x0005b534 lw gp, 0x40(sp)                   |     gp = *(var_40h);
    0x0005b538 lw t9, -0x7b54(gp)                |     t9 = sym.imp.fclose;
    0x0005b53c move a0, s0                       |     a0 = s0;
    0x0005b540 jalr t9                           |     t9 ();
    0x0005b544 move v0, zero                     |     v0 = 0;
    0x0005b548 b 0x5b144                         |     goto label_0;
                                                 | label_9:
    0x0005b54c lw a1, 0x94(sp)                   |     a1 = *(var_94h);
    0x0005b550 lw t9, -0x7b24(gp)                |     t9 = sym.set_framesource_fps;
    0x0005b554 srl a0, a1, 0x10                  |     a0 = a1 >> 0x10;
    0x0005b558 andi a1, a1, 0xffff               |     a1 &= 0xffff;
    0x0005b55c sw a0, 0x34(s1)                   |     *((s1 + 13)) = a0;
    0x0005b560 sw a1, 0x38(s1)                   |     *((s1 + 14)) = a1;
    0x0005b564 jalr t9                           |     t9 ();
    0x0005b568 lw gp, 0x40(sp)                   |     gp = *(var_40h);
    0x0005b56c b 0x5b280                         |     goto label_1;
                                                 | label_7:
    0x0005b570 lw t9, -0x7adc(gp)                |     t9 = sym.imp.IMP_Log_Get_Option;
                                                 |     /* str._dev_mem */
    0x0005b574 addiu s2, s2, 0x6b14              |     s2 += 0x6b14;
    0x0005b578 jalr t9                           |     t9 ();
    0x0005b57c lw gp, 0x40(sp)                   |     gp = *(var_40h);
    0x0005b580 sw s2, 0x20(sp)                   |     *(var_20h) = s2;
    0x0005b584 addiu a0, zero, 6                 |     a0 = 6;
    0x0005b588 lw v1, -0x7fc8(gp)                |     v1 = *(gp);
    0x0005b58c lw a3, -0x7fc8(gp)                |     a3 = *(gp);
    0x0005b590 lw t9, -0x79d0(gp)                |     t9 = sym.imp.imp_log_fun;
                                                 |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_isp_isp_tseries.c */
    0x0005b594 addiu v1, v1, -0x3418             |     v1 += -0x3418;
    0x0005b598 sw v1, 0x10(sp)                   |     *(var_10h) = v1;
    0x0005b59c addiu v1, zero, 0x35d             |     v1 = 0x35d;
    0x0005b5a0 sw v1, 0x14(sp)                   |     *(var_14h) = v1;
    0x0005b5a4 lw v1, -0x7fc8(gp)                |     v1 = *(gp);
    0x0005b5a8 move a1, v0                       |     a1 = v0;
    0x0005b5ac addiu a2, zero, 2                 |     a2 = 2;
                                                 |     /* obj.__func__.8463 */
    0x0005b5b0 addiu v1, v1, -0x2840             |     v1 += -0x2840;
    0x0005b5b4 sw v1, 0x18(sp)                   |     *(var_18h) = v1;
    0x0005b5b8 lw v1, -0x7fc8(gp)                |     v1 = *(gp);
                                                 |     /* str.IMP_ISP */
    0x0005b5bc addiu a3, a3, -0x3420             |     a3 += -0x3420;
                                                 |     /* str.Failed_to_open__s_n */
    0x0005b5c0 addiu v1, v1, -0x2d84             |     v1 += -0x2d84;
    0x0005b5c4 sw v1, 0x1c(sp)                   |     *(var_1ch) = v1;
    0x0005b5c8 jalr t9                           |     t9 ();
    0x0005b5cc lw gp, 0x40(sp)                   |     gp = *(var_40h);
    0x0005b5d0 b 0x5b244                         |     goto label_2;
                                                 | label_10:
    0x0005b5d4 lw t9, -0x7adc(gp)                |     t9 = sym.imp.IMP_Log_Get_Option;
    0x0005b5d8 jalr t9                           |     t9 ();
    0x0005b5dc nop                               |     
    0x0005b5e0 lw gp, 0x40(sp)                   |     gp = *(var_40h);
    0x0005b5e4 move a1, v0                       |     a1 = v0;
    0x0005b5e8 addiu a0, zero, 6                 |     a0 = 6;
    0x0005b5ec lw v0, -0x7fc8(gp)                |     v0 = *(gp);
    0x0005b5f0 lw a3, -0x7fc8(gp)                |     a3 = *(gp);
    0x0005b5f4 lw t9, -0x79d0(gp)                |     t9 = sym.imp.imp_log_fun;
                                                 |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_isp_isp_tseries.c */
    0x0005b5f8 addiu v0, v0, -0x3418             |     v0 += -0x3418;
    0x0005b5fc sw v0, 0x10(sp)                   |     *(var_10h) = v0;
    0x0005b600 addiu v0, zero, 0x243             |     v0 = 0x243;
    0x0005b604 sw v0, 0x14(sp)                   |     *(var_14h) = v0;
    0x0005b608 lw v0, -0x7fc8(gp)                |     v0 = *(gp);
    0x0005b60c addiu a2, zero, 2                 |     a2 = 2;
                                                 |     /* str.IMP_ISP */
    0x0005b610 addiu a3, a3, -0x3420             |     a3 += -0x3420;
                                                 |     /* obj.__func__.8369 */
    0x0005b614 addiu v0, v0, -0x27c8             |     v0 += -0x27c8;
    0x0005b618 sw v0, 0x18(sp)                   |     *(var_18h) = v0;
    0x0005b61c lw v0, -0x7fc8(gp)                |     v0 = *(gp);
                                                 |     /* str.err:_tuning_deamon_init_already_n */
    0x0005b620 addiu v0, v0, -0x2d50             |     v0 += -0x2d50;
    0x0005b624 sw v0, 0x1c(sp)                   |     *(var_1ch) = v0;
    0x0005b628 jalr t9                           |     t9 ();
    0x0005b62c lw gp, 0x40(sp)                   |     gp = *(var_40h);
    0x0005b630 lw t9, -0x7bd0(gp)                |     t9 = sym.imp.pthread_mutex_unlock;
                                                 |     /* obj.g_isp_deamon_mutex */
    0x0005b634 addiu a0, s2, -0x688c             |     a0 = s2 + -0x688c;
    0x0005b638 jalr t9                           |     t9 ();
    0x0005b63c lw gp, 0x40(sp)                   |     gp = *(var_40h);
    0x0005b640 lw s4, -0x7fa8(gp)                |     s4 = *((gp - 8170));
                                                 |     /* obj.g_isp_deamon_info */
    0x0005b644 addiu s4, s4, -0x6a9c             |     s4 += -0x6a9c;
    0x0005b648 b 0x5b314                         |     goto label_3;
                                                 | label_4:
    0x0005b64c addiu v0, zero, -1                |     v0 = -1;
    0x0005b650 b 0x5b144                         |     goto label_0;
                                                 | label_8:
    0x0005b654 lw t9, -0x7adc(gp)                |     t9 = sym.imp.IMP_Log_Get_Option;
    0x0005b658 jalr t9                           |     t9 ();
    0x0005b65c nop                               |     
    0x0005b660 lw gp, 0x40(sp)                   |     gp = *(var_40h);
    0x0005b664 addiu a0, zero, 6                 |     a0 = 6;
    0x0005b668 move a1, v0                       |     a1 = v0;
    0x0005b66c lw v1, -0x7fc8(gp)                |     v1 = *(gp);
    0x0005b670 lw a3, -0x7fc8(gp)                |     a3 = *(gp);
    0x0005b674 lw t9, -0x79d0(gp)                |     t9 = sym.imp.imp_log_fun;
                                                 |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_isp_isp_tseries.c */
    0x0005b678 addiu v1, v1, -0x3418             |     v1 += -0x3418;
    0x0005b67c sw v1, 0x10(sp)                   |     *(var_10h) = v1;
    0x0005b680 addiu v1, zero, 0x361             |     v1 = 0x361;
    0x0005b684 sw v1, 0x14(sp)                   |     *(var_14h) = v1;
    0x0005b688 lw v1, -0x7fc8(gp)                |     v1 = *(gp);
    0x0005b68c addiu a2, zero, 2                 |     a2 = 2;
                                                 |     /* str.IMP_ISP */
    0x0005b690 addiu a3, a3, -0x3420             |     a3 += -0x3420;
                                                 |     /* obj.__func__.8463 */
    0x0005b694 addiu v1, v1, -0x2840             |     v1 += -0x2840;
    0x0005b698 sw v1, 0x18(sp)                   |     *(var_18h) = v1;
    0x0005b69c lw v1, -0x7fc8(gp)                |     v1 = *(gp);
                                                 |     /* str.Failed_to_mmap_isp_base_addr_n */
    0x0005b6a0 addiu v1, v1, -0x2d70             |     v1 += -aav.0x00002d70;
    0x0005b6a4 sw v1, 0x1c(sp)                   |     *(var_1ch) = v1;
    0x0005b6a8 jalr t9                           |     t9 ();
    0x0005b6ac lw gp, 0x40(sp)                   |     gp = *(var_40h);
    0x0005b6b0 b 0x5b244                         |     goto label_2;
                                                 | label_5:
    0x0005b6b4 lw t9, -0x7adc(gp)                |     t9 = sym.imp.IMP_Log_Get_Option;
    0x0005b6b8 jalr t9                           |     t9 ();
    0x0005b6bc nop                               |     
    0x0005b6c0 lw gp, 0x40(sp)                   |     gp = *(var_40h);
    0x0005b6c4 move a1, v0                       |     a1 = v0;
    0x0005b6c8 addiu a0, zero, 6                 |     a0 = 6;
    0x0005b6cc lw v1, -0x7fc8(gp)                |     v1 = *(gp);
    0x0005b6d0 lw a3, -0x7fc8(gp)                |     a3 = *(gp);
    0x0005b6d4 lw t9, -0x79d0(gp)                |     t9 = sym.imp.imp_log_fun;
                                                 |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_isp_isp_tseries.c */
    0x0005b6d8 addiu v1, v1, -0x3418             |     v1 += -0x3418;
    0x0005b6dc sw v1, 0x10(sp)                   |     *(var_10h) = v1;
    0x0005b6e0 addiu v1, zero, 0x34e             |     v1 = 0x34e;
    0x0005b6e4 sw v1, 0x14(sp)                   |     *(var_14h) = v1;
    0x0005b6e8 lw v1, -0x7fc8(gp)                |     v1 = *(gp);
    0x0005b6ec addiu a2, zero, 2                 |     a2 = 2;
                                                 |     /* str.IMP_ISP */
    0x0005b6f0 addiu a3, a3, -0x3420             |     a3 += -0x3420;
                                                 |     /* obj.__func__.8463 */
    0x0005b6f4 addiu v1, v1, -0x2840             |     v1 += -0x2840;
    0x0005b6f8 sw v1, 0x18(sp)                   |     *(var_18h) = v1;
    0x0005b6fc lw v1, -0x7fc8(gp)                |     v1 = *(gp);
                                                 |     /* str.Cannot_open__dev_video0_n */
    0x0005b700 addiu v1, v1, -0x2da0             |     v1 += -0x2da0;
    0x0005b704 sw v1, 0x1c(sp)                   |     *(var_1ch) = v1;
    0x0005b708 jalr t9                           |     t9 ();
    0x0005b70c addiu v0, zero, -1                |     v0 = -1;
    0x0005b710 b 0x5b144                         |     goto label_0;
                                                 | label_6:
    0x0005b714 lw t9, -0x7f14(gp)                |     t9 = sym.imp.close;
    0x0005b718 move a0, s2                       |     a0 = s2;
    0x0005b71c jalr t9                           |     t9 ();
    0x0005b720 addiu v0, zero, -1                |     v0 = -1;
    0x0005b724 b 0x5b144                         |     goto label_0;
                                                 | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libmp.so @ 0x126a0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.alloc_kmem_init ()       | void alloc_kmem_init () {
    0x000126a0 lui gp, 0xe               |     
    0x000126a4 addiu gp, gp, -0x5290     |     
    0x000126a8 addu gp, gp, t9           |     gp += t9;
    0x000126ac addiu sp, sp, -0x50       |     
    0x000126b0 sw gp, 0x30(sp)           |     *(var_30h) = gp;
    0x000126b4 sw ra, 0x4c(sp)           |     *(var_4ch) = ra;
    0x000126b8 sw s3, 0x48(sp)           |     *(var_48h) = s3;
    0x000126bc sw s2, 0x44(sp)           |     *(var_44h) = s2;
    0x000126c0 sw s1, 0x40(sp)           |     *(var_40h) = s1;
    0x000126c4 sw s0, 0x3c(sp)           |     *(var_3ch) = s0;
    0x000126c8 lw t9, -0x7adc(gp)        |     t9 = sym.imp.IMP_Log_Get_Option;
                                         |     if (a0 == 0) {
    0x000126cc beqz a0, 0x12970          |         goto label_1;
                                         |     }
    0x000126d0 lw t9, -0x7fd8(gp)        |     t9 = *(gp);
                                         |     /* sym.get_kmem_info */
    0x000126d4 addiu t9, t9, 0x2430      |     t9 += 0x2430;
    0x000126d8 move s0, a0               |     s0 = a0;
    0x000126dc bal 0x12430               |     sym_get_kmem_info ();
    0x000126e0 lw gp, 0x30(sp)           |     gp = *(var_30h);
                                         |     if (v0 != 0) {
    0x000126e4 bnez v0, 0x128cc          |         goto label_2;
                                         |     }
    0x000126e8 lw s1, -0x7fe4(gp)        |     s1 = *((gp - 8185));
    0x000126ec lw v0, 0x6370(s1)         |     v0 = *((s1 + 6364));
    0x000126f0 lw s2, -0x7fe4(gp)        |     s2 = *((gp - 8185));
                                         |     if (v0 == 0) {
    0x000126f4 beqz v0, 0x127f8          |         goto label_3;
                                         |     }
    0x000126f8 lw v0, 0x6374(s2)         |     v0 = *((s2 + 6365));
    0x000126fc lw s3, -0x7fc4(gp)        |     s3 = *((gp - 8177));
                                         |     if (v0 <= 0) {
    0x00012700 blez v0, 0x127f8          |         goto label_3;
                                         |     }
    0x00012704 lw t9, -0x7e60(gp)        |     t9 = sym.imp.open;
    0x00012708 addiu a1, zero, 2         |     a1 = 2;
                                         |     /* str._dev_rmem */
    0x0001270c addiu a0, s3, -0x7c9c     |     a0 = s3 + -0x7c9c;
    0x00012710 jalr t9                   |     t9 ();
    0x00012714 lw gp, 0x30(sp)           |     gp = *(var_30h);
                                         |     if (v0 <= 0) {
    0x00012718 blez v0, 0x1290c          |         goto label_4;
                                         |     }
    0x0001271c lw v1, 0x6370(s1)         |     v1 = *((s1 + 6364));
    0x00012720 lw t9, -0x77e8(gp)        |     t9 = sym.imp.mmap
    0x00012724 lw a1, 0x6374(s2)         |     a1 = *((s2 + 6365));
    0x00012728 sw v1, 0x14(sp)           |     *(var_14h) = v1;
    0x0001272c sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00012730 move a0, zero             |     a0 = 0;
    0x00012734 addiu a2, zero, 3         |     a2 = 3;
    0x00012738 addiu a3, zero, 1         |     a3 = 1;
    0x0001273c jalr t9                   |     t9 ();
    0x00012740 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x00012744 lw v1, -0x7fe4(gp)        |     v1 = *((gp - 8185));
    0x00012748 sw v0, 0x6378(v1)         |     *((v1 + 6366)) = v0;
                                         |     if (v0 == 0) {
    0x0001274c beqz v0, 0x1286c          |         goto label_5;
                                         |     }
    0x00012750 lw a0, 0x6370(s1)         |     a0 = *((s1 + 6364));
    0x00012754 lw v1, 0x6374(s2)         |     v1 = *((s2 + 6365));
    0x00012758 lw t9, -0x7adc(gp)        |     t9 = sym.imp.IMP_Log_Get_Option;
    0x0001275c sw a0, 0x40(s0)           |     *((s0 + 16)) = a0;
    0x00012760 sw v1, 0x44(s0)           |     *((s0 + 17)) = v1;
    0x00012764 sw v0, 0x3c(s0)           |     *((s0 + 15)) = v0;
    0x00012768 jalr t9                   |     t9 ();
    0x0001276c lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x00012770 lw a1, 0x3c(s0)           |     a1 = *((s0 + 15));
    0x00012774 lw a0, 0x40(s0)           |     a0 = *((s0 + 16));
    0x00012778 lw a2, -0x7fc4(gp)        |     a2 = *((gp - 8177));
    0x0001277c lw v1, 0x44(s0)           |     v1 = *((s0 + 17));
    0x00012780 lw a3, -0x7fc4(gp)        |     a3 = *((gp - 8177));
                                         |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_imp_alloc_kmalloc_method.c */
    0x00012784 addiu a2, a2, -0x7d64     |     a2 += -0x7d64;
    0x00012788 sw a2, 0x10(sp)           |     *(var_10h) = a2;
    0x0001278c addiu a2, zero, 0x8e      |     a2 = 0x8e;
    0x00012790 sw a2, 0x14(sp)           |     *(var_14h) = a2;
    0x00012794 lw a2, -0x7fc4(gp)        |     a2 = *((gp - 8177));
    0x00012798 lw t9, -0x79d0(gp)        |     t9 = sym.imp.imp_log_fun;
    0x0001279c addiu s0, s0, 0x1c        |     s0 += 0x1c;
                                         |     /* obj.__func__.3970 */
    0x000127a0 addiu a2, a2, -0x7dc4     |     a2 += -0x7dc4;
    0x000127a4 sw a2, 0x18(sp)           |     *(var_18h) = a2;
    0x000127a8 lw a2, -0x7fcc(gp)        |     a2 = *(gp);
    0x000127ac sw a1, 0x24(sp)           |     *(var_24h) = a1;
    0x000127b0 sw a0, 0x28(sp)           |     *(var_28h) = a0;
                                         |     /* str.alloc__mem_alloc.method___s_n__t_t_talloc__mem_alloc.vaddr__0x_08x_n__t_t_talloc__mem_alloc.paddr__0x_08x_n__t_t_talloc__mem_alloc.length___d_n */
    0x000127b4 addiu a2, a2, 0x79e8      |     a2 += 0x79e8;
    0x000127b8 sw a2, 0x1c(sp)           |     *(var_1ch) = a2;
    0x000127bc move a1, v0               |     a1 = v0;
    0x000127c0 sw s0, 0x20(sp)           |     *(var_20h) = s0;
    0x000127c4 sw v1, 0x2c(sp)           |     *(var_2ch) = v1;
    0x000127c8 addiu a0, zero, 3         |     a0 = 3;
    0x000127cc addiu a2, zero, 2         |     a2 = 2;
                                         |     /* str.KMEM_Method */
    0x000127d0 addiu a3, a3, -0x7d70     |     a3 += -0x7d70;
    0x000127d4 jalr t9                   |     t9 ();
    0x000127d8 move v0, zero             |     v0 = 0;
                                         |     do {
                                         | label_0:
    0x000127dc lw ra, 0x4c(sp)           |         ra = *(var_4ch);
    0x000127e0 lw s3, 0x48(sp)           |         s3 = *(var_48h);
    0x000127e4 lw s2, 0x44(sp)           |         s2 = *(var_44h);
    0x000127e8 lw s1, 0x40(sp)           |         s1 = *(var_40h);
    0x000127ec lw s0, 0x3c(sp)           |         s0 = *(var_3ch);
    0x000127f0 addiu sp, sp, 0x50        |         
    0x000127f4 jr ra                     |         return v1;
                                         | label_3:
    0x000127f8 lw t9, -0x7adc(gp)        |         t9 = sym.imp.IMP_Log_Get_Option;
    0x000127fc jalr t9                   |         t9 ();
    0x00012800 nop                       |         
    0x00012804 lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x00012808 lw a1, 0x6370(s1)         |         a1 = *((s1 + 6364));
    0x0001280c lw a0, 0x6374(s2)         |         a0 = *((s2 + 6365));
    0x00012810 lw a2, -0x7fc4(gp)        |         a2 = *((gp - 8177));
    0x00012814 lw v1, -0x7fc4(gp)        |         v1 = *((gp - 8177));
    0x00012818 lw a3, -0x7fc4(gp)        |         a3 = *((gp - 8177));
                                         |         /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_imp_alloc_kmalloc_method.c */
    0x0001281c addiu a2, a2, -0x7d64     |         a2 += -0x7d64;
    0x00012820 sw a2, 0x10(sp)           |         *(var_10h) = a2;
    0x00012824 addiu a2, zero, 0x71      |         a2 = 0x71;
    0x00012828 sw a2, 0x14(sp)           |         *(var_14h) = a2;
    0x0001282c lw a2, -0x7fc4(gp)        |         a2 = *((gp - 8177));
    0x00012830 lw t9, -0x79d0(gp)        |         t9 = sym.imp.imp_log_fun;
                                         |         /* obj.__func__.3970 */
    0x00012834 addiu v1, v1, -0x7dc4     |         v1 += -0x7dc4;
                                         |         /* str._s_mmap_Addr__x_and_Size__d_error_n */
    0x00012838 addiu a2, a2, -0x7cc0     |         a2 += -0x7cc0;
    0x0001283c sw a2, 0x1c(sp)           |         *(var_1ch) = a2;
    0x00012840 sw a1, 0x24(sp)           |         *(var_24h) = a1;
    0x00012844 sw a0, 0x28(sp)           |         *(var_28h) = a0;
    0x00012848 move a1, v0               |         a1 = v0;
    0x0001284c sw v1, 0x18(sp)           |         *(var_18h) = v1;
    0x00012850 sw v1, 0x20(sp)           |         *(var_20h) = v1;
    0x00012854 addiu a0, zero, 6         |         a0 = 6;
    0x00012858 addiu a2, zero, 2         |         a2 = 2;
                                         |         /* str.KMEM_Method */
    0x0001285c addiu a3, a3, -0x7d70     |         a3 += -0x7d70;
    0x00012860 jalr t9                   |         t9 ();
    0x00012864 addiu v0, zero, -1        |         v0 = -1;
    0x00012868 b 0x127dc                 |         
                                         |     } while (1);
                                         | label_5:
    0x0001286c lw t9, -0x7adc(gp)        |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00012870 jalr t9                   |     t9 ();
    0x00012874 nop                       |     
    0x00012878 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x0001287c lw v1, -0x7fc4(gp)        |     v1 = *((gp - 8177));
    0x00012880 lw t9, -0x79d0(gp)        |     t9 = sym.imp.imp_log_fun;
                                         |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_imp_alloc_kmalloc_method.c */
    0x00012884 addiu v1, v1, -0x7d64     |     v1 += -0x7d64;
    0x00012888 sw v1, 0x10(sp)           |     *(var_10h) = v1;
    0x0001288c addiu v1, zero, 0x7d      |     v1 = 0x7d;
    0x00012890 sw v1, 0x14(sp)           |     *(var_14h) = v1;
    0x00012894 lw v1, -0x7fc4(gp)        |     v1 = *((gp - 8177));
                                         |     /* obj.__func__.3970 */
    0x00012898 addiu v1, v1, -0x7dc4     |     v1 += -0x7dc4;
    0x0001289c sw v1, 0x18(sp)           |     *(var_18h) = v1;
    0x000128a0 lw v1, -0x7fcc(gp)        |     v1 = *(gp);
                                         |     /* str.mmap_failed_n */
    0x000128a4 addiu v1, v1, 0x6b38      |     v1 += 0x6b38;
                                         |     do {
    0x000128a8 lw a3, -0x7fc4(gp)        |         a3 = *((gp - 8177));
    0x000128ac move a1, v0               |         a1 = v0;
    0x000128b0 sw v1, 0x1c(sp)           |         *(var_1ch) = v1;
    0x000128b4 addiu a0, zero, 6         |         a0 = 6;
    0x000128b8 addiu a2, zero, 2         |         a2 = 2;
                                         |         /* str.KMEM_Method */
    0x000128bc addiu a3, a3, -0x7d70     |         a3 += -0x7d70;
    0x000128c0 jalr t9                   |         t9 ();
    0x000128c4 addiu v0, zero, -1        |         v0 = -1;
    0x000128c8 b 0x127dc                 |         goto label_0;
                                         | label_2:
    0x000128cc lw t9, -0x7adc(gp)        |         t9 = sym.imp.IMP_Log_Get_Option;
    0x000128d0 jalr t9                   |         t9 ();
    0x000128d4 nop                       |         
    0x000128d8 lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x000128dc lw v1, -0x7fc4(gp)        |         v1 = *((gp - 8177));
    0x000128e0 lw t9, -0x79d0(gp)        |         t9 = sym.imp.imp_log_fun;
                                         |         /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_imp_alloc_kmalloc_method.c */
    0x000128e4 addiu v1, v1, -0x7d64     |         v1 += -0x7d64;
    0x000128e8 sw v1, 0x10(sp)           |         *(var_10h) = v1;
    0x000128ec addiu v1, zero, 0x6c      |         v1 = 0x6c;
    0x000128f0 sw v1, 0x14(sp)           |         *(var_14h) = v1;
    0x000128f4 lw v1, -0x7fc4(gp)        |         v1 = *((gp - 8177));
                                         |         /* obj.__func__.3970 */
    0x000128f8 addiu v1, v1, -0x7dc4     |         v1 += -0x7dc4;
    0x000128fc sw v1, 0x18(sp)           |         *(var_18h) = v1;
    0x00012900 lw v1, -0x7fc4(gp)        |         v1 = *((gp - 8177));
                                         |         /* str.get_kmem_info_failed_n */
    0x00012904 addiu v1, v1, -0x7cd8     |         v1 += -0x7cd8;
    0x00012908 b 0x128a8                 |         
                                         |     } while (1);
                                         | label_4:
    0x0001290c lw t9, -0x7adc(gp)        |     t9 = sym.imp.IMP_Log_Get_Option;
                                         |     /* str._dev_rmem */
    0x00012910 addiu s3, s3, -0x7c9c     |     s3 += -0x7c9c;
    0x00012914 jalr t9                   |     t9 ();
    0x00012918 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x0001291c sw s3, 0x20(sp)           |     *(var_20h) = s3;
    0x00012920 lw v1, -0x7fc4(gp)        |     v1 = *((gp - 8177));
    0x00012924 lw t9, -0x79d0(gp)        |     t9 = sym.imp.imp_log_fun;
                                         |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_imp_alloc_kmalloc_method.c */
    0x00012928 addiu v1, v1, -0x7d64     |     v1 += -0x7d64;
    0x0001292c sw v1, 0x10(sp)           |     *(var_10h) = v1;
    0x00012930 addiu v1, zero, 0x77      |     v1 = 0x77;
    0x00012934 sw v1, 0x14(sp)           |     *(var_14h) = v1;
    0x00012938 lw v1, -0x7fc4(gp)        |     v1 = *((gp - 8177));
                                         |     /* obj.__func__.3970 */
    0x0001293c addiu v1, v1, -0x7dc4     |     v1 += -0x7dc4;
    0x00012940 sw v1, 0x18(sp)           |     *(var_18h) = v1;
    0x00012944 lw v1, -0x7fcc(gp)        |     v1 = *(gp);
                                         |     /* str.open__s_failed_n */
    0x00012948 addiu v1, v1, 0x797c      |     v1 += 0x797c;
    0x0001294c sw v1, 0x1c(sp)           |     *(var_1ch) = v1;
                                         |     do {
    0x00012950 lw a3, -0x7fc4(gp)        |         a3 = *((gp - 8177));
    0x00012954 move a1, v0               |         a1 = v0;
    0x00012958 addiu a0, zero, 6         |         a0 = 6;
    0x0001295c addiu a2, zero, 2         |         a2 = 2;
                                         |         /* str.KMEM_Method */
    0x00012960 addiu a3, a3, -0x7d70     |         a3 += -0x7d70;
    0x00012964 jalr t9                   |         t9 ();
    0x00012968 addiu v0, zero, -1        |         v0 = -1;
    0x0001296c b 0x127dc                 |         goto label_0;
                                         | label_1:
    0x00012970 jalr t9                   |         t9 ();
    0x00012974 nop                       |         
    0x00012978 lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x0001297c lw a0, -0x7fc4(gp)        |         a0 = *((gp - 8177));
    0x00012980 lw v1, -0x7fc4(gp)        |         v1 = *((gp - 8177));
    0x00012984 lw t9, -0x79d0(gp)        |         t9 = sym.imp.imp_log_fun;
                                         |         /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_imp_alloc_kmalloc_method.c */
    0x00012988 addiu a0, a0, -0x7d64     |         a0 += -0x7d64;
    0x0001298c sw a0, 0x10(sp)           |         *(var_10h) = a0;
    0x00012990 addiu a0, zero, 0x66      |         a0 = 0x66;
    0x00012994 sw a0, 0x14(sp)           |         *(var_14h) = a0;
    0x00012998 lw a0, -0x7fcc(gp)        |         a0 = *(gp);
                                         |         /* obj.__func__.3970 */
    0x0001299c addiu v1, v1, -0x7dc4     |         v1 += -0x7dc4;
    0x000129a0 sw v1, 0x18(sp)           |         *(var_18h) = v1;
                                         |         /* str._s_function_param_is_NULL_n */
    0x000129a4 addiu a0, a0, 0x7938      |         a0 += 0x7938;
    0x000129a8 sw a0, 0x1c(sp)           |         *(var_1ch) = a0;
    0x000129ac sw v1, 0x20(sp)           |         *(var_20h) = v1;
    0x000129b0 b 0x12950                 |         
                                         |     } while (1);
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libmp.so @ 0x10c0c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.alloc_pmem_init ()       | void alloc_pmem_init () {
    0x00010c0c lui gp, 0xe               |     
    0x00010c10 addiu gp, gp, -0x37fc     |     
    0x00010c14 addu gp, gp, t9           |     gp += t9;
    0x00010c18 addiu sp, sp, -0x50       |     
    0x00010c1c sw gp, 0x30(sp)           |     *(var_30h) = gp;
    0x00010c20 sw ra, 0x4c(sp)           |     *(var_4ch) = ra;
    0x00010c24 sw s4, 0x48(sp)           |     *(var_48h) = s4;
    0x00010c28 sw s3, 0x44(sp)           |     *(var_44h) = s3;
    0x00010c2c sw s2, 0x40(sp)           |     *(var_40h) = s2;
    0x00010c30 sw s1, 0x3c(sp)           |     *(var_3ch) = s1;
    0x00010c34 sw s0, 0x38(sp)           |     *(var_38h) = s0;
    0x00010c38 lw t9, -0x7adc(gp)        |     t9 = sym.imp.IMP_Log_Get_Option;
                                         |     if (a0 == 0) {
    0x00010c3c beqz a0, 0x10f78          |         goto label_2;
                                         |     }
    0x00010c40 lw t9, -0x7fd8(gp)        |     t9 = *(gp);
                                         |     /* sym.get_pmem_size */
    0x00010c44 addiu t9, t9, 0x9d0       |     t9 += 0x9d0;
    0x00010c48 move s0, a0               |     s0 = a0;
    0x00010c4c bal 0x109d0               |     sym_get_pmem_size ();
    0x00010c50 move s3, v0               |     s3 = v0;
    0x00010c54 lw gp, 0x30(sp)           |     gp = *(var_30h);
                                         |     if (v0 <= 0) {
    0x00010c58 blez v0, 0x10ee4          |         goto label_3;
                                         |     }
    0x00010c5c lw s4, -0x7fcc(gp)        |     s4 = *(gp);
    0x00010c60 lw t9, -0x7e60(gp)        |     t9 = sym.imp.open;
    0x00010c64 addiu a1, zero, 2         |     a1 = 2;
                                         |     /* str._dev_pmem */
    0x00010c68 addiu a0, s4, 0x7970      |     a0 = s4 + 0x7970;
    0x00010c6c jalr t9                   |     t9 ();
    0x00010c70 move s2, v0               |     s2 = v0;
    0x00010c74 lw gp, 0x30(sp)           |     gp = *(var_30h);
                                         |     if (v0 <= 0) {
    0x00010c78 blez v0, 0x10f2c          |         goto label_4;
                                         |     }
    0x00010c7c lw t9, -0x77e8(gp)        |     t9 = sym.imp.mmap
    0x00010c80 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00010c84 sw zero, 0x14(sp)         |     *(var_14h) = 0;
    0x00010c88 move a0, zero             |     a0 = 0;
    0x00010c8c move a1, s3               |     a1 = s3;
    0x00010c90 addiu a2, zero, 3         |     a2 = 3;
    0x00010c94 addiu a3, zero, 1         |     a3 = 1;
    0x00010c98 jalr t9                   |     t9 ();
    0x00010c9c lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x00010ca0 sw v0, 0x3c(s0)           |     *((s0 + 15)) = v0;
                                         |     if (v0 == 0) {
    0x00010ca4 beqz v0, 0x10e84          |         goto label_5;
                                         |     }
    0x00010ca8 lw t9, -0x74a4(gp)        |     t9 = sym.imp.ioctl;
    0x00010cac lui s3, 0x8004            |     s3 = 0x80040000;
    0x00010cb0 move a0, s2               |     a0 = s2;
    0x00010cb4 addiu a1, s3, 0x7003      |     a1 = s3 + 0x7003;
    0x00010cb8 addiu a2, s0, 0x44        |     a2 = s0 + 0x44;
    0x00010cbc jalr t9                   |     t9 ();
    0x00010cc0 move s1, v0               |     s1 = v0;
    0x00010cc4 lw gp, 0x30(sp)           |     gp = *(var_30h);
                                         |     if (v0 >= 0) {
    0x00010cc8 bltz v0, 0x10dbc          |         
    0x00010ccc lw t9, -0x74a4(gp)        |         t9 = sym.imp.ioctl;
    0x00010cd0 move a0, s2               |         a0 = s2;
    0x00010cd4 addiu a1, s3, 0x7001      |         a1 = s3 + 0x7001;
    0x00010cd8 addiu a2, s0, 0x40        |         a2 = s0 + 0x40;
    0x00010cdc jalr t9                   |         t9 ();
    0x00010ce0 move s1, v0               |         s1 = v0;
    0x00010ce4 lw gp, 0x30(sp)           |         gp = *(var_30h);
                                         |         if (v0 < 0) {
    0x00010ce8 bltz v0, 0x10e3c          |             goto label_6;
                                         |         }
    0x00010cec lw t9, -0x7f14(gp)        |         t9 = sym.imp.close;
    0x00010cf0 move a0, s2               |         a0 = s2;
    0x00010cf4 addiu s0, s0, 0x1c        |         s0 += 0x1c;
    0x00010cf8 jalr t9                   |         t9 ();
    0x00010cfc lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x00010d00 lw a1, 0x20(s0)           |         a1 = *((s0 + 8));
    0x00010d04 lw a0, 0x24(s0)           |         a0 = *((s0 + 9));
    0x00010d08 lw v0, -0x7fe4(gp)        |         v0 = *((gp - 8185));
    0x00010d0c lw v1, 0x28(s0)           |         v1 = *((s0 + 10));
    0x00010d10 lw t9, -0x7adc(gp)        |         t9 = sym.imp.IMP_Log_Get_Option;
    0x00010d14 sw a1, 0x6350(v0)         |         *((v0 + 6356)) = a1;
    0x00010d18 lw v0, -0x7fe4(gp)        |         v0 = *((gp - 8185));
    0x00010d1c move s1, zero             |         s1 = 0;
    0x00010d20 sw a0, 0x6354(v0)         |         *((v0 + 6357)) = a0;
    0x00010d24 lw v0, -0x7fe4(gp)        |         v0 = *((gp - 8185));
    0x00010d28 sw v1, 0x6358(v0)         |         *((v0 + 6358)) = v1;
    0x00010d2c jalr t9                   |         t9 ();
    0x00010d30 lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x00010d34 lw a1, 0x20(s0)           |         a1 = *((s0 + 8));
    0x00010d38 lw a0, 0x24(s0)           |         a0 = *((s0 + 9));
    0x00010d3c lw a2, -0x7fcc(gp)        |         a2 = *(gp);
    0x00010d40 lw v1, 0x28(s0)           |         v1 = *((s0 + 10));
    0x00010d44 lw a3, -0x7fcc(gp)        |         a3 = *(gp);
                                         |         /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_imp_alloc_pmem_method.c */
    0x00010d48 addiu a2, a2, 0x786c      |         a2 += 0x786c;
    0x00010d4c sw a2, 0x10(sp)           |         *(var_10h) = a2;
    0x00010d50 addiu a2, zero, 0x78      |         a2 = 0x78;
    0x00010d54 sw a2, 0x14(sp)           |         *(var_14h) = a2;
    0x00010d58 lw a2, -0x7fcc(gp)        |         a2 = *(gp);
    0x00010d5c lw t9, -0x79d0(gp)        |         t9 = sym.imp.imp_log_fun;
    0x00010d60 sw a1, 0x24(sp)           |         *(var_24h) = a1;
                                         |         /* obj.__func__.3956 */
    0x00010d64 addiu a2, a2, 0x7ca0      |         a2 += 0x7ca0;
    0x00010d68 sw a2, 0x18(sp)           |         *(var_18h) = a2;
    0x00010d6c lw a2, -0x7fcc(gp)        |         a2 = *(gp);
    0x00010d70 sw a0, 0x28(sp)           |         *(var_28h) = a0;
    0x00010d74 sw s0, 0x20(sp)           |         *(var_20h) = s0;
                                         |         /* str.alloc__mem_alloc.method___s_n__t_t_talloc__mem_alloc.vaddr__0x_08x_n__t_t_talloc__mem_alloc.paddr__0x_08x_n__t_t_talloc__mem_alloc.length___d_n */
    0x00010d78 addiu a2, a2, 0x79e8      |         a2 += 0x79e8;
    0x00010d7c sw a2, 0x1c(sp)           |         *(var_1ch) = a2;
    0x00010d80 sw v1, 0x2c(sp)           |         *(var_2ch) = v1;
    0x00010d84 addiu a0, zero, 3         |         a0 = 3;
    0x00010d88 move a1, v0               |         a1 = v0;
    0x00010d8c addiu a2, zero, 2         |         a2 = 2;
                                         |         /* str.PMEM_Method */
    0x00010d90 addiu a3, a3, 0x7860      |         a3 += 0x7860;
    0x00010d94 jalr t9                   |         t9 ();
    0x00010d98 lw ra, 0x4c(sp)           |         ra = *(var_4ch);
                                         | label_0:
    0x00010d9c move v0, s1               |         v0 = s1;
    0x00010da0 lw s4, 0x48(sp)           |         s4 = *(var_48h);
    0x00010da4 lw s3, 0x44(sp)           |         s3 = *(var_44h);
    0x00010da8 lw s2, 0x40(sp)           |         s2 = *(var_40h);
    0x00010dac lw s1, 0x3c(sp)           |         s1 = *(var_3ch);
    0x00010db0 lw s0, 0x38(sp)           |         s0 = *(var_38h);
    0x00010db4 addiu sp, sp, 0x50        |         
    0x00010db8 jr ra                     |         return v1;
                                         |     }
    0x00010dbc lw t9, -0x7adc(gp)        |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00010dc0 jalr t9                   |     t9 ();
    0x00010dc4 nop                       |     
    0x00010dc8 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x00010dcc sw s1, 0x20(sp)           |     *(var_20h) = s1;
    0x00010dd0 lw v1, -0x7fcc(gp)        |     v1 = *(gp);
    0x00010dd4 lw t9, -0x79d0(gp)        |     t9 = sym.imp.imp_log_fun;
                                         |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_imp_alloc_pmem_method.c */
    0x00010dd8 addiu v1, v1, 0x786c      |     v1 += 0x786c;
    0x00010ddc sw v1, 0x10(sp)           |     *(var_10h) = v1;
    0x00010de0 addiu v1, zero, 0x61      |     v1 = 0x61;
    0x00010de4 sw v1, 0x14(sp)           |     *(var_14h) = v1;
    0x00010de8 lw v1, -0x7fcc(gp)        |     v1 = *(gp);
                                         |     /* obj.__func__.3956 */
    0x00010dec addiu v1, v1, 0x7ca0      |     v1 += 0x7ca0;
    0x00010df0 sw v1, 0x18(sp)           |     *(var_18h) = v1;
    0x00010df4 lw v1, -0x7fcc(gp)        |     v1 = *(gp);
                                         |     /* str.pmem_get_size_error__ret___d__n */
    0x00010df8 addiu v1, v1, 0x79a0      |     v1 += 0x79a0;
    0x00010dfc sw v1, 0x1c(sp)           |     *(var_1ch) = v1;
                                         |     do {
                                         | label_1:
    0x00010e00 lw a3, -0x7fcc(gp)        |         a3 = *(gp);
    0x00010e04 move a1, v0               |         a1 = v0;
    0x00010e08 addiu a0, zero, 6         |         a0 = 6;
    0x00010e0c addiu a2, zero, 2         |         a2 = 2;
                                         |         /* str.PMEM_Method */
    0x00010e10 addiu a3, a3, 0x7860      |         a3 += 0x7860;
    0x00010e14 jalr t9                   |         t9 ();
    0x00010e18 lw ra, 0x4c(sp)           |         ra = *(var_4ch);
    0x00010e1c move v0, s1               |         v0 = s1;
    0x00010e20 lw s4, 0x48(sp)           |         s4 = *(var_48h);
    0x00010e24 lw s3, 0x44(sp)           |         s3 = *(var_44h);
    0x00010e28 lw s2, 0x40(sp)           |         s2 = *(var_40h);
    0x00010e2c lw s1, 0x3c(sp)           |         s1 = *(var_3ch);
    0x00010e30 lw s0, 0x38(sp)           |         s0 = *(var_38h);
    0x00010e34 addiu sp, sp, 0x50        |         
    0x00010e38 jr ra                     |         return v1;
                                         | label_6:
    0x00010e3c lw t9, -0x7adc(gp)        |         t9 = sym.imp.IMP_Log_Get_Option;
    0x00010e40 jalr t9                   |         t9 ();
    0x00010e44 nop                       |         
    0x00010e48 lw gp, 0x30(sp)           |         gp = *(var_30h);
    0x00010e4c sw s1, 0x20(sp)           |         *(var_20h) = s1;
    0x00010e50 lw v1, -0x7fcc(gp)        |         v1 = *(gp);
    0x00010e54 lw t9, -0x79d0(gp)        |         t9 = sym.imp.imp_log_fun;
                                         |         /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_imp_alloc_pmem_method.c */
    0x00010e58 addiu v1, v1, 0x786c      |         v1 += 0x786c;
    0x00010e5c sw v1, 0x10(sp)           |         *(var_10h) = v1;
    0x00010e60 addiu v1, zero, 0x67      |         v1 = 0x67;
    0x00010e64 sw v1, 0x14(sp)           |         *(var_14h) = v1;
    0x00010e68 lw v1, -0x7fcc(gp)        |         v1 = *(gp);
                                         |         /* obj.__func__.3956 */
    0x00010e6c addiu v1, v1, 0x7ca0      |         v1 += 0x7ca0;
    0x00010e70 sw v1, 0x18(sp)           |         *(var_18h) = v1;
    0x00010e74 lw v1, -0x7fcc(gp)        |         v1 = *(gp);
                                         |         /* str.pmem_get_phys_address_error__ret_d__n */
    0x00010e78 addiu v1, v1, 0x79c0      |         v1 += 0x79c0;
    0x00010e7c sw v1, 0x1c(sp)           |         *(var_1ch) = v1;
    0x00010e80 b 0x10e00                 |         
                                         |     } while (1);
                                         | label_5:
    0x00010e84 lw t9, -0x7adc(gp)        |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00010e88 addiu s1, zero, -1        |     s1 = -1;
    0x00010e8c jalr t9                   |     t9 ();
    0x00010e90 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x00010e94 addiu a0, zero, 6         |     a0 = 6;
    0x00010e98 move a1, v0               |     a1 = v0;
    0x00010e9c lw v1, -0x7fcc(gp)        |     v1 = *(gp);
    0x00010ea0 lw a3, -0x7fcc(gp)        |     a3 = *(gp);
    0x00010ea4 lw t9, -0x79d0(gp)        |     t9 = sym.imp.imp_log_fun;
                                         |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_imp_alloc_pmem_method.c */
    0x00010ea8 addiu v1, v1, 0x786c      |     v1 += 0x786c;
    0x00010eac sw v1, 0x10(sp)           |     *(var_10h) = v1;
    0x00010eb0 addiu v1, zero, 0x5b      |     v1 = 0x5b;
    0x00010eb4 sw v1, 0x14(sp)           |     *(var_14h) = v1;
    0x00010eb8 lw v1, -0x7fcc(gp)        |     v1 = *(gp);
    0x00010ebc addiu a2, zero, 2         |     a2 = 2;
                                         |     /* str.PMEM_Method */
    0x00010ec0 addiu a3, a3, 0x7860      |     a3 += 0x7860;
                                         |     /* obj.__func__.3956 */
    0x00010ec4 addiu v1, v1, 0x7ca0      |     v1 += 0x7ca0;
    0x00010ec8 sw v1, 0x18(sp)           |     *(var_18h) = v1;
    0x00010ecc lw v1, -0x7fcc(gp)        |     v1 = *(gp);
                                         |     /* str.pmem_mmap_failed_n */
    0x00010ed0 addiu v1, v1, 0x798c      |     v1 += 0x798c;
    0x00010ed4 sw v1, 0x1c(sp)           |     *(var_1ch) = v1;
    0x00010ed8 jalr t9                   |     t9 ();
    0x00010edc lw ra, 0x4c(sp)           |     ra = *(var_4ch);
    0x00010ee0 b 0x10d9c                 |     goto label_0;
                                         | label_3:
    0x00010ee4 lw t9, -0x7adc(gp)        |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00010ee8 addiu s1, zero, -1        |     s1 = -1;
    0x00010eec jalr t9                   |     t9 ();
    0x00010ef0 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x00010ef4 sw s3, 0x20(sp)           |     *(var_20h) = s3;
    0x00010ef8 lw v1, -0x7fcc(gp)        |     v1 = *(gp);
    0x00010efc lw t9, -0x79d0(gp)        |     t9 = sym.imp.imp_log_fun;
                                         |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_imp_alloc_pmem_method.c */
    0x00010f00 addiu v1, v1, 0x786c      |     v1 += 0x786c;
    0x00010f04 sw v1, 0x10(sp)           |     *(var_10h) = v1;
    0x00010f08 addiu v1, zero, 0x4c      |     v1 = 0x4c;
    0x00010f0c sw v1, 0x14(sp)           |     *(var_14h) = v1;
    0x00010f10 lw v1, -0x7fcc(gp)        |     v1 = *(gp);
                                         |     /* obj.__func__.3956 */
    0x00010f14 addiu v1, v1, 0x7ca0      |     v1 += 0x7ca0;
    0x00010f18 sw v1, 0x18(sp)           |     *(var_18h) = v1;
    0x00010f1c lw v1, -0x7fcc(gp)        |     v1 = *(gp);
                                         |     /* str.get_pmem_size__d_failed_n */
    0x00010f20 addiu v1, v1, 0x7954      |     v1 += 0x7954;
    0x00010f24 sw v1, 0x1c(sp)           |     *(var_1ch) = v1;
    0x00010f28 b 0x10e00                 |     goto label_1;
                                         | label_4:
    0x00010f2c lw t9, -0x7adc(gp)        |     t9 = sym.imp.IMP_Log_Get_Option;
                                         |     /* str._dev_pmem */
    0x00010f30 addiu s4, s4, 0x7970      |     s4 += 0x7970;
    0x00010f34 addiu s1, zero, -1        |     s1 = -1;
    0x00010f38 jalr t9                   |     t9 ();
    0x00010f3c lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x00010f40 sw s4, 0x20(sp)           |     *(var_20h) = s4;
    0x00010f44 lw v1, -0x7fcc(gp)        |     v1 = *(gp);
    0x00010f48 lw t9, -0x79d0(gp)        |     t9 = sym.imp.imp_log_fun;
                                         |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_imp_alloc_pmem_method.c */
    0x00010f4c addiu v1, v1, 0x786c      |     v1 += 0x786c;
    0x00010f50 sw v1, 0x10(sp)           |     *(var_10h) = v1;
    0x00010f54 addiu v1, zero, 0x52      |     v1 = 0x52;
    0x00010f58 sw v1, 0x14(sp)           |     *(var_14h) = v1;
    0x00010f5c lw v1, -0x7fcc(gp)        |     v1 = *(gp);
                                         |     /* obj.__func__.3956 */
    0x00010f60 addiu v1, v1, 0x7ca0      |     v1 += 0x7ca0;
    0x00010f64 sw v1, 0x18(sp)           |     *(var_18h) = v1;
    0x00010f68 lw v1, -0x7fcc(gp)        |     v1 = *(gp);
                                         |     /* str.open__s_failed_n */
    0x00010f6c addiu v1, v1, 0x797c      |     v1 += 0x797c;
    0x00010f70 sw v1, 0x1c(sp)           |     *(var_1ch) = v1;
    0x00010f74 b 0x10e00                 |     goto label_1;
                                         | label_2:
    0x00010f78 addiu s1, zero, -1        |     s1 = -1;
    0x00010f7c jalr t9                   |     t9 ();
    0x00010f80 lw gp, 0x30(sp)           |     gp = *(var_30h);
    0x00010f84 lw a0, -0x7fcc(gp)        |     a0 = *(gp);
    0x00010f88 lw v1, -0x7fcc(gp)        |     v1 = *(gp);
    0x00010f8c lw t9, -0x79d0(gp)        |     t9 = sym.imp.imp_log_fun;
                                         |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_imp_alloc_pmem_method.c */
    0x00010f90 addiu a0, a0, 0x786c      |     a0 += 0x786c;
    0x00010f94 sw a0, 0x10(sp)           |     *(var_10h) = a0;
    0x00010f98 addiu a0, zero, 0x46      |     a0 = 0x46;
    0x00010f9c sw a0, 0x14(sp)           |     *(var_14h) = a0;
    0x00010fa0 lw a0, -0x7fcc(gp)        |     a0 = *(gp);
                                         |     /* obj.__func__.3956 */
    0x00010fa4 addiu v1, v1, 0x7ca0      |     v1 += 0x7ca0;
    0x00010fa8 sw v1, 0x18(sp)           |     *(var_18h) = v1;
                                         |     /* str._s_function_param_is_NULL_n */
    0x00010fac addiu a0, a0, 0x7938      |     a0 += 0x7938;
    0x00010fb0 sw a0, 0x1c(sp)           |     *(var_1ch) = a0;
    0x00010fb4 sw v1, 0x20(sp)           |     *(var_20h) = v1;
    0x00010fb8 b 0x10e00                 |     goto label_1;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libmp.so @ 0x4040c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.init_ispmem_info ()          | void init_ispmem_info () {
    0x0004040c lui gp, 0xb                   |     
    0x00040410 addiu gp, gp, -0x2ffc         |     
    0x00040414 addu gp, gp, t9               |     gp += t9;
    0x00040418 lw v0, -0x7fc8(gp)            |     v0 = *(gp);
    0x0004041c lw t9, -0x7b18(gp)            |     t9 = sym.imp.memset;
    0x00040420 addiu sp, sp, -0x260          |     
    0x00040424 lbu v0, -0x5864(v0)           |     v0 = *((v0 - 22628));
    0x00040428 addiu a0, sp, 0x39            |     a0 = sp + 0x39;
    0x0004042c sw gp, 0x30(sp)               |     *(var_30h) = gp;
    0x00040430 sw ra, 0x25c(sp)              |     *(var_25ch) = ra;
    0x00040434 sw s1, 0x244(sp)              |     *(var_244h) = s1;
    0x00040438 move a1, zero                 |     a1 = 0;
    0x0004043c sw s6, 0x258(sp)              |     *(var_258h) = s6;
    0x00040440 sw s5, 0x254(sp)              |     *(var_254h) = s5;
    0x00040444 sw s4, 0x250(sp)              |     *(var_250h) = s4;
    0x00040448 sw s3, 0x24c(sp)              |     *(var_24ch) = s3;
    0x0004044c sw s2, 0x248(sp)              |     *(var_248h) = s2;
    0x00040450 sw s0, 0x240(sp)              |     *(var_240h) = s0;
    0x00040454 sb v0, 0x38(sp)               |     *(var_38h) = v0;
    0x00040458 lw s1, -0x7fcc(gp)            |     s1 = *(gp);
    0x0004045c addiu a2, zero, 0x1ff         |     a2 = 0x1ff;
    0x00040460 jalr t9                       |     t9 ();
    0x00040464 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     /* str._proc_cmdline */
    0x00040468 addiu a0, s1, 0x7850          |     a0 = s1 + 0x7850;
    0x0004046c lw a1, -0x7fc4(gp)            |     a1 = *((gp - 8177));
    0x00040470 lw t9, -0x7b08(gp)            |     t9 = sym.imp.fopen;
                                             |     /* esilref: '' */
    0x00040474 addiu a1, a1, -0x7c6c         |     a1 += -0x7c6c;
    0x00040478 jalr t9                       |     t9 ();
    0x0004047c lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 == 0) {
    0x00040480 beqz v0, 0x408b8              |         goto label_3;
                                             |     }
    0x00040484 lw t9, -0x7ab4(gp)            |     t9 = sym.imp.fread;
    0x00040488 addiu a0, sp, 0x38            |     a0 = sp + 0x38;
    0x0004048c addiu a1, zero, 1             |     a1 = 1;
    0x00040490 addiu a2, zero, 0x200         |     a2 = aav.0x00000200;
    0x00040494 move a3, v0                   |     a3 = v0;
    0x00040498 move s0, v0                   |     s0 = v0;
    0x0004049c jalr t9                       |     t9 ();
    0x000404a0 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 <= 0) {
    0x000404a4 blez v0, 0x40800              |         goto label_4;
                                             |     }
    0x000404a8 lw t9, -0x7b54(gp)            |     t9 = sym.imp.fclose;
    0x000404ac move a0, s0                   |     a0 = s0;
    0x000404b0 jalr t9                       |     t9 ();
    0x000404b4 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000404b8 addiu a0, sp, 0x38            |     a0 = sp + 0x38;
    0x000404bc lw a1, -0x7fc8(gp)            |     a1 = *(gp);
    0x000404c0 lw t9, -0x79a4(gp)            |     t9 = sym.imp.strstr;
                                             |     /* str.ispmem */
    0x000404c4 addiu a1, a1, -0x7edc         |     a1 += -0x7edc;
    0x000404c8 jalr t9                       |     t9 ();
    0x000404cc lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 == 0) {
    0x000404d0 beqz v0, 0x408f8              |         goto label_5;
                                             |     }
    0x000404d4 lw s1, -0x7fa4(gp)            |     s1 = *((gp - 8169));
    0x000404d8 addiu a0, v0, 7               |     a0 = v0 + 7;
                                             |     /* sym.memparse_1 */
    0x000404dc addiu s1, s1, 0x34c           |     s1 += aav.0x0000034c;
    0x000404e0 move t9, s1                   |     t9 = s1;
    0x000404e4 addiu a1, sp, 0x238           |     a1 = sp + aav.0x00000238;
    0x000404e8 bal 0x4034c                   |     sym_memparse_1 ();
    0x000404ec lw a0, 0x238(sp)              |     a0 = *(var_238h);
    0x000404f0 move s0, v0                   |     s0 = v0;
    0x000404f4 addiu v0, zero, 0x40          |     v0 = 0x40;
    0x000404f8 lb v1, (a0)                   |     v1 = *(a0);
    0x000404fc lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v1 == v0) {
    0x00040500 beq v1, v0, 0x405e4           |         goto label_6;
                                             |     }
    0x00040504 lw t9, -0x7adc(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
    0x00040508 lw s4, -0x7fc4(gp)            |     s4 = *((gp - 8177));
    0x0004050c move s5, zero                 |     s5 = 0;
    0x00040510 jalr t9                       |     t9 ();
    0x00040514 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00040518 addiu v1, zero, 0x1121        |     v1 = 0x1121;
    0x0004051c sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x00040520 lw s3, -0x7fc4(gp)            |     s3 = *((gp - 8177));
    0x00040524 lw s2, -0x7fc8(gp)            |     s2 = *(gp);
    0x00040528 lw v1, -0x7fc8(gp)            |     v1 = *(gp);
    0x0004052c lw t9, -0x79d0(gp)            |     t9 = sym.imp.imp_log_fun;
                                             |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_video_imp_encoder.c */
    0x00040530 addiu s3, s3, 0x7f18          |     s3 += 0x7f18;
                                             |     /* str.ispmem_Size:_d__Addr:0x_08x_n */
    0x00040534 addiu v1, v1, -0x7ed4         |     v1 += -0x7ed4;
                                             |     /* obj.__func__.9756 */
    0x00040538 addiu s2, s2, -0x5654         |     s2 += -0x5654;
    0x0004053c sw s3, 0x10(sp)               |     *(var_10h) = s3;
    0x00040540 sw s2, 0x18(sp)               |     *(var_18h) = s2;
    0x00040544 sw v1, 0x1c(sp)               |     *(var_1ch) = v1;
    0x00040548 sw s0, 0x20(sp)               |     *(var_20h) = s0;
    0x0004054c sw zero, 0x24(sp)             |     *(var_24h) = 0;
    0x00040550 addiu a0, zero, 3             |     a0 = 3;
    0x00040554 move a1, v0                   |     a1 = v0;
    0x00040558 addiu a2, zero, 2             |     a2 = 2;
                                             |     /* esilref: 'Encoder' */
    0x0004055c addiu a3, s4, 0x7f10          |     a3 = s4 + 0x7f10;
    0x00040560 jalr t9                       |     t9 ();
    0x00040564 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     do {
                                             | label_0:
    0x00040568 lw t9, -0x7adc(gp)            |         t9 = sym.imp.IMP_Log_Get_Option;
    0x0004056c jalr t9                       |         t9 ();
    0x00040570 nop                           |         
    0x00040574 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00040578 addiu v1, zero, 0x1125        |         v1 = 0x1125;
    0x0004057c sw v1, 0x14(sp)               |         *(var_14h) = v1;
    0x00040580 lw v1, -0x7fc4(gp)            |         v1 = *((gp - 8177));
    0x00040584 lw t9, -0x79d0(gp)            |         t9 = sym.imp.imp_log_fun;
    0x00040588 move a1, v0                   |         a1 = v0;
                                             |         /* str._s_mmap_Addr__x_and_Size__d_error_n */
    0x0004058c addiu v1, v1, -0x7cc0         |         v1 += -0x7cc0;
    0x00040590 sw s3, 0x10(sp)               |         *(var_10h) = s3;
    0x00040594 sw s2, 0x18(sp)               |         *(var_18h) = s2;
    0x00040598 sw v1, 0x1c(sp)               |         *(var_1ch) = v1;
    0x0004059c sw s2, 0x20(sp)               |         *(var_20h) = s2;
    0x000405a0 sw s5, 0x24(sp)               |         *(var_24h) = s5;
    0x000405a4 sw s0, 0x28(sp)               |         *(var_28h) = s0;
    0x000405a8 addiu a0, zero, 6             |         a0 = 6;
    0x000405ac addiu a2, zero, 2             |         a2 = 2;
                                             |         /* esilref: 'Encoder' */
    0x000405b0 addiu a3, s4, 0x7f10          |         a3 = s4 + 0x7f10;
    0x000405b4 jalr t9                       |         t9 ();
    0x000405b8 addiu v0, zero, -1            |         v0 = -1;
                                             | label_1:
    0x000405bc lw ra, 0x25c(sp)              |         ra = *(var_25ch);
    0x000405c0 lw s6, 0x258(sp)              |         s6 = *(var_258h);
    0x000405c4 lw s5, 0x254(sp)              |         s5 = *(var_254h);
    0x000405c8 lw s4, 0x250(sp)              |         s4 = *(var_250h);
    0x000405cc lw s3, 0x24c(sp)              |         s3 = *(var_24ch);
    0x000405d0 lw s2, 0x248(sp)              |         s2 = *(var_248h);
    0x000405d4 lw s1, 0x244(sp)              |         s1 = *(var_244h);
    0x000405d8 lw s0, 0x240(sp)              |         s0 = *(var_240h);
    0x000405dc addiu sp, sp, 0x260           |         
    0x000405e0 jr ra                         |         return v1;
                                             | label_6:
    0x000405e4 addiu a0, a0, 1               |         a0++;
    0x000405e8 move t9, s1                   |         t9 = s1;
    0x000405ec move a1, zero                 |         a1 = 0;
    0x000405f0 bal 0x4034c                   |         sym_memparse_1 ();
    0x000405f4 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x000405f8 move s1, v0                   |         s1 = v0;
    0x000405fc lw t9, -0x7adc(gp)            |         t9 = sym.imp.IMP_Log_Get_Option;
    0x00040600 lw s4, -0x7fc4(gp)            |         s4 = *((gp - 8177));
    0x00040604 move s5, s1                   |         s5 = s1;
    0x00040608 jalr t9                       |         t9 ();
    0x0004060c lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00040610 addiu v1, zero, 0x1121        |         v1 = 0x1121;
    0x00040614 sw v1, 0x14(sp)               |         *(var_14h) = v1;
    0x00040618 lw s3, -0x7fc4(gp)            |         s3 = *((gp - 8177));
    0x0004061c lw s2, -0x7fc8(gp)            |         s2 = *(gp);
    0x00040620 lw v1, -0x7fc8(gp)            |         v1 = *(gp);
    0x00040624 lw t9, -0x79d0(gp)            |         t9 = sym.imp.imp_log_fun;
                                             |         /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_video_imp_encoder.c */
    0x00040628 addiu s3, s3, 0x7f18          |         s3 += 0x7f18;
                                             |         /* str.ispmem_Size:_d__Addr:0x_08x_n */
    0x0004062c addiu v1, v1, -0x7ed4         |         v1 += -0x7ed4;
                                             |         /* obj.__func__.9756 */
    0x00040630 addiu s2, s2, -0x5654         |         s2 += -0x5654;
    0x00040634 sw s3, 0x10(sp)               |         *(var_10h) = s3;
    0x00040638 sw s2, 0x18(sp)               |         *(var_18h) = s2;
    0x0004063c sw v1, 0x1c(sp)               |         *(var_1ch) = v1;
    0x00040640 sw s0, 0x20(sp)               |         *(var_20h) = s0;
    0x00040644 sw s1, 0x24(sp)               |         *(var_24h) = s1;
    0x00040648 addiu a0, zero, 3             |         a0 = 3;
    0x0004064c move a1, v0                   |         a1 = v0;
    0x00040650 addiu a2, zero, 2             |         a2 = 2;
                                             |         /* esilref: 'Encoder' */
    0x00040654 addiu a3, s4, 0x7f10          |         a3 = s4 + 0x7f10;
    0x00040658 jalr t9                       |         t9 ();
    0x0004065c lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00040660 beqz s1, 0x40568              |         
                                             |     } while (s1 == 0);
    0x00040664 lw t9, -0x7e60(gp)            |     t9 = sym.imp.open;
                                             |     if (s0 == 0) {
    0x00040668 beqz s0, 0x40568              |         goto label_0;
                                             |     }
    0x0004066c lw s5, -0x7fc4(gp)            |     s5 = *((gp - 8177));
    0x00040670 addiu a1, zero, 2             |     a1 = 2;
                                             |     /* str._dev_rmem */
    0x00040674 addiu a0, s5, -0x7c9c         |     a0 = s5 + -0x7c9c;
    0x00040678 jalr t9                       |     t9 ();
    0x0004067c lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 <= 0) {
    0x00040680 blez v0, 0x40868              |         goto label_7;
                                             |     }
    0x00040684 lw t9, -0x77e8(gp)            |     t9 = sym.imp.mmap
    0x00040688 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0004068c sw s1, 0x14(sp)               |     *(var_14h) = s1;
    0x00040690 move a0, zero                 |     a0 = 0;
    0x00040694 move a1, s0                   |     a1 = s0;
    0x00040698 addiu a2, zero, 3             |     a2 = 3;
    0x0004069c addiu a3, zero, 1             |     a3 = 1;
    0x000406a0 jalr t9                       |     t9 ();
    0x000406a4 lw gp, 0x30(sp)               |     gp = *(var_30h);
                                             |     if (v0 == 0) {
    0x000406a8 beqz v0, 0x407b4              |         goto label_8;
                                             |     }
    0x000406ac lw a1, -0x7fa8(gp)            |     a1 = *((gp - 8170));
    0x000406b0 lui a0, 0xffed                |     a0 = 0xffed7200;
    0x000406b4 addiu a0, a0, 0x7200          |     
                                             |     /* obj.g_ncu_info */
    0x000406b8 addiu v1, a1, -0x6bf4         |     v1 = a1 + -0x6bf4;
    0x000406bc addu a0, s0, a0               |     a0 = s0 + a0;
    0x000406c0 addu a2, v0, a0               |     a2 = v0 + a0;
    0x000406c4 sw v0, 4(v1)                  |     *((v1 + 1)) = v0;
    0x000406c8 sw s0, 8(v1)                  |     *((v1 + 2)) = s0;
    0x000406cc sw v0, 0x18(v1)               |     *((v1 + 6)) = v0;
    0x000406d0 lw s0, -0x7fa8(gp)            |     s0 = *((gp - 8170));
    0x000406d4 addiu v0, zero, 1             |     v0 = 1;
    0x000406d8 lw s6, -0x7fc8(gp)            |     s6 = *(gp);
    0x000406dc sw v0, 0x20(v1)               |     *((v1 + 8)) = v0;
    0x000406e0 lui v0, 0x12                  |     v0 = 0x120000;
    0x000406e4 addu a3, s1, a0               |     a3 = s1 + a0;
    0x000406e8 ori v0, v0, 0x8e00            |     v0 |= 0x8e00;
    0x000406ec sw s1, -0x6bf4(a1)            |     *((a1 - 6909)) = s1;
    0x000406f0 sw s1, 0x14(v1)               |     *((v1 + 5)) = s1;
    0x000406f4 sw zero, 0xc(v1)              |     *((v1 + 3)) = 0;
    0x000406f8 sw zero, 0x10(v1)             |     *((v1 + 4)) = 0;
    0x000406fc sw zero, 0x24(v1)             |     *((v1 + 9)) = 0;
    0x00040700 sw a0, 0x1c(v1)               |     *((v1 + 7)) = a0;
    0x00040704 sw a3, 0x28(v1)               |     *((v1 + 10)) = a3;
    0x00040708 sw a2, 0x2c(v1)               |     *((v1 + 11)) = a2;
    0x0004070c sw v0, 0x30(v1)               |     *((v1 + 12)) = v0;
    0x00040710 addiu s0, s0, -0x6be0         |     s0 += -0x6be0;
    0x00040714 move s1, zero                 |     s1 = 0;
                                             |     /* str.bank__d_paddr_08x_vaddr_08x_size_d_n */
    0x00040718 addiu s6, s6, -0x7ea0         |     s6 += -0x7ea0;
    0x0004071c addiu s5, zero, 0x114e        |     s5 = 0x114e;
                                             |     /* esilref: 'Encoder' */
    0x00040720 addiu s4, s4, 0x7f10          |     s4 += 0x7f10;
                                             |     do {
    0x00040724 lw t9, -0x7adc(gp)            |         t9 = sym.imp.IMP_Log_Get_Option;
    0x00040728 addiu s0, s0, 0x14            |         s0 += 0x14;
    0x0004072c jalr t9                       |         t9 ();
    0x00040730 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00040734 lw a1, -0x14(s0)              |         a1 = *((s0 - 5));
    0x00040738 lw a0, -0x10(s0)              |         a0 = *((s0 - 4));
    0x0004073c lw v1, -0xc(s0)               |         v1 = *((s0 - 3));
    0x00040740 lw t9, -0x79d0(gp)            |         t9 = sym.imp.imp_log_fun;
    0x00040744 sw s1, 0x20(sp)               |         *(var_20h) = s1;
    0x00040748 sw a1, 0x24(sp)               |         *(var_24h) = a1;
    0x0004074c sw a0, 0x28(sp)               |         *(var_28h) = a0;
    0x00040750 move a1, v0                   |         a1 = v0;
    0x00040754 sw s3, 0x10(sp)               |         *(var_10h) = s3;
    0x00040758 sw s5, 0x14(sp)               |         *(var_14h) = s5;
    0x0004075c sw s2, 0x18(sp)               |         *(var_18h) = s2;
    0x00040760 sw s6, 0x1c(sp)               |         *(var_1ch) = s6;
    0x00040764 sw v1, 0x2c(sp)               |         *(var_2ch) = v1;
    0x00040768 addiu a0, zero, 4             |         a0 = 4;
    0x0004076c addiu a2, zero, 2             |         a2 = 2;
    0x00040770 move a3, s4                   |         a3 = s4;
    0x00040774 jalr t9                       |         t9 ();
    0x00040778 addiu s1, s1, 1               |         s1++;
    0x0004077c addiu v0, zero, 2             |         v0 = 2;
    0x00040780 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00040784 bne s1, v0, 0x40724           |         
                                             |     } while (s1 != v0);
    0x00040788 lw ra, 0x25c(sp)              |     ra = *(var_25ch);
    0x0004078c lw s6, 0x258(sp)              |     s6 = *(var_258h);
    0x00040790 lw s5, 0x254(sp)              |     s5 = *(var_254h);
    0x00040794 lw s4, 0x250(sp)              |     s4 = *(var_250h);
    0x00040798 lw s3, 0x24c(sp)              |     s3 = *(var_24ch);
    0x0004079c lw s2, 0x248(sp)              |     s2 = *(var_248h);
    0x000407a0 lw s1, 0x244(sp)              |     s1 = *(var_244h);
    0x000407a4 lw s0, 0x240(sp)              |     s0 = *(var_240h);
    0x000407a8 move v0, zero                 |     v0 = 0;
    0x000407ac addiu sp, sp, 0x260           |     
    0x000407b0 jr ra                         |     return v1;
                                             | label_8:
    0x000407b4 lw t9, -0x7adc(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
    0x000407b8 jalr t9                       |     t9 ();
    0x000407bc nop                           |     
    0x000407c0 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x000407c4 addiu v1, zero, 0x1132        |     v1 = 0x1132;
    0x000407c8 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x000407cc lw v1, -0x7fc8(gp)            |     v1 = *(gp);
    0x000407d0 lw t9, -0x79d0(gp)            |     t9 = sym.imp.imp_log_fun;
    0x000407d4 move a1, v0                   |     a1 = v0;
                                             |     /* str.ispmem_mmap_failed_n */
    0x000407d8 addiu v1, v1, -0x7eb4         |     v1 += -0x7eb4;
    0x000407dc sw s3, 0x10(sp)               |     *(var_10h) = s3;
    0x000407e0 sw s2, 0x18(sp)               |     *(var_18h) = s2;
    0x000407e4 sw v1, 0x1c(sp)               |     *(var_1ch) = v1;
    0x000407e8 addiu a0, zero, 6             |     a0 = 6;
    0x000407ec addiu a2, zero, 2             |     a2 = 2;
                                             |     /* esilref: 'Encoder' */
    0x000407f0 addiu a3, s4, 0x7f10          |     a3 = s4 + 0x7f10;
    0x000407f4 jalr t9                       |     t9 ();
    0x000407f8 addiu v0, zero, -1            |     v0 = -1;
    0x000407fc b 0x405bc                     |     goto label_1;
                                             | label_4:
    0x00040800 lw t9, -0x7adc(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
                                             |     /* str._proc_cmdline */
    0x00040804 addiu s1, s1, 0x7850          |     s1 += 0x7850;
    0x00040808 jalr t9                       |     t9 ();
    0x0004080c lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00040810 lw a0, -0x7fc4(gp)            |     a0 = *((gp - 8177));
    0x00040814 lw v1, -0x7fc8(gp)            |     v1 = *(gp);
    0x00040818 lw t9, -0x79d0(gp)            |     t9 = sym.imp.imp_log_fun;
                                             |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_video_imp_encoder.c */
    0x0004081c addiu a0, a0, 0x7f18          |     a0 += 0x7f18;
    0x00040820 sw a0, 0x10(sp)               |     *(var_10h) = a0;
                                             |     /* obj.__func__.9756 */
    0x00040824 addiu v1, v1, -0x5654         |     v1 += -0x5654;
    0x00040828 addiu a0, zero, 0x110f        |     a0 = 0x110f;
                                             | label_2:
    0x0004082c sw a0, 0x14(sp)               |     *(var_14h) = a0;
    0x00040830 lw a0, -0x7fcc(gp)            |     a0 = *(gp);
    0x00040834 sw v1, 0x18(sp)               |     *(var_18h) = v1;
                                             |     /* str._s_fread___s__error_n */
    0x00040838 addiu a0, a0, 0x78e8          |     a0 += 0x78e8;
                                             |     do {
    0x0004083c lw a3, -0x7fc4(gp)            |         a3 = *((gp - 8177));
    0x00040840 sw a0, 0x1c(sp)               |         *(var_1ch) = a0;
    0x00040844 move a1, v0                   |         a1 = v0;
    0x00040848 sw v1, 0x20(sp)               |         *(var_20h) = v1;
    0x0004084c sw s1, 0x24(sp)               |         *(var_24h) = s1;
    0x00040850 addiu a0, zero, 6             |         a0 = 6;
    0x00040854 addiu a2, zero, 2             |         a2 = 2;
                                             |         /* esilref: 'Encoder' */
    0x00040858 addiu a3, a3, 0x7f10          |         a3 += 0x7f10;
    0x0004085c jalr t9                       |         t9 ();
    0x00040860 addiu v0, zero, -1            |         v0 = -1;
    0x00040864 b 0x405bc                     |         goto label_1;
                                             | label_7:
    0x00040868 lw t9, -0x7adc(gp)            |         t9 = sym.imp.IMP_Log_Get_Option;
                                             |         /* str._dev_rmem */
    0x0004086c addiu s5, s5, -0x7c9c         |         s5 += -0x7c9c;
    0x00040870 jalr t9                       |         t9 ();
    0x00040874 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x00040878 addiu v1, zero, 0x112c        |         v1 = 0x112c;
    0x0004087c sw v1, 0x14(sp)               |         *(var_14h) = v1;
    0x00040880 lw v1, -0x7fcc(gp)            |         v1 = *(gp);
    0x00040884 lw t9, -0x79d0(gp)            |         t9 = sym.imp.imp_log_fun;
    0x00040888 move a1, v0                   |         a1 = v0;
                                             |         /* str.open__s_failed_n */
    0x0004088c addiu v1, v1, 0x797c          |         v1 += 0x797c;
    0x00040890 sw s3, 0x10(sp)               |         *(var_10h) = s3;
    0x00040894 sw s2, 0x18(sp)               |         *(var_18h) = s2;
    0x00040898 sw v1, 0x1c(sp)               |         *(var_1ch) = v1;
    0x0004089c sw s5, 0x20(sp)               |         *(var_20h) = s5;
    0x000408a0 addiu a0, zero, 6             |         a0 = 6;
    0x000408a4 addiu a2, zero, 2             |         a2 = 2;
                                             |         /* esilref: 'Encoder' */
    0x000408a8 addiu a3, s4, 0x7f10          |         a3 = s4 + 0x7f10;
    0x000408ac jalr t9                       |         t9 ();
    0x000408b0 addiu v0, zero, -1            |         v0 = -1;
    0x000408b4 b 0x405bc                     |         goto label_1;
                                             | label_3:
    0x000408b8 lw t9, -0x7adc(gp)            |         t9 = sym.imp.IMP_Log_Get_Option;
                                             |         /* str._proc_cmdline */
    0x000408bc addiu s1, s1, 0x7850          |         s1 += 0x7850;
    0x000408c0 jalr t9                       |         t9 ();
    0x000408c4 lw gp, 0x30(sp)               |         gp = *(var_30h);
    0x000408c8 lw a0, -0x7fc4(gp)            |         a0 = *((gp - 8177));
    0x000408cc lw v1, -0x7fc8(gp)            |         v1 = *(gp);
    0x000408d0 lw t9, -0x79d0(gp)            |         t9 = sym.imp.imp_log_fun;
                                             |         /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_video_imp_encoder.c */
    0x000408d4 addiu a0, a0, 0x7f18          |         a0 += 0x7f18;
    0x000408d8 sw a0, 0x10(sp)               |         *(var_10h) = a0;
    0x000408dc addiu a0, zero, 0x1109        |         a0 = 0x1109;
    0x000408e0 sw a0, 0x14(sp)               |         *(var_14h) = a0;
    0x000408e4 lw a0, -0x7fcc(gp)            |         a0 = *(gp);
                                             |         /* obj.__func__.9756 */
    0x000408e8 addiu v1, v1, -0x5654         |         v1 += -0x5654;
    0x000408ec sw v1, 0x18(sp)               |         *(var_18h) = v1;
                                             |         /* str._s_open_file___s__error_n */
    0x000408f0 addiu a0, a0, 0x78cc          |         a0 += 0x78cc;
    0x000408f4 b 0x4083c                     |         
                                             |     } while (1);
                                             | label_5:
    0x000408f8 lw t9, -0x7adc(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
                                             |     /* str._proc_cmdline */
    0x000408fc addiu s1, s1, 0x7850          |     s1 += 0x7850;
    0x00040900 jalr t9                       |     t9 ();
    0x00040904 lw gp, 0x30(sp)               |     gp = *(var_30h);
    0x00040908 lw a0, -0x7fc4(gp)            |     a0 = *((gp - 8177));
    0x0004090c lw v1, -0x7fc8(gp)            |     v1 = *(gp);
    0x00040910 lw t9, -0x79d0(gp)            |     t9 = sym.imp.imp_log_fun;
                                             |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_video_imp_encoder.c */
    0x00040914 addiu a0, a0, 0x7f18          |     a0 += 0x7f18;
    0x00040918 sw a0, 0x10(sp)               |     *(var_10h) = a0;
                                             |     /* obj.__func__.9756 */
    0x0004091c addiu v1, v1, -0x5654         |     v1 += -0x5654;
    0x00040920 addiu a0, zero, 0x1117        |     a0 = 0x1117;
    0x00040924 b 0x4082c                     |     goto label_2;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libmp.so @ 0x1a5b4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.kmmc_init ()                 | void kmmc_init () {
    0x0001a5b4 lui gp, 0xd                   |     
    0x0001a5b8 addiu gp, gp, 0x2e5c          |     
    0x0001a5bc addu gp, gp, t9               |     gp += t9;
    0x0001a5c0 lw t9, -0x7fbc(gp)            |     t9 = *(gp);
    0x0001a5c4 addiu sp, sp, -0x30           |     
    0x0001a5c8 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0001a5cc sw ra, 0x2c(sp)               |     *(var_2ch) = ra;
    0x0001a5d0 sw s2, 0x28(sp)               |     *(var_28h) = s2;
    0x0001a5d4 sw s1, 0x24(sp)               |     *(var_24h) = s1;
    0x0001a5d8 sw s0, 0x20(sp)               |     *(var_20h) = s0;
                                             |     /* sym.get_kmem_info_1 */
    0x0001a5dc addiu t9, t9, -0x5c70         |     t9 += -0x5c70;
    0x0001a5e0 bal 0x1a390                   |     sym_get_kmem_info_1 ();
    0x0001a5e4 nop                           |     
    0x0001a5e8 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 < 0) {
    0x0001a5ec bltz v0, 0x1a6ac              |         goto label_1;
                                             |     }
    0x0001a5f0 lw s2, -0x7fc4(gp)            |     s2 = *((gp - 8177));
    0x0001a5f4 lw t9, -0x7e60(gp)            |     t9 = sym.imp.open;
    0x0001a5f8 lw s1, -0x7fe4(gp)            |     s1 = *((gp - 8185));
                                             |     /* str._dev_rmem */
    0x0001a5fc addiu a0, s2, -0x7c9c         |     a0 = s2 + -0x7c9c;
    0x0001a600 addiu a1, zero, 2             |     a1 = 2;
    0x0001a604 jalr t9                       |     t9 ();
                                             |     /* obj.kmmc */
    0x0001a608 addiu s0, s1, -0x17e0         |     s0 = s1 + -0x17e0;
    0x0001a60c lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0001a610 sw v0, 0x1c(s0)               |     *((s0 + 7)) = v0;
                                             |     if (v0 <= 0) {
    0x0001a614 blez v0, 0x1a6c8              |         goto label_2;
                                             |     }
    0x0001a618 lw v1, 4(s0)                  |     v1 = *((s0 + 1));
    0x0001a61c lw t9, -0x77e8(gp)            |     t9 = sym.imp.mmap
    0x0001a620 lw a1, 8(s0)                  |     a1 = *((s0 + 2));
    0x0001a624 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0001a628 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x0001a62c move a0, zero                 |     a0 = 0;
    0x0001a630 addiu a2, zero, 3             |     a2 = 3;
    0x0001a634 addiu a3, zero, 1             |     a3 = 1;
    0x0001a638 jalr t9                       |     t9 ();
    0x0001a63c sw v0, -0x17e0(s1)            |     *((s1 - 1528)) = v0;
    0x0001a640 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 <= 0) {
    0x0001a644 blez v0, 0x1a6e8              |         goto label_3;
                                             |     }
    0x0001a648 lw v1, 8(s0)                  |     v1 = *((s0 + 2));
    0x0001a64c lw a1, -0x7fc4(gp)            |     a1 = *((gp - 8177));
    0x0001a650 lw t9, -0x798c(gp)            |     t9 = sym.c_log;
    0x0001a654 lw a3, 4(s0)                  |     a3 = *((s0 + 1));
    0x0001a658 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x0001a65c addiu a0, zero, 2             |     a0 = 2;
    0x0001a660 move a2, v0                   |     a2 = v0;
                                             |     /* str.kmem_vaddr_x__kmem_paddr_x__kmem_length_x_n */
    0x0001a664 addiu a1, a1, -0x7084         |     a1 += -0x7084;
    0x0001a668 jalr t9                       |     t9 ();
    0x0001a66c lw v0, 8(s0)                  |     v0 = *((s0 + 2));
    0x0001a670 lw a0, -0x17e0(s1)            |     a0 = *((s1 - 1528));
    0x0001a674 lw v1, 4(s0)                  |     v1 = *((s0 + 1));
    0x0001a678 sw v0, 0x14(s0)               |     *((s0 + 5)) = v0;
    0x0001a67c addiu v0, zero, 1             |     v0 = 1;
    0x0001a680 sb v0, 0x18(s0)               |     *((s0 + 24)) = v0;
    0x0001a684 sw a0, 0xc(s0)                |     *((s0 + 3)) = a0;
    0x0001a688 sw v1, 0x10(s0)               |     *((s0 + 4)) = v1;
    0x0001a68c sw zero, 0x20(s0)             |     *((s0 + 8)) = 0;
    0x0001a690 move v0, zero                 |     v0 = 0;
                                             |     do {
                                             | label_0:
    0x0001a694 lw ra, 0x2c(sp)               |         ra = *(var_2ch);
    0x0001a698 lw s2, 0x28(sp)               |         s2 = *(var_28h);
    0x0001a69c lw s1, 0x24(sp)               |         s1 = *(var_24h);
    0x0001a6a0 lw s0, 0x20(sp)               |         s0 = *(var_20h);
    0x0001a6a4 addiu sp, sp, 0x30            |         
    0x0001a6a8 jr ra                         |         return v0;
                                             | label_1:
    0x0001a6ac lw a1, -0x7fc4(gp)            |         a1 = *((gp - 8177));
    0x0001a6b0 lw t9, -0x798c(gp)            |         t9 = sym.c_log;
    0x0001a6b4 move a0, zero                 |         a0 = 0;
                                             |         /* str.get_kmem_info_failed_n */
    0x0001a6b8 addiu a1, a1, -0x7cd8         |         a1 += -0x7cd8;
    0x0001a6bc jalr t9                       |         t9 ();
    0x0001a6c0 addiu v0, zero, -1            |         v0 = -1;
    0x0001a6c4 b 0x1a694                     |         
                                             |     } while (1);
                                             | label_2:
    0x0001a6c8 lw a1, -0x7fcc(gp)            |     a1 = *(gp);
    0x0001a6cc lw t9, -0x798c(gp)            |     t9 = sym.c_log;
    0x0001a6d0 move a0, zero                 |     a0 = 0;
                                             |     /* str.open__s_failed_n */
    0x0001a6d4 addiu a1, a1, 0x797c          |     a1 += 0x797c;
                                             |     /* str._dev_rmem */
    0x0001a6d8 addiu a2, s2, -0x7c9c         |     a2 = s2 + -0x7c9c;
    0x0001a6dc jalr t9                       |     t9 ();
    0x0001a6e0 addiu v0, zero, -1            |     v0 = -1;
    0x0001a6e4 b 0x1a694                     |     goto label_0;
                                             | label_3:
    0x0001a6e8 lw a1, -0x7fcc(gp)            |     a1 = *(gp);
    0x0001a6ec lw t9, -0x798c(gp)            |     t9 = sym.c_log;
    0x0001a6f0 move a0, zero                 |     a0 = 0;
                                             |     /* str.mmap_failed_n */
    0x0001a6f4 addiu a1, a1, 0x6b38          |     a1 += 0x6b38;
    0x0001a6f8 jalr t9                       |     t9 ();
    0x0001a6fc lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0001a700 lw t9, -0x7f14(gp)            |     t9 = sym.imp.close;
    0x0001a704 lw a0, 0x1c(s0)               |     a0 = *((s0 + 7));
    0x0001a708 jalr t9                       |     t9 ();
    0x0001a70c addiu v0, zero, -1            |     v0 = -1;
    0x0001a710 b 0x1a694                     |     goto label_0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libmp.so @ 0xc958 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.regrw ()                     | void regrw () {
    0x0000c958 lui gp, 0xe                   |     
    0x0000c95c addiu gp, gp, 0xab8           |     
    0x0000c960 addu gp, gp, t9               |     gp += t9;
    0x0000c964 addiu sp, sp, -0x48           |     
    0x0000c968 sw s2, 0x34(sp)               |     *(var_34h) = s2;
    0x0000c96c move s2, a0                   |     s2 = a0;
    0x0000c970 lw a0, -0x7fcc(gp)            |     a0 = *(gp);
    0x0000c974 lw t9, -0x7e60(gp)            |     t9 = sym.imp.open;
    0x0000c978 sw s5, 0x40(sp)               |     *(var_40h) = s5;
    0x0000c97c addiu v0, zero, 0x12          |     v0 = 0x12;
    0x0000c980 move s5, a1                   |     s5 = a1;
    0x0000c984 addiu a1, zero, 0x10          |     a1 = 0x10;
    0x0000c988 sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x0000c98c sw s1, 0x30(sp)               |     *(var_30h) = s1;
    0x0000c990 sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x0000c994 sw s4, 0x3c(sp)               |     *(var_3ch) = s4;
    0x0000c998 sw s3, 0x38(sp)               |     *(var_38h) = s3;
    0x0000c99c sw s0, 0x2c(sp)               |     *(var_2ch) = s0;
                                             |     /* str._dev_mem */
    0x0000c9a0 addiu a0, a0, 0x6b14          |     a0 += 0x6b14;
                                             |     if (a2 == 0) {
    0x0000c9a4 movn a1, v0, a2               |         a1 = v0;
                                             |     }
    0x0000c9a8 move s1, a2                   |     s1 = a2;
    0x0000c9ac jalr t9                       |     t9 ();
    0x0000c9b0 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 < 0) {
    0x0000c9b4 bltz v0, 0xcb50               |         goto label_2;
                                             |     }
    0x0000c9b8 lw t9, -0x7624(gp)            |     t9 = sym.imp.getpagesize;
    0x0000c9bc move s0, v0                   |     s0 = v0;
    0x0000c9c0 jalr t9                       |     t9 ();
    0x0000c9c4 addiu s4, v0, -1              |     s4 = v0 + -1;
    0x0000c9c8 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0000c9cc and s4, s4, s2                |     s4 &= s2;
    0x0000c9d0 addiu s3, s4, 0x20            |     s3 = s4 + 0x20;
    0x0000c9d4 sltu s3, v0, s3               |     s3 = (v0 < s3) ? 1 : 0;
    0x0000c9d8 sll a0, v0, 1                 |     a0 = v0 << 1;
    0x0000c9dc lw t9, -0x77e8(gp)            |     t9 = sym.imp.mmap
    0x0000c9e0 move v1, v0                   |     v1 = v0;
    0x0000c9e4 negu v0, v0                   |     __asm ("negu v0, v0");
                                             |     if (s3 == 0) {
    0x0000c9e8 movn v1, a0, s3               |         v1 = a0;
                                             |     }
    0x0000c9ec and s2, v0, s2                |     s2 = v0 & s2;
    0x0000c9f0 addiu a2, zero, 1             |     a2 = 1;
    0x0000c9f4 addiu v0, zero, 3             |     v0 = 3;
    0x0000c9f8 move a1, v1                   |     a1 = v1;
    0x0000c9fc sw s0, 0x10(sp)               |     *(var_10h) = s0;
    0x0000ca00 sw s2, 0x14(sp)               |     *(var_14h) = s2;
    0x0000ca04 move a0, zero                 |     a0 = 0;
                                             |     if (s1 == 0) {
    0x0000ca08 movn a2, v0, s1               |         a2 = v0;
                                             |     }
    0x0000ca0c addiu a3, zero, 1             |     a3 = 1;
    0x0000ca10 move s3, v1                   |     s3 = v1;
    0x0000ca14 jalr t9                       |     t9 ();
    0x0000ca18 addiu v1, zero, -1            |     v1 = -1;
    0x0000ca1c lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 == v1) {
    0x0000ca20 beq v0, v1, 0xcb10            |         goto label_3;
                                             |     }
    0x0000ca24 addu s4, v0, s4               |     s4 = v0 + s4;
                                             |     if (s1 == 0) {
    0x0000ca28 beqz s1, 0xca88               |         goto label_4;
                                             |     }
    0x0000ca2c lw v1, (s5)                   |     v1 = *(s5);
    0x0000ca30 lw t9, -0x7590(gp)            |     t9 = sym.imp.munmap;
    0x0000ca34 move a0, v0                   |     a0 = v0;
    0x0000ca38 sw v1, (s4)                   |     *(s4) = v1;
    0x0000ca3c move a1, s3                   |     a1 = s3;
    0x0000ca40 jalr t9                       |     t9 ();
    0x0000ca44 addiu v1, zero, -1            |     v1 = -1;
    0x0000ca48 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0000ca4c move s1, zero                 |     s1 = 0;
                                             |     if (v0 == v1) {
    0x0000ca50 beq v0, v1, 0xcab0            |         goto label_5;
                                             |     }
                                             |     do {
                                             | label_0:
    0x0000ca54 lw t9, -0x7f14(gp)            |         t9 = sym.imp.close;
    0x0000ca58 move a0, s0                   |         a0 = s0;
    0x0000ca5c jalr t9                       |         t9 ();
    0x0000ca60 lw ra, 0x44(sp)               |         ra = *(var_44h);
                                             | label_1:
    0x0000ca64 move v0, s1                   |         v0 = s1;
    0x0000ca68 lw s5, 0x40(sp)               |         s5 = *(var_40h);
    0x0000ca6c lw s4, 0x3c(sp)               |         s4 = *(var_3ch);
    0x0000ca70 lw s3, 0x38(sp)               |         s3 = *(var_38h);
    0x0000ca74 lw s2, 0x34(sp)               |         s2 = *(var_34h);
    0x0000ca78 lw s1, 0x30(sp)               |         s1 = *(var_30h);
    0x0000ca7c lw s0, 0x2c(sp)               |         s0 = *(var_2ch);
    0x0000ca80 addiu sp, sp, 0x48            |         
    0x0000ca84 jr ra                         |         return v1;
                                             | label_4:
    0x0000ca88 lw v1, (s4)                   |         v1 = *(s4);
    0x0000ca8c lw t9, -0x7590(gp)            |         t9 = sym.imp.munmap;
    0x0000ca90 move a0, v0                   |         a0 = v0;
    0x0000ca94 sw v1, (s5)                   |         *(s5) = v1;
    0x0000ca98 move a1, s3                   |         a1 = s3;
    0x0000ca9c jalr t9                       |         t9 ();
    0x0000caa0 addiu v1, zero, -1            |         v1 = -1;
    0x0000caa4 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0000caa8 move s1, zero                 |         s1 = 0;
    0x0000caac bne v0, v1, 0xca54            |         
                                             |     } while (v0 != v1);
                                             | label_5:
    0x0000cab0 lw t9, -0x7adc(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
    0x0000cab4 jalr t9                       |     t9 ();
    0x0000cab8 nop                           |     
    0x0000cabc lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0000cac0 lw v1, -0x7fcc(gp)            |     v1 = *(gp);
    0x0000cac4 lw t9, -0x79d0(gp)            |     t9 = sym.imp.imp_log_fun;
                                             |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_sys_core.c */
    0x0000cac8 addiu v1, v1, 0x6a68          |     v1 += 0x6a68;
    0x0000cacc sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x0000cad0 addiu v1, zero, 0x211         |     v1 = 0x211;
    0x0000cad4 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x0000cad8 lw v1, -0x7fcc(gp)            |     v1 = *(gp);
                                             |     /* obj.__func__.6657 */
    0x0000cadc addiu v1, v1, 0x6fc4          |     v1 += 0x6fc4;
    0x0000cae0 sw v1, 0x18(sp)               |     *(var_18h) = v1;
    0x0000cae4 lw v1, -0x7fcc(gp)            |     v1 = *(gp);
                                             |     /* str.munmap_failed_n */
    0x0000cae8 addiu v1, v1, 0x6b48          |     v1 += 0x6b48;
                                             |     do {
    0x0000caec lw a3, -0x7fcc(gp)            |         a3 = *(gp);
    0x0000caf0 sw v1, 0x1c(sp)               |         *(var_1ch) = v1;
    0x0000caf4 addiu a0, zero, 6             |         a0 = 6;
    0x0000caf8 move a1, v0                   |         a1 = v0;
    0x0000cafc addiu a2, zero, 2             |         a2 = 2;
                                             |         /* str.System */
    0x0000cb00 addiu a3, a3, 0x6a60          |         a3 += 0x6a60;
    0x0000cb04 jalr t9                       |         t9 ();
    0x0000cb08 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0000cb0c b 0xca54                      |         goto label_0;
                                             | label_3:
    0x0000cb10 lw t9, -0x7adc(gp)            |         t9 = sym.imp.IMP_Log_Get_Option;
    0x0000cb14 addiu s1, zero, -1            |         s1 = -1;
    0x0000cb18 jalr t9                       |         t9 ();
    0x0000cb1c lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0000cb20 lw v1, -0x7fcc(gp)            |         v1 = *(gp);
    0x0000cb24 lw t9, -0x79d0(gp)            |         t9 = sym.imp.imp_log_fun;
                                             |         /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_sys_core.c */
    0x0000cb28 addiu v1, v1, 0x6a68          |         v1 += 0x6a68;
    0x0000cb2c sw v1, 0x10(sp)               |         *(var_10h) = v1;
    0x0000cb30 addiu v1, zero, 0x204         |         v1 = aav.0x00000204;
    0x0000cb34 sw v1, 0x14(sp)               |         *(var_14h) = v1;
    0x0000cb38 lw v1, -0x7fcc(gp)            |         v1 = *(gp);
                                             |         /* obj.__func__.6657 */
    0x0000cb3c addiu v1, v1, 0x6fc4          |         v1 += 0x6fc4;
    0x0000cb40 sw v1, 0x18(sp)               |         *(var_18h) = v1;
    0x0000cb44 lw v1, -0x7fcc(gp)            |         v1 = *(gp);
                                             |         /* str.mmap_failed_n */
    0x0000cb48 addiu v1, v1, 0x6b38          |         v1 += 0x6b38;
    0x0000cb4c b 0xcaec                      |         
                                             |     } while (1);
                                             | label_2:
    0x0000cb50 lw t9, -0x7adc(gp)            |     t9 = sym.imp.IMP_Log_Get_Option;
    0x0000cb54 addiu s1, zero, -1            |     s1 = -1;
    0x0000cb58 jalr t9                       |     t9 ();
    0x0000cb5c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0000cb60 addiu a0, zero, 6             |     a0 = 6;
    0x0000cb64 move a1, v0                   |     a1 = v0;
    0x0000cb68 lw v1, -0x7fcc(gp)            |     v1 = *(gp);
    0x0000cb6c lw a3, -0x7fcc(gp)            |     a3 = *(gp);
    0x0000cb70 lw t9, -0x79d0(gp)            |     t9 = sym.imp.imp_log_fun;
                                             |     /* str._home_ptkang_work_platform_isvp_20160504_e_proj_sdk_lv3_src_imp_core_sys_core.c */
    0x0000cb74 addiu v1, v1, 0x6a68          |     v1 += 0x6a68;
    0x0000cb78 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x0000cb7c addiu v1, zero, 0x1f2         |     v1 = 0x1f2;
    0x0000cb80 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x0000cb84 lw v1, -0x7fcc(gp)            |     v1 = *(gp);
    0x0000cb88 addiu a2, zero, 2             |     a2 = 2;
                                             |     /* str.System */
    0x0000cb8c addiu a3, a3, 0x6a60          |     a3 += 0x6a60;
                                             |     /* obj.__func__.6657 */
    0x0000cb90 addiu v1, v1, 0x6fc4          |     v1 += 0x6fc4;
    0x0000cb94 sw v1, 0x18(sp)               |     *(var_18h) = v1;
    0x0000cb98 lw v1, -0x7fcc(gp)            |     v1 = *(gp);
                                             |     /* str.open__dev_mem_failed_n */
    0x0000cb9c addiu v1, v1, 0x6b20          |     v1 += 0x6b20;
    0x0000cba0 sw v1, 0x1c(sp)               |     *(var_1ch) = v1;
    0x0000cba4 jalr t9                       |     t9 ();
    0x0000cba8 lw ra, 0x44(sp)               |     ra = *(var_44h);
    0x0000cbac b 0xca64                      |     goto label_1;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libmp.so @ 0x8c284 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.shm_init ()                  | void shm_init () {
    0x0008c284 lui gp, 6                     |     
    0x0008c288 addiu gp, gp, 0x118c          |     
    0x0008c28c addu gp, gp, t9               |     gp += t9;
    0x0008c290 addiu sp, sp, -0x38           |     
    0x0008c294 sw s0, 0x20(sp)               |     *(var_20h) = s0;
    0x0008c298 lw s0, -0x7fa8(gp)            |     s0 = *((gp - 8170));
    0x0008c29c sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0008c2a0 sw ra, 0x34(sp)               |     *(var_34h) = ra;
    0x0008c2a4 lw v0, -0x5a00(s0)            |     v0 = *((s0 - 5760));
    0x0008c2a8 sw s4, 0x30(sp)               |     *(var_30h) = s4;
    0x0008c2ac sw s3, 0x2c(sp)               |     *(var_2ch) = s3;
    0x0008c2b0 sw s2, 0x28(sp)               |     *(var_28h) = s2;
    0x0008c2b4 sw s1, 0x24(sp)               |     *(var_24h) = s1;
    0x0008c2b8 lw a0, -0x7fc8(gp)            |     a0 = *(gp);
                                             |     if (v0 == 0) {
    0x0008c2bc beqz v0, 0x8c314              |         goto label_5;
                                             |     }
    0x0008c2c0 lw a1, -0x7fc8(gp)            |     a1 = *(gp);
    0x0008c2c4 lw t9, -0x74d0(gp)            |     t9 = sym.imp.printf;
                                             |     /* str.warn:__s__d */
    0x0008c2c8 addiu a0, a0, 0x43e0          |     a0 += 0x43e0;
                                             |     /* obj.__func__.3880 */
    0x0008c2cc addiu a1, a1, 0x4640          |     a1 += 0x4640;
    0x0008c2d0 addiu a2, zero, 0x32          |     a2 = 0x32;
    0x0008c2d4 jalr t9                       |     t9 ();
    0x0008c2d8 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0008c2dc lw a0, -0x7fc8(gp)            |     a0 = *(gp);
    0x0008c2e0 lw t9, -0x76ac(gp)            |     t9 = sym.imp.puts;
                                             |     /* str.shm_init_already */
    0x0008c2e4 addiu a0, a0, 0x44cc          |     a0 += 0x44cc;
    0x0008c2e8 jalr t9                       |     t9 ();
    0x0008c2ec move v1, zero                 |     v1 = 0;
                                             |     do {
                                             | label_0:
    0x0008c2f0 lw ra, 0x34(sp)               |         ra = *(var_34h);
    0x0008c2f4 lw s4, 0x30(sp)               |         s4 = *(var_30h);
    0x0008c2f8 lw s3, 0x2c(sp)               |         s3 = *(var_2ch);
    0x0008c2fc lw s2, 0x28(sp)               |         s2 = *(var_28h);
    0x0008c300 lw s1, 0x24(sp)               |         s1 = *(var_24h);
    0x0008c304 lw s0, 0x20(sp)               |         s0 = *(var_20h);
    0x0008c308 move v0, v1                   |         v0 = v1;
    0x0008c30c addiu sp, sp, 0x38            |         
    0x0008c310 jr ra                         |         return v1;
                                             | label_5:
    0x0008c314 lw t9, -0x76d8(gp)            |         t9 = sym.imp.malloc;
    0x0008c318 addiu a0, zero, 0x18          |         a0 = 0x18;
    0x0008c31c jalr t9                       |         t9 ();
    0x0008c320 move s1, v0                   |         s1 = v0;
    0x0008c324 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0008c328 sw v0, -0x5a00(s0)            |         *((s0 - 5760)) = v0;
                                             |         if (v0 == 0) {
    0x0008c32c beqz v0, 0x8c704              |             goto label_6;
                                             |         }
    0x0008c330 lw s2, -0x7fc8(gp)            |         s2 = *(gp);
    0x0008c334 lw t9, -0x75a8(gp)            |         t9 = sym.imp.shm_open;
    0x0008c338 addiu a1, zero, 0x102         |         a1 = 0x102;
                                             |         /* str.imp_deubg_shm */
    0x0008c33c addiu a0, s2, 0x44e0          |         a0 = s2 + aav.0x000044e0;
    0x0008c340 addiu a2, zero, 0x1ff         |         a2 = 0x1ff;
    0x0008c344 jalr t9                       |         t9 ();
    0x0008c348 lw v1, -0x5a00(s0)            |         v1 = *((s0 - 5760));
    0x0008c34c lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0008c350 sw v0, 8(s1)                  |         *((s1 + 2)) = v0;
    0x0008c354 lw a0, 8(v1)                  |         a0 = *((v1 + 2));
    0x0008c358 addiu s1, zero, -1            |         s1 = -1;
    0x0008c35c lw t9, -0x77a4(gp)            |         t9 = sym.imp.ftruncate;
                                             |         if (a0 == s1) {
    0x0008c360 beq a0, s1, 0x8c470           |             goto label_7;
                                             |         }
    0x0008c364 addiu a1, zero, 0x5000        |         a1 = aav.0x00005000;
    0x0008c368 jalr t9                       |         t9 ();
    0x0008c36c lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (v0 == s1) {
    0x0008c370 beq v0, s1, 0x8c51c           |             goto label_8;
                                             |         }
    0x0008c374 lw s2, -0x5a00(s0)            |         s2 = *((s0 - 5760));
    0x0008c378 lw t9, -0x77e8(gp)            |         t9 = sym.imp.mmap
    0x0008c37c move a0, zero                 |         a0 = 0;
    0x0008c380 lw v0, 8(s2)                  |         v0 = *((s2 + 2));
    0x0008c384 addiu a1, zero, 0x5000        |         a1 = aav.0x00005000;
    0x0008c388 sw zero, 0x14(sp)             |         *(var_14h) = 0;
    0x0008c38c sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0008c390 addiu a2, zero, 3             |         a2 = 3;
    0x0008c394 addiu a3, zero, 1             |         a3 = 1;
    0x0008c398 jalr t9                       |         t9 ();
    0x0008c39c lw s3, -0x5a00(s0)            |         s3 = *((s0 - 5760));
    0x0008c3a0 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0008c3a4 sw v0, 0xc(s2)                |         *((s2 + 3)) = v0;
    0x0008c3a8 lw v0, 0xc(s3)                |         v0 = *((s3 + 3));
    0x0008c3ac lw s2, -0x7fc8(gp)            |         s2 = *(gp);
                                             |         if (v0 == s1) {
    0x0008c3b0 beq v0, s1, 0x8c60c           |             goto label_9;
                                             |         }
    0x0008c3b4 lw t9, -0x7c60(gp)            |         t9 = sym.imp.sem_open;
    0x0008c3b8 addiu a1, zero, 0x500         |         a1 = aav.0x00000500;
                                             |         /* str.imp_deubg_sem_tos */
    0x0008c3bc addiu a0, s2, 0x452c          |         a0 = s2 + 0x452c;
    0x0008c3c0 addiu a2, zero, 0x1b6         |         a2 = 0x1b6;
    0x0008c3c4 move a3, zero                 |         a3 = 0;
    0x0008c3c8 jalr t9                       |         t9 ();
    0x0008c3cc lw s1, -0x5a00(s0)            |         s1 = *((s0 - 5760));
    0x0008c3d0 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0008c3d4 sw v0, (s3)                   |         *(s3) = v0;
    0x0008c3d8 lw v0, (s1)                   |         v0 = *(s1);
    0x0008c3dc lw t9, -0x7dc4(gp)            |         t9 = sym.imp.__errno_location;
                                             |         if (v0 == 0) {
    0x0008c3e0 beqz v0, 0x8c578              |             goto label_10;
                                             |         }
    0x0008c3e4 lw s2, -0x7fc8(gp)            |         s2 = *(gp);
                                             | label_2:
    0x0008c3e8 lw t9, -0x7c60(gp)            |         t9 = sym.imp.sem_open;
    0x0008c3ec move a3, zero                 |         a3 = 0;
    0x0008c3f0 addiu a1, zero, 0x500         |         a1 = aav.0x00000500;
                                             |         /* str.imp_deubg_sem_toc */
    0x0008c3f4 addiu a0, s2, 0x4558          |         a0 = s2 + 0x4558;
    0x0008c3f8 addiu a2, zero, 0x1b6         |         a2 = 0x1b6;
    0x0008c3fc jalr t9                       |         t9 ();
    0x0008c400 lw a3, -0x5a00(s0)            |         a3 = *((s0 - 5760));
    0x0008c404 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0008c408 sw v0, 4(s1)                  |         *((s1 + 1)) = v0;
    0x0008c40c lw v0, 4(a3)                  |         v0 = *((a3 + 1));
    0x0008c410 lw s1, -0x7fa8(gp)            |         s1 = *((gp - 8170));
                                             |         if (v0 == 0) {
    0x0008c414 beqz v0, 0x8c5e0              |             goto label_11;
                                             |         }
                                             | label_4:
    0x0008c418 lw t9, -0x7520(gp)            |         t9 = sym.imp.pthread_create;
    0x0008c41c lw a2, -0x7664(gp)            |         a2 = sym.shm_thread;
    0x0008c420 addiu a0, a3, 0x10            |         a0 = a3 + 0x10;
    0x0008c424 move a1, zero                 |         a1 = 0;
    0x0008c428 jalr t9                       |         t9 ();
    0x0008c42c lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0008c430 move v1, zero                 |         v1 = 0;
    0x0008c434 beqz v0, 0x8c2f0              |         
                                             |     } while (v0 == 0);
    0x0008c438 lw a0, -0x7fc8(gp)            |     a0 = *(gp);
    0x0008c43c lw a1, -0x7fc8(gp)            |     a1 = *(gp);
    0x0008c440 lw t9, -0x74d0(gp)            |     t9 = sym.imp.printf;
                                             |     /* str.err:__s__d_ */
    0x0008c444 addiu a0, a0, 0x42a0          |     a0 += 0x42a0;
                                             |     /* obj.__func__.3880 */
    0x0008c448 addiu a1, a1, 0x4640          |     a1 += 0x4640;
    0x0008c44c addiu a2, zero, 0x68          |     a2 = 0x68;
    0x0008c450 jalr t9                       |     t9 ();
    0x0008c454 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0008c458 lw a0, -0x7fc8(gp)            |     a0 = *(gp);
    0x0008c45c lw t9, -0x76ac(gp)            |     t9 = sym.imp.puts;
                                             |     /* str.pthread_create_ */
    0x0008c460 addiu a0, a0, 0x456c          |     a0 += 0x456c;
    0x0008c464 jalr t9                       |     t9 ();
    0x0008c468 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0008c46c b 0x8c4cc                     |     goto label_1;
                                             | label_7:
    0x0008c470 lw a1, -0x7fc8(gp)            |     a1 = *(gp);
    0x0008c474 lw a0, -0x7fc8(gp)            |     a0 = *(gp);
    0x0008c478 lw t9, -0x74d0(gp)            |     t9 = sym.imp.printf;
    0x0008c47c addiu a2, zero, 0x38          |     a2 = 0x38;
                                             |     /* obj.__func__.3880 */
    0x0008c480 addiu a1, a1, 0x4640          |     a1 += 0x4640;
                                             |     /* str.err:__s__d_ */
    0x0008c484 addiu a0, a0, 0x42a0          |     a0 += 0x42a0;
    0x0008c488 jalr t9                       |     t9 ();
    0x0008c48c lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0008c490 lw t9, -0x7dc4(gp)            |     t9 = sym.imp.__errno_location;
    0x0008c494 jalr t9                       |     t9 ();
    0x0008c498 nop                           |     
    0x0008c49c lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0008c4a0 lw t9, -0x7534(gp)            |     t9 = sym.imp.strerror;
    0x0008c4a4 lw a0, (v0)                   |     a0 = *(v0);
    0x0008c4a8 jalr t9                       |     t9 ();
    0x0008c4ac lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0008c4b0 move a1, v0                   |     a1 = v0;
                                             |     /* str.imp_deubg_shm */
    0x0008c4b4 addiu a2, s2, 0x44e0          |     a2 = s2 + aav.0x000044e0;
    0x0008c4b8 lw a0, -0x7fc8(gp)            |     a0 = *(gp);
    0x0008c4bc lw t9, -0x74d0(gp)            |     t9 = sym.imp.printf;
                                             |     /* str.shm_open_err__s___s_n */
    0x0008c4c0 addiu a0, a0, 0x44f0          |     a0 += 0x44f0;
    0x0008c4c4 jalr t9                       |     t9 ();
    0x0008c4c8 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     do {
                                             | label_1:
    0x0008c4cc lw a0, -0x5a00(s0)            |         a0 = *((s0 - 5760));
    0x0008c4d0 lw t9, -0x7f4c(gp)            |         t9 = *((gp - 8147));
                                             |         if (a0 != 0) {
    0x0008c4d4 beqz a0, 0x8c514              |             
    0x0008c4d8 jalr t9                       |             t9 ();
    0x0008c4dc nop                           |             
    0x0008c4e0 lw gp, 0x18(sp)               |             gp = *(var_18h);
    0x0008c4e4 lw ra, 0x34(sp)               |             ra = *(var_34h);
    0x0008c4e8 addiu v1, zero, -1            |             v1 = -1;
    0x0008c4ec lw v0, -0x7fa8(gp)            |             v0 = *((gp - 8170));
    0x0008c4f0 lw s4, 0x30(sp)               |             s4 = *(var_30h);
    0x0008c4f4 lw s3, 0x2c(sp)               |             s3 = *(var_2ch);
    0x0008c4f8 lw s2, 0x28(sp)               |             s2 = *(var_28h);
    0x0008c4fc lw s1, 0x24(sp)               |             s1 = *(var_24h);
    0x0008c500 lw s0, 0x20(sp)               |             s0 = *(var_20h);
    0x0008c504 sw zero, -0x5a00(v0)          |             *((v0 - 5760)) = 0;
    0x0008c508 move v0, v1                   |             v0 = v1;
    0x0008c50c addiu sp, sp, 0x38            |             
    0x0008c510 jr ra                         |             return v1;
                                             |         }
    0x0008c514 addiu v1, zero, -1            |         v1 = -1;
    0x0008c518 b 0x8c2f0                     |         goto label_0;
                                             | label_8:
    0x0008c51c lw a1, -0x7fc8(gp)            |         a1 = *(gp);
    0x0008c520 lw a0, -0x7fc8(gp)            |         a0 = *(gp);
    0x0008c524 lw t9, -0x74d0(gp)            |         t9 = sym.imp.printf;
    0x0008c528 addiu a2, zero, 0x3d          |         a2 = 0x3d;
                                             |         /* obj.__func__.3880 */
    0x0008c52c addiu a1, a1, 0x4640          |         a1 += 0x4640;
                                             |         /* str.err:__s__d_ */
    0x0008c530 addiu a0, a0, 0x42a0          |         a0 += 0x42a0;
    0x0008c534 jalr t9                       |         t9 ();
    0x0008c538 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0008c53c lw t9, -0x7dc4(gp)            |         t9 = sym.imp.__errno_location;
    0x0008c540 jalr t9                       |         t9 ();
    0x0008c544 nop                           |         
    0x0008c548 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0008c54c lw t9, -0x7534(gp)            |         t9 = sym.imp.strerror;
    0x0008c550 lw a0, (v0)                   |         a0 = *(v0);
    0x0008c554 jalr t9                       |         t9 ();
    0x0008c558 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0008c55c move a1, v0                   |         a1 = v0;
    0x0008c560 lw a0, -0x7fc8(gp)            |         a0 = *(gp);
    0x0008c564 lw t9, -0x74d0(gp)            |         t9 = sym.imp.printf;
                                             |         /* str.ftruncate_err__s_n */
    0x0008c568 addiu a0, a0, 0x4508          |         a0 += 0x4508;
    0x0008c56c jalr t9                       |         t9 ();
    0x0008c570 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0008c574 b 0x8c4cc                     |         
                                             |     } while (1);
                                             | label_10:
    0x0008c578 jalr t9                       |     t9 ();
    0x0008c57c nop                           |     
    0x0008c580 lw v1, (v0)                   |     v1 = *(v0);
    0x0008c584 move s3, v0                   |     s3 = v0;
    0x0008c588 addiu v0, zero, 0x11          |     v0 = 0x11;
    0x0008c58c lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v1 == v0) {
    0x0008c590 beq v1, v0, 0x8c668           |         goto label_12;
                                             |     }
    0x0008c594 lw t9, -0x74d0(gp)            |     t9 = sym.imp.printf;
    0x0008c598 addiu a2, zero, 0x51          |     a2 = 0x51;
                                             |     do {
                                             | label_3:
    0x0008c59c lw a1, -0x7fc8(gp)            |         a1 = *(gp);
    0x0008c5a0 lw a0, -0x7fc8(gp)            |         a0 = *(gp);
                                             |         /* obj.__func__.3880 */
    0x0008c5a4 addiu a1, a1, 0x4640          |         a1 += 0x4640;
                                             |         /* str.err:__s__d_ */
    0x0008c5a8 addiu a0, a0, 0x42a0          |         a0 += 0x42a0;
    0x0008c5ac jalr t9                       |         t9 ();
    0x0008c5b0 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0008c5b4 lw t9, -0x7534(gp)            |         t9 = sym.imp.strerror;
    0x0008c5b8 lw a0, (s3)                   |         a0 = *(s3);
    0x0008c5bc jalr t9                       |         t9 ();
    0x0008c5c0 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0008c5c4 move a1, v0                   |         a1 = v0;
    0x0008c5c8 lw a0, -0x7fc8(gp)            |         a0 = *(gp);
    0x0008c5cc lw t9, -0x74d0(gp)            |         t9 = sym.imp.printf;
                                             |         /* str.sem_open_tos_err__s_n */
    0x0008c5d0 addiu a0, a0, 0x4540          |         a0 += 0x4540;
    0x0008c5d4 jalr t9                       |         t9 ();
    0x0008c5d8 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0008c5dc b 0x8c4cc                     |         goto label_1;
                                             | label_11:
    0x0008c5e0 lw t9, -0x7dc4(gp)            |         t9 = sym.imp.__errno_location;
    0x0008c5e4 jalr t9                       |         t9 ();
    0x0008c5e8 nop                           |         
    0x0008c5ec lw v1, (v0)                   |         v1 = *(v0);
    0x0008c5f0 move s3, v0                   |         s3 = v0;
    0x0008c5f4 addiu v0, zero, 0x11          |         v0 = 0x11;
    0x0008c5f8 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (v1 == v0) {
    0x0008c5fc beq v1, v0, 0x8c6b8           |             goto label_13;
                                             |         }
    0x0008c600 lw t9, -0x74d0(gp)            |         t9 = sym.imp.printf;
    0x0008c604 addiu a2, zero, 0x60          |         a2 = 0x60;
    0x0008c608 b 0x8c59c                     |         
                                             |     } while (1);
                                             | label_9:
    0x0008c60c lw a1, -0x7fc8(gp)            |     a1 = *(gp);
    0x0008c610 lw a0, -0x7fc8(gp)            |     a0 = *(gp);
    0x0008c614 lw t9, -0x74d0(gp)            |     t9 = sym.imp.printf;
    0x0008c618 addiu a2, zero, 0x42          |     a2 = 0x42;
                                             |     /* obj.__func__.3880 */
    0x0008c61c addiu a1, a1, 0x4640          |     a1 += 0x4640;
                                             |     /* str.err:__s__d_ */
    0x0008c620 addiu a0, a0, 0x42a0          |     a0 += 0x42a0;
    0x0008c624 jalr t9                       |     t9 ();
    0x0008c628 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0008c62c lw t9, -0x7dc4(gp)            |     t9 = sym.imp.__errno_location;
    0x0008c630 jalr t9                       |     t9 ();
    0x0008c634 nop                           |     
    0x0008c638 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0008c63c lw t9, -0x7534(gp)            |     t9 = sym.imp.strerror;
    0x0008c640 lw a0, (v0)                   |     a0 = *(v0);
    0x0008c644 jalr t9                       |     t9 ();
    0x0008c648 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0008c64c move a1, v0                   |     a1 = v0;
    0x0008c650 lw a0, -0x7fc8(gp)            |     a0 = *(gp);
    0x0008c654 lw t9, -0x74d0(gp)            |     t9 = sym.imp.printf;
                                             |     /* str.mmap_err__s_n */
    0x0008c658 addiu a0, a0, 0x451c          |     a0 += aav.0x0000451c;
    0x0008c65c jalr t9                       |     t9 ();
    0x0008c660 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0008c664 b 0x8c4cc                     |     goto label_1;
                                             | label_12:
    0x0008c668 lw t9, -0x779c(gp)            |     t9 = sym.imp.sem_unlink;
                                             |     /* str.imp_deubg_sem_tos */
    0x0008c66c addiu a0, s2, 0x452c          |     a0 = s2 + 0x452c;
    0x0008c670 jalr t9                       |     t9 ();
    0x0008c674 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0008c678 lw s4, -0x5a00(s0)            |     s4 = *((s0 - 5760));
                                             |     /* str.imp_deubg_sem_tos */
    0x0008c67c addiu a0, s2, 0x452c          |     a0 = s2 + 0x452c;
    0x0008c680 lw t9, -0x7c60(gp)            |     t9 = sym.imp.sem_open;
    0x0008c684 addiu a1, zero, 0x500         |     a1 = aav.0x00000500;
    0x0008c688 addiu a2, zero, 0x1b6         |     a2 = 0x1b6;
    0x0008c68c move a3, zero                 |     a3 = 0;
    0x0008c690 jalr t9                       |     t9 ();
    0x0008c694 lw s1, -0x5a00(s0)            |     s1 = *((s0 - 5760));
    0x0008c698 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0008c69c sw v0, (s4)                   |     *(s4) = v0;
    0x0008c6a0 lw v0, (s1)                   |     v0 = *(s1);
    0x0008c6a4 lw s2, -0x7fc8(gp)            |     s2 = *(gp);
                                             |     if (v0 != 0) {
    0x0008c6a8 bnez v0, 0x8c3e8              |         goto label_2;
                                             |     }
    0x0008c6ac lw t9, -0x74d0(gp)            |     t9 = sym.imp.printf;
    0x0008c6b0 addiu a2, zero, 0x4d          |     a2 = 0x4d;
    0x0008c6b4 b 0x8c59c                     |     goto label_3;
                                             | label_13:
    0x0008c6b8 lw t9, -0x779c(gp)            |     t9 = sym.imp.sem_unlink;
                                             |     /* str.imp_deubg_sem_toc */
    0x0008c6bc addiu a0, s2, 0x4558          |     a0 = s2 + 0x4558;
    0x0008c6c0 jalr t9                       |     t9 ();
    0x0008c6c4 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0008c6c8 lw s4, -0x5a00(s1)            |     s4 = *((s1 - 5760));
    0x0008c6cc move a3, zero                 |     a3 = 0;
    0x0008c6d0 lw t9, -0x7c60(gp)            |     t9 = sym.imp.sem_open;
                                             |     /* str.imp_deubg_sem_toc */
    0x0008c6d4 addiu a0, s2, 0x4558          |     a0 = s2 + 0x4558;
    0x0008c6d8 addiu a1, zero, 0x500         |     a1 = aav.0x00000500;
    0x0008c6dc addiu a2, zero, 0x1b6         |     a2 = 0x1b6;
    0x0008c6e0 jalr t9                       |     t9 ();
    0x0008c6e4 lw a3, -0x5a00(s1)            |     a3 = *((s1 - 5760));
    0x0008c6e8 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0008c6ec sw v0, 4(s4)                  |     *((s4 + 1)) = v0;
    0x0008c6f0 lw v0, 4(a3)                  |     v0 = *((a3 + 1));
    0x0008c6f4 lw t9, -0x74d0(gp)            |     t9 = sym.imp.printf;
                                             |     if (v0 != 0) {
    0x0008c6f8 bnez v0, 0x8c418              |         goto label_4;
                                             |     }
    0x0008c6fc addiu a2, zero, 0x5c          |     a2 = 0x5c;
    0x0008c700 b 0x8c59c                     |     goto label_3;
                                             | label_6:
    0x0008c704 lw a0, -0x7fc8(gp)            |     a0 = *(gp);
    0x0008c708 lw a1, -0x7fc8(gp)            |     a1 = *(gp);
    0x0008c70c lw t9, -0x74d0(gp)            |     t9 = sym.imp.printf;
                                             |     /* str.err:__s__d_ */
    0x0008c710 addiu a0, a0, 0x42a0          |     a0 += 0x42a0;
                                             |     /* obj.__func__.3880 */
    0x0008c714 addiu a1, a1, 0x4640          |     a1 += 0x4640;
    0x0008c718 addiu a2, zero, 0x2d          |     a2 = 0x2d;
    0x0008c71c jalr t9                       |     t9 ();
    0x0008c720 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0008c724 lw a0, -0x7fc8(gp)            |     a0 = *(gp);
    0x0008c728 lw t9, -0x76ac(gp)            |     t9 = sym.imp.puts;
                                             |     /* str.malloc_err_ */
    0x0008c72c addiu a0, a0, 0x44c0          |     a0 += 0x44c0;
    0x0008c730 jalr t9                       |     t9 ();
    0x0008c734 addiu v1, zero, -1            |     v1 = -1;
    0x0008c738 b 0x8c2f0                     |     goto label_0;
                                             | }

[*] Function mmap used 17 times libmp.so