[*] Binary protection state of systool
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of systool
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/systool @ 0x28a0 */
| #include <stdint.h>
|
; (fcn) fcn.000028a0 () | void fcn_000028a0 () {
| label_3:
0x00002638 lui gp, 2 |
0x0000263c addiu gp, gp, -0x5608 |
0x00002640 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00002644 beqz a0, 0x2794 | goto label_5;
| }
0x00002648 nop |
0x0000264c addiu sp, sp, -0x38 |
0x00002650 lw v0, 0x148(a0) | v0 = *((a0 + 82));
0x00002654 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00002658 andi v0, v0, 1 | v0 &= 1;
0x0000265c sw s1, 0x1c(sp) | *(var_1ch_2) = s1;
0x00002660 sw ra, 0x34(sp) | *(var_2ch) = ra;
0x00002664 sw s6, 0x30(sp) | *(var_28h) = s6;
0x00002668 sw s5, 0x2c(sp) | *(var_24h) = s5;
0x0000266c sw s4, 0x28(sp) | *(var_20h) = s4;
0x00002670 sw s3, 0x24(sp) | *(var_1ch) = s3;
0x00002674 sw s2, 0x20(sp) | *(var_18h) = s2;
0x00002678 sw s0, 0x18(sp) | *(var_10h) = s0;
0x0000267c move s1, a0 | s1 = a0;
| if (v0 != 0) {
0x00002680 beqz v0, 0x2708 |
0x00002684 lw s0, 0x140(a0) | s0 = *(a0);
0x00002688 move s3, a1 | s3 = a1;
| if (s0 != 0) {
0x0000268c beqz s0, 0x26d0 |
0x00002690 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00002694 lw t9, -0x7ecc(gp) | t9 = sym.imp.strcmp;
0x00002698 addiu a1, a1, 0x46e4 | a1 += str.config;
0x0000269c jalr t9 | t9 ();
0x000026a0 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x000026a4 beqz v0, 0x27a4 | goto label_6;
| }
0x000026a8 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x000026ac lw t9, -0x7ecc(gp) | t9 = sym.imp.strcmp;
0x000026b0 addiu a1, a1, 0x46ec | a1 += str.data;
0x000026b4 move a0, s1 | a0 = s1;
0x000026b8 jalr t9 | t9 ();
0x000026bc lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x000026c0 beqz v0, 0x27a4 | goto label_6;
| }
0x000026c4 lb v0, (s0) | v0 = *(s0);
0x000026c8 lw t9, -0x7f30(gp) | t9 = sym.imp.strlen;
| if (v0 != 0) {
0x000026cc bnez v0, 0x274c | goto label_7;
| }
| }
0x000026d0 lw v0, -0x7f6c(gp) | v0 = *((gp - 8155));
0x000026d4 lw ra, 0x34(sp) | ra = *(var_2ch);
0x000026d8 lw s6, 0x30(sp) | s6 = *(var_28h);
0x000026dc lw s5, 0x2c(sp) | s5 = *(var_24h);
0x000026e0 lw s4, 0x28(sp) | s4 = *(var_20h);
0x000026e4 lw s3, 0x24(sp) | s3 = *(var_1ch);
0x000026e8 lw s2, 0x20(sp) | s2 = *(var_18h);
0x000026ec lw s1, 0x1c(sp) | s1 = *(var_1ch_2);
0x000026f0 lw s0, 0x18(sp) | s0 = *(var_10h);
0x000026f4 lw a1, (v0) | a1 = *(v0);
0x000026f8 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x000026fc addiu a0, zero, 0xa | a0 = 0xa;
0x00002700 addiu sp, sp, 0x38 |
0x00002704 jr t9 | t9 ();
| }
0x00002708 lw v0, -0x7f6c(gp) | v0 = *((gp - 8155));
0x0000270c lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00002710 lw t9, -0x7f04(gp) | t9 = sym.imp.fwrite;
0x00002714 lw a3, (v0) | a3 = *(v0);
0x00002718 addiu a2, zero, 0x14 | a2 = 0x14;
0x0000271c addiu a1, zero, 1 | a1 = 1;
0x00002720 addiu a0, a0, 0x46fc | a0 += str._store_method_only__n;
| do {
0x00002724 lw ra, 0x34(sp) | ra = *(var_2ch);
0x00002728 lw s6, 0x30(sp) | s6 = *(var_28h);
0x0000272c lw s5, 0x2c(sp) | s5 = *(var_24h);
0x00002730 lw s4, 0x28(sp) | s4 = *(var_20h);
0x00002734 lw s3, 0x24(sp) | s3 = *(var_1ch);
0x00002738 lw s2, 0x20(sp) | s2 = *(var_18h);
0x0000273c lw s1, 0x1c(sp) | s1 = *(var_1ch_2);
0x00002740 lw s0, 0x18(sp) | s0 = *(var_10h);
0x00002744 addiu sp, sp, 0x38 |
0x00002748 jr t9 | t9 ();
| label_7:
0x0000274c move a0, s0 | a0 = s0;
0x00002750 jalr t9 | t9 ();
0x00002754 addiu v0, v0, -1 | v0 += -1;
0x00002758 addu v0, s0, v0 | v0 = s0 + v0;
0x0000275c lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 != 0) {
0x00002760 beqz v0, 0x2774 |
0x00002764 lb a0, (v0) | a0 = *(v0);
0x00002768 addiu v1, zero, 0xa | v1 = 0xa;
| if (a0 == v1) {
0x0000276c beql a0, v1, 0x279c | goto label_8;
| }
0x00002770 sb zero, (v0) | *(v0) = 0;
| }
| label_0:
0x00002774 lw v0, -0x7f6c(gp) | v0 = *((gp - 8155));
0x00002778 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x0000277c lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x00002780 lw a0, (v0) | a0 = *(v0);
0x00002784 move a3, s0 | a3 = s0;
0x00002788 addiu a2, a2, 0x4788 | a2 += 0x4788;
0x0000278c addiu a1, zero, 1 | a1 = 1;
0x00002790 b 0x2724 |
| } while (1);
| label_5:
0x00002794 jr ra | return v0;
0x00002798 nop |
| label_8:
0x0000279c lw s0, 0x140(s1) | s0 = *(s1);
0x000027a0 b 0x2774 | goto label_0;
| label_6:
0x000027a4 lhu v0, 0x144(s1) | v0 = *((s1 + 162));
0x000027a8 lw s2, -0x7f6c(gp) | s2 = *((gp - 8155));
| if (v0 == 0) {
0x000027ac beqz v0, 0x2830 | goto label_9;
| }
0x000027b0 lw s4, -0x7fdc(gp) | s4 = *((gp - 8183));
0x000027b4 slti s5, s3, -0x15 | s5 = (s3 < -0x15) ? 1 : 0;
0x000027b8 move s0, zero | s0 = 0;
0x000027bc addiu s3, s3, 0x16 | s3 += 0x16;
0x000027c0 addiu s4, s4, 0x46f4 | s4 += str.__02x;
0x000027c4 b 0x27fc |
| while (v0 == 0) {
0x000027c8 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
| if (s0 != 0) {
0x000027cc bnez s0, 0x2864 | goto label_10;
| }
| label_2:
0x000027d0 lw a3, 0x140(s1) | a3 = *(s1);
| label_1:
0x000027d4 lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x000027d8 move a2, s4 | a2 = s4;
0x000027dc lbux a3, s0(a3) | __asm ("lbux a3, s0(a3)");
0x000027e0 addiu a1, zero, 1 | a1 = 1;
0x000027e4 jalr t9 | t9 ();
0x000027e8 lhu v0, 0x144(s1) | v0 = *((s1 + 162));
0x000027ec addiu s0, s0, 1 | s0++;
0x000027f0 slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x000027f4 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x000027f8 beqz v0, 0x2830 | goto label_9;
| }
0x000027fc andi v0, s0, 0xf | v0 = s0 & 0xf;
0x00002800 lw a0, (s2) | a0 = *(s2);
0x00002804 beqz v0, 0x27c8 |
| }
0x00002808 andi v0, s0, 7 | v0 = s0 & 7;
0x0000280c lw a3, 0x140(s1) | a3 = *(s1);
| if (v0 == 0) {
0x00002810 bnel v0, zero, 0x27d4 | goto label_1;
| }
0x00002814 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00002818 move a1, a0 | a1 = a0;
0x0000281c addiu a0, zero, 0x20 | a0 = 0x20;
0x00002820 jalr t9 | t9 ();
0x00002824 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00002828 lw a0, (s2) | a0 = *(s2);
0x0000282c b 0x27d0 | goto label_2;
| label_9:
0x00002830 lw a1, (s2) | a1 = *(s2);
0x00002834 lw ra, 0x34(sp) | ra = *(var_2ch);
0x00002838 lw s6, 0x30(sp) | s6 = *(var_28h);
0x0000283c lw s5, 0x2c(sp) | s5 = *(var_24h);
0x00002840 lw s4, 0x28(sp) | s4 = *(var_20h);
0x00002844 lw s3, 0x24(sp) | s3 = *(var_1ch);
0x00002848 lw s2, 0x20(sp) | s2 = *(var_18h);
0x0000284c lw s1, 0x1c(sp) | s1 = *(var_1ch_2);
0x00002850 lw s0, 0x18(sp) | s0 = *(var_10h);
0x00002854 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00002858 addiu a0, zero, 0xa | a0 = 0xa;
0x0000285c addiu sp, sp, 0x38 |
0x00002860 jr t9 | t9 ();
| label_10:
0x00002864 move a1, a0 | a1 = a0;
0x00002868 addiu a0, zero, 0xa | a0 = 0xa;
0x0000286c jalr t9 | t9 ();
0x00002870 move s6, zero | s6 = 0;
0x00002874 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (s5 != 0) {
0x00002878 bnez s5, 0x2898 | goto label_11;
| }
| do {
0x0000287c lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00002880 lw a1, (s2) | a1 = *(s2);
0x00002884 addiu a0, zero, 0x20 | a0 = 0x20;
0x00002888 addiu s6, s6, 1 | s6++;
0x0000288c jalr t9 | t9 ();
0x00002890 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00002894 bne s6, s3, 0x287c |
| } while (s6 != s3);
| label_11:
0x00002898 lw a0, (s2) | a0 = *(s2);
0x0000289c b 0x27d0 | goto label_2;
0x000028a0 lui gp, 2 |
0x000028a4 addiu gp, gp, -0x5870 |
0x000028a8 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x000028ac beqz a0, 0x2a60 | goto label_12;
| }
0x000028b0 nop |
0x000028b4 addiu sp, sp, -0x30 |
0x000028b8 sw s4, 0x28(sp) | *(var_28h) = s4;
0x000028bc lw s4, -0x7fd8(gp) | s4 = *((gp - 8182));
0x000028c0 sw s0, 0x18(sp) | *(var_18h) = s0;
0x000028c4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000028c8 lw v0, 0x52a0(s4) | v0 = *((s4 + 5288));
0x000028cc sw s3, 0x24(sp) | *(var_24h) = s3;
0x000028d0 andi s0, v0, 0x10 | s0 = v0 & 0x10;
0x000028d4 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x000028d8 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000028dc sw s2, 0x20(sp) | *(var_20h) = s2;
0x000028e0 move s3, a0 | s3 = a0;
0x000028e4 move s1, a1 | s1 = a1;
| if (s0 == 0) {
0x000028e8 beqz s0, 0x2968 | goto label_13;
| }
0x000028ec lw s2, -0x7f6c(gp) | s2 = *((gp - 8155));
0x000028f0 move s0, zero | s0 = 0;
| if (a1 <= 0) {
0x000028f4 blez a1, 0x2914 | goto label_14;
| }
| do {
0x000028f8 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x000028fc lw a1, (s2) | a1 = *(s2);
0x00002900 addiu a0, zero, 0x20 | a0 = 0x20;
0x00002904 addiu s0, s0, 1 | s0++;
0x00002908 jalr t9 | t9 ();
0x0000290c lw gp, 0x10(sp) | gp = *(var_10h);
0x00002910 bne s1, s0, 0x28f8 |
| } while (s1 != s0);
| label_14:
0x00002914 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00002918 lw a0, (s2) | a0 = *(s2);
0x0000291c lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x00002920 addiu a1, zero, 1 | a1 = 1;
0x00002924 move a3, s3 | a3 = s3;
0x00002928 addiu a2, a2, 0x4714 | a2 += str.__20s_;
| label_4:
0x0000292c jalr t9 | t9 ();
0x00002930 nop |
0x00002934 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002938 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000293c lw s4, 0x28(sp) | s4 = *(var_28h);
0x00002940 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00002944 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00002948 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0000294c move a1, s1 | a1 = s1;
0x00002950 move a0, s3 | a0 = s3;
0x00002954 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00002958 lw s3, 0x24(sp) | s3 = *(var_24h);
0x0000295c addiu t9, t9, 0x2638 | t9 += 0x2638;
0x00002960 addiu sp, sp, 0x30 |
0x00002964 b 0x2638 | goto label_3;
| label_13:
0x00002968 andi v1, v0, 1 | v1 = v0 & 1;
0x0000296c andi v0, v0, 2 | v0 &= 2;
| if (v1 == 0) {
0x00002970 bnez v1, 0x2994 |
0x00002974 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (v0 == 0) {
0x00002978 beqz v0, 0x2a3c | goto label_15;
| }
0x0000297c lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00002980 lw t9, -0x7ecc(gp) | t9 = sym.imp.strcmp;
0x00002984 lw a1, 0x529c(v0) | a1 = *((v0 + 5287));
0x00002988 jalr t9 | t9 ();
0x0000298c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00002990 bnez v0, 0x2a38 | goto label_16;
| }
| }
0x00002994 lw s2, -0x7f6c(gp) | s2 = *((gp - 8155));
| if (s1 <= 0) {
0x00002998 blez s1, 0x29b8 | goto label_17;
| }
| do {
0x0000299c lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x000029a0 lw a1, (s2) | a1 = *(s2);
0x000029a4 addiu a0, zero, 0x20 | a0 = 0x20;
0x000029a8 addiu s0, s0, 1 | s0++;
0x000029ac jalr t9 | t9 ();
0x000029b0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000029b4 bne s1, s0, 0x299c |
| } while (s1 != s0);
| label_17:
0x000029b8 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x000029bc lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x000029c0 lw a0, (s2) | a0 = *(s2);
0x000029c4 move a3, s3 | a3 = s3;
0x000029c8 addiu a2, a2, 0x471c | a2 += str.__20s;
0x000029cc addiu a1, zero, 1 | a1 = 1;
0x000029d0 jalr t9 | t9 ();
0x000029d4 lw v0, 0x52a0(s4) | v0 = *((s4 + 5288));
0x000029d8 andi v0, v0, 2 | v0 &= 2;
0x000029dc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000029e0 beqz v0, 0x2a58 | goto label_18;
| }
0x000029e4 lw v0, 0x140(s3) | v0 = *(s3);
0x000029e8 lw s0, (s2) | s0 = *(s2);
| if (v0 == 0) {
0x000029ec beqz v0, 0x2a0c | goto label_19;
| }
0x000029f0 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x000029f4 lw t9, -0x7ecc(gp) | t9 = sym.imp.strcmp;
0x000029f8 move a0, s3 | a0 = s3;
0x000029fc lw a1, 0x529c(v0) | a1 = *((v0 + 5287));
0x00002a00 jalr t9 | t9 ();
0x00002a04 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00002a08 beqz v0, 0x2a68 | goto label_20;
| }
| do {
| label_19:
0x00002a0c lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00002a10 lw s4, 0x28(sp) | s4 = *(var_28h);
0x00002a14 lw s3, 0x24(sp) | s3 = *(var_24h);
0x00002a18 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00002a1c lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00002a20 move a1, s0 | a1 = s0;
0x00002a24 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00002a28 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00002a2c addiu a0, zero, 0xa | a0 = 0xa;
0x00002a30 addiu sp, sp, 0x30 |
0x00002a34 jr t9 | t9 ();
| label_16:
0x00002a38 lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_15:
0x00002a3c lw s4, 0x28(sp) | s4 = *(var_28h);
0x00002a40 lw s3, 0x24(sp) | s3 = *(var_24h);
0x00002a44 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00002a48 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00002a4c lw s0, 0x18(sp) | s0 = *(var_18h);
0x00002a50 addiu sp, sp, 0x30 |
0x00002a54 jr ra | return v0;
| label_18:
0x00002a58 lw s0, (s2) | s0 = *(s2);
0x00002a5c b 0x2a0c |
| } while (1);
| label_12:
0x00002a60 jr ra | return v0;
0x00002a64 nop |
| label_20:
0x00002a68 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00002a6c lw t9, -0x7f04(gp) | t9 = sym.imp.fwrite;
0x00002a70 addiu a1, zero, 1 | a1 = 1;
0x00002a74 addiu a0, a0, 0x4724 | a0 += 0x4724;
0x00002a78 move a3, s0 | a3 = s0;
0x00002a7c addiu a2, zero, 2 | a2 = 2;
0x00002a80 b 0x292c | goto label_4;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/systool @ 0x2f9c */
| #include <stdint.h>
|
; (fcn) fcn.00002f9c () | void fcn_00002f9c () {
| label_3:
0x00002f9c lui gp, 2 |
0x00002fa0 addiu gp, gp, -0x5f6c |
0x00002fa4 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00002fa8 beqz a0, 0x31bc | goto label_9;
| }
0x00002fac nop |
0x00002fb0 addiu sp, sp, -0x38 |
0x00002fb4 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x00002fb8 lw s1, -0x7f6c(gp) | s1 = *((gp - 8155));
0x00002fbc sw gp, 0x10(sp) | *(var_10h) = gp;
0x00002fc0 sw s4, 0x28(sp) | *(var_28h) = s4;
0x00002fc4 sw s2, 0x20(sp) | *(var_20h) = s2;
0x00002fc8 move s4, a0 | s4 = a0;
0x00002fcc sw ra, 0x34(sp) | *(var_34h) = ra;
0x00002fd0 sw s6, 0x30(sp) | *(var_30h) = s6;
0x00002fd4 sw s5, 0x2c(sp) | *(var_2ch) = s5;
0x00002fd8 sw s3, 0x24(sp) | *(var_24h) = s3;
0x00002fdc sw s0, 0x18(sp) | *(var_18h) = s0;
0x00002fe0 move s2, a1 | s2 = a1;
0x00002fe4 lw a0, (s1) | a0 = *(s1);
| if (a1 <= 0) {
0x00002fe8 blez a1, 0x3294 | goto label_10;
| }
0x00002fec move s0, zero | s0 = 0;
0x00002ff0 b 0x2ffc |
| while (s2 != v0) {
0x00002ff4 lw a0, (s1) | a0 = *(s1);
0x00002ff8 move s0, v0 | s0 = v0;
0x00002ffc lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00003000 move a1, a0 | a1 = a0;
0x00003004 addiu a0, zero, 0x20 | a0 = 0x20;
0x00003008 jalr t9 | t9 ();
0x0000300c addiu v0, s0, 1 | v0 = s0 + 1;
0x00003010 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003014 bne s2, v0, 0x2ff4 |
| }
0x00003018 lw s5, -0x7fd8(gp) | s5 = *((gp - 8182));
0x0000301c lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00003020 lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x00003024 lw a0, (s1) | a0 = *(s1);
0x00003028 move a3, s4 | a3 = s4;
0x0000302c addiu a2, a2, 0x47b0 | a2 += str.Class_Device____s__n;
0x00003030 addiu a1, zero, 1 | a1 = 1;
0x00003034 jalr t9 | t9 ();
0x00003038 lw v0, 0x52a0(s5) | v0 = *((s5 + 5288));
0x0000303c andi v1, v0, 0x90 | v1 = v0 & 0x90;
0x00003040 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 == 0) {
0x00003044 beqz v1, 0x3094 | goto label_11;
| }
0x00003048 move s3, zero | s3 = 0;
0x0000304c b 0x3054 |
| while (s0 != s3) {
0x00003050 move s3, v0 | s3 = v0;
0x00003054 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00003058 lw a1, (s1) | a1 = *(s1);
0x0000305c addiu a0, zero, 0x20 | a0 = 0x20;
0x00003060 jalr t9 | t9 ();
0x00003064 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003068 addiu v0, s3, 1 | v0 = s3 + 1;
0x0000306c bne s0, s3, 0x3050 |
| }
| label_7:
0x00003070 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00003074 lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x00003078 lw a0, (s1) | a0 = *(s1);
0x0000307c addiu a3, s4, 0x40 | a3 = s4 + 0x40;
0x00003080 addiu a2, a2, 0x4774 | a2 += str.Class_Device_path____s__n;
0x00003084 addiu a1, zero, 1 | a1 = 1;
0x00003088 jalr t9 | t9 ();
0x0000308c lw gp, 0x10(sp) | gp = *(var_10h);
0x00003090 lw v0, 0x52a0(s5) | v0 = *((s5 + 5288));
| label_11:
0x00003094 andi v1, v0, 0x13 | v1 = v0 & 0x13;
| label_8:
0x00003098 andi v1, v0, 0x14 | v1 = v0 & 0x14;
| if (v1 != 0) {
0x0000309c bnez v1, 0x3138 | goto label_12;
| }
0x000030a0 lw t9, -0x7ec0(gp) | t9 = sym.imp.sysfs_get_classdev_device;
| if (v1 != 0) {
0x000030a4 bnez v1, 0x30f8 | goto label_2;
| }
| label_1:
0x000030a8 lw v1, -0x7fd8(gp) | v1 = *((gp - 8182));
0x000030ac lw v1, 0x5298(v1) | v1 = *((v1 + 5286));
0x000030b0 addiu v1, zero, -0x14 | v1 = -0x14;
0x000030b4 beqz v1, 0x30c4 |
| while (v1 != 0) {
| label_6:
0x000030b8 andi v1, v0, 0x40 | v1 = v0 & 0x40;
0x000030bc addiu v1, zero, -0x14 | v1 = -0x14;
| if (v1 != 0) {
0x000030c0 bnez v1, 0x31c4 | goto label_13;
| }
| label_0:
0x000030c4 and v0, v0, v1 | v0 &= v1;
0x000030c8 lw a1, (s1) | a1 = *(s1);
| if (v0 == 0) {
0x000030cc bnel v0, zero, 0x318c | goto label_5;
| }
0x000030d0 lw ra, 0x34(sp) | ra = *(var_34h);
| label_4:
0x000030d4 lw s6, 0x30(sp) | s6 = *(var_30h);
0x000030d8 lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x000030dc lw s4, 0x28(sp) | s4 = *(var_28h);
0x000030e0 lw s3, 0x24(sp) | s3 = *(var_24h);
0x000030e4 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000030e8 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000030ec lw s0, 0x18(sp) | s0 = *(var_18h);
0x000030f0 addiu sp, sp, 0x38 |
0x000030f4 jr ra | return v1;
| label_2:
0x000030f8 move a0, s4 | a0 = s4;
0x000030fc jalr t9 | t9 ();
0x00003100 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00003104 beqz v0, 0x327c | goto label_14;
| }
0x00003108 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x0000310c move a0, v0 | a0 = v0;
0x00003110 addiu t9, t9, 0x2f08 | t9 += fcn.00002f08;
0x00003114 addiu a1, s2, 2 | a1 = s2 + 2;
0x00003118 bal 0x2f08 | fcn_00002f08 ();
0x0000311c lw gp, 0x10(sp) | gp = *(var_10h);
0x00003120 lw v1, -0x7fd8(gp) | v1 = *((gp - 8182));
0x00003124 lw v1, 0x5298(v1) | v1 = *((v1 + 5286));
0x00003128 lw v0, 0x52a0(s5) | v0 = *((s5 + 5288));
0x0000312c bnez v1, 0x30b8 |
| }
0x00003130 addiu v1, zero, -0x14 | v1 = -0x14;
0x00003134 b 0x30c4 | goto label_0;
| label_12:
0x00003138 lw t9, -0x7fa0(gp) | t9 = sym.imp.sysfs_get_classdev_attributes;
0x0000313c move a0, s4 | a0 = s4;
0x00003140 jalr t9 | t9 ();
0x00003144 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00003148 beqz v0, 0x3164 |
0x0000314c lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00003150 addiu a1, s2, 2 | a1 = s2 + 2;
0x00003154 addiu t9, t9, 0x2a84 | t9 += fcn.00002a84;
0x00003158 move a0, v0 | a0 = v0;
0x0000315c bal 0x2a84 | fcn_00002a84 ();
0x00003160 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00003164 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00003168 lw a1, (s1) | a1 = *(s1);
0x0000316c addiu a0, zero, 0xa | a0 = 0xa;
0x00003170 jalr t9 | t9 ();
0x00003174 lw v0, 0x52a0(s5) | v0 = *((s5 + 5288));
0x00003178 andi v1, v0, 0x14 | v1 = v0 & 0x14;
0x0000317c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 == 0) {
0x00003180 beqz v1, 0x30a8 | goto label_1;
| }
0x00003184 lw t9, -0x7ec0(gp) | t9 = sym.imp.sysfs_get_classdev_device;
0x00003188 b 0x30f8 | goto label_2;
| label_5:
0x0000318c lw ra, 0x34(sp) | ra = *(var_34h);
0x00003190 lw s6, 0x30(sp) | s6 = *(var_30h);
0x00003194 lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x00003198 lw s4, 0x28(sp) | s4 = *(var_28h);
0x0000319c lw s3, 0x24(sp) | s3 = *(var_24h);
0x000031a0 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000031a4 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000031a8 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000031ac lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x000031b0 addiu a0, zero, 0xa | a0 = 0xa;
0x000031b4 addiu sp, sp, 0x38 |
0x000031b8 jr t9 | t9 ();
| label_9:
0x000031bc jr ra | return v1;
0x000031c0 nop |
| label_13:
0x000031c4 addiu v1, zero, -0x41 | v1 = -0x41;
0x000031c8 lw t9, -0x7f08(gp) | t9 = sym.imp.sysfs_get_classdev_parent;
0x000031cc and v0, v0, v1 | v0 &= v1;
0x000031d0 move a0, s4 | a0 = s4;
0x000031d4 sw v0, 0x52a0(s5) | *((s5 + 5288)) = v0;
0x000031d8 jalr t9 | t9 ();
0x000031dc move s6, v0 | s6 = v0;
0x000031e0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000031e4 beqz v0, 0x3260 | goto label_15;
| }
0x000031e8 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x000031ec lw a1, (s1) | a1 = *(s1);
0x000031f0 addiu a0, zero, 0xa | a0 = 0xa;
0x000031f4 jalr t9 | t9 ();
0x000031f8 slti v0, s2, -1 | v0 = (s2 < -1) ? 1 : 0;
0x000031fc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00003200 bnez v0, 0x3228 | goto label_16;
| }
0x00003204 addiu s3, s2, 2 | s3 = s2 + 2;
0x00003208 move s0, zero | s0 = 0;
| do {
0x0000320c lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00003210 lw a1, (s1) | a1 = *(s1);
0x00003214 addiu a0, zero, 0x20 | a0 = 0x20;
0x00003218 addiu s0, s0, 1 | s0++;
0x0000321c jalr t9 | t9 ();
0x00003220 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003224 bne s0, s3, 0x320c |
| } while (s0 != s3);
| label_16:
0x00003228 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x0000322c lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x00003230 lw a0, (s1) | a0 = *(s1);
0x00003234 move a3, s4 | a3 = s4;
0x00003238 addiu a2, a2, 0x4790 | a2 += str.Class_device___s_s_parent_is_n;
0x0000323c addiu a1, zero, 1 | a1 = 1;
0x00003240 jalr t9 | t9 ();
0x00003244 lw gp, 0x10(sp) | gp = *(var_10h);
0x00003248 addiu a1, s2, 4 | a1 = s2 + 4;
0x0000324c lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00003250 addiu t9, t9, 0x2f9c | t9 += fcn.00002f9c;
0x00003254 move a0, s6 | a0 = s6;
0x00003258 bal 0x2f9c | fcn_00002f9c ();
| goto label_3;
0x0000325c lw gp, 0x10(sp) | gp = *(var_10h);
| label_15:
0x00003260 lw v0, 0x52a0(s5) | v0 = *((s5 + 5288));
0x00003264 addiu v1, zero, -0x14 | v1 = -0x14;
0x00003268 and v0, v0, v1 | v0 &= v1;
| if (v0 == 0) {
0x0000326c beql v0, zero, 0x30d4 | goto label_4;
| }
0x00003270 lw ra, 0x34(sp) | ra = *(var_34h);
0x00003274 lw a1, (s1) | a1 = *(s1);
0x00003278 b 0x318c | goto label_5;
| label_14:
0x0000327c lw v1, -0x7fd8(gp) | v1 = *((gp - 8182));
0x00003280 lw v1, 0x5298(v1) | v1 = *((v1 + 5286));
0x00003284 lw v0, 0x52a0(s5) | v0 = *((s5 + 5288));
| if (v1 != 0) {
0x00003288 bnez v1, 0x30b8 | goto label_6;
| }
0x0000328c addiu v1, zero, -0x14 | v1 = -0x14;
0x00003290 b 0x30c4 | goto label_0;
| label_10:
0x00003294 lw s5, -0x7fd8(gp) | s5 = *((gp - 8182));
0x00003298 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x0000329c lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x000032a0 move a3, s4 | a3 = s4;
0x000032a4 addiu a2, a2, 0x47b0 | a2 += str.Class_Device____s__n;
0x000032a8 addiu a1, zero, 1 | a1 = 1;
0x000032ac jalr t9 | t9 ();
0x000032b0 lw v0, 0x52a0(s5) | v0 = *((s5 + 5288));
0x000032b4 andi v1, v0, 0x90 | v1 = v0 & 0x90;
0x000032b8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 != 0) {
0x000032bc bnez v1, 0x3070 | goto label_7;
| }
0x000032c0 andi v1, v0, 0x13 | v1 = v0 & 0x13;
0x000032c4 b 0x3098 | goto label_8;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/systool @ 0x3378 */
| #include <stdint.h>
|
; (fcn) fcn.00003378 () | void fcn_00003378 () {
0x00003378 lui gp, 2 |
0x0000337c addiu gp, gp, -0x6348 |
0x00003380 addu gp, gp, t9 | gp += t9;
0x00003384 addiu sp, sp, -0x30 |
0x00003388 lw v0, -0x7ee0(gp) | v0 = *((gp - 8120));
0x0000338c lw t9, -0x7f54(gp) | t9 = sym.imp.__errno_location;
0x00003390 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00003394 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00003398 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0000339c sw s0, 0x20(sp) | *(var_20h) = s0;
0x000033a0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000033a4 move s2, a1 | s2 = a1;
0x000033a8 move s1, a0 | s1 = a0;
0x000033ac lw s0, (v0) | s0 = *(v0);
0x000033b0 jalr t9 | t9 ();
0x000033b4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000033b8 lw t9, -0x7f1c(gp) | t9 = sym.imp.strerror;
0x000033bc lw a0, (v0) | a0 = *(v0);
0x000033c0 jalr t9 | t9 ();
0x000033c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000033c8 sw s2, 0x10(sp) | *(var_10h) = s2;
0x000033cc move a3, s1 | a3 = s1;
0x000033d0 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x000033d4 lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x000033d8 move a0, s0 | a0 = s0;
0x000033dc sw v0, 0x14(sp) | *(var_14h) = v0;
0x000033e0 addiu a2, a2, 0x4af0 | a2 += str._s:__s:__s_n;
0x000033e4 addiu a1, zero, 1 | a1 = 1;
0x000033e8 jalr t9 | t9 ();
0x000033ec lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000033f0 lw s2, 0x28(sp) | s2 = *(var_28h);
0x000033f4 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000033f8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000033fc addiu sp, sp, 0x30 |
0x00003400 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/systool @ 0x11c0 */
| #include <stdint.h>
|
; (fcn) main () | int32_t main () {
| /* [13] -r-x section size 12320 named .text */
0x000011c0 lui gp, 2 |
0x000011c4 addiu gp, gp, -0x4190 |
0x000011c8 addu gp, gp, t9 | gp += t9;
0x000011cc lw v0, -0x7ef0(gp) | v0 = *((gp - 8124));
0x000011d0 addiu sp, sp, -0xa0 |
0x000011d4 lw v0, (v0) | v0 = *(v0);
0x000011d8 sw s2, 0x80(sp) | *(var_80h) = s2;
0x000011dc lw s2, -0x7fdc(gp) | s2 = *((gp - 8183));
0x000011e0 sw fp, 0x98(sp) | *(var_98h) = fp;
0x000011e4 sw s7, 0x94(sp) | *(var_94h) = s7;
0x000011e8 sw s6, 0x90(sp) | *(var_90h) = s6;
0x000011ec sw s3, 0x84(sp) | *(var_84h) = s3;
0x000011f0 lw s6, -0x7fd8(gp) | s6 = *((gp - 8182));
0x000011f4 lw s3, -0x7fd8(gp) | s3 = *((gp - 8182));
0x000011f8 lw s7, -0x7f90(gp) | s7 = *((gp - 8164));
0x000011fc lw fp, -0x7fd8(gp) | fp = *((gp - 8182));
0x00001200 sw s5, 0x8c(sp) | *(var_8ch) = s5;
0x00001204 sw s4, 0x88(sp) | *(var_88h) = s4;
0x00001208 sw s1, 0x7c(sp) | *(var_7ch) = s1;
0x0000120c sw s0, 0x78(sp) | *(var_78h) = s0;
0x00001210 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00001214 sw ra, 0x9c(sp) | *(var_9ch) = ra;
0x00001218 move s4, a0 | s4 = a0;
0x0000121c move s5, a1 | s5 = a1;
0x00001220 sw v0, 0x74(sp) | *(var_74h) = v0;
0x00001224 move s1, zero | s1 = 0;
0x00001228 move s0, zero | s0 = 0;
0x0000122c addiu s2, s2, 0x4a10 | s2 += 0x4a10;
0x00001230 lw t9, -0x7f38(gp) | t9 = sym.imp.getopt;
| /* str.aA:b:c:dDhm:pP:v */
0x00001234 addiu a2, s6, 0x5010 | a2 = s6 + 0x5010;
0x00001238 move a1, s5 | a1 = s5;
0x0000123c move a0, s4 | a0 = s4;
0x00001240 jalr t9 | t9 ();
0x00001244 addiu v1, zero, -1 | v1 = -1;
0x00001248 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == v1) {
0x0000124c beq v0, v1, 0x1394 | goto label_21;
| }
0x00001250 addiu v0, v0, -0x41 | v0 += -0x41;
0x00001254 sltiu v1, v0, 0x36 | v1 = (v0 < 0x36) ? 1 : 0;
0x00001258 sll v0, v0, 2 | v0 <<= 2;
| if (v1 != 0) {
0x0000125c beqz v1, 0x1374 |
0x00001260 lwx v0, v0(s2) | __asm ("lwx v0, v0(s2)");
0x00001264 addu v0, v0, gp | v0 += gp;
0x00001268 jr v0 | v0 ();
0x0000126c nop |
| label_13:
0x00001348 andi v1, v0, 0xc | v1 = v0 & 0xc;
| if (v1 == 0) {
0x0000134c beqz v1, 0x2160 | goto label_22;
| }
0x00001350 lw v0, -0x7ee0(gp) | v0 = *((gp - 8120));
0x00001354 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00001358 lw t9, -0x7f04(gp) | t9 = sym.imp.fwrite;
0x0000135c lw a3, (v0) | a3 = *(v0);
0x00001360 addiu a0, a0, 0x4838 | a0 += str.Please_specify_a_bus__class__module__or_root_device_n;
0x00001364 addiu a2, zero, 0x34 | a2 = 0x34;
0x00001368 addiu a1, zero, 1 | a1 = 1;
0x0000136c jalr t9 | t9 ();
0x00001370 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00001374 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
| do {
0x00001378 addiu t9, t9, 0x2490 | t9 += fcn.00002490;
0x0000137c bal 0x2490 | fcn_00002490 ();
0x00001380 nop |
0x00001384 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001388 lw t9, -0x7f24(gp) | t9 = sym.imp.exit;
0x0000138c addiu a0, zero, 1 | a0 = 1;
0x00001390 jalr t9 | t9 ();
| label_21:
0x00001394 lw v0, -0x7ef8(gp) | v0 = *((gp - 8126));
0x00001398 lw v0, (v0) | v0 = *(v0);
0x0000139c subu s4, s4, v0 | __asm ("subu s4, s4, v0");
0x000013a0 addiu v1, zero, 1 | v1 = 1;
| if (s4 == 0) {
0x000013a4 beqz s4, 0x13e8 | goto label_23;
| }
0x000013a8 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x000013ac bne s4, v1, 0x1378 |
| } while (s4 != v1);
0x000013b0 sll v0, v0, 2 | v0 <<= 2;
0x000013b4 lw t9, -0x7f30(gp) | t9 = sym.imp.strlen;
0x000013b8 lwx s5, v0(s5) | __asm ("lwx s5, v0(s5)");
0x000013bc move a0, s5 | a0 = s5;
0x000013c0 jalr t9 | t9 ();
0x000013c4 sltiu v0, v0, 0x40 | v0 = (v0 < 0x40) ? 1 : 0;
0x000013c8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000013cc beqz v0, 0x1710 | goto label_24;
| }
0x000013d0 lw v1, -0x7fd8(gp) | v1 = *((gp - 8182));
0x000013d4 lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x000013d8 lw v0, 0x52a0(v1) | v0 = *((v1 + 5288));
0x000013dc sw s5, 0x5298(a0) | *((a0 + 5286)) = s5;
0x000013e0 ori v0, v0, 4 | v0 |= 4;
0x000013e4 sw v0, 0x52a0(v1) | *((v1 + 5288)) = v0;
| label_23:
0x000013e8 lw s6, -0x7fd8(gp) | s6 = *((gp - 8182));
0x000013ec lw t9, -0x7f3c(gp) | t9 = sym.imp.sysfs_get_mnt_path;
0x000013f0 addiu a1, zero, 0x100 | a1 = 0x100;
0x000013f4 addiu a0, s6, 0x5198 | a0 = s6 + 0x5198;
0x000013f8 jalr t9 | t9 ();
0x000013fc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00001400 bnez v0, 0x1740 | goto label_25;
| }
0x00001404 lw v0, -0x7fd4(gp) | v0 = *(gp);
0x00001408 lw s4, -0x7fd8(gp) | s4 = *((gp - 8182));
0x0000140c sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00001410 lw s3, (v0) | s3 = *(v0);
0x00001414 lw v0, 0x52a0(s4) | v0 = *((s4 + 5288));
| if (s3 == 0) {
0x00001418 beqz s3, 0x155c | goto label_26;
| }
0x0000141c andi v1, v0, 0xc | v1 = v0 & 0xc;
0x00001420 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
| if (v1 == 0) {
0x00001424 bnez v1, 0x1430 |
0x00001428 ori v0, v0, 4 | v0 |= 4;
0x0000142c sw v0, 0x52a0(s4) | *((s4 + 5288)) = v0;
| }
0x00001430 lw t9, -0x7ecc(gp) | t9 = sym.imp.strcmp;
0x00001434 addiu a1, a1, 0x4728 | a1 += 0x4728;
0x00001438 move a0, s3 | a0 = s3;
0x0000143c jalr t9 | t9 ();
0x00001440 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00001444 beqz v0, 0x1ca0 | goto label_27;
| }
| label_6:
0x00001448 lw t9, -0x7f50(gp) | t9 = sym.imp.sysfs_open_bus;
0x0000144c move a0, s3 | a0 = s3;
0x00001450 jalr t9 | t9 ();
0x00001454 sw v0, 0x20(sp) | *(var_20h) = v0;
0x00001458 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0000145c beqz v0, 0x2170 | goto label_28;
| }
0x00001460 lw s2, -0x7f6c(gp) | s2 = *((gp - 8155));
0x00001464 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00001468 lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x0000146c lw a0, (s2) | a0 = *(s2);
0x00001470 move a3, s3 | a3 = s3;
0x00001474 addiu a2, a2, 0x48a4 | a2 += str.Bus____s__n;
0x00001478 addiu a1, zero, 1 | a1 = 1;
0x0000147c jalr t9 | t9 ();
0x00001480 lw v1, 0x52a0(s4) | v1 = *((s4 + 5288));
0x00001484 addiu v0, zero, 0xc | v0 = 0xc;
0x00001488 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 != v0) {
0x0000148c bne v1, v0, 0x1c4c | goto label_29;
| }
0x00001490 lw t9, -0x7f60(gp) | t9 = sym.imp.sysfs_get_bus_devices;
| label_5:
0x00001494 lw a0, 0x20(sp) | a0 = *(var_20h);
0x00001498 jalr t9 | t9 ();
0x0000149c move fp, v0 | fp = v0;
0x000014a0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000014a4 beqz v0, 0x1534 | goto label_4;
| }
0x000014a8 lw t9, -0x7f2c(gp) | t9 = sym.imp.dlist_start;
0x000014ac move a0, v0 | a0 = v0;
0x000014b0 jalr t9 | t9 ();
0x000014b4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000014b8 addiu a1, zero, 1 | a1 = 1;
0x000014bc lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x000014c0 move a0, fp | a0 = fp;
0x000014c4 jalr t9 | t9 ();
0x000014c8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000014cc move s3, v0 | s3 = v0;
0x000014d0 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x000014d4 lw s5, -0x7fd8(gp) | s5 = *((gp - 8182));
0x000014d8 addiu s7, v0, 0x2f08 | s7 = v0 + fcn.00002f08;
0x000014dc b 0x1524 |
| while (a0 != v0) {
0x000014e0 lw t9, -0x7ecc(gp) | t9 = sym.imp.strcmp;
| if (a0 != 0) {
0x000014e4 beqz a0, 0x14f8 |
0x000014e8 addiu a1, s3, 0x144 | a1 = s3 + 0x144;
0x000014ec jalr t9 | t9 ();
0x000014f0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000014f4 bnez v0, 0x150c | goto label_30;
| }
| }
0x000014f8 addiu a1, zero, 2 | a1 = 2;
0x000014fc move t9, s7 | t9 = s7;
0x00001500 move a0, s3 | a0 = s3;
0x00001504 bal 0x2f08 | fcn_00002f08 ();
0x00001508 lw gp, 0x10(sp) | gp = *(var_10h);
| label_30:
0x0000150c lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00001510 addiu a1, zero, 1 | a1 = 1;
0x00001514 move a0, fp | a0 = fp;
0x00001518 jalr t9 | t9 ();
0x0000151c lw gp, 0x10(sp) | gp = *(var_10h);
0x00001520 move s3, v0 | s3 = v0;
0x00001524 lw a0, (fp) | a0 = *(fp);
0x00001528 lw v0, 0x1c(fp) | v0 = *(arg_1ch);
0x0000152c lw a0, 0x5298(s5) | a0 = *((s5 + 5286));
0x00001530 bne a0, v0, 0x14e0 |
| }
| label_4:
0x00001534 lw v0, 0x52a0(s4) | v0 = *((s4 + 5288));
0x00001538 andi v0, v0, 8 | v0 &= 8;
0x0000153c lw t9, -0x7f18(gp) | t9 = sym.imp.sysfs_get_bus_drivers;
| if (v0 != 0) {
0x00001540 bnez v0, 0x1d00 | goto label_31;
| }
| label_8:
0x00001544 lw t9, -0x7f7c(gp) | t9 = sym.imp.sysfs_close_bus;
| label_9:
0x00001548 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0000154c move s2, zero | s2 = 0;
0x00001550 jalr t9 | t9 ();
0x00001554 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001558 b 0x1578 | goto label_16;
| label_26:
0x0000155c andi v1, v0, 0xc | v1 = v0 & 0xc;
| if (s0 == 0) {
0x00001560 beqz s0, 0x2158 | goto label_32;
| }
0x00001564 lw t9, -0x7edc(gp) | t9 = sym.imp.sysfs_open_class;
| if (v1 == 0) {
0x00001568 bnez v1, 0x1580 |
0x0000156c ori v0, v0, 4 | v0 |= 4;
| label_14:
0x00001570 sw v0, 0x52a0(s4) | *((s4 + 5288)) = v0;
0x00001574 move s2, zero | s2 = 0;
| label_16:
0x00001578 lw t9, -0x7edc(gp) | t9 = sym.imp.sysfs_open_class;
| if (s0 == 0) {
0x0000157c beqz s0, 0x1670 | goto label_15;
| }
| }
0x00001580 move a0, s0 | a0 = s0;
0x00001584 jalr t9 | t9 ();
0x00001588 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000158c move s5, v0 | s5 = v0;
0x00001590 lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
| if (v0 == 0) {
0x00001594 beqz v0, 0x223c | goto label_33;
| }
0x00001598 lw v0, -0x7f6c(gp) | v0 = *((gp - 8155));
0x0000159c lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x000015a0 move a3, s0 | a3 = s0;
0x000015a4 lw a0, (v0) | a0 = *(v0);
0x000015a8 addiu a2, a2, 0x4908 | a2 += str.Class____s__n_n;
0x000015ac addiu a1, zero, 1 | a1 = 1;
0x000015b0 jalr t9 | t9 ();
0x000015b4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000015b8 lw t9, -0x7f00(gp) | t9 = sym.imp.sysfs_get_class_devices;
0x000015bc move a0, s5 | a0 = s5;
0x000015c0 jalr t9 | t9 ();
0x000015c4 move s2, v0 | s2 = v0;
0x000015c8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000015cc beqz v0, 0x165c | goto label_34;
| }
0x000015d0 lw t9, -0x7f2c(gp) | t9 = sym.imp.dlist_start;
0x000015d4 move a0, v0 | a0 = v0;
0x000015d8 jalr t9 | t9 ();
0x000015dc lw gp, 0x10(sp) | gp = *(var_10h);
0x000015e0 addiu a1, zero, 1 | a1 = 1;
0x000015e4 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x000015e8 move a0, s2 | a0 = s2;
0x000015ec jalr t9 | t9 ();
0x000015f0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000015f4 move fp, v0 | fp = v0;
0x000015f8 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x000015fc lw s3, -0x7fd8(gp) | s3 = *((gp - 8182));
0x00001600 addiu s7, v0, 0x2f9c | s7 = v0 + fcn.00002f9c;
0x00001604 b 0x164c |
| while (a0 != v0) {
0x00001608 lw t9, -0x7ecc(gp) | t9 = sym.imp.strcmp;
| if (a0 != 0) {
0x0000160c beqz a0, 0x1620 |
0x00001610 move a1, fp | a1 = fp;
0x00001614 jalr t9 | t9 ();
0x00001618 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x0000161c bnez v0, 0x1634 | goto label_35;
| }
| }
0x00001620 addiu a1, zero, 2 | a1 = 2;
0x00001624 move t9, s7 | t9 = s7;
0x00001628 move a0, fp | a0 = fp;
0x0000162c bal 0x2f9c | fcn_00002f9c ();
0x00001630 lw gp, 0x10(sp) | gp = *(var_10h);
| label_35:
0x00001634 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00001638 addiu a1, zero, 1 | a1 = 1;
0x0000163c move a0, s2 | a0 = s2;
0x00001640 jalr t9 | t9 ();
0x00001644 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001648 move fp, v0 | fp = v0;
0x0000164c lw a0, (s2) | a0 = *(s2);
0x00001650 lw v0, 0x1c(s2) | v0 = *((s2 + 7));
0x00001654 lw a0, 0x5298(s3) | a0 = *((s3 + 5286));
0x00001658 bne a0, v0, 0x1608 |
| }
| label_34:
0x0000165c lw t9, -0x7ebc(gp) | t9 = sym.imp.sysfs_close_class;
0x00001660 move a0, s5 | a0 = s5;
0x00001664 jalr t9 | t9 ();
0x00001668 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000166c move s2, zero | s2 = 0;
| label_15:
0x00001670 lw t9, -0x7f40(gp) | t9 = sym.imp.sysfs_open_module;
| if (s1 != 0) {
0x00001674 beqz s1, 0x16d0 |
0x00001678 move a0, s1 | a0 = s1;
0x0000167c jalr t9 | t9 ();
0x00001680 move s5, v0 | s5 = v0;
0x00001684 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00001688 beqz v0, 0x219c | goto label_36;
| }
0x0000168c lw s2, -0x7f6c(gp) | s2 = *((gp - 8155));
0x00001690 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00001694 lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x00001698 lw a0, (s2) | a0 = *(s2);
0x0000169c move a3, s1 | a3 = s1;
0x000016a0 addiu a2, a2, 0x4934 | a2 += str.Module____s__n_n;
0x000016a4 addiu a1, zero, 1 | a1 = 1;
0x000016a8 jalr t9 | t9 ();
0x000016ac lw v0, 0x52a0(s4) | v0 = *((s4 + 5288));
0x000016b0 andi v0, v0, 0x13 | v0 &= 0x13;
0x000016b4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000016b8 bnez v0, 0x1f54 | goto label_37;
| }
| label_12:
0x000016bc lw t9, -0x7f94(gp) | t9 = sym.imp.sysfs_close_module;
0x000016c0 move a0, s5 | a0 = s5;
0x000016c4 jalr t9 | t9 ();
0x000016c8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000016cc move s2, zero | s2 = 0;
| }
| label_17:
0x000016d0 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x000016d4 lw a0, (v0) | a0 = *(v0);
0x000016d8 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
| if (a0 == 0) {
0x000016dc beqz a0, 0x175c | goto label_38;
| }
| label_3:
0x000016e0 lw t9, -0x7ecc(gp) | t9 = sym.imp.strcmp;
0x000016e4 addiu a1, a1, 0x4728 | a1 += 0x4728;
0x000016e8 jalr t9 | t9 ();
0x000016ec lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000016f0 beqz v0, 0x1c74 | goto label_39;
| }
| label_2:
0x000016f4 lw v1, 0x52a0(s4) | v1 = *((s4 + 5288));
| label_0:
0x000016f8 addiu v0, zero, 4 | v0 = 4;
| label_1:
0x000016fc lw v0, -0x7f6c(gp) | v0 = *((gp - 8155));
| if (v1 == v0) {
0x00001700 beq v1, v0, 0x1ce8 | goto label_40;
| }
| label_7:
0x00001704 lw t9, -0x7f24(gp) | t9 = sym.imp.exit;
0x00001708 move a0, s2 | a0 = s2;
0x0000170c jalr t9 | t9 ();
| label_24:
0x00001710 lw v0, -0x7ee0(gp) | v0 = *((gp - 8120));
0x00001714 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00001718 lw t9, -0x7f04(gp) | t9 = sym.imp.fwrite;
0x0000171c lw a3, (v0) | a3 = *(v0);
0x00001720 addiu a0, a0, 0x47e8 | a0 += str.Invalid_argument___device_name_too_long_n;
0x00001724 addiu a2, zero, 0x28 | a2 = 0x28;
| do {
0x00001728 addiu a1, zero, 1 | a1 = 1;
0x0000172c jalr t9 | t9 ();
0x00001730 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001734 lw t9, -0x7f24(gp) | t9 = sym.imp.exit;
0x00001738 addiu a0, zero, 1 | a0 = 1;
0x0000173c jalr t9 | t9 ();
| label_25:
0x00001740 lw v0, -0x7ee0(gp) | v0 = *((gp - 8120));
0x00001744 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00001748 lw t9, -0x7f04(gp) | t9 = sym.imp.fwrite;
0x0000174c lw a3, (v0) | a3 = *(v0);
0x00001750 addiu a0, a0, 0x4814 | a0 += str.Unable_to_find_sysfs_mount_point__n;
0x00001754 addiu a2, zero, 0x22 | a2 = 0x22;
0x00001758 b 0x1728 |
| } while (1);
| label_38:
0x0000175c lw v1, 0x52a0(s4) | v1 = *((s4 + 5288));
| if (s0 != 0) {
0x00001760 bnez s0, 0x16f8 | goto label_0;
| }
0x00001764 addiu v0, zero, 4 | v0 = 4;
| if (s1 != 0) {
0x00001768 bnez s1, 0x16fc | goto label_1;
| }
0x0000176c addiu s0, sp, 0x34 | s0 = sp + 0x34;
0x00001770 lw t9, -0x7f58(gp) | t9 = sym.imp.strncpy;
0x00001774 addiu a2, zero, 0x3f | a2 = 0x3f;
0x00001778 addiu a1, s6, 0x5198 | a1 = s6 + 0x5198;
0x0000177c move a0, s0 | a0 = s0;
0x00001780 jalr t9 | t9 ();
0x00001784 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001788 move a0, s0 | a0 = s0;
0x0000178c lw t9, -0x7f30(gp) | t9 = sym.imp.strlen;
0x00001790 lw s3, -0x7fdc(gp) | s3 = *((gp - 8183));
0x00001794 addiu s1, zero, 0x3f | s1 = 0x3f;
0x00001798 jalr t9 | t9 ();
0x0000179c lw gp, 0x10(sp) | gp = *(var_10h);
0x000017a0 subu a2, s1, v0 | __asm ("subu a2, s1, v0");
0x000017a4 addiu a3, zero, 0x40 | a3 = 0x40;
0x000017a8 lw t9, -0x7f84(gp) | t9 = sym.imp.__strncat_chk;
0x000017ac addiu a1, s3, 0x4970 | a1 = s3 + 0x4970;
0x000017b0 move a0, s0 | a0 = s0;
0x000017b4 jalr t9 | t9 ();
0x000017b8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000017bc lw t9, -0x7f30(gp) | t9 = sym.imp.strlen;
0x000017c0 move a0, s0 | a0 = s0;
0x000017c4 jalr t9 | t9 ();
0x000017c8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000017cc subu a2, s1, v0 | __asm ("subu a2, s1, v0");
0x000017d0 addiu a3, zero, 0x40 | a3 = 0x40;
0x000017d4 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x000017d8 lw t9, -0x7f84(gp) | t9 = sym.imp.__strncat_chk;
0x000017dc addiu a1, a1, 0x4974 | a1 += 0x4974;
0x000017e0 move a0, s0 | a0 = s0;
0x000017e4 jalr t9 | t9 ();
0x000017e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000017ec lw t9, -0x7f74(gp) | t9 = sym.imp.sysfs_open_directory_list;
0x000017f0 move a0, s0 | a0 = s0;
0x000017f4 jalr t9 | t9 ();
0x000017f8 move s1, v0 | s1 = v0;
0x000017fc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00001800 beqz v0, 0x18a4 | goto label_41;
| }
0x00001804 lw s2, -0x7f6c(gp) | s2 = *((gp - 8155));
0x00001808 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x0000180c lw t9, -0x7f04(gp) | t9 = sym.imp.fwrite;
0x00001810 lw a3, (s2) | a3 = *(s2);
0x00001814 addiu a2, zero, 0x17 | a2 = 0x17;
0x00001818 addiu a1, zero, 1 | a1 = 1;
0x0000181c addiu a0, a0, 0x4978 | a0 += str.Supported_sysfs_buses:_n;
0x00001820 jalr t9 | t9 ();
0x00001824 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001828 lw t9, -0x7f2c(gp) | t9 = sym.imp.dlist_start;
0x0000182c move a0, s1 | a0 = s1;
0x00001830 jalr t9 | t9 ();
0x00001834 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001838 addiu a1, zero, 1 | a1 = 1;
0x0000183c lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00001840 move a0, s1 | a0 = s1;
0x00001844 jalr t9 | t9 ();
0x00001848 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000184c lw s5, -0x7fdc(gp) | s5 = *((gp - 8183));
0x00001850 addiu s5, s5, 0x4990 | s5 += str._t_s_n;
0x00001854 b 0x1884 |
| while (a0 != v1) {
0x00001858 lw a0, (s2) | a0 = *(s2);
0x0000185c move a3, v0 | a3 = v0;
0x00001860 move a2, s5 | a2 = s5;
0x00001864 addiu a1, zero, 1 | a1 = 1;
0x00001868 jalr t9 | t9 ();
0x0000186c lw gp, 0x10(sp) | gp = *(var_10h);
0x00001870 addiu a1, zero, 1 | a1 = 1;
0x00001874 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00001878 move a0, s1 | a0 = s1;
0x0000187c jalr t9 | t9 ();
0x00001880 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001884 lw a0, (s1) | a0 = *(s1);
0x00001888 lw v1, 0x1c(s1) | v1 = *((s1 + 7));
0x0000188c lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x00001890 bne a0, v1, 0x1858 |
| }
0x00001894 lw t9, -0x7f8c(gp) | t9 = sym.imp.sysfs_close_list;
0x00001898 move a0, s1 | a0 = s1;
0x0000189c jalr t9 | t9 ();
0x000018a0 lw gp, 0x10(sp) | gp = *(var_10h);
| label_41:
0x000018a4 lw t9, -0x7f58(gp) | t9 = sym.imp.strncpy;
0x000018a8 addiu a2, zero, 0x3f | a2 = 0x3f;
0x000018ac addiu a1, s6, 0x5198 | a1 = s6 + 0x5198;
0x000018b0 move a0, s0 | a0 = s0;
0x000018b4 jalr t9 | t9 ();
0x000018b8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000018bc move a0, s0 | a0 = s0;
0x000018c0 lw t9, -0x7f30(gp) | t9 = sym.imp.strlen;
0x000018c4 addiu s1, zero, 0x3f | s1 = 0x3f;
0x000018c8 jalr t9 | t9 ();
0x000018cc lw gp, 0x10(sp) | gp = *(var_10h);
0x000018d0 subu a2, s1, v0 | __asm ("subu a2, s1, v0");
0x000018d4 addiu a3, zero, 0x40 | a3 = 0x40;
0x000018d8 lw t9, -0x7f84(gp) | t9 = sym.imp.__strncat_chk;
0x000018dc addiu a1, s3, 0x4970 | a1 = s3 + 0x4970;
0x000018e0 move a0, s0 | a0 = s0;
0x000018e4 jalr t9 | t9 ();
0x000018e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000018ec lw t9, -0x7f30(gp) | t9 = sym.imp.strlen;
0x000018f0 move a0, s0 | a0 = s0;
0x000018f4 jalr t9 | t9 ();
0x000018f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000018fc subu a2, s1, v0 | __asm ("subu a2, s1, v0");
0x00001900 addiu a3, zero, 0x40 | a3 = 0x40;
0x00001904 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00001908 lw t9, -0x7f84(gp) | t9 = sym.imp.__strncat_chk;
0x0000190c addiu a1, a1, 0x4998 | a1 += str.class;
0x00001910 move a0, s0 | a0 = s0;
0x00001914 jalr t9 | t9 ();
0x00001918 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000191c lw t9, -0x7f74(gp) | t9 = sym.imp.sysfs_open_directory_list;
0x00001920 move a0, s0 | a0 = s0;
0x00001924 jalr t9 | t9 ();
0x00001928 move s1, v0 | s1 = v0;
0x0000192c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00001930 beqz v0, 0x19d4 | goto label_42;
| }
0x00001934 lw s2, -0x7f6c(gp) | s2 = *((gp - 8155));
0x00001938 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x0000193c lw t9, -0x7f04(gp) | t9 = sym.imp.fwrite;
0x00001940 lw a3, (s2) | a3 = *(s2);
0x00001944 addiu a2, zero, 0x19 | a2 = 0x19;
0x00001948 addiu a1, zero, 1 | a1 = 1;
0x0000194c addiu a0, a0, 0x49a0 | a0 += str.Supported_sysfs_classes:_n;
0x00001950 jalr t9 | t9 ();
0x00001954 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001958 lw t9, -0x7f2c(gp) | t9 = sym.imp.dlist_start;
0x0000195c move a0, s1 | a0 = s1;
0x00001960 jalr t9 | t9 ();
0x00001964 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001968 addiu a1, zero, 1 | a1 = 1;
0x0000196c lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00001970 move a0, s1 | a0 = s1;
0x00001974 jalr t9 | t9 ();
0x00001978 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000197c lw s5, -0x7fdc(gp) | s5 = *((gp - 8183));
0x00001980 addiu s5, s5, 0x4990 | s5 += str._t_s_n;
0x00001984 b 0x19b4 |
| while (a0 != v1) {
0x00001988 lw a0, (s2) | a0 = *(s2);
0x0000198c move a3, v0 | a3 = v0;
0x00001990 move a2, s5 | a2 = s5;
0x00001994 addiu a1, zero, 1 | a1 = 1;
0x00001998 jalr t9 | t9 ();
0x0000199c lw gp, 0x10(sp) | gp = *(var_10h);
0x000019a0 addiu a1, zero, 1 | a1 = 1;
0x000019a4 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x000019a8 move a0, s1 | a0 = s1;
0x000019ac jalr t9 | t9 ();
0x000019b0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000019b4 lw a0, (s1) | a0 = *(s1);
0x000019b8 lw v1, 0x1c(s1) | v1 = *((s1 + 7));
0x000019bc lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x000019c0 bne a0, v1, 0x1988 |
| }
0x000019c4 lw t9, -0x7f8c(gp) | t9 = sym.imp.sysfs_close_list;
0x000019c8 move a0, s1 | a0 = s1;
0x000019cc jalr t9 | t9 ();
0x000019d0 lw gp, 0x10(sp) | gp = *(var_10h);
| label_42:
0x000019d4 lw t9, -0x7f58(gp) | t9 = sym.imp.strncpy;
0x000019d8 addiu a2, zero, 0x3f | a2 = 0x3f;
0x000019dc addiu a1, s6, 0x5198 | a1 = s6 + 0x5198;
0x000019e0 move a0, s0 | a0 = s0;
0x000019e4 jalr t9 | t9 ();
0x000019e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000019ec move a0, s0 | a0 = s0;
0x000019f0 lw t9, -0x7f30(gp) | t9 = sym.imp.strlen;
0x000019f4 addiu s1, zero, 0x3f | s1 = 0x3f;
0x000019f8 jalr t9 | t9 ();
0x000019fc lw gp, 0x10(sp) | gp = *(var_10h);
0x00001a00 subu a2, s1, v0 | __asm ("subu a2, s1, v0");
0x00001a04 addiu a3, zero, 0x40 | a3 = 0x40;
0x00001a08 lw t9, -0x7f84(gp) | t9 = sym.imp.__strncat_chk;
0x00001a0c addiu a1, s3, 0x4970 | a1 = s3 + 0x4970;
0x00001a10 move a0, s0 | a0 = s0;
0x00001a14 jalr t9 | t9 ();
0x00001a18 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001a1c lw t9, -0x7f30(gp) | t9 = sym.imp.strlen;
0x00001a20 move a0, s0 | a0 = s0;
0x00001a24 jalr t9 | t9 ();
0x00001a28 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001a2c subu a2, s1, v0 | __asm ("subu a2, s1, v0");
0x00001a30 addiu a3, zero, 0x40 | a3 = 0x40;
0x00001a34 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00001a38 lw t9, -0x7f84(gp) | t9 = sym.imp.__strncat_chk;
0x00001a3c addiu a1, a1, 0x49bc | a1 += str.devices;
0x00001a40 move a0, s0 | a0 = s0;
0x00001a44 jalr t9 | t9 ();
0x00001a48 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001a4c lw t9, -0x7f74(gp) | t9 = sym.imp.sysfs_open_directory_list;
0x00001a50 move a0, s0 | a0 = s0;
0x00001a54 jalr t9 | t9 ();
0x00001a58 move s1, v0 | s1 = v0;
0x00001a5c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00001a60 beqz v0, 0x1b04 | goto label_43;
| }
0x00001a64 lw s2, -0x7f6c(gp) | s2 = *((gp - 8155));
0x00001a68 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00001a6c lw t9, -0x7f04(gp) | t9 = sym.imp.fwrite;
0x00001a70 lw a3, (s2) | a3 = *(s2);
0x00001a74 addiu a2, zero, 0x19 | a2 = 0x19;
0x00001a78 addiu a1, zero, 1 | a1 = 1;
0x00001a7c addiu a0, a0, 0x49c4 | a0 += str.Supported_sysfs_devices:_n;
0x00001a80 jalr t9 | t9 ();
0x00001a84 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001a88 lw t9, -0x7f2c(gp) | t9 = sym.imp.dlist_start;
0x00001a8c move a0, s1 | a0 = s1;
0x00001a90 jalr t9 | t9 ();
0x00001a94 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001a98 addiu a1, zero, 1 | a1 = 1;
0x00001a9c lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00001aa0 move a0, s1 | a0 = s1;
0x00001aa4 jalr t9 | t9 ();
0x00001aa8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001aac lw s5, -0x7fdc(gp) | s5 = *((gp - 8183));
0x00001ab0 addiu s5, s5, 0x4990 | s5 += str._t_s_n;
0x00001ab4 b 0x1ae4 |
| while (a0 != v1) {
0x00001ab8 lw a0, (s2) | a0 = *(s2);
0x00001abc move a3, v0 | a3 = v0;
0x00001ac0 move a2, s5 | a2 = s5;
0x00001ac4 addiu a1, zero, 1 | a1 = 1;
0x00001ac8 jalr t9 | t9 ();
0x00001acc lw gp, 0x10(sp) | gp = *(var_10h);
0x00001ad0 addiu a1, zero, 1 | a1 = 1;
0x00001ad4 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00001ad8 move a0, s1 | a0 = s1;
0x00001adc jalr t9 | t9 ();
0x00001ae0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001ae4 lw a0, (s1) | a0 = *(s1);
0x00001ae8 lw v1, 0x1c(s1) | v1 = *((s1 + 7));
0x00001aec lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x00001af0 bne a0, v1, 0x1ab8 |
| }
0x00001af4 lw t9, -0x7f8c(gp) | t9 = sym.imp.sysfs_close_list;
0x00001af8 move a0, s1 | a0 = s1;
0x00001afc jalr t9 | t9 ();
0x00001b00 lw gp, 0x10(sp) | gp = *(var_10h);
| label_43:
0x00001b04 lw t9, -0x7f58(gp) | t9 = sym.imp.strncpy;
0x00001b08 addiu a2, zero, 0x3f | a2 = 0x3f;
0x00001b0c addiu a1, s6, 0x5198 | a1 = s6 + 0x5198;
0x00001b10 move a0, s0 | a0 = s0;
0x00001b14 jalr t9 | t9 ();
0x00001b18 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001b1c move a0, s0 | a0 = s0;
0x00001b20 lw t9, -0x7f30(gp) | t9 = sym.imp.strlen;
0x00001b24 addiu s1, zero, 0x3f | s1 = 0x3f;
0x00001b28 jalr t9 | t9 ();
0x00001b2c lw gp, 0x10(sp) | gp = *(var_10h);
0x00001b30 addiu a3, zero, 0x40 | a3 = 0x40;
0x00001b34 subu a2, s1, v0 | __asm ("subu a2, s1, v0");
0x00001b38 lw t9, -0x7f84(gp) | t9 = sym.imp.__strncat_chk;
0x00001b3c addiu a1, s3, 0x4970 | a1 = s3 + 0x4970;
0x00001b40 move a0, s0 | a0 = s0;
0x00001b44 jalr t9 | t9 ();
0x00001b48 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001b4c lw t9, -0x7f30(gp) | t9 = sym.imp.strlen;
0x00001b50 move a0, s0 | a0 = s0;
0x00001b54 jalr t9 | t9 ();
0x00001b58 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001b5c move a0, s0 | a0 = s0;
0x00001b60 addiu a3, zero, 0x40 | a3 = 0x40;
0x00001b64 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00001b68 lw t9, -0x7f84(gp) | t9 = sym.imp.__strncat_chk;
0x00001b6c subu a2, s1, v0 | __asm ("subu a2, s1, v0");
0x00001b70 addiu a1, a1, 0x49e0 | a1 += str.module;
0x00001b74 jalr t9 | t9 ();
0x00001b78 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001b7c lw t9, -0x7f74(gp) | t9 = sym.imp.sysfs_open_directory_list;
0x00001b80 move a0, s0 | a0 = s0;
0x00001b84 jalr t9 | t9 ();
0x00001b88 move s0, v0 | s0 = v0;
0x00001b8c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00001b90 beqz v0, 0x1c34 | goto label_44;
| }
0x00001b94 lw s2, -0x7f6c(gp) | s2 = *((gp - 8155));
0x00001b98 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00001b9c lw t9, -0x7f04(gp) | t9 = sym.imp.fwrite;
0x00001ba0 lw a3, (s2) | a3 = *(s2);
0x00001ba4 addiu a2, zero, 0x19 | a2 = 0x19;
0x00001ba8 addiu a1, zero, 1 | a1 = 1;
0x00001bac addiu a0, a0, 0x49e8 | a0 += str.Supported_sysfs_modules:_n;
0x00001bb0 jalr t9 | t9 ();
0x00001bb4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001bb8 lw t9, -0x7f2c(gp) | t9 = sym.imp.dlist_start;
0x00001bbc move a0, s0 | a0 = s0;
0x00001bc0 jalr t9 | t9 ();
0x00001bc4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001bc8 addiu a1, zero, 1 | a1 = 1;
0x00001bcc lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00001bd0 move a0, s0 | a0 = s0;
0x00001bd4 jalr t9 | t9 ();
0x00001bd8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001bdc lw s1, -0x7fdc(gp) | s1 = *((gp - 8183));
0x00001be0 addiu s1, s1, 0x4990 | s1 += str._t_s_n;
0x00001be4 b 0x1c14 |
| while (a0 != v1) {
0x00001be8 lw a0, (s2) | a0 = *(s2);
0x00001bec move a3, v0 | a3 = v0;
0x00001bf0 move a2, s1 | a2 = s1;
0x00001bf4 addiu a1, zero, 1 | a1 = 1;
0x00001bf8 jalr t9 | t9 ();
0x00001bfc lw gp, 0x10(sp) | gp = *(var_10h);
0x00001c00 addiu a1, zero, 1 | a1 = 1;
0x00001c04 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00001c08 move a0, s0 | a0 = s0;
0x00001c0c jalr t9 | t9 ();
0x00001c10 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001c14 lw a0, (s0) | a0 = *(s0);
0x00001c18 lw v1, 0x1c(s0) | v1 = *((s0 + 7));
0x00001c1c lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x00001c20 bne a0, v1, 0x1be8 |
| }
0x00001c24 lw t9, -0x7f8c(gp) | t9 = sym.imp.sysfs_close_list;
0x00001c28 move a0, s0 | a0 = s0;
0x00001c2c jalr t9 | t9 ();
0x00001c30 lw gp, 0x10(sp) | gp = *(var_10h);
| label_44:
0x00001c34 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x00001c38 lw a0, (v0) | a0 = *(v0);
0x00001c3c move s2, zero | s2 = 0;
| if (a0 == 0) {
0x00001c40 beqz a0, 0x16f4 | goto label_2;
| }
0x00001c44 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00001c48 b 0x16e0 | goto label_3;
| label_29:
0x00001c4c lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00001c50 lw a1, (s2) | a1 = *(s2);
0x00001c54 addiu a0, zero, 0xa | a0 = 0xa;
0x00001c58 jalr t9 | t9 ();
0x00001c5c lw v0, 0x52a0(s4) | v0 = *((s4 + 5288));
0x00001c60 andi v0, v0, 4 | v0 &= 4;
0x00001c64 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00001c68 beqz v0, 0x1534 | goto label_4;
| }
0x00001c6c lw t9, -0x7f60(gp) | t9 = sym.imp.sysfs_get_bus_devices;
0x00001c70 b 0x1494 | goto label_5;
| label_39:
0x00001c74 lw s0, -0x7fd0(gp) | s0 = *(gp);
0x00001c78 lw t9, -0x7fc8(gp) | t9 = sym.pci_free_name_list;
0x00001c7c lw a0, (s0) | a0 = *(s0);
0x00001c80 bal 0x3404 | sym_pci_free_name_list ();
0x00001c84 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001c88 lw t9, -0x7ee8(gp) | t9 = sym.imp.free;
0x00001c8c lw a0, (s0) | a0 = *(s0);
0x00001c90 jalr t9 | t9 ();
0x00001c94 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001c98 sw zero, (s0) | *(s0) = 0;
0x00001c9c b 0x16f4 | goto label_2;
| label_27:
0x00001ca0 lw t9, -0x7fa4(gp) | t9 = sym.imp.calloc;
0x00001ca4 addiu a1, zero, 0x10 | a1 = 0x10;
0x00001ca8 addiu a0, zero, 1 | a0 = 1;
0x00001cac jalr t9 | t9 ();
0x00001cb0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001cb4 sw zero, (v0) | *(v0) = 0;
0x00001cb8 lw v1, -0x7fd0(gp) | v1 = *(gp);
0x00001cbc sw v0, (v1) | *(v1) = v0;
0x00001cc0 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x00001cc4 addiu v1, v1, 0x4870 | v1 += str._usr_local_share_pci.ids;
0x00001cc8 sw v1, 4(v0) | *((v0 + 1)) = v1;
0x00001ccc b 0x1448 | goto label_6;
| label_40:
0x00001ce8 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00001cec addiu a0, zero, 0xa | a0 = 0xa;
0x00001cf0 lw a1, (v0) | a1 = *(v0);
0x00001cf4 jalr t9 | t9 ();
0x00001cf8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001cfc b 0x1704 | goto label_7;
| label_31:
0x00001d00 lw a0, 0x20(sp) | a0 = *(var_20h);
0x00001d04 jalr t9 | t9 ();
0x00001d08 move fp, v0 | fp = v0;
0x00001d0c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00001d10 beqz v0, 0x1544 | goto label_8;
| }
0x00001d14 lw t9, -0x7f2c(gp) | t9 = sym.imp.dlist_start;
0x00001d18 move a0, v0 | a0 = v0;
0x00001d1c jalr t9 | t9 ();
0x00001d20 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001d24 addiu a1, zero, 1 | a1 = 1;
0x00001d28 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00001d2c move a0, fp | a0 = fp;
0x00001d30 jalr t9 | t9 ();
0x00001d34 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001d38 move s7, v0 | s7 = v0;
0x00001d3c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00001d40 addiu v0, v0, 0x4788 | v0 += 0x4788;
0x00001d44 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00001d48 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00001d4c addiu v0, v0, 0x2f08 | v0 += fcn.00002f08;
0x00001d50 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00001d54 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00001d58 addiu v0, v0, 0x28a0 | v0 += fcn.000028a0;
0x00001d5c sw v0, 0x2c(sp) | *(var_2ch) = v0;
| label_11:
0x00001d60 lw v1, (fp) | v1 = *(fp);
0x00001d64 lw v0, 0x1c(fp) | v0 = *(arg_1ch);
0x00001d68 lw t9, -0x7f7c(gp) | t9 = sym.imp.sysfs_close_bus;
| if (v1 == v0) {
0x00001d6c beq v1, v0, 0x1548 | goto label_9;
| }
0x00001d70 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
| if (s7 == 0) {
0x00001d74 beqz s7, 0x1f38 | goto label_45;
| }
0x00001d78 lw a1, (s2) | a1 = *(s2);
0x00001d7c addiu a0, zero, 0x20 | a0 = 0x20;
0x00001d80 jalr t9 | t9 ();
0x00001d84 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001d88 lw a1, (s2) | a1 = *(s2);
0x00001d8c lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00001d90 addiu a0, zero, 0x20 | a0 = 0x20;
0x00001d94 jalr t9 | t9 ();
0x00001d98 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001d9c lw a0, (s2) | a0 = *(s2);
0x00001da0 move a3, s7 | a3 = s7;
0x00001da4 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00001da8 lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x00001dac addiu a2, a2, 0x48b0 | a2 += str.Driver____s__n;
0x00001db0 addiu a1, zero, 1 | a1 = 1;
0x00001db4 jalr t9 | t9 ();
0x00001db8 lw v0, 0x52a0(s4) | v0 = *((s4 + 5288));
0x00001dbc andi v0, v0, 0x90 | v0 &= 0x90;
0x00001dc0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00001dc4 beqz v0, 0x1e10 |
0x00001dc8 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00001dcc lw a1, (s2) | a1 = *(s2);
0x00001dd0 addiu a0, zero, 0x20 | a0 = 0x20;
0x00001dd4 jalr t9 | t9 ();
0x00001dd8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001ddc lw a1, (s2) | a1 = *(s2);
0x00001de0 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00001de4 addiu a0, zero, 0x20 | a0 = 0x20;
0x00001de8 jalr t9 | t9 ();
0x00001dec lw gp, 0x10(sp) | gp = *(var_10h);
0x00001df0 lw a0, (s2) | a0 = *(s2);
0x00001df4 addiu a3, s7, 0x40 | a3 = s7 + 0x40;
0x00001df8 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00001dfc lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x00001e00 addiu a2, a2, 0x48c0 | a2 += str.Driver_path____s__n;
0x00001e04 addiu a1, zero, 1 | a1 = 1;
0x00001e08 jalr t9 | t9 ();
0x00001e0c lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00001e10 lw v0, 0x52a0(s4) | v0 = *((s4 + 5288));
0x00001e14 andi v0, v0, 0x13 | v0 &= 0x13;
0x00001e18 lw t9, -0x7f5c(gp) | t9 = sym.imp.sysfs_get_driver_attributes;
| if (v0 != 0) {
0x00001e1c bnez v0, 0x21c8 | goto label_46;
| }
| label_18:
0x00001e20 lw t9, -0x7f0c(gp) | t9 = sym.imp.sysfs_get_driver_devices;
0x00001e24 move a0, s7 | a0 = s7;
0x00001e28 jalr t9 | t9 ();
0x00001e2c move s3, v0 | s3 = v0;
0x00001e30 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00001e34 beqz v0, 0x1f24 | goto label_47;
| }
0x00001e38 addiu s5, zero, 4 | s5 = 4;
| do {
0x00001e3c lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00001e40 lw a1, (s2) | a1 = *(s2);
0x00001e44 addiu a0, zero, 0x20 | a0 = 0x20;
0x00001e48 addiu s5, s5, -1 | s5 += -1;
0x00001e4c jalr t9 | t9 ();
0x00001e50 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001e54 bnez s5, 0x1e3c |
| } while (s5 != 0);
0x00001e58 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00001e5c lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x00001e60 lw a0, (s2) | a0 = *(s2);
0x00001e64 move a3, s7 | a3 = s7;
0x00001e68 addiu a2, a2, 0x48d4 | a2 += str.Devices_using___s__are:_n;
0x00001e6c addiu a1, zero, 1 | a1 = 1;
0x00001e70 jalr t9 | t9 ();
0x00001e74 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001e78 lw t9, -0x7f2c(gp) | t9 = sym.imp.dlist_start;
0x00001e7c move a0, s3 | a0 = s3;
0x00001e80 jalr t9 | t9 ();
0x00001e84 lw gp, 0x10(sp) | gp = *(var_10h);
| do {
| label_10:
0x00001e88 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00001e8c addiu a1, zero, 1 | a1 = 1;
0x00001e90 move a0, s3 | a0 = s3;
0x00001e94 jalr t9 | t9 ();
0x00001e98 move s5, v0 | s5 = v0;
0x00001e9c lw v1, (s3) | v1 = *(s3);
0x00001ea0 lw v0, 0x1c(s3) | v0 = *((s3 + 7));
0x00001ea4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 == v0) {
0x00001ea8 beq v1, v0, 0x1f24 | goto label_47;
| }
0x00001eac lw v0, 0x52a0(s4) | v0 = *((s4 + 5288));
0x00001eb0 andi v0, v0, 8 | v0 &= 8;
0x00001eb4 lw t9, 0x24(sp) | t9 = *(var_24h);
| if (v0 == 0) {
0x00001eb8 beqz v0, 0x1ee4 | goto label_48;
| }
0x00001ebc addiu a1, zero, 6 | a1 = 6;
0x00001ec0 move a0, s5 | a0 = s5;
0x00001ec4 jalr t9 | t9 ();
0x00001ec8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001ecc lw a1, (s2) | a1 = *(s2);
0x00001ed0 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00001ed4 addiu a0, zero, 0xa | a0 = 0xa;
0x00001ed8 jalr t9 | t9 ();
0x00001edc lw gp, 0x10(sp) | gp = *(var_10h);
0x00001ee0 b 0x1e88 |
| } while (1);
| label_48:
0x00001ee4 addiu s7, zero, 6 | s7 = 6;
| do {
0x00001ee8 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00001eec lw a1, (s2) | a1 = *(s2);
0x00001ef0 addiu a0, zero, 0x20 | a0 = 0x20;
0x00001ef4 addiu s7, s7, -1 | s7 += -1;
0x00001ef8 jalr t9 | t9 ();
0x00001efc lw gp, 0x10(sp) | gp = *(var_10h);
0x00001f00 bnez s7, 0x1ee8 |
| } while (s7 != 0);
0x00001f04 lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x00001f08 lw a0, (s2) | a0 = *(s2);
0x00001f0c lw a2, 0x28(sp) | a2 = *(var_28h);
0x00001f10 move a3, s5 | a3 = s5;
0x00001f14 addiu a1, zero, 1 | a1 = 1;
0x00001f18 jalr t9 | t9 ();
0x00001f1c lw gp, 0x10(sp) | gp = *(var_10h);
0x00001f20 b 0x1e88 | goto label_10;
| label_47:
0x00001f24 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00001f28 lw a1, (s2) | a1 = *(s2);
0x00001f2c addiu a0, zero, 0xa | a0 = 0xa;
0x00001f30 jalr t9 | t9 ();
0x00001f34 lw gp, 0x10(sp) | gp = *(var_10h);
| label_45:
0x00001f38 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00001f3c addiu a1, zero, 1 | a1 = 1;
0x00001f40 move a0, fp | a0 = fp;
0x00001f44 jalr t9 | t9 ();
0x00001f48 move s7, v0 | s7 = v0;
0x00001f4c lw gp, 0x10(sp) | gp = *(var_10h);
0x00001f50 b 0x1d60 | goto label_11;
| label_37:
0x00001f54 lw t9, -0x7f68(gp) | t9 = sym.imp.sysfs_get_module_attributes;
0x00001f58 move a0, s5 | a0 = s5;
0x00001f5c jalr t9 | t9 ();
0x00001f60 move s3, v0 | s3 = v0;
0x00001f64 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00001f68 beqz v0, 0x2028 | goto label_49;
| }
0x00001f6c lw v0, 0x52a0(s4) | v0 = *((s4 + 5288));
0x00001f70 andi v0, v0, 0x11 | v0 &= 0x11;
0x00001f74 lw t9, -0x7f2c(gp) | t9 = sym.imp.dlist_start;
| if (v0 != 0) {
0x00001f78 beqz v0, 0x1fc8 |
0x00001f7c lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00001f80 lw a1, (s2) | a1 = *(s2);
0x00001f84 addiu a0, zero, 0x20 | a0 = 0x20;
0x00001f88 jalr t9 | t9 ();
0x00001f8c lw gp, 0x10(sp) | gp = *(var_10h);
0x00001f90 lw a1, (s2) | a1 = *(s2);
0x00001f94 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00001f98 addiu a0, zero, 0x20 | a0 = 0x20;
0x00001f9c jalr t9 | t9 ();
0x00001fa0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001fa4 lw a3, (s2) | a3 = *(s2);
0x00001fa8 addiu a2, zero, 0xc | a2 = 0xc;
0x00001fac lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00001fb0 lw t9, -0x7f04(gp) | t9 = sym.imp.fwrite;
0x00001fb4 addiu a1, zero, 1 | a1 = 1;
0x00001fb8 addiu a0, a0, 0x4944 | a0 += str.Attributes:_n;
0x00001fbc jalr t9 | t9 ();
0x00001fc0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001fc4 lw t9, -0x7f2c(gp) | t9 = sym.imp.dlist_start;
| }
0x00001fc8 move a0, s3 | a0 = s3;
0x00001fcc jalr t9 | t9 ();
0x00001fd0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001fd4 addiu a1, zero, 1 | a1 = 1;
0x00001fd8 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00001fdc move a0, s3 | a0 = s3;
0x00001fe0 jalr t9 | t9 ();
0x00001fe4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00001fe8 lw fp, -0x7fdc(gp) | fp = *((gp - 8183));
0x00001fec addiu fp, fp, 0x28a0 | fp += fcn.000028a0;
0x00001ff0 b 0x2018 |
| while (a1 != v1) {
0x00001ff4 move t9, fp | t9 = fp;
0x00001ff8 addiu a1, zero, 4 | a1 = 4;
0x00001ffc bal 0x28a0 | fcn_000028a0 ();
0x00002000 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002004 addiu a1, zero, 1 | a1 = 1;
0x00002008 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x0000200c move a0, s3 | a0 = s3;
0x00002010 jalr t9 | t9 ();
0x00002014 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002018 lw a1, (s3) | a1 = *(s3);
0x0000201c lw v1, 0x1c(s3) | v1 = *((s3 + 7));
0x00002020 move a0, v0 | a0 = v0;
0x00002024 bne a1, v1, 0x1ff4 |
| }
| label_49:
0x00002028 lw t9, -0x7f70(gp) | t9 = sym.imp.sysfs_get_module_parms;
0x0000202c move a0, s5 | a0 = s5;
0x00002030 jalr t9 | t9 ();
0x00002034 move s3, v0 | s3 = v0;
0x00002038 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0000203c beqz v0, 0x20b4 | goto label_50;
| }
0x00002040 lw v0, 0x52a0(s4) | v0 = *((s4 + 5288));
0x00002044 andi v0, v0, 0x11 | v0 &= 0x11;
0x00002048 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
| if (v0 != 0) {
0x0000204c bnez v0, 0x2264 | goto label_51;
| }
| label_19:
0x00002050 lw t9, -0x7f2c(gp) | t9 = sym.imp.dlist_start;
0x00002054 move a0, s3 | a0 = s3;
0x00002058 jalr t9 | t9 ();
0x0000205c lw gp, 0x10(sp) | gp = *(var_10h);
0x00002060 addiu a1, zero, 1 | a1 = 1;
0x00002064 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00002068 move a0, s3 | a0 = s3;
0x0000206c jalr t9 | t9 ();
0x00002070 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002074 lw fp, -0x7fdc(gp) | fp = *((gp - 8183));
0x00002078 addiu fp, fp, 0x28a0 | fp += fcn.000028a0;
0x0000207c b 0x20a4 |
| while (a1 != v1) {
0x00002080 move t9, fp | t9 = fp;
0x00002084 addiu a1, zero, 4 | a1 = 4;
0x00002088 bal 0x28a0 | fcn_000028a0 ();
0x0000208c lw gp, 0x10(sp) | gp = *(var_10h);
0x00002090 addiu a1, zero, 1 | a1 = 1;
0x00002094 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00002098 move a0, s3 | a0 = s3;
0x0000209c jalr t9 | t9 ();
0x000020a0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000020a4 lw a1, (s3) | a1 = *(s3);
0x000020a8 lw v1, 0x1c(s3) | v1 = *((s3 + 7));
0x000020ac move a0, v0 | a0 = v0;
0x000020b0 bne a1, v1, 0x2080 |
| }
| label_50:
0x000020b4 lw t9, -0x7ec8(gp) | t9 = sym.imp.sysfs_get_module_sections;
0x000020b8 move a0, s5 | a0 = s5;
0x000020bc jalr t9 | t9 ();
0x000020c0 move s3, v0 | s3 = v0;
0x000020c4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000020c8 beqz v0, 0x16bc | goto label_12;
| }
0x000020cc lw v0, 0x52a0(s4) | v0 = *((s4 + 5288));
0x000020d0 andi v0, v0, 0x11 | v0 &= 0x11;
0x000020d4 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
| if (v0 != 0) {
0x000020d8 bnez v0, 0x22c0 | goto label_52;
| }
| label_20:
0x000020dc lw t9, -0x7f2c(gp) | t9 = sym.imp.dlist_start;
0x000020e0 move a0, s3 | a0 = s3;
0x000020e4 jalr t9 | t9 ();
0x000020e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000020ec addiu a1, zero, 1 | a1 = 1;
0x000020f0 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x000020f4 move a0, s3 | a0 = s3;
0x000020f8 jalr t9 | t9 ();
0x000020fc lw gp, 0x10(sp) | gp = *(var_10h);
0x00002100 lw fp, -0x7fdc(gp) | fp = *((gp - 8183));
0x00002104 addiu fp, fp, 0x28a0 | fp += fcn.000028a0;
0x00002108 b 0x2130 |
| while (a1 != v1) {
0x0000210c move t9, fp | t9 = fp;
0x00002110 addiu a1, zero, 4 | a1 = 4;
0x00002114 bal 0x28a0 | fcn_000028a0 ();
0x00002118 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000211c addiu a1, zero, 1 | a1 = 1;
0x00002120 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00002124 move a0, s3 | a0 = s3;
0x00002128 jalr t9 | t9 ();
0x0000212c lw gp, 0x10(sp) | gp = *(var_10h);
0x00002130 lw a1, (s3) | a1 = *(s3);
0x00002134 lw v1, 0x1c(s3) | v1 = *((s3 + 7));
0x00002138 move a0, v0 | a0 = v0;
0x0000213c bne a1, v1, 0x210c |
| }
0x00002140 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00002144 lw a1, (s2) | a1 = *(s2);
0x00002148 addiu a0, zero, 0xa | a0 = 0xa;
0x0000214c jalr t9 | t9 ();
0x00002150 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002154 b 0x16bc | goto label_12;
| if (s1 == 0) {
| label_32:
0x00002158 beql s1, zero, 0x1348 | goto label_13;
| }
0x0000215c andi v1, v0, 0x1f | v1 = v0 & 0x1f;
| label_22:
0x00002160 ori v0, v0, 4 | v0 |= 4;
| if (v1 == 0) {
0x00002164 beqz v1, 0x1570 | goto label_14;
| }
0x00002168 move s2, zero | s2 = 0;
0x0000216c b 0x1670 | goto label_15;
| label_28:
0x00002170 lw v0, -0x7ee0(gp) | v0 = *((gp - 8120));
0x00002174 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00002178 lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x0000217c lw a0, (v0) | a0 = *(v0);
0x00002180 move a3, s3 | a3 = s3;
0x00002184 addiu a2, a2, 0x488c | a2 += str.Error_opening_bus__s_n;
0x00002188 addiu a1, zero, 1 | a1 = 1;
0x0000218c jalr t9 | t9 ();
0x00002190 addiu s2, zero, 1 | s2 = 1;
0x00002194 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002198 b 0x1578 | goto label_16;
| label_36:
0x0000219c lw v0, -0x7ee0(gp) | v0 = *((gp - 8120));
0x000021a0 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x000021a4 lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x000021a8 lw a0, (v0) | a0 = *(v0);
0x000021ac move a3, s1 | a3 = s1;
0x000021b0 addiu a2, a2, 0x4918 | a2 += str.Error_opening_module__s_n;
0x000021b4 addiu a1, zero, 1 | a1 = 1;
0x000021b8 jalr t9 | t9 ();
0x000021bc addiu s2, zero, 1 | s2 = 1;
0x000021c0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000021c4 b 0x16d0 | goto label_17;
| label_46:
0x000021c8 move a0, s7 | a0 = s7;
0x000021cc jalr t9 | t9 ();
0x000021d0 move s3, v0 | s3 = v0;
0x000021d4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000021d8 beqz v0, 0x1e20 | goto label_18;
| }
0x000021dc lw t9, -0x7f2c(gp) | t9 = sym.imp.dlist_start;
0x000021e0 move a0, v0 | a0 = v0;
0x000021e4 jalr t9 | t9 ();
0x000021e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000021ec b 0x2204 |
| while (a0 != v1) {
0x000021f0 lw t9, 0x2c(sp) | t9 = *(var_2ch);
0x000021f4 move a0, v0 | a0 = v0;
0x000021f8 addiu a1, zero, 4 | a1 = 4;
0x000021fc jalr t9 | t9 ();
0x00002200 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002204 lw t9, -0x7ef4(gp) | t9 = sym.imp._dlist_mark_move;
0x00002208 move a0, s3 | a0 = s3;
0x0000220c addiu a1, zero, 1 | a1 = 1;
0x00002210 jalr t9 | t9 ();
0x00002214 lw a0, (s3) | a0 = *(s3);
0x00002218 lw v1, 0x1c(s3) | v1 = *((s3 + 7));
0x0000221c lw gp, 0x10(sp) | gp = *(var_10h);
0x00002220 bne a0, v1, 0x21f0 |
| }
0x00002224 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00002228 lw a1, (s2) | a1 = *(s2);
0x0000222c addiu a0, zero, 0xa | a0 = 0xa;
0x00002230 jalr t9 | t9 ();
0x00002234 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002238 b 0x1e20 | goto label_18;
| label_33:
0x0000223c lw v0, -0x7ee0(gp) | v0 = *((gp - 8120));
0x00002240 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00002244 move a3, s0 | a3 = s0;
0x00002248 lw a0, (v0) | a0 = *(v0);
0x0000224c addiu a2, a2, 0x48f0 | a2 += str.Error_opening_class__s_n;
0x00002250 addiu a1, zero, 1 | a1 = 1;
0x00002254 jalr t9 | t9 ();
0x00002258 addiu s2, zero, 1 | s2 = 1;
0x0000225c lw gp, 0x10(sp) | gp = *(var_10h);
0x00002260 b 0x1670 | goto label_15;
| label_51:
0x00002264 lw a1, (s2) | a1 = *(s2);
0x00002268 addiu a0, zero, 0xa | a0 = 0xa;
0x0000226c jalr t9 | t9 ();
0x00002270 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002274 lw a1, (s2) | a1 = *(s2);
0x00002278 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x0000227c addiu a0, zero, 0x20 | a0 = 0x20;
0x00002280 jalr t9 | t9 ();
0x00002284 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002288 lw a1, (s2) | a1 = *(s2);
0x0000228c lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x00002290 addiu a0, zero, 0x20 | a0 = 0x20;
0x00002294 jalr t9 | t9 ();
0x00002298 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000229c lw a3, (s2) | a3 = *(s2);
0x000022a0 addiu a2, zero, 0xc | a2 = 0xc;
0x000022a4 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x000022a8 lw t9, -0x7f04(gp) | t9 = sym.imp.fwrite;
0x000022ac addiu a1, zero, 1 | a1 = 1;
0x000022b0 addiu a0, a0, 0x4954 | a0 += str.Parameters:_n;
0x000022b4 jalr t9 | t9 ();
0x000022b8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000022bc b 0x2050 | goto label_19;
| label_52:
0x000022c0 lw a1, (s2) | a1 = *(s2);
0x000022c4 addiu a0, zero, 0xa | a0 = 0xa;
0x000022c8 jalr t9 | t9 ();
0x000022cc lw gp, 0x10(sp) | gp = *(var_10h);
0x000022d0 lw a1, (s2) | a1 = *(s2);
0x000022d4 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x000022d8 addiu a0, zero, 0x20 | a0 = 0x20;
0x000022dc jalr t9 | t9 ();
0x000022e0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000022e4 lw a1, (s2) | a1 = *(s2);
0x000022e8 lw t9, -0x7f78(gp) | t9 = sym.imp.fputc;
0x000022ec addiu a0, zero, 0x20 | a0 = 0x20;
0x000022f0 jalr t9 | t9 ();
0x000022f4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000022f8 lw a3, (s2) | a3 = *(s2);
0x000022fc addiu a2, zero, 0xa | a2 = 0xa;
0x00002300 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00002304 lw t9, -0x7f04(gp) | t9 = sym.imp.fwrite;
0x00002308 addiu a1, zero, 1 | a1 = 1;
0x0000230c addiu a0, a0, 0x4964 | a0 += str.Sections:_n;
0x00002310 jalr t9 | t9 ();
0x00002314 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002318 b 0x20dc | goto label_20;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/systool @ 0x34c0 */
| #include <stdint.h>
|
; (fcn) sym.pci_lookup_name () | void pci_lookup_name () {
0x000034c0 lui gp, 2 |
0x000034c4 addiu gp, gp, -0x6490 |
0x000034c8 addu gp, gp, t9 | gp += t9;
0x000034cc addiu sp, sp, -0x128 |
0x000034d0 lui v1, 1 | v1 = 0x10000;
0x000034d4 sw s1, 0x104(sp) | *(var_104h) = s1;
0x000034d8 lw s1, -0x7ef0(gp) | s1 = *((gp - 8124));
0x000034dc sw gp, 0x28(sp) | *(var_28h) = gp;
0x000034e0 and v1, a3, v1 | v1 = a3 & v1;
0x000034e4 lw v0, (s1) | v0 = *(s1);
0x000034e8 sw s7, 0x11c(sp) | *(var_11ch) = s7;
0x000034ec sw s2, 0x108(sp) | *(var_108h) = s2;
0x000034f0 sw s0, 0x100(sp) | *(var_100h) = s0;
0x000034f4 sw ra, 0x124(sp) | *(var_124h) = ra;
0x000034f8 sw fp, 0x120(sp) | *(var_120h) = fp;
0x000034fc sw s6, 0x118(sp) | *(var_118h) = s6;
0x00003500 sw s5, 0x114(sp) | *(var_114h) = s5;
0x00003504 sw s4, 0x110(sp) | *(var_110h) = s4;
0x00003508 sw s3, 0x10c(sp) | *(var_10ch) = s3;
0x0000350c move s7, a0 | s7 = a0;
0x00003510 move s0, a1 | s0 = a1;
0x00003514 move s2, a2 | s2 = a2;
0x00003518 sw v0, 0xfc(sp) | *(var_fch) = v0;
0x0000351c addiu t3, zero, 1 | t3 = 1;
| if (v1 != 0) {
0x00003520 bnel v1, zero, 0x3558 |
0x00003524 lw v0, 0xc(a0) | v0 = *((a0 + 3));
0x00003528 move s6, a3 | s6 = a3;
0x0000352c lw t3, (a0) | t3 = *(a0);
| if (v0 == 0) {
0x00003530 beqz v0, 0x357c | goto label_11;
| }
| label_2:
0x00003534 sltiu v0, s6, 0x11 | v0 = (s6 < 0x11) ? 1 : 0;
0x00003538 lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
| if (v0 == 0) {
0x0000353c beqz v0, 0x3bc8 | goto label_12;
| }
0x00003540 sll t1, s6, 2 | t1 = s6 << 2;
0x00003544 addiu a3, a3, 0x4c20 | a3 += 0x4c20;
0x00003548 lwx a3, t1(a3) | __asm ("lwx a3, t1(a3)");
0x0000354c addu a3, a3, gp | a3 += gp;
0x00003550 jr a3 | a3 ();
0x00003554 nop |
| }
| label_3:
0x00003558 sltiu v0, v1, 0x11 | v0 = (v1 < 0x11) ? 1 : 0;
0x0000355c sll v1, v1, 2 | v1 <<= 2;
| if (v0 == 0) {
0x00003560 beqz v0, 0x3bc8 | goto label_12;
| }
0x00003564 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00003568 addiu v0, v0, 0x4c64 | v0 += 0x4c64;
0x0000356c lwx v1, v1(v0) | __asm ("lwx v1, v1(v0)");
0x00003570 addu v1, v1, gp | v1 += gp;
0x00003574 jr v1 | v1 ();
0x00003578 nop |
| label_11:
0x0000357c lw t9, -0x7f28(gp) | t9 = sym.imp.open;
| if (t3 != 0) {
0x00003580 bnez t3, 0x3c58 | goto label_13;
| }
0x00003584 lw a0, 4(a0) | a0 = *((a0 + 1));
0x00003588 move a1, zero | a1 = 0;
0x0000358c jalr t9 | t9 ();
0x00003590 move s3, v0 | s3 = v0;
0x00003594 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 < 0) {
0x00003598 bltz v0, 0x3ee0 | goto label_14;
| }
0x0000359c lw t9, -0x7f14(gp) | t9 = sym.imp.__fxstat;
0x000035a0 addiu a2, sp, 0x6c | a2 = sp + 0x6c;
0x000035a4 move a1, v0 | a1 = v0;
0x000035a8 addiu a0, zero, 3 | a0 = 3;
0x000035ac jalr t9 | t9 ();
0x000035b0 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 < 0) {
0x000035b4 bltz v0, 0x3e78 | goto label_15;
| }
| label_8:
0x000035b8 lw s4, 0x9c(sp) | s4 = *(var_9ch);
0x000035bc lw t9, -0x7f10(gp) | t9 = sym.imp.malloc;
0x000035c0 addiu a0, s4, 1 | a0 = s4 + 1;
0x000035c4 jalr t9 | t9 ();
0x000035c8 lw gp, 0x28(sp) | gp = *(var_28h);
0x000035cc sw v0, 8(s7) | *((s7 + 2)) = v0;
0x000035d0 move a2, s4 | a2 = s4;
0x000035d4 lw t9, -0x7ed4(gp) | t9 = sym.imp.read;
0x000035d8 move a1, v0 | a1 = v0;
0x000035dc move a0, s3 | a0 = s3;
0x000035e0 jalr t9 | t9 ();
0x000035e4 lw v1, 0x9c(sp) | v1 = *(var_9ch);
0x000035e8 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != v1) {
0x000035ec bne v0, v1, 0x3e20 | goto label_16;
| }
| label_7:
0x000035f0 lw v0, 8(s7) | v0 = *((s7 + 2));
0x000035f4 lw t9, -0x7fa4(gp) | t9 = sym.imp.calloc;
0x000035f8 addu v0, v0, v1 | v0 += v1;
0x000035fc addiu a0, zero, 0x1000 | a0 = 0x1000;
0x00003600 addiu a1, zero, 1 | a1 = 1;
0x00003604 sb zero, (v0) | *(v0) = 0;
0x00003608 jalr t9 | t9 ();
0x0000360c lw gp, 0x28(sp) | gp = *(var_28h);
0x00003610 sw v0, 0xc(s7) | *((s7 + 3)) = v0;
0x00003614 lw a0, 8(s7) | a0 = *((s7 + 2));
0x00003618 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000361c lw s4, -0x7fdc(gp) | s4 = *((gp - 8183));
0x00003620 addiu v0, v0, 0x4b68 | v0 += str._x_x;
0x00003624 sw v0, 0x40(sp) | *(var_40h) = v0;
0x00003628 addiu v0, s4, 0x4b64 | v0 = s4 + 0x4b64;
0x0000362c sw v0, 0x38(sp) | *(var_38h) = v0;
0x00003630 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00003634 sw zero, 0x5c(sp) | *(var_5ch) = 0;
0x00003638 sw zero, 0x60(sp) | *(var_60h) = 0;
0x0000363c sw zero, 0x64(sp) | *(var_64h) = 0;
0x00003640 sw zero, 0x68(sp) | *(var_68h) = 0;
0x00003644 move s5, zero | s5 = 0;
0x00003648 addiu t3, zero, -1 | t3 = -1;
0x0000364c sw v0, 0x3c(sp) | *(var_3ch) = v0;
| label_0:
0x00003650 lbu v0, (a0) | v0 = *(a0);
0x00003654 addiu s5, s5, 1 | s5++;
| if (v0 == 0) {
0x00003658 beqz v0, 0x3c24 | goto label_17;
| }
0x0000365c addiu v1, zero, 0xa | v1 = 0xa;
0x00003660 move s4, a0 | s4 = a0;
| if (v0 == v1) {
0x00003664 beq v0, v1, 0x3bd4 | goto label_18;
| }
0x00003668 addiu a1, zero, 0xa | a1 = 0xa;
0x0000366c b 0x3678 |
| while (v1 != 0) {
| if (v1 == a1) {
0x00003670 beql v1, a1, 0x3bd8 | goto label_19;
| }
0x00003674 sb zero, (s4) | *(s4) = 0;
0x00003678 addiu s4, s4, 1 | s4++;
0x0000367c lbu v1, (s4) | v1 = *(s4);
0x00003680 bnez v1, 0x3670 |
| }
0x00003684 nop |
| label_1:
0x00003688 addiu v1, zero, 0x23 | v1 = 0x23;
0x0000368c sltu v1, a0, s4 | v1 = (a0 < s4) ? 1 : 0;
| if (v0 == v1) {
0x00003690 beq v0, v1, 0x3bec | goto label_20;
| }
0x00003694 addiu v1, zero, 0x20 | v1 = 0x20;
| if (v1 == 0) {
0x00003698 beqz v1, 0x36cc | goto label_21;
| }
0x0000369c lbu a1, -1(s4) | a1 = *((s4 - 1));
0x000036a0 move v1, s4 | v1 = s4;
| if (a1 != v1) {
0x000036a4 bne a1, v1, 0x36cc | goto label_21;
| }
0x000036a8 addiu a1, zero, 0x20 | a1 = 0x20;
0x000036ac b 0x36bc |
| while (a0 != v1) {
0x000036b0 lbu v0, -1(v1) | v0 = *((v1 - 1));
0x000036b4 lbu v0, (a0) | v0 = *(a0);
| if (v0 == a1) {
0x000036b8 bnel v0, a1, 0x36cc | goto label_21;
| }
0x000036bc addiu v1, v1, -1 | v1 += -1;
0x000036c0 sb zero, (v1) | *(v1) = 0;
0x000036c4 bne a0, v1, 0x36b0 |
| }
0x000036c8 move v0, zero | v0 = 0;
| label_21:
0x000036cc addiu v1, zero, 9 | v1 = 9;
0x000036d0 move fp, a0 | fp = a0;
0x000036d4 addiu a1, zero, 9 | a1 = 9;
| if (v0 == v1) {
0x000036d8 beq v0, v1, 0x36e8 | goto label_22;
| }
0x000036dc move v1, a0 | v1 = a0;
0x000036e0 b 0x3c60 | goto label_23;
| do {
0x000036e4 move fp, v1 | fp = v1;
| label_22:
0x000036e8 lbu v0, 1(fp) | v0 = *(arg_1h);
0x000036ec addiu v1, fp, 1 | v1 = fp + 1;
0x000036f0 beq v0, a1, 0x36e4 |
| } while (v0 == a1);
| if (a0 == v1) {
0x000036f4 beql a0, v1, 0x3c64 | goto label_24;
| }
0x000036f8 addiu a0, zero, 0x43 | a0 = 0x43;
0x000036fc addiu v0, a0, 1 | v0 = a0 + 1;
0x00003700 addiu a0, a0, 2 | a0 += 2;
| if (v1 == v0) {
0x00003704 beq v1, v0, 0x3ef0 | goto label_25;
| }
0x00003708 lw v0, -0x7ee0(gp) | v0 = *((gp - 8120));
| if (v1 != a0) {
0x0000370c bne v1, a0, 0x3c00 | goto label_5;
| }
0x00003710 slti v0, t3, 3 | v0 = (t3 < 3) ? 1 : 0;
| if (t3 <= 0) {
0x00003714 blez t3, 0x3bfc | goto label_4;
| }
0x00003718 slti t3, t3, 6 | t3 = (t3 < 6) ? 1 : 0;
| if (v0 != 0) {
0x0000371c bnez v0, 0x3cec | goto label_26;
| }
0x00003720 lw t9, -0x7f44(gp) | t9 = sym.imp.__isoc99_sscanf;
| if (t3 == 0) {
0x00003724 beqz t3, 0x3bfc | goto label_4;
| }
0x00003728 lw a1, 0x38(sp) | a1 = *(var_38h);
0x0000372c move a0, v1 | a0 = v1;
0x00003730 addiu a2, sp, 0x64 | a2 = sp + 0x64;
0x00003734 sw v1, 0x34(sp) | *(var_34h_2) = v1;
0x00003738 jalr t9 | t9 ();
0x0000373c addiu a0, zero, 1 | a0 = 1;
0x00003740 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != a0) {
0x00003744 bne v0, a0, 0x3bfc | goto label_4;
| }
0x00003748 lw v1, 0x34(sp) | v1 = *(var_34h_2);
0x0000374c addiu v0, zero, 0x20 | v0 = 0x20;
0x00003750 lbu v1, 2(v1) | v1 = *((v1 + 2));
0x00003754 lw v0, -0x7ee0(gp) | v0 = *((gp - 8120));
| if (v1 != v0) {
0x00003758 bne v1, v0, 0x3c00 | goto label_5;
| }
0x0000375c addiu fp, fp, 4 | fp += 4;
0x00003760 sw zero, 0x68(sp) | *(var_68h) = 0;
0x00003764 addiu t3, zero, 5 | t3 = 5;
0x00003768 b 0x3d30 | goto label_9;
| do {
0x000037a0 lw a0, 0xfc(sp) | a0 = *(var_fch);
0x000037a4 lw v1, (s1) | v1 = *(s1);
0x000037a8 lw ra, 0x124(sp) | ra = *(var_124h);
| if (a0 != v1) {
0x000037ac bne a0, v1, 0x411c | goto label_27;
| }
0x000037b0 lw fp, 0x120(sp) | fp = *(var_120h);
0x000037b4 lw s7, 0x11c(sp) | s7 = *(var_11ch);
0x000037b8 lw s6, 0x118(sp) | s6 = *(var_118h);
0x000037bc lw s5, 0x114(sp) | s5 = *(var_114h);
0x000037c0 lw s4, 0x110(sp) | s4 = *(var_110h);
0x000037c4 lw s3, 0x10c(sp) | s3 = *(var_10ch);
0x000037c8 lw s2, 0x108(sp) | s2 = *(var_108h);
0x000037cc lw s1, 0x104(sp) | s1 = *(var_104h);
0x000037d0 lw s0, 0x100(sp) | s0 = *(var_100h);
0x000037d4 addiu sp, sp, 0x128 |
0x000037d8 jr ra | return v1;
| label_12:
0x00003bc8 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00003bcc addiu v0, v0, 0x4b24 | v0 += str._pci_lookup_name:_invalid_request_;
0x00003bd0 b 0x37a0 |
| } while (1);
| label_18:
0x00003bd4 sb zero, (s4) | *(s4) = 0;
| label_19:
0x00003bd8 lbu v0, (a0) | v0 = *(a0);
0x00003bdc addiu t0, s4, 1 | t0 = s4 + 1;
| if (v0 == 0) {
0x00003be0 bnez v0, 0x3bf4 |
0x00003be4 move a0, t0 | a0 = t0;
0x00003be8 b 0x3650 | goto label_0;
| label_20:
0x00003bec move a0, s4 | a0 = s4;
0x00003bf0 b 0x3650 | goto label_0;
| }
0x00003bf4 move s4, t0 | s4 = t0;
0x00003bf8 b 0x3688 | goto label_1;
| do {
| label_4:
0x00003bfc lw v0, -0x7ee0(gp) | v0 = *((gp - 8120));
| label_5:
0x00003c00 lw a2, -0x7fdc(gp) | a2 = *((gp - 8183));
0x00003c04 lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x00003c08 lw a3, 4(s7) | a3 = *((s7 + 1));
0x00003c0c lw a0, (v0) | a0 = *(v0);
0x00003c10 addiu a2, a2, 0x4b70 | a2 += str._s__line__d:_parse_error;
0x00003c14 sw s5, 0x10(sp) | *(var_10h_2) = s5;
0x00003c18 addiu a1, zero, 1 | a1 = 1;
0x00003c1c jalr t9 | t9 ();
0x00003c20 lw gp, 0x28(sp) | gp = *(var_28h);
| label_17:
0x00003c24 lw t9, -0x7f9c(gp) | t9 = sym.imp.close;
0x00003c28 move a0, s3 | a0 = s3;
0x00003c2c jalr t9 | t9 ();
0x00003c30 lw gp, 0x28(sp) | gp = *(var_28h);
0x00003c34 lw t3, (s7) | t3 = *(s7);
0x00003c38 b 0x3534 | goto label_2;
| label_13:
0x00003c58 move v1, a3 | v1 = a3;
0x00003c5c b 0x3558 | goto label_3;
| label_23:
0x00003c60 addiu a0, zero, 0x43 | a0 = 0x43;
| label_24:
0x00003c64 lw t9, -0x7f30(gp) | t9 = sym.imp.strlen;
| if (v0 == a0) {
0x00003c68 bne v0, a0, 0x3c7c |
0x00003c6c lbu fp, 1(v1) | fp = *((v1 + 1));
0x00003c70 addiu v0, zero, 0x20 | v0 = 0x20;
0x00003c74 addiu a3, v1, 2 | a3 = v1 + 2;
| if (fp == v0) {
0x00003c78 beq fp, v0, 0x404c | goto label_28;
| }
| }
0x00003c7c move a0, v1 | a0 = v1;
0x00003c80 sw v1, 0x34(sp) | *(var_34h_2) = v1;
0x00003c84 jalr t9 | t9 ();
0x00003c88 sltiu v0, v0, 5 | v0 = (v0 < 5) ? 1 : 0;
0x00003c8c lw gp, 0x28(sp) | gp = *(var_28h);
0x00003c90 bnez v0, 0x3bfc |
| } while (v0 != 0);
0x00003c94 lw v1, 0x34(sp) | v1 = *(var_34h_2);
0x00003c98 addiu v0, zero, 0x20 | v0 = 0x20;
0x00003c9c lbu a0, 4(v1) | a0 = *((v1 + 4));
0x00003ca0 lw t9, -0x7f44(gp) | t9 = sym.imp.__isoc99_sscanf;
| if (a0 != v0) {
0x00003ca4 bne a0, v0, 0x3bfc | goto label_4;
| }
0x00003ca8 lw a1, 0x38(sp) | a1 = *(var_38h);
0x00003cac move a0, v1 | a0 = v1;
0x00003cb0 addiu a2, sp, 0x5c | a2 = sp + 0x5c;
0x00003cb4 jalr t9 | t9 ();
0x00003cb8 addiu a0, zero, 1 | a0 = 1;
0x00003cbc lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != a0) {
0x00003cc0 bne v0, a0, 0x3bfc | goto label_4;
| }
0x00003cc4 lw v1, 0x34(sp) | v1 = *(var_34h_2);
0x00003cc8 move t3, zero | t3 = 0;
| label_10:
0x00003ccc sw zero, 0x68(sp) | *(var_68h) = 0;
0x00003cd0 sw zero, 0x64(sp) | *(var_64h) = 0;
0x00003cd4 sw zero, 0x60(sp) | *(var_60h) = 0;
0x00003cd8 addiu fp, v1, 4 | fp = v1 + 4;
0x00003cdc b 0x3d30 | goto label_9;
| label_26:
0x00003cec lw t9, -0x7f44(gp) | t9 = sym.imp.__isoc99_sscanf;
0x00003cf0 lw a1, 0x40(sp) | a1 = *(var_40h);
0x00003cf4 addiu a3, sp, 0x68 | a3 = sp + 0x68;
0x00003cf8 addiu a2, sp, 0x64 | a2 = sp + 0x64;
0x00003cfc move a0, v1 | a0 = v1;
0x00003d00 sw v1, 0x34(sp) | *(var_34h_2) = v1;
0x00003d04 jalr t9 | t9 ();
0x00003d08 move t3, v0 | t3 = v0;
0x00003d0c addiu v0, zero, 2 | v0 = 2;
0x00003d10 lw gp, 0x28(sp) | gp = *(var_28h);
| if (t3 != v0) {
0x00003d14 bne t3, v0, 0x3bfc | goto label_4;
| }
0x00003d18 lw v1, 0x34(sp) | v1 = *(var_34h_2);
0x00003d1c addiu v0, zero, 0x20 | v0 = 0x20;
0x00003d20 lbu v1, 9(v1) | v1 = *((v1 + 9));
0x00003d24 lw v0, -0x7ee0(gp) | v0 = *((gp - 8120));
| if (v1 != v0) {
0x00003d28 bne v1, v0, 0x3c00 | goto label_5;
| }
0x00003d2c addiu fp, fp, 0xb | fp += 0xb;
| label_9:
0x00003d30 lbu v0, (fp) | v0 = *(fp);
0x00003d34 addiu a0, zero, 0x20 | a0 = 0x20;
0x00003d38 addiu v1, zero, 0x20 | v1 = 0x20;
| if (v0 != a0) {
0x00003d3c bne v0, a0, 0x3d50 | goto label_29;
| }
0x00003d40 addiu fp, fp, 1 | fp++;
| do {
0x00003d44 lbu v0, (fp) | v0 = *(fp);
0x00003d48 beql v0, v1, 0x3d44 |
| } while (v0 == v1);
0x00003d4c addiu fp, fp, 1 | fp++;
| label_29:
0x00003d50 lw a1, 0x5c(sp) | a1 = *(var_5ch);
| if (v0 == 0) {
0x00003d54 beqz v0, 0x3bfc | goto label_4;
| }
0x00003d58 lw a2, 0x60(sp) | a2 = *(var_60h);
0x00003d5c lw a3, 0x64(sp) | a3 = *(var_64h);
0x00003d60 lw t4, 0x68(sp) | t4 = *(var_68h);
0x00003d64 xor v0, a1, a2 | v0 = a1 ^ a2;
0x00003d68 xor v0, v0, a3 | v0 ^= a3;
0x00003d6c sll v1, t3, 5 | v1 = t3 << 5;
0x00003d70 xor v0, v0, t4 | v0 ^= t4;
0x00003d74 xor v0, v0, v1 | v0 ^= v1;
0x00003d78 srl v1, v0, 6 | v1 = v0 >> 6;
0x00003d7c addu v0, v0, v1 | v0 += v1;
0x00003d80 andi v0, v0, 0x3ff | v0 &= 0x3ff;
0x00003d84 lw t5, 0xc(s7) | t5 = *((s7 + 3));
0x00003d88 sll v0, v0, 2 | v0 <<= 2;
0x00003d8c addu t5, t5, v0 | t5 += v0;
0x00003d90 lw v1, (t5) | v1 = *(t5);
0x00003d94 lhu v0, 4(v1) | v0 = *((v1 + 2));
| if (v1 == 0) {
0x00003d98 bnel v1, zero, 0x3db0 | goto label_30;
| }
0x00003d9c lw t9, -0x7f10(gp) | t9 = sym.imp.malloc;
0x00003da0 b 0x3f50 | goto label_31;
| do {
| label_6:
0x00003da4 lw t9, -0x7f10(gp) | t9 = sym.imp.malloc;
| if (v1 == 0) {
0x00003da8 beqz v1, 0x3f50 | goto label_31;
| }
0x00003dac lhu v0, 4(v1) | v0 = *((v1 + 2));
| label_30:
0x00003db0 lw v1, (v1) | v1 = *(v1);
0x00003db4 bnel a1, v0, 0x3da4 |
| } while (a1 == v0);
0x00003db8 lhu v0, 6(v1) | v0 = *((v1 + 3));
0x00003dbc lw v1, (v1) | v1 = *(v1);
| if (a2 == v0) {
0x00003dc0 bnel a2, v0, 0x3da4 | goto label_6;
| }
0x00003dc4 lhu v0, 8(v1) | v0 = *((v1 + 4));
0x00003dc8 lw v1, (v1) | v1 = *(v1);
| if (a3 == v0) {
0x00003dcc bnel a3, v0, 0x3da4 | goto label_6;
| }
0x00003dd0 lhu v0, 0xa(v1) | v0 = *((v1 + 5));
0x00003dd4 lw v1, (v1) | v1 = *(v1);
| if (t4 == v0) {
0x00003dd8 bnel t4, v0, 0x3da4 | goto label_6;
| }
0x00003ddc lw v0, 0xc(v1) | v0 = *((v1 + 3));
0x00003de0 lw v1, (v1) | v1 = *(v1);
| if (t3 == v0) {
0x00003de4 bnel t3, v0, 0x3da4 | goto label_6;
| }
0x00003de8 lw v0, -0x7ee0(gp) | v0 = *((gp - 8120));
0x00003dec lw t9, -0x7f80(gp) | t9 = sym.imp.__fprintf_chk
0x00003df0 lw a3, 4(s7) | a3 = *((s7 + 1));
0x00003df4 lw a0, (v0) | a0 = *(v0);
0x00003df8 lw v0, 0x3c(sp) | v0 = *(var_3ch);
0x00003dfc sw t3, 0x34(sp) | *(var_34h_2) = t3;
0x00003e00 sw s5, 0x10(sp) | *(var_10h_2) = s5;
0x00003e04 addiu a2, v0, 0x4bf8 | a2 = v0 + str._s__line__d:_duplicate_entry;
0x00003e08 addiu a1, zero, 1 | a1 = 1;
0x00003e0c jalr t9 | t9 ();
0x00003e10 lw gp, 0x28(sp) | gp = *(var_28h);
0x00003e14 move a0, s4 | a0 = s4;
0x00003e18 lw t3, 0x34(sp) | t3 = *(var_34h_2);
0x00003e1c b 0x3650 | goto label_0;
| label_16:
0x00003e20 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00003e24 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00003e28 lw a0, 4(s7) | a0 = *((s7 + 1));
0x00003e2c addiu t9, t9, 0x3378 | t9 += fcn.00003378;
0x00003e30 addiu a1, a1, 0x4b5c | a1 += str.read;
0x00003e34 bal 0x3378 | fcn_00003378 ();
0x00003e38 lw gp, 0x28(sp) | gp = *(var_28h);
0x00003e3c lw v1, 0x9c(sp) | v1 = *(var_9ch);
0x00003e40 b 0x35f0 | goto label_7;
| label_15:
0x00003e78 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00003e7c lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00003e80 lw a0, 4(s7) | a0 = *((s7 + 1));
0x00003e84 addiu t9, t9, 0x3378 | t9 += fcn.00003378;
0x00003e88 addiu a1, a1, 0x4b54 | a1 += str.stat;
0x00003e8c bal 0x3378 | fcn_00003378 ();
0x00003e90 lw gp, 0x28(sp) | gp = *(var_28h);
0x00003e94 b 0x35b8 | goto label_8;
| label_14:
0x00003ee0 addiu v0, zero, 1 | v0 = 1;
0x00003ee4 sw v0, (s7) | *(s7) = v0;
0x00003ee8 addiu t3, zero, 1 | t3 = 1;
0x00003eec b 0x3534 | goto label_2;
| label_25:
0x00003ef0 slti v0, t3, 3 | v0 = (t3 < 3) ? 1 : 0;
| if (t3 < 0) {
0x00003ef4 bltz t3, 0x3bfc | goto label_4;
| }
0x00003ef8 slti t3, t3, 6 | t3 = (t3 < 6) ? 1 : 0;
| if (v0 != 0) {
0x00003efc bnez v0, 0x3fd8 | goto label_32;
| }
0x00003f00 lw t9, -0x7f44(gp) | t9 = sym.imp.__isoc99_sscanf;
| if (t3 == 0) {
0x00003f04 beqz t3, 0x3bfc | goto label_4;
| }
0x00003f08 lw a1, 0x38(sp) | a1 = *(var_38h);
0x00003f0c move a0, v1 | a0 = v1;
0x00003f10 addiu a2, sp, 0x60 | a2 = sp + 0x60;
0x00003f14 sw v1, 0x34(sp) | *(var_34h_2) = v1;
0x00003f18 jalr t9 | t9 ();
0x00003f1c addiu a0, zero, 1 | a0 = 1;
0x00003f20 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != a0) {
0x00003f24 bne v0, a0, 0x3bfc | goto label_4;
| }
0x00003f28 lw v1, 0x34(sp) | v1 = *(var_34h_2);
0x00003f2c addiu v0, zero, 0x20 | v0 = 0x20;
0x00003f30 lbu v1, 2(v1) | v1 = *((v1 + 2));
0x00003f34 lw v0, -0x7ee0(gp) | v0 = *((gp - 8120));
| if (v1 != v0) {
0x00003f38 bne v1, v0, 0x3c00 | goto label_5;
| }
0x00003f3c addiu fp, fp, 4 | fp += 4;
0x00003f40 sw zero, 0x68(sp) | *(var_68h) = 0;
0x00003f44 sw zero, 0x64(sp) | *(var_64h) = 0;
0x00003f48 addiu t3, zero, 4 | t3 = 4;
0x00003f4c b 0x3d30 | goto label_9;
| label_31:
0x00003f50 sw t5, 0x54(sp) | *(var_54h) = t5;
0x00003f54 sw t4, 0x50(sp) | *(var_50h) = t4;
0x00003f58 sw a3, 0x4c(sp) | *(var_4ch) = a3;
0x00003f5c sw a2, 0x48(sp) | *(var_48h) = a2;
0x00003f60 sw a1, 0x44(sp) | *(var_44h) = a1;
0x00003f64 sw t3, 0x34(sp) | *(var_34h_2) = t3;
0x00003f68 addiu a0, zero, 0x14 | a0 = 0x14;
0x00003f6c jalr t9 | t9 ();
0x00003f70 lw t5, 0x54(sp) | t5 = *(var_54h);
0x00003f74 lw gp, 0x28(sp) | gp = *(var_28h);
0x00003f78 sw zero, (v0) | *(v0) = 0;
0x00003f7c lw v1, (t5) | v1 = *(t5);
0x00003f80 lw a1, 0x44(sp) | a1 = *(var_44h);
0x00003f84 lw a2, 0x48(sp) | a2 = *(var_48h);
0x00003f88 lw a3, 0x4c(sp) | a3 = *(var_4ch);
0x00003f8c lw t4, 0x50(sp) | t4 = *(var_50h);
0x00003f90 lw t3, 0x34(sp) | t3 = *(var_34h_2);
0x00003f94 sh a1, 4(v0) | *((v0 + 2)) = a1;
0x00003f98 sh a2, 6(v0) | *((v0 + 3)) = a2;
0x00003f9c sh a3, 8(v0) | *((v0 + 4)) = a3;
0x00003fa0 sh t4, 0xa(v0) | *((v0 + 5)) = t4;
0x00003fa4 sw t3, 0xc(v0) | *((v0 + 3)) = t3;
0x00003fa8 sw fp, 0x10(v0) | *((v0 + 4)) = fp;
0x00003fac sw v1, (v0) | *(v0) = v1;
0x00003fb0 move a0, s4 | a0 = s4;
0x00003fb4 sw v0, (t5) | *(t5) = v0;
0x00003fb8 b 0x3650 | goto label_0;
| label_32:
0x00003fd8 lw t9, -0x7f44(gp) | t9 = sym.imp.__isoc99_sscanf;
0x00003fdc lw a1, 0x38(sp) | a1 = *(var_38h);
0x00003fe0 addiu a2, sp, 0x60 | a2 = sp + 0x60;
0x00003fe4 move a0, v1 | a0 = v1;
0x00003fe8 sw v1, 0x34(sp) | *(var_34h_2) = v1;
0x00003fec jalr t9 | t9 ();
0x00003ff0 move t3, v0 | t3 = v0;
0x00003ff4 addiu v0, zero, 1 | v0 = 1;
0x00003ff8 lw gp, 0x28(sp) | gp = *(var_28h);
| if (t3 != v0) {
0x00003ffc bne t3, v0, 0x3bfc | goto label_4;
| }
0x00004000 lw v1, 0x34(sp) | v1 = *(var_34h_2);
0x00004004 addiu v0, zero, 0x20 | v0 = 0x20;
0x00004008 lbu v1, 4(v1) | v1 = *((v1 + 4));
0x0000400c lw v0, -0x7ee0(gp) | v0 = *((gp - 8120));
| if (v1 != v0) {
0x00004010 bne v1, v0, 0x3c00 | goto label_5;
| }
0x00004014 addiu fp, fp, 6 | fp += 6;
0x00004018 sw zero, 0x68(sp) | *(var_68h) = 0;
0x0000401c sw zero, 0x64(sp) | *(var_64h) = 0;
0x00004020 b 0x3d30 | goto label_9;
| label_28:
0x0000404c sw v1, 0x44(sp) | *(var_44h) = v1;
0x00004050 move a0, a3 | a0 = a3;
0x00004054 sw a3, 0x34(sp) | *(var_34h_2) = a3;
0x00004058 jalr t9 | t9 ();
0x0000405c sltiu v0, v0, 3 | v0 = (v0 < 3) ? 1 : 0;
0x00004060 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x00004064 bnez v0, 0x3bfc | goto label_4;
| }
0x00004068 lw v1, 0x44(sp) | v1 = *(var_44h);
0x0000406c lbu v0, 4(v1) | v0 = *((v1 + 4));
0x00004070 lw t9, -0x7f44(gp) | t9 = sym.imp.__isoc99_sscanf;
| if (v0 != fp) {
0x00004074 bne v0, fp, 0x3bfc | goto label_4;
| }
0x00004078 lw a3, 0x34(sp) | a3 = *(var_34h_2);
0x0000407c lw a1, 0x38(sp) | a1 = *(var_38h);
0x00004080 move a0, a3 | a0 = a3;
0x00004084 addiu a2, sp, 0x5c | a2 = sp + 0x5c;
0x00004088 jalr t9 | t9 ();
0x0000408c addiu a0, zero, 1 | a0 = 1;
0x00004090 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != a0) {
0x00004094 bne v0, a0, 0x3bfc | goto label_4;
| }
0x00004098 addiu t3, zero, 3 | t3 = 3;
0x0000409c lw v1, 0x44(sp) | v1 = *(var_44h);
0x000040a0 b 0x3ccc | goto label_10;
| label_27:
0x0000411c lw t9, -0x7efc(gp) | t9 = sym.imp.__stack_chk_fail;
0x00004120 jalr t9 | t9 ();
0x00004124 nop |
0x00004128 nop |
0x0000412c nop |
| }
[*] Function printf used 25 times systool