[*] Binary protection state of login.shadow
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function fprintf 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 fprintf used 22 times login.shadow