[*] Binary protection state of systool

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


[*] Function fprintf 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                  |     
                                         |     if (v1 == a1) {
                                         |         while (v1 != 0) {
    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 fprintf used 25 times systool