[*] Binary protection state of login.shadow

  
  	Full RELRO     Canary found      NX disabled  PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function system tear down of login.shadow

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/login.shadow @ 0x2850 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) main ()                      | int32_t main () {
                                         |     /* [13] -r-x section size 43984 named .text */
    0x00002850 lui gp, 2                 |     
    0x00002854 addiu gp, gp, 0x5ad0      |     
    0x00002858 addu gp, gp, t9           |     gp += t9;
    0x0000285c lw v0, -0x7cb8(gp)        |     v0 = *((gp - 7982));
    0x00002860 addiu sp, sp, -0x23c0     |     
    0x00002864 lw t9, -0x7dc0(gp)        |     t9 = sym.imp.memset;
    0x00002868 sw s0, 0x2398(sp)         |     *(arg_2398h) = s0;
    0x0000286c sw v0, 0x80(sp)           |     *(arg_80h) = v0;
    0x00002870 lw s0, -0x7e54(gp)        |     s0 = *((gp - 8085));
    0x00002874 lw v0, (v0)               |     v0 = *(v0);
    0x00002878 sw ra, 0x23bc(sp)         |     *(arg_23bch) = ra;
    0x0000287c addiu a2, zero, 0x7c      |     a2 = 0x7c;
    0x00002880 sw gp, 0x20(sp)           |     *(arg_20h) = gp;
    0x00002884 sw s3, 0x23a4(sp)         |     *(arg_23a4h) = s3;
    0x00002888 sw s2, 0x23a0(sp)         |     *(arg_23a0h) = s2;
    0x0000288c sw s1, 0x239c(sp)         |     *(arg_239ch) = s1;
    0x00002890 move s3, a1               |     s3 = a1;
    0x00002894 sw s0, 0x60(sp)           |     *(arg_60h) = s0;
    0x00002898 move a1, zero             |     a1 = 0;
    0x0000289c sw fp, 0x23b8(sp)         |     *(arg_23b8h) = fp;
    0x000028a0 sw s7, 0x23b4(sp)         |     *(arg_23b4h) = s7;
    0x000028a4 sw s6, 0x23b0(sp)         |     *(arg_23b0h) = s6;
    0x000028a8 sw s5, 0x23ac(sp)         |     *(arg_23ach) = s5;
    0x000028ac sw s4, 0x23a8(sp)         |     *(arg_23a8h) = s4;
    0x000028b0 move s2, a0               |     s2 = a0;
    0x000028b4 sw v0, 0x2394(sp)         |     *(arg_2394h) = v0;
    0x000028b8 sw zero, 0x114(sp)        |     *(arg_114h) = 0;
    0x000028bc addiu a0, sp, 0x118       |     a0 = sp + 0x118;
    0x000028c0 jalr t9                   |     t9 ();
    0x000028c4 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x000028c8 lw v0, (s0)               |     v0 = *(s0);
    0x000028cc lw s1, -0x7fd4(gp)        |     s1 = *((gp - 8181));
    0x000028d0 lw t9, -0x7fd0(gp)        |     t9 = sym.sanitize_env;
    0x000028d4 sw s1, 0x7c(sp)           |     *(arg_7ch) = s1;
    0x000028d8 sw v0, 0x3c(sp)           |     *(arg_3ch) = v0;
    0x000028dc bal 0x5a10                |     sym_sanitize_env ();
    0x000028e0 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x000028e4 addiu a1, s1, -0x1144     |     a1 = s1 + -0x1144;
    0x000028e8 lw t9, -0x7e0c(gp)        |     t9 = sym.imp.setlocale;
    0x000028ec addiu a0, zero, 6         |     a0 = 6;
    0x000028f0 jalr t9                   |     t9 ();
    0x000028f4 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x000028f8 lw s0, -0x7fdc(gp)        |     s0 = *((gp - 8183));
    0x000028fc lw t9, -0x7fcc(gp)        |     t9 = sym.initenv;
    0x00002900 sw s0, 0x38(sp)           |     *(arg_38h) = s0;
    0x00002904 bal 0x54c0                |     sym_initenv ();
    0x00002908 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x0000290c lw s1, -0x7fd8(gp)        |     s1 = *(gp);
    0x00002910 lw t9, -0x7cfc(gp)        |     t9 = sym.imp.getuid;
    0x00002914 sw s1, 0x40(sp)           |     *(arg_40h) = s1;
    0x00002918 jalr t9                   |     t9 ();
    0x0000291c lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00002920 lw a0, (s3)               |     a0 = *(s3);
    0x00002924 sltiu v0, v0, 1           |     v0 = (v0 < 1) ? 1 : 0;
    0x00002928 lw t9, -0x7fc8(gp)        |     t9 = sym.Basename;
    0x0000292c sb v0, 0x7e8(s0)          |     *((s0 + 2024)) = v0;
    0x00002930 bal 0x5130                |     sym_Basename ();
    0x00002934 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00002938 lw t9, -0x7d08(gp)        |     t9 = sym.imp.geteuid;
    0x0000293c sw v0, (s1)               |     *(s1) = v0;
    0x00002940 jalr t9                   |     t9 ();
    0x00002944 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 != 0) {
    0x00002948 bnez v0, 0x3f94           |         goto label_40;
                                         |     }
    0x0000294c slti v0, s2, 2            |     v0 = (s2 < 2) ? 1 : 0;
    0x00002950 lw s0, -0x7fd4(gp)        |     s0 = *((gp - 8181));
                                         |     if (v0 != 0) {
    0x00002954 bnez v0, 0x29c8           |         goto label_41;
                                         |     }
    0x00002958 addiu s5, s3, 4           |     s5 = s3 + 4;
    0x0000295c addiu s6, zero, 1         |     s6 = 1;
    0x00002960 addiu s1, zero, 0x2d      |     s1 = 0x2d;
    0x00002964 addiu s0, s0, -0x2338     |     s0 += -0x2338;
    0x00002968 b 0x2990                  |     goto label_42;
                                         | label_0:
    0x0000296c lw t9, -0x7c80(gp)        |     t9 = sym.imp.strcmp;
                                         |     do {
    0x00002970 move a1, s0               |         a1 = s0;
    0x00002974 move a0, s4               |         a0 = s4;
    0x00002978 jalr t9                   |         t9 ();
    0x0000297c lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |         if (v0 == 0) {
    0x00002980 beqz v0, 0x29c8           |             goto label_41;
                                         |         }
    0x00002984 addiu s6, s6, 1           |         s6++;
    0x00002988 addiu s5, s5, 4           |         s5 += 4;
                                         |         if (s2 == s6) {
    0x0000298c beq s2, s6, 0x29c8        |             goto label_41;
                                         |         }
                                         | label_42:
    0x00002990 lw s4, (s5)               |         s4 = *(s5);
    0x00002994 lb v0, (s4)               |         v0 = *(s4);
    0x00002998 lw t9, -0x7c80(gp)        |         t9 = sym.imp.strcmp;
    0x0000299c bne v0, s1, 0x2970        |         
                                         |     } while (v0 != s1);
    0x000029a0 lw t9, -0x7d88(gp)        |     t9 = sym.imp.strlen;
    0x000029a4 move a0, s4               |     a0 = s4;
    0x000029a8 jalr t9                   |     t9 ();
    0x000029ac sltiu v0, v0, 3           |     v0 = (v0 < 3) ? 1 : 0;
    0x000029b0 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 != 0) {
    0x000029b4 bnez v0, 0x296c           |         goto label_0;
                                         |     }
                                         |     do {
                                         | label_1:
    0x000029b8 lw t9, -0x7fc4(gp)        |         t9 = *((gp - 8177));
                                         | label_2:
    0x000029bc addiu t9, t9, 0x42c4      |         t9 += fcn.000042c4;
    0x000029c0 bal 0x42c4                |         fcn_000042c4 ();
    0x000029c4 nop                       |         
                                         | label_41:
    0x000029c8 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x000029cc lw s4, -0x7fd4(gp)        |         s4 = *((gp - 8181));
    0x000029d0 sw v0, 0x2c(sp)           |         *(arg_2ch) = v0;
    0x000029d4 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x000029d8 lw s5, -0x7fd4(gp)        |         s5 = *((gp - 8181));
    0x000029dc lw s7, -0x7fdc(gp)        |         s7 = *((gp - 8183));
    0x000029e0 lw s6, -0x7fdc(gp)        |         s6 = *((gp - 8183));
    0x000029e4 lw fp, -0x7fdc(gp)        |         fp = *((gp - 8183));
    0x000029e8 sw v0, 0x30(sp)           |         *(arg_30h) = v0;
    0x000029ec addiu s4, s4, -0x1e50     |         s4 += -0x1e50;
    0x000029f0 addiu s1, s5, -0x2334     |         s1 = s5 + -0x2334;
    0x000029f4 addiu s0, zero, -1        |         s0 = -1;
    0x000029f8 lw t9, -0x7d98(gp)        |         t9 = sym.imp.getopt;
    0x000029fc move a2, s1               |         a2 = s1;
    0x00002a00 move a1, s3               |         a1 = s3;
    0x00002a04 move a0, s2               |         a0 = s2;
    0x00002a08 jalr t9                   |         t9 ();
    0x00002a0c lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |         if (v0 == s0) {
    0x00002a10 beq v0, s0, 0x2a98        |             goto label_43;
                                         |         }
    0x00002a14 addiu v0, v0, -0x64       |         v0 += -0x64;
    0x00002a18 sltiu v1, v0, 0xf         |         v1 = (v0 < 0xf) ? 1 : 0;
    0x00002a1c sll v0, v0, 2             |         v0 <<= 2;
    0x00002a20 beqz v1, 0x29b8           |         
                                         |     } while (v1 == 0);
    0x00002a24 lwx v0, v0(s4)            |     __asm ("lwx v0, v0(s4)");
    0x00002a28 addu v0, v0, gp           |     v0 += gp;
    0x00002a2c jr v0                     |     v0 ();
    0x00002a30 nop                       |     
                                         | label_43:
    0x00002a98 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00002a9c sw v0, 0x30(sp)           |     *(arg_30h) = v0;
    0x00002aa0 lbu v0, 0x7eb(v0)         |     v0 = *((v0 + 2027));
    0x00002aa4 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
                                         |     if (v0 == 0) {
    0x00002aa8 beqz v0, 0x2e90           |         goto label_44;
                                         |     }
    0x00002aac lw s1, -0x7fdc(gp)        |     s1 = *((gp - 8183));
    0x00002ab0 lbu v0, 0x7ea(s1)         |     v0 = *((s1 + 2026));
    0x00002ab4 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
                                         |     if (v0 != 0) {
    0x00002ab8 bnez v0, 0x29b8           |         goto label_1;
                                         |     }
    0x00002abc sw v0, 0x34(sp)           |     *(arg_34h) = v0;
    0x00002ac0 lbu v0, 0x7ec(v0)         |     v0 = *((v0 + 2028));
    0x00002ac4 lw t9, -0x7fc4(gp)        |     t9 = *((gp - 8177));
                                         |     if (v0 != 0) {
    0x00002ac8 bnez v0, 0x29bc           |         goto label_2;
                                         |     }
    0x00002acc lw v0, 0x38(sp)           |     v0 = *(arg_38h);
                                         | label_3:
    0x00002ad0 lbu v0, 0x7e8(v0)         |     v0 = *((v0 + 2024));
    0x00002ad4 lw s4, -0x7ce0(gp)        |     s4 = *((gp - 7992));
                                         |     if (v0 == 0) {
    0x00002ad8 beqz v0, 0x3ff4           |         goto label_45;
                                         |     }
    0x00002adc lw v0, (s4)               |     v0 = *(s4);
    0x00002ae0 slt v1, v0, s2            |     v1 = (v0 < s2) ? 1 : 0;
                                         |     if (v1 != 0) {
    0x00002ae4 beql v1, zero, 0x2b54     |         
    0x00002ae8 lw v0, 0x30(sp)           |         v0 = *(arg_30h);
    0x00002aec lw s0, -0x7fdc(gp)        |         s0 = *((gp - 8183));
                                         | label_4:
    0x00002af0 lw v1, 0x914(s0)          |         v1 = *((s0 + 581));
    0x00002af4 sll v0, v0, 2             |         v0 <<= 2;
                                         |         if (v1 != 0) {
    0x00002af8 bnez v1, 0x3f70           |             goto label_46;
                                         |         }
    0x00002afc lw t9, -0x7fc0(gp)        |         t9 = sym.xstrdup;
    0x00002b00 lwx a0, v0(s3)            |         __asm ("lwx a0, v0(s3)");
    0x00002b04 bal 0xa734                |         sym_xstrdup ();
    0x00002b08 lw v1, (s4)               |         v1 = *(s4);
    0x00002b0c lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x00002b10 sll v1, v1, 2             |         v1 <<= 2;
    0x00002b14 sw v0, 0x914(s0)          |         *((s0 + 581)) = v0;
    0x00002b18 lwx s0, v1(s3)            |         __asm ("lwx s0, v1(s3)");
    0x00002b1c lw t9, -0x7d88(gp)        |         t9 = sym.imp.strlen;
    0x00002b20 move a0, s0               |         a0 = s0;
    0x00002b24 jalr t9                   |         t9 ();
    0x00002b28 lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x00002b2c move a2, v0               |         a2 = v0;
    0x00002b30 move a1, zero             |         a1 = 0;
    0x00002b34 lw t9, -0x7dc0(gp)        |         t9 = sym.imp.memset;
    0x00002b38 move a0, s0               |         a0 = s0;
    0x00002b3c jalr t9                   |         t9 ();
    0x00002b40 lw v0, (s4)               |         v0 = *(s4);
    0x00002b44 lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x00002b48 addiu v0, v0, 1           |         v0++;
    0x00002b4c sw v0, (s4)               |         *(s4) = v0;
    0x00002b50 lw v0, 0x30(sp)           |         v0 = *(arg_30h);
                                         |     }
    0x00002b54 lbu v0, 0x7eb(v0)         |     v0 = *((v0 + 2027));
    0x00002b58 lw s0, -0x7fdc(gp)        |     s0 = *((gp - 8183));
                                         |     if (v0 == 0) {
    0x00002b5c beqz v0, 0x3a44           |         goto label_47;
                                         |     }
    0x00002b60 lw v0, 0x914(s0)          |     v0 = *((s0 + 581));
    0x00002b64 lw v0, 0x34(sp)           |     v0 = *(arg_34h);
                                         |     if (v0 != 0) {
    0x00002b68 bnez v0, 0x29b8           |         goto label_1;
                                         |     }
    0x00002b6c lbu v0, 0x7ec(v0)         |     v0 = *((v0 + 2028));
    0x00002b70 lw t9, -0x7fc4(gp)        |     t9 = *((gp - 8177));
                                         |     if (v0 != 0) {
    0x00002b74 bnez v0, 0x29bc           |         goto label_2;
                                         |     }
                                         | label_24:
    0x00002b78 lw t9, -0x7e4c(gp)        |     t9 = sym.imp.isatty;
                                         | label_5:
    0x00002b7c move a0, zero             |     a0 = 0;
    0x00002b80 jalr t9                   |     t9 ();
    0x00002b84 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00002b88 beqz v0, 0x3fe8           |         goto label_48;
                                         |     }
    0x00002b8c lw t9, -0x7e4c(gp)        |     t9 = sym.imp.isatty;
    0x00002b90 addiu a0, zero, 1         |     a0 = 1;
    0x00002b94 jalr t9                   |     t9 ();
    0x00002b98 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00002b9c beqz v0, 0x3fe8           |         goto label_48;
                                         |     }
    0x00002ba0 lw t9, -0x7e4c(gp)        |     t9 = sym.imp.isatty;
    0x00002ba4 addiu a0, zero, 2         |     a0 = 2;
    0x00002ba8 jalr t9                   |     t9 ();
    0x00002bac lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00002bb0 beqz v0, 0x3fe8           |         goto label_48;
                                         |     }
    0x00002bb4 lw t9, -0x7fbc(gp)        |     t9 = sym.get_current_utmp;
    0x00002bb8 bal 0x9690                |     sym_get_current_utmp ();
    0x00002bbc nop                       |     
    0x00002bc0 lw v1, 0x38(sp)           |     v1 = *(arg_38h);
    0x00002bc4 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00002bc8 sw v0, 0x44(sp)           |     *(arg_44h) = v0;
    0x00002bcc lbu v1, 0x7e8(v1)         |     v1 = *((v1 + 2024));
    0x00002bd0 lw t9, -0x7d84(gp)        |     t9 = sym.imp.ttyname;
                                         |     if (v1 == 0) {
    0x00002bd4 bnez v1, 0x2be0           |         
    0x00002bd8 lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
                                         |         if (v0 == 0) {
    0x00002bdc beqz v0, 0x406c           |             goto label_49;
                                         |         }
                                         |     }
    0x00002be0 move a0, zero             |     a0 = 0;
    0x00002be4 jalr t9                   |     t9 ();
    0x00002be8 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00002bec beqz v0, 0x3be0           |         goto label_50;
                                         |     }
                                         | label_29:
    0x00002bf0 lw t9, -0x7dcc(gp)        |     t9 = sym.imp.strncpy;
    0x00002bf4 addiu s0, sp, 0x394       |     s0 = sp + 0x394;
    0x00002bf8 addiu a2, zero, 0x1fff    |     a2 = 0x1fff;
    0x00002bfc move a1, v0               |     a1 = v0;
    0x00002c00 move a0, s0               |     a0 = s0;
    0x00002c04 sw s0, 0x38(sp)           |     *(arg_38h) = s0;
    0x00002c08 jalr t9                   |     t9 ();
    0x00002c0c lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00002c10 move a0, s0               |     a0 = s0;
    0x00002c14 lw t9, -0x7fb8(gp)        |     t9 = sym.console;
    0x00002c18 sb zero, 0x2393(sp)       |     *(arg_2393h) = 0;
    0x00002c1c bal 0x5300                |     sym_console ();
    0x00002c20 nop                       |     
    0x00002c24 sll a0, zero, 0           |     a0 = 0;
    0x00002c28 sw v0, 0x58(sp)           |     *(arg_58h) = v0;
    0x00002c2c lbu v1, 0x7eb(v1)         |     v1 = *((v1 + 2027));
    0x00002c30 sc zero, 0x36f(v1)        |     __asm ("sc zero, 0x36f(v1)");
    0x00002c34 invalid                   |     
    0x00002c38 invalid                   |     
    0x00002c3c lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00002c40 bne a3, ra, 0x2c3c        |     
    0x00002c44 lw v0, 0x34(sp)           |     v0 = *(arg_34h);
    0x00002c48 lbu v0, 0x7ec(v0)         |     v0 = *((v0 + 2028));
                                         |     if (v0 != 0) {
    0x00002c4c beqz v0, 0x2ce4           |         
    0x00002c50 nop                       |         
    0x00002c54 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
                                         | label_22:
    0x00002c58 addiu v1, zero, 1         |         v1 = 1;
    0x00002c5c invalid                   |         
                                         | label_21:
    0x00002c60 lbu v0, 0x700(s1)         |         v0 = *((s1 + 1792));
    0x00002c64 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
                                         |         if (v0 != 0) {
    0x00002c68 beqz v0, 0x2c74           |             
    0x00002c6c addiu v1, zero, 0xca      |             v1 = 0xca;
    0x00002c70 sw v1, 0x10(v0)           |             *((v0 + 4)) = v1;
                                         |         }
    0x00002c74 lw v0, 0x30(sp)           |         v0 = *(arg_30h);
    0x00002c78 lbu v0, 0x7eb(v0)         |         v0 = *((v0 + 2027));
    0x00002c7c lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
                                         |         if (v0 == 0) {
    0x00002c80 beqz v0, 0x2ce4           |             goto label_51;
                                         |         }
    0x00002c84 lw s0, -0x7fdc(gp)        |         s0 = *((gp - 8183));
    0x00002c88 lw v0, 0x914(s0)          |         v0 = *((s0 + 581));
    0x00002c8c lw t9, -0x7fb4(gp)        |         t9 = sym.xmalloc;
                                         |         if (v0 != 0) {
    0x00002c90 bnez v0, 0x408c           |             goto label_52;
                                         |         }
    0x00002c94 addiu a0, zero, 0x21      |         a0 = 0x21;
    0x00002c98 bal 0xa690                |         sym_xmalloc ();
    0x00002c9c lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x00002ca0 sb zero, 0x20(v0)         |         *((v0 + 32)) = 0;
    0x00002ca4 addiu a3, sp, 0x114       |         a3 = sp + 0x114;
    0x00002ca8 lw v1, -0x7fdc(gp)        |         v1 = *((gp - 8183));
    0x00002cac lw t9, -0x7fb0(gp)        |         t9 = sym.do_rlogin;
    0x00002cb0 addiu a2, zero, 0x20      |         a2 = 0x20;
    0x00002cb4 lw a0, 0x20(v1)           |         a0 = *((v1 + 8));
    0x00002cb8 addiu v1, zero, 0x80      |         v1 = 0x80;
    0x00002cbc sw v1, 0x10(sp)           |         *(arg_10h) = v1;
    0x00002cc0 move a1, v0               |         a1 = v0;
    0x00002cc4 sw v0, 0x914(s0)          |         *((s0 + 581)) = v0;
    0x00002cc8 bal 0x8474                |         sym_do_rlogin ();
    0x00002ccc lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |         if (v0 == 0) {
    0x00002cd0 beqz v0, 0x3d48           |             goto label_53;
                                         |         }
    0x00002cd4 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x00002cd8 addiu v1, zero, 1         |         v1 = 1;
    0x00002cdc sb v1, 0x7e9(v0)          |         *((v0 + 2025)) = v1;
                                         | label_33:
    0x00002ce0 lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
                                         |     }
                                         | label_51:
    0x00002ce4 lw t9, -0x7e28(gp)        |     t9 = sym.imp.openlog;
    0x00002ce8 addiu a2, zero, 0x50      |     a2 = 0x50;
    0x00002cec addiu a1, zero, 1         |     a1 = 1;
    0x00002cf0 invalid                   |     
    0x00002cf4 addiu a0, a0, -0x2201     |     a0 += -0x2201;
    0x00002cf8 xori gp, sp, 0x20         |     gp = sp ^ 0x20;
    0x00002cfc nop                       |     
    0x00002d00 invalid                   |     
    0x00002d04 lw t9, -0x7e50(gp)        |     t9 = sym.imp.tcgetattr;
    0x00002d08 move a0, zero             |     a0 = 0;
    0x00002d0c jalr t9                   |     t9 ();
    0x00002d10 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00002d14 beqz v0, 0x3b30           |         goto label_54;
                                         |     }
                                         | label_27:
    0x00002d18 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00002d1c lw t9, -0x7fac(gp)        |     t9 = sym.getdef_num;
    0x00002d20 addiu a1, zero, 0x12      |     a1 = 0x12;
    0x00002d24 addiu a0, a0, -0x2238     |     a0 += -0x2238;
    0x00002d28 bal 0xb0a8                |     sym_getdef_num ();
    0x00002d2c lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00002d30 lw t9, -0x7e60(gp)        |     t9 = sym.imp.umask;
    0x00002d34 move a0, v0               |     a0 = v0;
    0x00002d38 jalr t9                   |     t9 ();
    0x00002d3c lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00002d40 addiu a1, zero, -1        |     a1 = -1;
    0x00002d44 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00002d48 lw t9, -0x7fa8(gp)        |     t9 = sym.getdef_long;
    0x00002d4c addiu a0, a0, -0x2230     |     a0 += -0x2230;
    0x00002d50 bal 0xb2c4                |     sym_getdef_long ();
    0x00002d54 addiu v1, zero, -1        |     v1 = -1;
    0x00002d58 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 != v1) {
    0x00002d5c beq v0, v1, 0x2d70        |         
    0x00002d60 lw t9, -0x7fa4(gp)        |         t9 = sym.set_filesize_limit;
    0x00002d64 move a0, v0               |         a0 = v0;
    0x00002d68 bal 0x9650                |         sym_set_filesize_limit ();
    0x00002d6c lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |     }
    0x00002d70 lw s0, -0x7fdc(gp)        |     s0 = *((gp - 8183));
    0x00002d74 lbu v0, 0x7ed(s0)         |     v0 = *((s0 + 2029));
    0x00002d78 lb v0, 0x114(sp)          |     v0 = *(arg_114h);
                                         |     if (v0 == 0) {
    0x00002d7c beqz v0, 0x3a20           |         goto label_55;
                                         |     }
    0x00002d80 lw s5, 0x3c(sp)           |     s5 = *(arg_3ch);
    0x00002d84 lw a0, (s5)               |     a0 = *(s5);
                                         |     if (a0 == 0) {
    0x00002d88 beqz a0, 0x3f10           |         goto label_56;
                                         |     }
    0x00002d8c nop                       |     
                                         |     do {
    0x00002d90 lw t9, -0x7fa0(gp)        |         t9 = sym.addenv;
    0x00002d94 addiu s5, s5, 4           |         s5 += 4;
    0x00002d98 move a1, zero             |         a1 = 0;
    0x00002d9c bal 0x5500                |         sym_addenv ();
    0x00002da0 lw a0, (s5)               |         a0 = *(s5);
    0x00002da4 lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x00002da8 bnez a0, 0x2d90           |         
                                         |     } while (a0 != 0);
    0x00002dac lb v0, 0x114(sp)          |     v0 = *(arg_114h);
    0x00002db0 lbu v0, 0x7ed(s0)         |     v0 = *((s0 + 2029));
                                         |     if (v0 != 0) {
    0x00002db4 bnez v0, 0x3a28           |         goto label_57;
                                         |     }
    0x00002db8 lw s0, -0x7fd4(gp)        |     s0 = *((gp - 8181));
                                         |     if (v0 == 0) {
    0x00002dbc beqz v0, 0x3d1c           |         goto label_58;
                                         |     }
                                         | label_23:
    0x00002dc0 lw s0, -0x7fd4(gp)        |     s0 = *((gp - 8181));
                                         | label_35:
    0x00002dc4 lw t9, -0x7d3c(gp)        |     t9 = sym.imp.getenv;
    0x00002dc8 addiu a0, s0, -0x2220     |     a0 = s0 + -0x2220;
    0x00002dcc jalr t9                   |     t9 ();
    0x00002dd0 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 != 0) {
    0x00002dd4 beqz v0, 0x2dec           |         
    0x00002dd8 lw t9, -0x7fa0(gp)        |         t9 = sym.addenv;
    0x00002ddc move a1, v0               |         a1 = v0;
    0x00002de0 addiu a0, s0, -0x2220     |         a0 = s0 + -0x2220;
    0x00002de4 bal 0x5500                |         sym_addenv ();
    0x00002de8 lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |     }
    0x00002dec lw s0, -0x7fd4(gp)        |     s0 = *((gp - 8181));
    0x00002df0 lw t9, -0x7d3c(gp)        |     t9 = sym.imp.getenv;
    0x00002df4 j 0xc1377b0               |     void (*0xc1377b0)() ();
    0x00002df8 jalr t9                   |     t9 ();
    0x00002dfc invalid                   |     
    0x00002e00 lw zero, (t8)             |     0 = *(t8);
    0x00002e04 lw t9, -0x7fa0(gp)        |     t9 = sym.addenv;
    0x00002e08 move a1, v0               |     a1 = v0;
    0x00002e0c addiu a0, s0, -0x2214     |     a0 = s0 + -0x2214;
    0x00002e10 bal 0x5500                |     sym_addenv ();
    0x00002e14 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         | label_31:
    0x00002e18 lw s0, -0x7fd4(gp)        |     s0 = *((gp - 8181));
    0x00002e1c lw t9, -0x7d3c(gp)        |     t9 = sym.imp.getenv;
    0x00002e20 addiu a0, s0, -0x220c     |     a0 = s0 + -0x220c;
    0x00002e24 jalr t9                   |     t9 ();
    0x00002e28 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00002e2c beqz v0, 0x3bec           |         goto label_59;
                                         |     }
    0x00002e30 lw t9, -0x7fa0(gp)        |     t9 = sym.addenv;
    0x00002e34 move a1, v0               |     a1 = v0;
    0x00002e38 addiu a0, s0, -0x220c     |     a0 = s0 + -0x220c;
    0x00002e3c bal 0x5500                |     sym_addenv ();
    0x00002e40 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         | label_30:
    0x00002e44 lw a0, (s4)               |     a0 = *(s4);
    0x00002e48 slt v0, a0, s2            |     v0 = (a0 < s2) ? 1 : 0;
    0x00002e4c lw t9, -0x7f9c(gp)        |     t9 = sym.set_env;
                                         |     if (v0 != 0) {
    0x00002e50 bnez v0, 0x3bc8           |         goto label_60;
                                         |     }
                                         | label_28:
    0x00002e54 lw v0, 0x30(sp)           |     v0 = *(arg_30h);
    0x00002e58 lbu v0, 0x7eb(v0)         |     v0 = *((v0 + 2027));
    0x00002e5c lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
                                         |     if (v0 != 0) {
    0x00002e60 bnez v0, 0x39a8           |         goto label_61;
                                         |     }
    0x00002e64 lbu v0, 0x7ea(s1)         |     v0 = *((s1 + 2026));
    0x00002e68 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
                                         |     if (v0 != 0) {
    0x00002e6c bnez v0, 0x39a8           |         goto label_61;
                                         |     }
    0x00002e70 lw v1, 0x44(sp)           |     v1 = *(arg_44h);
    0x00002e74 lw v0, 0x38(sp)           |     v0 = *(arg_38h);
                                         |     if (v1 == 0) {
    0x00002e78 beqz v1, 0x2ed0           |         goto label_62;
                                         |     }
    0x00002e7c lb v0, 0x4c(v1)           |     v0 = *((v1 + 76));
                                         |     if (v0 == 0) {
    0x00002e80 beql v0, zero, 0x2ed0     |         goto label_62;
                                         |     }
    0x00002e84 lw v0, 0x38(sp)           |     v0 = *(arg_38h);
    0x00002e88 addiu v0, v1, 0x4c        |     v0 = v1 + 0x4c;
    0x00002e8c b 0x39ac                  |     goto label_63;
                                         | label_44:
    0x00002e90 sw v0, 0x34(sp)           |     *(arg_34h) = v0;
    0x00002e94 lbu v0, 0x7ec(v0)         |     v0 = *((v0 + 2028));
    0x00002e98 lw v0, 0x38(sp)           |     v0 = *(arg_38h);
                                         |     if (v0 != 0) {
    0x00002e9c bnez v0, 0x2ad0           |         goto label_3;
                                         |     }
    0x00002ea0 lw s1, -0x7fdc(gp)        |     s1 = *((gp - 8183));
    0x00002ea4 lbu v0, 0x7ea(s1)         |     v0 = *((s1 + 2026));
    0x00002ea8 lw v0, 0x38(sp)           |     v0 = *(arg_38h);
                                         |     if (v0 != 0) {
    0x00002eac bnez v0, 0x2ad0           |         goto label_3;
                                         |     }
    0x00002eb0 lw s4, -0x7ce0(gp)        |     s4 = *((gp - 7992));
    0x00002eb4 lw v0, (s4)               |     v0 = *(s4);
    0x00002eb8 slt v1, v0, s2            |     v1 = (v0 < s2) ? 1 : 0;
    0x00002ebc lw s0, -0x7fdc(gp)        |     s0 = *((gp - 8183));
                                         |     if (v1 != 0) {
    0x00002ec0 bnez v1, 0x2af0           |         goto label_4;
                                         |     }
    0x00002ec4 lw t9, -0x7e4c(gp)        |     t9 = sym.imp.isatty;
    0x00002ec8 b 0x2b7c                  |     goto label_5;
                                         | label_19:
    0x00002ecc lw v0, 0x38(sp)           |     v0 = *(arg_38h);
                                         | label_62:
    0x00002ed0 lw t9, -0x7c7c(gp)        |     t9 = sym.imp.__snprintf_chk;
    0x00002ed4 sw v0, 0x14(sp)           |     *(arg_14h) = v0;
    0x00002ed8 lw v0, -0x7fd4(gp)        |     v0 = *((gp - 8181));
    0x00002edc addiu a0, sp, 0x194       |     a0 = sp + 0x194;
    0x00002ee0 addiu v0, v0, -0x21ec     |     v0 += -0x21ec;
    0x00002ee4 sw a0, 0x2c(sp)           |     *(arg_2ch) = a0;
    0x00002ee8 sw v0, 0x10(sp)           |     *(arg_10h) = v0;
    0x00002eec addiu a3, zero, 0x200     |     a3 = 0x200;
    0x00002ef0 addiu a2, zero, 1         |     a2 = 1;
    0x00002ef4 addiu a1, zero, 0x200     |     a1 = 0x200;
    0x00002ef8 jalr t9                   |     t9 ();
    0x00002efc lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         | label_20:
    0x00002f00 invalid                   |     
                                         |     if (t8 > 0) {
    0x00002f04 bgtzl t8, 0x2f08          |         goto label_64;
                                         |     }
                                         | label_64:
    0x00002f08 sw zero, 0x2c(t8)         |     *((t8 + 44)) = 0;
    0x00002f0c lw v0, (gp)               |     v0 = *(gp);
    0x00002f10 lw fp, -0x7fdc(gp)        |     fp = *((gp - 8183));
    0x00002f14 sw v0, 0x6c(sp)           |     *(arg_6ch) = v0;
    0x00002f18 lw v0, -0x7fc4(gp)        |     v0 = *((gp - 8177));
    0x00002f1c move s2, zero             |     s2 = 0;
    0x00002f20 sw v0, 0x78(sp)           |     *(arg_78h) = v0;
    0x00002f24 lw v0, -0x7f98(gp)        |     v0 = *(gp);
    0x00002f28 move s1, zero             |     s1 = 0;
    0x00002f2c sw v0, 0x5c(sp)           |     *(arg_5ch) = v0;
    0x00002f30 lw v0, -0x7fd4(gp)        |     v0 = *((gp - 8181));
    0x00002f34 sw zero, 0x48(sp)         |     *(arg_48h) = 0;
    0x00002f38 sw v0, 0x70(sp)           |     *(arg_70h) = v0;
    0x00002f3c lw v0, -0x7fd4(gp)        |     v0 = *((gp - 8181));
    0x00002f40 sw v0, 0x74(sp)           |     *(arg_74h) = v0;
    0x00002f44 lw v0, -0x7fd4(gp)        |     v0 = *((gp - 8181));
    0x00002f48 sw v0, 0x40(sp)           |     *(arg_40h) = v0;
    0x00002f4c lw v0, -0x7fd4(gp)        |     v0 = *((gp - 8181));
    0x00002f50 addiu v0, v0, -0x21cc     |     v0 += -0x21cc;
    0x00002f54 sw v0, 0x64(sp)           |     *(arg_64h) = v0;
    0x00002f58 lw v0, -0x7fd4(gp)        |     v0 = *((gp - 8181));
    0x00002f5c addiu v0, v0, -0x218c     |     v0 += -0x218c;
    0x00002f60 sw v0, 0x4c(sp)           |     *(arg_4ch) = v0;
    0x00002f64 lw v0, -0x7fd4(gp)        |     v0 = *((gp - 8181));
    0x00002f68 addiu v0, v0, -0x1e68     |     v0 += -0x1e68;
    0x00002f6c sw v0, 0x3c(sp)           |     *(arg_3ch) = v0;
    0x00002f70 lw v0, -0x7fd4(gp)        |     v0 = *((gp - 8181));
    0x00002f74 addiu v0, v0, -0x2378     |     v0 += -0x2378;
    0x00002f78 sw v0, 0x54(sp)           |     *(arg_54h) = v0;
                                         | label_26:
    0x00002f7c lw v0, 0x68(sp)           |     v0 = *(arg_68h);
    0x00002f80 lw t9, -0x7f94(gp)        |     t9 = sym.getdef_unum;
    0x00002f84 addiu a1, zero, 0x3c      |     a1 = 0x3c;
    0x00002f88 addiu a0, v0, -0x21dc     |     a0 = v0 + -0x21dc;
    0x00002f8c bal 0xb1b4                |     sym_getdef_unum ();
    0x00002f90 move s3, v0               |     s3 = v0;
    0x00002f94 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00002f98 lw v0, 0x6c(sp)           |     v0 = *(arg_6ch);
    0x00002f9c addiu a3, zero, 0x100     |     a3 = aav.0x00000100;
    0x00002fa0 addiu a0, v0, 0x6e8       |     a0 = v0 + 0x6e8;
    0x00002fa4 lw v0, 0x64(sp)           |     v0 = *(arg_64h);
    0x00002fa8 lw t9, -0x7c7c(gp)        |     t9 = sym.imp.__snprintf_chk;
    0x00002fac addiu a2, zero, 1         |     a2 = 1;
    0x00002fb0 addiu a1, zero, 0x100     |     a1 = aav.0x00000100;
    0x00002fb4 sw s3, 0x14(sp)           |     *(arg_14h) = s3;
    0x00002fb8 sw v0, 0x10(sp)           |     *(arg_10h) = v0;
    0x00002fbc jalr t9                   |     t9 ();
    0x00002fc0 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00002fc4 lw v0, 0x78(sp)           |     v0 = *(arg_78h);
    0x00002fc8 addiu a0, zero, 0xe       |     a0 = 0xe;
    0x00002fcc lw t9, -0x7ccc(gp)        |     t9 = sym.imp.signal;
    0x00002fd0 addiu a1, v0, 0x4270      |     a1 = v0 + 0x4270;
    0x00002fd4 jalr t9                   |     t9 ();
    0x00002fd8 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (s3 != 0) {
    0x00002fdc bnez s3, 0x3a64           |         goto label_65;
                                         |     }
                                         | label_25:
    0x00002fe0 lw v1, 0x70(sp)           |     v1 = *(arg_70h);
    0x00002fe4 lw v0, 0x5c(sp)           |     v0 = *(arg_5ch);
    0x00002fe8 addiu a0, v1, -0x21a8     |     a0 = v1 + -0x21a8;
    0x00002fec lw v1, 0x60(sp)           |     v1 = *(arg_60h);
    0x00002ff0 lw v0, (v0)               |     v0 = *(v0);
    0x00002ff4 lw t9, -0x7f94(gp)        |     t9 = sym.getdef_unum;
    0x00002ff8 addiu a1, zero, 1         |     a1 = 1;
    0x00002ffc sw v0, (v1)               |     *(v1) = v0;
    0x00003000 bal 0xb1b4                |     sym_getdef_unum ();
    0x00003004 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003008 lw v1, 0x74(sp)           |     v1 = *(arg_74h);
    0x0000300c addiu a1, zero, 3         |     a1 = 3;
    0x00003010 lw t9, -0x7f94(gp)        |     t9 = sym.getdef_unum;
    0x00003014 addiu a0, v1, -0x219c     |     a0 = v1 + -0x219c;
    0x00003018 move s7, v0               |     s7 = v0;
    0x0000301c bal 0xb1b4                |     sym_getdef_unum ();
    0x00003020 move s6, v0               |     s6 = v0;
    0x00003024 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003028 b 0x3214                  |     goto label_66;
                                         | label_6:
    0x0000302c lw t9, -0x7f90(gp)        |     t9 = sym.getdef_bool;
                                         |     do {
    0x00003030 move s4, a0               |         s4 = a0;
    0x00003034 lw a0, 0x3c(sp)           |         a0 = *(arg_3ch);
    0x00003038 bal 0xb008                |         sym_getdef_bool ();
    0x0000303c lb v1, (s4)               |         v1 = *(s4);
    0x00003040 lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |         if (v1 == 0) {
    0x00003044 beqz v1, 0x32b8           |             goto label_67;
                                         |         }
    0x00003048 lw t9, -0x7c74(gp)        |         t9 = sym.imp.getpwnam;
                                         |         if (v0 == 0) {
    0x0000304c beqz v0, 0x32a8           |             goto label_68;
                                         |         }
                                         | label_8:
    0x00003050 lw t9, -0x7f8c(gp)        |         t9 = sym.xgetpwnam;
    0x00003054 lw a0, 0x914(s0)          |         a0 = *((s0 + 581));
    0x00003058 bal 0x9e10                |         sym_xgetpwnam ();
    0x0000305c move s1, v0               |         s1 = v0;
    0x00003060 lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |         if (v0 == 0) {
    0x00003064 beqz v0, 0x32d4           |             goto label_69;
                                         |         }
                                         | label_9:
    0x00003068 lw s5, 4(v0)              |         s5 = *((v0 + 1));
    0x0000306c addiu v0, zero, 0x21      |         v0 = 0x21;
    0x00003070 lb s3, (s5)               |         s3 = *(s5);
                                         |         if (s3 != v0) {
    0x00003074 beql s3, v0, 0x3084       |             
    0x00003078 addiu s3, zero, 1         |             s3 = 1;
    0x0000307c xori s3, s3, 0x2a         |             s3 ^= 0x2a;
    0x00003080 sltiu s3, s3, 1           |             s3 = (s3 < 1) ? 1 : 0;
                                         |         }
    0x00003084 lw v0, 0x40(sp)           |         v0 = *(arg_40h);
    0x00003088 lw t9, -0x7c80(gp)        |         t9 = sym.imp.strcmp;
    0x0000308c addiu a1, v0, -0x2180     |         a1 = v0 + -0x2180;
    0x00003090 move a0, s5               |         a0 = s5;
    0x00003094 jalr t9                   |         t9 ();
    0x00003098 lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |         if (v0 == 0) {
    0x0000309c beqz v0, 0x3334           |             goto label_70;
                                         |         }
    0x000030a0 move s2, zero             |         s2 = 0;
                                         | label_17:
    0x000030a4 lbu v0, 0x7e9(fp)         |         v0 = *(envp);
    0x000030a8 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
                                         |         if (v0 == 0) {
    0x000030ac beqz v0, 0x335c           |             goto label_71;
                                         |         }
                                         | label_11:
    0x000030b0 lw s3, -0x7fd4(gp)        |         s3 = *((gp - 8181));
                                         |         if (s3 != 0) {
    0x000030b4 bnel s3, zero, 0x3124     |             
    0x000030b8 lw v0, 8(s1)              |             v0 = *((s1 + 2));
    0x000030bc lw v0, -0x7fdc(gp)        |             v0 = *((gp - 8183));
                                         |             if (v0 == 0) {
    0x000030c0 bnez v0, 0x30d0           |                 
    0x000030c4 lw v0, 0x58(sp)           |                 v0 = *(arg_58h);
    0x000030c8 lw v0, -0x7fdc(gp)        |                 v0 = *((gp - 8183));
                                         |                 if (v0 == 0) {
    0x000030cc beqz v0, 0x3960           |                     goto label_72;
                                         |                 }
                                         |             }
    0x000030d0 lw a0, 0x914(s0)          |             a0 = *((s0 + 581));
    0x000030d4 sw v0, 0x50(sp)           |             *(arg_50h) = v0;
    0x000030d8 lw a1, 0x20(v0)           |             a1 = *((v0 + 8));
    0x000030dc lb v0, (a1)               |             v0 = *(a1);
    0x000030e0 lw t9, -0x7f88(gp)        |             t9 = sym.login_access;
                                         |             if (v0 != 0) {
    0x000030e4 bnez v0, 0x34a8           |                 goto label_73;
                                         |             }
    0x000030e8 lw a1, 0x38(sp)           |             a1 = *(arg_38h);
    0x000030ec bal 0x4960                |             sym_login_access ();
    0x000030f0 lw gp, 0x20(sp)           |             gp = *(arg_20h);
                                         |             if (v0 != 0) {
    0x000030f4 bnez v0, 0x34b8           |                 goto label_74;
                                         |             }
                                         | label_15:
    0x000030f8 lw a2, -0x7fd4(gp)        |             a2 = *((gp - 8181));
    0x000030fc lw v0, 0x2c(sp)           |             v0 = *(arg_2ch);
    0x00003100 lw t9, -0x7dfc(gp)        |             t9 = sym.imp.__syslog_chk;
    0x00003104 lw a3, 0x914(s0)          |             a3 = *((s0 + 581));
    0x00003108 sw v0, 0x10(sp)           |             *(arg_10h) = v0;
    0x0000310c addiu a2, a2, -0x2124     |             a2 += -0x2124;
    0x00003110 addiu a1, zero, 1         |             a1 = 1;
    0x00003114 addiu a0, zero, 4         |             a0 = 4;
    0x00003118 jalr t9                   |             t9 ();
    0x0000311c lw gp, 0x20(sp)           |             gp = *(arg_20h);
                                         | label_18:
    0x00003120 lw s3, -0x7fd4(gp)        |             s3 = *((gp - 8181));
                                         |         }
    0x00003124 lw t9, -0x7f90(gp)        |         t9 = sym.getdef_bool;
    0x00003128 addiu a0, s3, -0x20e8     |         a0 = s3 + -0x20e8;
    0x0000312c bal 0xb008                |         sym_getdef_bool ();
    0x00003130 lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |         if (v0 != 0) {
    0x00003134 bnez v0, 0x33bc           |             goto label_75;
                                         |         }
                                         | label_12:
    0x00003138 lw t9, -0x7f90(gp)        |         t9 = sym.getdef_bool;
    0x0000313c addiu a0, s3, -0x20e8     |         a0 = s3 + -0x20e8;
    0x00003140 bal 0xb008                |         sym_getdef_bool ();
    0x00003144 lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |         if (v0 != 0) {
    0x00003148 bnez v0, 0x3418           |             goto label_76;
                                         |         }
                                         | label_10:
    0x0000314c lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
    0x00003150 lw t9, -0x7f84(gp)        |         t9 = sym.getdef_str;
    0x00003154 addiu a0, a0, -0x20d8     |         a0 += -0x20d8;
    0x00003158 bal 0xaf88                |         sym_getdef_str ();
    0x0000315c lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |         if (v0 != 0) {
    0x00003160 beqz v0, 0x31ac           |             
    0x00003164 lw v0, -0x7fdc(gp)        |             v0 = *((gp - 8183));
    0x00003168 lw t9, -0x7f80(gp)        |             t9 = sym.prepare_utmp;
    0x0000316c lw a3, 0x44(sp)           |             a3 = *(arg_44h);
    0x00003170 lw a2, 0x20(v0)           |             a2 = *((v0 + 8));
    0x00003174 lw a1, 0x38(sp)           |             a1 = *(arg_38h);
    0x00003178 move a0, s4               |             a0 = s4;
    0x0000317c bal 0x98b8                |             sym_prepare_utmp ();
    0x00003180 lw gp, 0x20(sp)           |             gp = *(arg_20h);
    0x00003184 move a1, v0               |             a1 = v0;
    0x00003188 move a0, s4               |             a0 = s4;
    0x0000318c lw t9, -0x7f7c(gp)        |             t9 = sym.failtmp;
    0x00003190 move s3, v0               |             s3 = v0;
    0x00003194 bal 0x61d8                |             sym_failtmp ();
    0x00003198 lw gp, 0x20(sp)           |             gp = *(arg_20h);
    0x0000319c lw t9, -0x7ca8(gp)        |             t9 = sym.imp.free;
    0x000031a0 move a0, s3               |             a0 = s3;
    0x000031a4 jalr t9                   |             t9 ();
    0x000031a8 lw gp, 0x20(sp)           |             gp = *(arg_20h);
                                         |         }
    0x000031ac addiu s6, s6, -1          |         s6 += -1;
    0x000031b0 lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
                                         |         if (s6 == 0) {
    0x000031b4 beqz s6, 0x3488           |             goto label_77;
                                         |         }
                                         | label_14:
    0x000031b8 lb v0, (s5)               |         v0 = *(s5);
    0x000031bc lw a0, 0x914(s0)          |         a0 = *((s0 + 581));
                                         |         if (v0 == 0) {
    0x000031c0 beqz v0, 0x3438           |             goto label_78;
                                         |         }
    0x000031c4 lw t9, -0x7ca8(gp)        |         t9 = sym.imp.free;
    0x000031c8 jalr t9                   |         t9 ();
    0x000031cc nop                       |         
    0x000031d0 lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x000031d4 sw zero, 0x914(s0)        |         *((s0 + 581)) = 0;
                                         |         if (s7 != 0) {
    0x000031d8 bnez s7, 0x3474           |             goto label_79;
                                         |         }
                                         | label_13:
    0x000031dc lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
    0x000031e0 lw t9, -0x7d50(gp)        |         t9 = sym.imp.puts;
    0x000031e4 addiu a0, a0, -0x20b0     |         a0 += -0x20b0;
    0x000031e8 jalr t9                   |         t9 ();
    0x000031ec lw v0, 0x30(sp)           |         v0 = *(arg_30h);
    0x000031f0 lbu v0, 0x7eb(v0)         |         v0 = *((v0 + 2027));
    0x000031f4 lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |         if (v0 != 0) {
    0x000031f8 bnez v0, 0x3ef4           |             goto label_80;
                                         |         }
    0x000031fc lw v0, 0x34(sp)           |         v0 = *(arg_34h);
    0x00003200 lbu v0, 0x7ec(v0)         |         v0 = *((v0 + 2028));
    0x00003204 lw t9, -0x7d78(gp)        |         t9 = sym.imp.closelog;
                                         |         if (v0 != 0) {
    0x00003208 bnez v0, 0x3ef8           |             goto label_81;
                                         |         }
                                         |         if (s6 == 0) {
    0x0000320c beqz s6, 0x3ef8           |             goto label_81;
                                         |         }
    0x00003210 nop                       |         
                                         | label_66:
    0x00003214 lw t9, -0x7f78(gp)        |         t9 = sym.pw_free;
                                         |         if (s1 != 0) {
    0x00003218 beqz s1, 0x3228           |             
    0x0000321c move a0, s1               |             a0 = s1;
    0x00003220 bal 0xcd30                |             sym_pw_free ();
    0x00003224 lw gp, 0x20(sp)           |             gp = *(arg_20h);
                                         |         }
    0x00003228 lw t9, -0x7f74(gp)        |         t9 = sym.spw_free;
                                         |         if (s2 != 0) {
    0x0000322c beqz s2, 0x323c           |             
    0x00003230 move a0, s2               |             a0 = s2;
    0x00003234 bal 0xd01c                |             sym_spw_free ();
    0x00003238 lw gp, 0x20(sp)           |             gp = *(arg_20h);
                                         |         }
                                         | label_7:
    0x0000323c lw a0, 0x914(s0)          |         a0 = *((s0 + 581));
    0x00003240 lw t9, -0x7f90(gp)        |         t9 = sym.getdef_bool;
    0x00003244 bnez a0, 0x3030           |         
                                         |     } while (a0 != 0);
    0x00003248 lw v0, 0x48(sp)           |     v0 = *(arg_48h);
    0x0000324c lw t9, -0x7fb4(gp)        |     t9 = sym.xmalloc;
                                         |     if (v0 != 0) {
    0x00003250 bnez v0, 0x3ef4           |         goto label_80;
                                         |     }
    0x00003254 addiu a0, zero, 0x21      |     a0 = 0x21;
    0x00003258 sb zero, 0x7e9(fp)        |     *(envp) = 0;
    0x0000325c bal 0xa690                |     sym_xmalloc ();
    0x00003260 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003264 lw a0, 0x4c(sp)           |     a0 = *(arg_4ch);
    0x00003268 sb zero, 0x20(v0)         |     *((v0 + 32)) = 0;
    0x0000326c lw t9, -0x7f70(gp)        |     t9 = sym.login_prompt;
    0x00003270 move a1, v0               |     a1 = v0;
    0x00003274 sw v0, 0x914(s0)          |     *((s0 + 581)) = v0;
    0x00003278 addiu a2, zero, 0x20      |     a2 = 0x20;
    0x0000327c bal 0x7c44                |     sym_login_prompt ();
    0x00003280 lw a0, 0x914(s0)          |     a0 = *((s0 + 581));
    0x00003284 lb v0, (a0)               |     v0 = *(a0);
    0x00003288 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 != 0) {
    0x0000328c bnez v0, 0x302c           |         goto label_6;
                                         |     }
    0x00003290 lw t9, -0x7ca8(gp)        |     t9 = sym.imp.free;
    0x00003294 jalr t9                   |     t9 ();
    0x00003298 nop                       |     
    0x0000329c lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x000032a0 sw zero, 0x914(s0)        |     *((s0 + 581)) = 0;
    0x000032a4 b 0x323c                  |     goto label_7;
                                         | label_68:
    0x000032a8 move a0, s4               |     a0 = s4;
    0x000032ac jalr t9                   |     t9 ();
    0x000032b0 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 != 0) {
    0x000032b4 bnez v0, 0x3050           |         goto label_8;
                                         |     }
                                         | label_67:
    0x000032b8 lw t9, -0x7f8c(gp)        |     t9 = sym.xgetpwnam;
    0x000032bc lw a0, 0x914(s0)          |     a0 = *((s0 + 581));
    0x000032c0 lw s4, 0x54(sp)           |     s4 = *(arg_54h);
    0x000032c4 bal 0x9e10                |     sym_xgetpwnam ();
    0x000032c8 move s1, v0               |     s1 = v0;
    0x000032cc lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 != 0) {
    0x000032d0 bnez v0, 0x3068           |         goto label_9;
                                         |     }
                                         | label_69:
    0x000032d4 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x000032d8 lw s5, -0x7fd4(gp)        |     s5 = *((gp - 8181));
    0x000032dc lw t9, -0x7f6c(gp)        |     t9 = sym.pw_auth;
    0x000032e0 lw a2, 0x10(v0)           |     a2 = *((v0 + 4));
    0x000032e4 lw a1, 0x914(s0)          |     a1 = *((s0 + 581));
    0x000032e8 move a3, zero             |     a3 = 0;
    0x000032ec addiu a0, s5, -0x2370     |     a0 = s5 + -0x2370;
    0x000032f0 sb zero, 0x7e9(fp)        |     *(envp) = 0;
    0x000032f4 bal 0xcb40                |     sym_pw_auth ();
    0x000032f8 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x000032fc beqz v0, 0x3928           |         goto label_82;
                                         |     }
    0x00003300 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00003304 lw v0, 0x2c(sp)           |     v0 = *(arg_2ch);
    0x00003308 lw t9, -0x7dfc(gp)        |     t9 = sym.imp.__syslog_chk;
    0x0000330c sw v0, 0x10(sp)           |     *(arg_10h) = v0;
    0x00003310 move a3, s4               |     a3 = s4;
    0x00003314 addiu a2, a2, -0x215c     |     a2 += -0x215c;
    0x00003318 addiu a1, zero, 1         |     a1 = 1;
    0x0000331c addiu a0, zero, 4         |     a0 = 4;
    0x00003320 jalr t9                   |     t9 ();
    0x00003324 addiu s5, s5, -0x2370     |     s5 += -0x2370;
    0x00003328 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x0000332c move s2, zero             |     s2 = 0;
    0x00003330 b 0x314c                  |     goto label_10;
                                         | label_70:
    0x00003334 lw t9, -0x7f68(gp)        |     t9 = sym.xgetspnam;
    0x00003338 lw a0, 0x914(s0)          |     a0 = *((s0 + 581));
    0x0000333c bal 0xa470                |     sym_xgetspnam ();
    0x00003340 move s2, v0               |     s2 = v0;
    0x00003344 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00003348 beqz v0, 0x3934           |         goto label_83;
                                         |     }
    0x0000334c lw s5, 4(v0)              |     s5 = *((v0 + 1));
    0x00003350 lbu v0, 0x7e9(fp)         |     v0 = *(envp);
    0x00003354 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
                                         |     if (v0 != 0) {
    0x00003358 bnez v0, 0x30b0           |         goto label_11;
                                         |     }
                                         | label_71:
    0x0000335c lw t9, -0x7f6c(gp)        |     t9 = sym.pw_auth;
    0x00003360 lw a1, 0x914(s0)          |     a1 = *((s0 + 581));
    0x00003364 lw a2, 0x10(v0)           |     a2 = *((v0 + 4));
    0x00003368 move a3, zero             |     a3 = 0;
    0x0000336c move a0, s5               |     a0 = s5;
    0x00003370 bal 0xcb40                |     sym_pw_auth ();
    0x00003374 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00003378 beqz v0, 0x30b0           |         goto label_11;
                                         |     }
    0x0000337c lw v0, 0x2c(sp)           |     v0 = *(arg_2ch);
    0x00003380 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00003384 lw t9, -0x7dfc(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00003388 sw v0, 0x10(sp)           |     *(arg_10h) = v0;
    0x0000338c move a3, s4               |     a3 = s4;
    0x00003390 addiu a2, a2, -0x215c     |     a2 += -0x215c;
    0x00003394 addiu a1, zero, 1         |     a1 = 1;
    0x00003398 addiu a0, zero, 4         |     a0 = 4;
    0x0000339c jalr t9                   |     t9 ();
    0x000033a0 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x000033a4 lw s3, -0x7fd4(gp)        |     s3 = *((gp - 8181));
    0x000033a8 lw t9, -0x7f90(gp)        |     t9 = sym.getdef_bool;
    0x000033ac addiu a0, s3, -0x20e8     |     a0 = s3 + -0x20e8;
    0x000033b0 bal 0xb008                |     sym_getdef_bool ();
    0x000033b4 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x000033b8 beqz v0, 0x3138           |         goto label_12;
                                         |     }
                                         | label_75:
    0x000033bc lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x000033c0 lw t9, -0x7f64(gp)        |     t9 = sym.failcheck;
    0x000033c4 lw a0, 8(s1)              |     a0 = *((s1 + 2));
    0x000033c8 addiu a2, zero, 1         |     a2 = 1;
    0x000033cc addiu a1, a1, 0x6d0       |     a1 += 0x6d0;
    0x000033d0 bal 0x5e10                |     sym_failcheck ();
    0x000033d4 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 != 0) {
    0x000033d8 bnez v0, 0x3138           |         goto label_12;
                                         |     }
                                         | label_16:
    0x000033dc lw v0, 0x2c(sp)           |     v0 = *(arg_2ch);
    0x000033e0 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x000033e4 lw t9, -0x7dfc(gp)        |     t9 = sym.imp.__syslog_chk;
    0x000033e8 lw a3, 0x914(s0)          |     a3 = *((s0 + 581));
    0x000033ec sw v0, 0x10(sp)           |     *(arg_10h) = v0;
    0x000033f0 addiu a2, a2, -0x210c     |     a2 += -0x210c;
    0x000033f4 addiu a1, zero, 1         |     a1 = 1;
    0x000033f8 addiu a0, zero, 2         |     a0 = 2;
    0x000033fc jalr t9                   |     t9 ();
    0x00003400 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003404 lw t9, -0x7f90(gp)        |     t9 = sym.getdef_bool;
    0x00003408 addiu a0, s3, -0x20e8     |     a0 = s3 + -0x20e8;
    0x0000340c bal 0xb008                |     sym_getdef_bool ();
    0x00003410 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00003414 beqz v0, 0x314c           |         goto label_10;
                                         |     }
                                         | label_76:
    0x00003418 lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x0000341c lw t9, -0x7f60(gp)        |     t9 = sym.failure;
    0x00003420 lw a0, 8(s1)              |     a0 = *((s1 + 2));
    0x00003424 lw a1, 0x38(sp)           |     a1 = *(arg_38h);
    0x00003428 addiu a2, a2, 0x6d0       |     a2 += 0x6d0;
    0x0000342c bal 0x5bb0                |     sym_failure ();
    0x00003430 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003434 b 0x314c                  |     goto label_10;
                                         | label_78:
    0x00003438 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x0000343c move a1, a0               |     a1 = a0;
    0x00003440 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00003444 lw t9, -0x7f6c(gp)        |     t9 = sym.pw_auth;
    0x00003448 lw a2, 0x10(v0)           |     a2 = *((v0 + 4));
    0x0000344c move a3, zero             |     a3 = 0;
    0x00003450 addiu a0, a0, -0x2370     |     a0 += -0x2370;
    0x00003454 bal 0xcb40                |     sym_pw_auth ();
    0x00003458 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x0000345c lw t9, -0x7ca8(gp)        |     t9 = sym.imp.free;
    0x00003460 lw a0, 0x914(s0)          |     a0 = *((s0 + 581));
    0x00003464 jalr t9                   |     t9 ();
    0x00003468 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x0000346c sw zero, 0x914(s0)        |     *((s0 + 581)) = 0;
                                         |     if (s7 == 0) {
    0x00003470 beqz s7, 0x31dc           |         goto label_13;
                                         |     }
                                         | label_79:
    0x00003474 lw t9, -0x7cd4(gp)        |     t9 = sym.imp.sleep;
    0x00003478 move a0, s7               |     a0 = s7;
    0x0000347c jalr t9                   |     t9 ();
    0x00003480 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003484 b 0x31dc                  |     goto label_13;
                                         | label_77:
    0x00003488 lw t9, -0x7dfc(gp)        |     t9 = sym.imp.__syslog_chk;
    0x0000348c lw a3, 0x2c(sp)           |     a3 = *(arg_2ch);
    0x00003490 addiu a2, a2, -0x20cc     |     a2 += -0x20cc;
    0x00003494 addiu a1, zero, 1         |     a1 = 1;
    0x00003498 addiu a0, zero, 2         |     a0 = 2;
    0x0000349c jalr t9                   |     t9 ();
    0x000034a0 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x000034a4 b 0x31b8                  |     goto label_14;
                                         | label_73:
    0x000034a8 bal 0x4960                |     sym_login_access ();
    0x000034ac nop                       |     
    0x000034b0 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x000034b4 beqz v0, 0x30f8           |         goto label_15;
                                         |     }
                                         | label_74:
    0x000034b8 lw s3, -0x7fd4(gp)        |     s3 = *((gp - 8181));
    0x000034bc lw t9, -0x7f90(gp)        |     t9 = sym.getdef_bool;
    0x000034c0 addiu a0, s3, -0x20e8     |     a0 = s3 + -0x20e8;
    0x000034c4 bal 0xb008                |     sym_getdef_bool ();
    0x000034c8 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x000034cc beqz v0, 0x34f0           |         goto label_84;
                                         |     }
    0x000034d0 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x000034d4 lw t9, -0x7f64(gp)        |     t9 = sym.failcheck;
    0x000034d8 lw a0, 8(s1)              |     a0 = *((s1 + 2));
    0x000034dc move a2, zero             |     a2 = 0;
    0x000034e0 addiu a1, a1, 0x6d0       |     a1 += 0x6d0;
    0x000034e4 bal 0x5e10                |     sym_failcheck ();
    0x000034e8 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x000034ec beqz v0, 0x33dc           |         goto label_16;
                                         |     }
                                         | label_84:
    0x000034f0 lw v0, 0x914(s0)          |     v0 = *((s0 + 581));
    0x000034f4 lw t9, -0x7ce4(gp)        |     t9 = sym.imp.alarm;
                                         |     if (v0 == 0) {
    0x000034f8 beqz v0, 0x3984           |         goto label_85;
                                         |     }
    0x000034fc move a0, zero             |     a0 = 0;
    0x00003500 jalr t9                   |     t9 ();
    0x00003504 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003508 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x0000350c lw t9, -0x7f90(gp)        |     t9 = sym.getdef_bool;
    0x00003510 addiu a0, a0, -0x208c     |     a0 += -0x208c;
    0x00003514 bal 0xb008                |     sym_getdef_bool ();
    0x00003518 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 != 0) {
    0x0000351c beqz v0, 0x3550           |         
    0x00003520 lw t9, -0x7cc4(gp)        |         t9 = sym.imp.time;
    0x00003524 move a0, zero             |         a0 = 0;
    0x00003528 lw s4, 0x914(s0)          |         s4 = *((s0 + 581));
    0x0000352c jalr t9                   |         t9 ();
    0x00003530 lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x00003534 lw a1, 0x38(sp)           |         a1 = *(arg_38h);
    0x00003538 move a2, v0               |         a2 = v0;
    0x0000353c lw t9, -0x7f5c(gp)        |         t9 = sym.isttytime;
    0x00003540 move a0, s4               |         a0 = s4;
    0x00003544 bal 0xc278                |         sym_isttytime ();
    0x00003548 lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |         if (v0 == 0) {
    0x0000354c beqz v0, 0x40a0           |             goto label_86;
                                         |         }
                                         |     }
    0x00003550 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00003554 lw v0, 8(s1)              |     v0 = *((s1 + 2));
    0x00003558 lw t9, -0x7f84(gp)        |     t9 = sym.getdef_str;
    0x0000355c addiu a0, a0, -0x2040     |     a0 += -0x2040;
    0x00003560 sw v0, 0x48(sp)           |     *(arg_48h) = v0;
    0x00003564 bal 0xaf88                |     sym_getdef_str ();
    0x00003568 move s4, v0               |     s4 = v0;
    0x0000356c lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 != 0) {
    0x00003570 beqz v0, 0x358c           |         
    0x00003574 lw t9, -0x7de4(gp)        |         t9 = sym.imp.access;
    0x00003578 move a1, zero             |         a1 = 0;
    0x0000357c move a0, v0               |         a0 = v0;
    0x00003580 jalr t9                   |         t9 ();
    0x00003584 lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |         if (v0 == 0) {
    0x00003588 beqz v0, 0x3ca0           |             goto label_87;
                                         |         }
                                         |     }
                                         | label_34:
    0x0000358c lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00003590 lw t9, -0x7d3c(gp)        |     t9 = sym.imp.getenv;
    0x00003594 addiu a0, a0, -0x1fd4     |     a0 += -0x1fd4;
    0x00003598 jalr t9                   |     t9 ();
    0x0000359c lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 != 0) {
    0x000035a0 beqz v0, 0x35bc           |         
    0x000035a4 lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
    0x000035a8 lw t9, -0x7fa0(gp)        |         t9 = sym.addenv;
    0x000035ac move a1, zero             |         a1 = 0;
    0x000035b0 addiu a0, a0, -0x1fd0     |         a0 += -0x1fd0;
    0x000035b4 bal 0x5500                |         sym_addenv ();
    0x000035b8 lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |     }
    0x000035bc lw v0, 0x18(s1)           |     v0 = *((s1 + 6));
    0x000035c0 addiu v1, zero, 0x2a      |     v1 = 0x2a;
    0x000035c4 lb a0, (v0)               |     a0 = *(v0);
    0x000035c8 lw s4, -0x7fd4(gp)        |     s4 = *((gp - 8181));
                                         |     if (a0 == v1) {
    0x000035cc beq a0, v1, 0x3ad0        |         goto label_88;
                                         |     }
    0x000035d0 lw t9, -0x7f90(gp)        |     t9 = sym.getdef_bool;
    0x000035d4 addiu a0, s4, -0x1fc8     |     a0 = s4 + -0x1fc8;
    0x000035d8 bal 0xb008                |     sym_getdef_bool ();
    0x000035dc lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 != 0) {
    0x000035e0 bnez v0, 0x3c5c           |         goto label_89;
                                         |     }
                                         | label_32:
    0x000035e4 lw t9, -0x7f58(gp)        |     t9 = sym.expire;
                                         |     if (s2 == 0) {
    0x000035e8 beqz s2, 0x3600           |         void (*0x3600)() ();
                                         |     }
                                         | label_82:
    0x00003928 addiu s5, s5, -0x2370     |     s5 += -0x2370;
    0x0000392c move s2, zero             |     s2 = 0;
    0x00003930 b 0x314c                  |     goto label_10;
                                         | label_83:
    0x00003934 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00003938 lw v0, 0x2c(sp)           |     v0 = *(arg_2ch);
    0x0000393c lw t9, -0x7dfc(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00003940 lw a3, 0x914(s0)          |     a3 = *((s0 + 581));
    0x00003944 sw v0, 0x10(sp)           |     *(arg_10h) = v0;
    0x00003948 addiu a2, a2, -0x217c     |     a2 += -0x217c;
    0x0000394c addiu a1, zero, 1         |     a1 = 1;
    0x00003950 addiu a0, zero, 4         |     a0 = 4;
    0x00003954 jalr t9                   |     t9 ();
    0x00003958 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x0000395c b 0x30a4                  |     goto label_17;
                                         | label_72:
    0x00003960 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00003964 lw t9, -0x7dfc(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00003968 lw a3, 0x2c(sp)           |     a3 = *(arg_2ch);
    0x0000396c addiu a2, a2, -0x213c     |     a2 += -0x213c;
    0x00003970 addiu a1, zero, 1         |     a1 = 1;
    0x00003974 addiu a0, zero, 2         |     a0 = 2;
    0x00003978 jalr t9                   |     t9 ();
    0x0000397c lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003980 b 0x3120                  |     goto label_18;
                                         | label_85:
    0x00003984 lw a3, -0x7fd4(gp)        |     a3 = *((gp - 8181));
    0x00003988 lw a1, -0x7fd4(gp)        |     a1 = *((gp - 8181));
    0x0000398c lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00003990 lw t9, -0x7e84(gp)        |     t9 = sym.imp.__assert_fail;
    0x00003994 addiu a3, a3, -0x1e04     |     a3 += -0x1e04;
    0x00003998 addiu a2, zero, 0x446     |     a2 = 0x446;
    0x0000399c addiu a1, a1, -0x2310     |     a1 += -0x2310;
    0x000039a0 addiu a0, a0, -0x20a0     |     a0 += -0x20a0;
    0x000039a4 jalr t9                   |     t9 ();
                                         | label_61:
    0x000039a8 lw v0, 0x20(v0)           |     v0 = *((v0 + 8));
                                         | label_63:
    0x000039ac lb v1, (v0)               |     v1 = *(v0);
    0x000039b0 lw t9, -0x7c7c(gp)        |     t9 = sym.imp.__snprintf_chk;
                                         |     if (v1 == 0) {
    0x000039b4 beqz v1, 0x2ecc           |         goto label_19;
                                         |     }
    0x000039b8 sw v0, 0x18(sp)           |     *(arg_18h) = v0;
    0x000039bc lw v0, 0x38(sp)           |     v0 = *(arg_38h);
    0x000039c0 sw v0, 0x14(sp)           |     *(arg_14h) = v0;
    0x000039c4 lw v0, -0x7fd4(gp)        |     v0 = *((gp - 8181));
    0x000039c8 addiu a0, sp, 0x194       |     a0 = sp + 0x194;
    0x000039cc addiu v0, v0, -0x2208     |     v0 += -0x2208;
    0x000039d0 sw a0, 0x2c(sp)           |     *(arg_2ch) = a0;
    0x000039d4 sw v0, 0x10(sp)           |     *(arg_10h) = v0;
    0x000039d8 addiu a3, zero, 0x200     |     a3 = 0x200;
    0x000039dc addiu a2, zero, 1         |     a2 = 1;
    0x000039e0 addiu a1, zero, 0x200     |     a1 = 0x200;
    0x000039e4 jalr t9                   |     t9 ();
    0x000039e8 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x000039ec b 0x2f00                  |     goto label_20;
    0x000039f0 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x000039f4 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x000039f8 lw t9, -0x7fa0(gp)        |     t9 = sym.addenv;
    0x000039fc lw a1, 0x20(v0)           |     a1 = *((v0 + 8));
    0x00003a00 addiu a0, a0, -0x2298     |     a0 += -0x2298;
    0x00003a04 bal 0x5500                |     sym_addenv ();
    0x00003a08 lw v0, 0x34(sp)           |     v0 = *(arg_34h);
    0x00003a0c lbu v0, 0x7ec(v0)         |     v0 = *((v0 + 2028));
    0x00003a10 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00003a14 beqz v0, 0x2c60           |         goto label_21;
                                         |     }
    0x00003a18 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00003a1c b 0x2c58                  |     goto label_22;
                                         | label_55:
    0x00003a20 lw s0, -0x7fd4(gp)        |     s0 = *((gp - 8181));
                                         |     if (v0 == 0) {
    0x00003a24 beqz v0, 0x3d1c           |         goto label_58;
                                         |     }
                                         | label_57:
    0x00003a28 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
                                         | label_36:
    0x00003a2c lw t9, -0x7fa0(gp)        |     t9 = sym.addenv;
    0x00003a30 addiu a1, sp, 0x114       |     a1 = sp + 0x114;
    0x00003a34 addiu a0, a0, -0x2228     |     a0 += -0x2228;
    0x00003a38 bal 0x5500                |     sym_addenv ();
    0x00003a3c lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003a40 b 0x2dc0                  |     goto label_23;
                                         | label_47:
    0x00003a44 lw v0, 0x34(sp)           |     v0 = *(arg_34h);
    0x00003a48 lbu v0, 0x7ec(v0)         |     v0 = *((v0 + 2028));
    0x00003a4c lw v0, 0x914(s0)          |     v0 = *((s0 + 581));
                                         |     if (v0 == 0) {
    0x00003a50 beqz v0, 0x2b78           |         goto label_24;
                                         |     }
    0x00003a54 lw t9, -0x7e4c(gp)        |     t9 = sym.imp.isatty;
                                         |     if (v0 == 0) {
    0x00003a58 bnel v0, zero, 0x2b7c     |         goto label_5;
                                         |     }
    0x00003a5c lw t9, -0x7fc4(gp)        |     t9 = *((gp - 8177));
    0x00003a60 b 0x29bc                  |     goto label_2;
                                         | label_65:
    0x00003a64 lw t9, -0x7ce4(gp)        |     t9 = sym.imp.alarm;
    0x00003a68 move a0, s3               |     a0 = s3;
    0x00003a6c jalr t9                   |     t9 ();
    0x00003a70 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003a74 b 0x2fe0                  |     goto label_25;
                                         | label_88:
    0x00003ad0 lw t9, -0x7f20(gp)        |     t9 = sym.subsystem
    0x00003ad4 addiu v0, v0, 1           |     v0++;
    0x00003ad8 move a0, s1               |     a0 = s1;
    0x00003adc sw v0, 0x18(s1)           |     *((s1 + 6)) = v0;
    0x00003ae0 bal 0x9170                |     sym_subsystem ()
    0x00003ae4 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003ae8 addiu v0, zero, 1         |     v0 = 1;
    0x00003aec lw t9, -0x7e1c(gp)        |     t9 = sym.imp.endpwent;
    0x00003af0 sw v0, 0x48(sp)           |     *(arg_48h) = v0;
    0x00003af4 jalr t9                   |     t9 ();
    0x00003af8 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003afc lw t9, -0x7c78(gp)        |     t9 = sym.imp.endgrent;
    0x00003b00 jalr t9                   |     t9 ();
    0x00003b04 nop                       |     
    0x00003b08 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003b0c lw t9, -0x7dd0(gp)        |     t9 = sym.imp.endspent;
    0x00003b10 jalr t9                   |     t9 ();
    0x00003b14 nop                       |     
    0x00003b18 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003b1c lw t9, -0x7f48(gp)        |     t9 = sym.endsgent;
    0x00003b20 bal 0xba7c                |     sym_endsgent ();
    0x00003b24 nop                       |     
    0x00003b28 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003b2c b 0x2f7c                  |     goto label_26;
                                         | label_54:
    0x00003b30 lw v0, 0x9c(sp)           |     v0 = *(arg_9ch);
    0x00003b34 lui v1, 0xffff            |     v1 = 0xffff7b7f;
    0x00003b38 addiu v1, v1, 0x7b7f      |     
    0x00003b3c lw a2, 0x90(sp)           |     a2 = *(arg_90h);
    0x00003b40 and v0, v0, v1            |     v0 &= v1;
    0x00003b44 lw v1, 0x94(sp)           |     v1 = *(arg_94h);
    0x00003b48 lw s7, -0x7fd4(gp)        |     s7 = *((gp - 8181));
    0x00003b4c lw t9, -0x7fac(gp)        |     t9 = sym.getdef_num;
    0x00003b50 ori v1, v1, 4             |     v1 |= 4;
    0x00003b54 ori a2, a2, 0x100         |     a2 |= aav.0x00000100;
    0x00003b58 lbu a1, 0xa3(sp)          |     a1 = *(arg_a3h);
    0x00003b5c ori v0, v0, 0xa1b         |     v0 |= 0xa1b;
    0x00003b60 sw v1, 0x94(sp)           |     *(arg_94h) = v1;
    0x00003b64 addiu a0, s7, -0x2284     |     a0 = s7 + -0x2284;
    0x00003b68 sw a2, 0x90(sp)           |     *(arg_90h) = a2;
    0x00003b6c lw s0, -0x7fd4(gp)        |     s0 = *((gp - 8181));
    0x00003b70 sw v0, 0x9c(sp)           |     *(arg_9ch) = v0;
    0x00003b74 bal 0xb0a8                |     sym_getdef_num ();
    0x00003b78 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003b7c lbu a1, 0xa4(sp)          |     a1 = *(arg_a4h);
    0x00003b80 move s6, v0               |     s6 = v0;
    0x00003b84 lw t9, -0x7fac(gp)        |     t9 = sym.getdef_num;
    0x00003b88 addiu a0, s0, -0x2278     |     a0 = s0 + -0x2278;
    0x00003b8c bal 0xb0a8                |     sym_getdef_num ();
    0x00003b90 andi v1, s6, 0xff         |     v1 = s6 & 0xff;
    0x00003b94 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003b98 sb s6, 0xa3(sp)           |     *(arg_a3h) = s6;
    0x00003b9c sb v0, 0xa4(sp)           |     *(arg_a4h) = v0;
                                         |     if (v1 != s6) {
    0x00003ba0 bne v1, s6, 0x4020        |         goto label_90;
                                         |     }
    0x00003ba4 andi v1, v0, 0xff         |     v1 = v0 & 0xff;
    0x00003ba8 lw t9, -0x7d34(gp)        |     t9 = sym.imp.tcsetattr;
                                         |     if (v1 != v0) {
    0x00003bac bne v1, v0, 0x4054        |         goto label_91;
                                         |     }
    0x00003bb0 move a2, s5               |     a2 = s5;
    0x00003bb4 addiu a1, zero, 0x540e    |     a1 = 0x540e;
    0x00003bb8 move a0, zero             |     a0 = 0;
    0x00003bbc jalr t9                   |     t9 ();
    0x00003bc0 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003bc4 b 0x2d18                  |     goto label_27;
                                         | label_60:
    0x00003bc8 sll a1, a0, 2             |     a1 = a0 << 2;
    0x00003bcc addu a1, s3, a1           |     a1 = s3 + a1;
    0x00003bd0 subu a0, s2, a0           |     __asm ("subu a0, s2, a0");
    0x00003bd4 bal 0x5814                |     sym_set_env ();
    0x00003bd8 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003bdc b 0x2e54                  |     goto label_28;
                                         | label_50:
    0x00003be0 lw v0, -0x7fd4(gp)        |     v0 = *((gp - 8181));
    0x00003be4 addiu v0, v0, -0x2378     |     v0 += -0x2378;
    0x00003be8 b 0x2bf0                  |     goto label_29;
                                         | label_59:
    0x00003bec lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00003bf0 lw t9, -0x7f84(gp)        |     t9 = sym.getdef_str;
    0x00003bf4 addiu a0, a0, -0x2210     |     a0 += -0x2210;
    0x00003bf8 bal 0xaf88                |     sym_getdef_str ();
    0x00003bfc lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00003c00 beqz v0, 0x2e44           |         goto label_30;
                                         |     }
    0x00003c04 lw t9, -0x7fa0(gp)        |     t9 = sym.addenv;
    0x00003c08 move a1, zero             |     a1 = 0;
    0x00003c0c move a0, v0               |     a0 = v0;
    0x00003c10 bal 0x5500                |     sym_addenv ();
    0x00003c14 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003c18 b 0x2e44                  |     goto label_30;
    0x00003c1c lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00003c20 lw t9, -0x7f84(gp)        |     t9 = sym.getdef_str;
    0x00003c24 addiu a0, a0, -0x2218     |     a0 += -0x2218;
    0x00003c28 bal 0xaf88                |     sym_getdef_str ();
    0x00003c2c lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00003c30 beqz v0, 0x2e18           |         goto label_31;
                                         |     }
    0x00003c34 lb a0, (v0)               |     a0 = *(v0);
    0x00003c38 addiu v1, zero, 0x2f      |     v1 = 0x2f;
    0x00003c3c lw t9, -0x7f1c(gp)        |     t9 = sym.tz;
                                         |     if (a0 == v1) {
    0x00003c40 beq a0, v1, 0x3f20        |         goto label_92;
                                         |     }
                                         | label_37:
    0x00003c44 lw t9, -0x7fa0(gp)        |     t9 = sym.addenv;
    0x00003c48 move a1, zero             |     a1 = 0;
    0x00003c4c move a0, v0               |     a0 = v0;
    0x00003c50 bal 0x5500                |     sym_addenv ();
    0x00003c54 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003c58 b 0x2e18                  |     goto label_31;
                                         | label_89:
    0x00003c5c lw v0, 0x50(sp)           |     v0 = *(arg_50h);
    0x00003c60 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00003c64 lw t9, -0x7f18(gp)        |     t9 = sym.dolastlog;
    0x00003c68 lw a3, 0x20(v0)           |     a3 = *((v0 + 8));
    0x00003c6c lw a2, 0x38(sp)           |     a2 = *(arg_38h);
    0x00003c70 move a1, s1               |     a1 = s1;
    0x00003c74 addiu a0, a0, 0x7f0       |     a0 += 0x7f0;
    0x00003c78 bal 0x7990                |     sym_dolastlog ();
    0x00003c7c lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003c80 b 0x35e4                  |     goto label_32;
                                         | label_87:
    0x00003ca0 lw a1, -0x7fd4(gp)        |     a1 = *((gp - 8181));
    0x00003ca4 lw t9, -0x7e30(gp)        |     t9 = sym.imp.fopen64;
    0x00003ca8 move a0, s4               |     a0 = s4;
    0x00003cac addiu a1, a1, -0x2030     |     a1 += -0x2030;
    0x00003cb0 jalr t9                   |     t9 ();
    0x00003cb4 move s4, v0               |     s4 = v0;
    0x00003cb8 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00003cbc beqz v0, 0x3f30           |         goto label_93;
                                         |     }
    0x00003cc0 lw s5, -0x7de8(gp)        |     s5 = *((gp - 8058));
    0x00003cc4 addiu s6, zero, -1        |     s6 = -1;
    0x00003cc8 addiu s7, zero, 0xa       |     s7 = 0xa;
    0x00003ccc sw s0, 0x84(sp)           |     *(arg_84h) = s0;
    0x00003cd0 b 0x3ce4                  |     
    0x00003ce4 lw t9, -0x7cf8(gp)        |     t9 = sym.imp._IO_getc;
    0x00003ce8 move a0, s4               |     a0 = s4;
    0x00003cec jalr t9                   |     t9 ();
    0x00003cf0 move s0, v0               |     s0 = v0;
    0x00003cf4 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == s6) {
    0x00003cf8 beq v0, s6, 0x3df0        |         goto label_94;
                                         |     }
    0x00003cfc lw a1, (s5)               |     a1 = *(s5);
                                         |     if (s0 != s7) {
    0x00003d00 bne s0, s7, 0x3cd4        |         void (*0x3cd4)() ();
                                         |     }
                                         | label_58:
    0x00003d1c lw t9, -0x7d3c(gp)        |     t9 = sym.imp.getenv;
    0x00003d20 addiu a0, s0, -0x2228     |     a0 = s0 + -0x2228;
    0x00003d24 jalr t9                   |     t9 ();
    0x00003d28 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 == 0) {
    0x00003d2c beqz v0, 0x2dc0           |         goto label_23;
                                         |     }
    0x00003d30 lw t9, -0x7fa0(gp)        |     t9 = sym.addenv;
    0x00003d34 move a1, v0               |     a1 = v0;
    0x00003d38 addiu a0, s0, -0x2228     |     a0 = s0 + -0x2228;
    0x00003d3c bal 0x5500                |     sym_addenv ();
    0x00003d40 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003d44 b 0x2dc0                  |     goto label_23;
                                         | label_53:
    0x00003d48 lw t9, -0x7ca8(gp)        |     t9 = sym.imp.free;
    0x00003d4c lw a0, 0x914(s0)          |     a0 = *((s0 + 581));
    0x00003d50 jalr t9                   |     t9 ();
    0x00003d54 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003d58 sw zero, 0x914(s0)        |     *((s0 + 581)) = 0;
    0x00003d5c b 0x2ce0                  |     goto label_33;
                                         | label_94:
    0x00003df0 lw t9, -0x7c98(gp)        |     t9 = sym.imp.fflush;
    0x00003df4 lw a0, (s5)               |     a0 = *(s5);
    0x00003df8 lw s0, 0x84(sp)           |     s0 = *(arg_84h);
    0x00003dfc jalr t9                   |     t9 ();
    0x00003e00 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003e04 lw t9, -0x7e2c(gp)        |     t9 = sym.imp.fclose;
    0x00003e08 move a0, s4               |     a0 = s4;
    0x00003e0c jalr t9                   |     t9 ();
    0x00003e10 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         | label_38:
    0x00003e14 lw v0, 0x48(sp)           |     v0 = *(arg_48h);
    0x00003e18 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
                                         |     if (v0 != 0) {
    0x00003e1c beqz v0, 0x3ee0           |         
    0x00003e20 lw t9, -0x7d78(gp)        |         t9 = sym.imp.closelog;
    0x00003e24 jalr t9                   |         t9 ();
    0x00003e28 nop                       |         
    0x00003e2c lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x00003e30 lw t9, -0x7d60(gp)        |         t9 = sym.imp.exit;
    0x00003e34 move a0, zero             |         a0 = 0;
    0x00003e38 jalr t9                   |         t9 ();
    0x00003e3c lw t9, -0x7f78(gp)        |         t9 = sym.pw_free;
    0x00003e40 move a0, s1               |         a0 = s1;
    0x00003e44 bal 0xcd30                |         sym_pw_free ();
    0x00003e48 lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x00003e4c lw t9, -0x7f8c(gp)        |         t9 = sym.xgetpwnam;
    0x00003e50 lw a0, 0x914(s0)          |         a0 = *((s0 + 581));
    0x00003e54 bal 0x9e10                |         sym_xgetpwnam ();
    0x00003e58 move s1, v0               |         s1 = v0;
    0x00003e5c lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |         if (v0 == 0) {
    0x00003e60 beqz v0, 0x3fc8           |             goto label_95;
                                         |         }
                                         |     }
    0x00003ee0 lw t9, -0x7d50(gp)        |     t9 = sym.imp.puts;
    0x00003ee4 addiu a0, a0, -0x2004     |     a0 += -0x2004;
    0x00003ee8 jalr t9                   |     t9 ();
    0x00003eec lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003ef0 b 0x358c                  |     goto label_34;
                                         | label_80:
    0x00003ef4 lw t9, -0x7d78(gp)        |     t9 = sym.imp.closelog;
                                         | label_81:
    0x00003ef8 jalr t9                   |     t9 ();
    0x00003efc nop                       |     
    0x00003f00 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003f04 lw t9, -0x7d60(gp)        |     t9 = sym.imp.exit;
    0x00003f08 addiu a0, zero, 1         |     a0 = 1;
    0x00003f0c jalr t9                   |     t9 ();
                                         | label_56:
    0x00003f10 lw s0, -0x7fd4(gp)        |     s0 = *((gp - 8181));
                                         |     if (v0 == 0) {
    0x00003f14 beqz v0, 0x2dc4           |         goto label_35;
                                         |     }
    0x00003f18 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00003f1c b 0x3a2c                  |     goto label_36;
                                         | label_92:
    0x00003f20 move a0, v0               |     a0 = v0;
    0x00003f24 bal 0x9490                |     sym_tz ();
    0x00003f28 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003f2c b 0x3c44                  |     goto label_37;
                                         | label_93:
    0x00003f30 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00003f34 lw t9, -0x7d50(gp)        |     t9 = sym.imp.puts;
    0x00003f38 addiu a0, a0, -0x202c     |     a0 += -0x202c;
    0x00003f3c jalr t9                   |     t9 ();
    0x00003f40 lw gp, 0x20(sp)           |     gp = *(arg_20h);
    0x00003f44 b 0x3e14                  |     goto label_38;
                                         | label_46:
    0x00003f70 lw a3, -0x7fd4(gp)        |     a3 = *((gp - 8181));
    0x00003f74 lw t9, -0x7e84(gp)        |     t9 = sym.imp.__assert_fail;
    0x00003f78 addiu a3, a3, -0x1e14     |     a3 += -0x1e14;
    0x00003f7c addiu a2, zero, 0x160     |     a2 = 0x160;
                                         | label_39:
    0x00003f80 lw a1, -0x7fd4(gp)        |     a1 = *((gp - 8181));
    0x00003f84 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00003f88 addiu a1, a1, -0x2310     |     a1 += -0x2310;
    0x00003f8c addiu a0, a0, -0x22f0     |     a0 += -0x22f0;
    0x00003f90 jalr t9                   |     t9 ();
                                         | label_40:
    0x00003f94 lw v0, -0x7ca0(gp)        |     v0 = *((gp - 7976));
    0x00003f98 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00003f9c lw t9, -0x7e3c(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00003fa0 lw a0, (v0)               |     a0 = *(v0);
    0x00003fa4 lw v0, 0x40(sp)           |     v0 = *(arg_40h);
    0x00003fa8 addiu a2, a2, -0x236c     |     a2 += -0x236c;
    0x00003fac lw a3, (v0)               |     a3 = *(v0);
                                         |     do {
    0x00003fb0 addiu a1, zero, 1         |         a1 = 1;
    0x00003fb4 jalr t9                   |         t9 ();
    0x00003fb8 lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x00003fbc lw t9, -0x7d60(gp)        |         t9 = sym.imp.exit;
    0x00003fc0 addiu a0, zero, 1         |         a0 = 1;
    0x00003fc4 jalr t9                   |         t9 ();
                                         | label_95:
    0x00003fc8 lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x00003fcc lw t9, -0x7dfc(gp)        |         t9 = sym.imp.__syslog_chk;
    0x00003fd0 lw a3, 0x914(s0)          |         a3 = *((s0 + 581));
    0x00003fd4 addiu a0, zero, 3         |         a0 = 3;
    0x00003fd8 addiu a2, a2, -0x1fb8     |         a2 += -0x1fb8;
    0x00003fdc addiu a1, zero, 1         |         a1 = 1;
    0x00003fe0 jalr t9                   |         t9 ();
    0x00003fe4 lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         | label_48:
    0x00003fe8 lw t9, -0x7d60(gp)        |         t9 = sym.imp.exit;
    0x00003fec addiu a0, zero, 1         |         a0 = 1;
    0x00003ff0 jalr t9                   |         t9 ();
                                         | label_45:
    0x00003ff4 lw v0, -0x7ca0(gp)        |         v0 = *((gp - 7976));
    0x00003ff8 lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x00003ffc lw t9, -0x7e3c(gp)        |         t9 = sym.imp.__fprintf_chk;
    0x00004000 lw a0, (v0)               |         a0 = *(v0);
    0x00004004 lw v0, 0x40(sp)           |         v0 = *(arg_40h);
    0x00004008 addiu a2, a2, -0x2328     |         a2 += -0x2328;
    0x0000400c lw a3, (v0)               |         a3 = *(v0);
    0x00004010 b 0x3fb0                  |         
                                         |     } while (1);
                                         | label_90:
    0x00004020 lw v0, -0x7ca0(gp)        |     v0 = *((gp - 7976));
    0x00004024 lw t9, -0x7e3c(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00004028 addiu a3, s7, -0x2284     |     a3 = s7 + -0x2284;
    0x0000402c lw a0, (v0)               |     a0 = *(v0);
    0x00004030 sw s6, 0x10(sp)           |     *(arg_10h) = s6;
                                         |     do {
    0x00004034 lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x00004038 addiu a1, zero, 1         |         a1 = 1;
    0x0000403c addiu a2, a2, -0x226c     |         a2 += -0x226c;
    0x00004040 jalr t9                   |         t9 ();
    0x00004044 lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x00004048 lw t9, -0x7d60(gp)        |         t9 = sym.imp.exit;
    0x0000404c addiu a0, zero, 1         |         a0 = 1;
    0x00004050 jalr t9                   |         t9 ();
                                         | label_91:
    0x00004054 lw v1, -0x7ca0(gp)        |         v1 = *((gp - 7976));
    0x00004058 lw t9, -0x7e3c(gp)        |         t9 = sym.imp.__fprintf_chk;
    0x0000405c addiu a3, s0, -0x2278     |         a3 = s0 + -0x2278;
    0x00004060 lw a0, (v1)               |         a0 = *(v1);
    0x00004064 sw v0, 0x10(sp)           |         *(arg_10h) = v0;
    0x00004068 b 0x4034                  |         
                                         |     } while (1);
                                         | label_49:
    0x0000406c lw t9, -0x7d50(gp)        |     t9 = sym.imp.puts;
    0x00004070 addiu a0, a0, -0x22dc     |     a0 += -0x22dc;
                                         |     do {
    0x00004074 jalr t9                   |         t9 ();
    0x00004078 nop                       |         
    0x0000407c lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x00004080 lw t9, -0x7d60(gp)        |         t9 = sym.imp.exit;
    0x00004084 addiu a0, zero, 1         |         a0 = 1;
    0x00004088 jalr t9                   |         t9 ();
                                         | label_52:
    0x0000408c lw a3, -0x7fd4(gp)        |         a3 = *((gp - 8181));
    0x00004090 lw t9, -0x7e84(gp)        |         t9 = sym.imp.__assert_fail;
    0x00004094 addiu a3, a3, -0x1e04     |         a3 += -0x1e04;
    0x00004098 addiu a2, zero, 0x268     |         a2 = 0x268;
    0x0000409c b 0x3f80                  |         goto label_39;
                                         | label_86:
    0x000040a0 lw v0, 0x2c(sp)           |         v0 = *(arg_2ch);
    0x000040a4 lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x000040a8 lw t9, -0x7dfc(gp)        |         t9 = sym.imp.__syslog_chk;
    0x000040ac lw a3, 0x914(s0)          |         a3 = *((s0 + 581));
    0x000040b0 addiu a2, a2, -0x2074     |         a2 += -0x2074;
    0x000040b4 addiu a1, zero, 1         |         a1 = 1;
    0x000040b8 addiu a0, zero, 4         |         a0 = 4;
    0x000040bc sw v0, 0x10(sp)           |         *(arg_10h) = v0;
    0x000040c0 jalr t9                   |         t9 ();
    0x000040c4 lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x000040c8 lw t9, -0x7d78(gp)        |         t9 = sym.imp.closelog;
    0x000040cc jalr t9                   |         t9 ();
    0x000040d0 nop                       |         
    0x000040d4 lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x000040d8 lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
    0x000040dc lw t9, -0x7d50(gp)        |         t9 = sym.imp.puts;
    0x000040e0 addiu a0, a0, -0x2054     |         a0 += -0x2054;
    0x000040e4 jalr t9                   |         t9 ();
    0x000040e8 lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x000040ec lw v0, -0x7de8(gp)        |         v0 = *((gp - 8058));
    0x000040f0 lw t9, -0x7c98(gp)        |         t9 = sym.imp.fflush;
    0x000040f4 lw a0, (v0)               |         a0 = *(v0);
    0x000040f8 b 0x4074                  |         
                                         |     } while (1);
                                         |     while (a3 != ra);
                                         | }

[*] Function system used 3 times login.shadow