[*] 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