[*] Binary protection state of veritysetup
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function sprintf tear down of veritysetup
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/veritysetup @ 0x3480 */
| #include <stdint.h>
|
; (fcn) fcn.00003480 () | void fcn_00003480 () {
0x00003480 lui gp, 2 |
0x00003484 addiu gp, gp, 0x2f00 |
0x00003488 addu gp, gp, t9 | gp += t9;
0x0000348c addiu sp, sp, -0x10e8 |
0x00003490 lw t9, -0x7edc(gp) | t9 = sym.imp.__xstat64;
0x00003494 sw s0, 0x10d4(sp) | *(var_10d4h) = s0;
0x00003498 lw s0, -0x7d98(gp) | s0 = *((gp - 8038));
0x0000349c sw gp, 0x20(sp) | *(var_20h) = gp;
0x000034a0 move a1, a0 | a1 = a0;
0x000034a4 lw v0, (s0) | v0 = *(s0);
0x000034a8 sw ra, 0x10e4(sp) | *(var_10e4h) = ra;
0x000034ac sw s3, 0x10e0(sp) | *(var_10e0h) = s3;
0x000034b0 sw s2, 0x10dc(sp) | *(var_10dch) = s2;
0x000034b4 sw s1, 0x10d8(sp) | *(var_10d8h) = s1;
0x000034b8 addiu a2, sp, 0x28 | a2 = sp + 0x28;
0x000034bc addiu a0, zero, 3 | a0 = 3;
0x000034c0 sw v0, 0x10cc(sp) | *(var_10cch) = v0;
0x000034c4 jalr t9 | t9 ();
0x000034c8 nop |
0x000034cc lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000034d0 bnez v0, 0x35a4 |
0x000034d4 lw v0, 0x40(sp) | v0 = *(var_40h_2);
0x000034d8 addiu v1, zero, 0x6000 | v1 = 0x6000;
0x000034dc andi v0, v0, 0xf000 | v0 &= 0xf000;
0x000034e0 lw v0, 0x50(sp) | v0 = *(var_50h_2);
| if (v0 == v1) {
0x000034e4 bne v0, v1, 0x35a4 |
0x000034e8 addiu a1, zero, -0x100 | a1 = -0x100;
0x000034ec andi a0, v0, 0xff | a0 = v0 & 0xff;
0x000034f0 srl v1, v0, 0xc | v1 = v0 >> 0xc;
0x000034f4 ext v0, v0, 8, 0xc | __asm ("ext v0, v0, 8, 0xc");
0x000034f8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000034fc lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00003500 and v1, v1, a1 | v1 &= a1;
0x00003504 or v1, v1, a0 | v1 |= a0;
0x00003508 lw t9, -0x7de4(gp) | t9 = sym.imp.__snprintf_chk;
0x0000350c addiu s1, sp, 0xcc | s1 = sp + 0xcc;
0x00003510 addiu v0, v0, -0x4114 | v0 += -0x4114;
0x00003514 addiu a3, zero, 0x1000 | a3 = 0x1000;
0x00003518 addiu a2, zero, 1 | a2 = 1;
0x0000351c addiu a1, zero, 0x1000 | a1 = 0x1000;
0x00003520 move a0, s1 | a0 = s1;
0x00003524 sw v1, 0x18(sp) | *(var_18h_3) = v1;
0x00003528 sw v0, 0x10(sp) | *(var_280h) = v0;
0x0000352c jalr t9 | t9 ();
0x00003530 lw gp, 0x20(sp) | gp = *(var_20h);
0x00003534 move a1, zero | a1 = 0;
0x00003538 lw t9, -0x7d8c(gp) | t9 = sym.imp.open64;
0x0000353c move a0, s1 | a0 = s1;
0x00003540 jalr t9 | t9 ();
0x00003544 move s2, v0 | s2 = v0;
0x00003548 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x0000354c bltz v0, 0x35a4 | goto label_5;
| }
0x00003550 lw t9, -0x7ed0(gp) | t9 = sym.imp.read;
0x00003554 addiu a2, zero, 0x1000 | a2 = 0x1000;
0x00003558 move a1, s1 | a1 = s1;
0x0000355c move a0, v0 | a0 = v0;
0x00003560 jalr t9 | t9 ();
0x00003564 lw gp, 0x20(sp) | gp = *(var_20h);
0x00003568 move s3, v0 | s3 = v0;
0x0000356c lw t9, -0x7ecc(gp) | t9 = sym.imp.close;
0x00003570 move a0, s2 | a0 = s2;
0x00003574 jalr t9 | t9 ();
0x00003578 sltiu v0, s3, 2 | v0 = (s3 < 2) ? 1 : 0;
0x0000357c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00003580 bnez v0, 0x35a4 | goto label_5;
| }
0x00003584 addiu v0, sp, 0x10d0 | v0 = sp + 0x10d0;
0x00003588 addu s3, v0, s3 | s3 = v0 + s3;
0x0000358c lw t9, -0x7d9c(gp) | t9 = sym.imp.strdup;
0x00003590 move a0, s1 | a0 = s1;
0x00003594 sb zero, -0x1005(s3) | *((s3 - 4101)) = 0;
0x00003598 jalr t9 | t9 ();
0x0000359c lw gp, 0x20(sp) | gp = *(var_20h);
0x000035a0 b 0x35a8 |
| }
| } else {
| label_5:
0x000035a4 move v0, zero | v0 = 0;
| }
0x000035a8 lw a0, 0x10cc(sp) | a0 = *(var_10cch);
0x000035ac lw v1, (s0) | v1 = *(s0);
0x000035b0 lw ra, 0x10e4(sp) | ra = *(var_10e4h);
| if (a0 == v1) {
0x000035b4 bne a0, v1, 0x35d0 |
0x000035b8 lw s3, 0x10e0(sp) | s3 = *(var_10e0h);
0x000035bc lw s2, 0x10dc(sp) | s2 = *(var_10dch);
0x000035c0 lw s1, 0x10d8(sp) | s1 = *(var_10d8h);
0x000035c4 lw s0, 0x10d4(sp) | s0 = *(var_10d4h);
0x000035c8 addiu sp, sp, 0x10e8 |
0x000035cc jr ra | return v0;
| }
0x000035d0 lw t9, -0x7e58(gp) | t9 = sym.imp.__stack_chk_fail;
0x000035d4 jalr t9 | t9 ();
0x000035d8 nop |
0x000035dc lui gp, 2 |
0x000035e0 addiu gp, gp, 0x2da4 |
0x000035e4 addu gp, gp, t9 | gp += t9;
0x000035e8 lw v0, -0x7d98(gp) | v0 = *((gp - 8038));
0x000035ec addiu sp, sp, -0x270 |
0x000035f0 lw t9, -0x7ebc(gp) | t9 = sym.imp.memset;
0x000035f4 sw v0, 0x24(sp) | *(var_24h) = v0;
0x000035f8 lw v0, (v0) | v0 = *(v0);
0x000035fc addiu v1, sp, 0x30 | v1 = sp + 0x30;
0x00003600 sw s7, 0x264(sp) | *(var_264h) = s7;
0x00003604 lw s7, 0x280(sp) | s7 = *(var_280h);
0x00003608 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000360c sw ra, 0x26c(sp) | *(var_26ch) = ra;
0x00003610 sw s1, 0x24c(sp) | *(var_24ch) = s1;
0x00003614 sw s0, 0x248(sp) | *(var_248h) = s0;
0x00003618 sw v1, 0x2c(sp) | *(var_2ch_2) = v1;
0x0000361c move s1, a0 | s1 = a0;
0x00003620 move s0, a1 | s0 = a1;
0x00003624 move a0, v1 | a0 = v1;
0x00003628 sw a1, 0x28(sp) | *(var_28h_3) = a1;
0x0000362c sw a2, 0x278(sp) | *(var_278h) = a2;
0x00003630 move a1, zero | a1 = 0;
0x00003634 addiu a2, zero, 0xe8 | a2 = 0xe8;
0x00003638 sw a3, 0x27c(sp) | *(var_27ch) = a3;
0x0000363c sw fp, 0x268(sp) | *(var_268h) = fp;
0x00003640 sw s6, 0x260(sp) | *(var_260h) = s6;
0x00003644 sw s5, 0x25c(sp) | *(var_25ch) = s5;
0x00003648 sw s4, 0x258(sp) | *(var_258h) = s4;
0x0000364c sw s3, 0x254(sp) | *(var_254h) = s3;
0x00003650 sw s2, 0x250(sp) | *(var_250h) = s2;
0x00003654 sw v0, 0x244(sp) | *(var_244h) = v0;
0x00003658 jalr t9 | t9 ();
0x0000365c nop |
0x00003660 lw gp, 0x18(sp) | gp = *(var_18h);
0x00003664 lw a1, (s7) | a1 = *(s7);
0x00003668 addiu v1, zero, 0x400 | v1 = 0x400;
0x0000366c addiu v0, zero, 0x402 | v0 = 0x402;
| if (a1 == 0) {
0x00003670 movn v0, v1, a1 | v0 = v1;
| }
0x00003674 lw t9, -0x7d84(gp) | t9 = sym.imp.__open64_2;
0x00003678 sw zero, (s1) | *(s1) = 0;
0x0000367c move a1, v0 | a1 = v0;
0x00003680 move a0, s0 | a0 = s0;
0x00003684 jalr t9 | t9 ();
0x00003688 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x0000368c bltz v0, 0x3958 | goto label_6;
| }
0x00003690 move s3, v0 | s3 = v0;
| label_3:
0x00003694 lw s4, -0x7fd8(gp) | s4 = *((gp - 8182));
0x00003698 lw s2, -0x7fd8(gp) | s2 = *((gp - 8182));
0x0000369c addiu v0, s4, -0x40ec | v0 = s4 + -sym.write_blockwise;
0x000036a0 sw v0, 0x20(sp) | *(var_20h_2) = v0;
0x000036a4 addiu s4, sp, 0x204 | s4 = sp + 0x204;
0x000036a8 addiu s2, s2, -0x40d8 | s2 += -0x40d8;
0x000036ac addiu fp, sp, 0x118 | fp = sp + 0x118;
0x000036b0 b 0x37d0 |
| while (v0 >= 0) {
0x000036b4 lw t9, -0x7eec(gp) | t9 = sym.imp.ioctl;
0x000036b8 move a0, v0 | a0 = v0;
0x000036bc addiu a1, zero, 0x4c82 | a1 = 0x4c82;
0x000036c0 jalr t9 | t9 ();
0x000036c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000036c8 move s5, v0 | s5 = v0;
0x000036cc move a0, s0 | a0 = s0;
0x000036d0 lw t9, -0x7ecc(gp) | t9 = sym.imp.close;
| if (v0 < 0) {
0x000036d4 bltz v0, 0x3914 | goto label_7;
| }
0x000036d8 jalr t9 | t9 ();
0x000036dc nop |
0x000036e0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000036e4 move a3, s2 | a3 = s2;
0x000036e8 addiu a2, zero, 0x40 | a2 = 0x40;
0x000036ec lw t9, -0x7dd8(gp) | t9 = sym.imp.__sprintf_chk
0x000036f0 addiu a1, zero, 1 | a1 = 1;
0x000036f4 move a0, s4 | a0 = s4;
0x000036f8 sw s5, 0x10(sp) | *(var_10h_3) = s5;
0x000036fc jalr t9 | t9 ();
0x00003700 lw gp, 0x18(sp) | gp = *(var_18h);
0x00003704 move a2, fp | a2 = fp;
0x00003708 move a1, s4 | a1 = s4;
0x0000370c lw t9, -0x7edc(gp) | t9 = sym.imp.__xstat64;
0x00003710 addiu a0, zero, 3 | a0 = 3;
0x00003714 jalr t9 | t9 ();
0x00003718 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000371c bnez v0, 0x3920 | goto label_8;
| }
0x00003720 lw v0, 0x130(sp) | v0 = *(var_130h);
0x00003724 addiu v1, zero, 0x6000 | v1 = 0x6000;
0x00003728 andi v0, v0, 0xf000 | v0 &= 0xf000;
0x0000372c lw t9, -0x7ecc(gp) | t9 = sym.imp.close;
| if (v0 != v1) {
0x00003730 bne v0, v1, 0x3924 | goto label_9;
| }
| label_1:
0x00003734 lw t9, -0x7d9c(gp) | t9 = sym.imp.strdup;
0x00003738 move a0, s4 | a0 = s4;
0x0000373c jalr t9 | t9 ();
0x00003740 move a0, v0 | a0 = v0;
0x00003744 lw gp, 0x18(sp) | gp = *(var_18h);
0x00003748 sw v0, (s1) | *(s1) = v0;
| if (v0 == 0) {
0x0000374c beqz v0, 0x38a0 | goto label_4;
| }
0x00003750 lw a1, (s7) | a1 = *(s7);
0x00003754 addiu v1, zero, 2 | v1 = 2;
0x00003758 lw t9, -0x7d84(gp) | t9 = sym.imp.__open64_2;
| if (a1 == 0) {
0x0000375c movn v1, zero, a1 | v1 = 0;
| }
0x00003760 move a1, v1 | a1 = v1;
0x00003764 jalr t9 | t9 ();
0x00003768 move s0, v0 | s0 = v0;
0x0000376c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00003770 bltz v0, 0x38a0 | goto label_4;
| }
0x00003774 lw t9, -0x7eec(gp) | t9 = sym.imp.ioctl;
0x00003778 move a2, s3 | a2 = s3;
0x0000377c addiu a1, zero, 0x4c00 | a1 = 0x4c00;
0x00003780 move a0, v0 | a0 = v0;
0x00003784 jalr t9 | t9 ();
0x00003788 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 >= 0) {
0x0000378c bgez v0, 0x39b8 | goto label_10;
| }
0x00003790 lw t9, -0x7e08(gp) | t9 = sym.imp.__errno_location;
0x00003794 jalr t9 | t9 ();
0x00003798 nop |
0x0000379c lw v1, (v0) | v1 = *(v0);
0x000037a0 addiu v0, zero, 0x10 | v0 = 0x10;
0x000037a4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v1 != v0) {
0x000037a8 bne v1, v0, 0x3a78 | goto label_11;
| }
0x000037ac lw t9, -0x7e6c(gp) | t9 = sym.imp.free;
0x000037b0 lw a0, (s1) | a0 = *(s1);
0x000037b4 jalr t9 | t9 ();
0x000037b8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000037bc sw zero, (s1) | *(s1) = 0;
0x000037c0 lw t9, -0x7ecc(gp) | t9 = sym.imp.close;
0x000037c4 move a0, s0 | a0 = s0;
0x000037c8 jalr t9 | t9 ();
0x000037cc lw gp, 0x18(sp) | gp = *(var_18h);
0x000037d0 lw t9, -0x7d8c(gp) | t9 = sym.imp.open64;
0x000037d4 lw a0, 0x20(sp) | a0 = *(var_20h_2);
0x000037d8 move a1, zero | a1 = 0;
0x000037dc jalr t9 | t9 ();
0x000037e0 move s0, v0 | s0 = v0;
0x000037e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000037e8 bgez v0, 0x36b4 |
| }
0x000037ec lw t9, -0x7ebc(gp) | t9 = sym.imp.memset;
0x000037f0 addiu a2, zero, 0xe8 | a2 = 0xe8;
0x000037f4 move a1, zero | a1 = 0;
0x000037f8 move a0, fp | a0 = fp;
0x000037fc jalr t9 | t9 ();
0x00003800 move s0, zero | s0 = 0;
0x00003804 addiu s6, zero, 6 | s6 = 6;
0x00003808 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000380c b 0x3860 |
| while (v0 >= 0) {
0x00003810 lw t9, -0x7eec(gp) | t9 = sym.imp.ioctl;
0x00003814 move a2, fp | a2 = fp;
0x00003818 addiu a1, zero, 0x4c05 | a1 = 0x4c05;
0x0000381c move a0, v0 | a0 = v0;
0x00003820 jalr t9 | t9 ();
0x00003824 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00003828 beqz v0, 0x3844 |
0x0000382c lw t9, -0x7e08(gp) | t9 = sym.imp.__errno_location;
0x00003830 jalr t9 | t9 ();
0x00003834 nop |
0x00003838 lw v0, (v0) | v0 = *(v0);
0x0000383c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == s6) {
0x00003840 beq v0, s6, 0x3944 | goto label_12;
| }
| }
0x00003844 lw t9, -0x7ecc(gp) | t9 = sym.imp.close;
0x00003848 move a0, s5 | a0 = s5;
0x0000384c jalr t9 | t9 ();
0x00003850 addiu s0, s0, 1 | s0++;
0x00003854 addiu v0, zero, 0x100 | v0 = 0x100;
0x00003858 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s0 == v0) {
0x0000385c beq s0, v0, 0x389c | goto label_13;
| }
0x00003860 lw t9, -0x7dd8(gp) | t9 = sym.imp.__sprintf_chk
0x00003864 move a3, s2 | a3 = s2;
0x00003868 addiu a2, zero, 0x14 | a2 = 0x14;
0x0000386c addiu a1, zero, 1 | a1 = 1;
0x00003870 move a0, s4 | a0 = s4;
0x00003874 sw s0, 0x10(sp) | *(var_10h_3) = s0;
0x00003878 jalr t9 | t9 ();
0x0000387c lw gp, 0x18(sp) | gp = *(var_18h);
0x00003880 move a1, zero | a1 = 0;
0x00003884 lw t9, -0x7d8c(gp) | t9 = sym.imp.open64;
0x00003888 move a0, s4 | a0 = s4;
0x0000388c jalr t9 | t9 ();
0x00003890 move s5, v0 | s5 = v0;
0x00003894 lw gp, 0x18(sp) | gp = *(var_18h);
0x00003898 bgez v0, 0x3810 |
| }
| label_13:
0x0000389c sw zero, (s1) | *(s1) = 0;
| label_4:
0x000038a0 lw t9, -0x7ecc(gp) | t9 = sym.imp.close;
0x000038a4 move a0, s3 | a0 = s3;
0x000038a8 jalr t9 | t9 ();
0x000038ac lw gp, 0x18(sp) | gp = *(var_18h);
0x000038b0 lw a0, (s1) | a0 = *(s1);
| if (a0 == 0) {
| label_2:
0x000038b4 beql a0, zero, 0x38d0 | goto label_0;
| }
0x000038b8 addiu s0, zero, -1 | s0 = -1;
| do {
0x000038bc lw t9, -0x7e6c(gp) | t9 = sym.imp.free;
0x000038c0 addiu s0, zero, -1 | s0 = -1;
0x000038c4 jalr t9 | t9 ();
0x000038c8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000038cc sw zero, (s1) | *(s1) = 0;
| label_0:
0x000038d0 lw v0, 0x24(sp) | v0 = *(var_24h);
0x000038d4 lw a0, 0x244(sp) | a0 = *(var_244h);
0x000038d8 lw v1, (v0) | v1 = *(v0);
0x000038dc move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x000038e0 bne a0, v1, 0x3abc | goto label_14;
| }
0x000038e4 lw ra, 0x26c(sp) | ra = *(var_26ch);
0x000038e8 lw fp, 0x268(sp) | fp = *(var_268h);
0x000038ec lw s7, 0x264(sp) | s7 = *(var_264h);
0x000038f0 lw s6, 0x260(sp) | s6 = *(var_260h);
0x000038f4 lw s5, 0x25c(sp) | s5 = *(var_25ch);
0x000038f8 lw s4, 0x258(sp) | s4 = *(var_258h);
0x000038fc lw s3, 0x254(sp) | s3 = *(var_254h);
0x00003900 lw s2, 0x250(sp) | s2 = *(var_250h);
0x00003904 lw s1, 0x24c(sp) | s1 = *(var_24ch);
0x00003908 lw s0, 0x248(sp) | s0 = *(var_248h);
0x0000390c addiu sp, sp, 0x270 |
0x00003910 jr ra | return v0;
| label_7:
0x00003914 jalr t9 | t9 ();
0x00003918 nop |
0x0000391c lw gp, 0x18(sp) | gp = *(var_18h);
| label_8:
0x00003920 lw t9, -0x7ecc(gp) | t9 = sym.imp.close;
| label_9:
0x00003924 move a0, s3 | a0 = s3;
0x00003928 sw zero, (s1) | *(s1) = 0;
0x0000392c jalr t9 | t9 ();
0x00003930 lw a0, (s1) | a0 = *(s1);
0x00003934 lw gp, 0x18(sp) | gp = *(var_18h);
0x00003938 bnez a0, 0x38bc |
| } while (a0 != 0);
0x0000393c addiu s0, zero, -1 | s0 = -1;
0x00003940 b 0x38d0 | goto label_0;
| label_12:
0x00003944 lw t9, -0x7ecc(gp) | t9 = sym.imp.close;
0x00003948 move a0, s5 | a0 = s5;
0x0000394c jalr t9 | t9 ();
0x00003950 lw gp, 0x18(sp) | gp = *(var_18h);
0x00003954 b 0x3734 | goto label_1;
| label_6:
0x00003958 lw t9, -0x7e08(gp) | t9 = sym.imp.__errno_location;
0x0000395c jalr t9 | t9 ();
0x00003960 nop |
0x00003964 lw v0, (v0) | v0 = *(v0);
0x00003968 addiu v1, zero, 0x1e | v1 = 0x1e;
0x0000396c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == v1) {
0x00003970 beq v0, v1, 0x3980 | goto label_15;
| }
0x00003974 addiu v1, zero, 0xd | v1 = 0xd;
0x00003978 lw a0, (s1) | a0 = *(s1);
| if (v0 == v1) {
0x0000397c bnel v0, v1, 0x38b4 | goto label_2;
| }
| label_15:
0x00003980 lw v0, (s7) | v0 = *(s7);
0x00003984 lw a0, (s1) | a0 = *(s1);
| if (v0 == 0) {
0x00003988 bnel v0, zero, 0x38b4 | goto label_2;
| }
0x0000398c lw t9, -0x7d8c(gp) | t9 = sym.imp.open64;
0x00003990 addiu v0, zero, 1 | v0 = 1;
0x00003994 lw a0, 0x28(sp) | a0 = *(var_28h_3);
0x00003998 sw v0, (s7) | *(s7) = v0;
0x0000399c addiu a1, zero, 0x400 | a1 = 0x400;
0x000039a0 jalr t9 | t9 ();
0x000039a4 move s3, v0 | s3 = v0;
0x000039a8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 >= 0) {
0x000039ac bgez v0, 0x3694 | goto label_3;
| }
0x000039b0 lw a0, (s1) | a0 = *(s1);
0x000039b4 b 0x38b4 | goto label_2;
| label_10:
0x000039b8 lw t9, -0x7e0c(gp) | t9 = sym.imp.strncpy;
0x000039bc lw a1, 0x28(sp) | a1 = *(var_28h_3);
0x000039c0 sb zero, 0xa7(sp) | *(var_a7h) = 0;
0x000039c4 addiu a2, zero, 0x3f | a2 = 0x3f;
0x000039c8 addiu a0, sp, 0x68 | a0 = sp + 0x68;
0x000039cc jalr t9 | t9 ();
0x000039d0 lw v0, 0x278(sp) | v0 = *(var_278h);
0x000039d4 lw v1, 0x278(sp) | v1 = *(var_278h);
0x000039d8 sra v0, v0, 0x1f | v0 >>= 0x1f;
0x000039dc sw v0, 0x4c(sp) | *(var_4ch_2) = v0;
0x000039e0 lw v0, 0x27c(sp) | v0 = *(var_27ch);
0x000039e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000039e8 sw v1, 0x48(sp) | *(var_48h_2) = v1;
| if (v0 == 0) {
0x000039ec beqz v0, 0x3a8c | goto label_16;
| }
0x000039f0 lw v0, 0x64(sp) | v0 = *(var_64h);
0x000039f4 lw t9, -0x7eec(gp) | t9 = sym.imp.ioctl;
0x000039f8 ori v0, v0, 4 | v0 |= 4;
0x000039fc lw a2, 0x2c(sp) | a2 = *(var_2ch_2);
0x00003a00 addiu a1, zero, 0x4c04 | a1 = 0x4c04;
0x00003a04 move a0, s0 | a0 = s0;
0x00003a08 sw v0, 0x64(sp) | *(var_64h) = v0;
0x00003a0c jalr t9 | t9 ();
0x00003a10 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00003a14 bltz v0, 0x3a60 | goto label_17;
| }
0x00003a18 lw s2, 0x2c(sp) | s2 = *(var_2ch_2);
0x00003a1c lw t9, -0x7ebc(gp) | t9 = sym.imp.memset;
0x00003a20 addiu a2, zero, 0xe8 | a2 = 0xe8;
0x00003a24 move a1, zero | a1 = 0;
0x00003a28 move a0, s2 | a0 = s2;
0x00003a2c jalr t9 | t9 ();
0x00003a30 lw gp, 0x18(sp) | gp = *(var_18h);
0x00003a34 move a2, s2 | a2 = s2;
0x00003a38 addiu a1, zero, 0x4c05 | a1 = 0x4c05;
0x00003a3c lw t9, -0x7eec(gp) | t9 = sym.imp.ioctl;
0x00003a40 move a0, s0 | a0 = s0;
0x00003a44 jalr t9 | t9 ();
0x00003a48 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00003a4c bltz v0, 0x3a60 | goto label_17;
| }
0x00003a50 lw v0, 0x64(sp) | v0 = *(var_64h);
0x00003a54 andi v0, v0, 4 | v0 &= 4;
0x00003a58 lw t9, -0x7ecc(gp) | t9 = sym.imp.close;
| if (v0 != 0) {
0x00003a5c bnez v0, 0x3aac | goto label_18;
| }
| do {
| label_17:
0x00003a60 lw t9, -0x7eec(gp) | t9 = sym.imp.ioctl;
0x00003a64 move a2, zero | a2 = 0;
0x00003a68 addiu a1, zero, 0x4c01 | a1 = 0x4c01;
0x00003a6c move a0, s0 | a0 = s0;
0x00003a70 jalr t9 | t9 ();
0x00003a74 lw gp, 0x18(sp) | gp = *(var_18h);
| label_11:
0x00003a78 lw t9, -0x7ecc(gp) | t9 = sym.imp.close;
0x00003a7c move a0, s0 | a0 = s0;
0x00003a80 jalr t9 | t9 ();
0x00003a84 lw gp, 0x18(sp) | gp = *(var_18h);
0x00003a88 b 0x38a0 | goto label_4;
| label_16:
0x00003a8c lw t9, -0x7eec(gp) | t9 = sym.imp.ioctl;
0x00003a90 lw a2, 0x2c(sp) | a2 = *(var_2ch_2);
0x00003a94 addiu a1, zero, 0x4c04 | a1 = 0x4c04;
0x00003a98 move a0, s0 | a0 = s0;
0x00003a9c jalr t9 | t9 ();
0x00003aa0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00003aa4 bltz v0, 0x3a60 |
| } while (v0 < 0);
0x00003aa8 lw t9, -0x7ecc(gp) | t9 = sym.imp.close;
| label_18:
0x00003aac move a0, s3 | a0 = s3;
0x00003ab0 jalr t9 | t9 ();
0x00003ab4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00003ab8 b 0x38d0 | goto label_0;
| label_14:
0x00003abc lw t9, -0x7e58(gp) | t9 = sym.imp.__stack_chk_fail;
0x00003ac0 jalr t9 | t9 ();
0x00003ac4 nop |
0x00003ac8 lui gp, 2 |
0x00003acc addiu gp, gp, 0x28b8 |
0x00003ad0 addu gp, gp, t9 | gp += t9;
0x00003ad4 addiu sp, sp, -0x20 |
0x00003ad8 lw t9, -0x7d8c(gp) | t9 = sym.imp.open64;
0x00003adc sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00003ae0 sw ra, 0x1c(sp) | *(var_1ch_2) = ra;
0x00003ae4 sw s0, 0x18(sp) | *(var_18h_2) = s0;
0x00003ae8 move a1, zero | a1 = 0;
0x00003aec jalr t9 | t9 ();
0x00003af0 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 >= 0) {
0x00003af4 bltz v0, 0x3b38 |
0x00003af8 lw t9, -0x7eec(gp) | t9 = sym.imp.ioctl;
0x00003afc move a2, zero | a2 = 0;
0x00003b00 addiu a1, zero, 0x4c01 | a1 = 0x4c01;
0x00003b04 move a0, v0 | a0 = v0;
0x00003b08 move s0, v0 | s0 = v0;
0x00003b0c jalr t9 | t9 ();
0x00003b10 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00003b14 move a0, s0 | a0 = s0;
0x00003b18 lw t9, -0x7ecc(gp) | t9 = sym.imp.close;
0x00003b1c sltu s0, zero, v0 | s0 = (0 < v0) ? 1 : 0;
0x00003b20 jalr t9 | t9 ();
0x00003b24 lw ra, 0x1c(sp) | ra = *(var_1ch_2);
0x00003b28 move v0, s0 | v0 = s0;
0x00003b2c lw s0, 0x18(sp) | s0 = *(var_18h_2);
0x00003b30 addiu sp, sp, 0x20 |
0x00003b34 jr ra | return v0;
| }
0x00003b38 lw ra, 0x1c(sp) | ra = *(var_1ch_2);
0x00003b3c addiu s0, zero, 1 | s0 = 1;
0x00003b40 move v0, s0 | v0 = s0;
0x00003b44 lw s0, 0x18(sp) | s0 = *(var_18h_2);
0x00003b48 addiu sp, sp, 0x20 |
0x00003b4c jr ra | return v0;
| }
[*] Function sprintf used 3 times veritysetup