[*] Binary protection state of login.shadow

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


[*] Function printf 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 @ 0x42c4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000042c4 ()              | void fcn_000042c4 () {
    0x000042c4 lui gp, 2                 |     
    0x000042c8 addiu gp, gp, 0x405c      |     
    0x000042cc addu gp, gp, t9           |     gp += t9;
    0x000042d0 addiu sp, sp, -0x28       |     
    0x000042d4 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x000042d8 sw s1, 0x20(sp)           |     *(var_20h) = s1;
    0x000042dc sw s0, 0x1c(sp)           |     *(var_1ch) = s0;
    0x000042e0 lw s1, -0x7ca0(gp)        |     s1 = *((gp - 7976));
    0x000042e4 lw s0, -0x7fd8(gp)        |     s0 = *(gp);
    0x000042e8 lw t9, -0x7e3c(gp)        |     t9 = sym.imp.__fprintf_chk
    0x000042ec lw a0, (s1)               |     a0 = *(s1);
    0x000042f0 lw a3, (s0)               |     a3 = *(s0);
    0x000042f4 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x000042f8 sw ra, 0x24(sp)           |     *(var_24h) = ra;
    0x000042fc addiu a2, a2, -0x23cc     |     a2 += -0x23cc;
    0x00004300 addiu a1, zero, 1         |     a1 = 1;
    0x00004304 jalr t9                   |     t9 ();
    0x00004308 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x0000430c lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00004310 lbu v0, 0x7e8(v0)         |     v0 = *((v0 + 2024));
    0x00004314 lw t9, -0x7d60(gp)        |     t9 = sym.imp.exit;
                                         |     if (v0 != 0) {
    0x00004318 beqz v0, 0x4360           |         
    0x0000431c lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x00004320 lw t9, -0x7e3c(gp)        |         t9 = sym.imp.__fprintf_chk
    0x00004324 lw a3, (s0)               |         a3 = *(s0);
    0x00004328 lw a0, (s1)               |         a0 = *(s1);
    0x0000432c addiu a2, a2, -0x23b4     |         a2 += -0x23b4;
    0x00004330 addiu a1, zero, 1         |         a1 = 1;
    0x00004334 jalr t9                   |         t9 ();
    0x00004338 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x0000433c lw a0, (s1)               |         a0 = *(s1);
    0x00004340 lw a3, (s0)               |         a3 = *(s0);
    0x00004344 lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x00004348 lw t9, -0x7e3c(gp)        |         t9 = sym.imp.__fprintf_chk
    0x0000434c addiu a2, a2, -0x2390     |         a2 += -0x2390;
    0x00004350 addiu a1, zero, 1         |         a1 = 1;
    0x00004354 jalr t9                   |         t9 ();
    0x00004358 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x0000435c lw t9, -0x7d60(gp)        |         t9 = sym.imp.exit;
                                         |     }
    0x00004360 addiu a0, zero, 1         |     a0 = 1;
    0x00004364 jalr t9                   |     t9 ();
    0x00004368 nop                       |     
    0x0000436c nop                       |     
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/login.shadow @ 0xaa80 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0000aa80 ()                  | void fcn_0000aa80 () {
    0x0000aa80 lui gp, 2                     |     
    0x0000aa84 addiu gp, gp, -0x2760         |     
    0x0000aa88 addu gp, gp, t9               |     gp += t9;
    0x0000aa8c addiu sp, sp, -0x28           |     
    0x0000aa90 sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x0000aa94 lw s0, -0x7fdc(gp)            |     s0 = *((gp - 8183));
    0x0000aa98 sw s1, 0x20(sp)               |     *(var_20h) = s1;
    0x0000aa9c move s1, a0                   |     s1 = a0;
    0x0000aaa0 lw a0, 0xa4(s0)               |     a0 = *((s0 + 41));
    0x0000aaa4 sw gp, 0x10(sp)               |     *(var_10h_2) = gp;
    0x0000aaa8 sw ra, 0x24(sp)               |     *(var_24h) = ra;
                                             |     /* esilref: 'CHFN_RESTRICT' */
    0x0000aaac addiu s0, s0, 0xa4            |     s0 += 0xa4;
                                             |     if (a0 == 0) {
    0x0000aab0 beqz a0, 0xaaf8               |         goto label_0;
                                             |     }
    0x0000aab4 lw t9, -0x7c80(gp)            |     t9 = sym.imp.strcmp;
    0x0000aab8 b 0xaad0                      |     
                                             |     while (v0 != 0) {
    0x0000aabc addiu s0, s0, 8               |         s0 += 8;
    0x0000aac0 lw a0, (s0)                   |         a0 = *(s0);
                                             |         if (a0 == 0) {
    0x0000aac4 beql a0, zero, 0xaafc         |             goto label_1;
                                             |         }
    0x0000aac8 lw s0, -0x7fdc(gp)            |         s0 = *((gp - 8183));
    0x0000aacc lw t9, -0x7c80(gp)            |         t9 = sym.imp.strcmp;
    0x0000aad0 move a1, s1                   |         a1 = s1;
    0x0000aad4 jalr t9                       |         t9 ();
    0x0000aad8 lw gp, 0x10(sp)               |         gp = *(var_10h_2);
    0x0000aadc bnez v0, 0xaabc               |         
                                             |     }
    0x0000aae0 lw ra, 0x24(sp)               |     ra = *(var_24h);
    0x0000aae4 move v0, s0                   |     v0 = s0;
    0x0000aae8 lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x0000aaec lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x0000aaf0 addiu sp, sp, 0x28            |     
    0x0000aaf4 jr ra                         |     return v0;
                                             | label_0:
    0x0000aaf8 lw s0, -0x7fdc(gp)            |     s0 = *((gp - 8183));
                                             | label_1:
    0x0000aafc lw a0, 0x2c14(s0)             |     a0 = *((s0 + 2821));
    0x0000ab00 addiu s0, s0, 0x2c14          |     s0 += 0x2c14;
                                             |     if (a0 == 0) {
    0x0000ab04 beqz a0, 0xab50               |         goto label_2;
                                             |     }
    0x0000ab08 lw t9, -0x7c80(gp)            |     t9 = sym.imp.strcmp;
    0x0000ab0c b 0xab20                      |     
                                             |     while (v0 != 0) {
    0x0000ab10 lw a0, (s0)                   |         a0 = *(s0);
    0x0000ab14 lw v0, -0x7ca0(gp)            |         v0 = *((gp - 7976));
                                             |         if (a0 == 0) {
    0x0000ab18 beqz a0, 0xab54               |             goto label_3;
                                             |         }
    0x0000ab1c lw t9, -0x7c80(gp)            |         t9 = sym.imp.strcmp;
    0x0000ab20 move a1, s1                   |         a1 = s1;
    0x0000ab24 jalr t9                       |         t9 ();
    0x0000ab28 addiu s0, s0, 8               |         s0 += 8;
    0x0000ab2c lw gp, 0x10(sp)               |         gp = *(var_10h_2);
    0x0000ab30 bnez v0, 0xab10               |         
                                             |     }
    0x0000ab34 lw ra, 0x24(sp)               |     ra = *(var_24h);
    0x0000ab38 move s0, zero                 |     s0 = 0;
    0x0000ab3c move v0, s0                   |     v0 = s0;
    0x0000ab40 lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x0000ab44 lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x0000ab48 addiu sp, sp, 0x28            |     
    0x0000ab4c jr ra                         |     return v0;
                                             | label_2:
    0x0000ab50 lw v0, -0x7ca0(gp)            |     v0 = *((gp - 7976));
                                             | label_3:
    0x0000ab54 lw a2, -0x7fd4(gp)            |     a2 = *((gp - 8181));
    0x0000ab58 lw t9, -0x7e3c(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0000ab5c lw a0, (v0)                   |     a0 = *(v0);
    0x0000ab60 move a3, s1                   |     a3 = s1;
    0x0000ab64 addiu a2, a2, -0xf9c          |     a2 += -0xf9c;
    0x0000ab68 addiu a1, zero, 1             |     a1 = 1;
    0x0000ab6c jalr t9                       |     t9 ();
    0x0000ab70 lw gp, 0x10(sp)               |     gp = *(var_10h_2);
    0x0000ab74 move a3, s1                   |     a3 = s1;
    0x0000ab78 addiu a1, zero, 1             |     a1 = 1;
    0x0000ab7c lw a2, -0x7fd4(gp)            |     a2 = *((gp - 8181));
    0x0000ab80 lw t9, -0x7dfc(gp)            |     t9 = sym.imp.__syslog_chk;
    0x0000ab84 addiu a2, a2, -0xf5c          |     a2 += -0xf5c;
    0x0000ab88 addiu a0, zero, 2             |     a0 = 2;
    0x0000ab8c jalr t9                       |     t9 ();
    0x0000ab90 lw ra, 0x24(sp)               |     ra = *(var_24h);
    0x0000ab94 move s0, zero                 |     s0 = 0;
    0x0000ab98 move v0, s0                   |     v0 = s0;
    0x0000ab9c lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x0000aba0 lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x0000aba4 addiu sp, sp, 0x28            |     
    0x0000aba8 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/login.shadow @ 0xd0d8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0000d0d8 ()                  | void fcn_0000d0d8 () {
    0x0000d0d8 move s1, a1                   |     s1 = a1;
    0x0000d0dc move s0, v0                   |     s0 = v0;
    0x0000d0e0 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != 0) {
    0x0000d0e4 beqz v0, 0xd110               |         
    0x0000d0e8 lw t9, -0x7d88(gp)            |         t9 = sym.imp.strlen;
    0x0000d0ec move a0, v0                   |         a0 = v0;
    0x0000d0f0 jalr t9                       |         t9 ();
    0x0000d0f4 lb a0, (s1)                   |         a0 = *(s1);
    0x0000d0f8 addiu v1, zero, 0x24          |         v1 = 0x24;
    0x0000d0fc lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (a0 == v1) {
    0x0000d100 beq a0, v1, 0xd17c            |             goto label_1;
                                             |         }
    0x0000d104 addiu v1, zero, 0xd           |         v1 = 0xd;
                                             |         if (v0 == v1) {
    0x0000d108 beql v0, v1, 0xd128           |             goto label_2;
                                             |         }
    0x0000d10c lwl a1, 3(s0)                 |         __asm ("lwl a1, 3(s0)");
                                             |     }
    0x0000d110 lw ra, 0x24(sp)               |     ra = *(var_24h);
                                             |     do {
    0x0000d114 move v0, s0                   |         v0 = s0;
    0x0000d118 lw s1, 0x20(sp)               |         s1 = *(var_20h);
    0x0000d11c lw s0, 0x1c(sp)               |         s0 = *(var_1ch);
    0x0000d120 addiu sp, sp, 0x28            |         
    0x0000d124 jr ra                         |         return v0;
                                             | label_2:
    0x0000d128 lwl a0, 7(s0)                 |         __asm ("lwl a0, 7(s0)");
    0x0000d12c lwl v1, 0xb(s0)               |         __asm ("lwl v1, 0xb(s0)");
    0x0000d130 lw a2, -0x7fdc(gp)            |         a2 = *((gp - 8183));
    0x0000d134 lwr a1, (s0)                  |         __asm ("lwr a1, (s0)");
    0x0000d138 lwr v1, 8(s0)                 |         __asm ("lwr v1, 8(s0)");
    0x0000d13c lwr a0, 4(s0)                 |         __asm ("lwr a0, 4(s0)");
    0x0000d140 addiu v0, a2, 0x4f20          |         v0 = a2 + 0x4f20;
    0x0000d144 sw a1, 0x4f20(a2)             |         *((a2 + 5064)) = a1;
    0x0000d148 sw a0, 4(v0)                  |         *((v0 + 1)) = a0;
    0x0000d14c sw v1, 8(v0)                  |         *((v0 + 2)) = v1;
    0x0000d150 lbu v1, 0xc(s0)               |         v1 = *((s0 + 12));
    0x0000d154 sb v1, 0xc(v0)                |         *((v0 + 12)) = v1;
    0x0000d158 lbu v1, 0xd(s0)               |         v1 = *((s0 + 13));
    0x0000d15c move s0, v0                   |         s0 = v0;
    0x0000d160 sb v1, 0xd(v0)                |         *((v0 + 13)) = v1;
    0x0000d164 lw ra, 0x24(sp)               |         ra = *(var_24h);
    0x0000d168 move v0, s0                   |         v0 = s0;
    0x0000d16c lw s1, 0x20(sp)               |         s1 = *(var_20h);
    0x0000d170 lw s0, 0x1c(sp)               |         s0 = *(var_1ch);
    0x0000d174 addiu sp, sp, 0x28            |         
    0x0000d178 jr ra                         |         return v0;
                                             | label_1:
    0x0000d17c sltiu v0, v0, 0xe             |         v0 = (v0 < 0xe) ? 1 : 0;
    0x0000d180 lw ra, 0x24(sp)               |         ra = *(var_24h);
    0x0000d184 beqz v0, 0xd114               |         
                                             |     } while (v0 == 0);
    0x0000d188 lb v1, 1(s1)                  |     v1 = *((s1 + 1));
    0x0000d18c addiu v0, zero, 0x35          |     v0 = 0x35;
    0x0000d190 addiu v0, zero, 0x36          |     v0 = 0x36;
                                             |     if (v1 == v0) {
    0x0000d194 beq v1, v0, 0xd1e0            |         goto label_3;
                                             |     }
    0x0000d198 addiu v0, zero, 0x31          |     v0 = 0x31;
                                             |     if (v1 == v0) {
    0x0000d19c beq v1, v0, 0xd1f8            |         goto label_4;
                                             |     }
    0x0000d1a0 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             |     if (v1 == v0) {
    0x0000d1a4 beq v1, v0, 0xd1ec            |         goto label_5;
                                             |     }
                                             |     /* esilref: '$x$' */
    0x0000d1a8 addiu v0, v0, 0x310           |     v0 += 0x310;
    0x0000d1ac move a3, v0                   |     a3 = v0;
    0x0000d1b0 sb v1, 1(v0)                  |     *((v0 + 1)) = v1;
                                             |     do {
                                             | label_0:
    0x0000d1b4 lw v0, -0x7ca0(gp)            |         v0 = *((gp - 7976));
    0x0000d1b8 lw a2, -0x7fd4(gp)            |         a2 = *((gp - 8181));
    0x0000d1bc lw t9, -0x7e3c(gp)            |         t9 = sym.imp.__fprintf_chk
    0x0000d1c0 lw a0, (v0)                   |         a0 = *(v0);
    0x0000d1c4 addiu a2, a2, -0xbd4          |         a2 += -0xbd4;
    0x0000d1c8 addiu a1, zero, 1             |         a1 = 1;
    0x0000d1cc jalr t9                       |         t9 ();
    0x0000d1d0 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0000d1d4 lw t9, -0x7d60(gp)            |         t9 = sym.imp.exit;
    0x0000d1d8 addiu a0, zero, 1             |         a0 = 1;
    0x0000d1dc jalr t9                       |         t9 ();
                                             | label_3:
    0x0000d1e0 lw a3, -0x7fd4(gp)            |         a3 = *((gp - 8181));
    0x0000d1e4 addiu a3, a3, -0xbdc          |         a3 += -0xbdc;
    0x0000d1e8 b 0xd1b4                      |         
                                             |     } while (1);
                                             | label_5:
    0x0000d1ec lw a3, -0x7fd4(gp)            |     a3 = *((gp - 8181));
    0x0000d1f0 addiu a3, a3, -0xbe8          |     a3 += -0xbe8;
    0x0000d1f4 b 0xd1b4                      |     goto label_0;
                                             | label_4:
    0x0000d1f8 lw a3, -0x7fd4(gp)            |     a3 = *((gp - 8181));
    0x0000d1fc addiu a3, a3, -0xbe4          |     a3 += -0xbe4;
    0x0000d200 b 0xd1b4                      |     goto label_0;
                                             | }
    ; 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);
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/login.shadow @ 0xa790 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.add_groups ()                | void add_groups () {
    0x0000a790 lui gp, 2                     |     
    0x0000a794 addiu gp, gp, -0x2470         |     
    0x0000a798 addu gp, gp, t9               |     gp += t9;
    0x0000a79c addiu sp, sp, -0x448          |     
    0x0000a7a0 lw t9, -0x7d88(gp)            |     t9 = sym.imp.strlen;
    0x0000a7a4 sw s5, 0x434(sp)              |     *(var_434h) = s5;
    0x0000a7a8 lw s5, -0x7cb8(gp)            |     s5 = *((gp - 7982));
    0x0000a7ac sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0000a7b0 sw s0, 0x420(sp)              |     *(var_420h) = s0;
    0x0000a7b4 lw v0, (s5)                   |     v0 = *(s5);
    0x0000a7b8 sw ra, 0x444(sp)              |     *(var_444h) = ra;
    0x0000a7bc sw fp, 0x440(sp)              |     *(var_440h) = fp;
    0x0000a7c0 sw s7, 0x43c(sp)              |     *(var_43ch) = s7;
    0x0000a7c4 sw s6, 0x438(sp)              |     *(var_438h) = s6;
    0x0000a7c8 sw s4, 0x430(sp)              |     *(var_430h) = s4;
    0x0000a7cc sw s3, 0x42c(sp)              |     *(var_42ch) = s3;
    0x0000a7d0 sw s2, 0x428(sp)              |     *(var_428h) = s2;
    0x0000a7d4 sw s1, 0x424(sp)              |     *(var_424h) = s1;
    0x0000a7d8 sw v0, 0x41c(sp)              |     *(var_41ch) = v0;
    0x0000a7dc move s0, a0                   |     s0 = a0;
    0x0000a7e0 jalr t9                       |     t9 ();
    0x0000a7e4 sltiu v1, v0, 0x400           |     v1 = (v0 < 0x400) ? 1 : 0;
    0x0000a7e8 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v1 == 0) {
    0x0000a7ec beqz v1, 0xaa48               |         goto label_7;
                                             |     }
    0x0000a7f0 lw t9, -0x7d58(gp)            |     t9 = sym.imp.__memcpy_chk;
    0x0000a7f4 addiu s4, sp, 0x1c            |     s4 = sp + 0x1c;
    0x0000a7f8 addiu a3, zero, 0x400         |     a3 = 0x400;
    0x0000a7fc addiu a2, v0, 1               |     a2 = v0 + 1;
    0x0000a800 move a1, s0                   |     a1 = s0;
    0x0000a804 move a0, s4                   |     a0 = s4;
    0x0000a808 jalr t9                       |     t9 ();
    0x0000a80c addiu s1, zero, 0x10          |     s1 = 0x10;
    0x0000a810 addiu s2, zero, -1            |     s2 = -1;
    0x0000a814 addiu s3, zero, 0x16          |     s3 = 0x16;
    0x0000a818 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000a81c b 0xa840                      |     
                                             |     while (v0 != s2) {
    0x0000a820 sltu v0, v0, s1               |         v0 = (v0 < s1) ? 1 : 0;
                                             |         if (v0 != 0) {
    0x0000a824 bnez v0, 0xa8a4               |             goto label_8;
                                             |         }
    0x0000a828 nop                           |         
                                             | label_0:
    0x0000a82c lw t9, -0x7ca8(gp)            |         t9 = sym.imp.free;
    0x0000a830 move a0, s0                   |         a0 = s0;
    0x0000a834 jalr t9                       |         t9 ();
    0x0000a838 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0000a83c sll s1, s1, 1                 |         s1 <<= 1;
    0x0000a840 lw t9, -0x7d44(gp)            |         t9 = sym.imp.malloc;
    0x0000a844 sll a0, s1, 2                 |         a0 = s1 << 2;
    0x0000a848 jalr t9                       |         t9 ();
    0x0000a84c move s0, v0                   |         s0 = v0;
    0x0000a850 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 == 0) {
    0x0000a854 beqz v0, 0xa9fc               |             goto label_9;
                                             |         }
    0x0000a858 lw t9, -0x7e18(gp)            |         t9 = sym.imp.getgroups;
    0x0000a85c move a1, v0                   |         a1 = v0;
    0x0000a860 move a0, s1                   |         a0 = s1;
    0x0000a864 jalr t9                       |         t9 ();
    0x0000a868 move s7, v0                   |         s7 = v0;
    0x0000a86c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0000a870 bne v0, s2, 0xa820            |         
                                             |     }
    0x0000a874 lw t9, -0x7dc8(gp)            |     t9 = sym.imp.__errno_location;
    0x0000a878 jalr t9                       |     t9 ();
    0x0000a87c nop                           |     
    0x0000a880 lw v0, (v0)                   |     v0 = *(v0);
    0x0000a884 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 == s3) {
    0x0000a888 beq v0, s3, 0xa82c            |         goto label_0;
                                             |     }
                                             |     do {
                                             | label_1:
    0x0000a88c lw t9, -0x7ca8(gp)            |         t9 = sym.imp.free;
    0x0000a890 move a0, s0                   |         a0 = s0;
    0x0000a894 jalr t9                       |         t9 ();
    0x0000a898 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0000a89c addiu v0, zero, -1            |         v0 = -1;
    0x0000a8a0 b 0xa9a0                      |         goto label_4;
                                             | label_8:
    0x0000a8a4 lw t9, -0x7df4(gp)            |         t9 = sym.imp.strtok;
    0x0000a8a8 bltz s7, 0xa88c               |         
                                             |     } while (s7 < 0);
    0x0000a8ac lw s2, -0x7fd4(gp)            |     s2 = *((gp - 8181));
    0x0000a8b0 addiu a1, s2, -0xfd8          |     a1 = s2 + -0xfd8;
    0x0000a8b4 move a0, s4                   |     a0 = s4;
    0x0000a8b8 jalr t9                       |     t9 ();
    0x0000a8bc move s1, v0                   |     s1 = v0;
    0x0000a8c0 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000a8c4 move s3, zero                 |     s3 = 0;
                                             |     if (v0 == 0) {
    0x0000a8c8 beqz v0, 0xa99c               |         goto label_5;
                                             |     }
    0x0000a8cc lw s4, -0x7fd4(gp)            |     s4 = *((gp - 8181));
    0x0000a8d0 lw s6, -0x7ca0(gp)            |     s6 = *((gp - 7976));
    0x0000a8d4 addiu s4, s4, -0xfd4          |     s4 += -0xfd4;
    0x0000a8d8 addiu s2, s2, -0xfd8          |     s2 += -0xfd8;
                                             | label_2:
    0x0000a8dc lw t9, -0x7e74(gp)            |     t9 = sym.imp.getgrnam;
    0x0000a8e0 move a0, s1                   |     a0 = s1;
    0x0000a8e4 jalr t9                       |     t9 ();
    0x0000a8e8 move fp, v0                   |     fp = v0;
    0x0000a8ec lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 == 0) {
    0x0000a8f0 beqz v0, 0xa9dc               |         goto label_10;
                                             |     }
    0x0000a8f4 move s1, s7                   |     s1 = s7;
                                             |     if (s7 == 0) {
    0x0000a8f8 beqz s7, 0xa92c               |         goto label_11;
                                             |     }
    0x0000a8fc lw a1, 8(v0)                  |     a1 = *((v0 + 2));
    0x0000a900 lw v0, (s0)                   |     v0 = *(s0);
    0x0000a904 addiu v1, s0, 4               |     v1 = s0 + 4;
                                             |     if (a1 == v0) {
    0x0000a908 beq a1, v0, 0xa978            |         goto label_3;
                                             |     }
    0x0000a90c move v0, zero                 |     v0 = 0;
    0x0000a910 b 0xa920                      |     
                                             |     while (v0 != s7) {
    0x0000a914 lw a0, -4(v1)                 |         a0 = *((v1 - 1));
    0x0000a918 lw t9, -0x7df4(gp)            |         t9 = sym.imp.strtok;
                                             |         if (a0 == a1) {
    0x0000a91c beq a0, a1, 0xa97c            |             goto label_12;
                                             |         }
    0x0000a920 addiu v0, v0, 1               |         v0++;
    0x0000a924 addiu v1, v1, 4               |         v1 += 4;
    0x0000a928 bne v0, s7, 0xa914            |         
                                             |     }
                                             | label_11:
    0x0000a92c lw t9, -0x7cf4(gp)            |     t9 = sym.imp.sysconf;
    0x0000a930 addiu a0, zero, 3             |     a0 = 3;
    0x0000a934 jalr t9                       |     t9 ();
    0x0000a938 slt v0, s7, v0                |     v0 = (s7 < v0) ? 1 : 0;
    0x0000a93c lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 == 0) {
    0x0000a940 beqz v0, 0xaa18               |         goto label_13;
                                             |     }
    0x0000a944 lw t9, -0x7d40(gp)            |     t9 = sym.imp.realloc;
    0x0000a948 addiu s7, s7, 1               |     s7++;
    0x0000a94c sll a1, s7, 2                 |     a1 = s7 << 2;
    0x0000a950 move a0, s0                   |     a0 = s0;
    0x0000a954 jalr t9                       |     t9 ();
    0x0000a958 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 == 0) {
    0x0000a95c beqz v0, 0xa88c               |         goto label_1;
                                             |     }
    0x0000a960 sll s1, s1, 2                 |     s1 <<= 2;
    0x0000a964 lw v1, 8(fp)                  |     v1 = *(arg_8h);
    0x0000a968 addu s1, v0, s1               |     s1 = v0 + s1;
    0x0000a96c move s0, v0                   |     s0 = v0;
    0x0000a970 sw v1, (s1)                   |     *(s1) = v1;
    0x0000a974 addiu s3, zero, 1             |     s3 = 1;
                                             | label_3:
    0x0000a978 lw t9, -0x7df4(gp)            |     t9 = sym.imp.strtok;
                                             | label_12:
    0x0000a97c move a1, s2                   |     a1 = s2;
    0x0000a980 move a0, zero                 |     a0 = 0;
    0x0000a984 jalr t9                       |     t9 ();
    0x0000a988 move s1, v0                   |     s1 = v0;
    0x0000a98c lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != 0) {
    0x0000a990 bnez v0, 0xa8dc               |         goto label_2;
                                             |     }
    0x0000a994 lw t9, -0x7d10(gp)            |     t9 = sym.imp.setgroups;
                                             |     if (s3 != 0) {
    0x0000a998 bnez s3, 0xaa04               |         goto label_6;
                                             |     }
                                             | label_5:
    0x0000a99c move v0, zero                 |     v0 = 0;
                                             |     do {
                                             | label_4:
    0x0000a9a0 lw a0, 0x41c(sp)              |         a0 = *(var_41ch);
    0x0000a9a4 lw v1, (s5)                   |         v1 = *(s5);
    0x0000a9a8 lw ra, 0x444(sp)              |         ra = *(var_444h);
                                             |         if (a0 != v1) {
    0x0000a9ac bne a0, v1, 0xaa68            |             goto label_14;
                                             |         }
    0x0000a9b0 lw fp, 0x440(sp)              |         fp = *(var_440h);
    0x0000a9b4 lw s7, 0x43c(sp)              |         s7 = *(var_43ch);
    0x0000a9b8 lw s6, 0x438(sp)              |         s6 = *(var_438h);
    0x0000a9bc lw s5, 0x434(sp)              |         s5 = *(var_434h);
    0x0000a9c0 lw s4, 0x430(sp)              |         s4 = *(var_430h);
    0x0000a9c4 lw s3, 0x42c(sp)              |         s3 = *(var_42ch);
    0x0000a9c8 lw s2, 0x428(sp)              |         s2 = *(var_428h);
    0x0000a9cc lw s1, 0x424(sp)              |         s1 = *(var_424h);
    0x0000a9d0 lw s0, 0x420(sp)              |         s0 = *(var_420h);
    0x0000a9d4 addiu sp, sp, 0x448           |         
    0x0000a9d8 jr ra                         |         return v0;
                                             | label_10:
    0x0000a9dc lw t9, -0x7e3c(gp)            |         t9 = sym.imp.__fprintf_chk
    0x0000a9e0 lw a0, (s6)                   |         a0 = *(s6);
    0x0000a9e4 move a3, s1                   |         a3 = s1;
    0x0000a9e8 move a2, s4                   |         a2 = s4;
    0x0000a9ec addiu a1, zero, 1             |         a1 = 1;
    0x0000a9f0 jalr t9                       |         t9 ();
    0x0000a9f4 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0000a9f8 b 0xa978                      |         goto label_3;
                                             | label_9:
    0x0000a9fc addiu v0, zero, -1            |         v0 = -1;
    0x0000aa00 b 0xa9a0                      |         
                                             |     } while (1);
                                             | label_6:
    0x0000aa04 move a1, s0                   |     a1 = s0;
    0x0000aa08 move a0, s7                   |     a0 = s7;
    0x0000aa0c jalr t9                       |     t9 ();
    0x0000aa10 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000aa14 b 0xa9a0                      |     goto label_4;
                                             | label_13:
    0x0000aa18 lw v0, -0x7ca0(gp)            |     v0 = *((gp - 7976));
    0x0000aa1c lw a0, -0x7fd4(gp)            |     a0 = *((gp - 8181));
    0x0000aa20 lw t9, -0x7d1c(gp)            |     t9 = sym.imp.fwrite;
    0x0000aa24 lw a3, (v0)                   |     a3 = *(v0);
    0x0000aa28 addiu a2, zero, 0x19          |     a2 = 0x19;
    0x0000aa2c addiu a1, zero, 1             |     a1 = 1;
    0x0000aa30 addiu a0, a0, -0xfb8          |     a0 += -0xfb8;
    0x0000aa34 jalr t9                       |     t9 ();
    0x0000aa38 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (s3 == 0) {
    0x0000aa3c beqz s3, 0xa99c               |         goto label_5;
                                             |     }
    0x0000aa40 lw t9, -0x7d10(gp)            |     t9 = sym.imp.setgroups;
    0x0000aa44 b 0xaa04                      |     goto label_6;
                                             | label_7:
    0x0000aa48 lw t9, -0x7dc8(gp)            |     t9 = sym.imp.__errno_location;
    0x0000aa4c jalr t9                       |     t9 ();
    0x0000aa50 nop                           |     
    0x0000aa54 addiu v1, zero, 0x16          |     v1 = 0x16;
    0x0000aa58 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0000aa5c sw v1, (v0)                   |     *(v0) = v1;
    0x0000aa60 addiu v0, zero, -1            |     v0 = -1;
    0x0000aa64 b 0xa9a0                      |     goto label_4;
                                             | label_14:
    0x0000aa68 lw t9, -0x7cec(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000aa6c jalr t9                       |     t9 ();
    0x0000aa70 nop                           |     
    0x0000aa74 nop                           |     
    0x0000aa78 nop                           |     
    0x0000aa7c nop                           |     
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/login.shadow @ 0x5190 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.chown_tty ()             | void chown_tty () {
    0x00005190 lui gp, 2                 |     
    0x00005194 addiu gp, gp, 0x3190      |     
    0x00005198 addu gp, gp, t9           |     gp += t9;
    0x0000519c addiu sp, sp, -0x30       |     
    0x000051a0 lw t9, -0x7f84(gp)        |     t9 = sym.getdef_str;
    0x000051a4 sw s0, 0x20(sp)           |     *(var_20h) = s0;
    0x000051a8 move s0, a0               |     s0 = a0;
    0x000051ac lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x000051b0 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x000051b4 sw ra, 0x2c(sp)           |     *(var_2ch) = ra;
    0x000051b8 sw s2, 0x28(sp)           |     *(var_28h) = s2;
    0x000051bc sw s1, 0x24(sp)           |     *(var_24h) = s1;
    0x000051c0 addiu a0, a0, -0x1bd8     |     a0 += -0x1bd8;
    0x000051c4 bal 0xaf88                |     sym_getdef_str ();
    0x000051c8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000051cc lw t9, -0x7f08(gp)        |     t9 = sym.getgr_nam_gid;
    0x000051d0 move a0, v0               |     a0 = v0;
    0x000051d4 bal 0x6330                |     sym_getgr_nam_gid ();
    0x000051d8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x000051dc beqz v0, 0x52d0           |         goto label_0;
                                         |     }
    0x000051e0 lw a2, 8(v0)              |     a2 = *((v0 + 2));
                                         |     do {
    0x000051e4 lw t9, -0x7d8c(gp)        |         t9 = sym.imp.fchown;
    0x000051e8 lw a1, 8(s0)              |         a1 = *((s0 + 2));
    0x000051ec move a0, zero             |         a0 = 0;
    0x000051f0 jalr t9                   |         t9 ();
    0x000051f4 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x000051f8 bnez v0, 0x522c           |             
    0x000051fc lw a0, -0x7fd4(gp)        |             a0 = *((gp - 8181));
    0x00005200 lw t9, -0x7fac(gp)        |             t9 = sym.getdef_num;
    0x00005204 addiu a1, zero, 0x180     |             a1 = aav.0x00000180;
    0x00005208 addiu a0, a0, -0x1b5c     |             a0 += -0x1b5c;
    0x0000520c bal 0xb0a8                |             sym_getdef_num ();
    0x00005210 lw gp, 0x18(sp)           |             gp = *(var_18h);
    0x00005214 move a1, v0               |             a1 = v0;
    0x00005218 lw t9, -0x7e90(gp)        |             t9 = sym.imp.fchmod;
    0x0000521c move a0, zero             |             a0 = 0;
    0x00005220 jalr t9                   |             t9 ();
    0x00005224 lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |             if (v0 == 0) {
    0x00005228 beqz v0, 0x52b8           |                 goto label_1;
                                         |             }
                                         |         }
    0x0000522c lw t9, -0x7dc8(gp)        |         t9 = sym.imp.__errno_location;
    0x00005230 jalr t9                   |         t9 ();
    0x00005234 nop                       |         
    0x00005238 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0000523c lw s1, (v0)               |         s1 = *(v0);
    0x00005240 lw v0, -0x7ca0(gp)        |         v0 = *((gp - 7976));
    0x00005244 lw t9, -0x7d54(gp)        |         t9 = sym.imp.strerror;
    0x00005248 move a0, s1               |         a0 = s1;
    0x0000524c lw s2, (v0)               |         s2 = *(v0);
    0x00005250 jalr t9                   |         t9 ();
    0x00005254 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00005258 move a3, v0               |         a3 = v0;
    0x0000525c addiu a1, zero, 1         |         a1 = 1;
    0x00005260 lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x00005264 lw t9, -0x7e3c(gp)        |         t9 = sym.imp.__fprintf_chk
    0x00005268 addiu a2, a2, -0x1bcc     |         a2 += -0x1bcc;
    0x0000526c move a0, s2               |         a0 = s2;
    0x00005270 jalr t9                   |         t9 ();
    0x00005274 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00005278 move a0, s1               |         a0 = s1;
    0x0000527c lw t9, -0x7d54(gp)        |         t9 = sym.imp.strerror;
    0x00005280 lw s0, (s0)               |         s0 = *(s0);
    0x00005284 jalr t9                   |         t9 ();
    0x00005288 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0000528c sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00005290 move a3, s0               |         a3 = s0;
    0x00005294 lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x00005298 lw t9, -0x7dfc(gp)        |         t9 = sym.imp.__syslog_chk;
    0x0000529c addiu a2, a2, -0x1b9c     |         a2 += -0x1b9c;
    0x000052a0 addiu a1, zero, 1         |         a1 = 1;
    0x000052a4 addiu a0, zero, 4         |         a0 = 4;
    0x000052a8 jalr t9                   |         t9 ();
    0x000052ac addiu v0, zero, 0x1e      |         v0 = 0x1e;
    0x000052b0 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (s1 != v0) {
    0x000052b4 bne s1, v0, 0x52d8        |             goto label_2;
                                         |         }
                                         | label_1:
    0x000052b8 lw ra, 0x2c(sp)           |         ra = *(var_2ch);
    0x000052bc lw s2, 0x28(sp)           |         s2 = *(var_28h);
    0x000052c0 lw s1, 0x24(sp)           |         s1 = *(var_24h);
    0x000052c4 lw s0, 0x20(sp)           |         s0 = *(var_20h);
    0x000052c8 addiu sp, sp, 0x30        |         
    0x000052cc jr ra                     |         return v0;
                                         | label_0:
    0x000052d0 lw a2, 0xc(s0)            |         a2 = *((s0 + 3));
    0x000052d4 b 0x51e4                  |         
                                         |     } while (1);
                                         | label_2:
    0x000052d8 lw t9, -0x7d78(gp)        |     t9 = sym.imp.closelog;
    0x000052dc jalr t9                   |     t9 ();
    0x000052e0 nop                       |     
    0x000052e4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000052e8 lw t9, -0x7d60(gp)        |     t9 = sym.imp.exit;
    0x000052ec addiu a0, zero, 1         |     a0 = 1;
    0x000052f0 jalr t9                   |     t9 ();
    0x000052f4 nop                       |     
    0x000052f8 nop                       |     
    0x000052fc nop                       |     
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/login.shadow @ 0xb2c4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.getdef_long ()               | void getdef_long () {
    0x0000b2c4 lui gp, 2                     |     
    0x0000b2c8 addiu gp, gp, -0x2fa4         |     
    0x0000b2cc addu gp, gp, t9               |     gp += t9;
    0x0000b2d0 addiu sp, sp, -0x40           |     
    0x0000b2d4 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000b2d8 sw s1, 0x30(sp)               |     *(var_30h_2) = s1;
    0x0000b2dc lw s1, -0x7cb8(gp)            |     s1 = *((gp - 7982));
    0x0000b2e0 lbu v0, 0x2c10(v0)            |     v0 = *((v0 + 11280));
    0x0000b2e4 sw gp, 0x18(sp)               |     *(var_18h_2) = gp;
    0x0000b2e8 lw v1, (s1)                   |     v1 = *(s1);
    0x0000b2ec sw s3, 0x38(sp)               |     *(var_38h_2) = s3;
    0x0000b2f0 sw s0, 0x2c(sp)               |     *(var_2ch_2) = s0;
    0x0000b2f4 sw ra, 0x3c(sp)               |     *(var_3ch_2) = ra;
    0x0000b2f8 sw s2, 0x34(sp)               |     *(var_34h_2) = s2;
    0x0000b2fc move s3, a0                   |     s3 = a0;
    0x0000b300 move s0, a1                   |     s0 = a1;
    0x0000b304 sw v1, 0x24(sp)               |     *(var_24h_2) = v1;
    0x0000b308 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
                                             |     if (v0 == 0) {
    0x0000b30c beqz v0, 0xb37c               |         goto label_4;
                                             |     }
                                             | label_0:
    0x0000b310 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000b314 addiu t9, t9, -0x5580         |     t9 += -0x5580;
    0x0000b318 move a0, s3                   |     a0 = s3;
    0x0000b31c bal 0xaa80                    |     fcn_0000aa80 ();
    0x0000b320 move s2, v0                   |     s2 = v0;
    0x0000b324 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x0000b328 beqz v0, 0xb374               |         goto label_5;
                                             |     }
    0x0000b32c lw a0, 4(v0)                  |     a0 = *((v0 + 1));
    0x0000b330 lw t9, -0x7ef4(gp)            |     t9 = sym.getlong;
                                             |     if (a0 == 0) {
    0x0000b334 beqz a0, 0xb374               |         goto label_5;
                                             |     }
    0x0000b338 addiu a1, sp, 0x20            |     a1 = sp + 0x20;
    0x0000b33c bal 0xb500                    |     sym_getlong ();
    0x0000b340 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x0000b344 beqz v0, 0xb390               |         goto label_6;
                                             |     }
    0x0000b348 lw v0, 0x20(sp)               |     v0 = *(var_20h_2);
                                             |     do {
                                             | label_1:
    0x0000b34c lw a0, 0x24(sp)               |         a0 = *(var_24h_2);
    0x0000b350 lw v1, (s1)                   |         v1 = *(s1);
    0x0000b354 lw ra, 0x3c(sp)               |         ra = *(var_3ch_2);
                                             |         if (a0 != v1) {
    0x0000b358 bne a0, v1, 0xb3c4            |             goto label_7;
                                             |         }
    0x0000b35c lw s3, 0x38(sp)               |         s3 = *(var_38h_2);
    0x0000b360 lw s2, 0x34(sp)               |         s2 = *(var_34h_2);
    0x0000b364 lw s1, 0x30(sp)               |         s1 = *(var_30h_2);
    0x0000b368 lw s0, 0x2c(sp)               |         s0 = *(var_2ch_2);
    0x0000b36c addiu sp, sp, 0x40            |         
    0x0000b370 jr ra                         |         return v0;
                                             | label_5:
    0x0000b374 move v0, s0                   |         v0 = s0;
    0x0000b378 b 0xb34c                      |         
                                             |     } while (1);
                                             | label_4:
    0x0000b37c addiu t9, t9, -0x5358         |     t9 += -0x5358;
    0x0000b380 bal 0xaca8                    |     fcn_0000aca8 ();
    0x0000b384 nop                           |     
    0x0000b388 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0000b38c b 0xb310                      |     goto label_0;
                                             | label_6:
    0x0000b390 lw v1, -0x7ca0(gp)            |     v1 = *((gp - 7976));
    0x0000b394 lw a2, -0x7fd4(gp)            |     a2 = *((gp - 8181));
    0x0000b398 lw v0, 4(s2)                  |     v0 = *((s2 + 1));
    0x0000b39c lw t9, -0x7e3c(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0000b3a0 lw a0, (v1)                   |     a0 = *(v1);
    0x0000b3a4 move a3, s3                   |     a3 = s3;
    0x0000b3a8 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x0000b3ac addiu a2, a2, -0xe84          |     a2 += -0xe84;
    0x0000b3b0 addiu a1, zero, 1             |     a1 = 1;
    0x0000b3b4 jalr t9                       |     t9 ();
    0x0000b3b8 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0000b3bc move v0, s0                   |     v0 = s0;
    0x0000b3c0 b 0xb34c                      |     goto label_1;
                                             | label_7:
    0x0000b3c4 lw t9, -0x7cec(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000b3c8 jalr t9                       |     t9 ();
    0x0000b3cc nop                           |     
    0x0000b3d0 lui gp, 2                     |     
    0x0000b3d4 addiu gp, gp, -0x30b0         |     
    0x0000b3d8 addu gp, gp, t9               |     gp += t9;
    0x0000b3dc addiu sp, sp, -0x40           |     
    0x0000b3e0 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000b3e4 sw s1, 0x30(sp)               |     *(var_30h_3) = s1;
    0x0000b3e8 lw s1, -0x7cb8(gp)            |     s1 = *((gp - 7982));
    0x0000b3ec lbu v0, 0x2c10(v0)            |     v0 = *((v0 + 11280));
    0x0000b3f0 sw gp, 0x18(sp)               |     *(var_18h_3) = gp;
    0x0000b3f4 lw v1, (s1)                   |     v1 = *(s1);
    0x0000b3f8 sw s3, 0x38(sp)               |     *(var_38h_3) = s3;
    0x0000b3fc sw s0, 0x2c(sp)               |     *(var_2ch_3) = s0;
    0x0000b400 sw ra, 0x3c(sp)               |     *(var_3ch_3) = ra;
    0x0000b404 sw s2, 0x34(sp)               |     *(var_34h_3) = s2;
    0x0000b408 move s3, a0                   |     s3 = a0;
    0x0000b40c move s0, a1                   |     s0 = a1;
    0x0000b410 sw v1, 0x24(sp)               |     *(var_24h_3) = v1;
    0x0000b414 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
                                             |     if (v0 == 0) {
    0x0000b418 beqz v0, 0xb488               |         goto label_8;
                                             |     }
                                             | label_2:
    0x0000b41c lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000b420 addiu t9, t9, -0x5580         |     t9 += -0x5580;
    0x0000b424 move a0, s3                   |     a0 = s3;
    0x0000b428 bal 0xaa80                    |     fcn_0000aa80 ();
    0x0000b42c move s2, v0                   |     s2 = v0;
    0x0000b430 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
                                             |     if (v0 == 0) {
    0x0000b434 beqz v0, 0xb480               |         goto label_9;
                                             |     }
    0x0000b438 lw a0, 4(v0)                  |     a0 = *((v0 + 1));
    0x0000b43c lw t9, -0x7ef0(gp)            |     t9 = sym.getulong;
                                             |     if (a0 == 0) {
    0x0000b440 beqz a0, 0xb480               |         goto label_9;
                                             |     }
    0x0000b444 addiu a1, sp, 0x20            |     a1 = sp + 0x20;
    0x0000b448 bal 0xb5d0                    |     sym_getulong ();
    0x0000b44c lw gp, 0x18(sp)               |     gp = *(var_18h_3);
                                             |     if (v0 == 0) {
    0x0000b450 beqz v0, 0xb49c               |         goto label_10;
                                             |     }
    0x0000b454 lw v0, 0x20(sp)               |     v0 = *(var_20h);
                                             |     do {
                                             | label_3:
    0x0000b458 lw a0, 0x24(sp)               |         a0 = *(var_24h_3);
    0x0000b45c lw v1, (s1)                   |         v1 = *(s1);
    0x0000b460 lw ra, 0x3c(sp)               |         ra = *(var_3ch_3);
                                             |         if (a0 != v1) {
    0x0000b464 bne a0, v1, 0xb4d0            |             goto label_11;
                                             |         }
    0x0000b468 lw s3, 0x38(sp)               |         s3 = *(var_38h_3);
    0x0000b46c lw s2, 0x34(sp)               |         s2 = *(var_34h_3);
    0x0000b470 lw s1, 0x30(sp)               |         s1 = *(var_30h_3);
    0x0000b474 lw s0, 0x2c(sp)               |         s0 = *(var_2ch_3);
    0x0000b478 addiu sp, sp, 0x40            |         
    0x0000b47c jr ra                         |         return v0;
                                             | label_9:
    0x0000b480 move v0, s0                   |         v0 = s0;
    0x0000b484 b 0xb458                      |         
                                             |     } while (1);
                                             | label_8:
    0x0000b488 addiu t9, t9, -0x5358         |     t9 += -0x5358;
    0x0000b48c bal 0xaca8                    |     fcn_0000aca8 ();
    0x0000b490 nop                           |     
    0x0000b494 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x0000b498 b 0xb41c                      |     goto label_2;
                                             | label_10:
    0x0000b49c lw v1, -0x7ca0(gp)            |     v1 = *((gp - 7976));
    0x0000b4a0 lw a2, -0x7fd4(gp)            |     a2 = *((gp - 8181));
    0x0000b4a4 lw v0, 4(s2)                  |     v0 = *((s2 + 1));
    0x0000b4a8 lw t9, -0x7e3c(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0000b4ac lw a0, (v1)                   |     a0 = *(v1);
    0x0000b4b0 move a3, s3                   |     a3 = s3;
    0x0000b4b4 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0000b4b8 addiu a2, a2, -0xe84          |     a2 += -0xe84;
    0x0000b4bc addiu a1, zero, 1             |     a1 = 1;
    0x0000b4c0 jalr t9                       |     t9 ();
    0x0000b4c4 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x0000b4c8 move v0, s0                   |     v0 = s0;
    0x0000b4cc b 0xb458                      |     goto label_3;
                                             | label_11:
    0x0000b4d0 lw t9, -0x7cec(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000b4d4 jalr t9                       |     t9 ();
    0x0000b4d8 nop                           |     
    0x0000b4dc lui gp, 2                     |     
    0x0000b4e0 addiu gp, gp, -0x31bc         |     
    0x0000b4e4 addu gp, gp, t9               |     gp += t9;
    0x0000b4e8 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000b4ec sw a0, 0xa0(v0)               |     *((v0 + 40)) = a0;
    0x0000b4f0 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/login.shadow @ 0xb0a8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.getdef_num ()                | void getdef_num () {
    0x0000b0a8 lui gp, 2                     |     
    0x0000b0ac addiu gp, gp, -0x2d88         |     
    0x0000b0b0 addu gp, gp, t9               |     gp += t9;
    0x0000b0b4 addiu sp, sp, -0x40           |     
    0x0000b0b8 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000b0bc sw s1, 0x30(sp)               |     *(var_30h) = s1;
    0x0000b0c0 lw s1, -0x7cb8(gp)            |     s1 = *((gp - 7982));
    0x0000b0c4 lbu v0, 0x2c10(v0)            |     v0 = *((v0 + 11280));
    0x0000b0c8 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0000b0cc lw v1, (s1)                   |     v1 = *(s1);
    0x0000b0d0 sw s3, 0x38(sp)               |     *(var_38h) = s3;
    0x0000b0d4 sw s0, 0x2c(sp)               |     *(var_2ch) = s0;
    0x0000b0d8 sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x0000b0dc sw s2, 0x34(sp)               |     *(var_34h) = s2;
    0x0000b0e0 move s3, a0                   |     s3 = a0;
    0x0000b0e4 move s0, a1                   |     s0 = a1;
    0x0000b0e8 sw v1, 0x24(sp)               |     *(var_24h) = v1;
    0x0000b0ec lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
                                             |     if (v0 == 0) {
    0x0000b0f0 beqz v0, 0xb160               |         goto label_2;
                                             |     }
                                             | label_0:
    0x0000b0f4 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000b0f8 addiu t9, t9, -0x5580         |     t9 += -0x5580;
    0x0000b0fc move a0, s3                   |     a0 = s3;
    0x0000b100 bal 0xaa80                    |     fcn_0000aa80 ();
    0x0000b104 move s2, v0                   |     s2 = v0;
    0x0000b108 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x0000b10c beqz v0, 0xb158               |         goto label_3;
                                             |     }
    0x0000b110 lw a0, 4(v0)                  |     a0 = *((v0 + 1));
    0x0000b114 lw t9, -0x7ef4(gp)            |     t9 = sym.getlong;
                                             |     if (a0 == 0) {
    0x0000b118 beqz a0, 0xb158               |         goto label_3;
                                             |     }
    0x0000b11c addiu a1, sp, 0x20            |     a1 = sp + 0x20;
    0x0000b120 bal 0xb500                    |     sym_getlong ();
    0x0000b124 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x0000b128 beqz v0, 0xb174               |         goto label_4;
                                             |     }
    0x0000b12c lw v0, 0x20(sp)               |     v0 = *(var_20h);
                                             |     do {
                                             | label_1:
    0x0000b130 lw a0, 0x24(sp)               |         a0 = *(var_24h);
    0x0000b134 lw v1, (s1)                   |         v1 = *(s1);
    0x0000b138 lw ra, 0x3c(sp)               |         ra = *(var_3ch);
                                             |         if (a0 != v1) {
    0x0000b13c bne a0, v1, 0xb1a8            |             goto label_5;
                                             |         }
    0x0000b140 lw s3, 0x38(sp)               |         s3 = *(var_38h);
    0x0000b144 lw s2, 0x34(sp)               |         s2 = *(var_34h);
    0x0000b148 lw s1, 0x30(sp)               |         s1 = *(var_30h);
    0x0000b14c lw s0, 0x2c(sp)               |         s0 = *(var_2ch);
    0x0000b150 addiu sp, sp, 0x40            |         
    0x0000b154 jr ra                         |         return v0;
                                             | label_3:
    0x0000b158 move v0, s0                   |         v0 = s0;
    0x0000b15c b 0xb130                      |         
                                             |     } while (1);
                                             | label_2:
    0x0000b160 addiu t9, t9, -0x5358         |     t9 += -0x5358;
    0x0000b164 bal 0xaca8                    |     fcn_0000aca8 ();
    0x0000b168 nop                           |     
    0x0000b16c lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0000b170 b 0xb0f4                      |     goto label_0;
                                             | label_4:
    0x0000b174 lw v1, -0x7ca0(gp)            |     v1 = *((gp - 7976));
    0x0000b178 lw a2, -0x7fd4(gp)            |     a2 = *((gp - 8181));
    0x0000b17c lw v0, 4(s2)                  |     v0 = *((s2 + 1));
    0x0000b180 lw t9, -0x7e3c(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0000b184 lw a0, (v1)                   |     a0 = *(v1);
    0x0000b188 move a3, s3                   |     a3 = s3;
    0x0000b18c sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0000b190 addiu a2, a2, -0xe84          |     a2 += -0xe84;
    0x0000b194 addiu a1, zero, 1             |     a1 = 1;
    0x0000b198 jalr t9                       |     t9 ();
    0x0000b19c lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0000b1a0 move v0, s0                   |     v0 = s0;
    0x0000b1a4 b 0xb130                      |     goto label_1;
                                             | label_5:
    0x0000b1a8 lw t9, -0x7cec(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000b1ac jalr t9                       |     t9 ();
    0x0000b1b0 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/login.shadow @ 0xb1b4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.getdef_unum ()               | void getdef_unum () {
    0x0000b1b4 lui gp, 2                     |     
    0x0000b1b8 addiu gp, gp, -0x2e94         |     
    0x0000b1bc addu gp, gp, t9               |     gp += t9;
    0x0000b1c0 addiu sp, sp, -0x40           |     
    0x0000b1c4 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000b1c8 sw s1, 0x30(sp)               |     *(var_30h) = s1;
    0x0000b1cc lw s1, -0x7cb8(gp)            |     s1 = *((gp - 7982));
    0x0000b1d0 lbu v0, 0x2c10(v0)            |     v0 = *((v0 + 11280));
    0x0000b1d4 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0000b1d8 lw v1, (s1)                   |     v1 = *(s1);
    0x0000b1dc sw s3, 0x38(sp)               |     *(var_38h) = s3;
    0x0000b1e0 sw s2, 0x34(sp)               |     *(var_34h) = s2;
    0x0000b1e4 sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x0000b1e8 sw s0, 0x2c(sp)               |     *(var_2ch) = s0;
    0x0000b1ec move s3, a0                   |     s3 = a0;
    0x0000b1f0 move s2, a1                   |     s2 = a1;
    0x0000b1f4 sw v1, 0x24(sp)               |     *(var_24h) = v1;
    0x0000b1f8 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
                                             |     if (v0 == 0) {
    0x0000b1fc beqz v0, 0xb2a4               |         goto label_1;
                                             |     }
                                             | label_0:
    0x0000b200 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000b204 addiu t9, t9, -0x5580         |     t9 += -0x5580;
    0x0000b208 move a0, s3                   |     a0 = s3;
    0x0000b20c bal 0xaa80                    |     fcn_0000aa80 ();
    0x0000b210 move s0, v0                   |     s0 = v0;
    0x0000b214 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x0000b218 beqz v0, 0xb248               |         goto label_2;
                                             |     }
    0x0000b21c lw a0, 4(v0)                  |     a0 = *((v0 + 1));
    0x0000b220 lw t9, -0x7ef4(gp)            |     t9 = sym.getlong;
                                             |     if (a0 == 0) {
    0x0000b224 beqz a0, 0xb248               |         goto label_2;
                                             |     }
    0x0000b228 addiu a1, sp, 0x20            |     a1 = sp + 0x20;
    0x0000b22c bal 0xb500                    |     sym_getlong ();
    0x0000b230 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x0000b234 beqz v0, 0xb274               |         goto label_3;
                                             |     }
    0x0000b238 lw v0, 0x20(sp)               |     v0 = *(var_20h_3);
    0x0000b23c lw v1, -0x7ca0(gp)            |     v1 = *((gp - 7976));
                                             |     if (v0 < 0) {
    0x0000b240 bltz v0, 0xb278               |         goto label_4;
                                             |     }
    0x0000b244 move s2, v0                   |     s2 = v0;
                                             |     do {
                                             | label_2:
    0x0000b248 lw a0, 0x24(sp)               |         a0 = *(var_24h);
    0x0000b24c lw v1, (s1)                   |         v1 = *(s1);
    0x0000b250 move v0, s2                   |         v0 = s2;
                                             |         if (a0 != v1) {
    0x0000b254 bne a0, v1, 0xb2b8            |             goto label_5;
                                             |         }
    0x0000b258 lw ra, 0x3c(sp)               |         ra = *(var_3ch);
    0x0000b25c lw s3, 0x38(sp)               |         s3 = *(var_38h);
    0x0000b260 lw s2, 0x34(sp)               |         s2 = *(var_34h);
    0x0000b264 lw s1, 0x30(sp)               |         s1 = *(var_30h);
    0x0000b268 lw s0, 0x2c(sp)               |         s0 = *(var_2ch);
    0x0000b26c addiu sp, sp, 0x40            |         
    0x0000b270 jr ra                         |         return v0;
                                             | label_3:
    0x0000b274 lw v1, -0x7ca0(gp)            |         v1 = *((gp - 7976));
                                             | label_4:
    0x0000b278 lw a2, -0x7fd4(gp)            |         a2 = *((gp - 8181));
    0x0000b27c lw v0, 4(s0)                  |         v0 = *((s0 + 1));
    0x0000b280 lw t9, -0x7e3c(gp)            |         t9 = sym.imp.__fprintf_chk
    0x0000b284 lw a0, (v1)                   |         a0 = *(v1);
    0x0000b288 move a3, s3                   |         a3 = s3;
    0x0000b28c sw v0, 0x10(sp)               |         *(var_10h_3) = v0;
    0x0000b290 addiu a2, a2, -0xe84          |         a2 += -0xe84;
    0x0000b294 addiu a1, zero, 1             |         a1 = 1;
    0x0000b298 jalr t9                       |         t9 ();
    0x0000b29c lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0000b2a0 b 0xb248                      |         
                                             |     } while (1);
                                             | label_1:
    0x0000b2a4 addiu t9, t9, -0x5358         |     t9 += -0x5358;
    0x0000b2a8 bal 0xaca8                    |     fcn_0000aca8 ();
    0x0000b2ac nop                           |     
    0x0000b2b0 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0000b2b4 b 0xb200                      |     goto label_0;
                                             | label_5:
    0x0000b2b8 lw t9, -0x7cec(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000b2bc jalr t9                       |     t9 ();
    0x0000b2c0 nop                           |     
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/login.shadow @ 0x8c40 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.setup_env ()             | void setup_env () {
                                         | label_6:
    0x00008980 lui gp, 2                 |     
    0x00008984 addiu gp, gp, -0x660      |     
    0x00008988 addu gp, gp, t9           |     gp += t9;
    0x0000898c addiu sp, sp, -0x440      |     
    0x00008990 lw a1, -0x7fd4(gp)        |     a1 = *((gp - 8181));
    0x00008994 sw s4, 0x434(sp)          |     *(var_24h) = s4;
    0x00008998 lw s4, -0x7cb8(gp)        |     s4 = *((gp - 7982));
    0x0000899c lw t9, -0x7e30(gp)        |     t9 = sym.imp.fopen64;
    0x000089a0 sw gp, 0x10(sp)           |     *(var_10h_3) = gp;
    0x000089a4 lw v0, (s4)               |     v0 = *(s4);
    0x000089a8 sw ra, 0x43c(sp)          |     *(var_2ch) = ra;
    0x000089ac sw s5, 0x438(sp)          |     *(var_28h) = s5;
    0x000089b0 sw s3, 0x430(sp)          |     *(var_430h_2) = s3;
    0x000089b4 sw s2, 0x42c(sp)          |     *(var_42ch_2) = s2;
    0x000089b8 sw s1, 0x428(sp)          |     *(var_18h) = s1;
    0x000089bc sw s0, 0x424(sp)          |     *(var_424h_2) = s0;
    0x000089c0 addiu a1, a1, -0x2030     |     a1 += -0x2030;
    0x000089c4 sw v0, 0x41c(sp)          |     *(var_41ch) = v0;
    0x000089c8 jalr t9                   |     t9 ();
    0x000089cc nop                       |     
    0x000089d0 lw gp, 0x10(sp)           |     gp = *(var_10h_3);
                                         |     if (v0 == 0) {
    0x000089d4 beqz v0, 0x8af8           |         goto label_13;
                                         |     }
    0x000089d8 move s2, v0               |     s2 = v0;
    0x000089dc addiu s5, sp, 0x1c        |     s5 = sp + 0x1c;
    0x000089e0 addiu s3, zero, 0x23      |     s3 = 0x23;
    0x000089e4 addiu s1, zero, 0x3d      |     s1 = 0x3d;
                                         |     do {
                                         | label_3:
    0x000089e8 lw t9, -0x7cc0(gp)        |         t9 = sym.imp.fgets;
                                         | label_0:
    0x000089ec move a2, s2               |         a2 = s2;
                                         | label_2:
    0x000089f0 addiu a1, zero, 0x400     |         a1 = 0x400;
    0x000089f4 move a0, s5               |         a0 = s5;
    0x000089f8 jalr t9                   |         t9 ();
    0x000089fc lw gp, 0x10(sp)           |         gp = *(var_10h_3);
                                         |         if (s5 != v0) {
    0x00008a00 bne s5, v0, 0x8ae8        |             goto label_14;
                                         |         }
                                         | label_5:
    0x00008a04 lw t9, -0x7e14(gp)        |         t9 = sym.imp.strrchr;
    0x00008a08 addiu a1, zero, 0xa       |         a1 = 0xa;
    0x00008a0c move a0, s5               |         a0 = s5;
    0x00008a10 jalr t9                   |         t9 ();
    0x00008a14 lw gp, 0x10(sp)           |         gp = *(var_10h_3);
                                         |         if (v0 == 0) {
    0x00008a18 beqz v0, 0x8ae8           |             goto label_14;
                                         |         }
    0x00008a1c sb zero, (v0)             |         *(v0) = 0;
    0x00008a20 lb s0, 0x1c(sp)           |         s0 = *(var_1ch);
    0x00008a24 lw t9, -0x7e88(gp)        |         t9 = sym.imp.__ctype_b_loc;
    0x00008a28 beqz s0, 0x89e8           |         
                                         |     } while (s0 == 0);
    0x00008a2c jalr t9                   |     t9 ();
    0x00008a30 nop                       |     
    0x00008a34 lw a2, (v0)               |     a2 = *(v0);
    0x00008a38 lw gp, 0x10(sp)           |     gp = *(var_10h_3);
    0x00008a3c move a0, s5               |     a0 = s5;
    0x00008a40 b 0x8a50                  |     goto label_15;
                                         | label_1:
    0x00008a44 lb s0, (a0)               |     s0 = *(a0);
    0x00008a48 lw t9, -0x7cc0(gp)        |     t9 = sym.imp.fgets;
                                         |     if (s0 == 0) {
    0x00008a4c beqz s0, 0x89ec           |         goto label_0;
                                         |     }
                                         | label_15:
    0x00008a50 sll v0, s0, 1             |     v0 = s0 << 1;
    0x00008a54 addu v0, a2, v0           |     v0 = a2 + v0;
    0x00008a58 lhu v0, (v0)              |     v0 = *(v0);
    0x00008a5c andi v0, v0, 0x2000       |     v0 &= 0x2000;
    0x00008a60 addiu a0, a0, 1           |     a0++;
                                         |     if (v0 == 0) {
    0x00008a64 bnel v0, zero, 0x8a44     |         goto label_1;
                                         |     }
    0x00008a68 lw t9, -0x7cc0(gp)        |     t9 = sym.imp.fgets;
                                         |     if (s0 == s3) {
    0x00008a6c beq s0, s3, 0x89ec        |         goto label_0;
                                         |     }
    0x00008a70 lb v0, (a0)               |     v0 = *(a0);
    0x00008a74 move a3, a0               |     a3 = a0;
                                         |     if (v0 != 0) {
    0x00008a78 bnez v0, 0x8a98           |         goto label_16;
                                         |     }
    0x00008a7c move a2, s2               |     a2 = s2;
    0x00008a80 b 0x89f0                  |     goto label_2;
                                         | label_4:
    0x00008a84 addiu a1, a3, 1           |     a1 = a3 + 1;
                                         |     if (v0 == s1) {
    0x00008a88 beq v0, s1, 0x8abc        |         goto label_17;
                                         |     }
    0x00008a8c lb v0, 1(a3)              |     v0 = *((a3 + 1));
    0x00008a90 move a3, a1               |     a3 = a1;
                                         |     if (v0 == 0) {
    0x00008a94 beqz v0, 0x89e8           |         goto label_3;
                                         |     }
                                         | label_16:
    0x00008a98 sll v1, v0, 1             |     v1 = v0 << 1;
    0x00008a9c addu v1, a2, v1           |     v1 = a2 + v1;
    0x00008aa0 lhu v1, (v1)              |     v1 = *(v1);
    0x00008aa4 andi v1, v1, 0x2000       |     v1 &= 0x2000;
                                         |     if (v1 == 0) {
    0x00008aa8 beqz v1, 0x8a84           |         goto label_4;
                                         |     }
    0x00008aac nop                       |     
    0x00008ab0 lw t9, -0x7cc0(gp)        |     t9 = sym.imp.fgets;
                                         |     if (v0 != s1) {
    0x00008ab4 bne v0, s1, 0x89ec        |         goto label_0;
                                         |     }
    0x00008ab8 addiu a1, a3, 1           |     a1 = a3 + 1;
                                         | label_17:
    0x00008abc lw t9, -0x7fa0(gp)        |     t9 = sym.addenv;
    0x00008ac0 sb zero, (a3)             |     *(a3) = 0;
    0x00008ac4 bal 0x5500                |     sym_addenv ();
    0x00008ac8 lw gp, 0x10(sp)           |     gp = *(var_10h_3);
    0x00008acc move a2, s2               |     a2 = s2;
    0x00008ad0 addiu a1, zero, 0x400     |     a1 = 0x400;
    0x00008ad4 lw t9, -0x7cc0(gp)        |     t9 = sym.imp.fgets;
    0x00008ad8 move a0, s5               |     a0 = s5;
    0x00008adc jalr t9                   |     t9 ();
    0x00008ae0 lw gp, 0x10(sp)           |     gp = *(var_10h_3);
                                         |     if (s5 == v0) {
    0x00008ae4 beq s5, v0, 0x8a04        |         goto label_5;
                                         |     }
                                         | label_14:
    0x00008ae8 lw t9, -0x7e2c(gp)        |     t9 = sym.imp.fclose;
    0x00008aec move a0, s2               |     a0 = s2;
    0x00008af0 jalr t9                   |     t9 ();
    0x00008af4 lw gp, 0x10(sp)           |     gp = *(var_10h_3);
                                         | label_13:
    0x00008af8 lw v1, 0x41c(sp)          |     v1 = *(var_41ch);
    0x00008afc lw v0, (s4)               |     v0 = *(s4);
    0x00008b00 lw ra, 0x43c(sp)          |     ra = *(var_2ch);
                                         |     if (v1 == v0) {
    0x00008b04 bne v1, v0, 0x8b28        |         
    0x00008b08 lw s5, 0x438(sp)          |         s5 = *(var_28h);
    0x00008b0c lw s4, 0x434(sp)          |         s4 = *(var_24h);
    0x00008b10 lw s3, 0x430(sp)          |         s3 = *(var_430h_2);
    0x00008b14 lw s2, 0x42c(sp)          |         s2 = *(var_42ch_2);
    0x00008b18 lw s1, 0x428(sp)          |         s1 = *(var_18h);
    0x00008b1c lw s0, 0x424(sp)          |         s0 = *(var_424h_2);
    0x00008b20 addiu sp, sp, 0x440       |         
    0x00008b24 jr ra                     |         return v0;
                                         |     }
    0x00008b28 lw t9, -0x7cec(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00008b2c jalr t9                   |     t9 ();
    0x00008b30 nop                       |     
                                         | label_8:
    0x00008b34 lui gp, 2                 |     
    0x00008b38 addiu gp, gp, -0x814      |     
    0x00008b3c addu gp, gp, t9           |     gp += t9;
    0x00008b40 addiu sp, sp, -0x40       |     
    0x00008b44 lw t9, -0x7d88(gp)        |     t9 = sym.imp.strlen;
    0x00008b48 sw ra, 0x3c(sp)           |     *(var_3ch) = ra;
    0x00008b4c sw gp, 0x20(sp)           |     *(var_18h_2) = gp;
    0x00008b50 sw s4, 0x38(sp)           |     *(var_38h) = s4;
    0x00008b54 sw s3, 0x34(sp)           |     *(var_34h) = s3;
    0x00008b58 sw s2, 0x30(sp)           |     *(var_30h) = s2;
    0x00008b5c sw s1, 0x2c(sp)           |     *(var_24h_3) = s1;
    0x00008b60 sw s0, 0x28(sp)           |     *(var_28h_2) = s0;
    0x00008b64 move s3, a1               |     s3 = a1;
    0x00008b68 move s4, a0               |     s4 = a0;
    0x00008b6c jalr t9                   |     t9 ();
    0x00008b70 lw gp, 0x20(sp)           |     gp = *(var_18h_2);
    0x00008b74 move a0, s3               |     a0 = s3;
    0x00008b78 lw t9, -0x7d88(gp)        |     t9 = sym.imp.strlen;
    0x00008b7c move s0, v0               |     s0 = v0;
    0x00008b80 jalr t9                   |     t9 ();
    0x00008b84 lw gp, 0x20(sp)           |     gp = *(var_18h_2);
    0x00008b88 addu s0, s0, v0           |     s0 += v0;
    0x00008b8c addiu s2, s0, 2           |     s2 = s0 + 2;
    0x00008b90 lw t9, -0x7fb4(gp)        |     t9 = sym.xmalloc;
    0x00008b94 move a0, s2               |     a0 = s2;
    0x00008b98 bal 0xa690                |     sym_xmalloc ();
    0x00008b9c lw gp, 0x20(sp)           |     gp = *(var_18h_2);
    0x00008ba0 move s1, v0               |     s1 = v0;
    0x00008ba4 sw s3, 0x18(sp)           |     *(var_10h_2) = s3;
    0x00008ba8 lw v0, -0x7fd4(gp)        |     v0 = *((gp - 8181));
    0x00008bac lw t9, -0x7c7c(gp)        |     t9 = sym.imp.__snprintf_chk
    0x00008bb0 addiu v0, v0, -0x18bc     |     v0 += -0x18bc;
    0x00008bb4 sw s4, 0x14(sp)           |     *(var_14h_2) = s4;
    0x00008bb8 sw v0, 0x10(sp)           |     *(var_10h_4) = v0;
    0x00008bbc addiu a3, zero, -1        |     a3 = -1;
    0x00008bc0 addiu a2, zero, 1         |     a2 = 1;
    0x00008bc4 move a1, s2               |     a1 = s2;
    0x00008bc8 move a0, s1               |     a0 = s1;
    0x00008bcc jalr t9                   |     t9 ();
    0x00008bd0 addiu s0, s0, 1           |     s0++;
    0x00008bd4 lw gp, 0x20(sp)           |     gp = *(var_18h_2);
                                         |     if (v0 == s0) {
    0x00008bd8 bne v0, s0, 0x8c1c        |         
    0x00008bdc lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
    0x00008be0 lw t9, -0x7fa0(gp)        |         t9 = sym.addenv;
    0x00008be4 addiu a0, a0, -0x1494     |         a0 += -0x1494;
    0x00008be8 move a1, s1               |         a1 = s1;
    0x00008bec bal 0x5500                |         sym_addenv ();
    0x00008bf0 lw gp, 0x20(sp)           |         gp = *(var_18h_2);
    0x00008bf4 lw ra, 0x3c(sp)           |         ra = *(var_3ch);
    0x00008bf8 lw s4, 0x38(sp)           |         s4 = *(var_38h);
    0x00008bfc lw s3, 0x34(sp)           |         s3 = *(var_34h);
    0x00008c00 lw s2, 0x30(sp)           |         s2 = *(var_30h);
    0x00008c04 lw s0, 0x28(sp)           |         s0 = *(var_28h_2);
    0x00008c08 move a0, s1               |         a0 = s1;
    0x00008c0c lw t9, -0x7ca8(gp)        |         t9 = sym.imp.free;
    0x00008c10 lw s1, 0x2c(sp)           |         s1 = *(var_24h_3);
    0x00008c14 addiu sp, sp, 0x40        |         
    0x00008c18 jr t9                     |         t9 ();
                                         |     }
    0x00008c1c lw a3, -0x7fd4(gp)        |     a3 = *((gp - 8181));
    0x00008c20 lw a1, -0x7fd4(gp)        |     a1 = *((gp - 8181));
    0x00008c24 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00008c28 lw t9, -0x7e84(gp)        |     t9 = sym.imp.__assert_fail;
    0x00008c2c addiu a3, a3, -0x11e0     |     a3 += -0x11e0;
    0x00008c30 addiu a2, zero, 0x3d      |     a2 = 0x3d;
    0x00008c34 addiu a1, a1, -0x131c     |     a1 += -0x131c;
    0x00008c38 addiu a0, a0, -0x14c0     |     a0 += -0x14c0;
    0x00008c3c jalr t9                   |     t9 ();
    0x00008c40 lui gp, 2                 |     
    0x00008c44 addiu gp, gp, -0x920      |     
    0x00008c48 addu gp, gp, t9           |     gp += t9;
    0x00008c4c addiu sp, sp, -0x30       |     
    0x00008c50 lw t9, -0x7cd8(gp)        |     t9 = sym.imp.chdir;
    0x00008c54 sw s0, 0x24(sp)           |     *(var_24h) = s0;
    0x00008c58 move s0, a0               |     s0 = a0;
    0x00008c5c lw a0, 0x14(a0)           |     a0 = *((a0 + 5));
    0x00008c60 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00008c64 sw s1, 0x28(sp)           |     *(var_28h) = s1;
    0x00008c68 sw ra, 0x2c(sp)           |     *(var_2ch) = ra;
    0x00008c6c jalr t9                   |     t9 ();
    0x00008c70 nop                       |     
    0x00008c74 move s1, v0               |     s1 = v0;
    0x00008c78 addiu v0, zero, -1        |     v0 = -1;
    0x00008c7c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (s1 == v0) {
    0x00008c80 beq s1, v0, 0x8e74        |         goto label_18;
                                         |     }
    0x00008c84 lw a1, 0x14(s0)           |     a1 = *((s0 + 5));
                                         | label_10:
    0x00008c88 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00008c8c lw t9, -0x7fa0(gp)        |     t9 = sym.addenv;
    0x00008c90 addiu a0, a0, -0x12a0     |     a0 += -0x12a0;
    0x00008c94 bal 0x5500                |     sym_addenv ();
    0x00008c98 lw a1, 0x18(s0)           |     a1 = *((s0 + 6));
    0x00008c9c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (a1 != 0) {
    0x00008ca0 beqz a1, 0x8cb0           |         
    0x00008ca4 lb v0, (a1)               |         v0 = *(a1);
    0x00008ca8 lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
                                         |         if (v0 == 0) {
    0x00008cac bnel v0, zero, 0x8ce0     |             goto label_19;
                                         |         }
                                         |     }
    0x00008cb0 lw t9, -0x7ca8(gp)        |     t9 = sym.imp.free;
    0x00008cb4 move a0, a1               |     a0 = a1;
    0x00008cb8 jalr t9                   |     t9 ();
    0x00008cbc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008cc0 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00008cc4 lw t9, -0x7fc0(gp)        |     t9 = sym.xstrdup;
                                         |     /* str._bin_sh */
    0x00008cc8 addiu a0, a0, 0x90        |     a0 += 0x90;
    0x00008ccc bal 0xa734                |     sym_xstrdup ();
    0x00008cd0 move a1, v0               |     a1 = v0;
    0x00008cd4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008cd8 sw v0, 0x18(s0)           |     *((s0 + 6)) = v0;
    0x00008cdc lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
                                         | label_19:
    0x00008ce0 lw t9, -0x7fa0(gp)        |     t9 = sym.addenv;
    0x00008ce4 addiu a0, a0, -0x1234     |     a0 += -0x1234;
    0x00008ce8 bal 0x5500                |     sym_addenv ();
    0x00008cec lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008cf0 lw a1, (s0)               |     a1 = *(s0);
    0x00008cf4 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00008cf8 lw t9, -0x7fa0(gp)        |     t9 = sym.addenv;
    0x00008cfc addiu a0, a0, -0x122c     |     a0 += -0x122c;
    0x00008d00 bal 0x5500                |     sym_addenv ();
    0x00008d04 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008d08 lw a1, (s0)               |     a1 = *(s0);
    0x00008d0c lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00008d10 lw t9, -0x7fa0(gp)        |     t9 = sym.addenv;
    0x00008d14 addiu a0, a0, -0x1224     |     a0 += -0x1224;
    0x00008d18 bal 0x5500                |     sym_addenv ();
    0x00008d1c lw v0, 8(s0)              |     v0 = *((s0 + 2));
    0x00008d20 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00008d24 beqz v0, 0x8dc0           |         goto label_20;
                                         |     }
    0x00008d28 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00008d2c lw t9, -0x7f84(gp)        |     t9 = sym.getdef_str;
    0x00008d30 addiu a0, a0, -0x12ec     |     a0 += -0x12ec;
    0x00008d34 bal 0xaf88                |     sym_getdef_str ();
    0x00008d38 move s1, v0               |     s1 = v0;
    0x00008d3c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00008d40 beqz v0, 0x8ddc           |         goto label_21;
                                         |     }
                                         |     do {
    0x00008d44 lw t9, -0x7d80(gp)        |         t9 = sym.imp.strchr;
    0x00008d48 addiu a1, zero, 0x3d      |         a1 = 0x3d;
    0x00008d4c move a0, v0               |         a0 = v0;
    0x00008d50 jalr t9                   |         t9 ();
    0x00008d54 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008d58 lw t9, -0x7fa0(gp)        |         t9 = sym.addenv;
                                         |         if (v0 == 0) {
    0x00008d5c beqz v0, 0x8ee8           |             goto label_22;
                                         |         }
    0x00008d60 move a1, zero             |         a1 = 0;
    0x00008d64 move a0, s1               |         a0 = s1;
    0x00008d68 bal 0x5500                |         sym_addenv ();
    0x00008d6c lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         | label_11:
    0x00008d70 lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
    0x00008d74 lw t9, -0x7f90(gp)        |         t9 = sym.getdef_bool;
    0x00008d78 addiu a0, a0, -0x1500     |         a0 += -0x1500;
    0x00008d7c bal 0xb008                |         sym_getdef_bool ();
    0x00008d80 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 != 0) {
    0x00008d84 bnez v0, 0x8e18           |             goto label_23;
                                         |         }
                                         | label_7:
    0x00008d88 lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
    0x00008d8c lw t9, -0x7f84(gp)        |         t9 = sym.getdef_str;
    0x00008d90 addiu a0, a0, -0x11fc     |         a0 += -0x11fc;
    0x00008d94 bal 0xaf88                |         sym_getdef_str ();
    0x00008d98 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00008d9c beqz v0, 0x8e60           |             goto label_24;
                                         |         }
                                         | label_9:
    0x00008da0 lw t9, -0x7fd4(gp)        |         t9 = *((gp - 8181));
    0x00008da4 lw ra, 0x2c(sp)           |         ra = *(var_2ch);
    0x00008da8 lw s1, 0x28(sp)           |         s1 = *(var_28h);
    0x00008dac lw s0, 0x24(sp)           |         s0 = *(var_24h);
    0x00008db0 move a0, v0               |         a0 = v0;
    0x00008db4 addiu t9, t9, -0x7680     |         t9 += -0x7680;
    0x00008db8 addiu sp, sp, 0x30        |         
    0x00008dbc b 0x8980                  |         goto label_6;
                                         | label_20:
    0x00008dc0 lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
    0x00008dc4 lw t9, -0x7f84(gp)        |         t9 = sym.getdef_str;
    0x00008dc8 addiu a0, a0, -0x12f8     |         a0 += -0x12f8;
    0x00008dcc bal 0xaf88                |         sym_getdef_str ();
    0x00008dd0 move s1, v0               |         s1 = v0;
    0x00008dd4 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008dd8 bnez v0, 0x8d44           |         
                                         |     } while (v0 != 0);
                                         | label_21:
    0x00008ddc lw v0, 8(s0)              |     v0 = *((s0 + 2));
                                         |     if (v0 == 0) {
    0x00008de0 beql v0, zero, 0x8f00     |         goto label_25;
                                         |     }
    0x00008de4 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00008de8 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00008dec addiu a0, a0, -0x12bc     |     a0 += -0x12bc;
                                         | label_12:
    0x00008df0 lw t9, -0x7fa0(gp)        |     t9 = sym.addenv;
    0x00008df4 move a1, zero             |     a1 = 0;
    0x00008df8 bal 0x5500                |     sym_addenv ();
    0x00008dfc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008e00 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00008e04 lw t9, -0x7f90(gp)        |     t9 = sym.getdef_bool;
    0x00008e08 addiu a0, a0, -0x1500     |     a0 += -0x1500;
    0x00008e0c bal 0xb008                |     sym_getdef_bool ();
    0x00008e10 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00008e14 beqz v0, 0x8d88           |         goto label_7;
                                         |     }
                                         | label_23:
    0x00008e18 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00008e1c lw t9, -0x7f84(gp)        |     t9 = sym.getdef_str;
    0x00008e20 addiu a0, a0, -0x121c     |     a0 += -0x121c;
    0x00008e24 bal 0xaf88                |     sym_getdef_str ();
    0x00008e28 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00008e2c beqz v0, 0x8f08           |         goto label_26;
                                         |     }
    0x00008e30 lw t9, -0x7fd4(gp)        |     t9 = *((gp - 8181));
    0x00008e34 lw a1, (s0)               |     a1 = *(s0);
    0x00008e38 addiu t9, t9, -0x74cc     |     t9 += -0x74cc;
    0x00008e3c move a0, v0               |     a0 = v0;
    0x00008e40 bal 0x8b34                |     fcn_8b34 ();
                                         |     goto label_8;
    0x00008e44 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008e48 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00008e4c lw t9, -0x7f84(gp)        |     t9 = sym.getdef_str;
    0x00008e50 addiu a0, a0, -0x11fc     |     a0 += -0x11fc;
    0x00008e54 bal 0xaf88                |     sym_getdef_str ();
    0x00008e58 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00008e5c bnez v0, 0x8da0           |         goto label_9;
                                         |     }
                                         | label_24:
    0x00008e60 lw ra, 0x2c(sp)           |     ra = *(var_2ch);
    0x00008e64 lw s1, 0x28(sp)           |     s1 = *(var_28h);
    0x00008e68 lw s0, 0x24(sp)           |     s0 = *(var_24h);
    0x00008e6c addiu sp, sp, 0x30        |     
    0x00008e70 jr ra                     |     return v0;
                                         | label_18:
    0x00008e74 lw a0, -0x7fd4(gp)        |     a0 = *((gp - 8181));
    0x00008e78 lw t9, -0x7f90(gp)        |     t9 = sym.getdef_bool;
    0x00008e7c addiu a0, a0, -0x12a8     |     a0 += -0x12a8;
    0x00008e80 bal 0xb008                |     sym_getdef_bool ();
    0x00008e84 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00008e88 beqz v0, 0x8f58           |         
    0x00008e8c lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
    0x00008e90 lw t9, -0x7cd8(gp)        |         t9 = sym.imp.chdir;
    0x00008e94 addiu a0, a0, -0x1b50     |         a0 += -0x1b50;
    0x00008e98 jalr t9                   |         t9 ();
    0x00008e9c lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == s1) {
    0x00008ea0 beq v0, s1, 0x8f58        |             goto label_27;
                                         |         }
    0x00008ea4 lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
    0x00008ea8 lw t9, -0x7d50(gp)        |         t9 = sym.imp.puts;
    0x00008eac addiu a0, a0, -0x125c     |         a0 += -0x125c;
    0x00008eb0 jalr t9                   |         t9 ();
    0x00008eb4 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008eb8 lw t9, -0x7ca8(gp)        |         t9 = sym.imp.free;
    0x00008ebc lw a0, 0x14(s0)           |         a0 = *((s0 + 5));
    0x00008ec0 jalr t9                   |         t9 ();
    0x00008ec4 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008ec8 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x00008ecc lw t9, -0x7fc0(gp)        |         t9 = sym.xstrdup;
    0x00008ed0 addiu a0, a0, 0x98        |         a0 += 0x98;
    0x00008ed4 bal 0xa734                |         sym_xstrdup ();
    0x00008ed8 move a1, v0               |         a1 = v0;
    0x00008edc lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008ee0 sw v0, 0x14(s0)           |         *((s0 + 5)) = v0;
    0x00008ee4 b 0x8c88                  |         goto label_10;
                                         | label_22:
    0x00008ee8 lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
    0x00008eec move a1, s1               |         a1 = s1;
    0x00008ef0 addiu a0, a0, -0x12e8     |         a0 += -0x12e8;
    0x00008ef4 bal 0x5500                |         sym_addenv ();
    0x00008ef8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008efc b 0x8d70                  |         goto label_11;
                                         | label_25:
    0x00008f00 addiu a0, a0, -0x12e0     |         a0 += -0x12e0;
    0x00008f04 b 0x8df0                  |         goto label_12;
                                         | label_26:
    0x00008f08 lw a0, -0x7fd4(gp)        |         a0 = *((gp - 8181));
    0x00008f0c lw t9, -0x7f84(gp)        |         t9 = sym.getdef_str;
    0x00008f10 addiu a0, a0, -0x1210     |         a0 += -0x1210;
    0x00008f14 bal 0xaf88                |         sym_getdef_str ();
    0x00008f18 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008f1c lw a0, 0x14(s0)           |         a0 = *((s0 + 5));
                                         |         if (v0 != 0) {
    0x00008f20 beqz v0, 0x8f3c           |             
    0x00008f24 lw t9, -0x7fd4(gp)        |             t9 = *((gp - 8181));
    0x00008f28 addiu t9, t9, -0x74cc     |             t9 += -0x74cc;
    0x00008f2c move a1, v0               |             a1 = v0;
    0x00008f30 bal 0x8b34                |             fcn_8b34 ();
                                         |             goto label_8;
    0x00008f34 lw gp, 0x18(sp)           |             gp = *(var_18h);
    0x00008f38 b 0x8d88                  |             goto label_7;
                                         |         }
    0x00008f3c lw a1, -0x7fd4(gp)        |         a1 = *((gp - 8181));
    0x00008f40 lw t9, -0x7fd4(gp)        |         t9 = *((gp - 8181));
    0x00008f44 addiu t9, t9, -0x74cc     |         t9 += -0x74cc;
    0x00008f48 addiu a1, a1, -0x1204     |         a1 += -0x1204;
    0x00008f4c bal 0x8b34                |         fcn_8b34 ();
                                         |         goto label_8;
    0x00008f50 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008f54 b 0x8d88                  |         goto label_7;
                                         |     }
                                         | label_27:
    0x00008f58 lw v0, -0x7ca0(gp)        |     v0 = *((gp - 7976));
    0x00008f5c lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00008f60 lw t9, -0x7e3c(gp)        |     t9 = sym.imp.__fprintf_chk
    0x00008f64 lw a3, 0x14(s0)           |     a3 = *((s0 + 5));
    0x00008f68 lw a0, (v0)               |     a0 = *(v0);
    0x00008f6c addiu a2, a2, -0x1298     |     a2 += -0x1298;
    0x00008f70 addiu a1, zero, 1         |     a1 = 1;
    0x00008f74 jalr t9                   |     t9 ();
    0x00008f78 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008f7c lw v0, (s0)               |     v0 = *(s0);
    0x00008f80 lw a3, 0x14(s0)           |     a3 = *((s0 + 5));
    0x00008f84 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00008f88 lw t9, -0x7dfc(gp)        |     t9 = sym.imp.__syslog_chk;
    0x00008f8c addiu a0, zero, 4         |     a0 = 4;
    0x00008f90 addiu a2, a2, -0x1280     |     a2 += -0x1280;
    0x00008f94 addiu a1, zero, 1         |     a1 = 1;
    0x00008f98 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00008f9c jalr t9                   |     t9 ();
    0x00008fa0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008fa4 lw t9, -0x7d78(gp)        |     t9 = sym.imp.closelog;
    0x00008fa8 jalr t9                   |     t9 ();
    0x00008fac nop                       |     
    0x00008fb0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008fb4 lw t9, -0x7d60(gp)        |     t9 = sym.imp.exit;
    0x00008fb8 addiu a0, zero, 1         |     a0 = 1;
    0x00008fbc jalr t9                   |     return t9 ();
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/login.shadow @ 0xa250 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.xgetgrgid ()                 | void xgetgrgid () {
    0x0000a250 lui gp, 2                     |     
    0x0000a254 addiu gp, gp, -0x1f30         |     
    0x0000a258 addu gp, gp, t9               |     gp += t9;
    0x0000a25c lw v0, -0x7cb8(gp)            |     v0 = *((gp - 7982));
    0x0000a260 addiu sp, sp, -0x58           |     
    0x0000a264 lw t9, -0x7d44(gp)            |     t9 = sym.imp.malloc;
    0x0000a268 sw v0, 0x20(sp)               |     *(var_20h_2) = v0;
    0x0000a26c lw v0, (v0)                   |     v0 = *(v0);
    0x0000a270 sw gp, 0x18(sp)               |     *(var_18h_2) = gp;
    0x0000a274 sw s4, 0x40(sp)               |     *(var_40h_2) = s4;
    0x0000a278 sw ra, 0x54(sp)               |     *(var_54h_2) = ra;
    0x0000a27c sw fp, 0x50(sp)               |     *(var_50h_2) = fp;
    0x0000a280 sw s7, 0x4c(sp)               |     *(var_4ch_2) = s7;
    0x0000a284 sw s6, 0x48(sp)               |     *(var_48h_2) = s6;
    0x0000a288 sw s5, 0x44(sp)               |     *(var_44h_2) = s5;
    0x0000a28c sw s3, 0x3c(sp)               |     *(var_3ch_2) = s3;
    0x0000a290 sw s2, 0x38(sp)               |     *(var_38h_2) = s2;
    0x0000a294 sw s1, 0x34(sp)               |     *(var_34h_2) = s1;
    0x0000a298 sw s0, 0x30(sp)               |     *(var_30h_2) = s0;
    0x0000a29c move s4, a0                   |     s4 = a0;
    0x0000a2a0 sw v0, 0x2c(sp)               |     *(var_2ch_2) = v0;
    0x0000a2a4 addiu a0, zero, 0x10          |     a0 = 0x10;
    0x0000a2a8 jalr t9                       |     t9 ();
    0x0000a2ac lw gp, 0x18(sp)               |     gp = *(var_18h_2);
                                             |     if (v0 == 0) {
    0x0000a2b0 beqz v0, 0xa430               |         goto label_2;
                                             |     }
    0x0000a2b4 move s2, v0                   |     s2 = v0;
    0x0000a2b8 addiu s0, zero, 0x100         |     s0 = aav.0x00000100;
    0x0000a2bc move s1, zero                 |     s1 = 0;
    0x0000a2c0 addiu s3, sp, 0x28            |     s3 = sp + 0x28;
    0x0000a2c4 addiu s5, zero, 0x22          |     s5 = 0x22;
    0x0000a2c8 lui s6, 0x4000                |     s6 = 0x40000000;
    0x0000a2cc addiu s7, zero, -1            |     s7 = -1;
                                             |     do {
    0x0000a2d0 lw t9, -0x7d40(gp)            |         t9 = sym.imp.realloc;
                                             | label_0:
    0x0000a2d4 move a0, s1                   |         a0 = s1;
    0x0000a2d8 move a1, s0                   |         a1 = s0;
    0x0000a2dc sw zero, 0x28(sp)             |         *(var_28h_3) = 0;
    0x0000a2e0 jalr t9                       |         t9 ();
    0x0000a2e4 move s1, v0                   |         s1 = v0;
    0x0000a2e8 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 == 0) {
    0x0000a2ec beqz v0, 0xa430               |             goto label_2;
                                             |         }
    0x0000a2f0 lw t9, -0x7dc8(gp)            |         t9 = sym.imp.__errno_location;
    0x0000a2f4 jalr t9                       |         t9 ();
    0x0000a2f8 nop                           |         
    0x0000a2fc lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x0000a300 sw zero, (v0)                 |         *(v0) = 0;
    0x0000a304 move a3, s0                   |         a3 = s0;
    0x0000a308 lw t9, -0x7dd8(gp)            |         t9 = sym.imp.getgrgid_r;
    0x0000a30c sw s3, 0x10(sp)               |         *(var_10h_4) = s3;
    0x0000a310 move a2, s1                   |         a2 = s1;
    0x0000a314 move a1, s2                   |         a1 = s2;
    0x0000a318 move a0, s4                   |         a0 = s4;
    0x0000a31c move fp, v0                   |         fp = v0;
    0x0000a320 jalr t9                       |         t9 ();
    0x0000a324 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
                                             |         if (v0 == 0) {
    0x0000a328 bnez v0, 0xa338               |             
    0x0000a32c lw v0, 0x28(sp)               |             v0 = *(var_28h_3);
    0x0000a330 lw t9, -0x7edc(gp)            |             t9 = sym.__gr_dup;
                                             |             if (v0 == s2) {
    0x0000a334 beq v0, s2, 0xa3c8            |                 goto label_3;
                                             |             }
                                             |         }
    0x0000a338 lw v0, (fp)                   |         v0 = *(fp);
    0x0000a33c sltu v0, s0, s6               |         v0 = (s0 < s6) ? 1 : 0;
                                             |         if (v0 != s5) {
    0x0000a340 bne v0, s5, 0xa364            |             goto label_4;
                                             |         }
                                             |         if (v0 == 0) {
    0x0000a344 beqz v0, 0xa354               |             goto label_5;
                                             |         }
    0x0000a348 nop                           |         
    0x0000a34c sll s0, s0, 2                 |         s0 <<= 2;
    0x0000a350 b 0xa2d0                      |         
                                             |     } while (1);
                                             | label_5:
    0x0000a354 addiu s0, zero, -1            |     s0 = -1;
                                             |     if (s0 == s7) {
    0x0000a358 beq s0, s7, 0xa400            |         goto label_6;
                                             |     }
    0x0000a35c lw t9, -0x7d40(gp)            |     t9 = sym.imp.realloc;
    0x0000a360 b 0xa2d4                      |     goto label_0;
                                             | label_4:
    0x0000a364 lw t9, -0x7ca8(gp)            |     t9 = sym.imp.free;
    0x0000a368 move a0, s1                   |     a0 = s1;
    0x0000a36c jalr t9                       |     t9 ();
    0x0000a370 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0000a374 lw t9, -0x7ca8(gp)            |     t9 = sym.imp.free;
    0x0000a378 move a0, s2                   |     a0 = s2;
    0x0000a37c jalr t9                       |     t9 ();
    0x0000a380 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0000a384 move v0, zero                 |     v0 = 0;
                                             |     do {
                                             | label_1:
    0x0000a388 lw v1, 0x20(sp)               |         v1 = *(var_20h_2);
    0x0000a38c lw a0, 0x2c(sp)               |         a0 = *(var_2ch_2);
    0x0000a390 lw v1, (v1)                   |         v1 = *(v1);
    0x0000a394 lw ra, 0x54(sp)               |         ra = *(var_54h_2);
                                             |         if (a0 != v1) {
    0x0000a398 bne a0, v1, 0xa464            |             goto label_7;
                                             |         }
    0x0000a39c lw fp, 0x50(sp)               |         fp = *(var_50h_2);
    0x0000a3a0 lw s7, 0x4c(sp)               |         s7 = *(var_4ch_2);
    0x0000a3a4 lw s6, 0x48(sp)               |         s6 = *(var_48h_2);
    0x0000a3a8 lw s5, 0x44(sp)               |         s5 = *(var_44h_2);
    0x0000a3ac lw s4, 0x40(sp)               |         s4 = *(var_40h_2);
    0x0000a3b0 lw s3, 0x3c(sp)               |         s3 = *(var_3ch_2);
    0x0000a3b4 lw s2, 0x38(sp)               |         s2 = *(var_38h_2);
    0x0000a3b8 lw s1, 0x34(sp)               |         s1 = *(var_34h_2);
    0x0000a3bc lw s0, 0x30(sp)               |         s0 = *(var_30h_2);
    0x0000a3c0 addiu sp, sp, 0x58            |         
    0x0000a3c4 jr ra                         |         return v0;
                                             | label_3:
    0x0000a3c8 move a0, s2                   |         a0 = s2;
    0x0000a3cc bal 0xb77c                    |         sym_gr_dup ();
    0x0000a3d0 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x0000a3d4 sw v0, 0x24(sp)               |         *(var_24h_3) = v0;
    0x0000a3d8 lw t9, -0x7ca8(gp)            |         t9 = sym.imp.free;
    0x0000a3dc move a0, s1                   |         a0 = s1;
    0x0000a3e0 jalr t9                       |         t9 ();
    0x0000a3e4 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x0000a3e8 lw t9, -0x7ca8(gp)            |         t9 = sym.imp.free;
    0x0000a3ec move a0, s2                   |         a0 = s2;
    0x0000a3f0 jalr t9                       |         t9 ();
    0x0000a3f4 lw gp, 0x18(sp)               |         gp = *(var_18h_2);
    0x0000a3f8 lw v0, 0x24(sp)               |         v0 = *(var_24h_3);
    0x0000a3fc b 0xa388                      |         
                                             |     } while (1);
                                             | label_6:
    0x0000a400 lw t9, -0x7ca8(gp)            |     t9 = sym.imp.free;
    0x0000a404 move a0, s1                   |     a0 = s1;
    0x0000a408 jalr t9                       |     t9 ();
    0x0000a40c lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0000a410 move v0, zero                 |     v0 = 0;
    0x0000a414 sw v0, 0x24(sp)               |     *(var_24h_3) = v0;
    0x0000a418 lw t9, -0x7ca8(gp)            |     t9 = sym.imp.free;
    0x0000a41c move a0, s2                   |     a0 = s2;
    0x0000a420 jalr t9                       |     t9 ();
    0x0000a424 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0000a428 lw v0, 0x24(sp)               |     v0 = *(var_24h_3);
    0x0000a42c b 0xa388                      |     goto label_1;
                                             | label_2:
    0x0000a430 lw v0, -0x7ca0(gp)            |     v0 = *((gp - 7976));
    0x0000a434 lw a3, -0x7fd4(gp)            |     a3 = *((gp - 8181));
    0x0000a438 lw a2, -0x7fd4(gp)            |     a2 = *((gp - 8181));
    0x0000a43c lw t9, -0x7e3c(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0000a440 lw a0, (v0)                   |     a0 = *(v0);
    0x0000a444 addiu a3, a3, -0x1014         |     a3 += -0x1014;
    0x0000a448 addiu a2, a2, -0x1034         |     a2 += -0x1034;
    0x0000a44c addiu a1, zero, 1             |     a1 = 1;
    0x0000a450 jalr t9                       |     t9 ();
    0x0000a454 lw gp, 0x18(sp)               |     gp = *(var_18h_2);
    0x0000a458 lw t9, -0x7d60(gp)            |     t9 = sym.imp.exit;
    0x0000a45c addiu a0, zero, 0xd           |     a0 = 0xd;
    0x0000a460 jalr t9                       |     t9 ();
                                             | label_7:
    0x0000a464 lw t9, -0x7cec(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000a468 jalr t9                       |     t9 ();
    0x0000a46c nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/login.shadow @ 0xa030 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.xgetgrnam ()                 | void xgetgrnam () {
    0x0000a030 lui gp, 2                     |     
    0x0000a034 addiu gp, gp, -0x1d10         |     
    0x0000a038 addu gp, gp, t9               |     gp += t9;
    0x0000a03c lw v0, -0x7cb8(gp)            |     v0 = *((gp - 7982));
    0x0000a040 addiu sp, sp, -0x58           |     
    0x0000a044 lw t9, -0x7d44(gp)            |     t9 = sym.imp.malloc;
    0x0000a048 sw v0, 0x20(sp)               |     *(var_20h) = v0;
    0x0000a04c lw v0, (v0)                   |     v0 = *(v0);
    0x0000a050 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0000a054 sw s4, 0x40(sp)               |     *(var_40h) = s4;
    0x0000a058 sw ra, 0x54(sp)               |     *(var_54h) = ra;
    0x0000a05c sw fp, 0x50(sp)               |     *(var_50h) = fp;
    0x0000a060 sw s7, 0x4c(sp)               |     *(var_4ch) = s7;
    0x0000a064 sw s6, 0x48(sp)               |     *(var_48h) = s6;
    0x0000a068 sw s5, 0x44(sp)               |     *(var_44h) = s5;
    0x0000a06c sw s3, 0x3c(sp)               |     *(var_3ch) = s3;
    0x0000a070 sw s2, 0x38(sp)               |     *(var_38h) = s2;
    0x0000a074 sw s1, 0x34(sp)               |     *(var_34h) = s1;
    0x0000a078 sw s0, 0x30(sp)               |     *(var_30h) = s0;
    0x0000a07c move s4, a0                   |     s4 = a0;
    0x0000a080 sw v0, 0x2c(sp)               |     *(var_2ch) = v0;
    0x0000a084 addiu a0, zero, 0x10          |     a0 = 0x10;
    0x0000a088 jalr t9                       |     t9 ();
    0x0000a08c lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x0000a090 beqz v0, 0xa210               |         goto label_2;
                                             |     }
    0x0000a094 move s2, v0                   |     s2 = v0;
    0x0000a098 addiu s0, zero, 0x100         |     s0 = aav.0x00000100;
    0x0000a09c move s1, zero                 |     s1 = 0;
    0x0000a0a0 addiu s3, sp, 0x28            |     s3 = sp + 0x28;
    0x0000a0a4 addiu s5, zero, 0x22          |     s5 = 0x22;
    0x0000a0a8 lui s6, 0x4000                |     s6 = 0x40000000;
    0x0000a0ac addiu s7, zero, -1            |     s7 = -1;
                                             |     do {
    0x0000a0b0 lw t9, -0x7d40(gp)            |         t9 = sym.imp.realloc;
                                             | label_0:
    0x0000a0b4 move a0, s1                   |         a0 = s1;
    0x0000a0b8 move a1, s0                   |         a1 = s0;
    0x0000a0bc sw zero, 0x28(sp)             |         *(var_28h_4) = 0;
    0x0000a0c0 jalr t9                       |         t9 ();
    0x0000a0c4 move s1, v0                   |         s1 = v0;
    0x0000a0c8 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (v0 == 0) {
    0x0000a0cc beqz v0, 0xa210               |             goto label_2;
                                             |         }
    0x0000a0d0 lw t9, -0x7dc8(gp)            |         t9 = sym.imp.__errno_location;
    0x0000a0d4 jalr t9                       |         t9 ();
    0x0000a0d8 nop                           |         
    0x0000a0dc lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0000a0e0 sw zero, (v0)                 |         *(v0) = 0;
    0x0000a0e4 move a3, s0                   |         a3 = s0;
    0x0000a0e8 lw t9, -0x7db4(gp)            |         t9 = sym.imp.getgrnam_r;
    0x0000a0ec sw s3, 0x10(sp)               |         *(var_10h_5) = s3;
    0x0000a0f0 move a2, s1                   |         a2 = s1;
    0x0000a0f4 move a1, s2                   |         a1 = s2;
    0x0000a0f8 move a0, s4                   |         a0 = s4;
    0x0000a0fc move fp, v0                   |         fp = v0;
    0x0000a100 jalr t9                       |         t9 ();
    0x0000a104 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (v0 == 0) {
    0x0000a108 bnez v0, 0xa118               |             
    0x0000a10c lw v0, 0x28(sp)               |             v0 = *(var_28h_4);
    0x0000a110 lw t9, -0x7edc(gp)            |             t9 = sym.__gr_dup;
                                             |             if (v0 == s2) {
    0x0000a114 beq v0, s2, 0xa1a8            |                 goto label_3;
                                             |             }
                                             |         }
    0x0000a118 lw v0, (fp)                   |         v0 = *(fp);
    0x0000a11c sltu v0, s0, s6               |         v0 = (s0 < s6) ? 1 : 0;
                                             |         if (v0 != s5) {
    0x0000a120 bne v0, s5, 0xa144            |             goto label_4;
                                             |         }
                                             |         if (v0 == 0) {
    0x0000a124 beqz v0, 0xa134               |             goto label_5;
                                             |         }
    0x0000a128 nop                           |         
    0x0000a12c sll s0, s0, 2                 |         s0 <<= 2;
    0x0000a130 b 0xa0b0                      |         
                                             |     } while (1);
                                             | label_5:
    0x0000a134 addiu s0, zero, -1            |     s0 = -1;
                                             |     if (s0 == s7) {
    0x0000a138 beq s0, s7, 0xa1e0            |         goto label_6;
                                             |     }
    0x0000a13c lw t9, -0x7d40(gp)            |     t9 = sym.imp.realloc;
    0x0000a140 b 0xa0b4                      |     goto label_0;
                                             | label_4:
    0x0000a144 lw t9, -0x7ca8(gp)            |     t9 = sym.imp.free;
    0x0000a148 move a0, s1                   |     a0 = s1;
    0x0000a14c jalr t9                       |     t9 ();
    0x0000a150 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0000a154 lw t9, -0x7ca8(gp)            |     t9 = sym.imp.free;
    0x0000a158 move a0, s2                   |     a0 = s2;
    0x0000a15c jalr t9                       |     t9 ();
    0x0000a160 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0000a164 move v0, zero                 |     v0 = 0;
                                             |     do {
                                             | label_1:
    0x0000a168 lw v1, 0x20(sp)               |         v1 = *(var_20h);
    0x0000a16c lw a0, 0x2c(sp)               |         a0 = *(var_2ch);
    0x0000a170 lw v1, (v1)                   |         v1 = *(v1);
    0x0000a174 lw ra, 0x54(sp)               |         ra = *(var_54h);
                                             |         if (a0 != v1) {
    0x0000a178 bne a0, v1, 0xa244            |             goto label_7;
                                             |         }
    0x0000a17c lw fp, 0x50(sp)               |         fp = *(var_50h);
    0x0000a180 lw s7, 0x4c(sp)               |         s7 = *(var_4ch);
    0x0000a184 lw s6, 0x48(sp)               |         s6 = *(var_48h);
    0x0000a188 lw s5, 0x44(sp)               |         s5 = *(var_44h);
    0x0000a18c lw s4, 0x40(sp)               |         s4 = *(var_40h);
    0x0000a190 lw s3, 0x3c(sp)               |         s3 = *(var_3ch);
    0x0000a194 lw s2, 0x38(sp)               |         s2 = *(var_38h);
    0x0000a198 lw s1, 0x34(sp)               |         s1 = *(var_34h);
    0x0000a19c lw s0, 0x30(sp)               |         s0 = *(var_30h);
    0x0000a1a0 addiu sp, sp, 0x58            |         
    0x0000a1a4 jr ra                         |         return v0;
                                             | label_3:
    0x0000a1a8 move a0, s2                   |         a0 = s2;
    0x0000a1ac bal 0xb77c                    |         sym_gr_dup ();
    0x0000a1b0 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0000a1b4 sw v0, 0x24(sp)               |         *(var_24h_4) = v0;
    0x0000a1b8 lw t9, -0x7ca8(gp)            |         t9 = sym.imp.free;
    0x0000a1bc move a0, s1                   |         a0 = s1;
    0x0000a1c0 jalr t9                       |         t9 ();
    0x0000a1c4 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0000a1c8 lw t9, -0x7ca8(gp)            |         t9 = sym.imp.free;
    0x0000a1cc move a0, s2                   |         a0 = s2;
    0x0000a1d0 jalr t9                       |         t9 ();
    0x0000a1d4 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0000a1d8 lw v0, 0x24(sp)               |         v0 = *(var_24h_4);
    0x0000a1dc b 0xa168                      |         
                                             |     } while (1);
                                             | label_6:
    0x0000a1e0 lw t9, -0x7ca8(gp)            |     t9 = sym.imp.free;
    0x0000a1e4 move a0, s1                   |     a0 = s1;
    0x0000a1e8 jalr t9                       |     t9 ();
    0x0000a1ec lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0000a1f0 move v0, zero                 |     v0 = 0;
    0x0000a1f4 sw v0, 0x24(sp)               |     *(var_24h_4) = v0;
    0x0000a1f8 lw t9, -0x7ca8(gp)            |     t9 = sym.imp.free;
    0x0000a1fc move a0, s2                   |     a0 = s2;
    0x0000a200 jalr t9                       |     t9 ();
    0x0000a204 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0000a208 lw v0, 0x24(sp)               |     v0 = *(var_24h_4);
    0x0000a20c b 0xa168                      |     goto label_1;
                                             | label_2:
    0x0000a210 lw v0, -0x7ca0(gp)            |     v0 = *((gp - 7976));
    0x0000a214 lw a3, -0x7fd4(gp)            |     a3 = *((gp - 8181));
    0x0000a218 lw a2, -0x7fd4(gp)            |     a2 = *((gp - 8181));
    0x0000a21c lw t9, -0x7e3c(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0000a220 lw a0, (v0)                   |     a0 = *(v0);
    0x0000a224 addiu a3, a3, -0x1020         |     a3 += -0x1020;
    0x0000a228 addiu a2, a2, -0x1034         |     a2 += -0x1034;
    0x0000a22c addiu a1, zero, 1             |     a1 = 1;
    0x0000a230 jalr t9                       |     t9 ();
    0x0000a234 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0000a238 lw t9, -0x7d60(gp)            |     t9 = sym.imp.exit;
    0x0000a23c addiu a0, zero, 0xd           |     a0 = 0xd;
    0x0000a240 jalr t9                       |     t9 ();
                                             | label_7:
    0x0000a244 lw t9, -0x7cec(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000a248 jalr t9                       |     t9 ();
    0x0000a24c nop                           |     
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/login.shadow @ 0x9e10 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.xgetpwnam ()             | void xgetpwnam () {
    0x00009e10 lui gp, 2                 |     
    0x00009e14 addiu gp, gp, -0x1af0     |     
    0x00009e18 addu gp, gp, t9           |     gp += t9;
    0x00009e1c lw v0, -0x7cb8(gp)        |     v0 = *((gp - 7982));
    0x00009e20 addiu sp, sp, -0x58       |     
    0x00009e24 lw t9, -0x7d44(gp)        |     t9 = sym.imp.malloc;
    0x00009e28 sw v0, 0x20(sp)           |     *(var_20h_2) = v0;
    0x00009e2c lw v0, (v0)               |     v0 = *(v0);
    0x00009e30 sw gp, 0x18(sp)           |     *(var_18h_2) = gp;
    0x00009e34 sw s4, 0x40(sp)           |     *(var_40h_2) = s4;
    0x00009e38 sw ra, 0x54(sp)           |     *(var_54h) = ra;
    0x00009e3c sw fp, 0x50(sp)           |     *(var_50h) = fp;
    0x00009e40 sw s7, 0x4c(sp)           |     *(var_4ch_2) = s7;
    0x00009e44 sw s6, 0x48(sp)           |     *(var_48h_2) = s6;
    0x00009e48 sw s5, 0x44(sp)           |     *(var_44h_2) = s5;
    0x00009e4c sw s3, 0x3c(sp)           |     *(var_3ch_2) = s3;
    0x00009e50 sw s2, 0x38(sp)           |     *(var_38h_2) = s2;
    0x00009e54 sw s1, 0x34(sp)           |     *(var_34h_2) = s1;
    0x00009e58 sw s0, 0x30(sp)           |     *(var_30h) = s0;
    0x00009e5c move s4, a0               |     s4 = a0;
    0x00009e60 sw v0, 0x2c(sp)           |     *(var_2ch_2) = v0;
    0x00009e64 addiu a0, zero, 0x1c      |     a0 = 0x1c;
    0x00009e68 jalr t9                   |     t9 ();
    0x00009e6c lw gp, 0x18(sp)           |     gp = *(var_18h_2);
                                         |     if (v0 == 0) {
    0x00009e70 beqz v0, 0x9ff0           |         goto label_2;
                                         |     }
    0x00009e74 move s2, v0               |     s2 = v0;
    0x00009e78 addiu s0, zero, 0x100     |     s0 = aav.0x00000100;
    0x00009e7c move s1, zero             |     s1 = 0;
    0x00009e80 addiu s3, sp, 0x28        |     s3 = sp + 0x28;
    0x00009e84 addiu s5, zero, 0x22      |     s5 = 0x22;
    0x00009e88 lui s6, 0x4000            |     s6 = 0x40000000;
    0x00009e8c addiu s7, zero, -1        |     s7 = -1;
                                         |     do {
    0x00009e90 lw t9, -0x7d40(gp)        |         t9 = sym.imp.realloc;
                                         | label_0:
    0x00009e94 move a0, s1               |         a0 = s1;
    0x00009e98 move a1, s0               |         a1 = s0;
    0x00009e9c sw zero, 0x28(sp)         |         *(var_28h) = 0;
    0x00009ea0 jalr t9                   |         t9 ();
    0x00009ea4 move s1, v0               |         s1 = v0;
    0x00009ea8 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
                                         |         if (v0 == 0) {
    0x00009eac beqz v0, 0x9ff0           |             goto label_2;
                                         |         }
    0x00009eb0 lw t9, -0x7dc8(gp)        |         t9 = sym.imp.__errno_location;
    0x00009eb4 jalr t9                   |         t9 ();
    0x00009eb8 nop                       |         
    0x00009ebc lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00009ec0 sw zero, (v0)             |         *(v0) = 0;
    0x00009ec4 move a3, s0               |         a3 = s0;
    0x00009ec8 lw t9, -0x7da0(gp)        |         t9 = sym.imp.getpwnam_r;
    0x00009ecc sw s3, 0x10(sp)           |         *(var_10h_3) = s3;
    0x00009ed0 move a2, s1               |         a2 = s1;
    0x00009ed4 move a1, s2               |         a1 = s2;
    0x00009ed8 move a0, s4               |         a0 = s4;
    0x00009edc move fp, v0               |         fp = v0;
    0x00009ee0 jalr t9                   |         t9 ();
    0x00009ee4 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
                                         |         if (v0 == 0) {
    0x00009ee8 bnez v0, 0x9ef8           |             
    0x00009eec lw v0, 0x28(sp)           |             v0 = *(var_28h);
    0x00009ef0 lw t9, -0x7ee0(gp)        |             t9 = sym.__pw_dup;
                                         |             if (v0 == s2) {
    0x00009ef4 beq v0, s2, 0x9f88        |                 goto label_3;
                                         |             }
                                         |         }
    0x00009ef8 lw v0, (fp)               |         v0 = *(fp);
    0x00009efc sltu v0, s0, s6           |         v0 = (s0 < s6) ? 1 : 0;
                                         |         if (v0 != s5) {
    0x00009f00 bne v0, s5, 0x9f24        |             goto label_4;
                                         |         }
                                         |         if (v0 == 0) {
    0x00009f04 beqz v0, 0x9f14           |             goto label_5;
                                         |         }
    0x00009f08 nop                       |         
    0x00009f0c sll s0, s0, 2             |         s0 <<= 2;
    0x00009f10 b 0x9e90                  |         
                                         |     } while (1);
                                         | label_5:
    0x00009f14 addiu s0, zero, -1        |     s0 = -1;
                                         |     if (s0 == s7) {
    0x00009f18 beq s0, s7, 0x9fc0        |         goto label_6;
                                         |     }
    0x00009f1c lw t9, -0x7d40(gp)        |     t9 = sym.imp.realloc;
    0x00009f20 b 0x9e94                  |     goto label_0;
                                         | label_4:
    0x00009f24 lw t9, -0x7ca8(gp)        |     t9 = sym.imp.free;
    0x00009f28 move a0, s1               |     a0 = s1;
    0x00009f2c jalr t9                   |     t9 ();
    0x00009f30 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00009f34 lw t9, -0x7ca8(gp)        |     t9 = sym.imp.free;
    0x00009f38 move a0, s2               |     a0 = s2;
    0x00009f3c jalr t9                   |     t9 ();
    0x00009f40 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00009f44 move v0, zero             |     v0 = 0;
                                         |     do {
                                         | label_1:
    0x00009f48 lw v1, 0x20(sp)           |         v1 = *(var_20h_2);
    0x00009f4c lw a0, 0x2c(sp)           |         a0 = *(var_2ch_2);
    0x00009f50 lw v1, (v1)               |         v1 = *(v1);
    0x00009f54 lw ra, 0x54(sp)           |         ra = *(var_54h);
                                         |         if (a0 != v1) {
    0x00009f58 bne a0, v1, 0xa024        |             goto label_7;
                                         |         }
    0x00009f5c lw fp, 0x50(sp)           |         fp = *(var_50h);
    0x00009f60 lw s7, 0x4c(sp)           |         s7 = *(var_4ch_2);
    0x00009f64 lw s6, 0x48(sp)           |         s6 = *(var_48h_2);
    0x00009f68 lw s5, 0x44(sp)           |         s5 = *(var_44h_2);
    0x00009f6c lw s4, 0x40(sp)           |         s4 = *(var_40h_2);
    0x00009f70 lw s3, 0x3c(sp)           |         s3 = *(var_3ch_2);
    0x00009f74 lw s2, 0x38(sp)           |         s2 = *(var_38h_2);
    0x00009f78 lw s1, 0x34(sp)           |         s1 = *(var_34h_2);
    0x00009f7c lw s0, 0x30(sp)           |         s0 = *(var_30h);
    0x00009f80 addiu sp, sp, 0x58        |         
    0x00009f84 jr ra                     |         return v0;
                                         | label_3:
    0x00009f88 move a0, s2               |         a0 = s2;
    0x00009f8c bal 0xcdf4                |         sym_pw_dup ();
    0x00009f90 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00009f94 sw v0, 0x24(sp)           |         *(var_24h_3) = v0;
    0x00009f98 lw t9, -0x7ca8(gp)        |         t9 = sym.imp.free;
    0x00009f9c move a0, s1               |         a0 = s1;
    0x00009fa0 jalr t9                   |         t9 ();
    0x00009fa4 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00009fa8 lw t9, -0x7ca8(gp)        |         t9 = sym.imp.free;
    0x00009fac move a0, s2               |         a0 = s2;
    0x00009fb0 jalr t9                   |         t9 ();
    0x00009fb4 lw gp, 0x18(sp)           |         gp = *(var_18h_2);
    0x00009fb8 lw v0, 0x24(sp)           |         v0 = *(var_24h_3);
    0x00009fbc b 0x9f48                  |         
                                         |     } while (1);
                                         | label_6:
    0x00009fc0 lw t9, -0x7ca8(gp)        |     t9 = sym.imp.free;
    0x00009fc4 move a0, s1               |     a0 = s1;
    0x00009fc8 jalr t9                   |     t9 ();
    0x00009fcc lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00009fd0 move v0, zero             |     v0 = 0;
    0x00009fd4 sw v0, 0x24(sp)           |     *(var_24h_3) = v0;
    0x00009fd8 lw t9, -0x7ca8(gp)        |     t9 = sym.imp.free;
    0x00009fdc move a0, s2               |     a0 = s2;
    0x00009fe0 jalr t9                   |     t9 ();
    0x00009fe4 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x00009fe8 lw v0, 0x24(sp)           |     v0 = *(var_24h_3);
    0x00009fec b 0x9f48                  |     goto label_1;
                                         | label_2:
    0x00009ff0 lw v0, -0x7ca0(gp)        |     v0 = *((gp - 7976));
    0x00009ff4 lw a3, -0x7fd4(gp)        |     a3 = *((gp - 8181));
    0x00009ff8 lw a2, -0x7fd4(gp)        |     a2 = *((gp - 8181));
    0x00009ffc lw t9, -0x7e3c(gp)        |     t9 = sym.imp.__fprintf_chk
    0x0000a000 lw a0, (v0)               |     a0 = *(v0);
    0x0000a004 addiu a3, a3, -0x1040     |     a3 += -0x1040;
    0x0000a008 addiu a2, a2, -0x1034     |     a2 += -0x1034;
    0x0000a00c addiu a1, zero, 1         |     a1 = 1;
    0x0000a010 jalr t9                   |     t9 ();
    0x0000a014 lw gp, 0x18(sp)           |     gp = *(var_18h_2);
    0x0000a018 lw t9, -0x7d60(gp)        |     t9 = sym.imp.exit;
    0x0000a01c addiu a0, zero, 0xd       |     a0 = 0xd;
    0x0000a020 jalr t9                   |     t9 ();
                                         | label_7:
    0x0000a024 lw t9, -0x7cec(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x0000a028 jalr t9                   |     t9 ();
    0x0000a02c nop                       |     
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/login.shadow @ 0xa470 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.xgetspnam ()                 | void xgetspnam () {
    0x0000a470 lui gp, 2                     |     
    0x0000a474 addiu gp, gp, -0x2150         |     
    0x0000a478 addu gp, gp, t9               |     gp += t9;
    0x0000a47c lw v0, -0x7cb8(gp)            |     v0 = *((gp - 7982));
    0x0000a480 addiu sp, sp, -0x58           |     
    0x0000a484 lw t9, -0x7d44(gp)            |     t9 = sym.imp.malloc;
    0x0000a488 sw v0, 0x20(sp)               |     *(var_20h_3) = v0;
    0x0000a48c lw v0, (v0)                   |     v0 = *(v0);
    0x0000a490 sw gp, 0x18(sp)               |     *(var_18h_3) = gp;
    0x0000a494 sw s4, 0x40(sp)               |     *(var_40h_3) = s4;
    0x0000a498 sw ra, 0x54(sp)               |     *(var_54h_3) = ra;
    0x0000a49c sw fp, 0x50(sp)               |     *(var_50h_3) = fp;
    0x0000a4a0 sw s7, 0x4c(sp)               |     *(var_4ch_3) = s7;
    0x0000a4a4 sw s6, 0x48(sp)               |     *(var_48h_3) = s6;
    0x0000a4a8 sw s5, 0x44(sp)               |     *(var_44h_3) = s5;
    0x0000a4ac sw s3, 0x3c(sp)               |     *(var_3ch_3) = s3;
    0x0000a4b0 sw s2, 0x38(sp)               |     *(var_38h_3) = s2;
    0x0000a4b4 sw s1, 0x34(sp)               |     *(var_34h_3) = s1;
    0x0000a4b8 sw s0, 0x30(sp)               |     *(var_30h_3) = s0;
    0x0000a4bc move s4, a0                   |     s4 = a0;
    0x0000a4c0 sw v0, 0x2c(sp)               |     *(var_2ch_3) = v0;
    0x0000a4c4 addiu a0, zero, 0x24          |     a0 = 0x24;
    0x0000a4c8 jalr t9                       |     t9 ();
    0x0000a4cc lw gp, 0x18(sp)               |     gp = *(var_18h_3);
                                             |     if (v0 == 0) {
    0x0000a4d0 beqz v0, 0xa650               |         goto label_2;
                                             |     }
    0x0000a4d4 move s2, v0                   |     s2 = v0;
    0x0000a4d8 addiu s0, zero, 0x100         |     s0 = aav.0x00000100;
    0x0000a4dc move s1, zero                 |     s1 = 0;
    0x0000a4e0 addiu s3, sp, 0x28            |     s3 = sp + 0x28;
    0x0000a4e4 addiu s5, zero, 0x22          |     s5 = 0x22;
    0x0000a4e8 lui s6, 0x4000                |     s6 = 0x40000000;
    0x0000a4ec addiu s7, zero, -1            |     s7 = -1;
                                             |     do {
    0x0000a4f0 lw t9, -0x7d40(gp)            |         t9 = sym.imp.realloc;
                                             | label_0:
    0x0000a4f4 move a0, s1                   |         a0 = s1;
    0x0000a4f8 move a1, s0                   |         a1 = s0;
    0x0000a4fc sw zero, 0x28(sp)             |         *(var_28h_2) = 0;
    0x0000a500 jalr t9                       |         t9 ();
    0x0000a504 move s1, v0                   |         s1 = v0;
    0x0000a508 lw gp, 0x18(sp)               |         gp = *(var_18h_3);
                                             |         if (v0 == 0) {
    0x0000a50c beqz v0, 0xa650               |             goto label_2;
                                             |         }
    0x0000a510 lw t9, -0x7dc8(gp)            |         t9 = sym.imp.__errno_location;
    0x0000a514 jalr t9                       |         t9 ();
    0x0000a518 nop                           |         
    0x0000a51c lw gp, 0x18(sp)               |         gp = *(var_18h_3);
    0x0000a520 sw zero, (v0)                 |         *(v0) = 0;
    0x0000a524 move a3, s0                   |         a3 = s0;
    0x0000a528 lw t9, -0x7e58(gp)            |         t9 = sym.imp.getspnam_r;
    0x0000a52c sw s3, 0x10(sp)               |         *(var_10h_3) = s3;
    0x0000a530 move a2, s1                   |         a2 = s1;
    0x0000a534 move a1, s2                   |         a1 = s2;
    0x0000a538 move a0, s4                   |         a0 = s4;
    0x0000a53c move fp, v0                   |         fp = v0;
    0x0000a540 jalr t9                       |         t9 ();
    0x0000a544 lw gp, 0x18(sp)               |         gp = *(var_18h_3);
                                             |         if (v0 == 0) {
    0x0000a548 bnez v0, 0xa558               |             
    0x0000a54c lw v0, 0x28(sp)               |             v0 = *(var_28h_2);
    0x0000a550 lw t9, -0x7ed8(gp)            |             t9 = sym.__spw_dup;
                                             |             if (v0 == s2) {
    0x0000a554 beq v0, s2, 0xa5e8            |                 goto label_3;
                                             |             }
                                             |         }
    0x0000a558 lw v0, (fp)                   |         v0 = *(fp);
    0x0000a55c sltu v0, s0, s6               |         v0 = (s0 < s6) ? 1 : 0;
                                             |         if (v0 != s5) {
    0x0000a560 bne v0, s5, 0xa584            |             goto label_4;
                                             |         }
                                             |         if (v0 == 0) {
    0x0000a564 beqz v0, 0xa574               |             goto label_5;
                                             |         }
    0x0000a568 nop                           |         
    0x0000a56c sll s0, s0, 2                 |         s0 <<= 2;
    0x0000a570 b 0xa4f0                      |         
                                             |     } while (1);
                                             | label_5:
    0x0000a574 addiu s0, zero, -1            |     s0 = -1;
                                             |     if (s0 == s7) {
    0x0000a578 beq s0, s7, 0xa620            |         goto label_6;
                                             |     }
    0x0000a57c lw t9, -0x7d40(gp)            |     t9 = sym.imp.realloc;
    0x0000a580 b 0xa4f4                      |     goto label_0;
                                             | label_4:
    0x0000a584 lw t9, -0x7ca8(gp)            |     t9 = sym.imp.free;
    0x0000a588 move a0, s1                   |     a0 = s1;
    0x0000a58c jalr t9                       |     t9 ();
    0x0000a590 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x0000a594 lw t9, -0x7ca8(gp)            |     t9 = sym.imp.free;
    0x0000a598 move a0, s2                   |     a0 = s2;
    0x0000a59c jalr t9                       |     t9 ();
    0x0000a5a0 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x0000a5a4 move v0, zero                 |     v0 = 0;
                                             |     do {
                                             | label_1:
    0x0000a5a8 lw v1, 0x20(sp)               |         v1 = *(var_20h_3);
    0x0000a5ac lw a0, 0x2c(sp)               |         a0 = *(var_2ch_3);
    0x0000a5b0 lw v1, (v1)                   |         v1 = *(v1);
    0x0000a5b4 lw ra, 0x54(sp)               |         ra = *(var_54h_3);
                                             |         if (a0 != v1) {
    0x0000a5b8 bne a0, v1, 0xa684            |             goto label_7;
                                             |         }
    0x0000a5bc lw fp, 0x50(sp)               |         fp = *(var_50h_3);
    0x0000a5c0 lw s7, 0x4c(sp)               |         s7 = *(var_4ch_3);
    0x0000a5c4 lw s6, 0x48(sp)               |         s6 = *(var_48h_3);
    0x0000a5c8 lw s5, 0x44(sp)               |         s5 = *(var_44h_3);
    0x0000a5cc lw s4, 0x40(sp)               |         s4 = *(var_40h_3);
    0x0000a5d0 lw s3, 0x3c(sp)               |         s3 = *(var_3ch_3);
    0x0000a5d4 lw s2, 0x38(sp)               |         s2 = *(var_38h_3);
    0x0000a5d8 lw s1, 0x34(sp)               |         s1 = *(var_34h_3);
    0x0000a5dc lw s0, 0x30(sp)               |         s0 = *(var_30h_3);
    0x0000a5e0 addiu sp, sp, 0x58            |         
    0x0000a5e4 jr ra                         |         return v0;
                                             | label_3:
    0x0000a5e8 move a0, s2                   |         a0 = s2;
    0x0000a5ec bal 0xcf10                    |         sym_spw_dup ();
    0x0000a5f0 lw gp, 0x18(sp)               |         gp = *(var_18h_3);
    0x0000a5f4 sw v0, 0x24(sp)               |         *(var_24h_2) = v0;
    0x0000a5f8 lw t9, -0x7ca8(gp)            |         t9 = sym.imp.free;
    0x0000a5fc move a0, s1                   |         a0 = s1;
    0x0000a600 jalr t9                       |         t9 ();
    0x0000a604 lw gp, 0x18(sp)               |         gp = *(var_18h_3);
    0x0000a608 lw t9, -0x7ca8(gp)            |         t9 = sym.imp.free;
    0x0000a60c move a0, s2                   |         a0 = s2;
    0x0000a610 jalr t9                       |         t9 ();
    0x0000a614 lw gp, 0x18(sp)               |         gp = *(var_18h_3);
    0x0000a618 lw v0, 0x24(sp)               |         v0 = *(var_24h_2);
    0x0000a61c b 0xa5a8                      |         
                                             |     } while (1);
                                             | label_6:
    0x0000a620 lw t9, -0x7ca8(gp)            |     t9 = sym.imp.free;
    0x0000a624 move a0, s1                   |     a0 = s1;
    0x0000a628 jalr t9                       |     t9 ();
    0x0000a62c lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x0000a630 move v0, zero                 |     v0 = 0;
    0x0000a634 sw v0, 0x24(sp)               |     *(var_24h_2) = v0;
    0x0000a638 lw t9, -0x7ca8(gp)            |     t9 = sym.imp.free;
    0x0000a63c move a0, s2                   |     a0 = s2;
    0x0000a640 jalr t9                       |     t9 ();
    0x0000a644 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x0000a648 lw v0, 0x24(sp)               |     v0 = *(var_24h_2);
    0x0000a64c b 0xa5a8                      |     goto label_1;
                                             | label_2:
    0x0000a650 lw v0, -0x7ca0(gp)            |     v0 = *((gp - 7976));
    0x0000a654 lw a3, -0x7fd4(gp)            |     a3 = *((gp - 8181));
    0x0000a658 lw a2, -0x7fd4(gp)            |     a2 = *((gp - 8181));
    0x0000a65c lw t9, -0x7e3c(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0000a660 lw a0, (v0)                   |     a0 = *(v0);
    0x0000a664 addiu a3, a3, -0x1008         |     a3 += -0x1008;
    0x0000a668 addiu a2, a2, -0x1034         |     a2 += -0x1034;
    0x0000a66c addiu a1, zero, 1             |     a1 = 1;
    0x0000a670 jalr t9                       |     t9 ();
    0x0000a674 lw gp, 0x18(sp)               |     gp = *(var_18h_3);
    0x0000a678 lw t9, -0x7d60(gp)            |     t9 = sym.imp.exit;
    0x0000a67c addiu a0, zero, 0xd           |     a0 = 0xd;
    0x0000a680 jalr t9                       |     t9 ();
                                             | label_7:
    0x0000a684 lw t9, -0x7cec(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000a688 jalr t9                       |     t9 ();
    0x0000a68c nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/login.shadow @ 0xa690 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.xmalloc ()                   | void xmalloc () {
    0x0000a690 lui gp, 2                     |     
    0x0000a694 addiu gp, gp, -0x2370         |     
    0x0000a698 addu gp, gp, t9               |     gp += t9;
    0x0000a69c addiu sp, sp, -0x30           |     
    0x0000a6a0 lw t9, -0x7d44(gp)            |     t9 = sym.imp.malloc;
    0x0000a6a4 sw gp, 0x18(sp)               |     *(var_18h_4) = gp;
    0x0000a6a8 sw ra, 0x2c(sp)               |     *(var_2ch_4) = ra;
    0x0000a6ac sw s1, 0x28(sp)               |     *(var_28h) = s1;
    0x0000a6b0 sw s0, 0x24(sp)               |     *(var_24h) = s0;
    0x0000a6b4 jalr t9                       |     t9 ();
    0x0000a6b8 nop                           |     
    0x0000a6bc lw gp, 0x18(sp)               |     gp = *(var_18h_4);
                                             |     if (v0 != 0) {
    0x0000a6c0 beqz v0, 0xa6d8               |         
    0x0000a6c4 lw ra, 0x2c(sp)               |         ra = *(var_2ch_4);
    0x0000a6c8 lw s1, 0x28(sp)               |         s1 = *(var_28h);
    0x0000a6cc lw s0, 0x24(sp)               |         s0 = *(var_24h);
    0x0000a6d0 addiu sp, sp, 0x30            |         
    0x0000a6d4 jr ra                         |         return v0;
                                             |     }
    0x0000a6d8 lw v0, -0x7ca0(gp)            |     v0 = *((gp - 7976));
    0x0000a6dc lw t9, -0x7dc8(gp)            |     t9 = sym.imp.__errno_location;
    0x0000a6e0 lw s0, (v0)                   |     s0 = *(v0);
    0x0000a6e4 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0000a6e8 lw s1, (v0)                   |     s1 = *(v0);
    0x0000a6ec jalr t9                       |     t9 ();
    0x0000a6f0 lw gp, 0x18(sp)               |     gp = *(var_18h_4);
    0x0000a6f4 lw t9, -0x7d54(gp)            |     t9 = sym.imp.strerror;
    0x0000a6f8 lw a0, (v0)                   |     a0 = *(v0);
    0x0000a6fc jalr t9                       |     t9 ();
    0x0000a700 lw gp, 0x18(sp)               |     gp = *(var_18h_4);
    0x0000a704 move a0, s0                   |     a0 = s0;
    0x0000a708 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0000a70c lw a2, -0x7fd4(gp)            |     a2 = *((gp - 8181));
    0x0000a710 lw t9, -0x7e3c(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0000a714 move a3, s1                   |     a3 = s1;
    0x0000a718 addiu a2, a2, -0xffc          |     a2 += -0xffc;
    0x0000a71c addiu a1, zero, 1             |     a1 = 1;
    0x0000a720 jalr t9                       |     t9 ();
    0x0000a724 lw gp, 0x18(sp)               |     gp = *(var_18h_4);
    0x0000a728 lw t9, -0x7d60(gp)            |     t9 = sym.imp.exit;
    0x0000a72c addiu a0, zero, 0xd           |     a0 = 0xd;
    0x0000a730 jalr t9                       |     return t9 ();
                                             | }

[*] Function printf used 26 times login.shadow