[*] Binary protection state of presettourd
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of presettourd
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/presettourd @ 0x32f0 */
| #include <stdint.h>
|
; (fcn) fcn.000032f0 () | void fcn_000032f0 () {
0x000032f0 lui gp, 2 |
0x000032f4 addiu gp, gp, 0x2620 |
0x000032f8 addu gp, gp, t9 | gp += t9;
0x000032fc addiu sp, sp, -0x188 |
0x00003300 sw s6, 0x178(sp) | *(var_178h) = s6;
0x00003304 lw s6, -0x7e0c(gp) | s6 = *((gp - 8067));
0x00003308 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0000330c sw ra, 0x184(sp) | *(var_184h) = ra;
0x00003310 lw v0, (s6) | v0 = *(s6);
0x00003314 sw fp, 0x180(sp) | *(var_180h) = fp;
0x00003318 sw s7, 0x17c(sp) | *(var_17ch) = s7;
0x0000331c sw s5, 0x174(sp) | *(var_174h) = s5;
0x00003320 sw s4, 0x170(sp) | *(var_170h) = s4;
0x00003324 sw s3, 0x16c(sp) | *(var_16ch) = s3;
0x00003328 sw s2, 0x168(sp) | *(var_168h) = s2;
0x0000332c sw s1, 0x164(sp) | *(var_164h) = s1;
0x00003330 sw s0, 0x160(sp) | *(var_160h) = s0;
0x00003334 sw zero, 0x28(sp) | *(var_28h_2) = 0;
0x00003338 sw v0, 0x15c(sp) | *(var_15ch) = v0;
0x0000333c lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
| if (a1 == 0) {
0x00003340 beqz a1, 0x3584 | goto label_5;
| }
0x00003344 move s4, a0 | s4 = a0;
| if (a0 == 0) {
0x00003348 beqz a0, 0x355c | goto label_6;
| }
0x0000334c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00003350 lw t9, -0x7e78(gp) | t9 = sym.imp.g_mutex_lock;
0x00003354 addiu a0, v0, -0x23e0 | a0 = v0 + -0x23e0;
0x00003358 sw v0, 0x24(sp) | *(var_24h_3) = v0;
0x0000335c move s3, a1 | s3 = a1;
0x00003360 jalr t9 | t9 ();
0x00003364 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00003368 addiu s1, sp, 0x2c | s1 = sp + 0x2c;
0x0000336c move a0, s1 | a0 = s1;
0x00003370 lw t9, -0x7d34(gp) | t9 = sym.imp.cli_resetOptions;
0x00003374 addiu s2, sp, 0x28 | s2 = sp + 0x28;
0x00003378 jalr t9 | t9 ();
0x0000337c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00003380 move a1, s2 | a1 = s2;
0x00003384 lw t9, -0x7f0c(gp) | t9 = sym.imp.cli_sync;
0x00003388 move a0, s1 | a0 = s1;
0x0000338c jalr t9 | t9 ();
0x00003390 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00003394 addiu v0, zero, -1 | v0 = -1;
0x00003398 sw v0, (s3) | *(s3) = v0;
0x0000339c lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x000033a0 lw t9, -0x7d70(gp) | t9 = sym.imp.cli_getChildGroupsInGroup;
0x000033a4 move a2, s2 | a2 = s2;
0x000033a8 move a1, s1 | a1 = s1;
0x000033ac addiu a0, a0, -0x48e8 | a0 += -0x48e8;
0x000033b0 jalr t9 | t9 ();
0x000033b4 lw v1, 0x28(sp) | v1 = *(var_28h_2);
0x000033b8 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000033bc move s0, v0 | s0 = v0;
| if (v1 != 0) {
0x000033c0 bnez v1, 0x34f8 | goto label_7;
| }
0x000033c4 lw t9, -0x7eb8(gp) | t9 = sym.imp.cli_getChildGroupInGroup;
0x000033c8 move a0, v0 | a0 = v0;
0x000033cc move a2, s2 | a2 = s2;
0x000033d0 move a1, s1 | a1 = s1;
0x000033d4 jalr t9 | t9 ();
0x000033d8 lw v0, 0x28(sp) | v0 = *(var_28h_2);
0x000033dc lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x000033e0 bnez v0, 0x34f8 | goto label_7;
| }
0x000033e4 lw v0, 0x14(s0) | v0 = *((s0 + 5));
0x000033e8 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
| if (v0 != 0) {
0x000033ec bnez v0, 0x34f8 | goto label_7;
| }
0x000033f0 lw s5, -0x7fd8(gp) | s5 = *((gp - 8182));
0x000033f4 addiu v0, v0, -0x48d0 | v0 += -0x48d0;
0x000033f8 addiu s7, sp, 0x5c | s7 = sp + 0x5c;
0x000033fc addiu s5, s5, -0x48d8 | s5 += -0x48d8;
0x00003400 sw v0, 0x20(sp) | *(var_20h_3) = v0;
0x00003404 b 0x3484 |
| while (a0 == 0) {
0x00003408 lw t9, -0x7d48(gp) | t9 = sym.imp.g_strcmp0;
0x0000340c move a1, v0 | a1 = v0;
0x00003410 move a0, s4 | a0 = s4;
0x00003414 jalr t9 | t9 ();
0x00003418 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0000341c bnez v0, 0x3444 |
0x00003420 lw v0, (s3) | v0 = *(s3);
0x00003424 addiu v1, zero, -1 | v1 = -1;
0x00003428 lw t9, -0x7d4c(gp) | t9 = sym.imp.__isoc99_sscanf;
| if (v0 != v1) {
0x0000342c bne v0, v1, 0x34c0 | goto label_8;
| }
0x00003430 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x00003434 lw a1, 0x20(sp) | a1 = *(var_20h_3);
0x00003438 move a2, s3 | a2 = s3;
0x0000343c jalr t9 | t9 ();
0x00003440 lw gp, 0x18(sp) | gp = *(var_18h_2);
| }
0x00003444 lw t9, -0x7d14(gp) | t9 = sym.imp.g_free;
| if (fp != 0) {
0x00003448 beqz fp, 0x3458 |
0x0000344c move a0, fp | a0 = fp;
0x00003450 jalr t9 | t9 ();
0x00003454 lw gp, 0x18(sp) | gp = *(var_18h_2);
| }
0x00003458 lw t9, -0x7eb8(gp) | t9 = sym.imp.cli_getChildGroupInGroup;
0x0000345c move a2, s2 | a2 = s2;
0x00003460 move a1, s1 | a1 = s1;
0x00003464 move a0, s0 | a0 = s0;
0x00003468 jalr t9 | t9 ();
0x0000346c lw v0, 0x28(sp) | v0 = *(var_28h_2);
0x00003470 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x00003474 bnez v0, 0x34f8 | goto label_7;
| }
0x00003478 lw v0, 0x14(s0) | v0 = *((s0 + 5));
0x0000347c lw t9, -0x7e64(gp) | t9 = sym.imp.cli_cleanupGroupContext;
| if (v0 != 0) {
0x00003480 bnez v0, 0x34fc | goto label_9;
| }
0x00003484 lw t9, -0x7eb0(gp) | t9 = sym.imp.g_sprintf
0x00003488 lw a2, 0xc(s0) | a2 = *((s0 + 3));
0x0000348c move a1, s5 | a1 = s5;
0x00003490 move a0, s7 | a0 = s7;
0x00003494 jalr t9 | t9 ();
0x00003498 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000349c move a0, s7 | a0 = s7;
0x000034a0 move a2, s2 | a2 = s2;
0x000034a4 lw t9, -0x7e24(gp) | t9 = sym.imp.cli_getCustomParam;
0x000034a8 move a1, s1 | a1 = s1;
0x000034ac jalr t9 | t9 ();
0x000034b0 lw a0, 0x28(sp) | a0 = *(var_28h_2);
0x000034b4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000034b8 move fp, v0 | fp = v0;
0x000034bc beqz a0, 0x3408 |
| }
| label_8:
0x000034c0 lw t9, -0x7d14(gp) | t9 = sym.imp.g_free;
| if (fp != 0) {
0x000034c4 beqz fp, 0x34d4 |
0x000034c8 move a0, fp | a0 = fp;
0x000034cc jalr t9 | t9 ();
0x000034d0 lw gp, 0x18(sp) | gp = *(var_18h_2);
| }
0x000034d4 addiu v0, zero, -1 | v0 = -1;
0x000034d8 sw v0, (s3) | *(s3) = v0;
0x000034dc lw v0, 0x24(sp) | v0 = *(var_24h_3);
0x000034e0 lw t9, -0x7de0(gp) | t9 = sym.imp.g_mutex_unlock;
0x000034e4 addiu a0, v0, -0x23e0 | a0 = v0 + -0x23e0;
0x000034e8 jalr t9 | t9 ();
0x000034ec lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000034f0 addiu v0, zero, -1 | v0 = -1;
0x000034f4 b 0x3520 | goto label_10;
| label_7:
0x000034f8 lw t9, -0x7e64(gp) | t9 = sym.imp.cli_cleanupGroupContext;
| label_9:
0x000034fc move a0, s0 | a0 = s0;
0x00003500 jalr t9 | t9 ();
0x00003504 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00003508 lw v0, 0x24(sp) | v0 = *(var_24h_3);
0x0000350c lw t9, -0x7de0(gp) | t9 = sym.imp.g_mutex_unlock;
0x00003510 addiu a0, v0, -0x23e0 | a0 = v0 + -0x23e0;
0x00003514 jalr t9 | t9 ();
0x00003518 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000351c move v0, zero | v0 = 0;
| label_10:
0x00003520 lw a0, 0x15c(sp) | a0 = *(var_15ch);
0x00003524 lw v1, (s6) | v1 = *(s6);
0x00003528 lw ra, 0x184(sp) | ra = *(var_184h);
| if (a0 == v1) {
0x0000352c bne a0, v1, 0x35ac |
0x00003530 lw fp, 0x180(sp) | fp = *(var_180h);
0x00003534 lw s7, 0x17c(sp) | s7 = *(var_17ch);
0x00003538 lw s6, 0x178(sp) | s6 = *(var_178h);
0x0000353c lw s5, 0x174(sp) | s5 = *(var_174h);
0x00003540 lw s4, 0x170(sp) | s4 = *(var_170h);
0x00003544 lw s3, 0x16c(sp) | s3 = *(var_16ch);
0x00003548 lw s2, 0x168(sp) | s2 = *(var_168h);
0x0000354c lw s1, 0x164(sp) | s1 = *(var_164h);
0x00003550 lw s0, 0x160(sp) | s0 = *(var_160h);
0x00003554 addiu sp, sp, 0x188 |
0x00003558 jr ra | return v0;
| label_6:
0x0000355c lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00003560 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x00003564 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00003568 addiu v0, v0, -0x48f8 | v0 += -0x48f8;
0x0000356c lw t9, -0x7da8(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00003570 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00003574 addiu a3, a3, -0x460c | a3 += -0x460c;
0x00003578 addiu a2, zero, 0x24d | a2 = 0x24d;
0x0000357c addiu a1, a1, -0x4990 | a1 += -0x4990;
0x00003580 jalr t9 | t9 ();
| label_5:
0x00003584 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x00003588 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x0000358c addiu v0, v0, -0x4904 | v0 += -0x4904;
0x00003590 lw t9, -0x7da8(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00003594 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00003598 addiu a3, a3, -0x460c | a3 += -0x460c;
0x0000359c addiu a2, zero, 0x24c | a2 = aav.0x0000024c;
0x000035a0 addiu a1, a1, -0x4990 | a1 += -0x4990;
0x000035a4 move a0, zero | a0 = 0;
0x000035a8 jalr t9 | t9 ();
| }
0x000035ac lw t9, -0x7e44(gp) | t9 = sym.imp.__stack_chk_fail;
0x000035b0 jalr t9 | t9 ();
0x000035b4 nop |
0x000035b8 lui gp, 2 |
0x000035bc addiu gp, gp, 0x2358 |
0x000035c0 addu gp, gp, t9 | gp += t9;
0x000035c4 lw v0, -0x7e0c(gp) | v0 = *((gp - 8067));
0x000035c8 addiu sp, sp, -0x190 |
0x000035cc sw v0, 0x28(sp) | *(var_28h_3) = v0;
0x000035d0 lw v0, (v0) | v0 = *(v0);
0x000035d4 sw gp, 0x18(sp) | *(var_18h_3) = gp;
0x000035d8 sw ra, 0x18c(sp) | *(var_18ch) = ra;
0x000035dc sw fp, 0x188(sp) | *(var_188h) = fp;
0x000035e0 sw s7, 0x184(sp) | *(var_184h_2) = s7;
0x000035e4 sw s6, 0x180(sp) | *(var_180h_2) = s6;
0x000035e8 sw s5, 0x17c(sp) | *(var_17ch_2) = s5;
0x000035ec sw s4, 0x178(sp) | *(var_178h_2) = s4;
0x000035f0 sw s3, 0x174(sp) | *(var_174h_2) = s3;
0x000035f4 sw s2, 0x170(sp) | *(var_170h_2) = s2;
0x000035f8 sw s1, 0x16c(sp) | *(var_16ch_2) = s1;
0x000035fc sw s0, 0x168(sp) | *(var_168h_2) = s0;
0x00003600 sw zero, 0x30(sp) | *(var_30h) = 0;
0x00003604 sw v0, 0x164(sp) | *(var_164h_2) = v0;
0x00003608 lw t9, -0x7e78(gp) | t9 = sym.imp.g_mutex_lock;
| if (a0 == 0) {
0x0000360c beqz a0, 0x38a8 | goto label_11;
| }
0x00003610 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00003614 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00003618 move s4, a0 | s4 = a0;
0x0000361c addiu a0, v0, -0x23e0 | a0 = v0 + -0x23e0;
0x00003620 jalr t9 | t9 ();
0x00003624 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x00003628 addiu s1, sp, 0x34 | s1 = sp + 0x34;
0x0000362c move a0, s1 | a0 = s1;
0x00003630 lw t9, -0x7d34(gp) | t9 = sym.imp.cli_resetOptions;
0x00003634 addiu s2, sp, 0x30 | s2 = sp + 0x30;
0x00003638 jalr t9 | t9 ();
0x0000363c lw gp, 0x18(sp) | gp = *(var_18h_3);
0x00003640 move a1, s2 | a1 = s2;
0x00003644 lw t9, -0x7f0c(gp) | t9 = sym.imp.cli_sync;
0x00003648 lw fp, -0x7fd8(gp) | fp = *((gp - 8182));
0x0000364c move a0, s1 | a0 = s1;
0x00003650 jalr t9 | t9 ();
0x00003654 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x00003658 move a2, s2 | a2 = s2;
0x0000365c move a1, s1 | a1 = s1;
0x00003660 lw t9, -0x7d70(gp) | t9 = sym.imp.cli_getChildGroupsInGroup;
0x00003664 addiu a0, fp, -0x48e8 | a0 = fp + -0x48e8;
0x00003668 jalr t9 | t9 ();
0x0000366c lw v1, 0x30(sp) | v1 = *(var_30h);
0x00003670 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x00003674 move s6, v0 | s6 = v0;
0x00003678 beqz v1, 0x3728 |
| while (v1 != 0) {
| label_0:
0x0000367c lw t9, -0x7e64(gp) | t9 = sym.imp.cli_cleanupGroupContext;
0x00003680 move a0, s6 | a0 = s6;
0x00003684 jalr t9 | t9 ();
0x00003688 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0000368c lw t9, -0x7e68(gp) | t9 = sym.imp.g_malloc0;
0x00003690 addiu a0, zero, 4 | a0 = 4;
0x00003694 jalr t9 | t9 ();
0x00003698 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0000369c sw v0, (s4) | *(s4) = v0;
0x000036a0 move a2, s2 | a2 = s2;
0x000036a4 lw t9, -0x7d70(gp) | t9 = sym.imp.cli_getChildGroupsInGroup;
0x000036a8 move a1, s1 | a1 = s1;
0x000036ac addiu a0, fp, -0x48e8 | a0 = fp + -0x48e8;
0x000036b0 jalr t9 | t9 ();
0x000036b4 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x000036b8 move s6, v0 | s6 = v0;
0x000036bc sw zero, 0x24(sp) | *(var_24h_2) = 0;
| label_1:
0x000036c0 lw t9, -0x7e64(gp) | t9 = sym.imp.cli_cleanupGroupContext;
| label_2:
0x000036c4 move a0, s6 | a0 = s6;
0x000036c8 jalr t9 | t9 ();
0x000036cc lw gp, 0x18(sp) | gp = *(var_18h_3);
| label_4:
0x000036d0 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x000036d4 lw t9, -0x7de0(gp) | t9 = sym.imp.g_mutex_unlock;
0x000036d8 addiu a0, v0, -0x23e0 | a0 = v0 + -0x23e0;
0x000036dc jalr t9 | t9 ();
0x000036e0 lw v0, 0x28(sp) | v0 = *(var_28h_3);
0x000036e4 lw a0, 0x164(sp) | a0 = *(var_164h_2);
0x000036e8 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x000036ec lw v1, (v0) | v1 = *(v0);
0x000036f0 lw v0, 0x24(sp) | v0 = *(var_24h_2);
| if (a0 != v1) {
0x000036f4 bne a0, v1, 0x390c | goto label_12;
| }
0x000036f8 lw ra, 0x18c(sp) | ra = *(var_18ch);
0x000036fc lw fp, 0x188(sp) | fp = *(var_188h);
0x00003700 lw s7, 0x184(sp) | s7 = *(var_184h_2);
0x00003704 lw s6, 0x180(sp) | s6 = *(var_180h_2);
0x00003708 lw s5, 0x17c(sp) | s5 = *(var_17ch_2);
0x0000370c lw s4, 0x178(sp) | s4 = *(var_178h_2);
0x00003710 lw s3, 0x174(sp) | s3 = *(var_174h_2);
0x00003714 lw s2, 0x170(sp) | s2 = *(var_170h_2);
0x00003718 lw s1, 0x16c(sp) | s1 = *(var_16ch_2);
0x0000371c lw s0, 0x168(sp) | s0 = *(var_168h_2);
0x00003720 addiu sp, sp, 0x190 |
0x00003724 jr ra | return v0;
0x00003728 lw t9, -0x7eb8(gp) | t9 = sym.imp.cli_getChildGroupInGroup;
0x0000372c move a2, s2 | a2 = s2;
0x00003730 move a1, s1 | a1 = s1;
0x00003734 move a0, v0 | a0 = v0;
0x00003738 jalr t9 | t9 ();
0x0000373c lw v1, 0x30(sp) | v1 = *(var_30h);
0x00003740 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x00003744 bnez v1, 0x367c |
| }
0x00003748 lw s0, 0x14(s6) | s0 = *((s6 + 5));
0x0000374c move s5, zero | s5 = 0;
| if (s0 != 0) {
0x00003750 bnez s0, 0x367c | goto label_0;
| }
0x00003754 lw t9, -0x7eb8(gp) | t9 = sym.imp.cli_getChildGroupInGroup;
0x00003758 b 0x3770 |
| while (v1 == 0) {
0x0000375c lw v1, 0x14(s6) | v1 = *((s6 + 5));
0x00003760 lw t9, -0x7e64(gp) | t9 = sym.imp.cli_cleanupGroupContext;
| if (v1 != 0) {
0x00003764 bnez v1, 0x3798 | goto label_13;
| }
0x00003768 move s5, s3 | s5 = s3;
0x0000376c lw t9, -0x7eb8(gp) | t9 = sym.imp.cli_getChildGroupInGroup;
0x00003770 move a2, s2 | a2 = s2;
0x00003774 move a1, s1 | a1 = s1;
0x00003778 move a0, s6 | a0 = s6;
0x0000377c jalr t9 | t9 ();
0x00003780 lw v1, 0x30(sp) | v1 = *(var_30h);
0x00003784 addiu s3, s5, 1 | s3 = s5 + 1;
0x00003788 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0000378c sw s3, 0x24(sp) | *(var_24h_2) = s3;
0x00003790 beqz v1, 0x375c |
| }
0x00003794 lw t9, -0x7e64(gp) | t9 = sym.imp.cli_cleanupGroupContext;
| label_13:
0x00003798 move a0, s6 | a0 = s6;
0x0000379c jalr t9 | t9 ();
0x000037a0 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x000037a4 addiu a0, s5, 2 | a0 = s5 + 2;
0x000037a8 lw t9, -0x7e68(gp) | t9 = sym.imp.g_malloc0;
0x000037ac sll a0, a0, 2 | a0 <<= 2;
0x000037b0 jalr t9 | t9 ();
0x000037b4 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x000037b8 addiu a0, fp, -0x48e8 | a0 = fp + -0x48e8;
0x000037bc sw v0, (s4) | *(s4) = v0;
0x000037c0 lw t9, -0x7d70(gp) | t9 = sym.imp.cli_getChildGroupsInGroup;
0x000037c4 move a2, s2 | a2 = s2;
0x000037c8 move a1, s1 | a1 = s1;
0x000037cc jalr t9 | t9 ();
0x000037d0 lw a0, 0x30(sp) | a0 = *(var_30h);
0x000037d4 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x000037d8 move s6, v0 | s6 = v0;
| if (a0 != 0) {
0x000037dc bnez a0, 0x36c0 | goto label_1;
| }
0x000037e0 lw s5, -0x7fd8(gp) | s5 = *((gp - 8182));
0x000037e4 addiu s7, sp, 0x64 | s7 = sp + 0x64;
0x000037e8 addiu s5, s5, -0x48d8 | s5 += -0x48d8;
0x000037ec b 0x384c | goto label_14;
| label_3:
0x000037f0 lw v0, 0x14(s6) | v0 = *((s6 + 5));
0x000037f4 lw t9, -0x7eb0(gp) | t9 = sym.imp.g_sprintf
| if (v0 != 0) {
0x000037f8 bnez v0, 0x386c | goto label_15;
| }
0x000037fc lw a2, 0xc(s6) | a2 = *((s6 + 3));
0x00003800 move a1, s5 | a1 = s5;
0x00003804 move a0, s7 | a0 = s7;
0x00003808 jalr t9 | t9 ();
0x0000380c lw gp, 0x18(sp) | gp = *(var_18h_3);
0x00003810 lw v0, (s4) | v0 = *(s4);
0x00003814 move a0, s7 | a0 = s7;
0x00003818 lw t9, -0x7e24(gp) | t9 = sym.imp.cli_getCustomParam;
0x0000381c sll fp, s0, 2 | fp = s0 << 2;
0x00003820 move a2, s2 | a2 = s2;
0x00003824 move a1, s1 | a1 = s1;
0x00003828 addu fp, v0, fp | fp = v0 + fp;
0x0000382c jalr t9 | t9 ();
0x00003830 lw a0, 0x30(sp) | a0 = *(var_30h);
0x00003834 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x00003838 sw v0, (fp) | *(fp) = v0;
| if (a0 != 0) {
0x0000383c bnez a0, 0x38d0 | goto label_16;
| }
0x00003840 addiu s0, s0, 1 | s0++;
0x00003844 lw t9, -0x7e64(gp) | t9 = sym.imp.cli_cleanupGroupContext;
| if (s0 == s3) {
0x00003848 beq s0, s3, 0x36c4 | goto label_2;
| }
| label_14:
0x0000384c lw t9, -0x7eb8(gp) | t9 = sym.imp.cli_getChildGroupInGroup;
0x00003850 move a2, s2 | a2 = s2;
0x00003854 move a1, s1 | a1 = s1;
0x00003858 move a0, s6 | a0 = s6;
0x0000385c jalr t9 | t9 ();
0x00003860 lw v0, 0x30(sp) | v0 = *(var_30h);
0x00003864 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 == 0) {
0x00003868 beqz v0, 0x37f0 | goto label_3;
| }
| label_15:
0x0000386c lw t9, -0x7ea4(gp) | t9 = sym.imp.g_strfreev;
0x00003870 addiu v0, zero, -1 | v0 = -1;
0x00003874 lw a0, (s4) | a0 = *(s4);
0x00003878 sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x0000387c jalr t9 | t9 ();
0x00003880 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x00003884 addiu a1, zero, 1 | a1 = 1;
0x00003888 addiu a0, zero, 3 | a0 = 3;
0x0000388c lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00003890 lw t9, -0x7e20(gp) | t9 = sym.imp.__syslog_chk;
0x00003894 addiu a2, a2, -0x4884 | a2 += -0x4884;
0x00003898 sw zero, (s4) | *(s4) = 0;
0x0000389c jalr t9 | t9 ();
0x000038a0 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x000038a4 b 0x36d0 | goto label_4;
| label_11:
0x000038a8 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x000038ac lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x000038b0 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x000038b4 addiu v0, v0, -0x48bc | v0 += -0x48bc;
0x000038b8 lw t9, -0x7da8(gp) | t9 = sym.imp.g_assertion_message_expr;
0x000038bc sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x000038c0 addiu a3, a3, -0x45d0 | a3 += -0x45d0;
0x000038c4 addiu a2, zero, 0x18d | a2 = 0x18d;
0x000038c8 addiu a1, a1, -0x4990 | a1 += -0x4990;
0x000038cc jalr t9 | t9 ();
| label_16:
0x000038d0 lw t9, -0x7ea4(gp) | t9 = sym.imp.g_strfreev;
0x000038d4 addiu v0, zero, -1 | v0 = -1;
0x000038d8 lw a0, (s4) | a0 = *(s4);
0x000038dc sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x000038e0 jalr t9 | t9 ();
0x000038e4 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x000038e8 addiu a1, zero, 1 | a1 = 1;
0x000038ec addiu a0, zero, 3 | a0 = 3;
0x000038f0 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x000038f4 lw t9, -0x7e20(gp) | t9 = sym.imp.__syslog_chk;
0x000038f8 addiu a2, a2, -0x48a8 | a2 += -0x48a8;
0x000038fc sw zero, (s4) | *(s4) = 0;
0x00003900 jalr t9 | t9 ();
0x00003904 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x00003908 b 0x36d0 | goto label_4;
| label_12:
0x0000390c lw t9, -0x7e44(gp) | t9 = sym.imp.__stack_chk_fail;
0x00003910 jalr t9 | t9 ();
0x00003914 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/presettourd @ 0x6cec */
| #include <stdint.h>
|
; (fcn) sym.preset_tour_update_parhand_running_state () | void preset_tour_update_parhand_running_state () {
0x00006cec lui gp, 2 |
0x00006cf0 addiu gp, gp, -0x13dc |
0x00006cf4 addu gp, gp, t9 | gp += t9;
0x00006cf8 addiu sp, sp, -0x28 |
0x00006cfc lw t9, -0x7d80(gp) | t9 = sym.imp.g_malloc;
0x00006d00 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00006d04 sw s2, 0x20(sp) | *(var_20h) = s2;
0x00006d08 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x00006d0c sw ra, 0x24(sp) | *(var_24h) = ra;
0x00006d10 sw s0, 0x18(sp) | *(var_18h) = s0;
0x00006d14 move s2, a0 | s2 = a0;
0x00006d18 addiu a0, zero, 0x110 | a0 = 0x110;
0x00006d1c move s1, a1 | s1 = a1;
0x00006d20 jalr t9 | t9 ();
0x00006d24 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00006d28 beqz v0, 0x6d98 | goto label_0;
| }
0x00006d2c move s0, v0 | s0 = v0;
0x00006d30 sw s2, 0x108(v0) | *((v0 + 66)) = s2;
0x00006d34 sw zero, (v0) | *(v0) = 0;
0x00006d38 addiu a0, v0, 8 | a0 = v0 + 8;
| if (s1 != 0) {
0x00006d3c bnez s1, 0x6d8c | goto label_1;
| }
0x00006d40 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00006d44 addiu a2, a2, -0x40e4 | a2 += -0x40e4;
| do {
0x00006d48 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00006d4c lw t9, -0x7eb0(gp) | t9 = sym.imp.g_sprintf
0x00006d50 addiu a1, a1, -0x49a8 | a1 += -0x49a8;
0x00006d54 jalr t9 | t9 ();
0x00006d58 lw gp, 0x10(sp) | gp = *(var_10h);
0x00006d5c lw ra, 0x24(sp) | ra = *(var_24h);
0x00006d60 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00006d64 lw a1, -0x7fc8(gp) | a1 = *((gp - 8178));
0x00006d68 lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x00006d6c lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00006d70 move a2, s0 | a2 = s0;
0x00006d74 lw t9, -0x7e54(gp) | t9 = sym.imp.g_thread_new;
0x00006d78 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00006d7c addiu a1, a1, 0x55cc | a1 += 0x55cc;
0x00006d80 addiu a0, a0, -0x40e0 | a0 += -0x40e0;
0x00006d84 addiu sp, sp, 0x28 |
0x00006d88 jr t9 | t9 ();
| label_1:
0x00006d8c lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00006d90 addiu a2, a2, -0x428c | a2 += -0x428c;
0x00006d94 b 0x6d48 |
| } while (1);
| label_0:
0x00006d98 lw ra, 0x24(sp) | ra = *(var_24h);
0x00006d9c lw s2, 0x20(sp) | s2 = *(var_20h);
0x00006da0 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00006da4 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00006da8 addiu sp, sp, 0x28 |
0x00006dac jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/presettourd @ 0x415c */
| #include <stdint.h>
|
; (fcn) sym.tour_parhand_get_guard_tour_tours () | void tour_parhand_get_guard_tour_tours () {
0x0000415c lui gp, 2 |
0x00004160 addiu gp, gp, 0x17b4 |
0x00004164 addu gp, gp, t9 | gp += t9;
0x00004168 addiu sp, sp, -0x130 |
0x0000416c lw t9, -0x7eb0(gp) | t9 = sym.imp.g_sprintf
0x00004170 sw s1, 0x124(sp) | *(var_124h) = s1;
0x00004174 lw s1, -0x7e0c(gp) | s1 = *((gp - 8067));
0x00004178 sw s2, 0x128(sp) | *(var_128h) = s2;
0x0000417c move s2, a1 | s2 = a1;
0x00004180 lw v0, (s1) | v0 = *(s1);
0x00004184 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00004188 sw s0, 0x120(sp) | *(var_120h) = s0;
0x0000418c addiu s0, sp, 0x1c | s0 = sp + 0x1c;
0x00004190 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00004194 move a2, a0 | a2 = a0;
0x00004198 sw ra, 0x12c(sp) | *(var_12ch) = ra;
0x0000419c move a0, s0 | a0 = s0;
0x000041a0 addiu a1, a1, -0x475c | a1 += -0x475c;
0x000041a4 sw v0, 0x11c(sp) | *(var_11ch) = v0;
0x000041a8 jalr t9 | t9 ();
0x000041ac nop |
0x000041b0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000041b4 move a0, s0 | a0 = s0;
0x000041b8 move a2, s2 | a2 = s2;
0x000041bc lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x000041c0 lw t9, -0x7fc8(gp) | t9 = *((gp - 8178));
0x000041c4 addiu t9, t9, 0x2fcc | t9 += fcn.00002fcc;
0x000041c8 addiu a1, a1, -0x46f4 | a1 += -0x46f4;
0x000041cc bal 0x2fcc | fcn_00002fcc ();
0x000041d0 lw a0, 0x11c(sp) | a0 = *(var_11ch);
0x000041d4 lw v1, (s1) | v1 = *(s1);
0x000041d8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (a0 == v1) {
0x000041dc bne a0, v1, 0x41f8 |
0x000041e0 lw ra, 0x12c(sp) | ra = *(var_12ch);
0x000041e4 lw s2, 0x128(sp) | s2 = *(var_128h);
0x000041e8 lw s1, 0x124(sp) | s1 = *(var_124h);
0x000041ec lw s0, 0x120(sp) | s0 = *(var_120h);
0x000041f0 addiu sp, sp, 0x130 |
0x000041f4 jr ra | return v1;
| }
0x000041f8 lw t9, -0x7e44(gp) | t9 = sym.imp.__stack_chk_fail;
0x000041fc jalr t9 | t9 ();
0x00004200 nop |
0x00004204 lui gp, 2 |
0x00004208 addiu gp, gp, 0x170c |
0x0000420c addu gp, gp, t9 | gp += t9;
0x00004210 lw t9, -0x7fc8(gp) | t9 = *((gp - 8178));
0x00004214 addiu t9, t9, 0x32f0 | t9 += fcn.000032f0;
0x00004218 b 0x32f0 | void (*0x32f0)() ();
0x0000421c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/presettourd @ 0x3ca0 */
| #include <stdint.h>
|
; (fcn) sym.tour_parhand_set_parameter () | void tour_parhand_set_parameter () {
0x00003ca0 lui gp, 2 |
0x00003ca4 addiu gp, gp, 0x1c70 |
0x00003ca8 addu gp, gp, t9 | gp += t9;
0x00003cac addiu sp, sp, -0x178 |
0x00003cb0 sw s3, 0x164(sp) | *(var_164h_2) = s3;
0x00003cb4 lw s3, -0x7e0c(gp) | s3 = *((gp - 8067));
0x00003cb8 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00003cbc sw ra, 0x174(sp) | *(var_174h_2) = ra;
0x00003cc0 lw v0, (s3) | v0 = *(s3);
0x00003cc4 sw s6, 0x170(sp) | *(var_170h_2) = s6;
0x00003cc8 sw s5, 0x16c(sp) | *(var_16ch_2) = s5;
0x00003ccc sw s4, 0x168(sp) | *(var_168h_2) = s4;
0x00003cd0 sw s2, 0x160(sp) | *(var_160h_2) = s2;
0x00003cd4 sw s1, 0x15c(sp) | *(var_15ch_2) = s1;
0x00003cd8 sw s0, 0x158(sp) | *(var_158h) = s0;
0x00003cdc sw zero, 0x20(sp) | *(var_20h_2) = 0;
0x00003ce0 sw v0, 0x154(sp) | *(var_154h_2) = v0;
0x00003ce4 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
| if (a0 == 0) {
0x00003ce8 beqz a0, 0x3e40 | goto label_2;
| }
0x00003cec lw v0, 0x108(a0) | v0 = *((a0 + 66));
0x00003cf0 move s0, a0 | s0 = a0;
| if (v0 < 0) {
0x00003cf4 bltz v0, 0x3e14 | goto label_3;
| }
0x00003cf8 lw s4, -0x7fdc(gp) | s4 = *((gp - 8183));
0x00003cfc lw t9, -0x7e78(gp) | t9 = sym.imp.g_mutex_lock;
0x00003d00 addiu a0, s4, -0x23e0 | a0 = s4 + -0x23e0;
0x00003d04 jalr t9 | t9 ();
0x00003d08 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00003d0c addiu s5, sp, 0x54 | s5 = sp + 0x54;
0x00003d10 move a1, s5 | a1 = s5;
0x00003d14 lw t9, -0x7fc8(gp) | t9 = *((gp - 8178));
0x00003d18 addiu t9, t9, 0x2d70 | t9 += fcn.00002d70;
0x00003d1c move a0, s0 | a0 = s0;
0x00003d20 bal 0x2d70 | fcn_00002d70 ();
0x00003d24 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x00003d28 bnez v0, 0x3e64 | goto label_4;
| }
0x00003d2c lw t9, -0x7d34(gp) | t9 = sym.imp.cli_resetOptions;
0x00003d30 addiu s1, sp, 0x24 | s1 = sp + 0x24;
0x00003d34 move a0, s1 | a0 = s1;
0x00003d38 jalr t9 | t9 ();
0x00003d3c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00003d40 addiu s2, sp, 0x20 | s2 = sp + 0x20;
0x00003d44 move a1, s2 | a1 = s2;
0x00003d48 lw t9, -0x7f0c(gp) | t9 = sym.imp.cli_sync;
0x00003d4c move a0, s1 | a0 = s1;
0x00003d50 jalr t9 | t9 ();
0x00003d54 lw v0, (s0) | v0 = *(s0);
0x00003d58 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00003d5c addiu s6, s0, 8 | s6 = s0 + 8;
| if (v0 == 0) {
0x00003d60 beqz v0, 0x3e08 | goto label_5;
| }
0x00003d64 sltiu v0, v0, 5 | v0 = (v0 < 5) ? 1 : 0;
0x00003d68 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
| if (v0 != 0) {
0x00003d6c bnez v0, 0x3d88 | goto label_6;
| }
0x00003d70 lw t9, -0x7eb0(gp) | t9 = sym.imp.g_sprintf
0x00003d74 lw a2, 4(s0) | a2 = *((s0 + 1));
0x00003d78 addiu a1, a1, -0x48c0 | a1 += -0x48c0;
0x00003d7c move a0, s6 | a0 = s6;
0x00003d80 jalr t9 | t9 ();
0x00003d84 lw gp, 0x18(sp) | gp = *(var_18h_2);
| do {
| label_6:
0x00003d88 lw t9, -0x7ef4(gp) | t9 = sym.imp.cli_setCustomParam;
0x00003d8c move a3, s2 | a3 = s2;
0x00003d90 move a2, s1 | a2 = s1;
0x00003d94 move a1, s6 | a1 = s6;
0x00003d98 move a0, s5 | a0 = s5;
0x00003d9c jalr t9 | t9 ();
0x00003da0 lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x00003da4 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (s0 != 0) {
0x00003da8 bnez s0, 0x3e9c | goto label_7;
| }
0x00003dac lw t9, -0x7f0c(gp) | t9 = sym.imp.cli_sync;
0x00003db0 move a1, s2 | a1 = s2;
0x00003db4 move a0, s1 | a0 = s1;
0x00003db8 jalr t9 | t9 ();
0x00003dbc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00003dc0 lw t9, -0x7de0(gp) | t9 = sym.imp.g_mutex_unlock;
0x00003dc4 addiu a0, s4, -0x23e0 | a0 = s4 + -0x23e0;
0x00003dc8 jalr t9 | t9 ();
0x00003dcc lw gp, 0x18(sp) | gp = *(var_18h_2);
| label_0:
0x00003dd0 lw a0, 0x154(sp) | a0 = *(var_154h_2);
0x00003dd4 lw v1, (s3) | v1 = *(s3);
0x00003dd8 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00003ddc bne a0, v1, 0x3ebc | goto label_8;
| }
0x00003de0 lw ra, 0x174(sp) | ra = *(var_174h_2);
0x00003de4 lw s6, 0x170(sp) | s6 = *(var_170h_2);
0x00003de8 lw s5, 0x16c(sp) | s5 = *(var_16ch_2);
0x00003dec lw s4, 0x168(sp) | s4 = *(var_168h_2);
0x00003df0 lw s3, 0x164(sp) | s3 = *(var_164h_2);
0x00003df4 lw s2, 0x160(sp) | s2 = *(var_160h_2);
0x00003df8 lw s1, 0x15c(sp) | s1 = *(var_15ch_2);
0x00003dfc lw s0, 0x158(sp) | s0 = *(var_158h);
0x00003e00 addiu sp, sp, 0x178 |
0x00003e04 jr ra | return v0;
| label_5:
0x00003e08 addiu v0, zero, 0xc | v0 = 0xc;
0x00003e0c sw v0, 0x28(sp) | *(var_28h) = v0;
0x00003e10 b 0x3d88 |
| } while (1);
| label_3:
0x00003e14 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00003e18 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x00003e1c lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00003e20 addiu v0, v0, -0x4848 | v0 += -0x4848;
0x00003e24 lw t9, -0x7da8(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00003e28 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00003e2c addiu a3, a3, -0x4580 | a3 += -0x4580;
0x00003e30 addiu a2, zero, 0xe6 | a2 = 0xe6;
0x00003e34 addiu a1, a1, -0x4990 | a1 += -0x4990;
0x00003e38 move a0, zero | a0 = 0;
0x00003e3c jalr t9 | t9 ();
| label_2:
0x00003e40 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x00003e44 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00003e48 addiu v0, v0, -0x485c | v0 += -0x485c;
0x00003e4c lw t9, -0x7da8(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00003e50 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00003e54 addiu a3, a3, -0x4580 | a3 += -0x4580;
0x00003e58 addiu a2, zero, 0xe5 | a2 = 0xe5;
0x00003e5c addiu a1, a1, -0x4990 | a1 += -0x4990;
0x00003e60 jalr t9 | t9 ();
| label_4:
0x00003e64 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00003e68 lw t9, -0x7e20(gp) | t9 = sym.imp.__syslog_chk;
0x00003e6c lw a3, (s0) | a3 = *(s0);
0x00003e70 addiu a2, a2, -0x482c | a2 += -0x482c;
0x00003e74 addiu a1, zero, 1 | a1 = 1;
0x00003e78 addiu a0, zero, 3 | a0 = 3;
0x00003e7c jalr t9 | t9 ();
0x00003e80 lw gp, 0x18(sp) | gp = *(var_18h_2);
| do {
0x00003e84 lw t9, -0x7de0(gp) | t9 = sym.imp.g_mutex_unlock;
0x00003e88 addiu a0, s4, -0x23e0 | a0 = s4 + -0x23e0;
0x00003e8c jalr t9 | t9 ();
0x00003e90 addiu s0, zero, -1 | s0 = -1;
0x00003e94 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00003e98 b 0x3dd0 | goto label_0;
| label_7:
0x00003e9c lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00003ea0 lw t9, -0x7e20(gp) | t9 = sym.imp.__syslog_chk;
0x00003ea4 addiu a2, a2, -0x47e4 | a2 += -0x47e4;
0x00003ea8 addiu a1, zero, 1 | a1 = 1;
0x00003eac addiu a0, zero, 3 | a0 = 3;
0x00003eb0 jalr t9 | t9 ();
0x00003eb4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00003eb8 b 0x3e84 |
| } while (1);
| label_8:
0x00003ebc lw t9, -0x7e44(gp) | t9 = sym.imp.__stack_chk_fail;
0x00003ec0 jalr t9 | t9 ();
0x00003ec4 nop |
0x00003ec8 lui gp, 2 |
0x00003ecc addiu gp, gp, 0x1a48 |
0x00003ed0 addu gp, gp, t9 | gp += t9;
0x00003ed4 addiu sp, sp, -0x70 |
0x00003ed8 sw s2, 0x60(sp) | *(var_60h) = s2;
0x00003edc lw s2, -0x7e0c(gp) | s2 = *((gp - 8067));
0x00003ee0 sw gp, 0x18(sp) | *(var_18h_3) = gp;
0x00003ee4 sw ra, 0x6c(sp) | *(var_6ch) = ra;
0x00003ee8 lw v0, (s2) | v0 = *(s2);
0x00003eec sw s4, 0x68(sp) | *(var_68h) = s4;
0x00003ef0 sw s3, 0x64(sp) | *(var_64h) = s3;
0x00003ef4 sw s1, 0x5c(sp) | *(var_5ch) = s1;
0x00003ef8 sw s0, 0x58(sp) | *(var_58h) = s0;
0x00003efc sw zero, 0x20(sp) | *(var_20h_3) = 0;
0x00003f00 sw v0, 0x54(sp) | *(var_54h) = v0;
0x00003f04 addiu v0, zero, 1 | v0 = 1;
| if (a0 == 0) {
0x00003f08 beqz a0, 0x4098 | goto label_9;
| }
0x00003f0c move s0, a0 | s0 = a0;
| if (a1 != v0) {
0x00003f10 beq a1, v0, 0x3f48 |
0x00003f14 addiu v0, zero, -1 | v0 = -1;
0x00003f18 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
| if (a1 == v0) {
0x00003f1c beq a1, v0, 0x4030 | goto label_10;
| }
0x00003f20 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x00003f24 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00003f28 addiu v0, v0, -0x47c0 | v0 += -0x47c0;
0x00003f2c lw t9, -0x7da8(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00003f30 sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x00003f34 addiu a3, a3, -0x459c | a3 += -0x459c;
0x00003f38 addiu a2, zero, 0x144 | a2 = aav.0x00000144;
0x00003f3c addiu a1, a1, -0x4990 | a1 += -0x4990;
0x00003f40 move a0, zero | a0 = 0;
0x00003f44 jalr t9 | t9 ();
| }
0x00003f48 lw s4, -0x7fdc(gp) | s4 = *((gp - 8183));
0x00003f4c lw t9, -0x7e78(gp) | t9 = sym.imp.g_mutex_lock;
0x00003f50 addiu a0, s4, -0x23e0 | a0 = s4 + -0x23e0;
0x00003f54 jalr t9 | t9 ();
0x00003f58 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x00003f5c addiu s3, sp, 0x24 | s3 = sp + 0x24;
0x00003f60 lw t9, -0x7d34(gp) | t9 = sym.imp.cli_resetOptions;
0x00003f64 move a0, s3 | a0 = s3;
0x00003f68 jalr t9 | t9 ();
0x00003f6c lw gp, 0x18(sp) | gp = *(var_18h_3);
| do {
0x00003f70 lw t9, -0x7f0c(gp) | t9 = sym.imp.cli_sync;
0x00003f74 addiu s1, sp, 0x20 | s1 = sp + 0x20;
0x00003f78 move a1, s1 | a1 = s1;
0x00003f7c move a0, s3 | a0 = s3;
0x00003f80 jalr t9 | t9 ();
0x00003f84 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x00003f88 move a3, s1 | a3 = s1;
0x00003f8c move a2, s3 | a2 = s3;
0x00003f90 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00003f94 lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x00003f98 lw t9, -0x7d40(gp) | t9 = sym.imp.cli_createDynamicGroup;
0x00003f9c addiu a1, a1, -0x476c | a1 += -0x476c;
0x00003fa0 addiu a0, a0, -0x48e8 | a0 += -0x48e8;
0x00003fa4 jalr t9 | t9 ();
0x00003fa8 lw s3, 0x20(sp) | s3 = *(var_20h_3);
0x00003fac lw gp, 0x18(sp) | gp = *(var_18h_3);
0x00003fb0 move s1, v0 | s1 = v0;
| if (s3 != 0) {
0x00003fb4 bnez s3, 0x40c0 | goto label_11;
| }
0x00003fb8 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00003fbc lw t9, -0x7d4c(gp) | t9 = sym.imp.__isoc99_sscanf;
0x00003fc0 move a2, s0 | a2 = s0;
0x00003fc4 addiu a1, a1, -0x4760 | a1 += -0x4760;
0x00003fc8 move a0, v0 | a0 = v0;
0x00003fcc jalr t9 | t9 ();
0x00003fd0 addiu v1, zero, 1 | v1 = 1;
0x00003fd4 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 != v1) {
0x00003fd8 bne v0, v1, 0x40c0 | goto label_11;
| }
0x00003fdc lw t9, -0x7d14(gp) | t9 = sym.imp.g_free;
| if (s1 != 0) {
0x00003fe0 beqz s1, 0x3ff0 |
0x00003fe4 move a0, s1 | a0 = s1;
0x00003fe8 jalr t9 | t9 ();
0x00003fec lw gp, 0x18(sp) | gp = *(var_18h_3);
| }
0x00003ff0 lw t9, -0x7de0(gp) | t9 = sym.imp.g_mutex_unlock;
0x00003ff4 addiu a0, s4, -0x23e0 | a0 = s4 + -0x23e0;
0x00003ff8 jalr t9 | t9 ();
0x00003ffc lw gp, 0x18(sp) | gp = *(var_18h_3);
| label_1:
0x00004000 lw a0, 0x54(sp) | a0 = *(var_54h);
0x00004004 lw v1, (s2) | v1 = *(s2);
0x00004008 move v0, s3 | v0 = s3;
| if (a0 != v1) {
0x0000400c bne a0, v1, 0x40ec | goto label_12;
| }
0x00004010 lw ra, 0x6c(sp) | ra = *(var_6ch);
0x00004014 lw s4, 0x68(sp) | s4 = *(var_68h);
0x00004018 lw s3, 0x64(sp) | s3 = *(var_64h);
0x0000401c lw s2, 0x60(sp) | s2 = *(var_60h);
0x00004020 lw s1, 0x5c(sp) | s1 = *(var_5ch);
0x00004024 lw s0, 0x58(sp) | s0 = *(var_58h);
0x00004028 addiu sp, sp, 0x70 |
0x0000402c jr ra | return v0;
| label_10:
0x00004030 lw v0, (a0) | v0 = *(a0);
0x00004034 lw s4, -0x7fdc(gp) | s4 = *((gp - 8183));
| if (v0 < 0) {
0x00004038 bltz v0, 0x406c | goto label_13;
| }
0x0000403c lw t9, -0x7e78(gp) | t9 = sym.imp.g_mutex_lock;
0x00004040 addiu a0, s4, -0x23e0 | a0 = s4 + -0x23e0;
0x00004044 jalr t9 | t9 ();
0x00004048 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0000404c addiu s3, sp, 0x24 | s3 = sp + 0x24;
0x00004050 lw t9, -0x7d34(gp) | t9 = sym.imp.cli_resetOptions;
0x00004054 move a0, s3 | a0 = s3;
0x00004058 jalr t9 | t9 ();
0x0000405c lw v0, (s0) | v0 = *(s0);
0x00004060 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x00004064 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00004068 b 0x3f70 |
| } while (1);
| label_13:
0x0000406c lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00004070 lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x00004074 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00004078 addiu v0, v0, -0x4790 | v0 += -0x4790;
0x0000407c lw t9, -0x7da8(gp) | t9 = sym.imp.g_assertion_message_expr;
0x00004080 sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x00004084 addiu a3, a3, -0x459c | a3 += -0x459c;
0x00004088 addiu a2, zero, 0x145 | a2 = 0x145;
0x0000408c addiu a1, a1, -0x4990 | a1 += -0x4990;
0x00004090 move a0, zero | a0 = 0;
0x00004094 jalr t9 | t9 ();
| label_9:
0x00004098 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x0000409c lw a3, -0x7fd8(gp) | a3 = *((gp - 8182));
0x000040a0 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x000040a4 addiu v0, v0, -0x4904 | v0 += -0x4904;
0x000040a8 lw t9, -0x7da8(gp) | t9 = sym.imp.g_assertion_message_expr;
0x000040ac sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x000040b0 addiu a3, a3, -0x459c | a3 += -0x459c;
0x000040b4 addiu a2, zero, 0x143 | a2 = 0x143;
0x000040b8 addiu a1, a1, -0x4990 | a1 += -0x4990;
0x000040bc jalr t9 | t9 ();
| label_11:
0x000040c0 lw t9, -0x7d14(gp) | t9 = sym.imp.g_free;
| if (s1 != 0) {
0x000040c4 beqz s1, 0x40d4 |
0x000040c8 move a0, s1 | a0 = s1;
0x000040cc jalr t9 | t9 ();
0x000040d0 lw gp, 0x18(sp) | gp = *(var_18h_3);
| }
0x000040d4 lw t9, -0x7de0(gp) | t9 = sym.imp.g_mutex_unlock;
0x000040d8 addiu a0, s4, -0x23e0 | a0 = s4 + -0x23e0;
0x000040dc jalr t9 | t9 ();
0x000040e0 addiu s3, zero, -1 | s3 = -1;
0x000040e4 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x000040e8 b 0x4000 | goto label_1;
| label_12:
0x000040ec lw t9, -0x7e44(gp) | t9 = sym.imp.__stack_chk_fail;
0x000040f0 jalr t9 | t9 ();
0x000040f4 nop |
| }
[*] Function printf used 6 times presettourd