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