[*] Binary protection state of libuClibc-0.9.33.2.so

  
  	No RELRO       Canary found      NX disabled  DSO          No RPATH     No RUNPATH   No Symbols


[*] Function strcpy tear down of libuClibc-0.9.33.2.so

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x244f8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000244f8 ()                  | void fcn_000244f8 () {
    0x000244f8 lui gp, 9                     |     
    0x000244fc addiu gp, gp, 0x11e8          |     
    0x00024500 addu gp, gp, t9               |     gp += t9;
    0x00024504 lw a1, -0x75d0(gp)            |     a1 = *((gp - 7540));
    0x00024508 lw a2, -0x7588(gp)            |     a2 = *((gp - 7522));
    0x0002450c lw t9, -0x7604(gp)            |     t9 = *((gp - 7553));
    0x00024510 addiu sp, sp, -0xc0           |     
    0x00024514 sw ra, 0xbc(sp)               |     *(var_bch) = ra;
    0x00024518 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0002451c sw s3, 0xb0(sp)               |     *(var_b0h) = s3;
    0x00024520 sw s0, 0xa4(sp)               |     *(var_a4h) = s0;
    0x00024524 sw s5, 0xb8(sp)               |     *(var_b8h) = s5;
    0x00024528 sw s4, 0xb4(sp)               |     *(var_b4h) = s4;
    0x0002452c sw s2, 0xac(sp)               |     *(var_ach) = s2;
    0x00024530 sw s1, 0xa8(sp)               |     *(var_a8h) = s1;
    0x00024534 move s3, a0                   |     s3 = a0;
    0x00024538 sw zero, 0x9c(sp)             |     *(var_9ch) = 0;
    0x0002453c addiu a0, sp, 0x8c            |     a0 = sp + 0x8c;
    0x00024540 jalr t9                       |     t9 ();
    0x00024544 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00024548 lw a0, -0x7588(gp)            |     a0 = *((gp - 7522));
    0x0002454c lw t9, -0x758c(gp)            |     t9 = *((gp - 7523));
    0x00024550 jalr t9                       |     t9 ();
    0x00024554 nop                           |     
    0x00024558 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0002455c lw a0, -0x7fa8(gp)            |     a0 = *((gp - 8170));
    0x00024560 lw t9, -0x7f84(gp)            |     t9 = *((gp - 8161));
    0x00024564 addiu a0, a0, -0x77e0         |     a0 += -0x77e0;
    0x00024568 jalr t9                       |     t9 ();
    0x0002456c move s0, v0                   |     s0 = v0;
    0x00024570 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != 0) {
    0x00024574 bnez v0, 0x2472c              |         goto label_6;
                                             |     }
    0x00024578 lw a0, -0x7fa8(gp)            |     a0 = *((gp - 8170));
    0x0002457c lw s2, -0x7f34(gp)            |     s2 = *((gp - 8141));
    0x00024580 move a1, zero                 |     a1 = 0;
    0x00024584 move t9, s2                   |     t9 = s2;
    0x00024588 addiu a0, a0, -0x7800         |     a0 += -0x7800;
    0x0002458c jalr t9                       |     t9 ();
    0x00024590 move s1, v0                   |     s1 = v0;
    0x00024594 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 >= 0) {
    0x00024598 bltz v0, 0x245e4              |         
    0x0002459c lw t9, -0x7f98(gp)            |         t9 = *((gp - 8166));
    0x000245a0 addiu s2, sp, 0x18            |         s2 = sp + 0x18;
    0x000245a4 move a0, v0                   |         a0 = v0;
    0x000245a8 move a1, s2                   |         a1 = s2;
    0x000245ac addiu a2, zero, 0x44          |         a2 = 0x44;
    0x000245b0 jalr t9                       |         t9 ();
    0x000245b4 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 < 0) {
    0x000245b8 bltz v0, 0x246d8              |             goto label_7;
                                             |         }
    0x000245bc addu v0, s2, v0               |         v0 = s2 + v0;
    0x000245c0 sltu v1, s2, v0               |         v1 = (s2 < v0) ? 1 : 0;
    0x000245c4 addiu v1, zero, 0xa           |         v1 = 0xa;
                                             |         if (v1 == 0) {
    0x000245c8 beqz v1, 0x246d8              |             goto label_7;
                                             |         }
    0x000245cc lbu a0, -1(v0)                |         a0 = *(var_18h);
    0x000245d0 lw t9, -0x7f9c(gp)            |         t9 = *((gp - 8167));
                                             |         if (a0 != v1) {
    0x000245d4 bne a0, v1, 0x246dc           |             goto label_8;
                                             |         }
    0x000245d8 sb zero, -1(v0)               |         *(var_18h) = 0;
    0x000245dc move s0, s2                   |         s0 = s2;
    0x000245e0 b 0x246dc                     |         goto label_8;
                                             |     }
    0x000245e4 lw a0, -0x7fa8(gp)            |     a0 = *((gp - 8170));
    0x000245e8 move a1, zero                 |     a1 = 0;
    0x000245ec move t9, s2                   |     t9 = s2;
    0x000245f0 addiu a0, a0, -0x77f8         |     a0 += -0x77f8;
    0x000245f4 jalr t9                       |     t9 ();
    0x000245f8 move s1, v0                   |     s1 = v0;
    0x000245fc lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 < 0) {
    0x00024600 bltz v0, 0x246ec              |         goto label_0;
                                             |     }
    0x00024604 lw s4, -0x7f98(gp)            |     s4 = *((gp - 8166));
    0x00024608 addiu s2, sp, 0x18            |     s2 = sp + 0x18;
    0x0002460c move a0, v0                   |     a0 = v0;
    0x00024610 move a1, s2                   |     a1 = s2;
    0x00024614 move t9, s4                   |     t9 = s4;
    0x00024618 addiu a2, zero, 0x44          |     a2 = 0x44;
    0x0002461c jalr t9                       |     t9 ();
    0x00024620 addiu v1, zero, 0x44          |     v1 = 0x44;
    0x00024624 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != v1) {
    0x00024628 bne v0, v1, 0x246d8           |         goto label_7;
                                             |     }
    0x0002462c lw a1, -0x7fa8(gp)            |     a1 = *((gp - 8170));
    0x00024630 lw t9, -0x7d98(gp)            |     t9 = *((gp - 8038));
    0x00024634 move a0, s2                   |     a0 = s2;
    0x00024638 addiu a1, a1, -0x77e8         |     a1 += -0x77e8;
    0x0002463c addiu a2, zero, 4             |     a2 = 4;
    0x00024640 bal 0x3b810                   |     sym_strncmp ();
    0x00024644 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != 0) {
    0x00024648 bnez v0, 0x246d8              |         goto label_7;
                                             |     }
    0x0002464c lbu v0, 0x1c(sp)              |     v0 = *(var_1ch);
    0x00024650 sltiu v0, v0, 2               |     v0 = (v0 < 2) ? 1 : 0;
    0x00024654 lw t9, -0x7e80(gp)            |     t9 = *((gp - 8096));
                                             |     if (v0 != 0) {
    0x00024658 bnez v0, 0x246d8              |         goto label_7;
                                             |     }
    0x0002465c move a0, s1                   |     a0 = s1;
    0x00024660 addiu a1, zero, -0x44         |     a1 = -0x44;
    0x00024664 addiu a2, zero, 2             |     a2 = 2;
    0x00024668 bal 0xd9f0                    |     sym_lseek ();
    0x0002466c lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 < 0) {
    0x00024670 bltz v0, 0x246d8              |         goto label_7;
                                             |     }
    0x00024674 move a0, s1                   |     a0 = s1;
    0x00024678 move a1, s2                   |     a1 = s2;
    0x0002467c move t9, s4                   |     t9 = s4;
    0x00024680 addiu a2, zero, 0x44          |     a2 = 0x44;
    0x00024684 jalr t9                       |     t9 ();
    0x00024688 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 <= 0) {
    0x0002468c blez v0, 0x246d8              |         goto label_7;
                                             |     }
    0x00024690 addiu v0, v0, -1              |     v0 += -1;
    0x00024694 addu v1, s2, v0               |     v1 = s2 + v0;
    0x00024698 lbu a1, (v1)                  |     a1 = *(v1);
    0x0002469c addiu a0, zero, 0xa           |     a0 = 0xa;
    0x000246a0 lw t9, -0x7f9c(gp)            |     t9 = *((gp - 8167));
                                             |     if (a1 != a0) {
    0x000246a4 bne a1, a0, 0x246dc           |         goto label_8;
                                             |     }
    0x000246a8 sb zero, (v1)                 |     *(v1) = 0;
    0x000246ac addiu v1, zero, 0xa           |     v1 = 0xa;
    0x000246b0 b 0x246cc                     |     
                                             |     while (v0 != 0) {
    0x000246b4 addu a0, s2, v0               |         a0 = s2 + v0;
    0x000246b8 lbu a0, (a0)                  |         a0 = *(a0);
    0x000246bc addiu s0, v0, 1               |         s0 = v0 + 1;
                                             |         if (a0 == v1) {
    0x000246c0 bne a0, v1, 0x246cc           |             
    0x000246c4 addu s0, s2, s0               |             s0 = s2 + s0;
    0x000246c8 b 0x246d8                     |             goto label_7;
                                             |         }
    0x000246cc addiu v0, v0, -1              |         v0 += -1;
    0x000246d0 bnez v0, 0x246b4              |         
                                             |     }
    0x000246d4 move s0, zero                 |     s0 = 0;
                                             | label_7:
    0x000246d8 lw t9, -0x7f9c(gp)            |     t9 = *((gp - 8167));
                                             | label_8:
    0x000246dc move a0, s1                   |     a0 = s1;
    0x000246e0 jalr t9                       |     t9 ();
    0x000246e4 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (s0 != 0) {
    0x000246e8 bnez s0, 0x2472c              |         goto label_6;
                                             |     }
                                             | label_0:
    0x000246ec lw v0, -0x7ecc(gp)            |     v0 = *((gp - 8115));
                                             |     do {
                                             | label_3:
    0x000246f0 lw a0, -0x7d00(gp)            |         a0 = *((gp - 8000));
    0x000246f4 lw t9, -0x7fe4(gp)            |         t9 = *((gp - 8185));
    0x000246f8 move a1, zero                 |         a1 = 0;
    0x000246fc addiu a2, zero, 0x30          |         a2 = 0x30;
    0x00024700 sb zero, -0x1a18(v0)          |         *(v0) = 0;
    0x00024704 bal 0x3a940                   |         sym_memset ();
    0x00024708 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0002470c lw a0, -0x7d00(gp)            |         a0 = *((gp - 8000));
    0x00024710 lw a1, -0x7fa8(gp)            |         a1 = *((gp - 8170));
    0x00024714 lw t9, -0x7f44(gp)            |         t9 = *((gp - 8145));
    0x00024718 addiu a0, a0, 0x10            |         a0 += 0x10;
    0x0002471c addiu a1, a1, -0x77dd         |         a1 += -0x77dd;
    0x00024720 bal 0x3b600                   |         sym_strcpy ()
    0x00024724 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00024728 b 0x24ac8                     |         goto label_9;
                                             | label_6:
    0x0002472c lbu v0, (s0)                  |         v0 = *(s0);
    0x00024730 beql v0, zero, 0x246f0        |         
                                             |     } while (v0 == 0);
    0x00024734 lw v0, -0x7ecc(gp)            |     v0 = *((gp - 8115));
    0x00024738 lw s1, -0x7ecc(gp)            |     s1 = *((gp - 8115));
    0x0002473c xori v0, v0, 0x3a             |     v0 ^= 0x3a;
    0x00024740 sltiu v0, v0, 1               |     v0 = (v0 < 1) ? 1 : 0;
    0x00024744 lw t9, -0x7e94(gp)            |     t9 = *((gp - 8101));
    0x00024748 addu s0, s0, v0               |     s0 += v0;
    0x0002474c move a0, s0                   |     a0 = s0;
    0x00024750 addiu a1, s1, -0x1a18         |     a1 = s1 + -aav.0x00001a18;
    0x00024754 bal 0x3b5d0                   |     sym_strcmp ();
    0x00024758 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 == 0) {
    0x0002475c beqz v0, 0x24afc              |         goto label_10;
                                             |     }
    0x00024760 lw t9, -0x7ce4(gp)            |     t9 = *((gp - 7993));
    0x00024764 addiu a0, s1, -0x1a18         |     a0 = s1 + -aav.0x00001a18;
    0x00024768 move a1, s0                   |     a1 = s0;
    0x0002476c addiu a2, zero, 0x44          |     a2 = 0x44;
    0x00024770 bal 0x3b8e0                   |     sym_strncpy ();
    0x00024774 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00024778 sb zero, 0x84(sp)             |     *(var_84h) = 0;
    0x0002477c move s2, zero                 |     s2 = 0;
    0x00024780 lw s4, -0x7f74(gp)            |     s4 = *((gp - 8157));
    0x00024784 lw s5, -0x7ddc(gp)            |     s5 = *((gp - 8055));
                                             | label_2:
    0x00024788 lbu a0, (s0)                  |     a0 = *(s0);
    0x0002478c addiu v0, zero, 0x3c          |     v0 = 0x3c;
    0x00024790 move v1, zero                 |     v1 = 0;
                                             |     if (a0 == v0) {
    0x00024794 bne a0, v0, 0x247a0           |         
    0x00024798 addiu s0, s0, 1               |         s0++;
    0x0002479c addiu v1, zero, 0x3e          |         v1 = 0x3e;
                                             |     }
    0x000247a0 addiu a1, zero, 0x18          |     a1 = 0x18;
    0x000247a4 mul a0, s2, a1                |     __asm ("mul a0, s2, a1");
    0x000247a8 addiu v0, sp, 0x5c            |     v0 = sp + 0x5c;
    0x000247ac move s1, s0                   |     s1 = s0;
    0x000247b0 addiu t0, zero, -0x80         |     t0 = -0x80;
    0x000247b4 addiu t1, zero, 0x2b          |     t1 = 0x2b;
    0x000247b8 addiu a3, zero, 0x2d          |     a3 = 0x2d;
    0x000247bc addiu t2, zero, 7             |     t2 = 7;
    0x000247c0 addu a1, a0, v0               |     a1 = a0 + v0;
    0x000247c4 addiu a1, a1, 0x10            |     a1 += 0x10;
    0x000247c8 move a0, zero                 |     a0 = 0;
    0x000247cc b 0x247e0                     |     goto label_11;
                                             | label_1:
    0x000247d0 sb v0, (a1)                   |     *(a1) = v0;
    0x000247d4 addiu s1, s1, 1               |     s1++;
    0x000247d8 addiu a1, a1, 1               |     a1++;
                                             |     if (a0 == t2) {
    0x000247dc beq a0, t2, 0x246ec           |         goto label_0;
                                             |     }
                                             | label_11:
    0x000247e0 lbu v0, (s1)                  |     v0 = *(s1);
    0x000247e4 and a2, v0, t0                |     a2 = v0 & t0;
                                             |     if (v0 == 0) {
    0x000247e8 beqz v0, 0x24834              |         goto label_12;
                                             |     }
    0x000247ec sll a2, v0, 1                 |     a2 = v0 << 1;
                                             |     if (a2 != 0) {
    0x000247f0 bnez a2, 0x24834              |         goto label_12;
                                             |     }
    0x000247f4 lw t3, (s4)                   |     t3 = *(s4);
    0x000247f8 addu a2, t3, a2               |     a2 = t3 + a2;
    0x000247fc lhu a2, (a2)                  |     a2 = *(a2);
    0x00024800 andi t3, a2, 4                |     t3 = a2 & 4;
    0x00024804 andi t3, t3, 0xffff           |     t3 &= 0xffff;
    0x00024808 addiu a0, a0, 1               |     a0++;
                                             |     if (t3 == 0) {
    0x0002480c bnel t3, zero, 0x247d0        |         goto label_1;
                                             |     }
    0x00024810 andi a2, a2, 0x800            |     a2 &= aav.0x00000800;
                                             |     if (v1 == 0) {
    0x00024814 beqz v1, 0x24834              |         goto label_12;
                                             |     }
    0x00024818 andi a2, a2, 0xffff           |     a2 &= 0xffff;
    0x0002481c addiu a0, a0, 1               |     a0++;
                                             |     if (a2 == 0) {
    0x00024820 bnel a2, zero, 0x247d0        |         goto label_1;
                                             |     }
                                             |     if (v0 == t1) {
    0x00024824 beql v0, t1, 0x247d0          |         goto label_1;
                                             |     }
    0x00024828 addiu a0, a0, 1               |     a0++;
                                             |     if (v0 == a3) {
    0x0002482c beql v0, a3, 0x247d0          |         goto label_1;
                                             |     }
    0x00024830 addiu a0, a0, 1               |     a0++;
                                             | label_12:
    0x00024834 slti a0, a0, 3                |     a0 = (a0 < 3) ? 1 : 0;
    0x00024838 sb zero, (a1)                 |     *(a1) = 0;
                                             |     if (a0 != 0) {
    0x0002483c bnez a0, 0x246ec              |         goto label_0;
                                             |     }
    0x00024840 lbu v0, (s1)                  |     v0 = *(s1);
                                             |     if (v1 == 0) {
    0x00024844 beqz v1, 0x24854              |         goto label_13;
                                             |     }
    0x00024848 addiu s1, s1, 1               |     s1++;
                                             |     if (v0 != v1) {
    0x0002484c bne v0, v1, 0x246ec           |         goto label_0;
                                             |     }
    0x00024850 lbu v0, (s1)                  |     v0 = *(s1);
                                             | label_13:
    0x00024854 addiu v1, zero, 0x2d          |     v1 = 0x2d;
    0x00024858 addiu v1, zero, 0x2b          |     v1 = 0x2b;
                                             |     if (v0 != v1) {
    0x0002485c beq v0, v1, 0x24890           |         
    0x00024860 move a0, s1                   |         a0 = s1;
                                             |         if (v0 == v1) {
    0x00024864 beq v0, v1, 0x24894           |             goto label_14;
                                             |         }
    0x00024868 addiu a0, s1, -1              |         a0 = s1 + -1;
                                             |         if (s2 == 0) {
    0x0002486c beqz s2, 0x24894              |             goto label_14;
                                             |         }
    0x00024870 addiu v0, v0, -0x30           |         v0 += -0x30;
    0x00024874 sltiu v0, v0, 0xa             |         v0 = (v0 < 0xa) ? 1 : 0;
    0x00024878 lw v0, 0x9c(sp)               |         v0 = *(var_9ch);
                                             |         if (v0 != 0) {
    0x0002487c bnez v0, 0x24894              |             goto label_14;
                                             |         }
    0x00024880 move s0, s1                   |         s0 = s1;
    0x00024884 addiu v0, v0, -0xe10          |         v0 += -0xe10;
    0x00024888 sw v0, 0x9c(sp)               |         *(var_9ch) = v0;
    0x0002488c b 0x248cc                     |         goto label_15;
                                             |     }
    0x00024890 move a0, s1                   |     a0 = s1;
                                             | label_14:
    0x00024894 addiu a0, a0, 1               |     a0++;
    0x00024898 addiu t9, s5, 0x4450          |     t9 = s5 + 0x4450;
    0x0002489c addiu a1, sp, 0x9c            |     a1 = sp + 0x9c;
    0x000248a0 bal 0x24450                   |     fcn_00024450 ();
    0x000248a4 move s0, v0                   |     s0 = v0;
    0x000248a8 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 == 0) {
    0x000248ac beqz v0, 0x246ec              |         goto label_0;
                                             |     }
    0x000248b0 lbu v1, (s1)                  |     v1 = *(s1);
    0x000248b4 addiu v0, zero, 0x2d          |     v0 = 0x2d;
    0x000248b8 addiu v1, zero, 0x18          |     v1 = 0x18;
                                             |     if (v1 == v0) {
    0x000248bc bne v1, v0, 0x248d0           |         
    0x000248c0 lw v0, 0x9c(sp)               |         v0 = *(var_9ch);
    0x000248c4 negu v0, v0                   |         __asm ("negu v0, v0");
    0x000248c8 sw v0, 0x9c(sp)               |         *(var_9ch) = v0;
                                             | label_15:
    0x000248cc addiu v1, zero, 0x18          |         v1 = 0x18;
                                             |     }
    0x000248d0 mul a1, s2, v1                |     __asm ("mul a1, s2, v1");
    0x000248d4 lw v0, 0x9c(sp)               |     v0 = *(var_9ch);
    0x000248d8 addiu a0, sp, 0x18            |     a0 = sp + 0x18;
    0x000248dc addu v1, a1, a0               |     v1 = a1 + a0;
    0x000248e0 sw v0, 0x44(v1)               |     *(var_5ch) = v0;
                                             |     if (s2 != 0) {
    0x000248e4 bnez s2, 0x24900              |         goto label_16;
                                             |     }
    0x000248e8 sw v0, 0x74(sp)               |     *(var_74h) = v0;
    0x000248ec lbu v0, (s0)                  |     v0 = *(s0);
    0x000248f0 addiu s2, zero, 1             |     s2 = 1;
                                             |     if (v0 != 0) {
    0x000248f4 bnez v0, 0x24788              |         goto label_2;
                                             |     }
    0x000248f8 lw a0, -0x7d00(gp)            |     a0 = *((gp - 8000));
    0x000248fc b 0x24ab4                     |     goto label_17;
                                             | label_16:
    0x00024900 lbu v0, (s0)                  |     v0 = *(s0);
    0x00024904 lw s2, -0x7fa8(gp)            |     s2 = *((gp - 8170));
                                             |     if (v0 == 0) {
    0x00024908 bnez v0, 0x24928              |         
                                             |         if (s3 != 0) {
    0x0002490c beql s3, zero, 0x24920        |             
    0x00024910 lw s0, -0x7fa8(gp)            |             s0 = *((gp - 8170));
    0x00024914 lw s0, -0x7fa8(gp)            |             s0 = *((gp - 8170));
    0x00024918 addiu s0, s0, -0x77ca         |             s0 += -0x77ca;
    0x0002491c b 0x24928                     |             
                                             |         } else {
    0x00024920 addiu s0, s0, -0x77ba         |             s0 += -0x77ba;
    0x00024924 lw s2, -0x7fa8(gp)            |             s2 = *((gp - 8170));
                                             |         }
                                             |     }
    0x00024928 lw s3, -0x7fa8(gp)            |     s3 = *((gp - 8170));
    0x0002492c lw s4, -0x7fa8(gp)            |     s4 = *((gp - 8170));
    0x00024930 lw s5, -0x7ddc(gp)            |     s5 = *((gp - 8055));
    0x00024934 move s1, zero                 |     s1 = 0;
    0x00024938 lbu v1, (s0)                  |     v1 = *(s0);
                                             | label_5:
    0x0002493c addiu v0, zero, 0x2c          |     v0 = 0x2c;
    0x00024940 addiu v1, zero, 0x4d          |     v1 = 0x4d;
                                             |     if (v1 != v0) {
    0x00024944 bne v1, v0, 0x246ec           |         goto label_0;
                                             |     }
    0x00024948 lbu v0, 1(s0)                 |     v0 = *((s0 + 1));
    0x0002494c addiu a2, s0, 2               |     a2 = s0 + 2;
                                             |     if (v0 != v1) {
    0x00024950 beq v0, v1, 0x24974           |         
    0x00024954 addiu v1, zero, 0x4a          |         v1 = 0x4a;
                                             |         if (v0 != v1) {
    0x00024958 beql v0, v1, 0x24984          |             
    0x0002495c addiu a1, zero, 0x4a          |             a1 = 0x4a;
    0x00024960 addiu a2, s0, 1               |             a2 = s0 + 1;
    0x00024964 move a1, zero                 |             a1 = 0;
    0x00024968 addiu v1, zero, 0x16d         |             v1 = 0x16d;
    0x0002496c addiu v0, s4, -0x77d0         |             v0 = s4 + -0x77d0;
    0x00024970 b 0x2498c                     |             
                                             |         } else {
    0x00024974 addiu a1, zero, 0x4d          |             a1 = 0x4d;
    0x00024978 addiu v1, zero, 0xc           |             v1 = 0xc;
    0x0002497c addiu v0, s2, -0x77d6         |             v0 = s2 + -0x77d6;
    0x00024980 b 0x2498c                     |             
                                             |         } else {
    0x00024984 addiu v1, zero, 0x16d         |             v1 = 0x16d;
                                             |         }
    0x00024988 addiu v0, s3, -0x77ce         |         v0 = s3 + -0x77ce;
                                             |     }
    0x0002498c addiu t0, zero, 0x18          |     t0 = 0x18;
    0x00024990 mul t0, s1, t0                |     __asm ("mul t0, s1, t0");
    0x00024994 addiu a0, sp, 0x5c            |     a0 = sp + 0x5c;
    0x00024998 move s0, a2                   |     s0 = a2;
    0x0002499c addiu a3, t0, 8               |     a3 = t0 + 8;
    0x000249a0 addu a3, a0, a3               |     a3 = a0 + a3;
    0x000249a4 addu t0, sp, t0               |     t0 = sp + t0;
    0x000249a8 addiu a0, a3, 6               |     a0 = a3 + 6;
    0x000249ac sh a1, 0x6a(t0)               |     *(var_6h) = a1;
    0x000249b0 addiu a3, a3, 2               |     a3 += 2;
    0x000249b4 xori a1, a1, 0x4d             |     a1 ^= 0x4d;
                                             |     if (a1 == 0) {
    0x000249b8 movn a0, a3, a1               |         a0 = a3;
                                             |     }
    0x000249bc addiu t0, zero, 0xa           |     t0 = 0xa;
    0x000249c0 b 0x249c8                     |     goto label_18;
                                             | label_4:
    0x000249c4 move v0, a1                   |     v0 = a1;
                                             | label_18:
    0x000249c8 addiu a2, zero, 3             |     a2 = 3;
    0x000249cc move a1, zero                 |     a1 = 0;
    0x000249d0 b 0x249e4                     |     
                                             |     while (t1 != 0) {
    0x000249d4 addiu a2, a2, -1              |         a2 += -1;
    0x000249d8 addiu s0, s0, 1               |         s0++;
    0x000249dc addu a1, t1, a3               |         a1 = t1 + a3;
                                             |         if (a2 == 0) {
    0x000249e0 beqz a2, 0x249f8              |             goto label_19;
                                             |         }
    0x000249e4 lbu a3, (s0)                  |         a3 = *(s0);
    0x000249e8 addiu a3, a3, -0x30           |         a3 += -0x30;
    0x000249ec sltiu t1, a3, 0xa             |         t1 = (a3 < 0xa) ? 1 : 0;
    0x000249f0 mul t1, a1, t0                |         __asm ("mul t1, a1, t0");
    0x000249f4 bnez t1, 0x249d4              |         
                                             |     }
                                             | label_19:
    0x000249f8 addiu a3, zero, 3             |     a3 = 3;
                                             |     if (a2 == a3) {
    0x000249fc beql a2, a3, 0x246f0          |         goto label_3;
                                             |     }
    0x00024a00 lw v0, -0x7ecc(gp)            |     v0 = *((gp - 8115));
                                             |     if (s0 == 0) {
    0x00024a04 beql s0, zero, 0x246f0        |         goto label_3;
                                             |     }
    0x00024a08 lw v0, -0x7ecc(gp)            |     v0 = *((gp - 8115));
    0x00024a0c lbu a2, 2(v0)                 |     a2 = *((v0 + 2));
    0x00024a10 subu a2, a1, a2               |     __asm ("subu a2, a1, a2");
    0x00024a14 sltu v1, v1, a2               |     v1 = (v1 < a2) ? 1 : 0;
    0x00024a18 lw v0, -0x7ecc(gp)            |     v0 = *((gp - 8115));
                                             |     if (v1 == 0) {
    0x00024a1c bnel v1, zero, 0x246f0        |         goto label_3;
                                             |     }
    0x00024a20 lbu v1, 1(v0)                 |     v1 = *((v0 + 1));
                                             |     if (v1 == 0) {
    0x00024a24 beql v1, zero, 0x24a3c        |         goto label_20;
                                             |     }
    0x00024a28 lbu v1, 3(v0)                 |     v1 = *((v0 + 3));
    0x00024a2c lbu a2, (s0)                  |     a2 = *(s0);
    0x00024a30 addiu s0, s0, 1               |     s0++;
                                             |     if (a2 != v1) {
    0x00024a34 bne a2, v1, 0x246ec           |         goto label_0;
                                             |     }
    0x00024a38 lbu v1, 3(v0)                 |     v1 = *((v0 + 3));
                                             | label_20:
    0x00024a3c addiu a0, a0, -2              |     a0 += -2;
    0x00024a40 sh a1, (a0)                   |     *(a0) = a1;
    0x00024a44 addiu a1, v0, 3               |     a1 = v0 + 3;
                                             |     if (v1 != 0) {
    0x00024a48 bnez v1, 0x249c4              |         goto label_4;
                                             |     }
    0x00024a4c addiu v0, zero, 0x1c20        |     v0 = 0x1c20;
    0x00024a50 sw v0, 0x9c(sp)               |     *(var_9ch) = v0;
    0x00024a54 lbu v1, (s0)                  |     v1 = *(s0);
    0x00024a58 addiu v0, zero, 0x2f          |     v0 = 0x2f;
    0x00024a5c addiu v0, zero, 0x18          |     v0 = 0x18;
                                             |     if (v1 != v0) {
    0x00024a60 bne v1, v0, 0x24a84           |         goto label_21;
                                             |     }
    0x00024a64 addiu a0, s0, 1               |     a0 = s0 + 1;
    0x00024a68 addiu t9, s5, 0x4450          |     t9 = s5 + 0x4450;
    0x00024a6c addiu a1, sp, 0x9c            |     a1 = sp + 0x9c;
    0x00024a70 bal 0x24450                   |     fcn_00024450 ();
    0x00024a74 move s0, v0                   |     s0 = v0;
    0x00024a78 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 == 0) {
    0x00024a7c beqz v0, 0x246ec              |         goto label_0;
                                             |     }
    0x00024a80 addiu v0, zero, 0x18          |     v0 = 0x18;
                                             | label_21:
    0x00024a84 mul v1, s1, v0                |     __asm ("mul v1, s1, v0");
    0x00024a88 addiu s1, s1, 1               |     s1++;
    0x00024a8c addu v0, v1, sp               |     v0 = v1 + sp;
    0x00024a90 lw v1, 0x9c(sp)               |     v1 = *(var_9ch);
    0x00024a94 sw v1, 0x60(v0)               |     *(var_60h) = v1;
    0x00024a98 addiu v0, zero, 1             |     v0 = 1;
                                             |     if (s1 == v0) {
    0x00024a9c beql s1, v0, 0x2493c          |         goto label_5;
                                             |     }
    0x00024aa0 lbu v1, (s0)                  |     v1 = *(s0);
    0x00024aa4 lbu v0, (s0)                  |     v0 = *(s0);
    0x00024aa8 lw v0, -0x7ecc(gp)            |     v0 = *((gp - 8115));
                                             |     if (v0 != 0) {
    0x00024aac bnez v0, 0x246f0              |         goto label_3;
                                             |     }
    0x00024ab0 lw a0, -0x7d00(gp)            |     a0 = *((gp - 8000));
                                             | label_17:
    0x00024ab4 lw t9, -0x7ed4(gp)            |     t9 = *((gp - 8117));
    0x00024ab8 addiu a1, sp, 0x5c            |     a1 = sp + 0x5c;
    0x00024abc addiu a2, zero, 0x30          |     a2 = 0x30;
    0x00024ac0 bal 0x3a800                   |     sym_memcpy ();
    0x00024ac4 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             | label_9:
    0x00024ac8 lw v0, -0x7d00(gp)            |     v0 = *((gp - 8000));
    0x00024acc lw v1, -0x75b8(gp)            |     v1 = *((gp - 7534));
    0x00024ad0 addiu a0, v0, 0x10            |     a0 = v0 + 0x10;
    0x00024ad4 sw a0, (v1)                   |     *(v1) = a0;
    0x00024ad8 addiu a0, v0, 0x28            |     a0 = v0 + 0x28;
    0x00024adc sw a0, 4(v1)                  |     *((v1 + 1)) = a0;
    0x00024ae0 lbu a0, 0x28(v0)              |     a0 = *((v0 + 40));
    0x00024ae4 lw v1, -0x7580(gp)            |     v1 = *((gp - 7520));
    0x00024ae8 sltu a0, zero, a0             |     a0 = (0 < a0) ? 1 : 0;
    0x00024aec sw a0, (v1)                   |     *(v1) = a0;
    0x00024af0 lw v1, (v0)                   |     v1 = *(v0);
    0x00024af4 lw v0, -0x75f0(gp)            |     v0 = *((gp - 7548));
    0x00024af8 sw v1, (v0)                   |     *(v0) = v1;
                                             | label_10:
    0x00024afc lw t9, -0x75ac(gp)            |     t9 = *((gp - 7531));
    0x00024b00 addiu a0, sp, 0x8c            |     a0 = sp + 0x8c;
    0x00024b04 addiu a1, zero, 1             |     a1 = 1;
    0x00024b08 jalr t9                       |     t9 ();
    0x00024b0c lw ra, 0xbc(sp)               |     ra = *(var_bch);
    0x00024b10 lw s5, 0xb8(sp)               |     s5 = *(var_b8h);
    0x00024b14 lw s4, 0xb4(sp)               |     s4 = *(var_b4h);
    0x00024b18 lw s3, 0xb0(sp)               |     s3 = *(var_b0h);
    0x00024b1c lw s2, 0xac(sp)               |     s2 = *(var_ach);
    0x00024b20 lw s1, 0xa8(sp)               |     s1 = *(var_a8h);
    0x00024b24 lw s0, 0xa4(sp)               |     s0 = *(var_a4h);
    0x00024b28 addiu sp, sp, 0xc0            |     
    0x00024b2c jr ra                         |     return v1;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x252c0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000252c0 ()                  | void fcn_000252c0 () {
    0x000252c0 lui gp, 9                     |     
    0x000252c4 addiu gp, gp, 0x420           |     
    0x000252c8 addu gp, gp, t9               |     gp += t9;
    0x000252cc addiu sp, sp, -0x50           |     
    0x000252d0 sw s3, 0x34(sp)               |     *(var_34h) = s3;
    0x000252d4 lw s3, -0x7fa8(gp)            |     s3 = *((gp - 8170));
    0x000252d8 sw s5, 0x3c(sp)               |     *(var_3ch) = s5;
    0x000252dc sw s4, 0x38(sp)               |     *(var_38h) = s4;
    0x000252e0 sw s2, 0x30(sp)               |     *(var_30h) = s2;
    0x000252e4 sw s1, 0x2c(sp)               |     *(var_2ch) = s1;
    0x000252e8 sw s0, 0x28(sp)               |     *(var_28h) = s0;
    0x000252ec sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x000252f0 sw ra, 0x4c(sp)               |     *(var_4ch) = ra;
    0x000252f4 sw fp, 0x48(sp)               |     *(var_48h) = fp;
    0x000252f8 sw s7, 0x44(sp)               |     *(var_44h) = s7;
    0x000252fc sw s6, 0x40(sp)               |     *(var_40h) = s6;
    0x00025300 move s4, a0                   |     s4 = a0;
    0x00025304 move s0, a1                   |     s0 = a1;
    0x00025308 move s2, a2                   |     s2 = a2;
    0x0002530c move s1, zero                 |     s1 = 0;
    0x00025310 addiu s5, s3, -0x7760         |     s5 = s3 + -0x7760;
                                             | label_0:
    0x00025314 addiu s6, zero, 0x18          |     s6 = 0x18;
    0x00025318 mul v0, s1, s6                |     __asm ("mul v0, s1, s6");
    0x0002531c lui v1, 9                     |     v1 = 0x93a80;
    0x00025320 ori v1, v1, 0x3a80            |     
    0x00025324 lui a1, 0x7ff6                |     a1 = 0x7ff6c580;
    0x00025328 ori a1, a1, 0xc580            |     
    0x0002532c addu s6, v0, s2               |     s6 = v0 + s2;
    0x00025330 lw v0, (s6)                   |     v0 = *(s6);
    0x00025334 subu v0, v1, v0               |     __asm ("subu v0, v1, v0");
    0x00025338 lw v1, (s4)                   |     v1 = *(s4);
    0x0002533c slt a0, v1, a1                |     a0 = (v1 < a1) ? 1 : 0;
    0x00025340 addiu a1, zero, -7            |     a1 = -7;
                                             |     if (a0 == 0) {
    0x00025344 bnez a0, 0x25350              |         
    0x00025348 negu v0, v0                   |         __asm ("negu v0, v0");
    0x0002534c addiu a1, zero, 7             |         a1 = 7;
                                             |     }
    0x00025350 lw t9, -0x7d08(gp)            |     t9 = *((gp - 8002));
    0x00025354 addu v0, v1, v0               |     v0 = v1 + v0;
    0x00025358 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x0002535c addiu a0, sp, 0x18            |     a0 = sp + 0x18;
    0x00025360 move a2, s0                   |     a2 = s0;
    0x00025364 bal 0x24b80                   |     fcn_00024b80 ();
    0x00025368 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0002536c lw v0, (s6)                   |     v0 = *(s6);
    0x00025370 sw s1, 0x20(s0)               |     *((s0 + 8)) = s1;
    0x00025374 lw s7, -0x7654(gp)            |     s7 = *((gp - 7573));
    0x00025378 lw t9, -0x7e94(gp)            |     t9 = *((gp - 8101));
    0x0002537c negu v0, v0                   |     __asm ("negu v0, v0");
    0x00025380 sw v0, 0x24(s0)               |     *((s0 + 9)) = v0;
    0x00025384 addiu s6, s6, 0x10            |     s6 += 0x10;
    0x00025388 addiu fp, s7, 4               |     fp = s7 + 4;
                                             |     do {
    0x0002538c sw t9, 0x20(sp)               |         *(var_20h) = t9;
    0x00025390 move a0, fp                   |         a0 = fp;
    0x00025394 move a1, s6                   |         a1 = s6;
    0x00025398 jalr t9                       |         t9 ();
    0x0002539c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x000253a0 lw t9, 0x20(sp)               |         t9 = *(var_20h);
                                             |         if (v0 == 0) {
    0x000253a4 beqz v0, 0x25418              |             goto label_1;
                                             |         }
    0x000253a8 lw s7, (s7)                   |         s7 = *(s7);
    0x000253ac addiu fp, s7, 4               |         fp = s7 + 4;
    0x000253b0 bnel s7, zero, 0x2538c        |         
                                             |     } while (s7 == 0);
    0x000253b4 lw t9, -0x7cd8(gp)            |     t9 = *((gp - 7990));
    0x000253b8 move a0, s6                   |     a0 = s6;
    0x000253bc addiu a1, zero, 7             |     a1 = 7;
    0x000253c0 bal 0x3b9c0                   |     sym_strnlen ();
    0x000253c4 slti v1, v0, 7                |     v1 = (v0 < 7) ? 1 : 0;
    0x000253c8 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x000253cc bnez v1, 0x253dc              |     
                                             |     while (v0 == 0) {
    0x000253d0 lw fp, -0x7584(gp)            |         fp = *((gp - 7521));
    0x000253d4 addiu fp, fp, 4               |         fp += 4;
    0x000253d8 b 0x25418                     |         goto label_1;
    0x000253dc lw t9, -0x75a0(gp)            |         t9 = *((gp - 7528));
    0x000253e0 addiu a0, v0, 8               |         a0 = v0 + 8;
    0x000253e4 jalr t9                       |         t9 ();
    0x000253e8 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x000253ec beqz v0, 0x253d0              |         
                                             |     }
    0x000253f0 lw v1, -0x7584(gp)            |     v1 = *((gp - 7521));
    0x000253f4 lw t9, -0x7f44(gp)            |     t9 = *((gp - 8145));
    0x000253f8 move a1, s6                   |     a1 = s6;
    0x000253fc lw a0, (v1)                   |     a0 = *(v1);
    0x00025400 sw v0, (v1)                   |     *(v1) = v0;
    0x00025404 sw a0, (v0)                   |     *(v0) = a0;
    0x00025408 addiu a0, v0, 4               |     a0 = v0 + 4;
    0x0002540c bal 0x3b600                   |     sym_strcpy ()
    0x00025410 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00025414 move fp, v0                   |     fp = v0;
                                             | label_1:
    0x00025418 addiu s1, s1, 1               |     s1++;
    0x0002541c addiu v0, zero, 1             |     v0 = 1;
    0x00025420 sw fp, 0x28(s0)               |     *((s0 + 10)) = fp;
                                             |     if (s1 != v0) {
    0x00025424 bne s1, v0, 0x25638           |         goto label_2;
                                             |     }
    0x00025428 lbu v0, 0x28(s2)              |     v0 = *((s2 + 40));
    0x0002542c move a1, zero                 |     a1 = 0;
                                             |     if (v0 == 0) {
    0x00025430 beqz v0, 0x2562c              |         goto label_3;
                                             |     }
    0x00025434 lw v1, 0x1c(s0)               |     v1 = *((s0 + 7));
    0x00025438 addiu t1, zero, 0x18          |     t1 = 0x18;
    0x0002543c lw v0, 8(s0)                  |     v0 = *((s0 + 2));
    0x00025440 mul a0, t1, v1                |     __asm ("mul a0, t1, v1");
    0x00025444 lw v1, 4(s0)                  |     v1 = *((s0 + 1));
    0x00025448 addu t1, a0, v0               |     t1 = a0 + v0;
    0x0002544c addiu v0, zero, 0x3c          |     v0 = 0x3c;
    0x00025450 mul a0, t1, v0                |     __asm ("mul a0, t1, v0");
    0x00025454 addu t1, a0, v1               |     t1 = a0 + v1;
    0x00025458 mul a0, t1, v0                |     __asm ("mul a0, t1, v0");
    0x0002545c lw v1, (s0)                   |     v1 = *(s0);
    0x00025460 addu t1, a0, v1               |     t1 = a0 + v1;
    0x00025464 lw v1, 0x14(s0)               |     v1 = *((s0 + 5));
    0x00025468 addiu a0, zero, 0x190         |     a0 = aav.0x00000190;
    0x0002546c div zero, v1, a0              |     __asm ("div zero, v1, a0");
    0x00025470 teq a0, zero, 7               |     __asm ("teq a0, zero, 7");
    0x00025474 mfhi v1                       |     __asm ("mfhi v1");
    0x00025478 addiu v0, v1, 0x76c           |     v0 = v1 + 0x76c;
    0x0002547c andi a1, v0, 3                |     a1 = v0 & 3;
    0x00025480 move a3, zero                 |     a3 = 0;
                                             |     if (a1 == 0) {
    0x00025484 bnez a1, 0x254bc              |         
    0x00025488 addiu a1, zero, 0x64          |         a1 = 0x64;
    0x0002548c div zero, v0, a1              |         __asm ("div zero, v0, a1");
    0x00025490 teq a1, zero, 7               |         __asm ("teq a1, zero, 7");
    0x00025494 mfhi a2                       |         __asm ("mfhi a2");
                                             |         if (a2 != 0) {
    0x00025498 beqz a2, 0x254a8              |             
    0x0002549c nop                           |             
    0x000254a0 addiu a3, zero, 1             |             a3 = 1;
    0x000254a4 b 0x254bc                     |             
                                             |         } else {
    0x000254a8 div zero, v0, a0              |             __asm ("div zero, v0, a0");
    0x000254ac teq a0, zero, 7               |             __asm ("teq a0, zero, 7");
    0x000254b0 mfhi a1                       |             __asm ("mfhi a1");
                                             |             if (a1 == 0) {
    0x000254b4 beql a1, zero, 0x254bc        |                 goto label_4;
                                             |             }
    0x000254b8 addiu a3, zero, 1             |             a3 = 1;
                                             |         }
                                             |     }
                                             | label_4:
    0x000254bc addiu v1, v1, 0x76b           |     v1 += 0x76b;
    0x000254c0 addiu a0, zero, -0x64         |     a0 = -0x64;
    0x000254c4 div zero, v1, a0              |     __asm ("div zero, v1, a0");
    0x000254c8 teq a0, zero, 7               |     __asm ("teq a0, zero, 7");
    0x000254cc sra t7, v1, 2                 |     t7 = v1 >> 2;
    0x000254d0 addiu a0, zero, 0x190         |     a0 = aav.0x00000190;
    0x000254d4 addu t7, v0, t7               |     t7 = v0 + t7;
    0x000254d8 lui t6, 1                     |     t6 = 0x10000;
    0x000254dc move t4, zero                 |     t4 = 0;
    0x000254e0 move a1, zero                 |     a1 = 0;
    0x000254e4 move a2, zero                 |     a2 = 0;
    0x000254e8 addiu t8, zero, 0x4a          |     t8 = 0x4a;
    0x000254ec addiu t9, zero, 0x4d          |     t9 = 0x4d;
    0x000254f0 addiu s6, s3, -0x7760         |     s6 = s3 + -0x7760;
    0x000254f4 addiu s7, zero, 0x1f          |     s7 = 0x1f;
    0x000254f8 addiu t2, zero, 7             |     t2 = 7;
    0x000254fc addiu t6, t6, 0x5180          |     t6 += 0x5180;
    0x00025500 addiu t5, zero, 1             |     t5 = 1;
    0x00025504 mflo v0                       |     __asm ("mflo v0");
    0x00025508 addu t7, t7, v0               |     t7 += v0;
    0x0002550c div zero, v1, a0              |     __asm ("div zero, v1, a0");
    0x00025510 teq a0, zero, 7               |     __asm ("teq a0, zero, 7");
    0x00025514 addiu v1, zero, 7             |     v1 = 7;
    0x00025518 mflo v0                       |     __asm ("mflo v0");
    0x0002551c addu t7, t7, v0               |     t7 += v0;
    0x00025520 move v0, s2                   |     v0 = s2;
    0x00025524 div zero, t7, v1              |     __asm ("div zero, t7, v1");
    0x00025528 teq v1, zero, 7               |     __asm ("teq v1, zero, 7");
    0x0002552c mfhi t7                       |     __asm ("mfhi t7");
    0x00025530 b 0x25538                     |     
                                             |     while (a2 == t5) {
    0x00025534 move t4, v1                   |         t4 = v1;
    0x00025538 lh a0, 0xe(v0)                |         a0 = *((v0 + 7));
    0x0002553c lh v1, 8(v0)                  |         v1 = *((v0 + 4));
                                             |         if (a0 == t8) {
    0x00025540 bne a0, t8, 0x25560           |             
                                             |             if (a3 == 0) {
    0x00025544 beql a3, zero, 0x255e8        |                 goto label_5;
                                             |             }
    0x00025548 addiu v1, v1, -1              |             v1 += -1;
    0x0002554c slti a0, v1, 0x3c             |             a0 = (v1 < 0x3c) ? 1 : 0;
                                             |             if (a0 == 0) {
    0x00025550 beqz a0, 0x255e8              |                 goto label_5;
                                             |             }
    0x00025554 nop                           |             
    0x00025558 addiu v1, v1, -1              |             v1 += -1;
    0x0002555c b 0x255e8                     |             
                                             |             if (a0 != t9) {
                                             |             } else {
    0x00025560 bne a0, t9, 0x255e8           |                 goto label_5;
                                             |             }
    0x00025564 nop                           |             
    0x00025568 lh t0, 0xc(v0)                |             t0 = *((v0 + 6));
    0x0002556c addu a0, t0, s6               |             a0 = t0 + s6;
    0x00025570 lbu t3, -1(a0)                |             t3 = *((a0 - 1));
    0x00025574 mul a0, t0, s7                |             __asm ("mul a0, t0, s7");
    0x00025578 subu a0, a0, t3               |             __asm ("subu a0, a0, t3");
                                             |             if (a3 != 0) {
    0x0002557c beqz a3, 0x2558c              |                 
    0x00025580 slti fp, a0, 0x3b             |                 fp = (a0 < 0x3b) ? 1 : 0;
    0x00025584 sltiu fp, fp, 1               |                 fp = (fp < 1) ? 1 : 0;
    0x00025588 addu a0, a0, fp               |                 a0 += fp;
                                             |             }
    0x0002558c addu fp, s5, t0               |             fp = s5 + t0;
    0x00025590 lbu fp, (fp)                  |             fp = *(fp);
    0x00025594 addiu t3, t3, 0x1f            |             t3 += 0x1f;
    0x00025598 subu t3, t3, fp               |             __asm ("subu t3, t3, fp");
                                             |             if (a3 != 0) {
    0x0002559c beqz a3, 0x255ac              |                 
    0x000255a0 xori t0, t0, 2                |                 t0 ^= 2;
    0x000255a4 sltiu t0, t0, 1               |                 t0 = (t0 < 1) ? 1 : 0;
    0x000255a8 addu t3, t3, t0               |                 t3 += t0;
                                             |             }
    0x000255ac addu t0, t7, a0               |             t0 = t7 + a0;
    0x000255b0 div zero, t0, t2              |             __asm ("div zero, t0, t2");
    0x000255b4 teq t2, zero, 7               |             __asm ("teq t2, zero, 7");
    0x000255b8 mfhi fp                       |             __asm ("mfhi fp");
    0x000255bc subu v1, v1, fp               |             __asm ("subu v1, v1, fp");
    0x000255c0 addiu t0, v1, -7              |             t0 = v1 + -7;
    0x000255c4 slti fp, v1, 0                |             fp = (v1 < 0) ? 1 : 0;
                                             |             if (fp != 0) {
    0x000255c8 movz v1, t0, fp               |                 v1 = t0;
                                             |             }
    0x000255cc lh t0, 0xa(v0)                |             t0 = *((v0 + 5));
    0x000255d0 mul fp, t0, t2                |             __asm ("mul fp, t0, t2");
    0x000255d4 addu v1, fp, v1               |             v1 = fp + v1;
    0x000255d8 slt t3, v1, t3                |             t3 = (v1 < t3) ? 1 : 0;
    0x000255dc addiu t0, v1, -7              |             t0 = v1 + -7;
                                             |             if (t3 != 0) {
    0x000255e0 movz v1, t0, t3               |                 v1 = t0;
                                             |             }
    0x000255e4 addu v1, a0, v1               |             v1 = a0 + v1;
                                             |         }
                                             | label_5:
    0x000255e8 mul t0, v1, t6                |         __asm ("mul t0, v1, t6");
                                             |         if (a2 != 0) {
    0x000255ec beqz a2, 0x2560c              |             
    0x000255f0 lw t0, -0x18(v0)              |             t0 = *((v0 - 6));
    0x000255f4 lw a0, (v0)                   |             a0 = *(v0);
    0x000255f8 slt t4, v1, t4                |             t4 = (v1 < t4) ? 1 : 0;
    0x000255fc addu a1, a1, t4               |             a1 += t4;
    0x00025600 subu a0, t0, a0               |             __asm ("subu a0, t0, a0");
    0x00025604 addu t1, t1, a0               |             t1 += a0;
    0x00025608 mul t0, v1, t6                |             __asm ("mul t0, v1, t6");
                                             |         }
    0x0002560c lw a0, 4(v0)                  |         a0 = *((v0 + 1));
    0x00025610 addiu a2, a2, 1               |         a2++;
    0x00025614 addiu v0, v0, 0x18            |         v0 += 0x18;
    0x00025618 addu a0, t0, a0               |         a0 = t0 + a0;
    0x0002561c slt a0, t1, a0                |         a0 = (t1 < a0) ? 1 : 0;
    0x00025620 sltiu a0, a0, 1               |         a0 = (a0 < 1) ? 1 : 0;
    0x00025624 addu a1, a1, a0               |         a1 += a0;
    0x00025628 beq a2, t5, 0x25534           |         
                                             |     }
                                             | label_3:
    0x0002562c andi a1, a1, 1                |     a1 &= 1;
    0x00025630 sw a1, 0x20(s0)               |     *((s0 + 8)) = a1;
                                             |     if (a1 != 0) {
    0x00025634 bnez a1, 0x25314              |         goto label_0;
                                             |     }
                                             | label_2:
    0x00025638 lw ra, 0x4c(sp)               |     ra = *(var_4ch);
    0x0002563c move v0, s0                   |     v0 = s0;
    0x00025640 lw fp, 0x48(sp)               |     fp = *(var_48h);
    0x00025644 lw s7, 0x44(sp)               |     s7 = *(var_44h);
    0x00025648 lw s6, 0x40(sp)               |     s6 = *(var_40h);
    0x0002564c lw s5, 0x3c(sp)               |     s5 = *(var_3ch);
    0x00025650 lw s4, 0x38(sp)               |     s4 = *(var_38h);
    0x00025654 lw s3, 0x34(sp)               |     s3 = *(var_34h);
    0x00025658 lw s2, 0x30(sp)               |     s2 = *(var_30h);
    0x0002565c lw s1, 0x2c(sp)               |     s1 = *(var_2ch);
    0x00025660 lw s0, 0x28(sp)               |     s0 = *(var_28h);
    0x00025664 addiu sp, sp, 0x50            |     
    0x00025668 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x356d0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000356d0 ()                  | void fcn_000356d0 () {
    0x000356d0 lui gp, 8                     |     
    0x000356d4 addiu gp, gp, 0x10            |     
    0x000356d8 addu gp, gp, t9               |     gp += t9;
    0x000356dc lw v0, -0x7fa8(gp)            |     v0 = *((gp - 8170));
    0x000356e0 lw v1, 0x3c(a0)               |     v1 = *((a0 + 15));
    0x000356e4 addiu sp, sp, -0x108          |     
    0x000356e8 addiu v0, v0, -0x6e50         |     v0 += -0x6e50;
    0x000356ec addu v0, v1, v0               |     v0 = v1 + v0;
    0x000356f0 sw s1, 0xe4(sp)               |     *(var_e4h) = s1;
    0x000356f4 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x000356f8 lbu s1, -1(v0)                |     s1 = *((v0 - 1));
    0x000356fc addiu v0, zero, 1             |     v0 = 1;
    0x00035700 sw s7, 0xfc(sp)               |     *(var_fch) = s7;
    0x00035704 sw s0, 0xe0(sp)               |     *(var_e0h) = s0;
    0x00035708 sw ra, 0x104(sp)              |     *(var_104h) = ra;
    0x0003570c sw fp, 0x100(sp)              |     *(var_100h) = fp;
    0x00035710 sw s6, 0xf8(sp)               |     *(var_f8h) = s6;
    0x00035714 sw s5, 0xf4(sp)               |     *(var_f4h) = s5;
    0x00035718 sw s4, 0xf0(sp)               |     *(var_f0h) = s4;
    0x0003571c sw s3, 0xec(sp)               |     *(var_ech) = s3;
    0x00035720 sw s2, 0xe8(sp)               |     *(var_e8h) = s2;
    0x00035724 move s0, a0                   |     s0 = a0;
    0x00035728 move s7, a1                   |     s7 = a1;
    0x0003572c sw v1, 0xd0(sp)               |     *(var_d0h) = v1;
                                             |     if (v1 != v0) {
    0x00035730 bne v1, v0, 0x357c8           |         goto label_3;
                                             |     }
    0x00035734 lw v0, -0x7fa8(gp)            |     v0 = *((gp - 8170));
    0x00035738 lw s4, -0x7b80(gp)            |     s4 = *((gp - 7904));
    0x0003573c addiu s2, v0, -0x6f9c         |     s2 = v0 + -0x6f9c;
    0x00035740 move s3, v0                   |     s3 = v0;
    0x00035744 move t9, s4                   |     t9 = s4;
                                             |     do {
    0x00035748 move a0, s7                   |         a0 = s7;
    0x0003574c bal 0x3531c                   |         fcn_0003531c ();
    0x00035750 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 >= 0) {
    0x00035754 bltz v0, 0x35768              |             
    0x00035758 lbu a0, (s2)                  |             a0 = *(s2);
    0x0003575c lw v0, (s7)                   |             v0 = *(s7);
                                             |             if (a0 == v0) {
    0x00035760 beql a0, v0, 0x3578c          |                 goto label_4;
                                             |             }
    0x00035764 addiu s2, s2, 1               |             s2++;
                                             |         }
    0x00035768 lw t9, -0x7b74(gp)            |         t9 = *((gp - 7901));
    0x0003576c addiu s3, s3, -0x6f9c         |         s3 += -0x6f9c;
    0x00035770 move a0, s7                   |         a0 = s7;
    0x00035774 sltu s2, s3, s2               |         s2 = (s3 < s2) ? 1 : 0;
    0x00035778 bal 0x353b4                   |         fcn_000353b4 ();
    0x0003577c lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (s2 == 0) {
    0x00035780 beqz s2, 0x357c8              |             goto label_3;
                                             |         }
    0x00035784 addiu v0, zero, -2            |         v0 = -2;
    0x00035788 b 0x36054                     |         goto label_5;
                                             | label_4:
    0x0003578c lbu v0, (s2)                  |         v0 = *(s2);
    0x00035790 move t9, s4                   |         t9 = s4;
    0x00035794 bnez v0, 0x35748              |         
                                             |     } while (v0 != 0);
    0x00035798 lbu v0, 0x44(s0)              |     v0 = *((s0 + 68));
    0x0003579c lw v0, 0x34(s0)               |     v0 = *((s0 + 13));
                                             |     if (v0 != 0) {
    0x000357a0 bnel v0, zero, 0x357ac        |         
    0x000357a4 move v0, zero                 |         v0 = 0;
    0x000357a8 b 0x36054                     |         goto label_5;
                                             |     }
    0x000357ac lw a0, 0x2c(s0)               |     a0 = *((s0 + 11));
    0x000357b0 lw a1, 0x38(s0)               |     a1 = *((s0 + 14));
    0x000357b4 addiu v0, v0, 1               |     v0++;
    0x000357b8 sw v0, 0x34(s0)               |     *((s0 + 13)) = v0;
    0x000357bc move a2, zero                 |     a2 = 0;
    0x000357c0 move a3, zero                 |     a3 = 0;
    0x000357c4 b 0x35cd8                     |     goto label_6;
                                             | label_3:
    0x000357c8 lw t9, -0x7b80(gp)            |     t9 = *((gp - 7904));
    0x000357cc move a0, s7                   |     a0 = s7;
    0x000357d0 bal 0x3531c                   |     fcn_0003531c ();
    0x000357d4 lw v0, (s7)                   |     v0 = *(s7);
    0x000357d8 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 < 0) {
    0x000357dc bltz v0, 0x36050              |         goto label_7;
                                             |     }
    0x000357e0 addiu a0, zero, 0x2b          |     a0 = 0x2b;
    0x000357e4 addiu a0, zero, 0x2d          |     a0 = 0x2d;
                                             |     if (v0 != a0) {
    0x000357e8 beq v0, a0, 0x357f4           |         
    0x000357ec addiu fp, sp, 0x18            |         fp = sp + 0x18;
                                             |         if (v0 != a0) {
    0x000357f0 bne v0, a0, 0x3580c           |             goto label_8;
                                             |         }
                                             |     }
    0x000357f4 lw t9, -0x7b80(gp)            |     t9 = *((gp - 7904));
    0x000357f8 sb v0, 0x18(sp)               |     *(var_18h) = v0;
    0x000357fc move a0, s7                   |     a0 = s7;
    0x00035800 bal 0x3531c                   |     fcn_0003531c ();
    0x00035804 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00035808 addiu fp, sp, 0x19            |     fp = sp + 0x19;
                                             | label_8:
    0x0003580c andi v0, s1, 0xef             |     v0 = s1 & 0xef;
    0x00035810 lbu v0, 0x45(s0)              |     v0 = *((s0 + 69));
                                             |     if (v0 != 0) {
    0x00035814 bnel v0, zero, 0x358b8        |         
    0x00035818 lw s2, (s7)                   |         s2 = *(s7);
    0x0003581c addiu v0, zero, 0x30          |         v0 = 0x30;
    0x00035820 addiu v0, zero, 0xa           |         v0 = 0xa;
                                             |         if (s2 == v0) {
    0x00035824 bne s2, v0, 0x358a8           |             
    0x00035828 lw s4, -0x7b80(gp)            |             s4 = *((gp - 7904));
    0x0003582c move t9, s4                   |             t9 = s4;
    0x00035830 move a0, s7                   |             a0 = s7;
    0x00035834 bal 0x3531c                   |             fcn_0003531c ();
    0x00035838 lw s3, (s7)                   |             s3 = *(s7);
    0x0003583c addiu v0, zero, 0x78          |             v0 = 0x78;
    0x00035840 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00035844 ori s3, s3, 0x20              |             s3 |= 0x20;
    0x00035848 move a0, s7                   |             a0 = s7;
                                             |             if (s3 == v0) {
    0x0003584c bne s3, v0, 0x35878           |                 
    0x00035850 move t9, s4                   |                 t9 = s4;
    0x00035854 bal 0x3531c                   |                 fcn_0003531c ();
    0x00035858 nop                           |                 
    0x0003585c lw gp, 0x10(sp)               |                 gp = *(var_10h);
                                             |                 if (v0 < 0) {
    0x00035860 bltz v0, 0x3603c              |                     goto label_9;
                                             |                 }
    0x00035864 sb s2, (fp)                   |                 *(fp) = s2;
    0x00035868 sb s3, 1(fp)                  |                 *(var_1h) = s3;
    0x0003586c addiu s1, zero, 0x10          |                 s1 = 0x10;
    0x00035870 addiu fp, fp, 2               |                 fp += 2;
    0x00035874 b 0x358b4                     |                 
    0x00035878 lw t9, -0x7b74(gp)            |                 t9 = *((gp - 7901));
    0x0003587c bal 0x353b4                   |                 fcn_000353b4 ();
    0x00035880 nop                           |                 
    0x00035884 lw v0, 0x3c(s0)               |                 v0 = *((s0 + 15));
    0x00035888 lw gp, 0x10(sp)               |                 gp = *(var_10h);
    0x0003588c slti v0, v0, 8                |                 v0 = (v0 < 8) ? 1 : 0;
    0x00035890 sw s2, (s7)                   |                 *(s7) = s2;
                                             |             } else {
                                             |             } else {
                                             |             }
                                             |         }
                                             |         if (v0 != 0) {
    0x00035894 beqz v0, 0x358b0              |             
    0x00035898 ext s1, s1, 1, 8              |             __asm ("ext s1, s1, 1, 8");
    0x0003589c addiu s1, s1, 8               |             s1 += 8;
    0x000358a0 andi s1, s1, 0xff             |             s1 &= 0xff;
    0x000358a4 b 0x358b4                     |             
                                             |             if (s1 != 0) {
    0x000358a8 movz s1, v0, s1               |                 s1 = v0;
                                             |             }
    0x000358ac b 0x358b4                     |             
                                             |         } else {
    0x000358b0 addiu s1, zero, 0xa           |             s1 = 0xa;
                                             |         }
    0x000358b4 lbu v0, 0x45(s0)              |         v0 = *((s0 + 69));
                                             |     }
    0x000358b8 andi v0, v0, 0x20             |     v0 &= 0x20;
    0x000358bc andi v0, v0, 0xff             |     v0 &= 0xff;
    0x000358c0 move s2, zero                 |     s2 = 0;
                                             |     if (v0 == 0) {
    0x000358c4 beqz v0, 0x35b78              |         goto label_10;
                                             |     }
    0x000358c8 addiu v0, zero, 0xa           |     v0 = 0xa;
    0x000358cc move s3, zero                 |     s3 = 0;
                                             |     if (s1 != v0) {
    0x000358d0 bne s1, v0, 0x35b7c           |         goto label_11;
                                             |     }
    0x000358d4 lw v0, 0x30(s7)               |     v0 = *((s7 + 12));
    0x000358d8 lbu s5, (v0)                  |     s5 = *(v0);
                                             |     if (s5 == 0) {
    0x000358dc beql s5, zero, 0x35b80        |         goto label_12;
                                             |     }
    0x000358e0 lw v0, (s7)                   |     v0 = *(s7);
    0x000358e4 lbu t1, 1(v0)                 |     t1 = *((v0 + 1));
                                             |     if (t1 != 0) {
    0x000358e8 beql t1, zero, 0x35904        |         
    0x000358ec sw s5, 0xd4(sp)               |         *(var_d4h) = s5;
    0x000358f0 slt v0, s5, t1                |         v0 = (s5 < t1) ? 1 : 0;
    0x000358f4 move v1, s5                   |         v1 = s5;
                                             |         if (v0 == 0) {
    0x000358f8 movn v1, t1, v0               |             v1 = t1;
                                             |         }
    0x000358fc sw v1, 0xd4(sp)               |         *(var_d4h) = v1;
    0x00035900 b 0x35908                     |         
                                             |     } else {
    0x00035904 move t1, s5                   |         t1 = s5;
                                             |     }
    0x00035908 lw v0, (s7)                   |     v0 = *(s7);
    0x0003590c addiu a0, v0, -0x30           |     a0 = v0 + -0x30;
    0x00035910 sltiu a0, a0, 0xa             |     a0 = (a0 < 0xa) ? 1 : 0;
    0x00035914 addiu a0, zero, 0x30          |     a0 = 0x30;
                                             |     if (a0 == 0) {
    0x00035918 bnez a0, 0x35934              |         
    0x0003591c lw v0, 0x3c(s0)               |         v0 = *((s0 + 15));
    0x00035920 slti v0, v0, 8                |         v0 = (v0 < 8) ? 1 : 0;
    0x00035924 move s2, zero                 |         s2 = 0;
                                             |         if (v0 == 0) {
    0x00035928 beqz v0, 0x35cec              |             goto label_13;
                                             |         }
    0x0003592c lw t9, -0x7b74(gp)            |         t9 = *((gp - 7901));
    0x00035930 b 0x36040                     |         goto label_14;
                                             |     }
    0x00035934 move s2, zero                 |     s2 = 0;
                                             |     if (v0 == a0) {
    0x00035938 bne v0, a0, 0x35948           |         
    0x0003593c sb v0, (fp)                   |         *(fp) = v0;
    0x00035940 addiu s2, zero, 1             |         s2 = 1;
    0x00035944 addiu fp, fp, 1               |         fp++;
                                             |     }
    0x00035948 addiu t9, sp, 0x59            |     t9 = sp + 0x59;
    0x0003594c sw zero, 0xcc(sp)             |     *(var_cch) = 0;
    0x00035950 move s4, zero                 |     s4 = 0;
    0x00035954 move s3, zero                 |     s3 = 0;
    0x00035958 sw t9, 0xc8(sp)               |     *(var_c8h) = t9;
                                             | label_0:
    0x0003595c move a1, zero                 |     a1 = 0;
    0x00035960 b 0x359e8                     |     
                                             |     while (a0 != 0) {
    0x00035964 lw t9, 0xcc(sp)               |         t9 = *(var_cch);
                                             |         if (a1 == v1) {
    0x00035968 bne a1, v1, 0x35994           |             
    0x0003596c slt a1, s5, a1                |             a1 = (s5 < a1) ? 1 : 0;
                                             |             if (t9 != 0) {
    0x00035970 bnel t9, zero, 0x35984        |                 
    0x00035974 addiu s2, zero, 1             |                 s2 = 1;
                                             |                 if (s4 != 0) {
    0x00035978 bnez s4, 0x35bc0              |                     goto label_15;
                                             |                 }
    0x0003597c lw v0, (s7)                   |                 v0 = *(s7);
    0x00035980 b 0x35b80                     |                 goto label_12;
                                             |             }
    0x00035984 addiu s2, zero, 1             |             s2 = 1;
                                             |             if (a1 != 0) {
    0x00035988 bnez a1, 0x3603c              |                 goto label_9;
                                             |             }
    0x0003598c lw v0, 0x3c(s0)               |             v0 = *((s0 + 15));
    0x00035990 b 0x35c54                     |             goto label_16;
                                             |         }
    0x00035994 addiu a1, a1, 1               |         a1++;
                                             |         if (s4 == 0) {
    0x00035998 bnez s4, 0x359a8              |             
    0x0003599c addiu v1, zero, 0x30          |             v1 = 0x30;
    0x000359a0 lw t9, -0x7b80(gp)            |             t9 = *((gp - 7904));
                                             |             if (v0 == v1) {
    0x000359a4 beq v0, v1, 0x359c8           |                 goto label_17;
                                             |             }
                                             |         }
    0x000359a8 lw t9, 0xc8(sp)               |         t9 = *(var_c8h);
    0x000359ac sltu a0, fp, t9               |         a0 = (fp < t9) ? 1 : 0;
                                             |         if (a0 != 0) {
    0x000359b0 beql a0, zero, 0x359c4        |             
    0x000359b4 addiu s3, s3, 1               |             s3++;
    0x000359b8 sb v0, (fp)                   |             *(fp) = v0;
    0x000359bc addiu s4, zero, 1             |             s4 = 1;
    0x000359c0 addiu fp, fp, 1               |             fp++;
                                             |         }
    0x000359c4 lw t9, -0x7b80(gp)            |         t9 = *((gp - 7904));
                                             | label_17:
    0x000359c8 sw a1, 0xdc(sp)               |         *(var_dch) = a1;
    0x000359cc sw t1, 0xd8(sp)               |         *(var_d8h) = t1;
    0x000359d0 move a0, s7                   |         a0 = s7;
    0x000359d4 bal 0x3531c                   |         fcn_0003531c ();
    0x000359d8 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x000359dc lw t1, 0xd8(sp)               |         t1 = *(var_d8h);
    0x000359e0 lw a1, 0xdc(sp)               |         a1 = *(var_dch);
    0x000359e4 addiu s2, zero, 1             |         s2 = 1;
    0x000359e8 lw v0, (s7)                   |         v0 = *(s7);
    0x000359ec addiu a0, v0, -0x30           |         a0 = v0 + -0x30;
    0x000359f0 sltiu a0, a0, 0xa             |         a0 = (a0 < 0xa) ? 1 : 0;
    0x000359f4 lw v1, 0xd4(sp)               |         v1 = *(var_d4h);
    0x000359f8 bnez a0, 0x35964              |         
                                             |     }
    0x000359fc lw t9, -0x7b74(gp)            |     t9 = *((gp - 7901));
                                             |     if (a1 == 0) {
    0x00035a00 beqz a1, 0x36040              |         goto label_14;
                                             |     }
    0x00035a04 slt a0, a1, t1                |     a0 = (a1 < t1) ? 1 : 0;
                                             |     if (a1 != t1) {
    0x00035a08 beq a1, t1, 0x35a1c           |         
    0x00035a0c lw v1, 0xcc(sp)               |         v1 = *(var_cch);
                                             |         if (a0 == 0) {
    0x00035a10 beqz a0, 0x35b54              |             goto label_18;
                                             |         }
                                             |         if (v1 != 0) {
    0x00035a14 bnez v1, 0x35b54              |             goto label_18;
                                             |         }
    0x00035a18 nop                           |         
                                             |     }
    0x00035a1c lw s6, 0x34(s7)               |     s6 = *((s7 + 13));
    0x00035a20 lbu a0, (s6)                  |     a0 = *(s6);
    0x00035a24 lw t9, -0x7b80(gp)            |     t9 = *((gp - 7904));
                                             |     if (a0 != v0) {
    0x00035a28 bne a0, v0, 0x35b54           |         goto label_18;
                                             |     }
    0x00035a2c sw a1, 0xdc(sp)               |     *(var_dch) = a1;
    0x00035a30 sw t1, 0xd8(sp)               |     *(var_d8h) = t1;
    0x00035a34 move a0, s7                   |     a0 = s7;
    0x00035a38 bal 0x3531c                   |     fcn_0003531c ();
    0x00035a3c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00035a40 lw t1, 0xd8(sp)               |     t1 = *(var_d8h);
    0x00035a44 lw a1, 0xdc(sp)               |     a1 = *(var_dch);
                                             |     do {
    0x00035a48 addiu s6, s6, 1               |         s6++;
    0x00035a4c lbu v0, (s6)                  |         v0 = *(s6);
    0x00035a50 lw a0, (s7)                   |         a0 = *(s7);
                                             |         if (v0 != 0) {
    0x00035a54 bnel v0, zero, 0x35a68        |             
    0x00035a58 lw v1, 0xcc(sp)               |             v1 = *(var_cch);
    0x00035a5c addiu v1, v1, 1               |             v1++;
    0x00035a60 sw v1, 0xcc(sp)               |             *(var_cch) = v1;
    0x00035a64 b 0x3595c                     |             goto label_0;
                                             |         }
    0x00035a68 lw t9, -0x7b80(gp)            |         t9 = *((gp - 7904));
                                             |         if (v0 != a0) {
    0x00035a6c bne v0, a0, 0x35a90           |             goto label_19;
                                             |         }
    0x00035a70 sw a1, 0xdc(sp)               |         *(var_dch) = a1;
    0x00035a74 sw t1, 0xd8(sp)               |         *(var_d8h) = t1;
    0x00035a78 move a0, s7                   |         a0 = s7;
    0x00035a7c bal 0x3531c                   |         fcn_0003531c ();
    0x00035a80 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00035a84 lw a1, 0xdc(sp)               |         a1 = *(var_dch);
    0x00035a88 lw t1, 0xd8(sp)               |         t1 = *(var_d8h);
    0x00035a8c b 0x35a48                     |         
                                             |     } while (1);
                                             | label_19:
    0x00035a90 lw t9, -0x7b74(gp)            |     t9 = *((gp - 7901));
    0x00035a94 move a0, s7                   |     a0 = s7;
    0x00035a98 sw a1, 0xdc(sp)               |     *(var_dch) = a1;
    0x00035a9c bal 0x353b4                   |     fcn_000353b4 ();
    0x00035aa0 lw v0, (s7)                   |     v0 = *(s7);
    0x00035aa4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00035aa8 lw a0, 0x34(s7)               |     a0 = *((s7 + 13));
    0x00035aac lw a1, 0xdc(sp)               |     a1 = *(var_dch);
                                             |     if (v0 < 0) {
    0x00035ab0 bgez v0, 0x35ac4              |         
    0x00035ab4 addiu v0, a0, 1               |         v0 = a0 + 1;
    0x00035ab8 sltu v0, v0, s6               |         v0 = (v0 < s6) ? 1 : 0;
                                             |         if (v0 == 0) {
    0x00035abc beqz v0, 0x35b54              |             goto label_18;
                                             |         }
    0x00035ac0 nop                           |         
                                             |     }
    0x00035ac4 lw v0, 0x3c(s0)               |     v0 = *((s0 + 15));
    0x00035ac8 subu s6, s6, a0               |     __asm ("subu s6, s6, a0");
    0x00035acc slti v0, v0, 8                |     v0 = (v0 < 8) ? 1 : 0;
    0x00035ad0 addiu s6, s6, -1              |     s6 += -1;
                                             |     if (v0 != 0) {
    0x00035ad4 bnez v0, 0x36048              |         goto label_20;
                                             |     }
    0x00035ad8 lw v1, 0xcc(sp)               |     v1 = *(var_cch);
    0x00035adc lw t9, -0x7d80(gp)            |     t9 = *((gp - 8032));
                                             |     if (v1 != 0) {
    0x00035ae0 beqz v1, 0x35aec              |         
    0x00035ae4 addiu v0, zero, -2            |         v0 = -2;
                                             |         if (a1 != s5) {
    0x00035ae8 bne a1, s5, 0x36054           |             goto label_5;
                                             |         }
                                             |     }
    0x00035aec lw a1, 0x4c(s7)               |     a1 = *((s7 + 19));
    0x00035af0 move a2, s6                   |     a2 = s6;
    0x00035af4 bal 0x3aaec                   |     sym_bcmp ();
    0x00035af8 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != 0) {
    0x00035afc bnez v0, 0x36048              |         goto label_20;
                                             |     }
    0x00035b00 lw s5, -0x7b80(gp)            |     s5 = *((gp - 7904));
    0x00035b04 move t9, s5                   |     t9 = s5;
    0x00035b08 move a0, s7                   |     a0 = s7;
    0x00035b0c bal 0x3531c                   |     fcn_0003531c ();
    0x00035b10 lw v0, 0x4c(s7)               |     v0 = *((s7 + 19));
    0x00035b14 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00035b18 addu s6, v0, s6               |     s6 = v0 + s6;
                                             |     do {
    0x00035b1c addiu s6, s6, 1               |         s6++;
    0x00035b20 lbu v0, (s6)                  |         v0 = *(s6);
    0x00035b24 lw a0, (s7)                   |         a0 = *(s7);
                                             |         if (v0 != 0) {
    0x00035b28 bnel v0, zero, 0x35b34        |             
    0x00035b2c lw t9, -0x7f44(gp)            |             t9 = *((gp - 8145));
    0x00035b30 b 0x35d0c                     |             goto label_21;
                                             |         }
                                             |         if (v0 != a0) {
    0x00035b34 beql v0, a0, 0x35b44          |             
    0x00035b38 move t9, s5                   |             t9 = s5;
    0x00035b3c lw t9, -0x7b74(gp)            |             t9 = *((gp - 7901));
    0x00035b40 b 0x36040                     |             goto label_14;
                                             |         }
    0x00035b44 move a0, s7                   |         a0 = s7;
    0x00035b48 bal 0x3531c                   |         fcn_0003531c ();
    0x00035b4c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00035b50 b 0x35b1c                     |         
                                             |     } while (1);
                                             |     if (a1 == s5) {
                                             | label_18:
    0x00035b54 beql a1, s5, 0x35c54          |         goto label_16;
                                             |     }
    0x00035b58 lw v0, 0x3c(s0)               |     v0 = *((s0 + 15));
    0x00035b5c slt a1, a1, s5                |     a1 = (a1 < s5) ? 1 : 0;
    0x00035b60 lw v1, 0xcc(sp)               |     v1 = *(var_cch);
                                             |     if (a1 == 0) {
    0x00035b64 beqz a1, 0x3603c              |         goto label_9;
                                             |     }
                                             |     if (v1 == 0) {
    0x00035b68 beql v1, zero, 0x35c54        |         goto label_16;
                                             |     }
    0x00035b6c lw v0, 0x3c(s0)               |     v0 = *((s0 + 15));
    0x00035b70 lw t9, -0x7b74(gp)            |     t9 = *((gp - 7901));
    0x00035b74 b 0x36040                     |     goto label_14;
                                             | label_10:
    0x00035b78 move s3, zero                 |     s3 = 0;
                                             | label_11:
    0x00035b7c lw v0, (s7)                   |     v0 = *(s7);
                                             | label_12:
    0x00035b80 addiu a0, zero, 0x30          |     a0 = 0x30;
    0x00035b84 move s4, zero                 |     s4 = 0;
                                             |     if (v0 != a0) {
    0x00035b88 bne v0, a0, 0x35c08           |         goto label_22;
                                             |     }
    0x00035b8c lw s2, -0x7b80(gp)            |     s2 = *((gp - 7904));
    0x00035b90 sb v0, (fp)                   |     *(fp) = v0;
    0x00035b94 addiu s4, zero, 0x30          |     s4 = 0x30;
    0x00035b98 addiu fp, fp, 1               |     fp++;
                                             |     do {
    0x00035b9c move t9, s2                   |         t9 = s2;
    0x00035ba0 move a0, s7                   |         a0 = s7;
    0x00035ba4 bal 0x3531c                   |         fcn_0003531c ();
    0x00035ba8 lw v0, (s7)                   |         v0 = *(s7);
    0x00035bac lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00035bb0 beq v0, s4, 0x35b9c           |         
                                             |     } while (v0 == s4);
    0x00035bb4 addiu s2, zero, 1             |     s2 = 1;
    0x00035bb8 move s4, zero                 |     s4 = 0;
    0x00035bbc b 0x35c08                     |     goto label_22;
                                             | label_15:
    0x00035bc0 addiu s4, zero, 1             |     s4 = 1;
    0x00035bc4 b 0x35c08                     |     
                                             |     while (s1 == a1) {
    0x00035bc8 subu a0, fp, s6               |         __asm ("subu a0, fp, s6");
                                             | label_1:
    0x00035bcc slti a0, a0, 0x41             |         a0 = (a0 < 0x41) ? 1 : 0;
                                             |         if (a0 != 0) {
    0x00035bd0 beql a0, zero, 0x35be8        |             
    0x00035bd4 addiu s3, s3, 1               |             s3++;
    0x00035bd8 sb v0, (fp)                   |             *(fp) = v0;
    0x00035bdc addiu s2, zero, 1             |             s2 = 1;
    0x00035be0 addiu fp, fp, 1               |             fp++;
    0x00035be4 addiu s4, zero, 1             |             s4 = 1;
                                             |         }
    0x00035be8 sw a1, 0xdc(sp)               |         *(var_dch) = a1;
    0x00035bec sw t9, 0xd8(sp)               |         *(var_d8h) = t9;
    0x00035bf0 move a0, s7                   |         a0 = s7;
    0x00035bf4 jalr t9                       |         t9 ();
    0x00035bf8 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00035bfc lw a1, 0xdc(sp)               |         a1 = *(var_dch);
    0x00035c00 lw t9, 0xd8(sp)               |         t9 = *(var_d8h);
    0x00035c04 b 0x35c18                     |         goto label_23;
                                             | label_22:
    0x00035c08 lw s5, -0x7f74(gp)            |         s5 = *((gp - 8157));
    0x00035c0c lw t9, -0x7b80(gp)            |         t9 = *((gp - 7904));
    0x00035c10 addiu a1, zero, 0x10          |         a1 = 0x10;
    0x00035c14 addiu s6, sp, 0x18            |         s6 = sp + 0x18;
                                             | label_23:
    0x00035c18 lw v0, (s7)                   |         v0 = *(s7);
    0x00035c1c lw a2, (s5)                   |         a2 = *(s5);
    0x00035c20 sll a0, v0, 1                 |         a0 = v0 << 1;
    0x00035c24 addu a0, a2, a0               |         a0 = a2 + a0;
    0x00035c28 lhu a0, (a0)                  |         a0 = *(a0);
    0x00035c2c andi a0, a0, 0x10             |         a0 &= 0x10;
    0x00035c30 andi a0, a0, 0xffff           |         a0 &= 0xffff;
                                             |         if (a0 == 0) {
    0x00035c34 beql a0, zero, 0x35c54        |             goto label_16;
                                             |         }
    0x00035c38 lw v0, 0x3c(s0)               |         v0 = *((s0 + 15));
    0x00035c3c addiu a0, v0, -0x2f           |         a0 = v0 + -0x2f;
    0x00035c40 beq s1, a1, 0x35bc8           |         
                                             |     }
    0x00035c44 slt a0, s1, a0                |     a0 = (s1 < a0) ? 1 : 0;
    0x00035c48 subu a0, fp, s6               |     __asm ("subu a0, fp, s6");
                                             |     if (a0 == 0) {
    0x00035c4c beqz a0, 0x35bcc              |         goto label_1;
                                             |     }
    0x00035c50 lw v0, 0x3c(s0)               |     v0 = *((s0 + 15));
                                             | label_16:
    0x00035c54 slti v0, v0, 8                |     v0 = (v0 < 8) ? 1 : 0;
                                             |     if (v0 != 0) {
    0x00035c58 beql v0, zero, 0x35cf8        |         
    0x00035c5c lw s5, 0x4c(s7)               |         s5 = *((s7 + 19));
    0x00035c60 lw t9, -0x7b74(gp)            |         t9 = *((gp - 7901));
    0x00035c64 move a0, s7                   |         a0 = s7;
    0x00035c68 bal 0x353b4                   |         fcn_000353b4 ();
    0x00035c6c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00035c70 sb zero, (fp)                 |         *(fp) = 0;
                                             |         if (s2 == 0) {
    0x00035c74 beqz s2, 0x36048              |             goto label_20;
                                             |         }
    0x00035c78 lbu v0, 0x44(s0)              |         v0 = *((s0 + 68));
    0x00035c7c lbu v1, 0x18(sp)              |         v1 = *(var_18h);
                                             |         if (v0 == 0) {
    0x00035c80 beqz v0, 0x36034              |             goto label_24;
                                             |         }
    0x00035c84 lw t9, 0xd0(sp)               |         t9 = *(var_d0h);
    0x00035c88 addiu a3, zero, 1             |         a3 = 1;
    0x00035c8c xori v0, v1, 0x2d             |         v0 = v1 ^ 0x2d;
    0x00035c90 lw v1, 0x34(s0)               |         v1 = *((s0 + 13));
    0x00035c94 slti s6, t9, 6                |         s6 = (t9 < 6) ? 1 : 0;
    0x00035c98 lw t9, -0x7b68(gp)            |         t9 = *((gp - 7898));
                                             |         if (v0 != 0) {
    0x00035c9c movz s6, zero, v0             |             s6 = 0;
                                             |         }
    0x00035ca0 addiu v1, v1, 1               |         v1++;
    0x00035ca4 lw s2, 0x2c(s0)               |         s2 = *((s0 + 11));
    0x00035ca8 sw v1, 0x34(s0)               |         *((s0 + 13)) = v1;
    0x00035cac addiu a0, sp, 0x18            |         a0 = sp + 0x18;
    0x00035cb0 lw s0, 0x38(s0)               |         s0 = *((s0 + 14));
    0x00035cb4 move a1, zero                 |         a1 = 0;
    0x00035cb8 move a2, s1                   |         a2 = s1;
    0x00035cbc subu a3, a3, s6               |         __asm ("subu a3, a3, s6");
    0x00035cc0 jalr t9                       |         t9 ();
    0x00035cc4 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00035cc8 move a0, s2                   |         a0 = s2;
    0x00035ccc move a1, s0                   |         a1 = s0;
    0x00035cd0 move a2, v0                   |         a2 = v0;
    0x00035cd4 move a3, v1                   |         a3 = v1;
                                             | label_6:
    0x00035cd8 lw t9, -0x7ba4(gp)            |         t9 = *((gp - 7913));
    0x00035cdc bal 0x31a30                   |         fcn_00031a30 ();
    0x00035ce0 nop                           |         
    0x00035ce4 b 0x36034                     |         goto label_24;
    0x00035ce8 nop                           |         
                                             | label_13:
    0x00035cec move s4, zero                 |         s4 = 0;
    0x00035cf0 move s3, zero                 |         s3 = 0;
    0x00035cf4 lw s5, 0x4c(s7)               |         s5 = *((s7 + 19));
                                             |     }
    0x00035cf8 lw s6, -0x7b80(gp)            |     s6 = *((gp - 7904));
                                             |     do {
    0x00035cfc lbu v0, (s5)                  |         v0 = *(s5);
    0x00035d00 lw a0, (s7)                   |         a0 = *(s7);
                                             |         if (v0 != 0) {
    0x00035d04 bnel v0, zero, 0x35d28        |             
    0x00035d08 lw t9, -0x7f44(gp)            |             t9 = *((gp - 8145));
                                             | label_21:
    0x00035d0c lw a1, 0x40(s7)               |             a1 = *((s7 + 16));
    0x00035d10 move a0, fp                   |             a0 = fp;
    0x00035d14 bal 0x3b600                   |             sym_strcpy ()
    0x00035d18 lw v0, 0x44(s7)               |             v0 = *((s7 + 17));
    0x00035d1c lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00035d20 addu fp, fp, v0               |             fp += v0;
    0x00035d24 b 0x35d5c                     |             
                                             |         } else {
    0x00035d28 move t9, s6                   |             t9 = s6;
                                             |             if (v0 != a0) {
    0x00035d2c beq v0, a0, 0x35d48           |                 
    0x00035d30 lw v0, 0x4c(s7)               |                 v0 = *((s7 + 19));
    0x00035d34 sltu s5, v0, s5               |                 s5 = (v0 < s5) ? 1 : 0;
    0x00035d38 lw t9, -0x7b74(gp)            |                 t9 = *((gp - 7901));
                                             |                 if (s5 == 0) {
    0x00035d3c beqz s5, 0x35e28              |                     goto label_25;
                                             |                 }
    0x00035d40 b 0x36040                     |                 goto label_14;
    0x00035d44 nop                           |                 
                                             |             }
    0x00035d48 move a0, s7                   |             a0 = s7;
    0x00035d4c bal 0x3531c                   |             fcn_0003531c ();
    0x00035d50 addiu s5, s5, 1               |             s5++;
    0x00035d54 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00035d58 b 0x35cfc                     |             
                                             |         }
                                             |     } while (1);
    0x00035d5c lw s6, -0x7f74(gp)            |     s6 = *((gp - 8157));
                                             |     if (s4 != 0) {
    0x00035d60 bnez s4, 0x35de0              |         goto label_26;
                                             |     }
    0x00035d64 lw v0, (s7)                   |     v0 = *(s7);
    0x00035d68 addiu a0, zero, 0x30          |     a0 = 0x30;
    0x00035d6c lw s5, -0x7b80(gp)            |     s5 = *((gp - 7904));
                                             |     if (v0 != a0) {
    0x00035d70 bne v0, a0, 0x35de4           |         goto label_27;
                                             |     }
    0x00035d74 lw s2, -0x7b80(gp)            |     s2 = *((gp - 7904));
    0x00035d78 sb v0, (fp)                   |     *(fp) = v0;
    0x00035d7c addiu s3, s3, 1               |     s3++;
    0x00035d80 addiu fp, fp, 1               |     fp++;
    0x00035d84 addiu s4, zero, 0x30          |     s4 = 0x30;
                                             |     do {
    0x00035d88 move t9, s2                   |         t9 = s2;
    0x00035d8c move a0, s7                   |         a0 = s7;
    0x00035d90 bal 0x3531c                   |         fcn_0003531c ();
    0x00035d94 lw v0, (s7)                   |         v0 = *(s7);
    0x00035d98 addiu s3, s3, -1              |         s3 += -1;
    0x00035d9c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00035da0 beq v0, s4, 0x35d88           |         
                                             |     } while (v0 == s4);
    0x00035da4 addiu s2, zero, 1             |     s2 = 1;
    0x00035da8 b 0x35ddc                     |     
                                             |     while (s1 == s4) {
    0x00035dac lw v1, 0xc8(sp)               |         v1 = *(var_c8h);
                                             | label_2:
    0x00035db0 subu a0, fp, v1               |         __asm ("subu a0, fp, v1");
    0x00035db4 slti a0, a0, 0x41             |         a0 = (a0 < 0x41) ? 1 : 0;
    0x00035db8 move t9, s5                   |         t9 = s5;
                                             |         if (a0 != 0) {
    0x00035dbc beqz a0, 0x35dcc              |             
    0x00035dc0 sb v0, (fp)                   |             *(fp) = v0;
    0x00035dc4 addiu s2, zero, 1             |             s2 = 1;
    0x00035dc8 addiu fp, fp, 1               |             fp++;
                                             |         }
    0x00035dcc move a0, s7                   |         a0 = s7;
    0x00035dd0 bal 0x3531c                   |         fcn_0003531c ();
    0x00035dd4 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00035dd8 b 0x35df0                     |         goto label_28;
    0x00035ddc lw s6, -0x7f74(gp)            |         s6 = *((gp - 8157));
                                             | label_26:
    0x00035de0 lw s5, -0x7b80(gp)            |         s5 = *((gp - 7904));
                                             | label_27:
    0x00035de4 addiu v1, sp, 0x18            |         v1 = sp + 0x18;
    0x00035de8 addiu s4, zero, 0x10          |         s4 = 0x10;
    0x00035dec sw v1, 0xc8(sp)               |         *(var_c8h) = v1;
                                             | label_28:
    0x00035df0 lw v0, (s7)                   |         v0 = *(s7);
    0x00035df4 lw a1, (s6)                   |         a1 = *(s6);
    0x00035df8 sll a0, v0, 1                 |         a0 = v0 << 1;
    0x00035dfc addu a0, a1, a0               |         a0 = a1 + a0;
    0x00035e00 lhu a0, (a0)                  |         a0 = *(a0);
    0x00035e04 andi a0, a0, 0x10             |         a0 &= 0x10;
    0x00035e08 andi a0, a0, 0xffff           |         a0 &= 0xffff;
                                             |         if (a0 == 0) {
    0x00035e0c beqz a0, 0x35e28              |             goto label_25;
                                             |         }
    0x00035e10 nop                           |         
    0x00035e14 addiu a0, v0, -0x2f           |         a0 = v0 + -0x2f;
    0x00035e18 beq s1, s4, 0x35dac           |         
                                             |     }
    0x00035e1c slt a0, s1, a0                |     a0 = (s1 < a0) ? 1 : 0;
    0x00035e20 lw v1, 0xc8(sp)               |     v1 = *(var_c8h);
                                             |     if (a0 == 0) {
    0x00035e24 beqz a0, 0x35db0              |         goto label_2;
                                             |     }
                                             | label_25:
    0x00035e28 addiu a0, zero, 0x10          |     a0 = 0x10;
                                             |     if (s2 != 0) {
    0x00035e2c bnez s2, 0x35ec8              |         goto label_29;
                                             |     }
    0x00035e30 addiu v0, zero, 0x10          |     v0 = 0x10;
    0x00035e34 addiu a1, zero, 0x69          |     a1 = 0x69;
                                             |     if (s1 == v0) {
    0x00035e38 beq s1, v0, 0x3603c           |         goto label_9;
                                             |     }
    0x00035e3c lw v0, (s7)                   |     v0 = *(s7);
    0x00035e40 ori a0, v0, 0x20              |     a0 = v0 | 0x20;
    0x00035e44 addiu a1, zero, 0x6e          |     a1 = 0x6e;
                                             |     if (a0 != a1) {
    0x00035e48 beq a0, a1, 0x35e5c           |         
    0x00035e4c lw t9, -0x7b74(gp)            |         t9 = *((gp - 7901));
                                             |         if (a0 != a1) {
    0x00035e50 bne a0, a1, 0x36040           |             goto label_14;
                                             |         }
    0x00035e54 lw s1, -0x7fa8(gp)            |         s1 = *((gp - 8170));
    0x00035e58 b 0x35e68                     |         
                                             |     } else {
    0x00035e5c lw s1, -0x7fa8(gp)            |         s1 = *((gp - 8170));
    0x00035e60 addiu s1, s1, -0x6e3d         |         s1 += -0x6e3d;
    0x00035e64 b 0x35e6c                     |         goto label_30;
                                             |     }
    0x00035e68 addiu s1, s1, -0x6e40         |     s1 += -0x6e40;
                                             | label_30:
    0x00035e6c lw s2, -0x7b80(gp)            |     s2 = *((gp - 7904));
    0x00035e70 sb v0, (fp)                   |     *(fp) = v0;
    0x00035e74 addiu fp, fp, 1               |     fp++;
                                             |     do {
    0x00035e78 move t9, s2                   |         t9 = s2;
    0x00035e7c move a0, s7                   |         a0 = s7;
    0x00035e80 bal 0x3531c                   |         fcn_0003531c ();
    0x00035e84 lw a0, (s7)                   |         a0 = *(s7);
    0x00035e88 lbu v0, (s1)                  |         v0 = *(s1);
    0x00035e8c ori a1, a0, 0x20              |         a1 = a0 | 0x20;
    0x00035e90 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (a1 != v0) {
    0x00035e94 bne a1, v0, 0x35ea8           |             goto label_31;
                                             |         }
    0x00035e98 sb a0, (fp)                   |         *(fp) = a0;
    0x00035e9c addiu s1, s1, 1               |         s1++;
    0x00035ea0 addiu fp, fp, 1               |         fp++;
    0x00035ea4 b 0x35e78                     |         
                                             |     } while (1);
                                             | label_31:
    0x00035ea8 lw t9, -0x7b64(gp)            |     t9 = *((gp - 7897));
                                             |     if (v0 == 0) {
    0x00035eac beqz v0, 0x35fcc              |         goto label_32;
                                             |     }
    0x00035eb0 lw v0, -0x7fa8(gp)            |     v0 = *((gp - 8170));
    0x00035eb4 addiu v0, v0, -0x6e3b         |     v0 += -0x6e3b;
                                             |     if (s1 == v0) {
    0x00035eb8 beql s1, v0, 0x35fd0          |         goto label_33;
                                             |     }
    0x00035ebc sb zero, (fp)                 |     *(fp) = 0;
    0x00035ec0 lw t9, -0x7b74(gp)            |     t9 = *((gp - 7901));
    0x00035ec4 b 0x36040                     |     goto label_14;
                                             | label_29:
    0x00035ec8 lw v0, (s7)                   |     v0 = *(s7);
                                             |     if (s1 == a0) {
    0x00035ecc bne s1, a0, 0x35ee0           |         
    0x00035ed0 ori a1, v0, 0x20              |         a1 = v0 | 0x20;
    0x00035ed4 addiu a0, zero, 0x70          |         a0 = 0x70;
    0x00035ed8 lw t9, -0x7b80(gp)            |         t9 = *((gp - 7904));
                                             |         if (a1 == a0) {
    0x00035edc beq a1, a0, 0x35ef8           |             goto label_34;
                                             |         }
                                             |     }
    0x00035ee0 ori v0, v0, 0x20              |     v0 |= 0x20;
    0x00035ee4 addiu a0, zero, 0x65          |     a0 = 0x65;
    0x00035ee8 lw t9, -0x7b64(gp)            |     t9 = *((gp - 7897));
                                             |     if (v0 != a0) {
    0x00035eec bne v0, a0, 0x35fcc           |         goto label_32;
                                             |     }
    0x00035ef0 lw v0, (s7)                   |     v0 = *(s7);
    0x00035ef4 lw t9, -0x7b80(gp)            |     t9 = *((gp - 7904));
                                             | label_34:
    0x00035ef8 move a0, s7                   |     a0 = s7;
    0x00035efc sb v0, (fp)                   |     *(fp) = v0;
    0x00035f00 bal 0x3531c                   |     fcn_0003531c ();
    0x00035f04 lw v0, (s7)                   |     v0 = *(s7);
    0x00035f08 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 < 0) {
    0x00035f0c bltz v0, 0x3603c              |         goto label_9;
                                             |     }
    0x00035f10 addiu a0, zero, 0x2b          |     a0 = 0x2b;
    0x00035f14 addiu a0, zero, 0x2d          |     a0 = 0x2d;
                                             |     if (v0 != a0) {
    0x00035f18 beq v0, a0, 0x35f2c           |         
    0x00035f1c lw t9, -0x7b80(gp)            |         t9 = *((gp - 7904));
                                             |         if (v0 != a0) {
    0x00035f20 beq v0, a0, 0x35f30           |             
    0x00035f24 addiu fp, fp, 1               |             fp++;
    0x00035f28 b 0x35f48                     |             
                                             |         } else {
    0x00035f2c lw t9, -0x7b80(gp)            |             t9 = *((gp - 7904));
                                             |         }
    0x00035f30 sb v0, 1(fp)                  |         *(var_1h) = v0;
    0x00035f34 move a0, s7                   |         a0 = s7;
    0x00035f38 bal 0x3531c                   |         fcn_0003531c ();
    0x00035f3c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00035f40 addiu fp, fp, 2               |         fp += 2;
    0x00035f44 lw v0, (s7)                   |         v0 = *(s7);
                                             |     }
    0x00035f48 addiu a0, zero, 0x30          |     a0 = 0x30;
    0x00035f4c move s1, zero                 |     s1 = 0;
                                             |     if (v0 != a0) {
    0x00035f50 bne v0, a0, 0x35fac           |         goto label_35;
                                             |     }
    0x00035f54 lw s1, -0x7b80(gp)            |     s1 = *((gp - 7904));
    0x00035f58 sb v0, (fp)                   |     *(fp) = v0;
    0x00035f5c addiu s2, zero, 0x30          |     s2 = 0x30;
    0x00035f60 addiu fp, fp, 1               |     fp++;
                                             |     do {
    0x00035f64 move t9, s1                   |         t9 = s1;
    0x00035f68 move a0, s7                   |         a0 = s7;
    0x00035f6c bal 0x3531c                   |         fcn_0003531c ();
    0x00035f70 lw v0, (s7)                   |         v0 = *(s7);
    0x00035f74 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00035f78 beq v0, s2, 0x35f64           |         
                                             |     } while (v0 == s2);
    0x00035f7c addiu s1, zero, 1             |     s1 = 1;
    0x00035f80 b 0x35fac                     |     
                                             |     while (a0 != 0) {
    0x00035f84 move t9, s2                   |         t9 = s2;
                                             |         if (a0 != 0) {
    0x00035f88 beqz a0, 0x35f9c              |             
    0x00035f8c addiu s1, s1, 1               |             s1++;
    0x00035f90 sb v0, (fp)                   |             *(fp) = v0;
    0x00035f94 andi s1, s1, 0xff             |             s1 &= 0xff;
    0x00035f98 addiu fp, fp, 1               |             fp++;
                                             |         }
    0x00035f9c move a0, s7                   |         a0 = s7;
    0x00035fa0 bal 0x3531c                   |         fcn_0003531c ();
    0x00035fa4 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00035fa8 b 0x35fb0                     |         goto label_36;
                                             | label_35:
    0x00035fac lw s2, -0x7b80(gp)            |         s2 = *((gp - 7904));
                                             | label_36:
    0x00035fb0 lw v0, (s7)                   |         v0 = *(s7);
    0x00035fb4 addiu a0, v0, -0x30           |         a0 = v0 + -0x30;
    0x00035fb8 sltiu a0, a0, 0xa             |         a0 = (a0 < 0xa) ? 1 : 0;
    0x00035fbc sltiu a0, s1, 0x14            |         a0 = (s1 < 0x14) ? 1 : 0;
    0x00035fc0 bnez a0, 0x35f84              |         
                                             |     }
    0x00035fc4 lw t9, -0x7b64(gp)            |     t9 = *((gp - 7897));
                                             |     if (s1 != 0) {
    0x00035fc8 beqz s1, 0x3603c              |         
                                             | label_32:
    0x00035fcc sb zero, (fp)                 |         *(fp) = 0;
                                             | label_33:
    0x00035fd0 addiu a0, sp, 0x18            |         a0 = sp + 0x18;
    0x00035fd4 addiu a1, sp, 0xc0            |         a1 = sp + 0xc0;
    0x00035fd8 move a2, s3                   |         a2 = s3;
    0x00035fdc jalr t9                       |         t9 ();
    0x00035fe0 lbu v0, 0x44(s0)              |         v0 = *((s0 + 68));
    0x00035fe4 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 != 0) {
    0x00035fe8 beqz v0, 0x36028              |             
    0x00035fec lw a0, 0x38(s0)               |             a0 = *((s0 + 14));
    0x00035ff0 andi a1, a0, 0x800            |             a1 = a0 & aav.0x00000800;
    0x00035ff4 lw v0, 0x2c(s0)               |             v0 = *((s0 + 11));
                                             |             if (a1 != 0) {
    0x00035ff8 beqz a1, 0x36004              |                 
    0x00035ffc sdc1 f0, (v0)                 |                 __asm ("sdc1 f0, (v0)");
    0x00036000 b 0x3601c                     |                 
                                             |             } else {
    0x00036004 andi a0, a0, 0x400            |                 a0 &= aav.0x00000400;
                                             |                 if (a0 != 0) {
    0x00036008 beql a0, zero, 0x36018        |                     
    0x0003600c cvt.s.d f0, f0                |                     __asm ("cvt.s.d f0, f0");
    0x00036010 sdc1 f0, (v0)                 |                     __asm ("sdc1 f0, (v0)");
    0x00036014 b 0x3601c                     |                     
                                             |                 } else {
    0x00036018 swc1 f0, (v0)                 |                     __asm ("swc1 f0, (v0)");
                                             |                 }
                                             |             }
    0x0003601c lw v0, 0x34(s0)               |             v0 = *((s0 + 13));
    0x00036020 addiu v0, v0, 1               |             v0++;
    0x00036024 sw v0, 0x34(s0)               |             *((s0 + 13)) = v0;
                                             |         }
    0x00036028 lw t9, -0x7b74(gp)            |         t9 = *((gp - 7901));
    0x0003602c move a0, s7                   |         a0 = s7;
    0x00036030 bal 0x353b4                   |         fcn_000353b4 ();
                                             | label_24:
    0x00036034 move v0, zero                 |         v0 = 0;
    0x00036038 b 0x36054                     |         
                                             |     } else {
                                             | label_9:
    0x0003603c lw t9, -0x7b74(gp)            |         t9 = *((gp - 7901));
                                             | label_14:
    0x00036040 move a0, s7                   |         a0 = s7;
    0x00036044 bal 0x353b4                   |         fcn_000353b4 ();
                                             | label_20:
    0x00036048 addiu v0, zero, -2            |         v0 = -2;
    0x0003604c b 0x36054                     |         goto label_5;
                                             | label_7:
    0x00036050 addiu v0, zero, -1            |         v0 = -1;
                                             |     }
                                             | label_5:
    0x00036054 lw ra, 0x104(sp)              |     ra = *(var_104h);
    0x00036058 lw fp, 0x100(sp)              |     fp = *(var_100h);
    0x0003605c lw s7, 0xfc(sp)               |     s7 = *(var_fch);
    0x00036060 lw s6, 0xf8(sp)               |     s6 = *(var_f8h);
    0x00036064 lw s5, 0xf4(sp)               |     s5 = *(var_f4h);
    0x00036068 lw s4, 0xf0(sp)               |     s4 = *(var_f0h);
    0x0003606c lw s3, 0xec(sp)               |     s3 = *(var_ech);
    0x00036070 lw s2, 0xe8(sp)               |     s2 = *(var_e8h);
    0x00036074 lw s1, 0xe4(sp)               |     s1 = *(var_e4h);
    0x00036078 lw s0, 0xe0(sp)               |     s0 = *(var_e0h);
    0x0003607c addiu sp, sp, 0x108           |     
    0x00036080 jr ra                         |     return v0;
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x45598 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00045598 ()              | void fcn_00045598 () {
    0x00045598 lui gp, 7                 |     
    0x0004559c addiu gp, gp, 0x148       |     
    0x000455a0 addu gp, gp, t9           |     gp += t9;
    0x000455a4 addiu sp, sp, -0x68       |     
    0x000455a8 sw fp, 0x60(sp)           |     *(var_60h) = fp;
    0x000455ac move fp, sp               |     fp = sp;
    0x000455b0 sw s5, 0x58(sp)           |     *(var_58h) = s5;
    0x000455b4 sw s4, 0x54(sp)           |     *(var_54h) = s4;
    0x000455b8 sw s3, 0x50(sp)           |     *(var_50h) = s3;
    0x000455bc sw s2, 0x4c(sp)           |     *(var_4ch) = s2;
    0x000455c0 sw ra, 0x64(sp)           |     *(var_64h) = ra;
    0x000455c4 sw s6, 0x5c(sp)           |     *(var_5ch) = s6;
    0x000455c8 sw s1, 0x48(sp)           |     *(var_48h) = s1;
    0x000455cc sw s0, 0x44(sp)           |     *(var_44h) = s0;
    0x000455d0 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x000455d4 move s5, a0               |     s5 = a0;
    0x000455d8 move s3, a1               |     s3 = a1;
    0x000455dc move s4, a2               |     s4 = a2;
    0x000455e0 move s2, a3               |     s2 = a3;
    0x000455e4 beqz a1, 0x455f0          |     
                                         |     while (v0 == 0) {
    0x000455e8 addiu s0, zero, -1        |         s0 = -1;
    0x000455ec b 0x45648                 |         goto label_0;
    0x000455f0 lw a0, -0x7fa8(gp)        |         a0 = *((gp - 8170));
    0x000455f4 lw t9, -0x7b0c(gp)        |         t9 = *((gp - 7875));
    0x000455f8 addiu t9, t9, 0x5000      |         t9 += 0x5000;
    0x000455fc addiu a0, a0, -0x5518     |         a0 += -0x5518;
    0x00045600 bal 0x45000               |         fcn_00045000 ();
    0x00045604 move s1, v0               |         s1 = v0;
    0x00045608 lw gp, 0x18(fp)           |         gp = *(var_18h);
    0x0004560c beqz v0, 0x455e8          |         
                                         |     }
    0x00045610 lw t9, -0x7b0c(gp)        |     t9 = *((gp - 7875));
    0x00045614 move a0, v0               |     a0 = v0;
    0x00045618 move a1, s5               |     a1 = s5;
    0x0004561c move a2, s2               |     a2 = s2;
    0x00045620 addiu t9, t9, 0x50fc      |     t9 += 0x50fc;
    0x00045624 move a3, s4               |     a3 = s4;
    0x00045628 bal 0x450fc               |     fcn_000450fc ();
    0x0004562c lw gp, 0x18(fp)           |     gp = *(var_18h);
    0x00045630 move s0, v0               |     s0 = v0;
    0x00045634 lw t9, -0x7dcc(gp)        |     t9 = *((gp - 8051));
    0x00045638 move a0, s1               |     a0 = s1;
    0x0004563c bal 0x2de40               |     sym_fclose ();
    0x00045640 lw gp, 0x18(fp)           |     gp = *(var_18h);
                                         |     if (s0 != 0) {
    0x00045644 beqz s0, 0x457a4          |         
                                         | label_0:
    0x00045648 lw v0, -0x760c(gp)        |         v0 = *((gp - 7555));
    0x0004564c lw v0, (v0)               |         v0 = *(v0);
    0x00045650 or s3, s3, v0             |         s3 |= v0;
    0x00045654 lw t9, -0x7ef0(gp)        |         t9 = *((gp - 8124));
                                         |         if (s3 != 0) {
    0x00045658 beqz s3, 0x457a0          |             
    0x0004565c addiu a0, zero, 0x46      |             a0 = 0x46;
    0x00045660 bal 0x60b2c               |             sym_sysconf ();
    0x00045664 lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x00045668 addiu v1, v0, 0xe         |             v1 = v0 + 0xe;
    0x0004566c srl v1, v1, 3             |             v1 >>= 3;
    0x00045670 sll v1, v1, 3             |             v1 <<= 3;
    0x00045674 lw t9, -0x7f78(gp)        |             t9 = *((gp - 8158));
    0x00045678 subu sp, sp, v1           |             
    0x0004567c addiu v1, fp, 0x3c        |             v1 = fp + 0x3c;
    0x00045680 sw v1, 0x10(sp)           |             *(var_10h) = v1;
    0x00045684 move a0, s2               |             a0 = s2;
    0x00045688 addiu a1, fp, 0x20        |             a1 = fp + 0x20;
    0x0004568c addiu a2, sp, 0x18        |             a2 = sp + 0x18;
    0x00045690 move a3, v0               |             a3 = v0;
    0x00045694 bal 0x2c820               |             sym_getpwnam_r ();
    0x00045698 lw gp, 0x18(fp)           |             gp = *(var_18h);
                                         |             if (v0 != 0) {
    0x0004569c bnez v0, 0x457a0          |                 goto label_1;
                                         |             }
    0x000456a0 lw v0, 0x3c(fp)           |             v0 = *(arg_3ch);
    0x000456a4 lw t9, -0x7fdc(gp)        |             t9 = *(var_7fdch);
                                         |             if (v0 == 0) {
    0x000456a8 beqz v0, 0x457a0          |                 goto label_1;
                                         |             }
    0x000456ac lw a0, 0x14(v0)           |             a0 = *((v0 + 5));
    0x000456b0 bal 0x3b6b0               |             sym_strlen ();
    0x000456b4 lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x000456b8 lw t9, -0x75a0(gp)        |             t9 = *(var_75a0h);
    0x000456bc addiu a0, v0, 9           |             a0 = v0 + 9;
    0x000456c0 jalr t9                   |             t9 ();
    0x000456c4 move s1, v0               |             s1 = v0;
    0x000456c8 lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x000456cc move a0, v0               |             a0 = v0;
    0x000456d0 lw v0, 0x3c(fp)           |             v0 = *(arg_3ch);
    0x000456d4 lw t9, -0x7f44(gp)        |             t9 = *(var_7f44h);
    0x000456d8 lw a1, 0x14(v0)           |             a1 = *((v0 + 5));
    0x000456dc bal 0x3b600               |             sym_strcpy ()
    0x000456e0 lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x000456e4 move a0, s1               |             a0 = s1;
    0x000456e8 lw a1, -0x7fa8(gp)        |             a1 = *(s2);
    0x000456ec lw t9, -0x7dfc(gp)        |             t9 = *(var_7dfch);
    0x000456f0 addiu a1, a1, -0x5504     |             a1 += -0x5504;
    0x000456f4 bal 0x3b3a0               |             sym_strcat ();
    0x000456f8 lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x000456fc lw t9, -0x7aa4(gp)        |             t9 = *(var_7aa4h);
    0x00045700 jalr t9                   |             t9 ();
    0x00045704 nop                       |             
    0x00045708 move s6, v0               |             s6 = v0;
    0x0004570c lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x00045710 lw v0, 0x3c(fp)           |             v0 = *(arg_3ch);
    0x00045714 lw t9, -0x79b4(gp)        |             t9 = *(var_79b4h);
    0x00045718 lw a0, 8(v0)              |             a0 = *((v0 + 2));
    0x0004571c jalr t9                   |             t9 ();
    0x00045720 lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x00045724 lw v0, 0x3c(fp)           |             v0 = *(arg_3ch);
    0x00045728 move a0, s1               |             a0 = s1;
    0x0004572c lw t9, -0x7b0c(gp)        |             t9 = *(var_7b0ch);
    0x00045730 addiu t9, t9, 0x5000      |             t9 += 0x5000;
    0x00045734 lw a1, 8(v0)              |             a1 = *((v0 + 2));
    0x00045738 bal 0x45000               |             fcn_00045000 ();
    0x0004573c lw gp, 0x18(fp)           |             gp = *(var_18h);
    0x00045740 move s3, v0               |             s3 = v0;
    0x00045744 lw t9, -0x7668(gp)        |             t9 = *(var_7668h);
    0x00045748 move a0, s1               |             a0 = s1;
    0x0004574c jalr t9                   |             t9 ();
    0x00045750 lw gp, 0x18(fp)           |             gp = *(var_18h);
                                         |             if (s3 != 0) {
    0x00045754 beqz s3, 0x4578c          |                 
    0x00045758 lw t9, -0x7b0c(gp)        |                 t9 = *(var_7b0ch);
    0x0004575c move a0, s3               |                 a0 = s3;
    0x00045760 move a1, s5               |                 a1 = s5;
    0x00045764 move a2, s2               |                 a2 = s2;
    0x00045768 addiu t9, t9, 0x50fc      |                 t9 += 0x50fc;
    0x0004576c move a3, s4               |                 a3 = s4;
    0x00045770 bal 0x450fc               |                 fcn_000450fc ();
    0x00045774 lw gp, 0x18(fp)           |                 gp = *(var_18h);
    0x00045778 move a0, s3               |                 a0 = s3;
    0x0004577c lw t9, -0x7dcc(gp)        |                 t9 = *(var_7dcch);
    0x00045780 move s0, v0               |                 s0 = v0;
    0x00045784 bal 0x2de40               |                 sym_fclose ();
    0x00045788 lw gp, 0x18(fp)           |                 gp = *(var_18h);
                                         |             }
    0x0004578c lw t9, -0x79b4(gp)        |             t9 = *(var_79b4h);
    0x00045790 move a0, s6               |             a0 = s6;
    0x00045794 jalr t9                   |             t9 ();
    0x00045798 move sp, fp               |             
    0x0004579c b 0x457a8                 |             goto label_2;
                                         |         }
                                         | label_1:
    0x000457a0 addiu s0, zero, -1        |         s0 = -1;
                                         |     }
    0x000457a4 move sp, fp               |     
                                         | label_2:
    0x000457a8 lw ra, 0x64(sp)           |     ra = *(var_64h);
    0x000457ac move v0, s0               |     v0 = s0;
    0x000457b0 lw fp, 0x60(sp)           |     fp = *(var_60h);
    0x000457b4 lw s6, 0x5c(sp)           |     s6 = *(var_5ch);
    0x000457b8 lw s5, 0x58(sp)           |     s5 = *(var_58h);
    0x000457bc lw s4, 0x54(sp)           |     s4 = *(var_54h);
    0x000457c0 lw s3, 0x50(sp)           |     s3 = *(var_50h);
    0x000457c4 lw s2, 0x4c(sp)           |     s2 = *(var_4ch);
    0x000457c8 lw s1, 0x48(sp)           |     s1 = *(var_48h);
    0x000457cc lw s0, 0x44(sp)           |     s0 = *(var_44h);
    0x000457d0 addiu sp, sp, 0x68        |     
    0x000457d4 jr ra                     |     return v0;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x51f30 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00051f30 ()              | void fcn_00051f30 () {
    0x00051f30 lui gp, 6                 |     
    0x00051f34 addiu gp, gp, 0x37b0      |     
    0x00051f38 addu gp, gp, t9           |     gp += t9;
    0x00051f3c addiu sp, sp, -0x40       |     
    0x00051f40 move v1, zero             |     v1 = 0;
    0x00051f44 move t1, zero             |     t1 = 0;
    0x00051f48 sw s1, 0x38(sp)           |     *(var_38h) = s1;
    0x00051f4c sw s0, 0x34(sp)           |     *(var_34h) = s0;
    0x00051f50 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x00051f54 move s0, a1               |     s0 = a1;
    0x00051f58 sw ra, 0x3c(sp)           |     *(var_3ch) = ra;
    0x00051f5c move s1, a2               |     s1 = a2;
    0x00051f60 sb zero, 0x18(sp)         |     *(var_18h) = 0;
    0x00051f64 addiu t3, zero, 0x64      |     t3 = 0x64;
    0x00051f68 addiu t4, zero, 0x30      |     t4 = 0x30;
    0x00051f6c addiu a3, zero, 0xa       |     a3 = 0xa;
    0x00051f70 addiu a1, zero, 0x2e      |     a1 = 0x2e;
    0x00051f74 addiu v0, zero, 4         |     v0 = 4;
                                         |     do {
    0x00051f78 addu a2, a0, t1           |         a2 = a0 + t1;
    0x00051f7c lbu t0, (a2)              |         t0 = *(a2);
    0x00051f80 addiu a2, sp, 0x18        |         a2 = sp + 0x18;
    0x00051f84 addu t6, a2, v1           |         t6 = a2 + v1;
    0x00051f88 divu zero, t0, t3         |         __asm ("divu zero, t0, t3");
    0x00051f8c teq t3, zero, 7           |         __asm ("teq t3, zero, 7");
    0x00051f90 mflo t2                   |         __asm ("mflo t2");
    0x00051f94 addiu t5, t2, 0x30        |         t5 = t2 + 0x30;
    0x00051f98 andi t5, t5, 0xff         |         t5 &= 0xff;
    0x00051f9c sb t5, (t6)               |         *(t6) = t5;
    0x00051fa0 addiu t2, v1, 1           |         t2 = v1 + 1;
                                         |         if (t5 == t4) {
    0x00051fa4 bne t5, t4, 0x51fd4       |             
    0x00051fa8 divu zero, t0, a3         |             __asm ("divu zero, t0, a3");
    0x00051fac teq a3, zero, 7           |             __asm ("teq a3, zero, 7");
    0x00051fb0 mflo t5                   |             __asm ("mflo t5");
    0x00051fb4 divu zero, t5, a3         |             __asm ("divu zero, t5, a3");
    0x00051fb8 teq a3, zero, 7           |             __asm ("teq a3, zero, 7");
    0x00051fbc mfhi t5                   |             __asm ("mfhi t5");
    0x00051fc0 addiu t5, t5, 0x30        |             t5 += 0x30;
    0x00051fc4 sb t5, (t6)               |             *(t6) = t5;
    0x00051fc8 xor t5, t5, t4            |             t5 ^= t4;
                                         |             if (t5 == 0) {
    0x00051fcc movn v1, t2, t5           |                 v1 = t2;
                                         |             }
    0x00051fd0 b 0x52000                 |             
                                         |         } else {
    0x00051fd4 divu zero, t0, a3         |             __asm ("divu zero, t0, a3");
    0x00051fd8 teq a3, zero, 7           |             __asm ("teq a3, zero, 7");
    0x00051fdc addiu a2, sp, 0x18        |             a2 = sp + 0x18;
    0x00051fe0 addu t2, a2, t2           |             t2 = a2 + t2;
    0x00051fe4 addiu v1, v1, 2           |             v1 += 2;
    0x00051fe8 mflo t5                   |             __asm ("mflo t5");
    0x00051fec divu zero, t5, a3         |             __asm ("divu zero, t5, a3");
    0x00051ff0 teq a3, zero, 7           |             __asm ("teq a3, zero, 7");
    0x00051ff4 mfhi a2                   |             __asm ("mfhi a2");
    0x00051ff8 addiu a2, a2, 0x30        |             a2 += 0x30;
    0x00051ffc sb a2, (t2)               |             *(t2) = a2;
                                         |         }
    0x00052000 divu zero, t0, a3         |         __asm ("divu zero, t0, a3");
    0x00052004 teq a3, zero, 7           |         __asm ("teq a3, zero, 7");
    0x00052008 addiu a2, sp, 0x18        |         a2 = sp + 0x18;
    0x0005200c addu t2, a2, v1           |         t2 = a2 + v1;
    0x00052010 addiu t1, t1, 1           |         t1++;
    0x00052014 sb a1, 1(t2)              |         *(var_1h) = a1;
    0x00052018 addiu v1, v1, 2           |         v1 += 2;
    0x0005201c mfhi a2                   |         __asm ("mfhi a2");
    0x00052020 addiu t0, a2, 0x30        |         t0 = a2 + 0x30;
    0x00052024 sb t0, (t2)               |         *(t2) = t0;
    0x00052028 bne t1, v0, 0x51f78       |         
                                         |     } while (t1 != v0);
    0x0005202c addiu t2, sp, 0x18        |     t2 = sp + 0x18;
    0x00052030 lw t9, -0x7fdc(gp)        |     t9 = *((gp - 8183));
    0x00052034 addu v1, t2, v1           |     v1 = t2 + v1;
    0x00052038 sb zero, -1(v1)           |     *(var_1h) = 0;
    0x0005203c move a0, t2               |     a0 = t2;
    0x00052040 bal 0x3b6b0               |     sym_strlen ();
    0x00052044 sltu v0, s1, v0           |     v0 = (s1 < v0) ? 1 : 0;
    0x00052048 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 != 0) {
    0x0005204c beqz v0, 0x52070          |         
    0x00052050 rdhwr v1, 29              |         __asm ("rdhwr v1, 29");
    0x00052054 move v0, v1               |         v0 = v1;
    0x00052058 lw v1, -0x7564(gp)        |         v1 = *((gp - 7513));
    0x0005205c addu v0, v1, v0           |         v0 = v1 + v0;
    0x00052060 addiu v1, zero, 0x1c      |         v1 = 0x1c;
    0x00052064 sw v1, (v0)               |         *(v0) = v1;
    0x00052068 move v0, zero             |         v0 = 0;
    0x0005206c b 0x52080                 |         
                                         |     } else {
    0x00052070 lw t9, -0x7f44(gp)        |         t9 = *((gp - 8145));
    0x00052074 move a0, s0               |         a0 = s0;
    0x00052078 addiu a1, sp, 0x18        |         a1 = sp + 0x18;
    0x0005207c bal 0x3b600               |         sym_strcpy ()
                                         |     }
    0x00052080 lw ra, 0x3c(sp)           |     ra = *(var_3ch);
    0x00052084 lw s1, 0x38(sp)           |     s1 = *(var_38h);
    0x00052088 lw s0, 0x34(sp)           |     s0 = *(var_34h);
    0x0005208c addiu sp, sp, 0x40        |     
    0x00052090 jr ra                     |     return v0;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x532b0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000532b0 ()                  | void fcn_000532b0 () {
    0x000532b0 lui gp, 6                     |     
    0x000532b4 addiu gp, gp, 0x2430          |     
    0x000532b8 addu gp, gp, t9               |     gp += t9;
    0x000532bc lw t9, -0x75a0(gp)            |     t9 = *((gp - 7528));
    0x000532c0 addiu sp, sp, -0x200          |     
    0x000532c4 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x000532c8 sw ra, 0x1fc(sp)              |     *(var_1fch) = ra;
    0x000532cc sw fp, 0x1f8(sp)              |     *(var_1f8h) = fp;
    0x000532d0 sw s6, 0x1f0(sp)              |     *(var_1f0h) = s6;
    0x000532d4 sw s2, 0x1e0(sp)              |     *(var_1e0h) = s2;
    0x000532d8 sw s1, 0x1dc(sp)              |     *(var_1dch) = s1;
    0x000532dc sw s0, 0x1d8(sp)              |     *(var_1d8h) = s0;
    0x000532e0 move s1, a0                   |     s1 = a0;
    0x000532e4 sw a2, 0x208(sp)              |     *(arg_208h) = a2;
    0x000532e8 addiu a0, zero, 0x200         |     a0 = aav.0x00000200;
    0x000532ec sw s7, 0x1f4(sp)              |     *(var_1f4h) = s7;
    0x000532f0 sw s5, 0x1ec(sp)              |     *(var_1ech) = s5;
    0x000532f4 sw s4, 0x1e8(sp)              |     *(var_1e8h) = s4;
    0x000532f8 sw s3, 0x1e4(sp)              |     *(var_1e4h) = s3;
    0x000532fc move fp, a1                   |     fp = a1;
    0x00053300 move s0, a3                   |     s0 = a3;
    0x00053304 jalr t9                       |     t9 ();
    0x00053308 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0005330c move a0, s1                   |     a0 = s1;
    0x00053310 lw t9, -0x7fdc(gp)            |     t9 = *((gp - 8183));
    0x00053314 move s2, v0                   |     s2 = v0;
    0x00053318 bal 0x3b6b0                   |     sym_strlen ();
    0x0005331c move s6, v0                   |     s6 = v0;
    0x00053320 sltiu v0, v0, 0x37f           |     v0 = (v0 < 0x37f) ? 1 : 0;
    0x00053324 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x00053328 bnez v0, 0x53334              |         
    0x0005332c move s4, zero                 |         s4 = 0;
    0x00053330 b 0x53a70                     |         goto label_6;
                                             |     }
    0x00053334 lw t9, -0x75a0(gp)            |     t9 = *((gp - 7528));
    0x00053338 addiu a0, s6, 0x82            |     a0 = s6 + 0x82;
    0x0005333c jalr t9                       |     t9 ();
    0x00053340 move s4, v0                   |     s4 = v0;
    0x00053344 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (s2 == 0) {
    0x00053348 beqz s2, 0x53a70              |         goto label_6;
                                             |     }
                                             |     if (v0 == 0) {
    0x0005334c beql v0, zero, 0x53a70        |         goto label_6;
                                             |     }
    0x00053350 move s4, zero                 |     s4 = 0;
    0x00053354 lbu v0, (s1)                  |     v0 = *(s1);
    0x00053358 addu v0, s1, s6               |     v0 = s1 + s6;
                                             |     if (v0 == 0) {
    0x0005335c beqz v0, 0x53a70              |         goto label_6;
                                             |     }
    0x00053360 lbu v0, -1(v0)                |     v0 = *((v0 - 1));
    0x00053364 lw t9, -0x7ed4(gp)            |     t9 = *((gp - 8117));
    0x00053368 move a0, s4                   |     a0 = s4;
    0x0005336c sw v0, 0x1bc(sp)              |     *(var_1bch) = v0;
    0x00053370 move a1, s1                   |     a1 = s1;
    0x00053374 move a2, s6                   |     a2 = s6;
    0x00053378 bal 0x3a800                   |     sym_memcpy ();
    0x0005337c addiu v0, s6, 1               |     v0 = s6 + 1;
    0x00053380 addu v0, s4, v0               |     v0 = s4 + v0;
    0x00053384 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00053388 addiu s3, zero, -1            |     s3 = -1;
    0x0005338c addiu s7, zero, -1            |     s7 = -1;
    0x00053390 sw zero, 0x1b8(sp)            |     *(var_1b8h) = 0;
    0x00053394 sw v0, 0x1c0(sp)              |     *(dest) = v0;
    0x00053398 b 0x533b0                     |     goto label_7;
                                             | label_5:
    0x0005339c lw t9, -0x7f9c(gp)            |     t9 = *((gp - 8167));
                                             |     if (s1 != v0) {
    0x000533a0 beq s1, v0, 0x533b0           |         
    0x000533a4 move a0, s1                   |         a0 = s1;
    0x000533a8 bal 0x62088                   |         sym_libc_close ();
    0x000533ac lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |     }
                                             | label_7:
    0x000533b0 lw a1, -0x75d0(gp)            |     a1 = *((gp - 7540));
    0x000533b4 lw a2, -0x75d4(gp)            |     a2 = *((gp - 7541));
    0x000533b8 lw t9, -0x7604(gp)            |     t9 = *((gp - 7553));
    0x000533bc addiu a0, sp, 0x20            |     a0 = sp + 0x20;
    0x000533c0 jalr t9                       |     t9 ();
    0x000533c4 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000533c8 lw a0, -0x75d4(gp)            |     a0 = *((gp - 7541));
    0x000533cc lw t9, -0x758c(gp)            |     t9 = *((gp - 7523));
    0x000533d0 jalr t9                       |     t9 ();
    0x000533d4 nop                           |     
    0x000533d8 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000533dc lw t9, -0x7854(gp)            |     t9 = *((gp - 7701));
    0x000533e0 bal 0x53bc0                   |     fcn_00053bc0 ();
    0x000533e4 nop                           |     
    0x000533e8 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000533ec lw v0, -0x7850(gp)            |     v0 = *((gp - 7700));
    0x000533f0 lw v0, (v0)                   |     v0 = *(v0);
    0x000533f4 sw v0, 0x1b4(sp)              |     *(var_1b4h) = v0;
    0x000533f8 lw t9, 0x1b4(sp)              |     t9 = *(var_1b4h);
    0x000533fc sltu v1, s7, t9               |     v1 = (s7 < t9) ? 1 : 0;
    0x00053400 addu v0, s4, s6               |     v0 = s4 + s6;
                                             |     if (v1 == 0) {
    0x00053404 bnez v1, 0x53410              |         
    0x00053408 sb zero, (v0)                 |         *(v0) = 0;
    0x0005340c b 0x5343c                     |         
                                             |     } else {
    0x00053410 addiu v1, zero, 0x2e          |         v1 = 0x2e;
    0x00053414 sb v1, (v0)                   |         *(v0) = v1;
    0x00053418 lw v0, -0x784c(gp)            |         v0 = *((gp - 7699));
    0x0005341c lw t9, -0x7f44(gp)            |         t9 = *((gp - 8145));
    0x00053420 lw a0, 0x1c0(sp)              |         a0 = *(dest);
    0x00053424 lw v1, (v0)                   |         v1 = *(v0);
    0x00053428 sll v0, s7, 2                 |         v0 = s7 << 2;
    0x0005342c addu v0, v1, v0               |         v0 = v1 + v0;
    0x00053430 lw a1, (v0)                   |         a1 = *(v0);
    0x00053434 bal 0x3b600                   |         sym_strcpy ()
    0x00053438 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |     }
    0x0005343c lw v0, -0x7848(gp)            |     v0 = *((gp - 7698));
                                             |     if (s3 < 0) {
    0x00053440 bgez s3, 0x53474              |         
    0x00053444 lw v0, -0x7ecc(gp)            |         v0 = *((gp - 8115));
    0x00053448 lw v1, -0x7ecc(gp)            |         v1 = *((gp - 8115));
    0x0005344c lhu v0, -0x2a80(v0)           |         v0 = *((v0 - 5440));
    0x00053450 lw s3, 0x1cf0(v1)             |         s3 = *(v1);
    0x00053454 sw v0, 0x1b0(sp)              |         *(var_1b0h) = v0;
    0x00053458 lw v0, -0x7844(gp)            |         v0 = *((gp - 7697));
    0x0005345c lbu v1, (v0)                  |         v1 = *(v0);
    0x00053460 lw v0, -0x7848(gp)            |         v0 = *((gp - 7698));
    0x00053464 lw v0, (v0)                   |         v0 = *(v0);
    0x00053468 mul a0, v1, v0                |         __asm ("mul a0, v1, v0");
    0x0005346c sw a0, 0x1b8(sp)              |         *(var_1b8h) = a0;
    0x00053470 lw v0, -0x7848(gp)            |         v0 = *((gp - 7698));
                                             |     }
    0x00053474 lw v1, 0x1b0(sp)              |     v1 = *(var_1b0h);
    0x00053478 addiu a1, zero, 0x1c          |     a1 = 0x1c;
    0x0005347c lw v0, (v0)                   |     v0 = *(v0);
    0x00053480 lw a0, -0x7ecc(gp)            |     a0 = *((gp - 8115));
    0x00053484 lw t9, 0x1b8(sp)              |     t9 = *(var_1b8h);
    0x00053488 sltu v0, s3, v0               |     v0 = (s3 < v0) ? 1 : 0;
                                             |     if (v0 != 0) {
    0x0005348c movz s3, zero, v0             |         s3 = 0;
                                             |     }
    0x00053490 addiu v0, v1, 1               |     v0 = v1 + 1;
    0x00053494 mul v1, s3, a1                |     __asm ("mul v1, s3, a1");
    0x00053498 andi v0, v0, 0xffff           |     v0 &= 0xffff;
    0x0005349c sh v0, -0x2a80(a0)            |     *((a0 - 5440)) = v0;
    0x000534a0 addiu t9, t9, -1              |     t9 += -1;
    0x000534a4 sw v0, 0x1b0(sp)              |     *(var_1b0h) = v0;
    0x000534a8 lw v0, -0x7840(gp)            |     v0 = *((gp - 7696));
    0x000534ac sw t9, 0x1b8(sp)              |     *(var_1b8h) = t9;
    0x000534b0 lw t9, -0x7ecc(gp)            |     t9 = *((gp - 8115));
    0x000534b4 lw v0, (v0)                   |     v0 = *(v0);
    0x000534b8 addiu a2, zero, 0x1c          |     a2 = 0x1c;
    0x000534bc sw s3, 0x1cf0(t9)             |     *(t9) = s3;
    0x000534c0 lw t9, -0x759c(gp)            |     t9 = *((gp - 7527));
    0x000534c4 addiu a0, sp, 0x178           |     a0 = sp + aav.0x00000178;
    0x000534c8 addu a1, v1, v0               |     a1 = v1 + v0;
    0x000534cc jalr t9                       |     t9 ();
    0x000534d0 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000534d4 addiu a0, sp, 0x20            |     a0 = sp + 0x20;
    0x000534d8 lw t9, -0x75ac(gp)            |     t9 = *((gp - 7531));
    0x000534dc addiu a1, zero, 1             |     a1 = 1;
    0x000534e0 jalr t9                       |     t9 ();
    0x000534e4 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000534e8 move a0, s2                   |     a0 = s2;
    0x000534ec move a1, zero                 |     a1 = 0;
    0x000534f0 lw s1, -0x7fe4(gp)            |     s1 = *((gp - 8185));
    0x000534f4 move t9, s1                   |     t9 = s1;
    0x000534f8 addiu a2, zero, 0x200         |     a2 = aav.0x00000200;
    0x000534fc bal 0x3a940                   |     sym_memset ();
    0x00053500 addiu v1, sp, 0x120           |     v1 = sp + aav.0x00000120;
    0x00053504 move a0, v1                   |     a0 = v1;
    0x00053508 move t9, s1                   |     t9 = s1;
    0x0005350c sw v1, 0x1a8(sp)              |     *(var_1a8h) = v1;
    0x00053510 move a1, zero                 |     a1 = 0;
    0x00053514 addiu a2, zero, 0x30          |     a2 = 0x30;
    0x00053518 bal 0x3a940                   |     sym_memset ();
    0x0005351c lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00053520 lw v1, 0x1b0(sp)              |     v1 = *(var_1b0h);
    0x00053524 addiu s1, zero, 1             |     s1 = 1;
    0x00053528 lw t9, -0x783c(gp)            |     t9 = *((gp - 7695));
    0x0005352c sw v1, 0x120(sp)              |     *(var_120h) = v1;
    0x00053530 sw s1, 0x140(sp)              |     *(var_140h) = s1;
    0x00053534 sw s1, 0x134(sp)              |     *(var_134h) = s1;
    0x00053538 addiu a0, sp, 0x120           |     a0 = sp + aav.0x00000120;
    0x0005353c move a1, s2                   |     a1 = s2;
    0x00053540 addiu a2, zero, 0x200         |     a2 = aav.0x00000200;
    0x00053544 bal 0x52a00                   |     fcn_00052a00 ();
    0x00053548 move s5, v0                   |     s5 = v0;
    0x0005354c lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 < 0) {
    0x00053550 bltz v0, 0x53a70              |         goto label_6;
                                             |     }
    0x00053554 lw t9, -0x7838(gp)            |     t9 = *((gp - 7694));
    0x00053558 addiu a2, zero, 0x200         |     a2 = aav.0x00000200;
    0x0005355c sw s4, 0x194(sp)              |     *(var_194h) = s4;
    0x00053560 sw fp, 0x198(sp)              |     *(var_198h) = fp;
    0x00053564 sw s1, 0x19c(sp)              |     *(var_19ch) = s1;
    0x00053568 addiu a0, sp, 0x194           |     a0 = sp + aav.0x00000194;
    0x0005356c addu a1, s2, v0               |     a1 = s2 + v0;
    0x00053570 subu a2, a2, v0               |     __asm ("subu a2, a2, v0");
    0x00053574 bal 0x52e60                   |     fcn_00052e60 ();
    0x00053578 sw v0, 0x1ac(sp)              |     *(length) = v0;
    0x0005357c lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 < 0) {
    0x00053580 bltz v0, 0x53a70              |         goto label_6;
                                             |     }
    0x00053584 lw t9, -0x7d40(gp)            |     t9 = *((gp - 8016));
    0x00053588 lhu a0, 0x178(sp)             |     a0 = *(domain);
    0x0005358c addiu a1, zero, 1             |     a1 = 1;
    0x00053590 addiu a2, zero, 0x11          |     a2 = 0x11;
    0x00053594 bal 0x58470                   |     sym_socket ();
    0x00053598 move s1, v0                   |     s1 = v0;
    0x0005359c lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 < 0) {
    0x000535a0 bltz v0, 0x53a54              |         goto label_8;
                                             |     }
    0x000535a4 lw t9, -0x7d3c(gp)            |     t9 = *((gp - 8015));
    0x000535a8 move a0, v0                   |     a0 = v0;
    0x000535ac addiu a1, sp, 0x178           |     a1 = sp + aav.0x00000178;
    0x000535b0 addiu a2, zero, 0x1c          |     a2 = 0x1c;
    0x000535b4 bal 0x57b90                   |     sym_connect ();
    0x000535b8 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 < 0) {
    0x000535bc bltz v0, 0x53a54              |         goto label_8;
                                             |     }
    0x000535c0 lw t9, 0x1ac(sp)              |     t9 = *(length);
    0x000535c4 move a0, s1                   |     a0 = s1;
    0x000535c8 move a1, s2                   |     a1 = s2;
    0x000535cc addu a2, s5, t9               |     a2 = s5 + t9;
    0x000535d0 lw t9, -0x7d2c(gp)            |     t9 = *((gp - 8011));
    0x000535d4 move a3, zero                 |     a3 = 0;
    0x000535d8 bal 0x580b0                   |     sym_send ();
    0x000535dc lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000535e0 lw v0, -0x7834(gp)            |     v0 = *((gp - 7693));
    0x000535e4 lbu v1, (v0)                  |     v1 = *(v0);
    0x000535e8 addiu v0, zero, 0x3e8         |     v0 = aav.0x000003e8;
    0x000535ec mul a0, v1, v0                |     __asm ("mul a0, v1, v0");
    0x000535f0 sw a0, 0x1ac(sp)              |     *(length) = a0;
    0x000535f4 lw t9, -0x7a3c(gp)            |     t9 = *((gp - 7823));
                                             |     do {
    0x000535f8 lw a2, 0x1ac(sp)              |         a2 = *(length);
    0x000535fc addiu v0, zero, 1             |         v0 = 1;
    0x00053600 sw s1, 0x1a0(sp)              |         *(var_1a0h) = s1;
    0x00053604 sh v0, 0x1a4(sp)              |         *(var_1a4h) = v0;
    0x00053608 addiu a0, sp, 0x1a0           |         a0 = sp + aav.0x000001a0;
    0x0005360c addiu a1, zero, 1             |         a1 = 1;
    0x00053610 jalr t9                       |         t9 ();
    0x00053614 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (v0 <= 0) {
    0x00053618 blez v0, 0x53a54              |             goto label_8;
                                             |         }
    0x0005361c lw v1, 0x1ac(sp)              |         v1 = *(length);
    0x00053620 lw t9, -0x7830(gp)            |         t9 = *((gp - 7692));
    0x00053624 move a0, s1                   |         a0 = s1;
    0x00053628 addiu v1, v1, -0x3e8          |         v1 += -aav.0x000003e8;
    0x0005362c sw v1, 0x1ac(sp)              |         *(length) = v1;
    0x00053630 move a1, s2                   |         a1 = s2;
    0x00053634 addiu a2, zero, 0x200         |         a2 = aav.0x00000200;
    0x00053638 addiu a3, zero, 0x40          |         a3 = 0x40;
    0x0005363c bal 0x57d80                   |         sym_recv ();
    0x00053640 move s5, v0                   |         s5 = v0;
    0x00053644 slti v0, v0, 0xc              |         v0 = (v0 < 0xc) ? 1 : 0;
    0x00053648 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (v0 == 0) {
    0x0005364c beqz v0, 0x5366c              |             goto label_9;
                                             |         }
                                             |         if (s5 < 0) {
    0x00053650 bltzl s5, 0x53a58             |             goto label_10;
                                             |         }
    0x00053654 addiu s3, s3, 1               |         s3++;
                                             | label_0:
    0x00053658 lw v1, 0x1ac(sp)              |         v1 = *(length);
                                             | label_1:
    0x0005365c lw t9, -0x7a3c(gp)            |         t9 = *((gp - 7823));
    0x00053660 bnez v1, 0x535f8              |         
                                             |     } while (v1 != 0);
    0x00053664 addiu s3, s3, 1               |     s3++;
    0x00053668 b 0x53a58                     |     goto label_10;
                                             | label_9:
    0x0005366c lw t9, -0x782c(gp)            |     t9 = *((gp - 7691));
    0x00053670 move a0, s2                   |     a0 = s2;
    0x00053674 addiu a1, sp, 0x120           |     a1 = sp + aav.0x00000120;
    0x00053678 bal 0x52ae0                   |     fcn_00052ae0 ();
    0x0005367c lw v0, 0x120(sp)              |     v0 = *(var_120h);
    0x00053680 lw v1, 0x1b0(sp)              |     v1 = *(var_1b0h);
    0x00053684 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 != v1) {
    0x00053688 bne v0, v1, 0x53658           |         goto label_0;
                                             |     }
    0x0005368c lw v0, 0x124(sp)              |     v0 = *(var_124h);
    0x00053690 lw v1, 0x1ac(sp)              |     v1 = *(length);
                                             |     if (v0 == 0) {
    0x00053694 beqz v0, 0x5365c              |         goto label_1;
                                             |     }
    0x00053698 lw v0, 0x13c(sp)              |     v0 = *(var_13ch);
    0x0005369c addiu v1, v0, -2              |     v1 = v0 + -2;
    0x000536a0 sltiu v1, v1, 2               |     v1 = (v1 < 2) ? 1 : 0;
    0x000536a4 lw t9, 0x1bc(sp)              |     t9 = *(var_1bch);
                                             |     if (v1 != 0) {
    0x000536a8 beqz v1, 0x536e4              |         
    0x000536ac addiu v0, zero, 0x2e          |         v0 = 0x2e;
                                             |         if (t9 != v0) {
    0x000536b0 beq t9, v0, 0x536cc           |             
    0x000536b4 nop                           |             
    0x000536b8 lw v1, 0x1b4(sp)              |             v1 = *(var_1b4h);
    0x000536bc addiu v0, v1, -1              |             v0 = v1 + -1;
    0x000536c0 slt v0, s7, v0                |             v0 = (s7 < v0) ? 1 : 0;
    0x000536c4 addiu s7, s7, 1               |             s7++;
                                             |             if (v0 != 0) {
    0x000536c8 bnez v0, 0x53a5c              |                 goto label_11;
                                             |             }
                                             |         }
    0x000536cc rdhwr v1, 29                  |         __asm ("rdhwr v1, 29");
    0x000536d0 move v0, v1                   |         v0 = v1;
    0x000536d4 lw v1, -0x7570(gp)            |         v1 = *((gp - 7516));
    0x000536d8 addu v0, v1, v0               |         v0 = v1 + v0;
    0x000536dc addiu v1, zero, 1             |         v1 = 1;
    0x000536e0 b 0x5370c                     |         
                                             |     } else {
    0x000536e4 addiu s3, s3, 1               |         s3++;
                                             |         if (v0 == 0) {
    0x000536e8 bnel v0, zero, 0x53a58        |             goto label_10;
                                             |         }
    0x000536ec lw v0, 0x144(sp)              |         v0 = *(var_144h);
    0x000536f0 addiu s7, zero, 0xc           |         s7 = 0xc;
                                             |         if (v0 > 0) {
    0x000536f4 bgtz v0, 0x53778              |             goto label_12;
                                             |         }
    0x000536f8 rdhwr v1, 29                  |         __asm ("rdhwr v1, 29");
    0x000536fc move v0, v1                   |         v0 = v1;
    0x00053700 lw v1, -0x7570(gp)            |         v1 = *((gp - 7516));
    0x00053704 addu v0, v1, v0               |         v0 = v1 + v0;
    0x00053708 addiu v1, zero, 4             |         v1 = 4;
                                             |     }
    0x0005370c sw v1, (v0)                   |     *(v0) = v1;
    0x00053710 b 0x53a90                     |     goto label_13;
                                             | label_2:
    0x00053714 subu v0, s5, s7               |     __asm ("subu v0, s5, s7");
                                             |     if (a2 == 0) {
    0x00053718 beqz a2, 0x53a54              |         goto label_8;
                                             |     }
    0x0005371c move a0, a2                   |     a0 = a2;
                                             |     do {
                                             |         if (v0 <= 0) {
    0x00053720 blezl v0, 0x53a58             |             goto label_10;
                                             |         }
    0x00053724 addiu s3, s3, 1               |         s3++;
    0x00053728 lbu v1, (a0)                  |         v1 = *(a0);
    0x0005372c addiu a3, a0, 1               |         a3 = a0 + 1;
                                             |         if (v1 == 0) {
    0x00053730 beqz v1, 0x53758              |             goto label_14;
                                             |         }
    0x00053734 and t3, v1, t1                |         t3 = v1 & t1;
    0x00053738 addu a0, a3, v1               |         a0 = a3 + v1;
                                             |         if (t3 != t2) {
    0x0005373c bnel t3, t2, 0x5374c          |             
    0x00053740 addiu a3, a0, 2               |             a3 = a0 + 2;
    0x00053744 addiu v0, v0, -2              |             v0 += -2;
    0x00053748 b 0x53758                     |             
                                             |         } else {
    0x0005374c nor v1, zero, v1              |             __asm ("nor v1, zero, v1");
    0x00053750 addu v0, v1, v0               |             v0 = v1 + v0;
    0x00053754 b 0x53720                     |             
                                             |         }
                                             |     } while (1);
                                             | label_14:
    0x00053758 slti v0, v0, 4                |     v0 = (v0 < 4) ? 1 : 0;
    0x0005375c subu a2, a3, a2               |     __asm ("subu a2, a3, a2");
                                             |     if (v0 != 0) {
    0x00053760 bnez v0, 0x53a54              |         goto label_8;
                                             |     }
    0x00053764 addiu a2, a2, 4               |     a2 += 4;
    0x00053768 addu s7, s7, a2               |     s7 += a2;
                                             |     if (a2 < 0) {
    0x0005376c bltz a2, 0x53a54              |         goto label_8;
                                             |     }
    0x00053770 addiu a1, a1, 1               |     a1++;
    0x00053774 b 0x53784                     |     goto label_15;
                                             | label_12:
    0x00053778 move a1, zero                 |     a1 = 0;
    0x0005377c addiu t1, zero, -0x40         |     t1 = -0x40;
    0x00053780 addiu t2, zero, 0xc0          |     t2 = 0xc0;
                                             | label_15:
    0x00053784 lw v0, 0x140(sp)              |     v0 = *(var_140h);
    0x00053788 slt v0, a1, v0                |     v0 = (a1 < v0) ? 1 : 0;
    0x0005378c addu a2, s2, s7               |     a2 = s2 + s7;
                                             |     if (v0 != 0) {
    0x00053790 bnez v0, 0x53714              |         goto label_2;
                                             |     }
    0x00053794 addiu t9, zero, 1             |     t9 = 1;
    0x00053798 sw zero, (s0)                 |     *(s0) = 0;
    0x0005379c sw t9, 0x1b4(sp)              |     *(var_1b4h) = t9;
    0x000537a0 sw zero, 0x1ac(sp)            |     *(length) = 0;
    0x000537a4 b 0x53a0c                     |     goto label_16;
                                             | label_4:
    0x000537a8 addiu v0, zero, 0x100         |     v0 = aav.0x00000100;
    0x000537ac sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x000537b0 move a0, s2                   |     a0 = s2;
    0x000537b4 move a1, s7                   |     a1 = s7;
    0x000537b8 move a2, s5                   |     a2 = s5;
    0x000537bc addiu a3, sp, 0x20            |     a3 = sp + 0x20;
    0x000537c0 bal 0x52cd0                   |     fcn_00052cd0 ();
    0x000537c4 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 >= 0) {
    0x000537c8 bltz v0, 0x538b4              |         
    0x000537cc addiu a2, zero, -0xa          |         a2 = -0xa;
    0x000537d0 subu a2, a2, v0               |         __asm ("subu a2, a2, v0");
    0x000537d4 subu a2, a2, s7               |         __asm ("subu a2, a2, s7");
    0x000537d8 addu a2, s5, a2               |         a2 = s5 + a2;
    0x000537dc addu a3, s7, v0               |         a3 = s7 + v0;
                                             |         if (a2 >= 0) {
    0x000537e0 bltz a2, 0x538a8              |             
    0x000537e4 lw t9, -0x7fac(gp)            |             t9 = *((gp - 8171));
    0x000537e8 addu v1, s2, a3               |             v1 = s2 + a3;
    0x000537ec addiu a0, sp, 0x20            |             a0 = sp + 0x20;
    0x000537f0 sw v1, 0x1cc(sp)              |             *(var_1cch) = v1;
    0x000537f4 sw a2, 0x1d0(sp)              |             *(var_1d0h) = a2;
    0x000537f8 sw a3, 0x1c8(sp)              |             *(var_1c8h) = a3;
    0x000537fc sw v0, 0x1c4(sp)              |             *(var_1c4h) = v0;
    0x00053800 bal 0x3c240                   |             sym_strdup ();
    0x00053804 lw v1, 0x1cc(sp)              |             v1 = *(var_1cch);
    0x00053808 sw v0, 0x150(sp)              |             *(s2) = v0;
    0x0005380c lw a3, 0x1c8(sp)              |             a3 = *(var_1c8h);
    0x00053810 lbu v0, (v1)                  |             v0 = *(v1);
    0x00053814 lbu a0, 1(v1)                 |             a0 = *((v1 + 1));
    0x00053818 lw a2, 0x1d0(sp)              |             a2 = *(var_1d0h);
    0x0005381c sll v0, v0, 8                 |             v0 <<= 8;
    0x00053820 or v0, v0, a0                 |             v0 |= a0;
    0x00053824 sw v0, 0x154(sp)              |             *(var_154h) = v0;
    0x00053828 lbu v0, 2(v1)                 |             v0 = *((v1 + 2));
    0x0005382c lbu a0, 3(v1)                 |             a0 = *((v1 + 3));
    0x00053830 addiu a3, a3, 0xa             |             a3 += 0xa;
    0x00053834 sll v0, v0, 8                 |             v0 <<= 8;
    0x00053838 or v0, v0, a0                 |             v0 |= a0;
    0x0005383c sw v0, 0x158(sp)              |             *(var_158h) = v0;
    0x00053840 lbu a0, 4(v1)                 |             a0 = *((v1 + 4));
    0x00053844 lbu v0, 5(v1)                 |             v0 = *((v1 + 5));
    0x00053848 addiu v1, v1, 0xa             |             v1 += 0xa;
    0x0005384c sll a0, a0, 0x18              |             a0 <<= 0x18;
    0x00053850 sll v0, v0, 0x10              |             v0 <<= 0x10;
    0x00053854 or v0, a0, v0                 |             v0 = a0 | v0;
    0x00053858 lbu a0, -3(v1)                |             a0 = *((v1 - 3));
    0x0005385c lw gp, 0x18(sp)               |             gp = *(var_18h);
    0x00053860 lw a1, 0x1c4(sp)              |             a1 = *(var_1c4h);
    0x00053864 or v0, v0, a0                 |             v0 |= a0;
    0x00053868 lbu a0, -4(v1)                |             a0 = *((v1 - 4));
    0x0005386c sll a0, a0, 8                 |             a0 <<= 8;
    0x00053870 or v0, v0, a0                 |             v0 |= a0;
    0x00053874 sw v0, 0x15c(sp)              |             *(var_15ch) = v0;
    0x00053878 lbu v0, -2(v1)                |             v0 = *((v1 - 2));
    0x0005387c lbu a0, -1(v1)                |             a0 = *((v1 - 1));
    0x00053880 sw v1, 0x164(sp)              |             *(var_164h) = v1;
    0x00053884 sll v0, v0, 8                 |             v0 <<= 8;
    0x00053888 or v0, v0, a0                 |             v0 |= a0;
    0x0005388c slt a2, a2, v0                |             a2 = (a2 < v0) ? 1 : 0;
    0x00053890 sw v0, 0x160(sp)              |             *(var_160h) = v0;
    0x00053894 sw a3, 0x168(sp)              |             *(c) = a3;
                                             |             if (a2 != 0) {
    0x00053898 bnez a2, 0x538b4              |                 goto label_17;
                                             |             }
    0x0005389c addiu a1, a1, 0xa             |             a1 += 0xa;
    0x000538a0 addu a1, a1, v0               |             a1 += v0;
    0x000538a4 b 0x538ac                     |             
                                             |         } else {
    0x000538a8 move a1, a2                   |             a1 = a2;
                                             |         }
    0x000538ac lw v1, 0x1b4(sp)              |         v1 = *(var_1b4h);
                                             |         if (a1 >= 0) {
    0x000538b0 bgez a1, 0x538ec              |             goto label_18;
                                             |         }
                                             |     }
                                             | label_17:
    0x000538b4 lw v1, 0x1ac(sp)              |     v1 = *(length);
    0x000538b8 addiu s3, s3, 1               |     s3++;
                                             |     if (v1 == 0) {
    0x000538bc beqz v1, 0x53a58              |         goto label_10;
                                             |     }
    0x000538c0 lw v0, 0x130(sp)              |     v0 = *(var_130h);
    0x000538c4 addiu s7, zero, -1            |     s7 = -1;
                                             |     if (v0 == 0) {
    0x000538c8 beqz v0, 0x53a5c              |         goto label_11;
                                             |     }
                                             |     do {
    0x000538cc lw t9, -0x7f9c(gp)            |         t9 = *((gp - 8167));
                                             | label_3:
    0x000538d0 move a0, s1                   |         a0 = s1;
    0x000538d4 bal 0x62088                   |         sym_libc_close ();
    0x000538d8 lw t9, 0x208(sp)              |         t9 = *(arg_208h);
    0x000538dc lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (t9 != 0) {
    0x000538e0 bnez t9, 0x53a28              |             goto label_19;
                                             |         }
    0x000538e4 lw t9, -0x7668(gp)            |         t9 = *((gp - 7578));
    0x000538e8 b 0x53a34                     |         goto label_20;
                                             | label_18:
    0x000538ec addu s7, s7, a1               |         s7 += a1;
                                             |         if (v1 == 0) {
    0x000538f0 beqz v1, 0x5399c              |             goto label_21;
                                             |         }
    0x000538f4 lw v0, 0x1c(s0)               |         v0 = *((s0 + 7));
    0x000538f8 lw t9, -0x7668(gp)            |         t9 = *((gp - 7578));
    0x000538fc lw a0, (s0)                   |         a0 = *(s0);
    0x00053900 sw v0, 0x16c(sp)              |         *(var_16ch) = v0;
    0x00053904 lw v0, 0x20(s0)               |         v0 = *((s0 + 8));
    0x00053908 sw v0, 0x170(sp)              |         *(var_170h) = v0;
    0x0005390c lw v0, 0x24(s0)               |         v0 = *((s0 + 9));
    0x00053910 sw v0, 0x174(sp)              |         *(var_174h) = v0;
    0x00053914 jalr t9                       |         t9 ();
    0x00053918 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0005391c move a0, s0                   |         a0 = s0;
    0x00053920 addiu a1, sp, 0x150           |         a1 = sp + aav.0x00000150;
    0x00053924 lw t9, -0x7ed4(gp)            |         t9 = *((gp - 8117));
    0x00053928 addiu a2, zero, 0x28          |         a2 = 0x28;
    0x0005392c bal 0x3a800                   |         sym_memcpy ();
    0x00053930 lw v0, 4(s0)                  |         v0 = *((s0 + 1));
    0x00053934 addiu v1, zero, 0x18          |         v1 = 0x18;
    0x00053938 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (v0 == v1) {
    0x0005393c beq v0, v1, 0x5395c           |             goto label_22;
                                             |         }
    0x00053940 lw v1, 0x1c(s0)               |         v1 = *((s0 + 7));
    0x00053944 addiu v1, zero, 1             |         v1 = 1;
    0x00053948 beqz v1, 0x538cc              |         
                                             |     } while (v1 == 0);
    0x0005394c addiu v1, zero, 0x1c          |     v1 = 0x1c;
                                             |     if (fp == v1) {
    0x00053950 beq fp, v1, 0x5395c           |         goto label_22;
                                             |     }
    0x00053954 lw t9, -0x7f9c(gp)            |     t9 = *((gp - 8167));
                                             |     if (fp != v1) {
    0x00053958 bne fp, v1, 0x538d0           |         goto label_3;
                                             |     }
                                             | label_22:
    0x0005395c lw v1, 0x1ac(sp)              |     v1 = *(length);
                                             |     if (v0 != fp) {
    0x00053960 bne v0, fp, 0x53a04           |         goto label_23;
                                             |     }
    0x00053964 lw v0, 0x144(sp)              |     v0 = *(var_144h);
    0x00053968 subu v0, v0, v1               |     __asm ("subu v0, v0, v1");
    0x0005396c lw v1, 0x10(s0)               |     v1 = *((s0 + 4));
    0x00053970 addiu v0, v0, -1              |     v0 += -1;
    0x00053974 sw v0, 0x24(s0)               |     *((s0 + 9)) = v0;
    0x00053978 addiu v1, v1, 4               |     v1 += 4;
    0x0005397c mul v0, v0, v1                |     __asm ("mul v0, v0, v1");
    0x00053980 lw v1, 0x20(s0)               |     v1 = *((s0 + 8));
    0x00053984 sltu v0, v1, v0               |     v0 = (v1 < v0) ? 1 : 0;
    0x00053988 lw t9, -0x7f9c(gp)            |     t9 = *((gp - 8167));
                                             |     if (v0 != 0) {
    0x0005398c bnez v0, 0x538d0              |         goto label_3;
                                             |     }
    0x00053990 sw zero, 0x24(s0)             |     *((s0 + 9)) = 0;
    0x00053994 sw zero, 0x1b4(sp)            |     *(var_1b4h) = 0;
    0x00053998 b 0x53a00                     |     goto label_24;
                                             | label_21:
    0x0005399c lw t9, -0x7668(gp)            |     t9 = *((gp - 7578));
    0x000539a0 lw a0, 0x150(sp)              |     a0 = *(s2);
    0x000539a4 jalr t9                       |     t9 ();
    0x000539a8 lw v0, 0x154(sp)              |     v0 = *(var_154h);
    0x000539ac lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == fp) {
    0x000539b0 bne v0, fp, 0x53a00           |         
    0x000539b4 lw a2, 0x10(s0)               |         a2 = *((s0 + 4));
    0x000539b8 lw v0, 0x160(sp)              |         v0 = *(var_160h);
                                             |         if (a2 != v0) {
    0x000539bc beql a2, v0, 0x539d8          |             
    0x000539c0 lw a0, 0x24(s0)               |             a0 = *((s0 + 9));
    0x000539c4 lw t9, -0x7668(gp)            |             t9 = *((gp - 7578));
    0x000539c8 lw a0, (s0)                   |             a0 = *(s0);
    0x000539cc jalr t9                       |             t9 ();
    0x000539d0 lw gp, 0x18(sp)               |             gp = *(var_18h);
    0x000539d4 b 0x53a54                     |             goto label_8;
                                             |         }
    0x000539d8 lw v0, 0x1c(s0)               |         v0 = *((s0 + 7));
    0x000539dc lw t9, -0x7ed4(gp)            |         t9 = *((gp - 8117));
    0x000539e0 mul v1, a2, a0                |         __asm ("mul v1, a2, a0");
    0x000539e4 lw a1, 0x164(sp)              |         a1 = *(var_164h);
    0x000539e8 addu a0, v1, v0               |         a0 = v1 + v0;
    0x000539ec bal 0x3a800                   |         sym_memcpy ();
    0x000539f0 lw v0, 0x24(s0)               |         v0 = *((s0 + 9));
    0x000539f4 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x000539f8 addiu v0, v0, 1               |         v0++;
    0x000539fc sw v0, 0x24(s0)               |         *((s0 + 9)) = v0;
                                             |     }
                                             | label_24:
    0x00053a00 lw v1, 0x1ac(sp)              |     v1 = *(length);
                                             | label_23:
    0x00053a04 addiu v1, v1, 1               |     v1++;
    0x00053a08 sw v1, 0x1ac(sp)              |     *(length) = v1;
                                             | label_16:
    0x00053a0c lw v0, 0x144(sp)              |     v0 = *(var_144h);
    0x00053a10 lw t9, 0x1ac(sp)              |     t9 = *(length);
    0x00053a14 slt v0, t9, v0                |     v0 = (t9 < v0) ? 1 : 0;
    0x00053a18 lw t9, -0x7828(gp)            |     t9 = *((gp - 7690));
                                             |     if (v0 == 0) {
    0x00053a1c bnel v0, zero, 0x537a8        |         goto label_4;
                                             |     }
    0x00053a20 lw t9, -0x7f9c(gp)            |     t9 = *((gp - 8167));
    0x00053a24 b 0x538d0                     |     goto label_3;
                                             | label_19:
    0x00053a28 lw v1, 0x208(sp)              |     v1 = *(arg_208h);
    0x00053a2c sw s2, (v1)                   |     *(v1) = s2;
    0x00053a30 b 0x53a40                     |     goto label_25;
                                             | label_20:
    0x00053a34 move a0, s2                   |     a0 = s2;
    0x00053a38 jalr t9                       |     t9 ();
    0x00053a3c lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             | label_25:
    0x00053a40 lw t9, -0x7668(gp)            |     t9 = *((gp - 7578));
    0x00053a44 move a0, s4                   |     a0 = s4;
    0x00053a48 jalr t9                       |     t9 ();
    0x00053a4c lw ra, 0x1fc(sp)              |     ra = *(var_1fch);
    0x00053a50 b 0x53ac4                     |     goto label_26;
                                             | label_8:
    0x00053a54 addiu s3, s3, 1               |     s3++;
                                             | label_10:
    0x00053a58 addiu s7, zero, -1            |     s7 = -1;
                                             | label_11:
    0x00053a5c lw t9, 0x1b8(sp)              |     t9 = *(var_1b8h);
    0x00053a60 addiu v0, zero, -1            |     v0 = -1;
                                             |     if (t9 > 0) {
    0x00053a64 bgtz t9, 0x5339c              |         goto label_5;
                                             |     }
    0x00053a68 b 0x53a74                     |     goto label_27;
    0x00053a6c nop                           |     
                                             | label_6:
    0x00053a70 addiu s1, zero, -1            |     s1 = -1;
                                             | label_27:
    0x00053a74 rdhwr v1, 29                  |     __asm ("rdhwr v1, 29");
    0x00053a78 move v0, v1                   |     v0 = v1;
    0x00053a7c lw v1, -0x7570(gp)            |     v1 = *((gp - 7516));
    0x00053a80 addu v1, v1, v0               |     v1 += v0;
    0x00053a84 addiu v0, zero, -1            |     v0 = -1;
    0x00053a88 sw v0, (v1)                   |     *(v1) = v0;
                                             |     if (s1 != v0) {
    0x00053a8c beq s1, v0, 0x53aa0           |         
                                             | label_13:
    0x00053a90 lw t9, -0x7f9c(gp)            |         t9 = *((gp - 8167));
    0x00053a94 move a0, s1                   |         a0 = s1;
    0x00053a98 bal 0x62088                   |         sym_libc_close ();
    0x00053a9c lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |     }
    0x00053aa0 lw t9, -0x7668(gp)            |     t9 = *((gp - 7578));
    0x00053aa4 move a0, s4                   |     a0 = s4;
    0x00053aa8 addiu s5, zero, -1            |     s5 = -1;
    0x00053aac jalr t9                       |     t9 ();
    0x00053ab0 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00053ab4 lw t9, -0x7668(gp)            |     t9 = *((gp - 7578));
    0x00053ab8 move a0, s2                   |     a0 = s2;
    0x00053abc jalr t9                       |     t9 ();
    0x00053ac0 lw ra, 0x1fc(sp)              |     ra = *(var_1fch);
                                             | label_26:
    0x00053ac4 move v0, s5                   |     v0 = s5;
    0x00053ac8 lw fp, 0x1f8(sp)              |     fp = *(var_1f8h);
    0x00053acc lw s7, 0x1f4(sp)              |     s7 = *(var_1f4h);
    0x00053ad0 lw s6, 0x1f0(sp)              |     s6 = *(var_1f0h);
    0x00053ad4 lw s5, 0x1ec(sp)              |     s5 = *(var_1ech);
    0x00053ad8 lw s4, 0x1e8(sp)              |     s4 = *(var_1e8h);
    0x00053adc lw s3, 0x1e4(sp)              |     s3 = *(var_1e4h);
    0x00053ae0 lw s2, 0x1e0(sp)              |     s2 = *(var_1e0h);
    0x00053ae4 lw s1, 0x1dc(sp)              |     s1 = *(var_1dch);
    0x00053ae8 lw s0, 0x1d8(sp)              |     s0 = *(var_1d8h);
    0x00053aec addiu sp, sp, 0x200           |     
    0x00053af0 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x3fb20 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.clnt_create ()               | void clnt_create () {
    0x0003fb20 lui gp, 7                     |     
    0x0003fb24 addiu gp, gp, 0x5bc0          |     
    0x0003fb28 addu gp, gp, t9               |     gp += t9;
    0x0003fb2c addiu sp, sp, -0xf0           |     
    0x0003fb30 sw s2, 0xd0(sp)               |     *(var_d0h) = s2;
    0x0003fb34 move s2, a1                   |     s2 = a1;
    0x0003fb38 lw a1, -0x7fa8(gp)            |     a1 = *((gp - 8170));
    0x0003fb3c lw t9, -0x7e94(gp)            |     t9 = *((gp - 8101));
    0x0003fb40 sw fp, 0xe8(sp)               |     *(var_e8h) = fp;
    0x0003fb44 sw s4, 0xd8(sp)               |     *(var_d8h) = s4;
    0x0003fb48 move fp, sp                   |     fp = sp;
    0x0003fb4c sw s3, 0xd4(sp)               |     *(var_d4h) = s3;
    0x0003fb50 sw s1, 0xcc(sp)               |     *(var_cch) = s1;
    0x0003fb54 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0003fb58 sw ra, 0xec(sp)               |     *(var_ech) = ra;
    0x0003fb5c sw s7, 0xe4(sp)               |     *(var_e4h) = s7;
    0x0003fb60 sw s6, 0xe0(sp)               |     *(var_e0h) = s6;
    0x0003fb64 sw s5, 0xdc(sp)               |     *(var_dch) = s5;
    0x0003fb68 sw s0, 0xc8(sp)               |     *(var_c8h) = s0;
    0x0003fb6c move s4, a0                   |     s4 = a0;
    0x0003fb70 addiu a1, a1, -0x5d18         |     a1 += -0x5d18;
    0x0003fb74 move a0, a3                   |     a0 = a3;
    0x0003fb78 move s1, a2                   |     s1 = a2;
    0x0003fb7c move s3, a3                   |     s3 = a3;
    0x0003fb80 bal 0x3b5d0                   |     sym_strcmp ();
    0x0003fb84 lw gp, 0x18(fp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x0003fb88 bnez v0, 0x3fbe8              |         
    0x0003fb8c lw t9, -0x7fe4(gp)            |         t9 = *((gp - 8185));
    0x0003fb90 addiu a2, zero, 0x6e          |         a2 = 0x6e;
    0x0003fb94 addiu a0, fp, 0x20            |         a0 = fp + 0x20;
    0x0003fb98 move a1, zero                 |         a1 = 0;
    0x0003fb9c bal 0x3a940                   |         sym_memset ();
    0x0003fba0 lw gp, 0x18(fp)               |         gp = *(var_18h);
    0x0003fba4 addiu v0, zero, 1             |         v0 = 1;
    0x0003fba8 addiu a0, fp, 0x22            |         a0 = fp + 0x22;
    0x0003fbac lw t9, -0x7f44(gp)            |         t9 = *((gp - 8145));
    0x0003fbb0 move a1, s4                   |         a1 = s4;
    0x0003fbb4 sh v0, 0x20(fp)               |         *(var_20h) = v0;
    0x0003fbb8 bal 0x3b600                   |         sym_strcpy ()
    0x0003fbbc lw gp, 0x18(fp)               |         gp = *(var_18h);
    0x0003fbc0 addiu v0, zero, -1            |         v0 = -1;
    0x0003fbc4 sw v0, 0xb8(fp)               |         *(var_b8h) = v0;
    0x0003fbc8 sw zero, 0x10(sp)             |         *(var_10h_3) = 0;
    0x0003fbcc sw zero, 0x14(sp)             |         *(var_14h_3) = 0;
    0x0003fbd0 addiu a0, fp, 0x20            |         a0 = fp + 0x20;
    0x0003fbd4 move a1, s2                   |         a1 = s2;
    0x0003fbd8 move a2, s1                   |         a2 = s1;
    0x0003fbdc addiu a3, fp, 0xb8            |         a3 = fp + 0xb8;
    0x0003fbe0 lw t9, -0x7a80(gp)            |         t9 = *((gp - 7840));
    0x0003fbe4 b 0x3fdd8                     |         goto label_2;
                                             |     }
    0x0003fbe8 lw s7, -0x7564(gp)            |     s7 = *((gp - 7513));
    0x0003fbec addiu sp, sp, -0x408          |     
    0x0003fbf0 rdhwr v1, 29                  |     __asm ("rdhwr v1, 29");
    0x0003fbf4 addiu a2, sp, 0x18            |     a2 = sp + 0x18;
    0x0003fbf8 addiu s0, zero, 0x400         |     s0 = aav.0x00000400;
    0x0003fbfc addiu s5, fp, 0xc0            |     s5 = fp + 0xc0;
    0x0003fc00 addiu s6, fp, 0xb4            |     s6 = fp + 0xb4;
    0x0003fc04 addu s7, s7, v1               |     s7 += v1;
    0x0003fc08 b 0x3fc54                     |     
                                             |     while (v0 != 0) {
    0x0003fc0c lw v1, 0xb4(fp)               |         v1 = *(var_b4h);
                                             | label_0:
    0x0003fc10 addiu v0, zero, -1            |         v0 = -1;
    0x0003fc14 addiu v0, zero, 0x22          |         v0 = 0x22;
                                             |         if (v1 == v0) {
    0x0003fc18 bne v1, v0, 0x3fc28           |             
    0x0003fc1c lw v1, (s7)                   |             v1 = *(s7);
    0x0003fc20 sll s0, s0, 1                 |             s0 <<= 1;
                                             |             if (v1 == v0) {
    0x0003fc24 beq v1, v0, 0x3fc40           |                 goto label_3;
                                             |             }
                                             |         }
    0x0003fc28 lw t9, -0x7a7c(gp)            |         t9 = *((gp - 7839));
    0x0003fc2c jalr t9                       |         t9 ();
    0x0003fc30 nop                           |         
    0x0003fc34 addiu v1, zero, 0xd           |         v1 = 0xd;
    0x0003fc38 sw v1, (v0)                   |         *(v0) = v1;
    0x0003fc3c b 0x3fe00                     |         goto label_4;
                                             | label_3:
    0x0003fc40 addiu v0, s0, 0xe             |         v0 = s0 + 0xe;
    0x0003fc44 srl v0, v0, 3                 |         v0 >>= 3;
    0x0003fc48 sll v0, v0, 3                 |         v0 <<= 3;
    0x0003fc4c subu sp, sp, v0               |         
    0x0003fc50 addiu a2, sp, 0x18            |         a2 = sp + 0x18;
    0x0003fc54 lw t9, -0x7a78(gp)            |         t9 = *((gp - 7838));
    0x0003fc58 sw s5, 0x10(sp)               |         *(var_10h) = s5;
    0x0003fc5c sw s6, 0x14(sp)               |         *(var_14h) = s6;
    0x0003fc60 move a0, s4                   |         a0 = s4;
    0x0003fc64 addiu a1, fp, 0x20            |         a1 = fp + 0x20;
    0x0003fc68 move a3, s0                   |         a3 = s0;
    0x0003fc6c bal 0x54d50                   |         sym_gethostbyname_r ();
    0x0003fc70 lw gp, 0x18(fp)               |         gp = *(var_18h);
    0x0003fc74 bnez v0, 0x3fc0c              |         
                                             |     }
    0x0003fc78 lw v0, 0xc0(fp)               |     v0 = *(var_c0h);
    0x0003fc7c lw v1, 0xb4(fp)               |     v1 = *(var_b4h);
                                             |     if (v0 == 0) {
    0x0003fc80 beqz v0, 0x3fc10              |         goto label_0;
                                             |     }
    0x0003fc84 lw v0, 8(v0)                  |     v0 = *((v0 + 2));
    0x0003fc88 addiu v1, zero, 2             |     v1 = 2;
    0x0003fc8c lw t9, -0x7fe4(gp)            |     t9 = *((gp - 8185));
                                             |     if (v0 != v1) {
    0x0003fc90 beq v0, v1, 0x3fcb0           |         
    0x0003fc94 lw t9, -0x7a7c(gp)            |         t9 = *((gp - 7839));
    0x0003fc98 jalr t9                       |         t9 ();
    0x0003fc9c nop                           |         
    0x0003fca0 addiu v1, zero, 0xc           |         v1 = 0xc;
    0x0003fca4 sw v1, (v0)                   |         *(v0) = v1;
    0x0003fca8 addiu v1, zero, 0x7c          |         v1 = 0x7c;
    0x0003fcac b 0x3fdfc                     |         goto label_5;
                                             |     }
    0x0003fcb0 addiu a0, fp, 0x98            |     a0 = fp + 0x98;
    0x0003fcb4 move a1, zero                 |     a1 = 0;
    0x0003fcb8 addiu a2, zero, 8             |     a2 = 8;
    0x0003fcbc sh v0, 0x90(fp)               |     *(var_90h) = v0;
    0x0003fcc0 sh zero, 0x92(fp)             |     *(var_92h) = 0;
    0x0003fcc4 bal 0x3a940                   |     sym_memset ();
    0x0003fcc8 lw v0, 0xc0(fp)               |     v0 = *(var_c0h);
    0x0003fccc lw gp, 0x18(fp)               |     gp = *(var_18h);
    0x0003fcd0 addiu a0, fp, 0x94            |     a0 = fp + 0x94;
    0x0003fcd4 lw v1, 0x10(v0)               |     v1 = *((v0 + 4));
    0x0003fcd8 lw a2, 0xc(v0)                |     a2 = *((v0 + 3));
    0x0003fcdc lw t9, -0x7ed4(gp)            |     t9 = *((gp - 8117));
    0x0003fce0 lw a1, (v1)                   |     a1 = *(v1);
    0x0003fce4 addiu s0, zero, 0x400         |     s0 = aav.0x00000400;
    0x0003fce8 addiu s4, fp, 0xbc            |     s4 = fp + 0xbc;
    0x0003fcec bal 0x3a800                   |     sym_memcpy ();
    0x0003fcf0 lw gp, 0x18(fp)               |     gp = *(var_18h);
    0x0003fcf4 addiu sp, sp, -0x408          |     
    0x0003fcf8 rdhwr v1, 29                  |     __asm ("rdhwr v1, 29");
    0x0003fcfc lw s5, -0x7564(gp)            |     s5 = *((gp - 7513));
    0x0003fd00 addiu a2, sp, 0x18            |     a2 = sp + 0x18;
    0x0003fd04 addu s5, s5, v1               |     s5 += v1;
    0x0003fd08 b 0x3fd44                     |     
                                             |     while (v0 != 0) {
    0x0003fd0c lw v1, (s5)                   |         v1 = *(s5);
                                             | label_1:
    0x0003fd10 addiu v0, zero, 0x22          |         v0 = 0x22;
    0x0003fd14 sll s0, s0, 1                 |         s0 <<= 1;
                                             |         if (v1 != v0) {
    0x0003fd18 beq v1, v0, 0x3fd30           |             
    0x0003fd1c lw t9, -0x7a7c(gp)            |             t9 = *((gp - 7839));
    0x0003fd20 jalr t9                       |             t9 ();
    0x0003fd24 nop                           |             
    0x0003fd28 addiu v1, zero, 0x11          |             v1 = 0x11;
    0x0003fd2c b 0x3fdf4                     |             goto label_6;
                                             |         }
    0x0003fd30 addiu v0, s0, 0xe             |         v0 = s0 + 0xe;
    0x0003fd34 srl v0, v0, 3                 |         v0 >>= 3;
    0x0003fd38 sll v0, v0, 3                 |         v0 <<= 3;
    0x0003fd3c subu sp, sp, v0               |         
    0x0003fd40 addiu a2, sp, 0x18            |         a2 = sp + 0x18;
    0x0003fd44 lw t9, -0x7a74(gp)            |         t9 = *((gp - 7837));
    0x0003fd48 sw s4, 0x10(sp)               |         *(var_10h_2) = s4;
    0x0003fd4c move a0, s3                   |         a0 = s3;
    0x0003fd50 addiu a1, fp, 0xa0            |         a1 = fp + 0xa0;
    0x0003fd54 move a3, s0                   |         a3 = s0;
    0x0003fd58 bal 0x4e5a0                   |         sym_getprotobyname_r ();
    0x0003fd5c lw gp, 0x18(fp)               |         gp = *(var_18h);
    0x0003fd60 bnez v0, 0x3fd0c              |         
                                             |     }
    0x0003fd64 lw v0, 0xbc(fp)               |     v0 = *(var_bch);
                                             |     if (v0 == 0) {
    0x0003fd68 beql v0, zero, 0x3fd10        |         goto label_1;
                                             |     }
    0x0003fd6c lw v1, (s5)                   |     v1 = *(s5);
    0x0003fd70 lw v0, 8(v0)                  |     v0 = *((v0 + 2));
    0x0003fd74 addiu v1, zero, -1            |     v1 = -1;
    0x0003fd78 sw v1, 0xb8(fp)               |     *(var_b8h) = v1;
    0x0003fd7c addiu v1, zero, 6             |     v1 = 6;
    0x0003fd80 addiu v1, zero, 0x11          |     v1 = 0x11;
                                             |     if (v0 != v1) {
    0x0003fd84 beq v0, v1, 0x3fdbc           |         
    0x0003fd88 lw t9, -0x7a7c(gp)            |         t9 = *((gp - 7839));
                                             |         if (v0 != v1) {
    0x0003fd8c bne v0, v1, 0x3fde8           |             goto label_7;
                                             |         }
    0x0003fd90 lw t9, -0x7a70(gp)            |         t9 = *((gp - 7836));
    0x0003fd94 addiu v0, fp, 0xb8            |         v0 = fp + 0xb8;
    0x0003fd98 sw v0, 0x14(sp)               |         *(var_14h_2) = v0;
    0x0003fd9c sw zero, 0x10(sp)             |         *(var_10h_2) = 0;
    0x0003fda0 addiu a3, zero, 5             |         a3 = 5;
    0x0003fda4 addiu a0, fp, 0x90            |         a0 = fp + 0x90;
    0x0003fda8 move a1, s2                   |         a1 = s2;
    0x0003fdac move a2, s1                   |         a2 = s1;
    0x0003fdb0 bal 0x42378                   |         sym_clntudp_create ();
    0x0003fdb4 b 0x3fde0                     |         goto label_8;
    0x0003fdb8 nop                           |         
                                             |     }
    0x0003fdbc lw t9, -0x7a6c(gp)            |     t9 = *((gp - 7835));
    0x0003fdc0 sw zero, 0x10(sp)             |     *(var_10h_2) = 0;
    0x0003fdc4 sw zero, 0x14(sp)             |     *(var_14h_2) = 0;
    0x0003fdc8 addiu a0, fp, 0x90            |     a0 = fp + 0x90;
    0x0003fdcc move a1, s2                   |     a1 = s2;
    0x0003fdd0 move a2, s1                   |     a2 = s1;
    0x0003fdd4 addiu a3, fp, 0xb8            |     a3 = fp + 0xb8;
                                             | label_2:
    0x0003fdd8 jalr t9                       |     t9 ();
    0x0003fddc nop                           |     
                                             | label_8:
    0x0003fde0 move sp, fp                   |     
    0x0003fde4 b 0x3fe08                     |     goto label_9;
                                             | label_7:
    0x0003fde8 jalr t9                       |     t9 ();
    0x0003fdec nop                           |     
    0x0003fdf0 addiu v1, zero, 0xc           |     v1 = 0xc;
                                             | label_6:
    0x0003fdf4 sw v1, (v0)                   |     *(v0) = v1;
    0x0003fdf8 addiu v1, zero, 0x7b          |     v1 = 0x7b;
                                             | label_5:
    0x0003fdfc sw v1, 8(v0)                  |     *((v0 + 2)) = v1;
                                             | label_4:
    0x0003fe00 move v0, zero                 |     v0 = 0;
    0x0003fe04 move sp, fp                   |     
                                             | label_9:
    0x0003fe08 lw ra, 0xec(sp)               |     ra = *(var_ech);
    0x0003fe0c lw fp, 0xe8(sp)               |     fp = *(var_e8h);
    0x0003fe10 lw s7, 0xe4(sp)               |     s7 = *(var_e4h);
    0x0003fe14 lw s6, 0xe0(sp)               |     s6 = *(var_e0h);
    0x0003fe18 lw s5, 0xdc(sp)               |     s5 = *(var_dch);
    0x0003fe1c lw s4, 0xd8(sp)               |     s4 = *(var_d8h);
    0x0003fe20 lw s3, 0xd4(sp)               |     s3 = *(var_d4h);
    0x0003fe24 lw s2, 0xd0(sp)               |     s2 = *(var_d0h);
    0x0003fe28 lw s1, 0xcc(sp)               |     s1 = *(var_cch);
    0x0003fe2c lw s0, 0xc8(sp)               |     s0 = *(var_c8h);
    0x0003fe30 addiu sp, sp, 0xf0            |     
    0x0003fe34 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x401cc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.clnt_spcreateerror ()        | void clnt_spcreateerror () {
    0x000401cc lui gp, 7                     |     
    0x000401d0 addiu gp, gp, 0x5514          |     
    0x000401d4 addu gp, gp, t9               |     gp += t9;
    0x000401d8 lw t9, -0x7b0c(gp)            |     t9 = *((gp - 7875));
    0x000401dc addiu sp, sp, -0x438          |     
    0x000401e0 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x000401e4 sw s3, 0x428(sp)              |     *(var_428h) = s3;
    0x000401e8 sw s0, 0x41c(sp)              |     *(var_41ch) = s0;
    0x000401ec sw ra, 0x434(sp)              |     *(var_434h) = ra;
    0x000401f0 sw s5, 0x430(sp)              |     *(var_430h) = s5;
    0x000401f4 sw s4, 0x42c(sp)              |     *(var_42ch) = s4;
    0x000401f8 sw s2, 0x424(sp)              |     *(var_424h) = s2;
    0x000401fc sw s1, 0x420(sp)              |     *(var_420h) = s1;
    0x00040200 addiu t9, t9, -0x1c0          |     t9 += -aav.0x000001c0;
    0x00040204 move s0, a0                   |     s0 = a0;
    0x00040208 bal 0x3fe40                   |     fcn_0003fe40 ();
    0x0004020c move s3, v0                   |     s3 = v0;
    0x00040210 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != 0) {
    0x00040214 beqz v0, 0x40350              |         
    0x00040218 lw t9, -0x7a7c(gp)            |         t9 = *((gp - 7839));
    0x0004021c jalr t9                       |         t9 ();
    0x00040220 nop                           |         
    0x00040224 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00040228 move a2, s0                   |         a2 = s0;
    0x0004022c move a0, s3                   |         a0 = s3;
    0x00040230 lw a1, -0x7fa8(gp)            |         a1 = *((gp - 8170));
    0x00040234 lw t9, -0x7f70(gp)            |         t9 = *((gp - 8156));
    0x00040238 move s4, v0                   |         s4 = v0;
    0x0004023c addiu a1, a1, -0x7f00         |         a1 += -0x7f00;
    0x00040240 bal 0x2f930                   |         sym_sprintf ();
    0x00040244 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00040248 lw a0, (s4)                   |         a0 = *(s4);
    0x0004024c lw s5, -0x7a68(gp)            |         s5 = *((gp - 7834));
    0x00040250 move t9, s5                   |         t9 = s5;
    0x00040254 addu s0, s3, v0               |         s0 = s3 + v0;
    0x00040258 bal 0x3fe9c                   |         sym_clnt_sperrno ();
    0x0004025c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00040260 move a0, s0                   |         a0 = s0;
    0x00040264 lw s2, -0x7f44(gp)            |         s2 = *((gp - 8145));
    0x00040268 move t9, s2                   |         t9 = s2;
    0x0004026c move a1, v0                   |         a1 = v0;
    0x00040270 bal 0x3b600                   |         sym_strcpy ()
    0x00040274 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00040278 lw s1, -0x7fdc(gp)            |         s1 = *((gp - 8183));
    0x0004027c move t9, s1                   |         t9 = s1;
    0x00040280 move a0, s0                   |         a0 = s0;
    0x00040284 bal 0x3b6b0                   |         sym_strlen ();
    0x00040288 addu s0, s0, v0               |         s0 += v0;
    0x0004028c lw v0, (s4)                   |         v0 = *(s4);
    0x00040290 addiu v1, zero, 0xc           |         v1 = 0xc;
    0x00040294 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 != v1) {
    0x00040298 beq v0, v1, 0x402e4           |             
    0x0004029c addiu v1, zero, 0xe           |             v1 = 0xe;
    0x000402a0 addiu v0, zero, 0xa           |             v0 = 0xa;
                                             |             if (v0 != v1) {
    0x000402a4 bne v0, v1, 0x40348           |                 goto label_0;
                                             |             }
    0x000402a8 lw a1, -0x7fa8(gp)            |             a1 = *((gp - 8170));
    0x000402ac move a0, s0                   |             a0 = s0;
    0x000402b0 move t9, s2                   |             t9 = s2;
    0x000402b4 addiu a1, a1, -0x5c74         |             a1 += -0x5c74;
    0x000402b8 bal 0x3b600                   |             sym_strcpy ()
    0x000402bc move t9, s1                   |             t9 = s1;
    0x000402c0 move a0, s0                   |             a0 = s0;
    0x000402c4 bal 0x3b6b0                   |             sym_strlen ();
    0x000402c8 lw a0, 4(s4)                  |             a0 = *((s4 + 1));
    0x000402cc move t9, s5                   |             t9 = s5;
    0x000402d0 addu s0, s0, v0               |             s0 += v0;
    0x000402d4 bal 0x3fe9c                   |             sym_clnt_sperrno ();
    0x000402d8 move a1, v0                   |             a1 = v0;
    0x000402dc move a0, s0                   |             a0 = s0;
    0x000402e0 b 0x40328                     |             
                                             |         } else {
    0x000402e4 lw a1, -0x7fa8(gp)            |             a1 = *((gp - 8170));
    0x000402e8 move a0, s0                   |             a0 = s0;
    0x000402ec move t9, s2                   |             t9 = s2;
    0x000402f0 addiu a1, a1, -0x5c74         |             a1 += -0x5c74;
    0x000402f4 bal 0x3b600                   |             sym_strcpy ()
    0x000402f8 move t9, s1                   |             t9 = s1;
    0x000402fc move a0, s0                   |             a0 = s0;
    0x00040300 bal 0x3b6b0                   |             sym_strlen ();
    0x00040304 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00040308 lw a0, 8(s4)                  |             a0 = *((s4 + 2));
    0x0004030c addu s0, s0, v0               |             s0 += v0;
    0x00040310 lw t9, -0x7b90(gp)            |             t9 = *((gp - 7908));
    0x00040314 addiu a1, sp, 0x18            |             a1 = sp + 0x18;
    0x00040318 addiu a2, zero, 0x400         |             a2 = aav.0x00000400;
    0x0004031c bal 0x3bfe0                   |             sym_glibc_strerror_r ();
    0x00040320 move a0, s0                   |             a0 = s0;
    0x00040324 addiu a1, sp, 0x18            |             a1 = sp + 0x18;
                                             |         }
    0x00040328 move t9, s2                   |         t9 = s2;
    0x0004032c bal 0x3b600                   |         sym_strcpy ()
    0x00040330 nop                           |         
    0x00040334 move t9, s1                   |         t9 = s1;
    0x00040338 move a0, s0                   |         a0 = s0;
    0x0004033c bal 0x3b6b0                   |         sym_strlen ();
    0x00040340 addu s0, s0, v0               |         s0 += v0;
    0x00040344 addiu v0, zero, 0xa           |         v0 = 0xa;
                                             | label_0:
    0x00040348 sb v0, (s0)                   |         *(s0) = v0;
    0x0004034c sb zero, 1(s0)                |         *(var_1h) = 0;
                                             |     }
    0x00040350 lw ra, 0x434(sp)              |     ra = *(var_434h);
    0x00040354 move v0, s3                   |     v0 = s3;
    0x00040358 lw s5, 0x430(sp)              |     s5 = *(var_430h);
    0x0004035c lw s4, 0x42c(sp)              |     s4 = *(var_42ch);
    0x00040360 lw s3, 0x428(sp)              |     s3 = *(var_428h);
    0x00040364 lw s2, 0x424(sp)              |     s2 = *(var_424h);
    0x00040368 lw s1, 0x420(sp)              |     s1 = *(var_420h);
    0x0004036c lw s0, 0x41c(sp)              |     s0 = *(var_41ch);
    0x00040370 addiu sp, sp, 0x438           |     
    0x00040374 jr ra                         |     return v0;
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x3ff38 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.clnt_sperror ()          | void clnt_sperror () {
    0x0003ff38 lui gp, 7                 |     
    0x0003ff3c addiu gp, gp, 0x57a8      |     
    0x0003ff40 addu gp, gp, t9           |     gp += t9;
    0x0003ff44 lw t9, -0x7b0c(gp)        |     t9 = *((gp - 7875));
    0x0003ff48 addiu sp, sp, -0x448      |     
    0x0003ff4c sw s0, 0x430(sp)          |     *(var_430h) = s0;
    0x0003ff50 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x0003ff54 sw a0, 0x428(sp)          |     *(var_428h) = a0;
    0x0003ff58 sw ra, 0x444(sp)          |     *(var_444h) = ra;
    0x0003ff5c sw s4, 0x440(sp)          |     *(var_440h) = s4;
    0x0003ff60 sw s3, 0x43c(sp)          |     *(var_43ch) = s3;
    0x0003ff64 sw s2, 0x438(sp)          |     *(var_438h) = s2;
    0x0003ff68 sw s1, 0x434(sp)          |     *(var_434h) = s1;
    0x0003ff6c addiu t9, t9, -0x1c0      |     t9 += -aav.0x000001c0;
    0x0003ff70 move s0, a1               |     s0 = a1;
    0x0003ff74 bal 0x3fe40               |     fcn_0003fe40 ();
    0x0003ff78 lw a0, 0x428(sp)          |     a0 = *(var_428h);
                                         |     if (v0 != 0) {
    0x0003ff7c beqz v0, 0x40164          |         
    0x0003ff80 move s1, v0               |         s1 = v0;
    0x0003ff84 lw v0, 4(a0)              |         v0 = *((a0 + 1));
    0x0003ff88 lw t9, 8(v0)              |         t9 = *((v0 + 2));
    0x0003ff8c addiu a1, sp, 0x418       |         a1 = sp + aav.0x00000418;
    0x0003ff90 jalr t9                   |         t9 ();
    0x0003ff94 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x0003ff98 move a2, s0               |         a2 = s0;
    0x0003ff9c move a0, s1               |         a0 = s1;
    0x0003ffa0 lw a1, -0x7fa8(gp)        |         a1 = *((gp - 8170));
    0x0003ffa4 lw s2, -0x7f70(gp)        |         s2 = *((gp - 8156));
    0x0003ffa8 move t9, s2               |         t9 = s2;
    0x0003ffac addiu a1, a1, -0x7f00     |         a1 += -0x7f00;
    0x0003ffb0 bal 0x2f930               |         sym_sprintf ();
    0x0003ffb4 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x0003ffb8 lw a0, 0x418(sp)          |         a0 = *(format);
    0x0003ffbc lw t9, -0x7a68(gp)        |         t9 = *((gp - 7834));
    0x0003ffc0 addu s0, s1, v0           |         s0 = s1 + v0;
    0x0003ffc4 bal 0x3fe9c               |         sym_clnt_sperrno ();
    0x0003ffc8 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x0003ffcc move a0, s0               |         a0 = s0;
    0x0003ffd0 lw t9, -0x7f44(gp)        |         t9 = *((gp - 8145));
    0x0003ffd4 move a1, v0               |         a1 = v0;
    0x0003ffd8 bal 0x3b600               |         sym_strcpy ()
    0x0003ffdc lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x0003ffe0 lw t9, -0x7fdc(gp)        |         t9 = *((gp - 8183));
    0x0003ffe4 move a0, s0               |         a0 = s0;
    0x0003ffe8 bal 0x3b6b0               |         sym_strlen ();
    0x0003ffec addu s0, s0, v0           |         s0 += v0;
    0x0003fff0 lw v0, 0x418(sp)          |         v0 = *(format);
    0x0003fff4 sltiu v1, v0, 0x12        |         v1 = (v0 < 0x12) ? 1 : 0;
    0x0003fff8 j 0x6f00040               |         void (*0x6f00040)() ();
                                         |         if (v1 != 0) {
    0x0003fffc beqz v1, 0x4012c          |             
    0x00040000 lw zero, (t8)             |             0 = *(t8);
    0x00040004 sll v0, v0, 2             |             v0 <<= 2;
    0x00040008 addiu v1, v1, -0x5c70     |             v1 += -0x5c70;
    0x0004000c addu v0, v1, v0           |             v0 = v1 + v0;
    0x00040010 lw v0, (v0)               |             v0 = *(v0);
    0x00040014 addu v0, v0, gp           |             v0 += gp;
    0x00040018 jr v0                     |             v0 ();
    0x0004001c nop                       |             
                                         |         }
    0x0004012c lw a1, -0x7fa8(gp)        |         a1 = *((gp - 8170));
    0x00040130 lw a2, 0x41c(sp)          |         a2 = *(var_41ch);
    0x00040134 lw a3, 0x420(sp)          |         a3 = *(var_420h);
    0x00040138 move a0, s0               |         a0 = s0;
    0x0004013c addiu a1, a1, -0x5c8c     |         a1 += -0x5c8c;
    0x00040140 move t9, s2               |         t9 = s2;
    0x00040144 bal 0x2f930               |         sym_sprintf ();
    0x00040148 nop                       |         
    0x0004014c addu s0, s0, v0           |         s0 += v0;
    0x00040150 addiu v0, zero, 0xa       |         v0 = 0xa;
    0x00040154 sb v0, (s0)               |         *(s0) = v0;
    0x00040158 sb zero, 1(s0)            |         *((s0 + 1)) = 0;
    0x0004015c move v0, s1               |         v0 = s1;
    0x00040160 b 0x40168                 |         
                                         |     } else {
    0x00040164 move v0, zero             |         v0 = 0;
                                         |     }
    0x00040168 lw ra, 0x444(sp)          |     ra = *(var_444h);
    0x0004016c lw s4, 0x440(sp)          |     s4 = *(var_440h);
    0x00040170 lw s3, 0x43c(sp)          |     s3 = *(var_43ch);
    0x00040174 lw s2, 0x438(sp)          |     s2 = *(var_438h);
    0x00040178 lw s1, 0x434(sp)          |     s1 = *(var_434h);
    0x0004017c lw s0, 0x430(sp)          |     s0 = *(var_430h);
    0x00040180 addiu sp, sp, 0x448       |     
    0x00040184 jr ra                     |     return v0;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x30010 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.ctermid ()               | void ctermid () {
    0x00030010 lui gp, 8                 |     
    0x00030014 addiu gp, gp, 0x56d0      |     
    0x00030018 addu gp, gp, t9           |     gp += t9;
    0x0003001c lw a1, -0x7fa8(gp)        |     a1 = *((gp - 8170));
                                         |     if (a0 == 0) {
    0x00030020 bnez a0, 0x3002c          |         
    0x00030024 lw a0, -0x7ecc(gp)        |         a0 = *((gp - 8115));
    0x00030028 addiu a0, a0, -0x9b0      |         a0 += -0x9b0;
                                         |     }
    0x0003002c lw t9, -0x7f44(gp)        |     t9 = *((gp - 8145));
    0x00030030 addiu a1, a1, -0x70a4     |     a1 += -0x70a4;
    0x00030034 b 0x3b600                 |     return void (*0x3b600)() ();
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x5880c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.ether_ntohost ()         | void ether_ntohost () {
    0x0005880c lui gp, 6                 |     
    0x00058810 addiu gp, gp, -0x312c     |     
    0x00058814 addu gp, gp, t9           |     gp += t9;
    0x00058818 addiu sp, sp, -0x140      |     
    0x0005881c sw s4, 0x130(sp)          |     *(var_130h) = s4;
    0x00058820 sw s3, 0x12c(sp)          |     *(var_12ch) = s3;
    0x00058824 move s4, a1               |     s4 = a1;
    0x00058828 move s3, a0               |     s3 = a0;
    0x0005882c lw a1, -0x7fa8(gp)        |     a1 = *((gp - 8170));
    0x00058830 lw a0, -0x7fa8(gp)        |     a0 = *((gp - 8170));
    0x00058834 lw t9, -0x7dd0(gp)        |     t9 = *((gp - 8052));
    0x00058838 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x0005883c sw ra, 0x13c(sp)          |     *(var_13ch) = ra;
    0x00058840 sw s6, 0x138(sp)          |     *(var_138h) = s6;
    0x00058844 sw s5, 0x134(sp)          |     *(var_134h) = s5;
    0x00058848 sw s2, 0x128(sp)          |     *(var_128h) = s2;
    0x0005884c sw s1, 0x124(sp)          |     *(var_124h) = s1;
    0x00058850 sw s0, 0x120(sp)          |     *(var_120h) = s0;
    0x00058854 addiu a0, a0, -0x49c8     |     a0 += -0x49c8;
    0x00058858 addiu a1, a1, -0x7aa4     |     a1 += -0x7aa4;
    0x0005885c jalr t9                   |     t9 ();
    0x00058860 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 != 0) {
    0x00058864 bnez v0, 0x588c0          |         goto label_0;
                                         |     }
    0x00058868 addiu s1, zero, -1        |     s1 = -1;
    0x0005886c b 0x58904                 |     goto label_1;
                                         |     do {
    0x00058870 addiu a0, sp, 0x18        |         a0 = sp + 0x18;
    0x00058874 addiu t9, s5, -0x7918     |         t9 = s5 + -0x7918;
    0x00058878 addiu a1, sp, 0x118       |         a1 = sp + aav.0x00000118;
    0x0005887c bal 0x586e8               |         fcn_000586e8 ();
    0x00058880 move s1, v0               |         s1 = v0;
                                         |         if (v0 != 0) {
    0x00058884 beqz v0, 0x588d0          |             
    0x00058888 move a0, s4               |             a0 = s4;
    0x0005888c addiu a1, sp, 0x118       |             a1 = sp + aav.0x00000118;
    0x00058890 move t9, s6               |             t9 = s6;
    0x00058894 addiu a2, zero, 6         |             a2 = 6;
    0x00058898 bal 0x3aaec               |             sym_bcmp ();
    0x0005889c lw gp, 0x10(sp)           |             gp = *(var_10h);
                                         |             if (v0 != 0) {
    0x000588a0 bnez v0, 0x588d0          |                 goto label_2;
                                         |             }
    0x000588a4 lw t9, -0x7f44(gp)        |             t9 = *((gp - 8145));
    0x000588a8 move a1, s1               |             a1 = s1;
    0x000588ac move a0, s3               |             a0 = s3;
    0x000588b0 bal 0x3b600               |             sym_strcpy ()
    0x000588b4 move s1, zero             |             s1 = 0;
    0x000588b8 lw gp, 0x10(sp)           |             gp = *(var_10h);
    0x000588bc b 0x588f0                 |             goto label_3;
                                         | label_0:
    0x000588c0 lw s2, -0x7dc8(gp)        |             s2 = *((gp - 8050));
    0x000588c4 lw s5, -0x77b4(gp)        |             s5 = *((gp - 7661));
    0x000588c8 lw s6, -0x7d80(gp)        |             s6 = *((gp - 8032));
    0x000588cc move s0, v0               |             s0 = v0;
                                         |         }
                                         | label_2:
    0x000588d0 addiu a0, sp, 0x18        |         a0 = sp + 0x18;
    0x000588d4 addiu a1, zero, 0x100     |         a1 = aav.0x00000100;
    0x000588d8 move t9, s2               |         t9 = s2;
    0x000588dc move a2, s0               |         a2 = s0;
    0x000588e0 jalr t9                   |         t9 ();
    0x000588e4 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x000588e8 bnez v0, 0x58870          |         
                                         |     } while (v0 != 0);
    0x000588ec addiu s1, zero, -1        |     s1 = -1;
                                         | label_3:
    0x000588f0 lw t9, -0x7dcc(gp)        |     t9 = *((gp - 8051));
    0x000588f4 move a0, s0               |     a0 = s0;
    0x000588f8 jalr t9                   |     t9 ();
    0x000588fc lw ra, 0x13c(sp)          |     ra = *(var_13ch);
    0x00058900 b 0x58908                 |     goto label_4;
                                         | label_1:
    0x00058904 lw ra, 0x13c(sp)          |     ra = *(var_13ch);
                                         | label_4:
    0x00058908 move v0, s1               |     v0 = s1;
    0x0005890c lw s6, 0x138(sp)          |     s6 = *(var_138h);
    0x00058910 lw s5, 0x134(sp)          |     s5 = *(var_134h);
    0x00058914 lw s4, 0x130(sp)          |     s4 = *(var_130h);
    0x00058918 lw s3, 0x12c(sp)          |     s3 = *(var_12ch);
    0x0005891c lw s2, 0x128(sp)          |     s2 = *(var_128h);
    0x00058920 lw s1, 0x124(sp)          |     s1 = *(var_124h);
    0x00058924 lw s0, 0x120(sp)          |     s0 = *(var_120h);
    0x00058928 addiu sp, sp, 0x140       |     
    0x0005892c jr ra                     |     return v0;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x549d0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.gethostbyaddr_r ()       | void gethostbyaddr_r () {
    0x000549d0 lui gp, 6                 |     
    0x000549d4 addiu gp, gp, 0xd10       |     
    0x000549d8 addu gp, gp, t9           |     gp += t9;
    0x000549dc addiu sp, sp, -0x90       |     
    0x000549e0 lw t9, 0xa8(sp)           |     t9 = *(arg_a8h);
    0x000549e4 sw gp, 0x20(sp)           |     *(var_20h) = gp;
    0x000549e8 sw s6, 0x80(sp)           |     *(var_80h) = s6;
    0x000549ec sw s3, 0x74(sp)           |     *(var_74h) = s3;
    0x000549f0 sw s0, 0x68(sp)           |     *(var_68h) = s0;
    0x000549f4 sw ra, 0x8c(sp)           |     *(var_8ch) = ra;
    0x000549f8 sw fp, 0x88(sp)           |     *(var_88h) = fp;
    0x000549fc sw s7, 0x84(sp)           |     *(var_84h) = s7;
    0x00054a00 sw s5, 0x7c(sp)           |     *(var_7ch) = s5;
    0x00054a04 sw s4, 0x78(sp)           |     *(var_78h) = s4;
    0x00054a08 sw s2, 0x70(sp)           |     *(var_70h) = s2;
    0x00054a0c sw s1, 0x6c(sp)           |     *(var_6ch) = s1;
    0x00054a10 lw s3, 0xa0(sp)           |     s3 = *(arg_a0h);
    0x00054a14 lw s6, 0xa4(sp)           |     s6 = *(arg_a4h);
    0x00054a18 lw s0, 0xac(sp)           |     s0 = *(arg_ach);
    0x00054a1c sw zero, (t9)             |     *(t9) = 0;
                                         |     if (a0 == 0) {
    0x00054a20 beqz a0, 0x54d10          |         goto label_0;
                                         |     }
    0x00054a24 addiu v0, zero, 2         |     v0 = 2;
    0x00054a28 move s7, a0               |     s7 = a0;
    0x00054a2c move s2, a1               |     s2 = a1;
    0x00054a30 move s5, a2               |     s5 = a2;
    0x00054a34 move s1, a3               |     s1 = a3;
                                         |     if (a2 != v0) {
    0x00054a38 beq a2, v0, 0x54a50       |         
    0x00054a3c addiu v0, zero, 0xa       |         v0 = 0xa;
    0x00054a40 addiu v0, zero, 0x16      |         v0 = 0x16;
                                         |         if (a2 != v0) {
    0x00054a44 bne a2, v0, 0x54d14       |             goto label_1;
                                         |         }
    0x00054a48 addiu v1, zero, 0x10      |         v1 = 0x10;
    0x00054a4c b 0x54a58                 |         
                                         |     } else {
    0x00054a50 addiu v0, zero, 0x16      |         v0 = 0x16;
    0x00054a54 addiu v1, zero, 4         |         v1 = 4;
                                         |     }
    0x00054a58 lw ra, 0x8c(sp)           |     ra = *(var_8ch);
                                         |     if (a1 != v1) {
    0x00054a5c bne a1, v1, 0x54d18       |         goto label_2;
                                         |     }
    0x00054a60 lw t9, 0xa8(sp)           |     t9 = *(arg_a8h);
    0x00054a64 sw s3, 0x10(sp)           |     *(var_10h) = s3;
    0x00054a68 sw s6, 0x14(sp)           |     *(var_14h) = s6;
    0x00054a6c sw t9, 0x18(sp)           |     *(var_18h) = t9;
    0x00054a70 lw t9, -0x7800(gp)        |     t9 = *((gp - 7680));
    0x00054a74 sw s0, 0x1c(sp)           |     *(var_1ch) = s0;
    0x00054a78 move a0, s7               |     a0 = s7;
    0x00054a7c move a1, s2               |     a1 = s2;
    0x00054a80 move a2, s5               |     a2 = s5;
    0x00054a84 move a3, s1               |     a3 = s1;
    0x00054a88 bal 0x54890               |     fcn_00054890 ();
    0x00054a8c lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == 0) {
    0x00054a90 beqz v0, 0x54d14          |         goto label_1;
                                         |     }
    0x00054a94 lw v1, (s0)               |     v1 = *(s0);
    0x00054a98 addiu a0, zero, 1         |     a0 = 1;
    0x00054a9c addiu a0, zero, 4         |     a0 = 4;
                                         |     if (v1 != a0) {
    0x00054aa0 beq v1, a0, 0x54aac       |         
    0x00054aa4 lw ra, 0x8c(sp)           |         ra = *(var_8ch);
                                         |         if (v1 != a0) {
    0x00054aa8 bne v1, a0, 0x54d18       |             goto label_2;
                                         |         }
                                         |     }
    0x00054aac addiu v0, zero, -1        |     v0 = -1;
    0x00054ab0 sltiu v1, s2, 0x11        |     v1 = (s2 < 0x11) ? 1 : 0;
    0x00054ab4 sw v0, (s0)               |     *(s0) = v0;
    0x00054ab8 addiu v0, zero, 0x22      |     v0 = 0x22;
                                         |     if (v1 == 0) {
    0x00054abc beqz v1, 0x54d14          |         goto label_1;
                                         |     }
    0x00054ac0 negu s4, s3               |     __asm ("negu s4, s3");
    0x00054ac4 andi s4, s4, 3            |     s4 &= 3;
    0x00054ac8 addiu s6, s6, -0x18       |     s6 += -0x18;
    0x00054acc subu s6, s6, s4           |     __asm ("subu s6, s6, s4");
    0x00054ad0 slti v1, s6, 0x100        |     v1 = (s6 < aav.0x00000100) ? 1 : 0;
    0x00054ad4 lw ra, 0x8c(sp)           |     ra = *(var_8ch);
                                         |     if (v1 != 0) {
    0x00054ad8 bnez v1, 0x54d18          |         goto label_2;
                                         |     }
    0x00054adc addu s4, s3, s4           |     s4 = s3 + s4;
    0x00054ae0 lw t9, -0x7ed4(gp)        |     t9 = *((gp - 8117));
    0x00054ae4 addiu a0, s4, 8           |     a0 = s4 + 8;
    0x00054ae8 sw zero, 4(s4)            |     *((s4 + 1)) = 0;
    0x00054aec sw a0, (s4)               |     *(s4) = a0;
    0x00054af0 move a1, s7               |     a1 = s7;
    0x00054af4 move a2, s2               |     a2 = s2;
    0x00054af8 bal 0x3a800               |     sym_memcpy ();
    0x00054afc addiu v0, zero, 2         |     v0 = 2;
    0x00054b00 addiu s3, s4, 0x18        |     s3 = s4 + 0x18;
    0x00054b04 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (s5 == v0) {
    0x00054b08 bne s5, v0, 0x54b40       |         
    0x00054b0c lbu v0, 1(s7)             |         v0 = *((s7 + 1));
    0x00054b10 lbu a2, 3(s7)             |         a2 = *((s7 + 3));
    0x00054b14 lbu a3, 2(s7)             |         a3 = *((s7 + 2));
    0x00054b18 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00054b1c lw a1, -0x7fa8(gp)        |         a1 = *((gp - 8170));
    0x00054b20 lbu v0, (s7)              |         v0 = *(s7);
    0x00054b24 lw t9, -0x7f70(gp)        |         t9 = *((gp - 8156));
    0x00054b28 move a0, s3               |         a0 = s3;
    0x00054b2c sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x00054b30 addiu a1, a1, -0x4a4c     |         a1 += -0x4a4c;
    0x00054b34 jalr t9                   |         t9 ();
    0x00054b38 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00054b3c b 0x54bb4                 |         goto label_3;
                                         |     }
    0x00054b40 lw t1, -0x7fa8(gp)        |     t1 = *((gp - 8170));
    0x00054b44 lw t9, -0x7f70(gp)        |     t9 = *((gp - 8156));
    0x00054b48 addiu t0, s2, -1          |     t0 = s2 + -1;
    0x00054b4c addu t0, s7, t0           |     t0 = s7 + t0;
    0x00054b50 move fp, s3               |     fp = s3;
    0x00054b54 addiu t1, t1, -0x4a30     |     t1 += -0x4a30;
                                         |     do {
    0x00054b58 lbu a3, (t0)              |         a3 = *(t0);
    0x00054b5c move a0, fp               |         a0 = fp;
    0x00054b60 move a1, t1               |         a1 = t1;
    0x00054b64 andi a2, a3, 0xf          |         a2 = a3 & 0xf;
    0x00054b68 sw t0, 0x58(sp)           |         *(var_58h) = t0;
    0x00054b6c sw t1, 0x5c(sp)           |         *(var_5ch) = t1;
    0x00054b70 sw t9, 0x60(sp)           |         *(var_60h) = t9;
    0x00054b74 srl a3, a3, 4             |         a3 >>= 4;
    0x00054b78 jalr t9                   |         t9 ();
    0x00054b7c lw t0, 0x58(sp)           |         t0 = *(var_58h);
    0x00054b80 addu fp, fp, v0           |         fp += v0;
    0x00054b84 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00054b88 addiu t0, t0, -1          |         t0 += -1;
    0x00054b8c sltu v0, t0, s7           |         v0 = (t0 < s7) ? 1 : 0;
    0x00054b90 lw t1, 0x5c(sp)           |         t1 = *(var_5ch);
    0x00054b94 lw t9, 0x60(sp)           |         t9 = *(var_60h);
    0x00054b98 beqz v0, 0x54b58          |         
                                         |     } while (v0 == 0);
    0x00054b9c lw a1, -0x7fa8(gp)        |     a1 = *((gp - 8170));
    0x00054ba0 lw t9, -0x7f44(gp)        |     t9 = *((gp - 8145));
    0x00054ba4 move a0, fp               |     a0 = fp;
    0x00054ba8 addiu a1, a1, -0x4a28     |     a1 += -0x4a28;
    0x00054bac bal 0x3b600               |     sym_strcpy ()
    0x00054bb0 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         | label_3:
    0x00054bb4 lw t9, -0x7fe4(gp)        |     t9 = *((gp - 8185));
    0x00054bb8 addiu fp, sp, 0x28        |     fp = sp + 0x28;
    0x00054bbc move a0, fp               |     a0 = fp;
    0x00054bc0 move a1, zero             |     a1 = 0;
    0x00054bc4 addiu a2, zero, 0x28      |     a2 = 0x28;
    0x00054bc8 bal 0x3a940               |     sym_memset ();
    0x00054bcc lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00054bd0 move s7, zero             |     s7 = 0;
                                         |     do {
    0x00054bd4 lw t9, -0x77fc(gp)        |         t9 = *((gp - 7679));
    0x00054bd8 move a0, s3               |         a0 = s3;
    0x00054bdc addiu a1, zero, 0xc       |         a1 = 0xc;
    0x00054be0 addiu a2, sp, 0x50        |         a2 = sp + 0x50;
    0x00054be4 move a3, fp               |         a3 = fp;
    0x00054be8 bal 0x532b0               |         fcn_000532b0 ();
    0x00054bec lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         |         if (v0 < 0) {
    0x00054bf0 bgez v0, 0x54bfc          |             
    0x00054bf4 addiu v0, zero, 1         |             v0 = 1;
    0x00054bf8 b 0x54d04                 |             goto label_4;
                                         |         }
    0x00054bfc lw t9, -0x7ce4(gp)        |         t9 = *((gp - 7993));
    0x00054c00 lw a1, 0x28(sp)           |         a1 = *(src);
    0x00054c04 move a0, s3               |         a0 = s3;
    0x00054c08 move a2, s6               |         a2 = s6;
    0x00054c0c sw v0, 0x58(sp)           |         *(var_58h) = v0;
    0x00054c10 bal 0x3b8e0               |         sym_strncpy ();
    0x00054c14 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00054c18 lw t9, -0x7668(gp)        |         t9 = *((gp - 7578));
    0x00054c1c lw a0, 0x28(sp)           |         a0 = *(src);
    0x00054c20 jalr t9                   |         t9 ();
    0x00054c24 lw v0, 0x2c(sp)           |         v0 = *(var_2ch);
    0x00054c28 addiu a0, zero, 5         |         a0 = 5;
    0x00054c2c lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00054c30 lw v1, 0x58(sp)           |         v1 = *(var_58h);
                                         |         if (v0 != a0) {
    0x00054c34 bne v0, a0, 0x54c98       |             goto label_5;
                                         |         }
    0x00054c38 addiu s7, s7, 1           |         s7++;
    0x00054c3c addiu v0, zero, 6         |         v0 = 6;
    0x00054c40 lw t9, -0x7828(gp)        |         t9 = *((gp - 7690));
                                         |         if (s7 == v0) {
    0x00054c44 bne s7, v0, 0x54c50       |             
    0x00054c48 addiu v0, zero, 3         |             v0 = 3;
    0x00054c4c b 0x54c8c                 |             goto label_6;
                                         |         }
    0x00054c50 lw a0, 0x50(sp)           |         a0 = *(var_50h);
    0x00054c54 lw a1, 0x40(sp)           |         a1 = *(var_40h);
    0x00054c58 move a2, v1               |         a2 = v1;
    0x00054c5c move a3, s3               |         a3 = s3;
    0x00054c60 sw s6, 0x10(sp)           |         *(var_10h) = s6;
    0x00054c64 bal 0x52cd0               |         fcn_00052cd0 ();
    0x00054c68 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00054c6c lw a0, 0x50(sp)           |         a0 = *(var_50h);
    0x00054c70 lw t9, -0x7668(gp)        |         t9 = *((gp - 7578));
    0x00054c74 sw v0, 0x58(sp)           |         *(var_58h) = v0;
    0x00054c78 jalr t9                   |         t9 ();
    0x00054c7c lw v0, 0x58(sp)           |         v0 = *(var_58h);
    0x00054c80 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00054c84 bgez v0, 0x54bd4          |         
                                         |     } while (v0 >= 0);
    0x00054c88 addiu v0, zero, 3         |     v0 = 3;
                                         | label_6:
    0x00054c8c sw v0, (s0)               |     *(s0) = v0;
    0x00054c90 addiu v0, zero, -1        |     v0 = -1;
    0x00054c94 b 0x54d14                 |     goto label_1;
                                         | label_5:
    0x00054c98 addiu a1, zero, 0xc       |     a1 = 0xc;
    0x00054c9c lw a0, 0x50(sp)           |     a0 = *(var_50h);
                                         |     if (v0 == a1) {
    0x00054ca0 bne v0, a1, 0x54cf4       |         
    0x00054ca4 lw t9, -0x7828(gp)        |         t9 = *((gp - 7690));
    0x00054ca8 lw a1, 0x40(sp)           |         a1 = *(var_40h);
    0x00054cac move a2, v1               |         a2 = v1;
    0x00054cb0 move a3, s3               |         a3 = s3;
    0x00054cb4 sw s6, 0x10(sp)           |         *(var_10h) = s6;
    0x00054cb8 bal 0x52cd0               |         fcn_00052cd0 ();
    0x00054cbc lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00054cc0 lw t9, -0x7668(gp)        |         t9 = *((gp - 7578));
    0x00054cc4 lw a0, 0x50(sp)           |         a0 = *(var_50h);
    0x00054cc8 jalr t9                   |         t9 ();
    0x00054ccc lw t9, 0xa8(sp)           |         t9 = *(arg_a8h);
    0x00054cd0 sw s3, (s1)               |         *(s1) = s3;
    0x00054cd4 sw s5, 8(s1)              |         *((s1 + 2)) = s5;
    0x00054cd8 sw s2, 0xc(s1)            |         *((s1 + 3)) = s2;
    0x00054cdc sw s4, 0x10(s1)           |         *((s1 + 4)) = s4;
    0x00054ce0 sw s4, 4(s1)              |         *((s1 + 1)) = s4;
    0x00054ce4 sw s1, (t9)               |         *(t9) = s1;
    0x00054ce8 move v0, zero             |         v0 = 0;
    0x00054cec sw zero, (s0)             |         *(s0) = 0;
    0x00054cf0 b 0x54d14                 |         
                                         |     } else {
    0x00054cf4 lw t9, -0x7668(gp)        |         t9 = *((gp - 7578));
    0x00054cf8 jalr t9                   |         t9 ();
    0x00054cfc nop                       |         
    0x00054d00 addiu v0, zero, 4         |         v0 = 4;
                                         | label_4:
    0x00054d04 sw v0, (s0)               |         *(s0) = v0;
    0x00054d08 addiu v0, zero, 2         |         v0 = 2;
    0x00054d0c b 0x54d14                 |         goto label_1;
                                         | label_0:
    0x00054d10 addiu v0, zero, 0x16      |         v0 = 0x16;
                                         |     }
                                         | label_1:
    0x00054d14 lw ra, 0x8c(sp)           |     ra = *(var_8ch);
                                         | label_2:
    0x00054d18 lw fp, 0x88(sp)           |     fp = *(var_88h);
    0x00054d1c lw s7, 0x84(sp)           |     s7 = *(var_84h);
    0x00054d20 lw s6, 0x80(sp)           |     s6 = *(var_80h);
    0x00054d24 lw s5, 0x7c(sp)           |     s5 = *(var_7ch);
    0x00054d28 lw s4, 0x78(sp)           |     s4 = *(var_78h);
    0x00054d2c lw s3, 0x74(sp)           |     s3 = *(var_74h);
    0x00054d30 lw s2, 0x70(sp)           |     s2 = *(var_70h);
    0x00054d34 lw s1, 0x6c(sp)           |     s1 = *(var_6ch);
    0x00054d38 lw s0, 0x68(sp)           |     s0 = *(var_68h);
    0x00054d3c addiu sp, sp, 0x90        |     
    0x00054d40 jr ra                     |     return v0;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x54d50 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.gethostbyname_r ()       | void gethostbyname_r () {
    0x00054d50 lui gp, 6                 |     
    0x00054d54 addiu gp, gp, 0x990       |     
    0x00054d58 addu gp, gp, t9           |     gp += t9;
    0x00054d5c addiu sp, sp, -0x90       |     
    0x00054d60 sw s6, 0x80(sp)           |     *(var_80h) = s6;
    0x00054d64 lw s6, 0xa0(sp)           |     s6 = *(arg_a0h);
    0x00054d68 sw gp, 0x20(sp)           |     *(var_20h) = gp;
    0x00054d6c sw s7, 0x84(sp)           |     *(var_84h) = s7;
    0x00054d70 sw s1, 0x6c(sp)           |     *(var_6ch) = s1;
    0x00054d74 sw ra, 0x8c(sp)           |     *(var_8ch) = ra;
    0x00054d78 sw fp, 0x88(sp)           |     *(var_88h) = fp;
    0x00054d7c sw s5, 0x7c(sp)           |     *(var_7ch) = s5;
    0x00054d80 sw s4, 0x78(sp)           |     *(var_78h) = s4;
    0x00054d84 sw s3, 0x74(sp)           |     *(var_74h) = s3;
    0x00054d88 sw s2, 0x70(sp)           |     *(var_70h) = s2;
    0x00054d8c sw s0, 0x68(sp)           |     *(var_68h) = s0;
    0x00054d90 lw s1, 0xa4(sp)           |     s1 = *(arg_a4h);
    0x00054d94 sw zero, (s6)             |     *(s6) = 0;
    0x00054d98 addiu s7, zero, 0x16      |     s7 = 0x16;
                                         |     if (a0 == 0) {
    0x00054d9c beqz a0, 0x55098          |         goto label_0;
                                         |     }
    0x00054da0 lw t0, -0x7564(gp)        |     t0 = *((gp - 7513));
    0x00054da4 rdhwr v1, 29              |     __asm ("rdhwr v1, 29");
    0x00054da8 lw t9, -0x77f8(gp)        |     t9 = *((gp - 7678));
    0x00054dac addu s3, t0, v1           |     s3 = t0 + v1;
    0x00054db0 move s0, a1               |     s0 = a1;
    0x00054db4 move s4, a2               |     s4 = a2;
    0x00054db8 lw fp, (s3)               |     fp = *(s3);
    0x00054dbc move s2, a3               |     s2 = a3;
    0x00054dc0 sw zero, (s3)             |     *(s3) = 0;
    0x00054dc4 addiu a1, zero, 2         |     a1 = 2;
    0x00054dc8 sw a3, 0x10(sp)           |     *(var_10h) = a3;
    0x00054dcc sw t0, 0x5c(sp)           |     *(var_5ch) = t0;
    0x00054dd0 sw s6, 0x14(sp)           |     *(var_14h) = s6;
    0x00054dd4 sw s1, 0x18(sp)           |     *(var_18h) = s1;
    0x00054dd8 move a2, s0               |     a2 = s0;
    0x00054ddc move a3, s4               |     a3 = s4;
    0x00054de0 move s5, a0               |     s5 = a0;
    0x00054de4 bal 0x54960               |     fcn_00054960 ();
    0x00054de8 move s7, v0               |     s7 = v0;
    0x00054dec lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00054df0 lw t0, 0x5c(sp)           |     t0 = *(var_5ch);
                                         |     if (v0 == 0) {
    0x00054df4 bnez v0, 0x54e00          |         
    0x00054df8 sw fp, (s3)               |         *(s3) = fp;
    0x00054dfc b 0x55098                 |         goto label_0;
                                         |     }
    0x00054e00 lw v0, (s1)               |     v0 = *(s1);
    0x00054e04 addiu v1, zero, 1         |     v1 = 1;
    0x00054e08 addiu v1, zero, 4         |     v1 = 4;
                                         |     if (v0 != v1) {
    0x00054e0c beq v0, v1, 0x54e28       |         
    0x00054e10 addiu v1, zero, -1        |         v1 = -1;
                                         |         if (v0 == v1) {
    0x00054e14 beq v0, v1, 0x54e40       |             goto label_1;
                                         |         }
    0x00054e18 lw ra, 0x8c(sp)           |         ra = *(var_8ch);
                                         |         if (v0 != v1) {
    0x00054e1c bne v0, v1, 0x5509c       |             goto label_2;
                                         |         }
    0x00054e20 lw v1, (s3)               |         v1 = *(s3);
    0x00054e24 b 0x54e34                 |         
                                         |     } else {
    0x00054e28 xori s7, s7, 2            |         s7 ^= 2;
    0x00054e2c sltiu s7, s7, 1           |         s7 = (s7 < 1) ? 1 : 0;
    0x00054e30 b 0x54e44                 |         goto label_3;
                                         |     }
    0x00054e34 addiu v0, zero, 2         |     v0 = 2;
    0x00054e38 lw ra, 0x8c(sp)           |     ra = *(var_8ch);
                                         |     if (v1 != v0) {
    0x00054e3c bne v1, v0, 0x5509c       |         goto label_2;
                                         |     }
                                         | label_1:
    0x00054e40 move s7, zero             |     s7 = 0;
                                         | label_3:
    0x00054e44 rdhwr v1, 29              |     __asm ("rdhwr v1, 29");
    0x00054e48 lw t9, -0x7fdc(gp)        |     t9 = *((gp - 8183));
    0x00054e4c addu t0, t0, v1           |     t0 += v1;
    0x00054e50 addiu v0, zero, -1        |     v0 = -1;
    0x00054e54 sw fp, (t0)               |     *(t0) = fp;
    0x00054e58 sw v1, 0x58(sp)           |     *(var_58h) = v1;
    0x00054e5c sw v0, (s1)               |     *(s1) = v0;
    0x00054e60 move a0, s5               |     a0 = s5;
    0x00054e64 bal 0x3b6b0               |     sym_strlen ();
    0x00054e68 addiu fp, v0, 1           |     fp = v0 + 1;
    0x00054e6c slt v0, fp, s2            |     v0 = (fp < s2) ? 1 : 0;
    0x00054e70 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00054e74 bnez v0, 0x54e80          |     
                                         |     while (a0 != 0) {
    0x00054e78 addiu s7, zero, 0x22      |         s7 = 0x22;
    0x00054e7c b 0x55098                 |         goto label_0;
    0x00054e80 lw t9, -0x7ed4(gp)        |         t9 = *((gp - 8117));
    0x00054e84 move a0, s4               |         a0 = s4;
    0x00054e88 move a2, fp               |         a2 = fp;
    0x00054e8c move a1, s5               |         a1 = s5;
    0x00054e90 bal 0x3a800               |         sym_memcpy ();
    0x00054e94 addu v0, s4, fp           |         v0 = s4 + fp;
    0x00054e98 negu s3, v0               |         __asm ("negu s3, v0");
    0x00054e9c subu s2, s2, fp           |         __asm ("subu s2, s2, fp");
    0x00054ea0 andi s3, s3, 3            |         s3 &= 3;
    0x00054ea4 subu v1, s2, s3           |         __asm ("subu v1, s2, s3");
    0x00054ea8 addiu fp, v1, -8          |         fp = v1 + -8;
    0x00054eac slti a0, fp, 0x100        |         a0 = (fp < aav.0x00000100) ? 1 : 0;
    0x00054eb0 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00054eb4 bnez a0, 0x54e78          |         
                                         |     }
    0x00054eb8 addu s3, v0, s3           |     s3 = v0 + s3;
    0x00054ebc lw t9, -0x7860(gp)        |     t9 = *((gp - 7704));
    0x00054ec0 addiu a2, s3, 0x10        |     a2 = s3 + 0x10;
    0x00054ec4 sw s4, (s3)               |     *(s3) = s4;
    0x00054ec8 sw zero, 4(s3)            |     *((s3 + 1)) = 0;
    0x00054ecc move a1, a2               |     a1 = a2;
    0x00054ed0 sw v1, 0x5c(sp)           |     *(var_5ch) = v1;
    0x00054ed4 sw a2, 0x60(sp)           |     *(var_60h) = a2;
    0x00054ed8 move a0, s5               |     a0 = s5;
    0x00054edc bal 0x526a0               |     sym_inet_aton ();
    0x00054ee0 addiu s2, s3, 8           |     s2 = s3 + 8;
    0x00054ee4 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00054ee8 lw v1, 0x5c(sp)           |     v1 = *(var_5ch);
    0x00054eec lw a2, 0x60(sp)           |     a2 = *(var_60h);
                                         |     if (v0 != 0) {
    0x00054ef0 beqz v0, 0x54f28          |         
    0x00054ef4 addiu v0, zero, 2         |         v0 = 2;
    0x00054ef8 sw a2, 8(s3)              |         *((s3 + 2)) = a2;
    0x00054efc sw zero, 0xc(s3)          |         *((s3 + 3)) = 0;
    0x00054f00 sw v0, 8(s0)              |         *((s0 + 2)) = v0;
    0x00054f04 addiu v0, zero, 4         |         v0 = 4;
    0x00054f08 sw s4, (s0)               |         *(s0) = s4;
    0x00054f0c sw s3, 4(s0)              |         *((s0 + 1)) = s3;
    0x00054f10 sw v0, 0xc(s0)            |         *((s0 + 3)) = v0;
    0x00054f14 sw s2, 0x10(s0)           |         *((s0 + 4)) = s2;
    0x00054f18 move s7, zero             |         s7 = 0;
    0x00054f1c sw s0, (s6)               |         *(s6) = s0;
    0x00054f20 sw zero, (s1)             |         *(s1) = 0;
    0x00054f24 b 0x55098                 |         goto label_0;
                                         |     }
    0x00054f28 addiu v0, zero, 1         |     v0 = 1;
                                         |     if (s7 == 0) {
    0x00054f2c bnez s7, 0x54f64          |         
    0x00054f30 lw t9, -0x77fc(gp)        |         t9 = *((gp - 7679));
    0x00054f34 addiu v1, v1, -0x14       |         v1 += -0x14;
    0x00054f38 sw s2, 0x44(sp)           |         *(var_44h) = s2;
    0x00054f3c sw v1, 0x48(sp)           |         *(var_48h) = v1;
    0x00054f40 sw zero, 0x4c(sp)         |         *(var_4ch) = 0;
    0x00054f44 move a0, s5               |         a0 = s5;
    0x00054f48 addiu a1, zero, 1         |         a1 = 1;
    0x00054f4c addiu a2, sp, 0x50        |         a2 = sp + 0x50;
    0x00054f50 addiu a3, sp, 0x28        |         a3 = sp + 0x28;
    0x00054f54 bal 0x532b0               |         fcn_000532b0 ();
    0x00054f58 lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         |         if (v0 >= 0) {
    0x00054f5c bgez v0, 0x54f70          |             goto label_4;
                                         |         }
    0x00054f60 addiu v0, zero, 1         |         v0 = 1;
                                         |     }
    0x00054f64 sw v0, (s1)               |     *(s1) = v0;
    0x00054f68 addiu s7, zero, 2         |     s7 = 2;
    0x00054f6c b 0x55098                 |     goto label_0;
                                         | label_4:
    0x00054f70 lw v1, 0x2c(sp)           |     v1 = *(var_2ch);
    0x00054f74 addiu v0, zero, 1         |     v0 = 1;
    0x00054f78 lw v1, -0x7570(gp)        |     v1 = *((gp - 7516));
                                         |     if (v1 != v0) {
    0x00054f7c bne v1, v0, 0x55068       |         goto label_5;
                                         |     }
    0x00054f80 lw v0, 0x4c(sp)           |     v0 = *(var_4ch);
    0x00054f84 lw a2, 0x38(sp)           |     a2 = *(var_38h);
    0x00054f88 addiu s5, v0, 3           |     s5 = v0 + 3;
    0x00054f8c mul a2, v0, a2            |     __asm ("mul a2, v0, a2");
    0x00054f90 sll s5, s5, 2             |     s5 <<= 2;
    0x00054f94 addu v0, s5, a2           |     v0 = s5 + a2;
    0x00054f98 subu fp, fp, v0           |     __asm ("subu fp, fp, v0");
    0x00054f9c addiu s7, zero, 0x22      |     s7 = 0x22;
                                         |     if (fp < 0) {
    0x00054fa0 bltz fp, 0x5507c          |         goto label_6;
                                         |     }
    0x00054fa4 lw t9, -0x7f04(gp)        |     t9 = *((gp - 8129));
    0x00054fa8 addu a0, s2, s5           |     a0 = s2 + s5;
    0x00054fac move a1, s2               |     a1 = s2;
    0x00054fb0 bal 0x3aeb0               |     sym_memmove ();
    0x00054fb4 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00054fb8 addiu s5, s5, -4          |     s5 += -4;
    0x00054fbc lw a1, 0x3c(sp)           |     a1 = *(s2);
    0x00054fc0 lw t9, -0x7ed4(gp)        |     t9 = *((gp - 8117));
    0x00054fc4 addu s5, s2, s5           |     s5 = s2 + s5;
    0x00054fc8 move a0, s5               |     a0 = s5;
    0x00054fcc addiu a2, zero, 4         |     a2 = 4;
    0x00054fd0 bal 0x3a800               |     sym_memcpy ();
    0x00054fd4 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00054fd8 move v0, zero             |     v0 = 0;
    0x00054fdc b 0x54fec                 |     
                                         |     while (a0 == 0) {
    0x00054fe0 sw s5, (v1)               |         *(v1) = s5;
    0x00054fe4 addiu v0, v0, 1           |         v0++;
    0x00054fe8 addiu s5, s5, 4           |         s5 += 4;
    0x00054fec lw a0, 0x4c(sp)           |         a0 = *(var_4ch);
    0x00054ff0 sll v1, v0, 2             |         v1 = v0 << 2;
    0x00054ff4 sltu a0, a0, v0           |         a0 = (a0 < v0) ? 1 : 0;
    0x00054ff8 addu v1, s2, v1           |         v1 = s2 + v1;
    0x00054ffc beqz a0, 0x54fe0          |         
                                         |     }
    0x00055000 lw s7, 0x28(sp)           |     s7 = *(var_28h);
    0x00055004 sw zero, (v1)             |     *(v1) = 0;
                                         |     if (s7 != 0) {
    0x00055008 beqz s7, 0x5503c          |         
    0x0005500c lw t9, -0x7fdc(gp)        |         t9 = *((gp - 8183));
    0x00055010 move a0, s7               |         a0 = s7;
    0x00055014 bal 0x3b6b0               |         sym_strlen ();
    0x00055018 sltu v0, v0, fp           |         v0 = (v0 < fp) ? 1 : 0;
    0x0005501c lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         |         if (v0 == 0) {
    0x00055020 beqz v0, 0x5503c          |             goto label_7;
                                         |         }
    0x00055024 lw t9, -0x7f44(gp)        |         t9 = *((gp - 8145));
    0x00055028 move a0, s5               |         a0 = s5;
    0x0005502c move a1, s7               |         a1 = s7;
    0x00055030 bal 0x3b600               |         sym_strcpy ()
    0x00055034 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00055038 move s4, s5               |         s4 = s5;
                                         |     }
                                         | label_7:
    0x0005503c addiu v0, zero, 2         |     v0 = 2;
    0x00055040 sw v0, 8(s0)              |     *((s0 + 2)) = v0;
    0x00055044 addiu v0, zero, 4         |     v0 = 4;
    0x00055048 sw s4, (s0)               |     *(s0) = s4;
    0x0005504c sw s3, 4(s0)              |     *((s0 + 1)) = s3;
    0x00055050 sw v0, 0xc(s0)            |     *((s0 + 3)) = v0;
    0x00055054 sw s2, 0x10(s0)           |     *((s0 + 4)) = s2;
    0x00055058 move s7, zero             |     s7 = 0;
    0x0005505c sw s0, (s6)               |     *(s6) = s0;
    0x00055060 sw zero, (s1)             |     *(s1) = 0;
    0x00055064 b 0x5507c                 |     goto label_6;
                                         | label_5:
    0x00055068 lw t9, 0x58(sp)           |     t9 = *(var_58h);
    0x0005506c sw v0, (s1)               |     *(s1) = v0;
    0x00055070 addiu s7, zero, 2         |     s7 = 2;
    0x00055074 addu v1, v1, t9           |     v1 += t9;
    0x00055078 sw v0, (v1)               |     *(v1) = v0;
                                         | label_6:
    0x0005507c lw t9, -0x7668(gp)        |     t9 = *((gp - 7578));
    0x00055080 lw a0, 0x28(sp)           |     a0 = *(var_28h);
    0x00055084 jalr t9                   |     t9 ();
    0x00055088 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x0005508c lw t9, -0x7668(gp)        |     t9 = *((gp - 7578));
    0x00055090 lw a0, 0x50(sp)           |     a0 = *(var_50h);
    0x00055094 jalr t9                   |     t9 ();
                                         | label_0:
    0x00055098 lw ra, 0x8c(sp)           |     ra = *(var_8ch);
                                         | label_2:
    0x0005509c move v0, s7               |     v0 = s7;
    0x000550a0 lw fp, 0x88(sp)           |     fp = *(var_88h);
    0x000550a4 lw s7, 0x84(sp)           |     s7 = *(var_84h);
    0x000550a8 lw s6, 0x80(sp)           |     s6 = *(var_80h);
    0x000550ac lw s5, 0x7c(sp)           |     s5 = *(var_7ch);
    0x000550b0 lw s4, 0x78(sp)           |     s4 = *(var_78h);
    0x000550b4 lw s3, 0x74(sp)           |     s3 = *(var_74h);
    0x000550b8 lw s2, 0x70(sp)           |     s2 = *(var_70h);
    0x000550bc lw s1, 0x6c(sp)           |     s1 = *(var_6ch);
    0x000550c0 lw s0, 0x68(sp)           |     s0 = *(var_68h);
    0x000550c4 addiu sp, sp, 0x90        |     
    0x000550c8 jr ra                     |     return v0;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x52094 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.inet_ntop ()                 | void inet_ntop () {
    0x00052094 lui gp, 6                     |     
    0x00052098 addiu gp, gp, 0x364c          |     
    0x0005209c addu gp, gp, t9               |     gp += t9;
    0x000520a0 addiu sp, sp, -0x98           |     
    0x000520a4 addiu v0, zero, 2             |     v0 = 2;
    0x000520a8 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x000520ac sw ra, 0x94(sp)               |     *(var_94h) = ra;
    0x000520b0 sw fp, 0x90(sp)               |     *(var_90h) = fp;
    0x000520b4 sw s7, 0x8c(sp)               |     *(var_8ch) = s7;
    0x000520b8 sw s6, 0x88(sp)               |     *(var_88h) = s6;
    0x000520bc sw s5, 0x84(sp)               |     *(var_84h) = s5;
    0x000520c0 sw s4, 0x80(sp)               |     *(var_80h) = s4;
    0x000520c4 sw s3, 0x7c(sp)               |     *(var_7ch) = s3;
    0x000520c8 sw s2, 0x78(sp)               |     *(var_78h) = s2;
    0x000520cc sw s1, 0x74(sp)               |     *(var_74h) = s1;
    0x000520d0 sw s0, 0x70(sp)               |     *(var_70h) = s0;
    0x000520d4 lw t9, -0x7904(gp)            |     t9 = *((gp - 7745));
                                             |     if (a0 != v0) {
    0x000520d8 beq a0, v0, 0x520f0           |         
    0x000520dc addiu v0, zero, 0xa           |         v0 = 0xa;
    0x000520e0 lw t9, -0x7fe4(gp)            |         t9 = *((gp - 8185));
                                             |         if (a0 != v0) {
    0x000520e4 bne a0, v0, 0x52388           |             goto label_1;
                                             |         }
    0x000520e8 addiu a0, sp, 0x48            |         a0 = sp + 0x48;
    0x000520ec b 0x5210c                     |         
                                             |     } else {
    0x000520f0 move a0, a1                   |         a0 = a1;
    0x000520f4 move a1, a2                   |         a1 = a2;
    0x000520f8 addiu t9, t9, 0x1f30          |         t9 += aav.0x00001f30;
    0x000520fc move a2, a3                   |         a2 = a3;
    0x00052100 bal 0x51f30                   |         fcn_00051f30 ();
    0x00052104 b 0x52380                     |         goto label_2;
    0x00052108 nop                           |         
                                             |     }
    0x0005210c move s6, a1                   |     s6 = a1;
    0x00052110 move s4, a2                   |     s4 = a2;
    0x00052114 move a1, zero                 |     a1 = 0;
    0x00052118 addiu a2, zero, 0x20          |     a2 = 0x20;
    0x0005211c move s5, a3                   |     s5 = a3;
    0x00052120 bal 0x3a940                   |     sym_memset ();
    0x00052124 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00052128 move v0, zero                 |     v0 = 0;
    0x0005212c addiu a0, zero, 0x10          |     a0 = 0x10;
                                             |     do {
    0x00052130 sra a1, v0, 1                 |         a1 = v0 >> 1;
    0x00052134 addiu v1, sp, 0x18            |         v1 = sp + 0x18;
    0x00052138 sll a1, a1, 2                 |         a1 <<= 2;
    0x0005213c addu a1, v1, a1               |         a1 = v1 + a1;
    0x00052140 addu v1, s6, v0               |         v1 = s6 + v0;
    0x00052144 lbu a2, 1(v1)                 |         a2 = *((v1 + 1));
    0x00052148 lbu v1, (v1)                  |         v1 = *(v1);
    0x0005214c addiu v0, v0, 2               |         v0 += 2;
    0x00052150 sll v1, v1, 8                 |         v1 <<= 8;
    0x00052154 or v1, a2, v1                 |         v1 = a2 | v1;
    0x00052158 sw v1, 0x30(a1)               |         *(var_48h) = v1;
    0x0005215c bne v0, a0, 0x52130           |         
                                             |     } while (v0 != a0);
    0x00052160 addiu s1, zero, -1            |     s1 = -1;
    0x00052164 addiu v0, zero, -1            |     v0 = -1;
    0x00052168 move v1, zero                 |     v1 = 0;
    0x0005216c addiu a0, zero, -1            |     a0 = -1;
    0x00052170 addiu a1, zero, 8             |     a1 = 8;
    0x00052174 sll a2, v1, 2                 |     a2 = v1 << 2;
                                             |     do {
    0x00052178 addiu a3, sp, 0x18            |         a3 = sp + 0x18;
    0x0005217c addu a2, a3, a2               |         a2 = a3 + a2;
    0x00052180 lw a2, 0x30(a2)               |         a2 = *(var_48h);
                                             |         if (a2 == 0) {
    0x00052184 bnez a2, 0x5219c              |             
    0x00052188 nop                           |             
                                             |             if (v0 != a0) {
    0x0005218c beql v0, a0, 0x521bc          |                 
    0x00052190 move v0, v1                   |                 v0 = v1;
    0x00052194 addiu s3, s3, 1               |                 s3++;
    0x00052198 b 0x521d0                     |                 
                                             |                 if (v0 == a0) {
                                             |                 } else {
    0x0005219c beql v0, a0, 0x521d4          |                     goto label_3;
                                             |                 }
    0x000521a0 addiu v1, v1, 1               |                 v1++;
    0x000521a4 slt a2, s2, s3                |                 a2 = (s2 < s3) ? 1 : 0;
                                             |                 if (s1 != a0) {
    0x000521a8 beq s1, a0, 0x521c4           |                     
    0x000521ac move s2, s3                   |                     s2 = s3;
                                             |                     if (a2 != 0) {
    0x000521b0 bnel a2, zero, 0x521c8        |                         
    0x000521b4 addiu v0, zero, -1            |                         v0 = -1;
    0x000521b8 b 0x521d0                     |                         
                                             |                     } else {
    0x000521bc addiu s3, zero, 1             |                         s3 = 1;
                                             |                     }
    0x000521c0 b 0x521d0                     |                     
                                             |                 } else {
    0x000521c4 move s2, s3                   |                     s2 = s3;
                                             |                 }
    0x000521c8 move s1, v0                   |                 s1 = v0;
    0x000521cc addiu v0, zero, -1            |                 v0 = -1;
                                             |             }
                                             |         }
    0x000521d0 addiu v1, v1, 1               |         v1++;
                                             | label_3:
    0x000521d4 sll a2, v1, 2                 |         a2 = v1 << 2;
    0x000521d8 bne v1, a1, 0x52178           |         
                                             |     } while (v1 != a1);
    0x000521dc addiu v1, zero, -1            |     v1 = -1;
                                             |     if (v0 != v1) {
    0x000521e0 beq v0, v1, 0x521fc           |         
    0x000521e4 nop                           |         
    0x000521e8 slt v1, s2, s3                |         v1 = (s2 < s3) ? 1 : 0;
                                             |         if (s1 == v1) {
    0x000521ec beq s1, v1, 0x523a8           |             goto label_4;
                                             |         }
                                             |         if (v1 != 0) {
    0x000521f0 movz v0, s1, v1               |             v0 = s1;
                                             |         }
                                             |         if (v1 == 0) {
    0x000521f4 movn s2, s3, v1               |             s2 = s3;
                                             |         }
    0x000521f8 b 0x523ac                     |         goto label_5;
                                             |     }
    0x000521fc lw v1, -0x7fa8(gp)            |     v1 = *((gp - 8170));
                                             |     if (s1 != v0) {
    0x00052200 beq s1, v0, 0x52214           |         
                                             | label_0:
    0x00052204 slti v1, s2, 2                |         v1 = (s2 < 2) ? 1 : 0;
    0x00052208 addiu v0, zero, -1            |         v0 = -1;
                                             |         if (v1 == 0) {
    0x0005220c movn s1, v0, v1               |             s1 = v0;
                                             |         }
    0x00052210 lw v1, -0x7fa8(gp)            |         v1 = *((gp - 8170));
                                             |     }
    0x00052214 lw t9, -0x7f70(gp)            |     t9 = *((gp - 8156));
    0x00052218 addiu s0, sp, 0x18            |     s0 = sp + 0x18;
    0x0005221c move s3, zero                 |     s3 = 0;
    0x00052220 move fp, s0                   |     fp = s0;
    0x00052224 addiu s7, v1, -0x4b10         |     s7 = v1 + -0x4b10;
    0x00052228 addu a3, s1, s2               |     a3 = s1 + s2;
    0x0005222c addiu v0, zero, -1            |     v0 = -1;
                                             |     do {
    0x00052230 slt v0, s3, s1                |         v0 = (s3 < s1) ? 1 : 0;
                                             |         if (s1 != v0) {
    0x00052234 beq s1, v0, 0x52260           |             
    0x00052238 slt v0, s3, a3                |             v0 = (s3 < a3) ? 1 : 0;
                                             |             if (v0 == 0) {
    0x0005223c bnez v0, 0x52260              |                 
                                             |                 if (v0 == 0) {
    0x00052240 beqz v0, 0x52260              |                     goto label_6;
                                             |                 }
    0x00052244 nop                           |                 
    0x00052248 addiu s3, s3, 1               |                 s3++;
                                             |                 if (s3 == s1) {
    0x0005224c bnel s3, s1, 0x52314          |                     goto label_7;
                                             |                 }
    0x00052250 addiu v0, zero, 0x3a          |                 v0 = 0x3a;
    0x00052254 sb v0, (s0)                   |                 *(s0) = v0;
    0x00052258 addiu s0, s0, 1               |                 s0++;
    0x0005225c b 0x52310                     |                 
                                             |             }
                                             |         } else {
                                             | label_6:
    0x00052260 sll v0, s3, 2                 |             v0 = s3 << 2;
                                             |             if (s3 != 0) {
    0x00052264 beqz s3, 0x522e4              |                 
    0x00052268 addiu v0, zero, 0x3a          |                 v0 = 0x3a;
    0x0005226c sb v0, (s0)                   |                 *(s0) = v0;
    0x00052270 addiu v0, zero, 6             |                 v0 = 6;
    0x00052274 addiu s0, s0, 1               |                 s0++;
                                             |                 if (s3 == v0) {
    0x00052278 bne s3, v0, 0x522e0           |                     
    0x0005227c sll v0, s3, 2                 |                     v0 = s3 << 2;
                                             |                     if (s1 != 0) {
    0x00052280 bnez s1, 0x522e4              |                         goto label_8;
                                             |                     }
    0x00052284 addiu v0, zero, 5             |                     v0 = 5;
                                             |                     if (s2 != s3) {
    0x00052288 beq s2, s3, 0x522a4           |                         
    0x0005228c sll v0, s3, 2                 |                         v0 = s3 << 2;
                                             |                         if (s2 != v0) {
    0x00052290 bne s2, v0, 0x522e4           |                             goto label_8;
                                             |                         }
    0x00052294 lw a0, 0x5c(sp)               |                         a0 = *(var_5ch);
    0x00052298 ori v0, zero, 0xffff          |                         v0 = 0xffff;
    0x0005229c sll v0, s3, 2                 |                         v0 = s3 << 2;
                                             |                         if (a0 != v0) {
    0x000522a0 bne a0, v0, 0x522e4           |                             goto label_8;
                                             |                         }
                                             |                     }
    0x000522a4 lw t9, -0x7904(gp)            |                     t9 = *((gp - 7745));
    0x000522a8 subu a2, sp, s0               |                     __asm ("subu a2, sp, s0");
    0x000522ac addiu a0, s6, 0xc             |                     a0 = s6 + 0xc;
    0x000522b0 move a1, s0                   |                     a1 = s0;
    0x000522b4 addiu t9, t9, 0x1f30          |                     t9 += aav.0x00001f30;
    0x000522b8 addiu a2, a2, 0x46            |                     a2 += 0x46;
    0x000522bc bal 0x51f30                   |                     fcn_00051f30 ();
    0x000522c0 lw gp, 0x10(sp)               |                     gp = *(var_10h);
                                             |                     if (v0 == 0) {
    0x000522c4 beqz v0, 0x523a0              |                         goto label_9;
                                             |                     }
    0x000522c8 lw t9, -0x7fdc(gp)            |                     t9 = *((gp - 8183));
    0x000522cc move a0, s0                   |                     a0 = s0;
    0x000522d0 bal 0x3b6b0                   |                     sym_strlen ();
    0x000522d4 addu s0, s0, v0               |                     s0 += v0;
    0x000522d8 lw gp, 0x10(sp)               |                     gp = *(var_10h);
    0x000522dc b 0x52328                     |                     goto label_10;
                                             |                 }
    0x000522e0 sll v0, s3, 2                 |                 v0 = s3 << 2;
                                             |             }
                                             | label_8:
    0x000522e4 addu v0, fp, v0               |             v0 = fp + v0;
    0x000522e8 lw a2, 0x30(v0)               |             a2 = *(var_48h);
    0x000522ec move a0, s0                   |             a0 = s0;
    0x000522f0 sw a3, 0x6c(sp)               |             *(var_6ch) = a3;
    0x000522f4 sw t9, 0x68(sp)               |             *(var_68h) = t9;
    0x000522f8 move a1, s7                   |             a1 = s7;
    0x000522fc jalr t9                       |             t9 ();
    0x00052300 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00052304 lw t9, 0x68(sp)               |             t9 = *(var_68h);
    0x00052308 lw a3, 0x6c(sp)               |             a3 = *(var_6ch);
    0x0005230c addu s0, s0, v0               |             s0 += v0;
                                             |         }
    0x00052310 addiu s3, s3, 1               |         s3++;
                                             | label_7:
    0x00052314 addiu v0, zero, 8             |         v0 = 8;
    0x00052318 addiu v0, zero, -1            |         v0 = -1;
    0x0005231c bne s3, v0, 0x52230           |         
                                             |     } while (s3 != v0);
                                             |     if (s1 != v0) {
    0x00052320 beql s1, v0, 0x52348          |         
    0x00052324 sb zero, (s0)                 |         *(s0) = 0;
                                             | label_10:
    0x00052328 addu s1, s1, s2               |         s1 += s2;
    0x0005232c addiu v0, zero, 8             |         v0 = 8;
    0x00052330 sb zero, (s0)                 |         *(s0) = 0;
                                             |         if (s1 == v0) {
    0x00052334 bnel s1, v0, 0x52348          |             goto label_11;
                                             |         }
    0x00052338 addiu v0, zero, 0x3a          |         v0 = 0x3a;
    0x0005233c sb v0, (s0)                   |         *(s0) = v0;
    0x00052340 addiu s0, s0, 1               |         s0++;
    0x00052344 sb zero, (s0)                 |         *(s0) = 0;
                                             |     }
                                             | label_11:
    0x00052348 addiu a1, sp, 0x18            |     a1 = sp + 0x18;
    0x0005234c addiu s0, s0, 1               |     s0++;
    0x00052350 subu s0, s0, a1               |     __asm ("subu s0, s0, a1");
    0x00052354 sltu s5, s5, s0               |     s5 = (s5 < s0) ? 1 : 0;
                                             |     if (s5 != 0) {
    0x00052358 beql s5, zero, 0x52378        |         
    0x0005235c lw t9, -0x7f44(gp)            |         t9 = *((gp - 8145));
    0x00052360 rdhwr v1, 29                  |         __asm ("rdhwr v1, 29");
    0x00052364 move v0, v1                   |         v0 = v1;
    0x00052368 lw v1, -0x7564(gp)            |         v1 = *((gp - 7513));
    0x0005236c addu v0, v1, v0               |         v0 = v1 + v0;
    0x00052370 addiu v1, zero, 0x1c          |         v1 = 0x1c;
    0x00052374 b 0x5239c                     |         
                                             |     } else {
    0x00052378 move a0, s4                   |         a0 = s4;
    0x0005237c bal 0x3b600                   |         sym_strcpy ()
                                             | label_2:
    0x00052380 lw ra, 0x94(sp)               |         ra = *(var_94h);
    0x00052384 b 0x523b8                     |         goto label_12;
                                             | label_1:
    0x00052388 rdhwr v1, 29                  |         __asm ("rdhwr v1, 29");
    0x0005238c move v0, v1                   |         v0 = v1;
    0x00052390 lw v1, -0x7564(gp)            |         v1 = *((gp - 7513));
    0x00052394 addu v0, v1, v0               |         v0 = v1 + v0;
    0x00052398 addiu v1, zero, 0x7c          |         v1 = 0x7c;
                                             |     }
    0x0005239c sw v1, (v0)                   |     *(v0) = v1;
                                             | label_9:
    0x000523a0 move v0, zero                 |     v0 = 0;
    0x000523a4 b 0x523b4                     |     goto label_13;
                                             | label_4:
    0x000523a8 move s2, s3                   |     s2 = s3;
                                             | label_5:
    0x000523ac move s1, v0                   |     s1 = v0;
    0x000523b0 b 0x52204                     |     goto label_0;
                                             | label_13:
    0x000523b4 lw ra, 0x94(sp)               |     ra = *(var_94h);
                                             | label_12:
    0x000523b8 lw fp, 0x90(sp)               |     fp = *(var_90h);
    0x000523bc lw s7, 0x8c(sp)               |     s7 = *(var_8ch);
    0x000523c0 lw s6, 0x88(sp)               |     s6 = *(var_88h);
    0x000523c4 lw s5, 0x84(sp)               |     s5 = *(var_84h);
    0x000523c8 lw s4, 0x80(sp)               |     s4 = *(var_80h);
    0x000523cc lw s3, 0x7c(sp)               |     s3 = *(var_7ch);
    0x000523d0 lw s2, 0x78(sp)               |     s2 = *(var_78h);
    0x000523d4 lw s1, 0x74(sp)               |     s1 = *(var_74h);
    0x000523d8 lw s0, 0x70(sp)               |     s0 = *(var_70h);
    0x000523dc addiu sp, sp, 0x98            |     
    0x000523e0 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x47a0c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.ruserpass ()                 | void ruserpass () {
    0x00047a0c lui gp, 7                     |     
    0x00047a10 addiu gp, gp, -0x232c         |     
    0x00047a14 addu gp, gp, t9               |     gp += t9;
    0x00047a18 lw t9, -0x7f80(gp)            |     t9 = *((gp - 8160));
    0x00047a1c addiu sp, sp, -0x4e0          |     
    0x00047a20 sw ra, 0x4dc(sp)              |     *(var_4dch) = ra;
    0x00047a24 sw fp, 0x4d8(sp)              |     *(var_4d8h) = fp;
    0x00047a28 sw s7, 0x4d4(sp)              |     *(var_4d4h) = s7;
    0x00047a2c move fp, sp                   |     fp = sp;
    0x00047a30 sw s5, 0x4cc(sp)              |     *(var_4cch) = s5;
    0x00047a34 sw s2, 0x4c0(sp)              |     *(var_4c0h) = s2;
    0x00047a38 sw s0, 0x4b8(sp)              |     *(var_4b8h) = s0;
    0x00047a3c sw gp, 0x10(sp)               |     *(dest) = gp;
    0x00047a40 sw s6, 0x4d0(sp)              |     *(var_4d0h) = s6;
    0x00047a44 sw s4, 0x4c8(sp)              |     *(var_4c8h) = s4;
    0x00047a48 sw s3, 0x4c4(sp)              |     *(var_4c4h) = s3;
    0x00047a4c sw s1, 0x4bc(sp)              |     *(var_4bch) = s1;
    0x00047a50 move s2, a0                   |     s2 = a0;
    0x00047a54 move s5, a1                   |     s5 = a1;
    0x00047a58 move s7, a2                   |     s7 = a2;
    0x00047a5c jalr t9                       |     t9 ();
    0x00047a60 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047a64 lw t9, -0x7aa4(gp)            |     t9 = *((gp - 7849));
    0x00047a68 move s0, v0                   |     s0 = v0;
    0x00047a6c jalr t9                       |     t9 ();
    0x00047a70 lw gp, 0x10(fp)               |     gp = *(dest);
                                             |     if (s0 != v0) {
    0x00047a74 beq s0, v0, 0x47a80           |         
    0x00047a78 addiu s1, zero, -1            |         s1 = -1;
    0x00047a7c b 0x47edc                     |         goto label_3;
                                             |     }
    0x00047a80 lw t9, -0x795c(gp)            |     t9 = *((gp - 7767));
    0x00047a84 jalr t9                       |     t9 ();
    0x00047a88 nop                           |     
    0x00047a8c lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047a90 lw t9, -0x7aa0(gp)            |     t9 = *((gp - 7848));
    0x00047a94 move s0, v0                   |     s0 = v0;
    0x00047a98 jalr t9                       |     t9 ();
    0x00047a9c lw gp, 0x10(fp)               |     gp = *(dest);
                                             |     if (s0 != v0) {
    0x00047aa0 bne s0, v0, 0x47ed8           |         goto label_4;
                                             |     }
    0x00047aa4 lw a0, -0x7fa8(gp)            |     a0 = *((gp - 8170));
    0x00047aa8 lw t9, -0x7f84(gp)            |     t9 = *((gp - 8161));
    0x00047aac addiu a0, a0, -0x71b0         |     a0 += -0x71b0;
    0x00047ab0 bal 0x5b4e0                   |     sym_getenv ();
    0x00047ab4 move s1, v0                   |     s1 = v0;
    0x00047ab8 lw gp, 0x10(fp)               |     gp = *(dest);
                                             |     if (v0 == 0) {
    0x00047abc beqz v0, 0x47ed8              |         goto label_4;
                                             |     }
    0x00047ac0 lw t9, -0x7fdc(gp)            |     t9 = *((gp - 8183));
    0x00047ac4 move a0, v0                   |     a0 = v0;
    0x00047ac8 bal 0x3b6b0                   |     sym_strlen ();
    0x00047acc addiu v0, v0, 0x16            |     v0 += 0x16;
    0x00047ad0 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047ad4 srl v0, v0, 3                 |     v0 >>= 3;
    0x00047ad8 sll v0, v0, 3                 |     v0 <<= 3;
    0x00047adc subu sp, sp, v0               |     
    0x00047ae0 lw t9, -0x7f44(gp)            |     t9 = *((gp - 8145));
    0x00047ae4 addiu s0, sp, 0x10            |     s0 = sp + 0x10;
    0x00047ae8 move a0, s0                   |     a0 = s0;
    0x00047aec move a1, s1                   |     a1 = s1;
    0x00047af0 bal 0x3b600                   |     sym_strcpy ()
    0x00047af4 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047af8 move a0, s0                   |     a0 = s0;
    0x00047afc lw a1, -0x7fa8(gp)            |     a1 = *((gp - 8170));
    0x00047b00 lw t9, -0x7dfc(gp)            |     t9 = *((gp - 8063));
    0x00047b04 addiu a1, a1, -0x5380         |     a1 += -0x5380;
    0x00047b08 bal 0x3b3a0                   |     sym_strcat ();
    0x00047b0c lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047b10 move a0, s0                   |     a0 = s0;
    0x00047b14 lw a1, -0x7fa8(gp)            |     a1 = *((gp - 8170));
    0x00047b18 lw t9, -0x7dd0(gp)            |     t9 = *((gp - 8052));
    0x00047b1c addiu a1, a1, -0x7aa4         |     a1 += -0x7aa4;
    0x00047b20 bal 0x2e600                   |     sym_fopen ();
    0x00047b24 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047b28 lw s3, -0x7ecc(gp)            |     s3 = *((gp - 8115));
    0x00047b2c sw v0, 0x1be0(s3)             |     *((s3 + 1784)) = v0;
                                             |     if (v0 == 0) {
    0x00047b30 bnez v0, 0x47b70              |         
    0x00047b34 rdhwr v1, 29                  |         __asm ("rdhwr v1, 29");
    0x00047b38 move v0, v1                   |         v0 = v1;
    0x00047b3c lw v1, -0x7564(gp)            |         v1 = *((gp - 7513));
    0x00047b40 addu v0, v1, v0               |         v0 = v1 + v0;
    0x00047b44 lw v1, (v0)                   |         v1 = *(v0);
    0x00047b48 addiu v0, zero, 2             |         v0 = 2;
    0x00047b4c move s1, zero                 |         s1 = 0;
                                             |         if (v1 == v0) {
    0x00047b50 beq v1, v0, 0x47edc           |             goto label_3;
                                             |         }
    0x00047b54 lw a0, -0x7fa8(gp)            |         a0 = *((gp - 8170));
    0x00047b58 lw t9, -0x7958(gp)            |         t9 = *((gp - 7766));
    0x00047b5c move a1, s0                   |         a1 = s0;
    0x00047b60 addiu a0, a0, -0x7a14         |         a0 += -0x7a14;
    0x00047b64 bal 0x2f780                   |         sym_printf ();
    0x00047b68 move sp, fp                   |         
    0x00047b6c b 0x47ee0                     |         goto label_5;
                                             |     }
    0x00047b70 lw t9, -0x7cd0(gp)            |     t9 = *((gp - 7988));
    0x00047b74 move a0, v0                   |     a0 = v0;
    0x00047b78 addiu a1, zero, 2             |     a1 = 2;
    0x00047b7c bal 0x327e0                   |     sym_fsetlocking ();
    0x00047b80 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047b84 addiu a0, fp, 0x18            |     a0 = fp + 0x18;
    0x00047b88 lw t9, -0x7aa8(gp)            |     t9 = *((gp - 7850));
    0x00047b8c addiu a1, zero, 0x400         |     a1 = aav.0x00000400;
    0x00047b90 jalr t9                       |     t9 ();
    0x00047b94 lw gp, 0x10(fp)               |     gp = *(dest);
                                             |     if (v0 < 0) {
    0x00047b98 bgez v0, 0x47ba0              |         
    0x00047b9c sb zero, 0x18(fp)             |         *(var_18h) = 0;
                                             |     }
    0x00047ba0 lw t9, -0x7f90(gp)            |     t9 = *((gp - 8164));
    0x00047ba4 addiu a0, fp, 0x18            |     a0 = fp + 0x18;
    0x00047ba8 addiu a1, zero, 0x2e          |     a1 = 0x2e;
    0x00047bac bal 0x3b3e0                   |     sym_index ();
    0x00047bb0 move s4, v0                   |     s4 = v0;
    0x00047bb4 lw gp, 0x10(fp)               |     gp = *(dest);
                                             |     if (v0 == 0) {
    0x00047bb8 bnez v0, 0x47bd4              |         
    0x00047bbc lw t9, -0x7fdc(gp)            |         t9 = *((gp - 8183));
    0x00047bc0 addiu a0, fp, 0x18            |         a0 = fp + 0x18;
    0x00047bc4 bal 0x3b6b0                   |         sym_strlen ();
    0x00047bc8 lw gp, 0x10(fp)               |         gp = *(dest);
    0x00047bcc addiu v1, fp, 0x18            |         v1 = fp + 0x18;
    0x00047bd0 addu s4, v1, v0               |         s4 = v1 + v0;
                                             |     }
    0x00047bd4 lw s0, -0x7ecc(gp)            |     s0 = *((gp - 8115));
    0x00047bd8 move s1, zero                 |     s1 = 0;
    0x00047bdc addiu s0, s0, 0x1be4          |     s0 += 0x1be4;
    0x00047be0 b 0x47ea4                     |     goto label_6;
                                             | label_2:
    0x00047be4 addiu v1, zero, 1             |     v1 = 1;
    0x00047be8 addiu v1, zero, 0xb           |     v1 = 0xb;
                                             |     if (v0 != v1) {
    0x00047bec beq v0, v1, 0x47c34           |         
    0x00047bf0 lw v1, -0x7b0c(gp)            |         v1 = *((gp - 7875));
                                             |         if (v0 != v1) {
    0x00047bf4 bne v0, v1, 0x47ea8           |             goto label_7;
                                             |         }
    0x00047bf8 addiu t9, s6, 0x7740          |         t9 = s6 + 0x7740;
                                             |         if (s1 == 0) {
    0x00047bfc bnel s1, zero, 0x47e5c        |             goto label_8;
                                             |         }
    0x00047c00 jalr t9                       |         t9 ();
    0x00047c04 nop                           |         
    0x00047c08 addiu v1, zero, 0xa           |         v1 = 0xa;
    0x00047c0c lw gp, 0x10(fp)               |         gp = *(dest);
                                             |         if (v0 != v1) {
    0x00047c10 bne v0, v1, 0x47ea4           |             goto label_6;
                                             |         }
    0x00047c14 lw t9, -0x7d9c(gp)            |         t9 = *((gp - 8039));
    0x00047c18 move a0, s2                   |         a0 = s2;
    0x00047c1c move a1, s0                   |         a1 = s0;
    0x00047c20 bal 0x3c160                   |         sym_strcasecmp ();
    0x00047c24 lw gp, 0x10(fp)               |         gp = *(dest);
                                             |         if (v0 != 0) {
    0x00047c28 bnez v0, 0x47c3c              |             goto label_9;
                                             |         }
    0x00047c2c addiu t9, s6, 0x7740          |         t9 = s6 + 0x7740;
    0x00047c30 b 0x47e5c                     |         goto label_8;
                                             |     }
    0x00047c34 addiu s1, zero, 1             |     s1 = 1;
    0x00047c38 b 0x47e58                     |     goto label_10;
                                             | label_9:
    0x00047c3c lw t9, -0x7f90(gp)            |     t9 = *((gp - 8164));
    0x00047c40 move a0, s2                   |     a0 = s2;
    0x00047c44 addiu a1, zero, 0x2e          |     a1 = 0x2e;
    0x00047c48 bal 0x3b3e0                   |     sym_index ();
    0x00047c4c lw gp, 0x10(fp)               |     gp = *(dest);
                                             |     if (v0 == 0) {
    0x00047c50 beqz v0, 0x47ea4              |         goto label_6;
                                             |     }
    0x00047c54 lw t9, -0x7d9c(gp)            |     t9 = *((gp - 8039));
    0x00047c58 move a0, v0                   |     a0 = v0;
    0x00047c5c move a1, s4                   |     a1 = s4;
    0x00047c60 sw v0, 0x4b0(fp)              |     *(var_4b0h) = v0;
    0x00047c64 bal 0x3c160                   |     sym_strcasecmp ();
    0x00047c68 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047c6c lw a2, 0x4b0(fp)              |     a2 = *(var_4b0h);
                                             |     if (v0 != 0) {
    0x00047c70 bnez v0, 0x47ea4              |         goto label_6;
                                             |     }
    0x00047c74 lw t9, -0x7cec(gp)            |     t9 = *((gp - 7995));
    0x00047c78 subu v1, a2, s2               |     __asm ("subu v1, a2, s2");
    0x00047c7c move a2, v1                   |     a2 = v1;
    0x00047c80 sw v1, 0x4b0(fp)              |     *(var_4b0h) = v1;
    0x00047c84 move a0, s2                   |     a0 = s2;
    0x00047c88 move a1, s0                   |     a1 = s0;
    0x00047c8c bal 0x3c3c0                   |     sym_strncasecmp ();
    0x00047c90 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047c94 lw v1, 0x4b0(fp)              |     v1 = *(var_4b0h);
                                             |     if (v0 != 0) {
    0x00047c98 bnez v0, 0x47ea4              |         goto label_6;
                                             |     }
    0x00047c9c addu v1, v1, s0               |     v1 += s0;
    0x00047ca0 lbu v0, (v1)                  |     v0 = *(v1);
    0x00047ca4 move s1, zero                 |     s1 = 0;
    0x00047ca8 b 0x47d54                     |     goto label_11;
                                             | label_0:
    0x00047cac slti v1, v0, 4                |     v1 = (v0 < 4) ? 1 : 0;
                                             |     if (v0 == v1) {
    0x00047cb0 beq v0, v1, 0x47d64           |         goto label_12;
                                             |     }
                                             |     if (v1 != 0) {
    0x00047cb4 beql v1, zero, 0x47cd0        |         
    0x00047cb8 slti v0, v0, 6                |         v0 = (v0 < 6) ? 1 : 0;
    0x00047cbc addiu v1, zero, 2             |         v1 = 2;
    0x00047cc0 lw v0, -0x7fa8(gp)            |         v0 = *((gp - 8170));
                                             |         if (v0 != v1) {
    0x00047cc4 bne v0, v1, 0x47e48           |             goto label_13;
                                             |         }
    0x00047cc8 b 0x47ce0                     |         goto label_14;
    0x00047ccc nop                           |         
                                             |     }
    0x00047cd0 lw v0, -0x7fa8(gp)            |     v0 = *((gp - 8170));
                                             |     if (v0 == 0) {
    0x00047cd4 beqz v0, 0x47e48              |         goto label_13;
                                             |     }
    0x00047cd8 addiu t9, s6, 0x7740          |     t9 = s6 + 0x7740;
    0x00047cdc b 0x47e5c                     |     goto label_8;
                                             | label_14:
    0x00047ce0 jalr t9                       |     t9 ();
    0x00047ce4 nop                           |     
    0x00047ce8 lw gp, 0x10(fp)               |     gp = *(dest);
                                             |     if (v0 == 0) {
    0x00047cec beqz v0, 0x47e58              |         goto label_10;
                                             |     }
    0x00047cf0 lw a0, (s5)                   |     a0 = *(s5);
    0x00047cf4 lw t9, -0x7e94(gp)            |     t9 = *((gp - 8101));
                                             |     if (a0 != 0) {
    0x00047cf8 bnez a0, 0x47d48              |         goto label_15;
                                             |     }
    0x00047cfc lw t9, -0x7fdc(gp)            |     t9 = *((gp - 8183));
    0x00047d00 move a0, s0                   |     a0 = s0;
    0x00047d04 bal 0x3b6b0                   |     sym_strlen ();
    0x00047d08 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047d0c lw t9, -0x75a0(gp)            |     t9 = *((gp - 7528));
    0x00047d10 addiu a0, v0, 1               |     a0 = v0 + 1;
    0x00047d14 jalr t9                       |     t9 ();
    0x00047d18 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047d1c bnez v0, 0x47d30              |     
                                             |     while (v0 == 0) {
    0x00047d20 lw a0, -0x7fa8(gp)            |         a0 = *((gp - 8170));
    0x00047d24 lw t9, -0x7958(gp)            |         t9 = *((gp - 7766));
    0x00047d28 addiu a0, a0, -0x5378         |         a0 += -0x5378;
    0x00047d2c b 0x47ddc                     |         goto label_16;
    0x00047d30 lw t9, -0x7f44(gp)            |         t9 = *((gp - 8145));
    0x00047d34 move a0, v0                   |         a0 = v0;
    0x00047d38 move a1, s0                   |         a1 = s0;
    0x00047d3c bal 0x3b600                   |         sym_strcpy ()
    0x00047d40 sw v0, (s5)                   |         *(s5) = v0;
    0x00047d44 b 0x47e58                     |         goto label_10;
                                             | label_15:
    0x00047d48 move a1, s0                   |         a1 = s0;
    0x00047d4c bal 0x3b5d0                   |         sym_strcmp ();
    0x00047d50 lw gp, 0x10(fp)               |         gp = *(dest);
                                             | label_11:
    0x00047d54 addiu t9, s6, 0x7740          |         t9 = s6 + 0x7740;
                                             |         if (v0 == 0) {
    0x00047d58 beqz v0, 0x47e5c              |             goto label_8;
                                             |         }
    0x00047d5c lw v1, -0x7b0c(gp)            |         v1 = *((gp - 7875));
    0x00047d60 b 0x47ea8                     |         goto label_7;
                                             | label_12:
    0x00047d64 lw a1, -0x7fa8(gp)            |         a1 = *((gp - 8170));
    0x00047d68 lw t9, -0x7e94(gp)            |         t9 = *((gp - 8101));
    0x00047d6c lw a0, (s5)                   |         a0 = *(s5);
    0x00047d70 addiu a1, a1, -0x5368         |         a1 += -0x5368;
    0x00047d74 bal 0x3b5d0                   |         sym_strcmp ();
    0x00047d78 lw gp, 0x10(fp)               |         gp = *(dest);
                                             |         if (v0 != 0) {
    0x00047d7c beqz v0, 0x47dec              |             
    0x00047d80 lw t9, -0x79c0(gp)            |             t9 = *((gp - 7792));
    0x00047d84 lw a0, 0x1be0(s3)             |             a0 = *((s3 + 1784));
    0x00047d88 bal 0x387c0                   |             sym_fileno ();
    0x00047d8c lw gp, 0x10(fp)               |             gp = *(dest);
    0x00047d90 move a0, v0                   |             a0 = v0;
    0x00047d94 lw t9, -0x7e90(gp)            |             t9 = *((gp - 8100));
    0x00047d98 addiu a1, fp, 0x418           |             a1 = fp + aav.0x00000418;
    0x00047d9c jalr t9                       |             t9 ();
    0x00047da0 lw gp, 0x10(fp)               |             gp = *(dest);
                                             |             if (v0 < 0) {
    0x00047da4 bltz v0, 0x47dec              |                 goto label_17;
                                             |             }
    0x00047da8 lw v0, 0x42c(fp)              |             v0 = *(var_42ch);
    0x00047dac andi v0, v0, 0x3f             |             v0 &= 0x3f;
    0x00047db0 addiu t9, s6, 0x7740          |             t9 = s6 + 0x7740;
                                             |             if (v0 == 0) {
    0x00047db4 beqz v0, 0x47df0              |                 goto label_18;
                                             |             }
    0x00047db8 lw s0, -0x7958(gp)            |             s0 = *((gp - 7766));
    0x00047dbc lw a0, -0x7fa8(gp)            |             a0 = *((gp - 8170));
    0x00047dc0 move t9, s0                   |             t9 = s0;
    0x00047dc4 addiu a0, a0, -0x535c         |             a0 += -0x535c;
    0x00047dc8 bal 0x2f780                   |             sym_printf ();
    0x00047dcc lw gp, 0x10(fp)               |             gp = *(dest);
    0x00047dd0 move t9, s0                   |             t9 = s0;
    0x00047dd4 lw a0, -0x7fa8(gp)            |             a0 = *((gp - 8170));
    0x00047dd8 addiu a0, a0, -0x5330         |             a0 += -0x5330;
                                             | label_16:
    0x00047ddc bal 0x2f780                   |             sym_printf ();
    0x00047de0 nop                           |             
    0x00047de4 lw gp, 0x10(fp)               |             gp = *(dest);
    0x00047de8 b 0x47ecc                     |             goto label_19;
                                             |         }
                                             | label_17:
    0x00047dec addiu t9, s6, 0x7740          |         t9 = s6 + 0x7740;
                                             | label_18:
    0x00047df0 bal 0x47740                   |         fcn_00047740 ();
    0x00047df4 nop                           |         
    0x00047df8 lw gp, 0x10(fp)               |         gp = *(dest);
                                             |         if (v0 == 0) {
    0x00047dfc beqz v0, 0x47e58              |             goto label_10;
                                             |         }
    0x00047e00 lw v0, (s7)                   |         v0 = *(s7);
    0x00047e04 addiu t9, s6, 0x7740          |         t9 = s6 + 0x7740;
                                             |         if (v0 != 0) {
    0x00047e08 bnez v0, 0x47e5c              |             goto label_8;
                                             |         }
    0x00047e0c lw t9, -0x7fdc(gp)            |         t9 = *((gp - 8183));
    0x00047e10 move a0, s0                   |         a0 = s0;
    0x00047e14 bal 0x3b6b0                   |         sym_strlen ();
    0x00047e18 lw gp, 0x10(fp)               |         gp = *(dest);
    0x00047e1c lw t9, -0x75a0(gp)            |         t9 = *((gp - 7528));
    0x00047e20 addiu a0, v0, 1               |         a0 = v0 + 1;
    0x00047e24 jalr t9                       |         t9 ();
    0x00047e28 lw gp, 0x10(fp)               |         gp = *(dest);
    0x00047e2c beqz v0, 0x47d20              |         
                                             |     }
    0x00047e30 lw t9, -0x7f44(gp)            |     t9 = *((gp - 8145));
    0x00047e34 move a0, v0                   |     a0 = v0;
    0x00047e38 move a1, s0                   |     a1 = s0;
    0x00047e3c bal 0x3b600                   |     sym_strcpy ()
    0x00047e40 sw v0, (s7)                   |     *(s7) = v0;
    0x00047e44 b 0x47e58                     |     goto label_10;
                                             | label_13:
    0x00047e48 lw t9, -0x7958(gp)            |     t9 = *((gp - 7766));
    0x00047e4c move a1, s0                   |     a1 = s0;
    0x00047e50 addiu a0, v0, -0x52fc         |     a0 = v0 + -0x52fc;
    0x00047e54 bal 0x2f780                   |     sym_printf ();
                                             | label_10:
    0x00047e58 addiu t9, s6, 0x7740          |     t9 = s6 + 0x7740;
                                             | label_8:
    0x00047e5c sw t9, 0x4b0(fp)              |     *(var_4b0h) = t9;
    0x00047e60 bal 0x47740                   |     fcn_00047740 ();
    0x00047e64 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047e68 lw t9, 0x4b0(fp)              |     t9 = *(var_4b0h);
    0x00047e6c bnez v0, 0x47e88              |     
                                             |     while (v0 == v1) {
    0x00047e70 lw a0, 0x1be0(s3)             |         a0 = *((s3 + 1784));
                                             | label_1:
    0x00047e74 lw t9, -0x7dcc(gp)            |         t9 = *((gp - 8051));
    0x00047e78 move s1, zero                 |         s1 = 0;
    0x00047e7c bal 0x2de40                   |         sym_fclose ();
    0x00047e80 move sp, fp                   |         
    0x00047e84 b 0x47ee0                     |         goto label_5;
    0x00047e88 addiu v1, zero, 0xb           |         v1 = 0xb;
    0x00047e8c addiu v1, zero, 1             |         v1 = 1;
    0x00047e90 beq v0, v1, 0x47e70           |         
                                             |     }
    0x00047e94 addiu v1, zero, 3             |     v1 = 3;
                                             |     if (v0 != v1) {
    0x00047e98 bne v0, v1, 0x47cac           |         goto label_0;
                                             |     }
    0x00047e9c lw a0, 0x1be0(s3)             |     a0 = *((s3 + 1784));
    0x00047ea0 b 0x47e74                     |     goto label_1;
                                             | label_6:
    0x00047ea4 lw v1, -0x7b0c(gp)            |     v1 = *((gp - 7875));
                                             | label_7:
    0x00047ea8 addiu t9, v1, 0x7740          |     t9 = v1 + 0x7740;
    0x00047eac sw t9, 0x4b0(fp)              |     *(var_4b0h) = t9;
    0x00047eb0 bal 0x47740                   |     fcn_00047740 ();
    0x00047eb4 lw gp, 0x10(fp)               |     gp = *(dest);
    0x00047eb8 lw t9, 0x4b0(fp)              |     t9 = *(var_4b0h);
    0x00047ebc lw s6, -0x7b0c(gp)            |     s6 = *((gp - 7875));
                                             |     if (v0 != 0) {
    0x00047ec0 bnez v0, 0x47be4              |         goto label_2;
                                             |     }
    0x00047ec4 lw a0, 0x1be0(s3)             |     a0 = *((s3 + 1784));
    0x00047ec8 b 0x47e74                     |     goto label_1;
                                             | label_19:
    0x00047ecc lw t9, -0x7dcc(gp)            |     t9 = *((gp - 8051));
    0x00047ed0 lw a0, 0x1be0(s3)             |     a0 = *((s3 + 1784));
    0x00047ed4 bal 0x2de40                   |     sym_fclose ();
                                             | label_4:
    0x00047ed8 addiu s1, zero, -1            |     s1 = -1;
                                             | label_3:
    0x00047edc move sp, fp                   |     
                                             | label_5:
    0x00047ee0 lw ra, 0x4dc(sp)              |     ra = *(var_4dch);
    0x00047ee4 move v0, s1                   |     v0 = s1;
    0x00047ee8 lw fp, 0x4d8(sp)              |     fp = *(var_4d8h);
    0x00047eec lw s7, 0x4d4(sp)              |     s7 = *(var_4d4h);
    0x00047ef0 lw s6, 0x4d0(sp)              |     s6 = *(var_4d0h);
    0x00047ef4 lw s5, 0x4cc(sp)              |     s5 = *(var_4cch);
    0x00047ef8 lw s4, 0x4c8(sp)              |     s4 = *(var_4c8h);
    0x00047efc lw s3, 0x4c4(sp)              |     s3 = *(var_4c4h);
    0x00047f00 lw s2, 0x4c0(sp)              |     s2 = *(var_4c0h);
    0x00047f04 lw s1, 0x4bc(sp)              |     s1 = *(var_4bch);
    0x00047f08 lw s0, 0x4b8(sp)              |     s0 = *(var_4b8h);
    0x00047f0c addiu sp, sp, 0x4e0           |     
    0x00047f10 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x2dd70 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.sgetspent_r ()               | void sgetspent_r () {
    0x0002dd70 lui gp, 8                     |     
    0x0002dd74 addiu gp, gp, 0x7970          |     
    0x0002dd78 addu gp, gp, t9               |     gp += t9;
    0x0002dd7c addiu sp, sp, -0x30           |     
    0x0002dd80 sw s1, 0x1c(sp)               |     *(var_1ch) = s1;
    0x0002dd84 lw s1, 0x40(sp)               |     s1 = *(arg_40h);
    0x0002dd88 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0002dd8c sltiu v0, a3, 0x100           |     v0 = (a3 < aav.0x00000100) ? 1 : 0;
    0x0002dd90 sw ra, 0x2c(sp)               |     *(var_2ch) = ra;
    0x0002dd94 sw s4, 0x28(sp)               |     *(var_28h) = s4;
    0x0002dd98 sw s3, 0x24(sp)               |     *(var_24h) = s3;
    0x0002dd9c sw s2, 0x20(sp)               |     *(var_20h) = s2;
    0x0002dda0 sw s0, 0x18(sp)               |     *(var_18h) = s0;
    0x0002dda4 sw zero, (s1)                 |     *(s1) = 0;
    0x0002dda8 beqz v0, 0x2ddcc              |     
                                             |     while (v0 == 0) {
    0x0002ddac rdhwr v1, 29                  |         __asm ("rdhwr v1, 29");
    0x0002ddb0 move v0, v1                   |         v0 = v1;
    0x0002ddb4 lw v1, -0x7564(gp)            |         v1 = *((gp - 7513));
    0x0002ddb8 addu v0, v1, v0               |         v0 = v1 + v0;
    0x0002ddbc addiu v1, zero, 0x22          |         v1 = 0x22;
    0x0002ddc0 sw v1, (v0)                   |         *(v0) = v1;
    0x0002ddc4 addiu v0, zero, 0x22          |         v0 = 0x22;
    0x0002ddc8 b 0x2de20                     |         goto label_0;
    0x0002ddcc move s2, a1                   |         s2 = a1;
    0x0002ddd0 move s0, a2                   |         s0 = a2;
                                             |         if (a0 == a2) {
    0x0002ddd4 beq a0, a2, 0x2de08           |             goto label_1;
                                             |         }
    0x0002ddd8 lw t9, -0x7fdc(gp)            |         t9 = *((gp - 8183));
    0x0002dddc move s4, a3                   |         s4 = a3;
    0x0002dde0 move s3, a0                   |         s3 = a0;
    0x0002dde4 bal 0x3b6b0                   |         sym_strlen ();
    0x0002dde8 sltu v0, v0, s4               |         v0 = (v0 < s4) ? 1 : 0;
    0x0002ddec lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0002ddf0 beqz v0, 0x2ddac              |         
                                             |     }
    0x0002ddf4 lw t9, -0x7f44(gp)            |     t9 = *((gp - 8145));
    0x0002ddf8 move a0, s0                   |     a0 = s0;
    0x0002ddfc move a1, s3                   |     a1 = s3;
    0x0002de00 bal 0x3b600                   |     sym_strcpy ()
    0x0002de04 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             | label_1:
    0x0002de08 lw t9, -0x7c7c(gp)            |     t9 = *(gp);
    0x0002de0c move a0, s2                   |     a0 = s2;
    0x0002de10 move a1, s0                   |     a1 = s0;
    0x0002de14 bal 0x2d500                   |     fcn_0002d500 ();
                                             |     if (v0 != 0) {
    0x0002de18 beql v0, zero, 0x2de20        |         
    0x0002de1c sw s2, (s1)                   |         *(s1) = s2;
                                             |     }
                                             | label_0:
    0x0002de20 lw ra, 0x2c(sp)               |     ra = *(var_2ch);
    0x0002de24 lw s4, 0x28(sp)               |     s4 = *(var_28h);
    0x0002de28 lw s3, 0x24(sp)               |     s3 = *(var_24h);
    0x0002de2c lw s2, 0x20(sp)               |     s2 = *(var_20h);
    0x0002de30 lw s1, 0x1c(sp)               |     s1 = *(var_1ch);
    0x0002de34 lw s0, 0x18(sp)               |     s0 = *(var_18h);
    0x0002de38 addiu sp, sp, 0x30            |     
    0x0002de3c jr ra                         |     return v0;
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x24e70 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.timegm ()                | void timegm () {
    0x00024e70 lui gp, 9                 |     
    0x00024e74 addiu gp, gp, 0x870       |     
    0x00024e78 addu gp, gp, t9           |     gp += t9;
    0x00024e7c lw t9, -0x7fe4(gp)        |     t9 = *((gp - 8185));
    0x00024e80 addiu sp, sp, -0x50       |     
    0x00024e84 addiu a2, zero, 0x30      |     a2 = 0x30;
    0x00024e88 move a1, zero             |     a1 = 0;
    0x00024e8c sw ra, 0x4c(sp)           |     *(var_4ch) = ra;
    0x00024e90 sw s0, 0x48(sp)           |     *(var_48h) = s0;
    0x00024e94 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x00024e98 move s0, a0               |     s0 = a0;
    0x00024e9c addiu a0, sp, 0x18        |     a0 = sp + 0x18;
    0x00024ea0 bal 0x3a940               |     sym_memset ();
    0x00024ea4 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00024ea8 addiu a0, sp, 0x28        |     a0 = sp + 0x28;
    0x00024eac lw a1, -0x7fa8(gp)        |     a1 = *((gp - 8170));
    0x00024eb0 lw t9, -0x7f44(gp)        |     t9 = *((gp - 8145));
    0x00024eb4 addiu a1, a1, -0x777c     |     a1 += -0x777c;
    0x00024eb8 bal 0x3b600               |     sym_strcpy ()
    0x00024ebc lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00024ec0 move a0, s0               |     a0 = s0;
    0x00024ec4 addiu a2, sp, 0x18        |     a2 = sp + 0x18;
    0x00024ec8 lw t9, -0x7cdc(gp)        |     t9 = *((gp - 7991));
    0x00024ecc addiu a1, zero, 1         |     a1 = 1;
    0x00024ed0 bal 0x24ef0               |     fcn_00024ef0 ();
    0x00024ed4 lw ra, 0x4c(sp)           |     ra = *(var_4ch);
    0x00024ed8 lw s0, 0x48(sp)           |     s0 = *(var_48h);
    0x00024edc addiu sp, sp, 0x50        |     
    0x00024ee0 jr ra                     |     return;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x3ed40 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.ttyname_r ()                 | void ttyname_r () {
    0x0003ed40 lui gp, 7                     |     
    0x0003ed44 addiu gp, gp, 0x69a0          |     
    0x0003ed48 addu gp, gp, t9               |     gp += t9;
    0x0003ed4c lw t9, -0x7e90(gp)            |     t9 = *((gp - 8100));
    0x0003ed50 addiu sp, sp, -0x198          |     
    0x0003ed54 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0003ed58 sw s5, 0x184(sp)              |     *(var_184h) = s5;
    0x0003ed5c sw s4, 0x180(sp)              |     *(var_180h) = s4;
    0x0003ed60 sw s0, 0x170(sp)              |     *(var_170h) = s0;
    0x0003ed64 sw ra, 0x194(sp)              |     *(var_194h) = ra;
    0x0003ed68 sw fp, 0x190(sp)              |     *(var_190h) = fp;
    0x0003ed6c sw s7, 0x18c(sp)              |     *(var_18ch) = s7;
    0x0003ed70 sw s6, 0x188(sp)              |     *(var_188h) = s6;
    0x0003ed74 sw s3, 0x17c(sp)              |     *(var_17ch) = s3;
    0x0003ed78 sw s2, 0x178(sp)              |     *(var_178h) = s2;
    0x0003ed7c sw s1, 0x174(sp)              |     *(var_174h) = s1;
    0x0003ed80 move s4, a1                   |     s4 = a1;
    0x0003ed84 addiu a1, sp, 0xb0            |     a1 = sp + 0xb0;
    0x0003ed88 move s0, a0                   |     s0 = a0;
    0x0003ed8c move s5, a2                   |     s5 = a2;
    0x0003ed90 jalr t9                       |     t9 ();
    0x0003ed94 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 < 0) {
    0x0003ed98 bgez v0, 0x3edb4              |         
    0x0003ed9c rdhwr v1, 29                  |         __asm ("rdhwr v1, 29");
    0x0003eda0 move v0, v1                   |         v0 = v1;
    0x0003eda4 lw v1, -0x7564(gp)            |         v1 = *((gp - 7513));
    0x0003eda8 addu v0, v1, v0               |         v0 = v1 + v0;
    0x0003edac lw v0, (v0)                   |         v0 = *(v0);
    0x0003edb0 b 0x3ef40                     |         goto label_1;
                                             |     }
    0x0003edb4 lw t9, -0x7be0(gp)            |     t9 = *((gp - 7928));
    0x0003edb8 move a0, s0                   |     a0 = s0;
    0x0003edbc bal 0x3e6c0                   |     sym_isatty ();
    0x0003edc0 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != 0) {
    0x0003edc4 bnez v0, 0x3ef08              |         goto label_2;
                                             |     }
    0x0003edc8 addiu v0, zero, 0x19          |     v0 = 0x19;
    0x0003edcc b 0x3ef2c                     |     goto label_3;
                                             | label_0:
    0x0003edd0 addiu a0, sp, 0x148           |     a0 = sp + aav.0x00000148;
    0x0003edd4 move t9, s3                   |     t9 = s3;
    0x0003edd8 move a1, s2                   |     a1 = s2;
    0x0003eddc bal 0x3b600                   |     sym_strcpy ()
    0x0003ede0 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003ede4 addiu v0, sp, 0x148           |     v0 = sp + aav.0x00000148;
    0x0003ede8 move a0, s2                   |     a0 = s2;
    0x0003edec lw t9, -0x7e7c(gp)            |     t9 = *((gp - 8095));
    0x0003edf0 addu s7, v0, s1               |     s7 = v0 + s1;
    0x0003edf4 addiu fp, zero, 0x1e          |     fp = 0x1e;
    0x0003edf8 jalr t9                       |     t9 ();
    0x0003edfc subu fp, fp, s1               |     __asm ("subu fp, fp, s1");
    0x0003ee00 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003ee04 move s1, v0                   |     s1 = v0;
                                             |     if (v0 != 0) {
    0x0003ee08 bnez v0, 0x3eed4              |         goto label_4;
                                             |     }
    0x0003ee0c lbu s0, (s0)                  |     s0 = *(s0);
    0x0003ee10 b 0x3eefc                     |     goto label_5;
                                             |     do {
    0x0003ee14 addiu a1, v0, 0xb             |         a1 = v0 + 0xb;
    0x0003ee18 move a0, a1                   |         a0 = a1;
    0x0003ee1c move t9, s6                   |         t9 = s6;
    0x0003ee20 sw a1, 0x168(sp)              |         *(var_168h) = a1;
    0x0003ee24 bal 0x3b6b0                   |         sym_strlen ();
    0x0003ee28 sltu v0, fp, v0               |         v0 = (fp < v0) ? 1 : 0;
    0x0003ee2c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0003ee30 lw a1, 0x168(sp)              |         a1 = *(var_168h);
                                             |         if (v0 == 0) {
    0x0003ee34 bnez v0, 0x3eed4              |             
    0x0003ee38 move t9, s3                   |             t9 = s3;
    0x0003ee3c move a0, s7                   |             a0 = s7;
    0x0003ee40 bal 0x3b600                   |             sym_strcpy ()
    0x0003ee44 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x0003ee48 addiu a0, sp, 0x148           |             a0 = sp + aav.0x00000148;
    0x0003ee4c lw t9, -0x7e28(gp)            |             t9 = *((gp - 8074));
    0x0003ee50 addiu a1, sp, 0x18            |             a1 = sp + 0x18;
    0x0003ee54 jalr t9                       |             t9 ();
    0x0003ee58 lw gp, 0x10(sp)               |             gp = *(var_10h);
                                             |             if (v0 != 0) {
    0x0003ee5c bnez v0, 0x3eed4              |                 goto label_4;
                                             |             }
    0x0003ee60 lw v1, 0x2c(sp)               |             v1 = *(var_2ch);
    0x0003ee64 addiu v0, zero, 0x2000        |             v0 = 0x2000;
    0x0003ee68 andi v1, v1, 0xf000           |             v1 &= aav.0x0000f000;
    0x0003ee6c lw t9, -0x7e78(gp)            |             t9 = *((gp - 8094));
                                             |             if (v1 != v0) {
    0x0003ee70 bne v1, v0, 0x3eed8           |                 goto label_6;
                                             |             }
    0x0003ee74 lw v0, 0x40(sp)               |             v0 = *(var_40h);
    0x0003ee78 lw v1, 0xd8(sp)               |             v1 = *(var_d8h);
    0x0003ee7c lw v0, 0x44(sp)               |             v0 = *(var_44h);
                                             |             if (v1 != v0) {
    0x0003ee80 bne v1, v0, 0x3eed8           |                 goto label_6;
                                             |             }
    0x0003ee84 lw v1, 0xdc(sp)               |             v1 = *(var_dch);
    0x0003ee88 lw t9, -0x7e74(gp)            |             t9 = *((gp - 8093));
                                             |             if (v1 != v0) {
    0x0003ee8c bne v1, v0, 0x3eed4           |                 goto label_4;
                                             |             }
    0x0003ee90 move a0, s1                   |             a0 = s1;
    0x0003ee94 jalr t9                       |             t9 ();
    0x0003ee98 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x0003ee9c lw t9, -0x7fdc(gp)            |             t9 = *((gp - 8183));
    0x0003eea0 addiu a0, sp, 0x148           |             a0 = sp + aav.0x00000148;
    0x0003eea4 bal 0x3b6b0                   |             sym_strlen ();
    0x0003eea8 sltu s5, s5, v0               |             s5 = (s5 < v0) ? 1 : 0;
    0x0003eeac lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x0003eeb0 addiu v0, zero, 0x22          |             v0 = 0x22;
                                             |             if (s5 != 0) {
    0x0003eeb4 bnez s5, 0x3ef2c              |                 goto label_3;
                                             |             }
    0x0003eeb8 lw t9, -0x7f44(gp)            |             t9 = *((gp - 8145));
    0x0003eebc move a0, s4                   |             a0 = s4;
    0x0003eec0 addiu a1, sp, 0x148           |             a1 = sp + aav.0x00000148;
    0x0003eec4 bal 0x3b600                   |             sym_strcpy ()
    0x0003eec8 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x0003eecc move v0, zero                 |             v0 = 0;
    0x0003eed0 b 0x3ef2c                     |             goto label_3;
                                             |         }
                                             | label_4:
    0x0003eed4 lw t9, -0x7e78(gp)            |         t9 = *((gp - 8094));
                                             | label_6:
    0x0003eed8 move a0, s1                   |         a0 = s1;
    0x0003eedc jalr t9                       |         t9 ();
    0x0003eee0 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x0003eee4 bnez v0, 0x3ee14              |         
                                             |     } while (v0 != 0);
    0x0003eee8 lw t9, -0x7e74(gp)            |     t9 = *((gp - 8093));
    0x0003eeec move a0, s1                   |     a0 = s1;
    0x0003eef0 jalr t9                       |     t9 ();
    0x0003eef4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003eef8 lbu s0, (s0)                  |     s0 = *(s0);
                                             | label_5:
    0x0003eefc addiu s0, s0, 1               |     s0++;
    0x0003ef00 addu s0, s2, s0               |     s0 = s2 + s0;
    0x0003ef04 b 0x3ef18                     |     goto label_7;
                                             | label_2:
    0x0003ef08 lw s0, -0x7fa8(gp)            |     s0 = *((gp - 8170));
    0x0003ef0c lw s3, -0x7f44(gp)            |     s3 = *((gp - 8145));
    0x0003ef10 lw s6, -0x7fdc(gp)            |     s6 = *((gp - 8183));
    0x0003ef14 addiu s0, s0, -0x5da0         |     s0 += -0x5da0;
                                             | label_7:
    0x0003ef18 lbu s1, (s0)                  |     s1 = *(s0);
    0x0003ef1c addiu s2, s0, 1               |     s2 = s0 + 1;
                                             |     if (s1 != 0) {
    0x0003ef20 bnez s1, 0x3edd0              |         goto label_0;
                                             |     }
    0x0003ef24 addiu v0, zero, 0x19          |     v0 = 0x19;
    0x0003ef28 b 0x3ef2c                     |     
                                             | label_3:
    0x0003ef2c rdhwr v1, 29                  |     __asm ("rdhwr v1, 29");
    0x0003ef30 move a0, v1                   |     a0 = v1;
    0x0003ef34 lw v1, -0x7564(gp)            |     v1 = *((gp - 7513));
    0x0003ef38 addu a0, v1, a0               |     a0 = v1 + a0;
    0x0003ef3c sw v0, (a0)                   |     *(a0) = v0;
                                             | label_1:
    0x0003ef40 lw ra, 0x194(sp)              |     ra = *(var_194h);
    0x0003ef44 lw fp, 0x190(sp)              |     fp = *(var_190h);
    0x0003ef48 lw s7, 0x18c(sp)              |     s7 = *(var_18ch);
    0x0003ef4c lw s6, 0x188(sp)              |     s6 = *(var_188h);
    0x0003ef50 lw s5, 0x184(sp)              |     s5 = *(var_184h);
    0x0003ef54 lw s4, 0x180(sp)              |     s4 = *(var_180h);
    0x0003ef58 lw s3, 0x17c(sp)              |     s3 = *(var_17ch);
    0x0003ef5c lw s2, 0x178(sp)              |     s2 = *(var_178h);
    0x0003ef60 lw s1, 0x174(sp)              |     s1 = *(var_174h);
    0x0003ef64 lw s0, 0x170(sp)              |     s0 = *(var_170h);
    0x0003ef68 addiu sp, sp, 0x198           |     
    0x0003ef6c jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x2b04c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.wordexp ()                   | void wordexp () {
    0x0002b04c lui gp, 9                     |     
    0x0002b050 addiu gp, gp, -0x596c         |     
    0x0002b054 addu gp, gp, t9               |     gp += t9;
    0x0002b058 lw v1, (a1)                   |     v1 = *(a1);
    0x0002b05c addiu sp, sp, -0xa0           |     
    0x0002b060 lw t9, 4(a1)                  |     t9 = *((a1 + 1));
    0x0002b064 sw v1, 0x70(sp)               |     *(var_70h) = v1;
    0x0002b068 lw v1, 8(a1)                  |     v1 = *((a1 + 2));
    0x0002b06c sw gp, 0x28(sp)               |     *(var_28h) = gp;
    0x0002b070 andi v0, a2, 8                |     v0 = a2 & 8;
    0x0002b074 sw s3, 0x84(sp)               |     *(var_84h) = s3;
    0x0002b078 sw s1, 0x7c(sp)               |     *(var_7ch) = s1;
    0x0002b07c sw s0, 0x78(sp)               |     *(var_78h) = s0;
    0x0002b080 sw ra, 0x9c(sp)               |     *(var_9ch) = ra;
    0x0002b084 sw fp, 0x98(sp)               |     *(var_98h) = fp;
    0x0002b088 sw s7, 0x94(sp)               |     *(var_94h) = s7;
    0x0002b08c sw s6, 0x90(sp)               |     *(var_90h) = s6;
    0x0002b090 sw s5, 0x8c(sp)               |     *(var_8ch) = s5;
    0x0002b094 sw s4, 0x88(sp)               |     *(var_88h) = s4;
    0x0002b098 sw s2, 0x80(sp)               |     *(var_80h) = s2;
    0x0002b09c move s1, a0                   |     s1 = a0;
    0x0002b0a0 move s0, a1                   |     s0 = a1;
    0x0002b0a4 move s3, a2                   |     s3 = a2;
    0x0002b0a8 sw zero, 0x50(sp)             |     *(var_50h) = 0;
    0x0002b0ac sw zero, 0x54(sp)             |     *(var_54h) = 0;
    0x0002b0b0 sw zero, 0x4c(sp)             |     *(var_4ch) = 0;
    0x0002b0b4 sw t9, 0x64(sp)               |     *(var_64h) = t9;
    0x0002b0b8 sw v1, 0x6c(sp)               |     *(var_6ch) = v1;
                                             |     if (v0 != 0) {
    0x0002b0bc beqz v0, 0x2b0d4              |         
    0x0002b0c0 lw t9, -0x7f48(gp)            |         t9 = *((gp - 8146));
    0x0002b0c4 move a0, a1                   |         a0 = a1;
    0x0002b0c8 bal 0x2afc8                   |         sym_wordfree ();
    0x0002b0cc lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0002b0d0 sw zero, 0x64(sp)             |         *(var_64h) = 0;
                                             |     }
    0x0002b0d4 andi t9, s3, 2                |     t9 = s3 & 2;
    0x0002b0d8 sw t9, 0x60(sp)               |     *(var_60h) = t9;
                                             |     if (t9 == 0) {
    0x0002b0dc bnez t9, 0x2b130              |         
    0x0002b0e0 andi v0, s3, 1                |         v0 = s3 & 1;
    0x0002b0e4 sw zero, (s0)                 |         *(s0) = 0;
    0x0002b0e8 lw t9, -0x75cc(gp)            |         t9 = *((gp - 7539));
                                             |         if (v0 != 0) {
    0x0002b0ec beqz v0, 0x2b114              |             
    0x0002b0f0 lw a0, 8(s0)                  |             a0 = *((s0 + 2));
    0x0002b0f4 addiu a1, zero, 4             |             a1 = 4;
    0x0002b0f8 addiu a0, a0, 1               |             a0++;
    0x0002b0fc jalr t9                       |             t9 ();
    0x0002b100 sw v0, 4(s0)                  |             *((s0 + 1)) = v0;
    0x0002b104 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |             if (v0 != 0) {
    0x0002b108 bnez v0, 0x2b130              |                 goto label_10;
                                             |             }
    0x0002b10c addiu s7, zero, 1             |             s7 = 1;
    0x0002b110 b 0x2b9c0                     |             goto label_9;
                                             |         }
    0x0002b114 addiu a0, zero, 1             |         a0 = 1;
    0x0002b118 addiu a1, zero, 4             |         a1 = 4;
    0x0002b11c jalr t9                       |         t9 ();
    0x0002b120 sw v0, 4(s0)                  |         *((s0 + 1)) = v0;
    0x0002b124 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x0002b128 beqz v0, 0x2ba30              |             goto label_11;
                                             |         }
    0x0002b12c sw zero, 8(s0)                |         *((s0 + 2)) = 0;
                                             |     }
                                             | label_10:
    0x0002b130 lw a0, -0x7fa8(gp)            |     a0 = *((gp - 8170));
    0x0002b134 lw t9, -0x7f84(gp)            |     t9 = *((gp - 8161));
    0x0002b138 addiu a0, a0, -0x71b4         |     a0 += -0x71b4;
    0x0002b13c jalr t9                       |     t9 ();
    0x0002b140 move s2, v0                   |     s2 = v0;
    0x0002b144 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x0002b148 bnez v0, 0x2b16c              |         
    0x0002b14c lw a1, -0x7fa8(gp)            |         a1 = *((gp - 8170));
    0x0002b150 lw t9, -0x7f44(gp)            |         t9 = *((gp - 8145));
    0x0002b154 addiu a0, sp, 0x48            |         a0 = sp + 0x48;
    0x0002b158 addiu a1, a1, -0x7d4c         |         a1 += -0x7d4c;
    0x0002b15c bal 0x3b600                   |         sym_strcpy ()
    0x0002b160 move s2, v0                   |         s2 = v0;
    0x0002b164 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0002b168 b 0x2b1e0                     |         goto label_12;
                                             |     }
    0x0002b16c sb zero, 0x48(sp)             |     *(dest) = 0;
    0x0002b170 move a1, v0                   |     a1 = v0;
    0x0002b174 addiu v1, sp, 0x48            |     v1 = sp + 0x48;
    0x0002b178 addiu a3, zero, 0x20          |     a3 = 0x20;
    0x0002b17c addiu t0, zero, 9             |     t0 = 9;
    0x0002b180 addiu t1, zero, 0xa           |     t1 = 0xa;
    0x0002b184 b 0x2b1d0                     |     goto label_13;
                                             | label_0:
    0x0002b188 addiu v0, sp, 0x48            |     v0 = sp + 0x48;
                                             |     if (a0 == a3) {
    0x0002b18c beq a0, a3, 0x2b1a0           |         goto label_14;
                                             |     }
    0x0002b190 sltu a2, v0, v1               |     a2 = (v0 < v1) ? 1 : 0;
                                             |     if (a0 == t0) {
    0x0002b194 beq a0, t0, 0x2b1a4           |         goto label_15;
                                             |     }
    0x0002b198 addiu a1, a1, 1               |     a1++;
                                             |     if (a0 == t1) {
    0x0002b19c bnel a0, t1, 0x2b1d0          |         goto label_13;
                                             |     }
                                             |     do {
                                             | label_14:
    0x0002b1a0 sltu a2, v0, v1               |         a2 = (v0 < v1) ? 1 : 0;
                                             |         if (a2 == 0) {
                                             | label_15:
    0x0002b1a4 beqz a2, 0x2b1c0              |             goto label_16;
                                             |         }
    0x0002b1a8 nop                           |         
    0x0002b1ac lbu a2, (v0)                  |         a2 = *(v0);
                                             |         if (a2 == 0) {
    0x0002b1b0 beqz a2, 0x2b1c0              |             goto label_16;
                                             |         }
    0x0002b1b4 nop                           |         
    0x0002b1b8 addiu v0, v0, 1               |         v0++;
    0x0002b1bc bnel a2, a0, 0x2b1a0          |         
                                             |     } while (a2 == a0);
                                             | label_16:
    0x0002b1c0 addiu a1, a1, 1               |     a1++;
                                             |     if (v0 == v1) {
    0x0002b1c4 bne v0, v1, 0x2b1d0           |         
    0x0002b1c8 sb a0, (v1)                   |         *(v1) = a0;
    0x0002b1cc addiu v1, v1, 1               |         v1++;
                                             |     }
                                             | label_13:
    0x0002b1d0 lbu a0, (a1)                  |     a0 = *(a1);
                                             |     if (a0 != 0) {
    0x0002b1d4 bnez a0, 0x2b188              |         goto label_0;
                                             |     }
    0x0002b1d8 nop                           |     
    0x0002b1dc sb zero, (v1)                 |     *(v1) = 0;
                                             | label_12:
    0x0002b1e0 sw zero, 0x58(sp)             |     *(var_58h) = 0;
    0x0002b1e4 lw s4, -0x7fb4(gp)            |     s4 = *((gp - 8173));
    0x0002b1e8 lw s5, -0x7fb4(gp)            |     s5 = *((gp - 8173));
    0x0002b1ec b 0x2b988                     |     goto label_17;
                                             | label_6:
    0x0002b1f0 sltiu v1, s6, 0x40            |     v1 = (s6 < 0x40) ? 1 : 0;
                                             |     if (s6 == v1) {
    0x0002b1f4 beq s6, v1, 0x2b53c           |         goto label_18;
                                             |     }
    0x0002b1f8 addiu v1, zero, 0x5c          |     v1 = 0x5c;
                                             |     if (v1 != 0) {
    0x0002b1fc beqz v1, 0x2b238              |         
    0x0002b200 addiu v1, zero, 0x24          |         v1 = 0x24;
    0x0002b204 sltiu v1, s6, 0x25            |         v1 = (s6 < 0x25) ? 1 : 0;
                                             |         if (s6 == v1) {
    0x0002b208 beq s6, v1, 0x2b2a4           |             goto label_19;
                                             |         }
    0x0002b20c addiu v1, zero, 0x27          |         v1 = 0x27;
                                             |         if (v1 != 0) {
    0x0002b210 beqz v1, 0x2b228              |             
    0x0002b214 addiu v1, zero, 0x22          |             v1 = 0x22;
    0x0002b218 lw a0, -0x7fa8(gp)            |             a0 = *((gp - 8170));
                                             |             if (s6 != v1) {
    0x0002b21c bne s6, v1, 0x2b8dc           |                 goto label_20;
                                             |             }
    0x0002b220 addiu v0, v0, 1               |             v0++;
    0x0002b224 b 0x2b334                     |             goto label_21;
                                             |         }
                                             |         if (s6 == v1) {
    0x0002b228 beql s6, v1, 0x2b488          |             goto label_22;
                                             |         }
    0x0002b22c addiu v0, v0, 1               |         v0++;
    0x0002b230 addiu v0, zero, 0x2a          |         v0 = 0x2a;
    0x0002b234 b 0x2b24c                     |         
                                             |     } else {
    0x0002b238 sltiu v1, s6, 0x5d            |         v1 = (s6 < 0x5d) ? 1 : 0;
                                             |         if (s6 == v1) {
    0x0002b23c beq s6, v1, 0x2b278           |             goto label_23;
                                             |         }
    0x0002b240 addiu v1, zero, 0x60          |         v1 = 0x60;
                                             |         if (v1 == 0) {
    0x0002b244 beqz v1, 0x2b25c              |             goto label_24;
                                             |         }
    0x0002b248 addiu v0, zero, 0x5b          |         v0 = 0x5b;
                                             |     }
    0x0002b24c lw a0, -0x7fa8(gp)            |     a0 = *((gp - 8170));
                                             |     if (s6 != v0) {
    0x0002b250 bne s6, v0, 0x2b8dc           |         goto label_20;
                                             |     }
    0x0002b254 sw zero, 0x3c(sp)             |     *(var_3ch) = 0;
    0x0002b258 b 0x2b540                     |     goto label_25;
                                             | label_24:
    0x0002b25c andi v1, s3, 4                |     v1 = s3 & 4;
                                             |     if (s6 != v1) {
    0x0002b260 beq s6, v1, 0x2b2e8           |         
    0x0002b264 addiu v0, zero, 0x7e          |         v0 = 0x7e;
    0x0002b268 lw a0, -0x7fa8(gp)            |         a0 = *((gp - 8170));
                                             |         if (s6 != v0) {
    0x0002b26c bne s6, v0, 0x2b8dc           |             goto label_20;
                                             |         }
    0x0002b270 addiu v0, sp, 0x58            |         v0 = sp + 0x58;
    0x0002b274 b 0x2b500                     |         goto label_26;
                                             | label_23:
    0x0002b278 lw t9, -0x7fb4(gp)            |         t9 = *((gp - 8173));
    0x0002b27c addiu v0, sp, 0x58            |         v0 = sp + 0x58;
    0x0002b280 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0002b284 addiu a0, sp, 0x4c            |         a0 = sp + 0x4c;
    0x0002b288 addiu a1, sp, 0x54            |         a1 = sp + 0x54;
    0x0002b28c addiu a2, sp, 0x50            |         a2 = sp + 0x50;
    0x0002b290 addiu t9, t9, -0x7cb0         |         t9 += -0x7cb0;
    0x0002b294 move a3, s1                   |         a3 = s1;
    0x0002b298 bal 0x28350                   |         fcn_00028350 ();
    0x0002b29c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0002b2a0 b 0x2b52c                     |         goto label_27;
                                             | label_19:
    0x0002b2a4 lw t9, -0x7fb4(gp)            |         t9 = *((gp - 8173));
    0x0002b2a8 addiu v0, sp, 0x58            |         v0 = sp + 0x58;
    0x0002b2ac sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0002b2b0 addiu v0, sp, 0x48            |         v0 = sp + 0x48;
    0x0002b2b4 sw s3, 0x14(sp)               |         *(var_14h) = s3;
    0x0002b2b8 sw s0, 0x18(sp)               |         *(var_18h) = s0;
    0x0002b2bc sw s2, 0x1c(sp)               |         *(var_1ch) = s2;
    0x0002b2c0 sw v0, 0x20(sp)               |         *(var_20h) = v0;
    0x0002b2c4 sw zero, 0x24(sp)             |         *(var_24h) = 0;
    0x0002b2c8 addiu a0, sp, 0x4c            |         a0 = sp + 0x4c;
    0x0002b2cc addiu a1, sp, 0x54            |         a1 = sp + 0x54;
    0x0002b2d0 addiu a2, sp, 0x50            |         a2 = sp + 0x50;
    0x0002b2d4 addiu t9, t9, -0x6664         |         t9 += -0x6664;
    0x0002b2d8 move a3, s1                   |         a3 = s1;
    0x0002b2dc bal 0x2999c                   |         fcn_0002999c ();
    0x0002b2e0 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0002b2e4 b 0x2b52c                     |         goto label_27;
                                             |     }
    0x0002b2e8 lw t9, -0x7fb4(gp)            |     t9 = *((gp - 8173));
                                             |     if (v1 != 0) {
    0x0002b2ec bnez v1, 0x2ba14              |         goto label_28;
                                             |     }
    0x0002b2f0 addiu v0, v0, 1               |     v0++;
    0x0002b2f4 sw v0, 0x58(sp)               |     *(var_58h) = v0;
    0x0002b2f8 addiu v0, sp, 0x58            |     v0 = sp + 0x58;
    0x0002b2fc sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002b300 addiu v0, sp, 0x48            |     v0 = sp + 0x48;
    0x0002b304 sw s3, 0x14(sp)               |     *(var_14h) = s3;
    0x0002b308 sw s0, 0x18(sp)               |     *(var_18h) = s0;
    0x0002b30c sw s2, 0x1c(sp)               |     *(var_1ch) = s2;
    0x0002b310 sw v0, 0x20(sp)               |     *(var_20h) = v0;
    0x0002b314 addiu a0, sp, 0x4c            |     a0 = sp + 0x4c;
    0x0002b318 addiu a1, sp, 0x54            |     a1 = sp + 0x54;
    0x0002b31c addiu a2, sp, 0x50            |     a2 = sp + 0x50;
    0x0002b320 addiu t9, t9, -0x73e4         |     t9 += -0x73e4;
    0x0002b324 move a3, s1                   |     a3 = s1;
    0x0002b328 bal 0x28c1c                   |     fcn_00028c1c ();
    0x0002b32c lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0002b330 b 0x2b52c                     |     goto label_27;
                                             | label_21:
    0x0002b334 sw v0, 0x58(sp)               |     *(var_58h) = v0;
    0x0002b338 lw fp, -0x7fb4(gp)            |     fp = *((gp - 8173));
    0x0002b33c lw s6, -0x7fb4(gp)            |     s6 = *((gp - 8173));
    0x0002b340 b 0x2b46c                     |     goto label_29;
                                             | label_3:
    0x0002b344 sltiu v1, a3, 0x25            |     v1 = (a3 < 0x25) ? 1 : 0;
                                             |     if (a3 != v1) {
    0x0002b348 beq a3, v1, 0x2b380           |         
                                             |         if (v1 != 0) {
    0x0002b34c beql v1, zero, 0x2b368        |             
    0x0002b350 addiu v1, zero, 0x5c          |             v1 = 0x5c;
    0x0002b354 addiu v0, zero, 0x22          |             v0 = 0x22;
    0x0002b358 lw a0, 0x4c(sp)               |             a0 = *(var_4ch);
                                             |             if (a3 != v0) {
    0x0002b35c bne a3, v0, 0x2b448           |                 goto label_30;
                                             |             }
    0x0002b360 lw v0, 0x54(sp)               |             v0 = *(var_54h);
    0x0002b364 b 0x2ba20                     |             goto label_31;
                                             |         }
    0x0002b368 addiu v1, zero, 0x60          |         v1 = 0x60;
                                             |         if (a3 == v1) {
    0x0002b36c beq a3, v1, 0x2b41c           |             goto label_32;
                                             |         }
    0x0002b370 lw a0, 0x4c(sp)               |         a0 = *(var_4ch);
                                             |         if (a3 != v1) {
    0x0002b374 bne a3, v1, 0x2b448           |             goto label_30;
                                             |         }
    0x0002b378 andi v1, s3, 4                |         v1 = s3 & 4;
    0x0002b37c b 0x2b3d8                     |         goto label_33;
                                             |     }
    0x0002b380 addiu v0, sp, 0x58            |     v0 = sp + 0x58;
    0x0002b384 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002b388 addiu v0, sp, 0x48            |     v0 = sp + 0x48;
    0x0002b38c sw v0, 0x20(sp)               |     *(var_20h) = v0;
    0x0002b390 addiu v0, zero, 1             |     v0 = 1;
    0x0002b394 sw s3, 0x14(sp)               |     *(var_14h) = s3;
    0x0002b398 sw s0, 0x18(sp)               |     *(var_18h) = s0;
    0x0002b39c sw s2, 0x1c(sp)               |     *(var_1ch) = s2;
    0x0002b3a0 sw v0, 0x24(sp)               |     *(var_24h) = v0;
    0x0002b3a4 addiu a0, sp, 0x4c            |     a0 = sp + 0x4c;
    0x0002b3a8 addiu a1, sp, 0x54            |     a1 = sp + 0x54;
    0x0002b3ac addiu a2, sp, 0x50            |     a2 = sp + 0x50;
    0x0002b3b0 addiu t9, fp, -0x6664         |     t9 = fp + -0x6664;
    0x0002b3b4 move a3, s1                   |     a3 = s1;
    0x0002b3b8 bal 0x2999c                   |     fcn_0002999c ();
    0x0002b3bc lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     do {
                                             | label_1:
    0x0002b3c0 move s7, v0                   |         s7 = v0;
                                             |         if (v0 != 0) {
    0x0002b3c4 bnez v0, 0x2b9c0              |             goto label_9;
                                             |         }
                                             | label_2:
    0x0002b3c8 lw v0, 0x58(sp)               |         v0 = *(var_58h);
    0x0002b3cc addiu v0, v0, 1               |         v0++;
    0x0002b3d0 sw v0, 0x58(sp)               |         *(var_58h) = v0;
    0x0002b3d4 b 0x2b46c                     |         goto label_29;
                                             | label_33:
    0x0002b3d8 addiu v0, v0, 1               |         v0++;
                                             |         if (v1 != 0) {
    0x0002b3dc bnez v1, 0x2ba14              |             goto label_28;
                                             |         }
    0x0002b3e0 sw v0, 0x58(sp)               |         *(var_58h) = v0;
    0x0002b3e4 addiu v0, sp, 0x58            |         v0 = sp + 0x58;
    0x0002b3e8 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x0002b3ec sw s3, 0x14(sp)               |         *(var_14h) = s3;
    0x0002b3f0 sw zero, 0x18(sp)             |         *(var_18h) = 0;
    0x0002b3f4 sw zero, 0x1c(sp)             |         *(var_1ch) = 0;
    0x0002b3f8 sw zero, 0x20(sp)             |         *(var_20h) = 0;
    0x0002b3fc addiu a0, sp, 0x4c            |         a0 = sp + 0x4c;
    0x0002b400 addiu a1, sp, 0x54            |         a1 = sp + 0x54;
    0x0002b404 addiu a2, sp, 0x50            |         a2 = sp + 0x50;
    0x0002b408 addiu t9, s6, -0x73e4         |         t9 = s6 + -0x73e4;
    0x0002b40c move a3, s1                   |         a3 = s1;
    0x0002b410 bal 0x28c1c                   |         fcn_00028c1c ();
    0x0002b414 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0002b418 b 0x2b3c0                     |         
                                             |     } while (1);
                                             | label_32:
    0x0002b41c addiu v0, sp, 0x58            |     v0 = sp + 0x58;
    0x0002b420 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002b424 lw v0, -0x7fb4(gp)            |     v0 = *((gp - 8173));
    0x0002b428 addiu a0, sp, 0x4c            |     a0 = sp + 0x4c;
    0x0002b42c addiu a1, sp, 0x54            |     a1 = sp + 0x54;
    0x0002b430 addiu a2, sp, 0x50            |     a2 = sp + 0x50;
    0x0002b434 addiu t9, v0, -0x7c1c         |     t9 = v0 + -0x7c1c;
    0x0002b438 move a3, s1                   |     a3 = s1;
    0x0002b43c bal 0x283e4                   |     fcn_000283e4 ();
    0x0002b440 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0002b444 b 0x2b3c0                     |     goto label_1;
                                             | label_30:
    0x0002b448 addiu a1, sp, 0x54            |     a1 = sp + 0x54;
    0x0002b44c addiu t9, s4, -0x7d70         |     t9 = s4 + -0x7d70;
    0x0002b450 addiu a2, sp, 0x50            |     a2 = sp + 0x50;
    0x0002b454 bal 0x28290                   |     fcn_00028290 ();
    0x0002b458 sw v0, 0x4c(sp)               |     *(var_4ch) = v0;
    0x0002b45c lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x0002b460 bnez v0, 0x2b3c8              |         goto label_2;
                                             |     }
    0x0002b464 addiu s7, zero, 1             |     s7 = 1;
    0x0002b468 b 0x2b9c0                     |     goto label_9;
                                             | label_29:
    0x0002b46c lw v0, 0x58(sp)               |     v0 = *(var_58h);
    0x0002b470 addu v1, s1, v0               |     v1 = s1 + v0;
    0x0002b474 lbu a3, (v1)                  |     a3 = *(v1);
    0x0002b478 addiu v1, zero, 0x24          |     v1 = 0x24;
                                             |     if (a3 != 0) {
    0x0002b47c bnez a3, 0x2b344              |         goto label_3;
                                             |     }
    0x0002b480 addiu s7, zero, 5             |     s7 = 5;
    0x0002b484 b 0x2b9c0                     |     goto label_9;
                                             | label_22:
    0x0002b488 sw v0, 0x58(sp)               |     *(var_58h) = v0;
    0x0002b48c addiu s6, zero, 0x27          |     s6 = 0x27;
    0x0002b490 b 0x2b4c4                     |     
                                             |     while (a3 != 0) {
    0x0002b494 lw a0, 0x4c(sp)               |         a0 = *(var_4ch);
                                             |         if (a3 == s6) {
    0x0002b498 beq a3, s6, 0x2ba1c           |             goto label_34;
                                             |         }
    0x0002b49c addiu a1, sp, 0x54            |         a1 = sp + 0x54;
    0x0002b4a0 addiu t9, s4, -0x7d70         |         t9 = s4 + -0x7d70;
    0x0002b4a4 addiu a2, sp, 0x50            |         a2 = sp + 0x50;
    0x0002b4a8 bal 0x28290                   |         fcn_00028290 ();
    0x0002b4ac sw v0, 0x4c(sp)               |         *(var_4ch) = v0;
    0x0002b4b0 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 == 0) {
    0x0002b4b4 beqz v0, 0x2ba30              |             goto label_11;
                                             |         }
    0x0002b4b8 lw v0, 0x58(sp)               |         v0 = *(var_58h);
    0x0002b4bc addiu v0, v0, 1               |         v0++;
    0x0002b4c0 sw v0, 0x58(sp)               |         *(var_58h) = v0;
    0x0002b4c4 lw v0, 0x58(sp)               |         v0 = *(var_58h);
    0x0002b4c8 addu v0, s1, v0               |         v0 = s1 + v0;
    0x0002b4cc lbu a3, (v0)                  |         a3 = *(v0);
    0x0002b4d0 addiu s7, zero, 5             |         s7 = 5;
    0x0002b4d4 bnez a3, 0x2b494              |         
                                             |     }
    0x0002b4d8 lw t9, -0x7668(gp)            |     t9 = *((gp - 7578));
    0x0002b4dc b 0x2b9c4                     |     goto label_35;
                                             | label_8:
    0x0002b4e0 addiu t9, s5, -0x795c         |     t9 = s5 + -0x795c;
    0x0002b4e4 move a1, zero                 |     a1 = 0;
    0x0002b4e8 bal 0x286a4                   |     fcn_000286a4 ();
    0x0002b4ec move s7, v0                   |     s7 = v0;
    0x0002b4f0 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 == 0) {
    0x0002b4f4 beqz v0, 0x2b97c              |         goto label_36;
                                             |     }
    0x0002b4f8 lw ra, 0x9c(sp)               |     ra = *(var_9ch);
    0x0002b4fc b 0x2ba3c                     |     goto label_37;
                                             | label_26:
    0x0002b500 lw t9, -0x7fb4(gp)            |     t9 = *((gp - 8173));
    0x0002b504 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0002b508 lw v0, (s0)                   |     v0 = *(s0);
    0x0002b50c addiu a0, sp, 0x4c            |     a0 = sp + 0x4c;
    0x0002b510 addiu a1, sp, 0x54            |     a1 = sp + 0x54;
    0x0002b514 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0002b518 addiu a2, sp, 0x50            |     a2 = sp + 0x50;
    0x0002b51c addiu t9, t9, -0x71f8         |     t9 += -0x71f8;
    0x0002b520 move a3, s1                   |     a3 = s1;
    0x0002b524 bal 0x28e08                   |     fcn_00028e08 ();
    0x0002b528 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             | label_27:
    0x0002b52c move s7, v0                   |     s7 = v0;
                                             |     if (v0 == 0) {
    0x0002b530 beqz v0, 0x2b97c              |         goto label_36;
                                             |     }
    0x0002b534 lw t9, -0x7668(gp)            |     t9 = *((gp - 7578));
    0x0002b538 b 0x2b9c4                     |     goto label_35;
                                             | label_18:
    0x0002b53c sw zero, 0x3c(sp)             |     *(var_3ch) = 0;
                                             | label_25:
    0x0002b540 sw zero, 0x40(sp)             |     *(var_40h) = 0;
    0x0002b544 sw zero, 0x44(sp)             |     *(var_44h) = 0;
    0x0002b548 move s6, zero                 |     s6 = 0;
    0x0002b54c addiu s7, zero, 1             |     s7 = 1;
    0x0002b550 b 0x2b6b8                     |     
                                             |     while (fp != 0) {
    0x0002b554 lw t9, -0x7f90(gp)            |         t9 = *((gp - 8164));
                                             |         if (s2 != 0) {
    0x0002b558 beqz s2, 0x2b564              |             
    0x0002b55c move a0, s2                   |             a0 = s2;
    0x0002b560 b 0x2b56c                     |             
                                             |         } else {
    0x0002b564 lw a0, -0x7fa8(gp)            |             a0 = *((gp - 8170));
    0x0002b568 addiu a0, a0, -0x7d4c         |             a0 += -0x7d4c;
                                             |         }
    0x0002b56c move a1, fp                   |         a1 = fp;
    0x0002b570 bal 0x3b3e0                   |         sym_index ();
    0x0002b574 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x0002b578 bnez v0, 0x2b6cc              |             goto label_38;
                                             |         }
    0x0002b57c addiu v0, zero, 0x27          |         v0 = 0x27;
    0x0002b580 addiu v0, zero, 0x22          |         v0 = 0x22;
                                             |         if (fp != v0) {
    0x0002b584 bnel fp, v0, 0x2b598          |             
    0x0002b588 addiu v0, zero, 1             |             v0 = 1;
                                             |             if (s6 == 0) {
    0x0002b58c bnez s6, 0x2b5ac              |                 
    0x0002b590 addiu s6, zero, 1             |                 s6 = 1;
    0x0002b594 b 0x2b6a0                     |                 
                                             |             } else {
    0x0002b598 addiu v0, zero, 1             |                 v0 = 1;
                                             |                 if (fp != v0) {
    0x0002b59c bne fp, v0, 0x2b5b4           |                     goto label_39;
                                             |                 }
                                             |                 if (s6 == 0) {
    0x0002b5a0 beql s6, zero, 0x2b6ac        |                     goto label_40;
                                             |                 }
    0x0002b5a4 addiu s6, zero, 2             |                 s6 = 2;
    0x0002b5a8 addiu v0, zero, 2             |                 v0 = 2;
                                             |             }
    0x0002b5ac addiu v0, zero, 1             |             v0 = 1;
                                             |             if (s6 == v0) {
    0x0002b5b0 beq s6, v0, 0x2b6a8           |                 goto label_41;
                                             |             }
                                             | label_39:
    0x0002b5b4 addiu v0, zero, 0x24          |             v0 = 0x24;
                                             |             if (s6 != v0) {
    0x0002b5b8 beq s6, v0, 0x2b620           |                 
    0x0002b5bc addiu v0, zero, 0x5c          |                 v0 = 0x5c;
                                             |                 if (fp != v0) {
    0x0002b5c0 bne fp, v0, 0x2b624           |                     goto label_42;
                                             |                 }
    0x0002b5c4 addiu v0, sp, 0x58            |                 v0 = sp + 0x58;
    0x0002b5c8 sw v0, 0x10(sp)               |                 *(var_10h) = v0;
    0x0002b5cc addiu v0, sp, 0x3c            |                 v0 = sp + 0x3c;
    0x0002b5d0 lw t9, -0x7fb4(gp)            |                 t9 = *((gp - 8173));
    0x0002b5d4 sw v0, 0x18(sp)               |                 *(var_18h) = v0;
    0x0002b5d8 addiu v0, sp, 0x48            |                 v0 = sp + 0x48;
    0x0002b5dc sw v0, 0x20(sp)               |                 *(var_20h) = v0;
    0x0002b5e0 xori v0, s6, 2                |                 v0 = s6 ^ 2;
    0x0002b5e4 sltiu v0, v0, 1               |                 v0 = (v0 < 1) ? 1 : 0;
    0x0002b5e8 sw s3, 0x14(sp)               |                 *(var_14h) = s3;
    0x0002b5ec sw s2, 0x1c(sp)               |                 *(var_1ch) = s2;
    0x0002b5f0 sw v0, 0x24(sp)               |                 *(var_24h) = v0;
    0x0002b5f4 addiu a0, sp, 0x4c            |                 a0 = sp + 0x4c;
    0x0002b5f8 addiu a1, sp, 0x54            |                 a1 = sp + 0x54;
    0x0002b5fc addiu a2, sp, 0x50            |                 a2 = sp + 0x50;
    0x0002b600 addiu t9, t9, -0x6664         |                 t9 += -0x6664;
    0x0002b604 move a3, s1                   |                 a3 = s1;
    0x0002b608 bal 0x2999c                   |                 fcn_0002999c ();
    0x0002b60c move s7, v0                   |                 s7 = v0;
    0x0002b610 lw gp, 0x28(sp)               |                 gp = *(var_28h);
                                             |                 if (v0 == 0) {
    0x0002b614 beqz v0, 0x2b6ac              |                     goto label_40;
                                             |                 }
    0x0002b618 lw t9, -0x7f48(gp)            |                 t9 = *((gp - 8146));
    0x0002b61c b 0x2b8c4                     |                 goto label_43;
                                             |             }
    0x0002b620 addiu v0, zero, 0x5c          |             v0 = 0x5c;
                                             | label_42:
    0x0002b624 lw a0, 0x4c(sp)               |             a0 = *(var_4ch);
                                             |             if (fp == v0) {
    0x0002b628 bne fp, v0, 0x2b678           |                 
    0x0002b62c addiu v1, sp, 0x58            |                 v1 = sp + 0x58;
    0x0002b630 sw v1, 0x10(sp)               |                 *(var_10h) = v1;
    0x0002b634 addiu a0, sp, 0x4c            |                 a0 = sp + 0x4c;
    0x0002b638 addiu a1, sp, 0x54            |                 a1 = sp + 0x54;
    0x0002b63c addiu a2, sp, 0x50            |                 a2 = sp + 0x50;
    0x0002b640 move a3, s1                   |                 a3 = s1;
                                             |                 if (s6 != 0) {
    0x0002b644 beqz s6, 0x2b654              |                     
    0x0002b648 lw v0, -0x7fb4(gp)            |                     v0 = *((gp - 8173));
    0x0002b64c addiu t9, v0, -0x7c1c         |                     t9 = v0 + -0x7c1c;
    0x0002b650 b 0x2b65c                     |                     
                                             |                 } else {
    0x0002b654 lw v0, -0x7fb4(gp)            |                     v0 = *((gp - 8173));
    0x0002b658 addiu t9, v0, -0x7cb0         |                     t9 = v0 + -0x7cb0;
                                             |                 }
    0x0002b65c jalr t9                       |                 t9 ();
    0x0002b660 nop                           |                 
    0x0002b664 move s7, v0                   |                 s7 = v0;
    0x0002b668 lw gp, 0x28(sp)               |                 gp = *(var_28h);
                                             |                 if (v0 == 0) {
    0x0002b66c beqz v0, 0x2b6ac              |                     goto label_40;
                                             |                 }
    0x0002b670 lw t9, -0x7f48(gp)            |                 t9 = *((gp - 8146));
    0x0002b674 b 0x2b8c4                     |                 goto label_43;
                                             |             }
    0x0002b678 addiu a1, sp, 0x54            |             a1 = sp + 0x54;
    0x0002b67c addiu a2, sp, 0x50            |             a2 = sp + 0x50;
    0x0002b680 addiu t9, s4, -0x7d70         |             t9 = s4 + -0x7d70;
    0x0002b684 move a3, fp                   |             a3 = fp;
    0x0002b688 bal 0x28290                   |             fcn_00028290 ();
    0x0002b68c sw v0, 0x4c(sp)               |             *(var_4ch) = v0;
    0x0002b690 lw gp, 0x28(sp)               |             gp = *(var_28h);
                                             |             if (v0 != 0) {
    0x0002b694 bnez v0, 0x2b6ac              |                 goto label_40;
                                             |             }
    0x0002b698 lw t9, -0x7f48(gp)            |             t9 = *((gp - 8146));
    0x0002b69c b 0x2b8c4                     |             goto label_43;
                                             |         }
    0x0002b6a0 lw v0, 0x58(sp)               |         v0 = *(var_58h);
    0x0002b6a4 b 0x2b6b0                     |         goto label_44;
                                             | label_41:
    0x0002b6a8 move s6, zero                 |         s6 = 0;
                                             | label_40:
    0x0002b6ac lw v0, 0x58(sp)               |         v0 = *(var_58h);
                                             | label_44:
    0x0002b6b0 addiu v0, v0, 1               |         v0++;
    0x0002b6b4 sw v0, 0x58(sp)               |         *(var_58h) = v0;
    0x0002b6b8 lw v1, 0x58(sp)               |         v1 = *(var_58h);
    0x0002b6bc addu v0, s1, v1               |         v0 = s1 + v1;
    0x0002b6c0 lbu fp, (v0)                  |         fp = *(v0);
    0x0002b6c4 sw v1, 0x68(sp)               |         *(var_68h) = v1;
    0x0002b6c8 bnez fp, 0x2b554              |         
                                             |     }
                                             | label_38:
    0x0002b6cc lw t9, 0x68(sp)               |     t9 = *(var_68h);
    0x0002b6d0 lw a1, 0x4c(sp)               |     a1 = *(var_4ch);
    0x0002b6d4 addiu a0, sp, 0x3c            |     a0 = sp + 0x3c;
    0x0002b6d8 addiu s6, t9, -1              |     s6 = t9 + -1;
    0x0002b6dc addiu t9, s5, -0x795c         |     t9 = s5 + -0x795c;
    0x0002b6e0 sw s6, 0x58(sp)               |     *(var_58h) = s6;
    0x0002b6e4 bal 0x286a4                   |     fcn_000286a4 ();
    0x0002b6e8 move s7, v0                   |     s7 = v0;
    0x0002b6ec lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0002b6f0 sw zero, 0x50(sp)             |     *(var_50h) = 0;
    0x0002b6f4 sw zero, 0x54(sp)             |     *(var_54h) = 0;
    0x0002b6f8 sw zero, 0x4c(sp)             |     *(var_4ch) = 0;
    0x0002b6fc move s6, zero                 |     s6 = 0;
    0x0002b700 b 0x2b8ac                     |     goto label_45;
                                             | label_5:
    0x0002b704 sll v0, s6, 2                 |     v0 = s6 << 2;
    0x0002b708 lw t9, -0x7f40(gp)            |     t9 = *((gp - 8144));
    0x0002b70c addu v0, v1, v0               |     v0 = v1 + v0;
    0x0002b710 lw a0, (v0)                   |     a0 = *(v0);
    0x0002b714 addiu a1, zero, 0x10          |     a1 = 0x10;
    0x0002b718 move a2, zero                 |     a2 = 0;
    0x0002b71c addiu a3, sp, 0x30            |     a3 = sp + 0x30;
    0x0002b720 bal 0x17e64                   |     sym_glob ();
    0x0002b724 addiu s7, zero, 1             |     s7 = 1;
    0x0002b728 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (v0 != 0) {
    0x0002b72c bnez v0, 0x2b8a8              |         goto label_46;
                                             |     }
    0x0002b730 lw a0, 0x4c(sp)               |     a0 = *(var_4ch);
                                             |     if (s2 == 0) {
    0x0002b734 beqz s2, 0x2b804              |         goto label_47;
                                             |     }
    0x0002b738 lbu v0, (s2)                  |     v0 = *(s2);
    0x0002b73c lw v0, 0x34(sp)               |     v0 = *(var_34h);
                                             |     if (v0 != 0) {
    0x0002b740 bnez v0, 0x2b804              |         goto label_47;
                                             |     }
    0x0002b744 addiu s7, sp, 0x54            |     s7 = sp + 0x54;
    0x0002b748 addiu fp, sp, 0x50            |     fp = sp + 0x50;
    0x0002b74c lw a3, (v0)                   |     a3 = *(v0);
    0x0002b750 lw v0, -0x7fb4(gp)            |     v0 = *((gp - 8173));
    0x0002b754 move a1, s7                   |     a1 = s7;
    0x0002b758 addiu t9, v0, -0x79c8         |     t9 = v0 + -0x79c8;
    0x0002b75c move a2, fp                   |     a2 = fp;
    0x0002b760 bal 0x28638                   |     fcn_00028638 ();
    0x0002b764 sw v0, 0x4c(sp)               |     *(var_4ch) = v0;
    0x0002b768 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0002b76c addiu v1, zero, 1             |     v1 = 1;
    0x0002b770 b 0x2b7d0                     |     
                                             |     while (a0 == 0) {
    0x0002b774 move a1, s7                   |         a1 = s7;
    0x0002b778 move a2, fp                   |         a2 = fp;
    0x0002b77c addiu t9, s4, -0x7d70         |         t9 = s4 + -0x7d70;
    0x0002b780 addiu a3, zero, 0x20          |         a3 = 0x20;
    0x0002b784 bal 0x28290                   |         fcn_00028290 ();
    0x0002b788 sw v0, 0x4c(sp)               |         *(var_4ch) = v0;
    0x0002b78c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0002b790 lw v1, 0x74(sp)               |         v1 = *(var_74h);
                                             |         if (v0 != 0) {
    0x0002b794 beqz v0, 0x2b7cc              |             
    0x0002b798 lw a0, 0x34(sp)               |             a0 = *(var_34h);
    0x0002b79c sll a3, v1, 2                 |             a3 = v1 << 2;
    0x0002b7a0 move a1, s7                   |             a1 = s7;
    0x0002b7a4 addu a3, a0, a3               |             a3 = a0 + a3;
    0x0002b7a8 move a0, v0                   |             a0 = v0;
    0x0002b7ac lw v0, -0x7fb4(gp)            |             v0 = *((gp - 8173));
    0x0002b7b0 lw a3, (a3)                   |             a3 = *(a3);
    0x0002b7b4 addiu t9, v0, -0x79c8         |             t9 = v0 + -0x79c8;
    0x0002b7b8 move a2, fp                   |             a2 = fp;
    0x0002b7bc bal 0x28638                   |             fcn_00028638 ();
    0x0002b7c0 lw gp, 0x28(sp)               |             gp = *(var_28h);
    0x0002b7c4 lw v1, 0x74(sp)               |             v1 = *(var_74h);
    0x0002b7c8 sw v0, 0x4c(sp)               |             *(var_4ch) = v0;
                                             |         }
    0x0002b7cc addiu v1, v1, 1               |         v1++;
    0x0002b7d0 lw v0, 0x30(sp)               |         v0 = *(var_30h);
    0x0002b7d4 sltu v0, v1, v0               |         v0 = (v1 < v0) ? 1 : 0;
    0x0002b7d8 lw a0, 0x4c(sp)               |         a0 = *(var_4ch);
                                             |         if (v0 == 0) {
    0x0002b7dc beqz v0, 0x2b7e8              |             goto label_48;
                                             |         }
    0x0002b7e0 sw v1, 0x74(sp)               |         *(var_74h) = v1;
    0x0002b7e4 bnel a0, zero, 0x2b774        |         
                                             |     }
                                             | label_48:
    0x0002b7e8 lw t9, -0x7f3c(gp)            |     t9 = *((gp - 8143));
    0x0002b7ec addiu a0, sp, 0x30            |     a0 = sp + 0x30;
    0x0002b7f0 bal 0x1810c                   |     sym_globfree ();
    0x0002b7f4 lw v1, 0x4c(sp)               |     v1 = *(var_4ch);
    0x0002b7f8 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0002b7fc sltiu s7, v1, 1               |     s7 = (v1 < 1) ? 1 : 0;
    0x0002b800 b 0x2b8a8                     |     goto label_46;
                                             | label_47:
    0x0002b804 lw t9, -0x7668(gp)            |     t9 = *((gp - 7578));
                                             |     if (a0 != 0) {
    0x0002b808 beqz a0, 0x2b824              |         
    0x0002b80c jalr t9                       |         t9 ();
    0x0002b810 nop                           |         
    0x0002b814 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0002b818 sw zero, 0x50(sp)             |         *(var_50h) = 0;
    0x0002b81c sw zero, 0x54(sp)             |         *(var_54h) = 0;
    0x0002b820 sw zero, 0x4c(sp)             |         *(var_4ch) = 0;
                                             |     }
    0x0002b824 move fp, zero                 |     fp = 0;
    0x0002b828 lw s7, -0x7fac(gp)            |     s7 = *((gp - 8171));
    0x0002b82c b 0x2b884                     |     goto label_49;
                                             | label_4:
    0x0002b830 sll v0, fp, 2                 |     v0 = fp << 2;
    0x0002b834 move t9, s7                   |     t9 = s7;
    0x0002b838 addu v0, v1, v0               |     v0 = v1 + v0;
    0x0002b83c lw a0, (v0)                   |     a0 = *(v0);
    0x0002b840 bal 0x3c240                   |     sym_strdup ();
    0x0002b844 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0002b848 bnez v0, 0x2b864              |     
                                             |     while (v0 != 0) {
    0x0002b84c lw t9, -0x7f3c(gp)            |         t9 = *((gp - 8143));
    0x0002b850 addiu a0, sp, 0x30            |         a0 = sp + 0x30;
    0x0002b854 addiu s7, zero, 1             |         s7 = 1;
    0x0002b858 bal 0x1810c                   |         sym_globfree ();
    0x0002b85c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0002b860 b 0x2b8a8                     |         goto label_46;
    0x0002b864 move a1, v0                   |         a1 = v0;
    0x0002b868 lw v0, -0x7fb4(gp)            |         v0 = *((gp - 8173));
    0x0002b86c addiu t9, v0, -0x795c         |         t9 = v0 + -0x795c;
    0x0002b870 move a0, s0                   |         a0 = s0;
    0x0002b874 bal 0x286a4                   |         fcn_000286a4 ();
    0x0002b878 lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0002b87c bnez v0, 0x2b84c              |         
                                             |     }
    0x0002b880 addiu fp, fp, 1               |     fp++;
                                             | label_49:
    0x0002b884 lw v0, 0x30(sp)               |     v0 = *(var_30h);
    0x0002b888 sltu v0, fp, v0               |     v0 = (fp < v0) ? 1 : 0;
    0x0002b88c lw v1, 0x34(sp)               |     v1 = *(var_34h);
                                             |     if (v0 != 0) {
    0x0002b890 bnez v0, 0x2b830              |         goto label_4;
                                             |     }
    0x0002b894 lw t9, -0x7f3c(gp)            |     t9 = *((gp - 8143));
    0x0002b898 addiu a0, sp, 0x30            |     a0 = sp + 0x30;
    0x0002b89c move s7, zero                 |     s7 = 0;
    0x0002b8a0 bal 0x1810c                   |     sym_globfree ();
    0x0002b8a4 lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             | label_46:
    0x0002b8a8 addiu s6, s6, 1               |     s6++;
                                             | label_45:
    0x0002b8ac lw v0, 0x3c(sp)               |     v0 = *(var_3ch);
                                             |     if (s7 != 0) {
    0x0002b8b0 bnez s7, 0x2b8c0              |         goto label_50;
                                             |     }
    0x0002b8b4 sltu v0, s6, v0               |     v0 = (s6 < v0) ? 1 : 0;
    0x0002b8b8 lw v1, 0x40(sp)               |     v1 = *(var_40h);
                                             |     if (v0 != 0) {
    0x0002b8bc bnez v0, 0x2b704              |         goto label_5;
                                             |     }
                                             | label_50:
    0x0002b8c0 lw t9, -0x7f48(gp)            |     t9 = *((gp - 8146));
                                             | label_43:
    0x0002b8c4 addiu a0, sp, 0x3c            |     a0 = sp + 0x3c;
    0x0002b8c8 bal 0x2afc8                   |     sym_wordfree ();
    0x0002b8cc lw gp, 0x28(sp)               |     gp = *(var_28h);
                                             |     if (s7 == 0) {
    0x0002b8d0 beqz s7, 0x2b97c              |         goto label_36;
                                             |     }
    0x0002b8d4 lw t9, -0x7668(gp)            |     t9 = *((gp - 7578));
    0x0002b8d8 b 0x2b9c4                     |     goto label_35;
                                             | label_20:
    0x0002b8dc lw fp, -0x7f90(gp)            |     fp = *((gp - 8164));
    0x0002b8e0 move a1, s6                   |     a1 = s6;
    0x0002b8e4 move t9, fp                   |     t9 = fp;
    0x0002b8e8 addiu a0, a0, -0x716c         |     a0 += -0x716c;
    0x0002b8ec bal 0x3b3e0                   |     sym_index ();
    0x0002b8f0 lw gp, 0x28(sp)               |     gp = *(var_28h);
    0x0002b8f4 lw s7, 0x4c(sp)               |     s7 = *(var_4ch);
                                             |     if (v0 == 0) {
    0x0002b8f8 bnez v0, 0x2b944              |         
    0x0002b8fc lw a0, -0x7fa8(gp)            |         a0 = *((gp - 8170));
    0x0002b900 move a1, s6                   |         a1 = s6;
    0x0002b904 move t9, fp                   |         t9 = fp;
    0x0002b908 addiu a0, a0, -0x7168         |         a0 += -0x7168;
    0x0002b90c bal 0x3b3e0                   |         sym_index ();
    0x0002b910 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x0002b914 bnez v0, 0x2b9bc              |             goto label_51;
                                             |         }
    0x0002b918 move a0, s7                   |         a0 = s7;
    0x0002b91c addiu a1, sp, 0x54            |         a1 = sp + 0x54;
    0x0002b920 addiu a2, sp, 0x50            |         a2 = sp + 0x50;
    0x0002b924 addiu t9, s4, -0x7d70         |         t9 = s4 + -0x7d70;
    0x0002b928 move a3, s6                   |         a3 = s6;
    0x0002b92c bal 0x28290                   |         fcn_00028290 ();
    0x0002b930 sw v0, 0x4c(sp)               |         *(var_4ch) = v0;
    0x0002b934 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (v0 != 0) {
    0x0002b938 bnez v0, 0x2b97c              |             goto label_36;
                                             |         }
    0x0002b93c addiu s7, zero, 1             |         s7 = 1;
    0x0002b940 b 0x2b9c0                     |         goto label_9;
                                             |     }
    0x0002b944 move a1, s7                   |     a1 = s7;
    0x0002b948 bnez s7, 0x2b95c              |     
                                             |     while (v0 == 0) {
    0x0002b94c sw zero, 0x50(sp)             |         *(var_50h) = 0;
    0x0002b950 sw zero, 0x54(sp)             |         *(var_54h) = 0;
    0x0002b954 sw zero, 0x4c(sp)             |         *(var_4ch) = 0;
    0x0002b958 b 0x2b97c                     |         goto label_36;
    0x0002b95c addiu t9, s5, -0x795c         |         t9 = s5 + -0x795c;
    0x0002b960 move a0, s0                   |         a0 = s0;
    0x0002b964 bal 0x286a4                   |         fcn_000286a4 ();
    0x0002b968 move s7, v0                   |         s7 = v0;
    0x0002b96c lw gp, 0x28(sp)               |         gp = *(var_28h);
    0x0002b970 beqz v0, 0x2b94c              |         
                                             |     }
    0x0002b974 lw t9, -0x7668(gp)            |     t9 = *((gp - 7578));
    0x0002b978 b 0x2b9c4                     |     goto label_35;
                                             | label_36:
    0x0002b97c lw v0, 0x58(sp)               |     v0 = *(var_58h);
                                             | label_7:
    0x0002b980 addiu v0, v0, 1               |     v0++;
    0x0002b984 sw v0, 0x58(sp)               |     *(var_58h) = v0;
                                             | label_17:
    0x0002b988 lw v0, 0x58(sp)               |     v0 = *(var_58h);
    0x0002b98c addu v1, s1, v0               |     v1 = s1 + v0;
    0x0002b990 lbu s6, (v1)                  |     s6 = *(v1);
    0x0002b994 addiu v1, zero, 0x3f          |     v1 = 0x3f;
                                             |     if (s6 != 0) {
    0x0002b998 bnez s6, 0x2b1f0              |         goto label_6;
                                             |     }
    0x0002b99c lw a1, 0x4c(sp)               |     a1 = *(var_4ch);
    0x0002b9a0 lw t9, -0x7fb4(gp)            |     t9 = *((gp - 8173));
                                             |     if (a1 == 0) {
    0x0002b9a4 beqz a1, 0x2ba0c              |         goto label_52;
                                             |     }
    0x0002b9a8 addiu t9, t9, -0x795c         |     t9 += -0x795c;
    0x0002b9ac move a0, s0                   |     a0 = s0;
    0x0002b9b0 bal 0x286a4                   |     fcn_000286a4 ();
    0x0002b9b4 move s7, v0                   |     s7 = v0;
    0x0002b9b8 b 0x2ba38                     |     goto label_53;
                                             | label_51:
    0x0002b9bc addiu s7, zero, 2             |     s7 = 2;
                                             |     do {
                                             | label_9:
    0x0002b9c0 lw t9, -0x7668(gp)            |         t9 = *((gp - 7578));
                                             | label_35:
    0x0002b9c4 lw a0, 0x4c(sp)               |         a0 = *(var_4ch);
    0x0002b9c8 jalr t9                       |         t9 ();
    0x0002b9cc addiu v0, zero, 1             |         v0 = 1;
    0x0002b9d0 lw gp, 0x28(sp)               |         gp = *(var_28h);
                                             |         if (s7 == v0) {
    0x0002b9d4 beq s7, v0, 0x2ba38           |             goto label_53;
                                             |         }
    0x0002b9d8 lw v1, 0x60(sp)               |         v1 = *(var_60h);
    0x0002b9dc lw t9, 0x70(sp)               |         t9 = *(var_70h);
                                             |         if (v1 == 0) {
    0x0002b9e0 bnez v1, 0x2b9f4              |             
    0x0002b9e4 lw t9, -0x7f48(gp)            |             t9 = *((gp - 8146));
    0x0002b9e8 move a0, s0                   |             a0 = s0;
    0x0002b9ec bal 0x2afc8                   |             sym_wordfree ();
    0x0002b9f0 lw t9, 0x70(sp)               |             t9 = *(var_70h);
                                             |         }
    0x0002b9f4 lw v1, 0x64(sp)               |         v1 = *(var_64h);
    0x0002b9f8 sw t9, (s0)                   |         *(s0) = t9;
    0x0002b9fc lw t9, 0x6c(sp)               |         t9 = *(var_6ch);
    0x0002ba00 sw v1, 4(s0)                  |         *((s0 + 1)) = v1;
    0x0002ba04 sw t9, 8(s0)                  |         *((s0 + 2)) = t9;
    0x0002ba08 b 0x2ba38                     |         goto label_53;
                                             | label_52:
    0x0002ba0c move s7, zero                 |         s7 = 0;
    0x0002ba10 b 0x2ba38                     |         goto label_53;
                                             | label_28:
    0x0002ba14 addiu s7, zero, 4             |         s7 = 4;
    0x0002ba18 b 0x2b9c0                     |         
                                             |     } while (1);
                                             | label_34:
    0x0002ba1c lw v0, 0x54(sp)               |     v0 = *(var_54h);
                                             | label_31:
    0x0002ba20 lw v0, 0x58(sp)               |     v0 = *(var_58h);
                                             |     if (v0 != 0) {
    0x0002ba24 bnez v0, 0x2b980              |         goto label_7;
                                             |     }
    0x0002ba28 move a0, s0                   |     a0 = s0;
    0x0002ba2c b 0x2b4e0                     |     goto label_8;
                                             | label_11:
    0x0002ba30 addiu s7, zero, 1             |     s7 = 1;
    0x0002ba34 b 0x2b9c0                     |     goto label_9;
                                             | label_53:
    0x0002ba38 lw ra, 0x9c(sp)               |     ra = *(var_9ch);
                                             | label_37:
    0x0002ba3c move v0, s7                   |     v0 = s7;
    0x0002ba40 lw fp, 0x98(sp)               |     fp = *(var_98h);
    0x0002ba44 lw s7, 0x94(sp)               |     s7 = *(var_94h);
    0x0002ba48 lw s6, 0x90(sp)               |     s6 = *(var_90h);
    0x0002ba4c lw s5, 0x8c(sp)               |     s5 = *(var_8ch);
    0x0002ba50 lw s4, 0x88(sp)               |     s4 = *(var_88h);
    0x0002ba54 lw s3, 0x84(sp)               |     s3 = *(var_84h);
    0x0002ba58 lw s2, 0x80(sp)               |     s2 = *(var_80h);
    0x0002ba5c lw s1, 0x7c(sp)               |     s1 = *(var_7ch);
    0x0002ba60 lw s0, 0x78(sp)               |     s0 = *(var_78h);
    0x0002ba64 addiu sp, sp, 0xa0            |     
    0x0002ba68 jr ra                         |     return v0;
                                             | }

[*] Function strcpy used 26 times libuClibc-0.9.33.2.so