[*] Binary protection state of ld-uClibc-0.9.33.2.so

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


[*] Function printf tear down of ld-uClibc-0.9.33.2.so

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/lib/ld-uClibc-0.9.33.2.so @ 0x3614 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00003614 ()              | void fcn_00003614 () {
    0x00003614 lui gp, 2                 |     
    0x00003618 addiu gp, gp, -0x45f4     |     
    0x0000361c addu gp, gp, t9           |     gp += t9;
    0x00003620 lw v0, -0x7fb8(gp)        |     v0 = *(gp);
    0x00003624 lw v1, 0x20(a0)           |     v1 = *((a0 + 8));
    0x00003628 addiu sp, sp, -0x28       |     
    0x0000362c lw v0, (v0)               |     v0 = *(v0);
    0x00003630 sw fp, 0x20(sp)           |     *(var_20h) = fp;
    0x00003634 move fp, sp               |     fp = sp;
    0x00003638 sltu v0, v0, v1           |     v0 = (v0 < v1) ? 1 : 0;
    0x0000363c sw s0, 0x1c(sp)           |     *(var_1ch) = s0;
    0x00003640 sw ra, 0x24(sp)           |     *(var_24h) = ra;
    0x00003644 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x00003648 move s0, a0               |     s0 = a0;
                                         |     if (v0 == 0) {
    0x0000364c beqz v0, 0x3684           |         goto label_0;
                                         |     }
    0x00003650 lw a1, -0x7fe4(gp)        |     a1 = *((gp - 8185));
                                         |     do {
    0x00003654 lw t9, -0x7f94(gp)        |         t9 = sym._dl_dprintf
    0x00003658 addiu a0, zero, 2         |         a0 = 2;
    0x0000365c addiu a1, a1, 0x6b64      |         a1 += str.cannot_allocate_memory_in_static_TLS_block;
    0x00003660 bal 0x1ec4                |         sym_dl_dprintf ()
    0x00003664 lw gp, 0x10(fp)           |         gp = *(var_10h);
    0x00003668 addiu a0, zero, 0x1e      |         a0 = 0x1e;
    0x0000366c addiu v0, zero, 0xfa1     |         v0 = 0xfa1;
    0x00003670 syscall                   |         __asm ("syscall");
                                         |         if (a3 != 0) {
    0x00003674 beql a3, zero, 0x3688     |             
    0x00003678 lw v0, -0x7fc0(gp)        |             v0 = *(gp);
    0x0000367c lw v1, -0x7fdc(gp)        |             v1 = *(gp);
    0x00003680 sw v0, (v1)               |             *(v1) = v0;
                                         | label_0:
    0x00003684 lw v0, -0x7fc0(gp)        |             v0 = *(gp);
                                         |         }
    0x00003688 lw v1, 0x20(s0)           |         v1 = *((s0 + 8));
    0x0000368c lw a1, -0x7fbc(gp)        |         a1 = *(gp);
    0x00003690 lw a0, (v0)               |         a0 = *(v0);
    0x00003694 lw a1, (a1)               |         a1 = *(a1);
    0x00003698 addu a0, v1, a0           |         a0 = v1 + a0;
    0x0000369c addiu a0, a0, -1          |         a0 += -1;
    0x000036a0 negu v1, v1               |         __asm ("negu v1, v1");
    0x000036a4 and a0, a0, v1            |         a0 &= v1;
    0x000036a8 lw v1, 0x1c(s0)           |         v1 = *((s0 + 7));
    0x000036ac addu v1, a0, v1           |         v1 = a0 + v1;
    0x000036b0 sltu a1, a1, v1           |         a1 = (a1 < v1) ? 1 : 0;
    0x000036b4 lw a1, -0x7fe4(gp)        |         a1 = *((gp - 8185));
    0x000036b8 bnel a1, zero, 0x3654     |         
                                         |     } while (a1 == 0);
    0x000036bc sw v1, (v0)               |     *(v0) = v1;
    0x000036c0 lhu v0, 0x4a(s0)          |     v0 = *((s0 + 37));
    0x000036c4 andi v0, v0, 1            |     v0 &= 1;
    0x000036c8 sw a0, 0x28(s0)           |     *((s0 + 10)) = a0;
                                         |     if (v0 != 0) {
    0x000036cc beqz v0, 0x3720           |         
    0x000036d0 rdhwr v1, 29              |         __asm ("rdhwr v1, 29");
    0x000036d4 lw v0, -0x7008(v1)        |         v0 = *((v1 - 7170));
    0x000036d8 lw v1, (v0)               |         v1 = *(v0);
    0x000036dc lw v0, -0x7f64(gp)        |         v0 = *(gp);
    0x000036e0 lw v0, (v0)               |         v0 = *(v0);
    0x000036e4 lw v0, -0x7f5c(gp)        |         v0 = *(gp);
                                         |         if (v1 != v0) {
    0x000036e8 beq v1, v0, 0x3700        |             
    0x000036ec lw t9, -0x7f60(gp)        |             t9 = sym._dl_update_slotinfo;
    0x000036f0 lw a0, 0x2c(s0)           |             a0 = *((s0 + 11));
    0x000036f4 bal 0x28dc                |             sym_dl_update_slotinfo ();
    0x000036f8 lw gp, 0x10(fp)           |             gp = *(var_10h);
    0x000036fc lw v0, -0x7f5c(gp)        |             v0 = *(gp);
                                         |         }
    0x00003700 move a0, s0               |         a0 = s0;
    0x00003704 lw t9, (v0)               |         t9 = *(v0);
    0x00003708 move sp, fp               |         
    0x0000370c lw ra, 0x24(sp)           |         ra = *(var_24h);
    0x00003710 lw fp, 0x20(sp)           |         fp = *(var_20h);
    0x00003714 lw s0, 0x1c(sp)           |         s0 = *(var_1ch);
    0x00003718 addiu sp, sp, 0x28        |         
    0x0000371c jr t9                     |         t9 ();
                                         |     }
    0x00003720 lbu v0, 0x30(s0)          |     v0 = *((s0 + 48));
    0x00003724 move sp, fp               |     
    0x00003728 lw ra, 0x24(sp)           |     ra = *(var_24h);
    0x0000372c addiu v1, zero, 1         |     v1 = 1;
    0x00003730 ins v0, v1, 0, 1          |     __asm ("ins v0, v1, 0, 1");
    0x00003734 lw fp, 0x20(sp)           |     fp = *(var_20h);
    0x00003738 sb v0, 0x30(s0)           |     *((s0 + 48)) = v0;
    0x0000373c lw s0, 0x1c(sp)           |     s0 = *(var_1ch);
    0x00003740 addiu sp, sp, 0x28        |     
    0x00003744 jr ra                     |     return v0;
                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/lib/ld-uClibc-0.9.33.2.so @ 0x2fe8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.__dl_runtime_pltresolve ()       | void dl_runtime_pltresolve () {
    0x00002fe8 lui gp, 2                         |     
    0x00002fec addiu gp, gp, -0x3fc8             |     
    0x00002ff0 addu gp, gp, t9                   |     gp += t9;
    0x00002ff4 lw v0, 0xc4(a0)                   |     v0 = *((a0 + 49));
    0x00002ff8 lw v1, 0x80(a0)                   |     v1 = *((a0 + 32));
    0x00002ffc addiu sp, sp, -0x38               |     
    0x00003000 addu a1, a1, v0                   |     a1 += v0;
    0x00003004 lw v0, 4(a1)                      |     v0 = *((a1 + 1));
    0x00003008 sw s2, 0x28(sp)                   |     *(var_28h) = s2;
    0x0000300c lw s2, 0x7c(a0)                   |     s2 = *((a0 + 31));
    0x00003010 srl v0, v0, 8                     |     v0 >>= 8;
    0x00003014 sll v0, v0, 4                     |     v0 <<= 4;
    0x00003018 addu v0, v0, v1                   |     v0 += v1;
    0x0000301c lw v0, (v0)                       |     v0 = *(v0);
    0x00003020 sw s3, 0x2c(sp)                   |     *(var_2ch) = s3;
    0x00003024 lw s3, (a0)                       |     s3 = *(a0);
    0x00003028 addu s2, s2, v0                   |     s2 += v0;
    0x0000302c lw v0, (a1)                       |     v0 = *(a1);
    0x00003030 lw t9, -0x7f9c(gp)                |     t9 = sym._dl_find_hash;
    0x00003034 sw s0, 0x20(sp)                   |     *(var_20h) = s0;
    0x00003038 addu s3, s3, v0                   |     s3 += v0;
    0x0000303c lw v0, -0x7fb4(gp)                |     v0 = *(gp);
    0x00003040 move s0, a0                       |     s0 = a0;
    0x00003044 sw fp, 0x30(sp)                   |     *(var_30h) = fp;
    0x00003048 lw a1, (v0)                       |     a1 = *(v0);
    0x0000304c move fp, sp                       |     fp = sp;
    0x00003050 sw s1, 0x24(sp)                   |     *(var_24h) = s1;
    0x00003054 sw gp, 0x18(sp)                   |     *(var_18h) = gp;
    0x00003058 sw ra, 0x34(sp)                   |     *(var_34h) = ra;
    0x0000305c sw zero, 0x10(sp)                 |     *(var_10h) = 0;
    0x00003060 move a0, s2                       |     a0 = s2;
    0x00003064 addiu a1, a1, 0x3c                |     a1 += 0x3c;
    0x00003068 move a2, s0                       |     a2 = s0;
    0x0000306c addiu a3, zero, 1                 |     a3 = 1;
    0x00003070 bal 0x19d4                        |     sym_dl_find_hash ();
    0x00003074 move s1, v0                       |     s1 = v0;
    0x00003078 lw gp, 0x18(fp)                   |     gp = *(var_18h);
                                                 |     if (v0 == 0) {
    0x0000307c bnez v0, 0x30c4                   |         
    0x00003080 lw v0, -0x7f90(gp)                |         v0 = *(gp);
    0x00003084 lw a1, -0x7fe4(gp)                |         a1 = *((gp - 8185));
    0x00003088 lw t9, -0x7f94(gp)                |         t9 = sym._dl_dprintf
    0x0000308c lw a2, (v0)                       |         a2 = *(v0);
    0x00003090 lw v0, 4(s0)                      |         v0 = *((s0 + 1));
    0x00003094 addiu a0, zero, 2                 |         a0 = 2;
    0x00003098 addiu a1, a1, 0x6aa0              |         a1 += str._s:_cant_resolve_symbol__s_in_lib__s._n;
    0x0000309c sw v0, 0x10(sp)                   |         *(var_10h) = v0;
    0x000030a0 move a3, s2                       |         a3 = s2;
    0x000030a4 bal 0x1ec4                        |         sym_dl_dprintf ()
    0x000030a8 lw gp, 0x18(fp)                   |         gp = *(var_18h);
    0x000030ac addiu a0, zero, 1                 |         a0 = 1;
    0x000030b0 addiu v0, zero, 0xfa1             |         v0 = 0xfa1;
    0x000030b4 syscall                           |         __asm ("syscall");
    0x000030b8 lw v1, -0x7fdc(gp)                |         v1 = *(gp);
                                                 |         if (a3 == 0) {
    0x000030bc beqz a3, 0x30c4                   |             goto label_0;
                                                 |         }
    0x000030c0 sw v0, (v1)                       |         *(v1) = v0;
                                                 |     }
                                                 | label_0:
    0x000030c4 sw s1, (s3)                       |     *(s3) = s1;
    0x000030c8 move sp, fp                       |     
    0x000030cc lw ra, 0x34(sp)                   |     ra = *(var_34h);
    0x000030d0 move v0, s1                       |     v0 = s1;
    0x000030d4 lw fp, 0x30(sp)                   |     fp = *(var_30h);
    0x000030d8 lw s3, 0x2c(sp)                   |     s3 = *(var_2ch);
    0x000030dc lw s2, 0x28(sp)                   |     s2 = *(var_28h);
    0x000030e0 lw s1, 0x24(sp)                   |     s1 = *(var_24h);
    0x000030e4 lw s0, 0x20(sp)                   |     s0 = *(var_20h);
    0x000030e8 addiu sp, sp, 0x38                |     
    0x000030ec jr ra                             |     return v0;
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/lib/ld-uClibc-0.9.33.2.so @ 0x30f0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.__dl_runtime_resolve ()      | void dl_runtime_resolve () {
    0x000030f0 lui gp, 2                     |     
    0x000030f4 addiu gp, gp, -0x40d0         |     
    0x000030f8 addu gp, gp, t9               |     gp += t9;
    0x000030fc addiu sp, sp, -0x40           |     
    0x00003100 sw s1, 0x24(sp)               |     *(var_24h) = s1;
    0x00003104 addiu s1, a1, -0x7ff0         |     s1 = a1 + -0x7ff0;
    0x00003108 lw a2, 4(s1)                  |     a2 = *((s1 + 1));
    0x0000310c sll v1, a0, 4                 |     v1 = a0 << 4;
    0x00003110 sw s3, 0x2c(sp)               |     *(var_2ch) = s3;
    0x00003114 lw v0, 0x80(a2)               |     v0 = *((a2 + 32));
    0x00003118 lw s3, 0x7c(a2)               |     s3 = *((a2 + 31));
    0x0000311c lw t9, -0x7f9c(gp)            |     t9 = sym._dl_find_hash;
    0x00003120 addu v0, v1, v0               |     v0 = v1 + v0;
    0x00003124 lw v0, (v0)                   |     v0 = *(v0);
    0x00003128 sw fp, 0x38(sp)               |     *(var_38h) = fp;
    0x0000312c sw s5, 0x34(sp)               |     *(var_34h) = s5;
    0x00003130 addu s3, s3, v0               |     s3 += v0;
    0x00003134 lw v0, -0x7fb4(gp)            |     v0 = *(gp);
    0x00003138 move fp, sp                   |     fp = sp;
    0x0000313c sw s4, 0x30(sp)               |     *(var_30h) = s4;
    0x00003140 lw a1, (v0)                   |     a1 = *(v0);
    0x00003144 sw s2, 0x28(sp)               |     *(var_28h) = s2;
    0x00003148 sw s0, 0x20(sp)               |     *(var_20h) = s0;
    0x0000314c sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x00003150 lw s4, 0xf4(a2)               |     s4 = *((a2 + 61));
    0x00003154 lw s5, 0xf8(a2)               |     s5 = *((a2 + 62));
    0x00003158 sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x0000315c move s2, a0                   |     s2 = a0;
    0x00003160 sw zero, 0x10(sp)             |     *(var_10h) = 0;
    0x00003164 move a0, s3                   |     a0 = s3;
    0x00003168 addiu a1, a1, 0x3c            |     a1 += 0x3c;
    0x0000316c addiu a3, zero, 1             |     a3 = 1;
    0x00003170 bal 0x19d4                    |     sym_dl_find_hash ();
    0x00003174 move s0, v0                   |     s0 = v0;
    0x00003178 lw gp, 0x18(fp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x0000317c bnez v0, 0x31bc               |         
    0x00003180 lw v0, -0x7f90(gp)            |         v0 = *(gp);
    0x00003184 lw a1, -0x7fe4(gp)            |         a1 = *((gp - 8185));
    0x00003188 lw t9, -0x7f94(gp)            |         t9 = sym._dl_dprintf
    0x0000318c lw a2, (v0)                   |         a2 = *(v0);
    0x00003190 addiu a0, zero, 2             |         a0 = 2;
    0x00003194 addiu a1, a1, 0x6acc          |         a1 += str._s:_cant_resolve_symbol__s_n;
    0x00003198 move a3, s3                   |         a3 = s3;
    0x0000319c bal 0x1ec4                    |         sym_dl_dprintf ()
    0x000031a0 lw gp, 0x18(fp)               |         gp = *(var_18h);
    0x000031a4 addiu a0, zero, 1             |         a0 = 1;
    0x000031a8 addiu v0, zero, 0xfa1         |         v0 = 0xfa1;
    0x000031ac syscall                       |         __asm ("syscall");
    0x000031b0 lw v1, -0x7fdc(gp)            |         v1 = *(gp);
                                             |         if (a3 == 0) {
    0x000031b4 beqz a3, 0x31bc               |             goto label_0;
                                             |         }
    0x000031b8 sw v0, (v1)                   |         *(v1) = v0;
                                             |     }
                                             | label_0:
    0x000031bc subu s4, s5, s4               |     __asm ("subu s4, s5, s4");
    0x000031c0 addu s2, s4, s2               |     s2 = s4 + s2;
    0x000031c4 sll s2, s2, 2                 |     s2 <<= 2;
    0x000031c8 addu s1, s1, s2               |     s1 += s2;
    0x000031cc sw s0, (s1)                   |     *(s1) = s0;
    0x000031d0 move sp, fp                   |     
    0x000031d4 lw ra, 0x3c(sp)               |     ra = *(var_3ch);
    0x000031d8 move v0, s0                   |     v0 = s0;
    0x000031dc lw fp, 0x38(sp)               |     fp = *(var_38h);
    0x000031e0 lw s5, 0x34(sp)               |     s5 = *(var_34h);
    0x000031e4 lw s4, 0x30(sp)               |     s4 = *(var_30h);
    0x000031e8 lw s3, 0x2c(sp)               |     s3 = *(var_2ch);
    0x000031ec lw s2, 0x28(sp)               |     s2 = *(var_28h);
    0x000031f0 lw s1, 0x24(sp)               |     s1 = *(var_24h);
    0x000031f4 lw s0, 0x20(sp)               |     s0 = *(var_20h);
    0x000031f8 addiu sp, sp, 0x40            |     
    0x000031fc jr ra                         |     return v0;
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/lib/ld-uClibc-0.9.33.2.so @ 0x3338 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.__tls_get_addr ()        | void tls_get_addr () {
    0x00003338 lui gp, 2                 |     
    0x0000333c addiu gp, gp, -0x4318     |     
    0x00003340 addu gp, gp, t9           |     gp += t9;
    0x00003344 addiu sp, sp, -0x38       |     
    0x00003348 sw fp, 0x30(sp)           |     *(var_30h) = fp;
    0x0000334c move fp, sp               |     fp = sp;
    0x00003350 sw s2, 0x24(sp)           |     *(var_24h) = s2;
    0x00003354 sw ra, 0x34(sp)           |     *(var_34h) = ra;
    0x00003358 sw s4, 0x2c(sp)           |     *(var_2ch) = s4;
    0x0000335c sw s3, 0x28(sp)           |     *(var_28h) = s3;
    0x00003360 sw s1, 0x20(sp)           |     *(var_20h) = s1;
    0x00003364 sw s0, 0x1c(sp)           |     *(var_1ch) = s0;
    0x00003368 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x0000336c move s2, a0               |     s2 = a0;
    0x00003370 rdhwr v1, 29              |     __asm ("rdhwr v1, 29");
    0x00003374 lw s3, -0x7008(v1)        |     s3 = *((v1 - 7170));
    0x00003378 lw v0, -0x7f64(gp)        |     v0 = *(gp);
    0x0000337c lw v1, (s3)               |     v1 = *(s3);
    0x00003380 lw v0, (v0)               |     v0 = *(v0);
    0x00003384 move s0, zero             |     s0 = 0;
                                         |     if (v1 != v0) {
    0x00003388 beq v1, v0, 0x33a8        |         
    0x0000338c lw t9, -0x7f60(gp)        |         t9 = sym._dl_update_slotinfo;
    0x00003390 lw a0, (a0)               |         a0 = *(a0);
    0x00003394 bal 0x28dc                |         sym_dl_update_slotinfo ();
    0x00003398 move s0, v0               |         s0 = v0;
    0x0000339c lw gp, 0x10(fp)           |         gp = *(var_10h);
    0x000033a0 rdhwr v1, 29              |         __asm ("rdhwr v1, 29");
    0x000033a4 lw s3, -0x7008(v1)        |         s3 = *((v1 - 7170));
                                         |     }
    0x000033a8 lw v0, (s2)               |     v0 = *(s2);
    0x000033ac addiu v1, zero, -1        |     v1 = -1;
    0x000033b0 sll s4, v0, 3             |     s4 = v0 << 3;
    0x000033b4 addu s4, s3, s4           |     s4 = s3 + s4;
    0x000033b8 lw s1, (s4)               |     s1 = *(s4);
    0x000033bc lw v0, 4(s2)              |     v0 = *((s2 + 1));
                                         |     if (s1 == v1) {
    0x000033c0 bnel s1, v1, 0x34c4       |         goto label_0;
                                         |     }
    0x000033c4 lw t9, -0x7f74(gp)        |     t9 = sym._dl_memalign;
                                         |     if (s0 != 0) {
    0x000033c8 bnez s0, 0x3400           |         goto label_1;
                                         |     }
    0x000033cc lw v1, -0x7fcc(gp)        |     v1 = *(gp);
    0x000033d0 lw v1, (v1)               |     v1 = *(v1);
    0x000033d4 b 0x33dc                  |     
                                         |     while (a1 == 0) {
    0x000033d8 subu v0, v0, a0           |         __asm ("subu v0, v0, a0");
    0x000033dc lw a0, (v1)               |         a0 = *(v1);
    0x000033e0 sltu a1, v0, a0           |         a1 = (v0 < a0) ? 1 : 0;
    0x000033e4 beql a1, zero, 0x33d8     |         
                                         |     }
    0x000033e8 lw v1, 4(v1)              |     v1 = *((v1 + 1));
    0x000033ec addiu a0, zero, 0xc       |     a0 = 0xc;
    0x000033f0 mul a1, v0, a0            |     __asm ("mul a1, v0, a0");
    0x000033f4 addu v0, a1, v1           |     v0 = a1 + v1;
    0x000033f8 lw s0, 0x10(v0)           |     s0 = *((v0 + 4));
    0x000033fc lw t9, -0x7f74(gp)        |     t9 = sym._dl_memalign;
                                         | label_1:
    0x00003400 lw a0, 0x20(s0)           |     a0 = *((s0 + 8));
    0x00003404 lw a1, 0x1c(s0)           |     a1 = *((s0 + 7));
    0x00003408 bal 0x280c                |     sym_dl_memalign ();
    0x0000340c move s1, v0               |     s1 = v0;
    0x00003410 lw gp, 0x10(fp)           |     gp = *(var_10h);
                                         |     if (v0 == 0) {
    0x00003414 bnez v0, 0x3458           |         
    0x00003418 lw a1, -0x7fe4(gp)        |         a1 = *((gp - 8185));
    0x0000341c lw a2, -0x7fe4(gp)        |         a2 = *((gp - 8185));
    0x00003420 lw t9, -0x7f94(gp)        |         t9 = sym._dl_dprintf
    0x00003424 addiu a0, zero, 2         |         a0 = 2;
    0x00003428 addiu a1, a1, 0x6b18      |         a1 += str._s:_d:_Out_of_memory____n;
    0x0000342c addiu a2, a2, 0x6e4c      |         a2 += str.allocate_and_init;
    0x00003430 addiu a3, zero, 0x29a     |         a3 = 0x29a;
    0x00003434 bal 0x1ec4                |         sym_dl_dprintf ()
    0x00003438 lw gp, 0x10(fp)           |         gp = *(var_10h);
    0x0000343c addiu a0, zero, 1         |         a0 = 1;
    0x00003440 addiu v0, zero, 0xfa1     |         v0 = 0xfa1;
    0x00003444 syscall                   |         __asm ("syscall");
                                         |         if (a3 == 0) {
    0x00003448 beql a3, zero, 0x345c     |             goto label_2;
                                         |         }
    0x0000344c lw a0, 0x14(s0)           |         a0 = *((s0 + 5));
    0x00003450 lw v1, -0x7fdc(gp)        |         v1 = *(gp);
    0x00003454 sw v0, (v1)               |         *(v1) = v0;
                                         |     }
    0x00003458 lw a0, 0x14(s0)           |     a0 = *((s0 + 5));
                                         | label_2:
    0x0000345c lw v0, 0x18(s0)           |     v0 = *((s0 + 6));
    0x00003460 addiu v1, s1, -1          |     v1 = s1 + -1;
    0x00003464 addiu a0, a0, -1          |     a0 += -1;
    0x00003468 b 0x347c                  |     
                                         |     while (v0 == 0) {
    0x0000346c lbu a1, (a0)              |         a1 = *(a0);
    0x00003470 addiu v1, v1, 1           |         v1++;
    0x00003474 addiu v0, v0, -1          |         v0 += -1;
    0x00003478 sb a1, (v1)               |         *(v1) = a1;
    0x0000347c addiu a0, a0, 1           |         a0++;
    0x00003480 bnel v0, zero, 0x346c     |         
                                         |     }
    0x00003484 lw v0, 0x18(s0)           |     v0 = *((s0 + 6));
    0x00003488 lw a0, 0x1c(s0)           |     a0 = *((s0 + 7));
    0x0000348c addu v1, s1, v0           |     v1 = s1 + v0;
    0x00003490 subu v0, a0, v0           |     __asm ("subu v0, a0, v0");
    0x00003494 b 0x34a4                  |     
                                         |     while (v0 != 0) {
    0x00003498 sb zero, (v1)             |         *(v1) = 0;
    0x0000349c move v0, a0               |         v0 = a0;
    0x000034a0 addiu v1, v1, 1           |         v1++;
    0x000034a4 addiu a0, v0, -1          |         a0 = v0 + -1;
    0x000034a8 bnez v0, 0x3498           |         
                                         |     }
    0x000034ac sw s1, (s4)               |     *(s4) = s1;
    0x000034b0 lw v0, (s2)               |     v0 = *(s2);
    0x000034b4 sll v0, v0, 3             |     v0 <<= 3;
    0x000034b8 addu s3, s3, v0           |     s3 += v0;
    0x000034bc sb zero, 4(s3)            |     *((s3 + 4)) = 0;
    0x000034c0 lw v0, 4(s2)              |     v0 = *((s2 + 1));
                                         | label_0:
    0x000034c4 move sp, fp               |     
    0x000034c8 lw ra, 0x34(sp)           |     ra = *(var_34h);
    0x000034cc ori v1, zero, 0x8000      |     v1 = 0x8000;
    0x000034d0 addu v0, v1, v0           |     v0 = v1 + v0;
    0x000034d4 addu v0, s1, v0           |     v0 = s1 + v0;
    0x000034d8 lw fp, 0x30(sp)           |     fp = *(var_30h);
    0x000034dc lw s4, 0x2c(sp)           |     s4 = *(var_2ch);
    0x000034e0 lw s3, 0x28(sp)           |     s3 = *(var_28h);
    0x000034e4 lw s2, 0x24(sp)           |     s2 = *(var_24h);
    0x000034e8 lw s1, 0x20(sp)           |     s1 = *(var_20h);
    0x000034ec lw s0, 0x1c(sp)           |     s0 = *(var_1ch);
    0x000034f0 addiu sp, sp, 0x38        |     
    0x000034f4 jr ra                     |     return v0;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/lib/ld-uClibc-0.9.33.2.so @ 0x3200 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym._dl_add_to_slotinfo ()       | void dl_add_to_slotinfo () {
    0x00003200 lui gp, 2                     |     
    0x00003204 addiu gp, gp, -0x41e0         |     
    0x00003208 addu gp, gp, t9               |     gp += t9;
    0x0000320c lw v0, -0x7fcc(gp)            |     v0 = *(gp);
    0x00003210 addiu sp, sp, -0x30           |     
    0x00003214 sw fp, 0x28(sp)               |     *(var_28h) = fp;
    0x00003218 move fp, sp                   |     fp = sp;
    0x0000321c sw s2, 0x20(sp)               |     *(var_20h) = s2;
    0x00003220 sw s1, 0x1c(sp)               |     *(var_1ch) = s1;
    0x00003224 sw s0, 0x18(sp)               |     *(var_18h) = s0;
    0x00003228 sw ra, 0x2c(sp)               |     *(var_2ch) = ra;
    0x0000322c sw s3, 0x24(sp)               |     *(var_24h) = s3;
    0x00003230 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x00003234 move s2, a0                   |     s2 = a0;
    0x00003238 lw s1, 0x2c(a0)               |     s1 = *((a0 + 11));
    0x0000323c lw s0, (v0)                   |     s0 = *(v0);
                                             |     do {
    0x00003240 lw v0, (s0)                   |         v0 = *(s0);
    0x00003244 sltu v1, s1, v0               |         v1 = (s1 < v0) ? 1 : 0;
    0x00003248 addiu v0, zero, 0xc           |         v0 = 0xc;
                                             |         if (v1 == 0) {
    0x0000324c bnel v1, zero, 0x32f4         |             goto label_0;
                                             |         }
    0x00003250 subu s1, s1, v0               |         __asm ("subu s1, s1, v0");
    0x00003254 lw v0, 4(s0)                  |         v0 = *((s0 + 1));
    0x00003258 move s0, v0                   |         s0 = v0;
    0x0000325c bnel v0, zero, 0x3240         |         
                                             |     } while (v0 == 0);
    0x00003260 lw t9, -0x7f88(gp)            |     t9 = sym._dl_malloc;
    0x00003264 addiu a0, zero, 0x2f0         |     a0 = 0x2f0;
    0x00003268 move s3, s0                   |     s3 = s0;
    0x0000326c bal 0x262c                    |     sym_dl_malloc ();
    0x00003270 move s0, v0                   |     s0 = v0;
    0x00003274 lw gp, 0x10(fp)               |     gp = *(var_10h);
    0x00003278 sw v0, 4(s3)                  |     *((s3 + 1)) = v0;
                                             |     if (v0 == 0) {
    0x0000327c bnez v0, 0x32c4               |         
    0x00003280 lw v0, -0x7f64(gp)            |         v0 = *(gp);
    0x00003284 lw a1, -0x7fe4(gp)            |         a1 = *((gp - 8185));
    0x00003288 lw t9, -0x7f94(gp)            |         t9 = sym._dl_dprintf
    0x0000328c lw v1, (v0)                   |         v1 = *(v0);
    0x00003290 addiu a0, zero, 2             |         a0 = 2;
    0x00003294 addiu a1, a1, 0x6aec          |         a1 += str.cannot_create_TLS_data_structures:_ABORT_n;
    0x00003298 addiu v1, v1, 1               |         v1++;
    0x0000329c sw v1, (v0)                   |         *(v0) = v1;
    0x000032a0 bal 0x1ec4                    |         sym_dl_dprintf ()
    0x000032a4 lw gp, 0x10(fp)               |         gp = *(var_10h);
    0x000032a8 addiu a0, zero, 0x7f          |         a0 = 0x7f;
    0x000032ac addiu v0, zero, 0xfa1         |         v0 = 0xfa1;
    0x000032b0 syscall                       |         __asm ("syscall");
                                             |         if (a3 == 0) {
    0x000032b4 beql a3, zero, 0x32c8         |             goto label_1;
                                             |         }
    0x000032b8 addiu v0, zero, 0x3e          |         v0 = 0x3e;
    0x000032bc lw v1, -0x7fdc(gp)            |         v1 = *(gp);
    0x000032c0 sw v0, (v1)                   |         *(v1) = v0;
                                             |     }
    0x000032c4 addiu v0, zero, 0x3e          |     v0 = 0x3e;
                                             | label_1:
    0x000032c8 sw v0, (s0)                   |     *(s0) = v0;
    0x000032cc sw zero, 4(s0)                |     *((s0 + 1)) = 0;
    0x000032d0 addiu v1, s0, 8               |     v1 = s0 + 8;
    0x000032d4 addiu v0, zero, 0x2e8         |     v0 = aav.0x000002e8;
    0x000032d8 b 0x32e8                      |     
                                             |     while (v0 != 0) {
    0x000032dc sb zero, (v1)                 |         *(v1) = 0;
    0x000032e0 move v0, a0                   |         v0 = a0;
    0x000032e4 addiu v1, v1, 1               |         v1++;
    0x000032e8 addiu a0, v0, -1              |         a0 = v0 + -1;
    0x000032ec bnez v0, 0x32dc               |         
                                             |     }
    0x000032f0 addiu v0, zero, 0xc           |     v0 = 0xc;
                                             | label_0:
    0x000032f4 mul v1, s1, v0                |     __asm ("mul v1, s1, v0");
    0x000032f8 lw v0, -0x7f64(gp)            |     v0 = *(gp);
    0x000032fc addu s0, v1, s0               |     s0 = v1 + s0;
    0x00003300 lw v1, (v0)                   |     v1 = *(v0);
    0x00003304 sw s2, 0x10(s0)               |     *((s0 + 4)) = s2;
    0x00003308 addiu v1, v1, 1               |     v1++;
    0x0000330c sw v1, 8(s0)                  |     *((s0 + 2)) = v1;
    0x00003310 sw v1, (v0)                   |     *(v0) = v1;
    0x00003314 move sp, fp                   |     
    0x00003318 lw ra, 0x2c(sp)               |     ra = *(var_2ch);
    0x0000331c lw fp, 0x28(sp)               |     fp = *(var_28h);
    0x00003320 lw s3, 0x24(sp)               |     s3 = *(var_24h);
    0x00003324 lw s2, 0x20(sp)               |     s2 = *(var_20h);
    0x00003328 lw s1, 0x1c(sp)               |     s1 = *(var_1ch);
    0x0000332c lw s0, 0x18(sp)               |     s0 = *(var_18h);
    0x00003330 addiu sp, sp, 0x30            |     
    0x00003334 jr ra                         |     return v1;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/lib/ld-uClibc-0.9.33.2.so @ 0x5204 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym._dl_get_ready_to_run ()      | void dl_get_ready_to_run () {
    0x00005204 lui gp, 2                     |     
    0x00005208 addiu gp, gp, -0x61e4         |     
    0x0000520c addu gp, gp, t9               |     gp += t9;
    0x00005210 addiu sp, sp, -0x1a0          |     
    0x00005214 sw fp, 0x198(sp)              |     *(var_198h) = fp;
    0x00005218 move fp, sp                   |     fp = sp;
    0x0000521c sw s0, 0x178(sp)              |     *(var_178h) = s0;
    0x00005220 sw ra, 0x19c(sp)              |     *(var_19ch) = ra;
    0x00005224 sw s7, 0x194(sp)              |     *(var_194h) = s7;
    0x00005228 sw s6, 0x190(sp)              |     *(var_190h) = s6;
    0x0000522c sw s5, 0x18c(sp)              |     *(var_18ch) = s5;
    0x00005230 sw s4, 0x188(sp)              |     *(var_188h) = s4;
    0x00005234 sw s3, 0x184(sp)              |     *(var_184h) = s3;
    0x00005238 sw s2, 0x180(sp)              |     *(var_180h) = s2;
    0x0000523c sw s1, 0x17c(sp)              |     *(var_17ch) = s1;
    0x00005240 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x00005244 sw a0, 0x1a0(fp)              |     *(arg_1a0h) = a0;
    0x00005248 move s0, a2                   |     s0 = a2;
    0x0000524c sw a3, 0x1ac(fp)              |     *(arg_1ach) = a3;
    0x00005250 addiu v1, fp, 0x20            |     v1 = fp + 0x20;
    0x00005254 addiu v0, zero, 0x128         |     v0 = 0x128;
    0x00005258 b 0x5268                      |     
                                             |     while (v0 != 0) {
    0x0000525c sb zero, (v1)                 |         *(v1) = 0;
    0x00005260 move v0, a0                   |         v0 = a0;
    0x00005264 addiu v1, v1, 1               |         v1++;
    0x00005268 addiu a0, v0, -1              |         a0 = v0 + -1;
    0x0000526c bnez v0, 0x525c               |         
                                             |     }
    0x00005270 lw v0, 0x34(s0)               |     v0 = *((s0 + 13));
    0x00005274 addiu v1, zero, 0x1000        |     v1 = 0x1000;
                                             |     if (v0 != 0) {
    0x00005278 movz v0, v1, v0               |         v0 = v1;
                                             |     }
    0x0000527c lw v1, -0x7f98(gp)            |     v1 = *(gp);
    0x00005280 sw v0, (v1)                   |     *(v1) = v0;
    0x00005284 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x00005288 sw v0, 0x71ec(v1)             |     *((v1 + 7291)) = v0;
    0x0000528c lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
    0x00005290 sw zero, 0x71f0(v0)           |     *((v0 + 7292)) = 0;
    0x00005294 lw v0, 0x1b0(fp)              |     v0 = *(arg_1b0h);
    0x00005298 lw v0, (v0)                   |     v0 = *(v0);
    0x0000529c lw v1, -0x7f90(gp)            |     v1 = *(gp);
                                             |     if (v0 != 0) {
    0x000052a0 beqz v0, 0x52a8               |         
    0x000052a4 sw v0, (v1)                   |         *(v1) = v0;
                                             |     }
    0x000052a8 lw v1, 0x4c(s0)               |     v1 = *((s0 + 19));
    0x000052ac lw v0, -0x7f1c(gp)            |     v0 = *(gp);
    0x000052b0 lw a0, -0x7fe4(gp)            |     a0 = *((gp - 8185));
                                             |     if (v1 == v0) {
    0x000052b4 bne v1, v0, 0x52ec            |         
    0x000052b8 lw a1, -0x7fe4(gp)            |         a1 = *((gp - 8185));
    0x000052bc lw t9, -0x7f94(gp)            |         t9 = sym._dl_dprintf
    0x000052c0 addiu a0, zero, 2             |         a0 = 2;
    0x000052c4 addiu a1, a1, 0x6cec          |         a1 += str.Standalone_execution_is_not_enabled_n;
    0x000052c8 bal 0x1ec4                    |         sym_dl_dprintf ()
    0x000052cc lw gp, 0x18(fp)               |         gp = *(var_18h);
    0x000052d0 addiu a0, zero, 1             |         a0 = 1;
    0x000052d4 addiu v0, zero, 0xfa1         |         v0 = 0xfa1;
    0x000052d8 syscall                       |         __asm ("syscall");
    0x000052dc lw a0, -0x7fe4(gp)            |         a0 = *((gp - 8185));
                                             |         if (a3 == 0) {
    0x000052e0 beqz a3, 0x52ec               |             goto label_12;
                                             |         }
    0x000052e4 lw v1, -0x7fdc(gp)            |         v1 = *(gp);
    0x000052e8 sw v0, (v1)                   |         *(v1) = v0;
                                             |     }
                                             | label_12:
    0x000052ec lw t9, -0x7f18(gp)            |     t9 = sym._dl_getenv;
    0x000052f0 lw a1, 0x1ac(fp)              |     a1 = *(arg_1ach);
    0x000052f4 sw zero, 0x154(fp)            |     *(var_154h) = 0;
    0x000052f8 addiu a0, a0, 0x6d14          |     a0 += str.LD_BIND_NOW;
    0x000052fc bal 0x1794                    |     sym_dl_getenv ();
    0x00005300 addiu v1, zero, 2             |     v1 = 2;
                                             |     if (v0 != 0) {
    0x00005304 movz v1, zero, v0             |         v1 = 0;
                                             |     }
    0x00005308 sw v1, 0x158(fp)              |     *(var_158h) = v1;
    0x0000530c lw v1, 0x5c(s0)               |     v1 = *((s0 + 23));
    0x00005310 addiu v0, zero, -1            |     v0 = -1;
    0x00005314 lw gp, 0x18(fp)               |     gp = *(var_18h);
                                             |     if (v1 == v0) {
    0x00005318 beq v1, v0, 0x5334            |         goto label_13;
                                             |     }
    0x0000531c lw v0, 0x5c(s0)               |     v0 = *((s0 + 23));
                                             |     do {
                                             | label_0:
    0x00005320 addiu v1, zero, -1            |         v1 = -1;
    0x00005324 lw v1, 0x64(s0)               |         v1 = *((s0 + 25));
                                             |         if (v0 == v1) {
    0x00005328 bnel v0, v1, 0x53fc           |             goto label_14;
                                             |         }
    0x0000532c lw v1, -0x7fd8(gp)            |         v1 = *((gp - 8182));
    0x00005330 b 0x5418                      |         goto label_15;
                                             | label_13:
    0x00005334 addiu v0, zero, 0xfb8         |         v0 = 0xfb8;
    0x00005338 syscall                       |         __asm ("syscall");
    0x0000533c move a2, v0                   |         a2 = v0;
                                             |         if (a3 != 0) {
    0x00005340 beqz a3, 0x5350               |             
    0x00005344 lw v0, -0x7fdc(gp)            |             v0 = *(gp);
    0x00005348 sw a2, (v0)                   |             *(v0) = a2;
    0x0000534c addiu a2, zero, -1            |             a2 = -1;
                                             |         }
    0x00005350 addiu v0, zero, 0xfd1         |         v0 = 0xfd1;
    0x00005354 syscall                       |         __asm ("syscall");
    0x00005358 move a1, v0                   |         a1 = v0;
                                             |         if (a3 != 0) {
    0x0000535c beqz a3, 0x536c               |             
    0x00005360 lw v0, -0x7fdc(gp)            |             v0 = *(gp);
    0x00005364 sw a1, (v0)                   |             *(v0) = a1;
    0x00005368 addiu a1, zero, -1            |             a1 = -1;
                                             |         }
    0x0000536c addiu v0, zero, 0xfcf         |         v0 = 0xfcf;
    0x00005370 syscall                       |         __asm ("syscall");
    0x00005374 move a0, v0                   |         a0 = v0;
                                             |         if (a3 != 0) {
    0x00005378 beqz a3, 0x5388               |             
    0x0000537c lw v0, -0x7fdc(gp)            |             v0 = *(gp);
    0x00005380 sw a0, (v0)                   |             *(v0) = a0;
    0x00005384 addiu a0, zero, -1            |             a0 = -1;
                                             |         }
    0x00005388 addiu v0, zero, 0xfd2         |         v0 = 0xfd2;
    0x0000538c syscall                       |         __asm ("syscall");
    0x00005390 lw v1, -0x7fdc(gp)            |         v1 = *(gp);
                                             |         if (a3 != 0) {
    0x00005394 beqz a3, 0x53a0               |             
    0x00005398 sw v0, (v1)                   |             *(v1) = v0;
    0x0000539c addiu v0, zero, -1            |             v0 = -1;
                                             |         }
    0x000053a0 lw v0, 0x5c(s0)               |         v0 = *((s0 + 23));
    0x000053a4 bnel a2, a1, 0x5320           |         
                                             |     } while (a2 == a1);
    0x000053a8 lw v0, 0x5c(s0)               |     v0 = *((s0 + 23));
                                             |     if (a0 == v0) {
    0x000053ac bnel a0, v0, 0x5320           |         goto label_0;
                                             |     }
    0x000053b0 lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
                                             |     do {
    0x000053b4 lw a0, -0x7fe4(gp)            |         a0 = *((gp - 8185));
    0x000053b8 lw t9, -0x7f18(gp)            |         t9 = sym._dl_getenv;
    0x000053bc lw a1, 0x1ac(fp)              |         a1 = *(arg_1ach);
    0x000053c0 addiu a0, a0, 0x6d20          |         a0 += 0x6d20;
    0x000053c4 sw zero, 0x7010(v0)           |         *((v0 + 7172)) = 0;
    0x000053c8 bal 0x1794                    |         sym_dl_getenv ();
    0x000053cc lw gp, 0x18(fp)               |         gp = *(var_18h);
    0x000053d0 lw a1, 0x1ac(fp)              |         a1 = *(arg_1ach);
    0x000053d4 lw v1, -0x7f14(gp)            |         v1 = *(gp);
    0x000053d8 lw a0, -0x7fe4(gp)            |         a0 = *((gp - 8185));
    0x000053dc lw t9, -0x7f18(gp)            |         t9 = sym._dl_getenv;
    0x000053e0 sw v0, (v1)                   |         *(v1) = v0;
    0x000053e4 addiu a0, a0, 0x6d2c          |         a0 += 0x6d2c;
    0x000053e8 bal 0x1794                    |         sym_dl_getenv ();
    0x000053ec lw gp, 0x18(fp)               |         gp = *(var_18h);
    0x000053f0 lw v1, -0x7f24(gp)            |         v1 = *(gp);
    0x000053f4 sw v0, (v1)                   |         *(v1) = v0;
    0x000053f8 b 0x5478                      |         goto label_16;
                                             | label_14:
    0x000053fc lw v1, -0x7fd8(gp)            |         v1 = *((gp - 8182));
                                             |         if (v0 != v1) {
    0x00005400 bne v0, v1, 0x5418            |             goto label_15;
                                             |         }
    0x00005404 lw v1, 0x6c(s0)               |         v1 = *((s0 + 27));
    0x00005408 lw v0, 0x74(s0)               |         v0 = *((s0 + 29));
    0x0000540c lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
    0x00005410 beq v1, v0, 0x53b4            |         
                                             |     } while (v1 == v0);
    0x00005414 lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
                                             | label_15:
    0x00005418 lw s1, -0x7fe4(gp)            |     s1 = *((gp - 8185));
    0x0000541c addiu v0, zero, 1             |     v0 = 1;
    0x00005420 sw v0, 0x7010(v1)             |     *((v1 + 7172)) = v0;
    0x00005424 addiu s1, s1, 0x6e60          |     s1 += str.LD_PRELOAD;
    0x00005428 lw t9, -0x7f10(gp)            |     t9 = sym._dl_unsetenv;
                                             | label_1:
    0x0000542c lw a1, 0x1ac(fp)              |     a1 = *(arg_1ach);
    0x00005430 move a0, s1                   |     a0 = s1;
    0x00005434 bal 0x1804                    |     sym_dl_unsetenv ();
    0x00005438 lw gp, 0x18(fp)               |     gp = *(var_18h);
    0x0000543c addiu v0, s1, -1              |     v0 = s1 + -1;
    0x00005440 addiu v0, v0, 1               |     v0++;
                                             |     do {
    0x00005444 lbu v1, (v0)                  |         v1 = *(v0);
    0x00005448 addiu v0, v0, 1               |         v0++;
    0x0000544c bnel v1, zero, 0x5444         |         
                                             |     } while (v1 == 0);
    0x00005450 addiu s1, v0, 1               |     s1 = v0 + 1;
    0x00005454 lbu v0, 1(v0)                 |     v0 = *((v0 + 1));
    0x00005458 lw t9, -0x7f10(gp)            |     t9 = sym._dl_unsetenv;
                                             |     if (v0 != 0) {
    0x0000545c bnez v0, 0x542c               |         goto label_1;
                                             |     }
    0x00005460 lw v0, -0x7f14(gp)            |     v0 = *(gp);
    0x00005464 addiu a0, zero, 2             |     a0 = 2;
    0x00005468 sw a0, 0x158(fp)              |     *(var_158h) = a0;
    0x0000546c sw zero, (v0)                 |     *(v0) = 0;
    0x00005470 lw v0, -0x7f24(gp)            |     v0 = *(gp);
    0x00005474 sw zero, (v0)                 |     *(v0) = 0;
                                             | label_16:
    0x00005478 lw v1, -0x7f0c(gp)            |     v1 = sym._dl_initial_error_catch_tsd;
    0x0000547c lw v0, -0x7f08(gp)            |     v0 = *(gp);
    0x00005480 lw a0, 0x1c(s0)               |     a0 = *((s0 + 7));
    0x00005484 addiu a2, zero, 6             |     a2 = 6;
    0x00005488 sw v1, (v0)                   |     *(v0) = v1;
    0x0000548c lw v1, -0x7f04(gp)            |     v1 = *((gp - 8129));
    0x00005490 lw v0, -0x7f5c(gp)            |     v0 = *(gp);
    0x00005494 sw v1, (v0)                   |     *(v0) = v1;
    0x00005498 move v0, a0                   |     v0 = a0;
    0x0000549c move v1, zero                 |     v1 = 0;
    0x000054a0 b 0x54c0                      |     
                                             |     while (a1 == 0) {
    0x000054a4 addiu v1, v1, 1               |         v1++;
                                             |         if (a1 == a2) {
    0x000054a8 bne a1, a2, 0x54bc            |             
    0x000054ac lw v0, 8(v0)                  |             v0 = *((v0 + 2));
    0x000054b0 subu a0, a0, v0               |             __asm ("subu a0, a0, v0");
    0x000054b4 sw a0, 0x20(fp)               |             *(var_20h) = a0;
    0x000054b8 b 0x54d0                      |             
                                             |         } else {
    0x000054bc addiu v0, v0, 0x20            |             v0 += 0x20;
    0x000054c0 lw a1, 0x2c(s0)               |             a1 = *((s0 + 11));
    0x000054c4 sltu a1, v1, a1               |             a1 = (v1 < a1) ? 1 : 0;
    0x000054c8 lw a1, (v0)                   |             a1 = *(v0);
    0x000054cc bnel a1, zero, 0x54a4         |             
                                             |         }
                                             |     }
    0x000054d0 lw s5, -0x7fe4(gp)            |     s5 = *((gp - 8185));
    0x000054d4 addiu a0, zero, 0x14          |     a0 = 0x14;
    0x000054d8 addiu t9, s5, 0x27a0          |     t9 = s5 + fcn.000027a0;
    0x000054dc addiu s1, fp, 0x20            |     s1 = fp + 0x20;
    0x000054e0 bal 0x27a0                    |     fcn_000027a0 ();
    0x000054e4 lw gp, 0x18(fp)               |     gp = *(var_18h);
    0x000054e8 move s3, v0                   |     s3 = v0;
    0x000054ec lw s2, 0x1c(s0)               |     s2 = *((s0 + 7));
    0x000054f0 sw zero, 0x160(fp)            |     *(var_160h) = 0;
    0x000054f4 sw zero, 0x15c(fp)            |     *(var_15ch) = 0;
    0x000054f8 move s6, zero                 |     s6 = 0;
    0x000054fc move s4, zero                 |     s4 = 0;
    0x00005500 lw s7, -0x7f90(gp)            |     s7 = *(gp);
    0x00005504 b 0x5774                      |     goto label_17;
                                             | label_2:
    0x00005508 lui a1, 0x6474                |     a1 = 0x6474e552;
    0x0000550c ori a1, a1, 0xe552            |     
                                             |     if (v0 == a1) {
    0x00005510 bne v0, a1, 0x5528            |         
    0x00005514 nop                           |         
    0x00005518 lw v1, 8(s2)                  |         v1 = *((s2 + 2));
    0x0000551c lw a0, 0x14(s2)               |         a0 = *((s2 + 5));
    0x00005520 sw v1, 0x15c(fp)              |         *(var_15ch) = v1;
    0x00005524 sw a0, 0x160(fp)              |         *(var_160h) = a0;
                                             |     }
    0x00005528 addiu v1, zero, 2             |     v1 = 2;
                                             |     if (s4 == 0) {
    0x0000552c bnez s4, 0x554c               |         
    0x00005530 addiu v1, zero, 1             |         v1 = 1;
    0x00005534 addiu v1, zero, 2             |         v1 = 2;
                                             |         if (v0 != v1) {
    0x00005538 bne v0, v1, 0x554c            |             goto label_18;
                                             |         }
    0x0000553c lw s4, 8(s2)                  |         s4 = *((s2 + 2));
    0x00005540 lw v0, (s1)                   |         v0 = *(s1);
    0x00005544 addu s4, s4, v0               |         s4 += v0;
    0x00005548 b 0x56a8                      |         goto label_19;
                                             |     }
                                             | label_18:
    0x0000554c lw v1, (s2)                   |     v1 = *(s2);
                                             |     if (v0 == v1) {
    0x00005550 bnel v0, v1, 0x56ac           |         goto label_20;
                                             |     }
    0x00005554 lw a3, (s1)                   |     a3 = *(s1);
    0x00005558 lw a0, 8(s2)                  |     a0 = *((s2 + 2));
    0x0000555c lw t9, -0x7f3c(gp)            |     t9 = sym._dl_parse_dynamic_info;
    0x00005560 addiu s5, s1, 0x68            |     s5 = s1 + 0x68;
    0x00005564 addu a0, a3, a0               |     a0 = a3 + a0;
    0x00005568 move a1, s5                   |     a1 = s5;
    0x0000556c move a2, s3                   |     a2 = s3;
    0x00005570 bal 0x3fd0                    |     sym_dl_parse_dynamic_info ();
    0x00005574 lw v0, 0xc0(s1)               |     v0 = *(var_c0h);
    0x00005578 lw gp, 0x18(fp)               |     gp = *(var_18h);
                                             |     if (v0 != 0) {
    0x0000557c beqz v0, 0x55b4               |         
    0x00005580 lw a1, -0x7fe4(gp)            |         a1 = *((gp - 8185));
    0x00005584 lw t9, -0x7f94(gp)            |         t9 = sym._dl_dprintf
    0x00005588 addiu a0, zero, 2             |         a0 = 2;
    0x0000558c addiu a1, a1, 0x6d3c          |         a1 += str.Cant_modify_applications_text_section__use_the_GCC_option__fPIE_for_position_independent_executables._n;
    0x00005590 bal 0x1ec4                    |         sym_dl_dprintf ()
    0x00005594 lw gp, 0x18(fp)               |         gp = *(var_18h);
    0x00005598 addiu a0, zero, 1             |         a0 = 1;
    0x0000559c addiu v0, zero, 0xfa1         |         v0 = 0xfa1;
    0x000055a0 syscall                       |         __asm ("syscall");
                                             |         if (a3 == 0) {
    0x000055a4 beql a3, zero, 0x55b8         |             goto label_21;
                                             |         }
    0x000055a8 lw a1, (s1)                   |         a1 = *(s1);
    0x000055ac lw v1, -0x7fdc(gp)            |         v1 = *(gp);
    0x000055b0 sw v0, (v1)                   |         *(v1) = v0;
                                             |     }
    0x000055b4 lw a1, (s1)                   |     a1 = *(s1);
                                             | label_21:
    0x000055b8 lw a3, 8(s2)                  |     a3 = *((s2 + 2));
    0x000055bc lw v0, 0x10(s2)               |     v0 = *((s2 + 4));
    0x000055c0 lw t9, -0x7f44(gp)            |     t9 = sym._dl_add_elf_hash_table;
    0x000055c4 lw a0, (s7)                   |     a0 = *(s7);
    0x000055c8 move a2, s5                   |     a2 = s5;
    0x000055cc addu a3, a1, a3               |     a3 = a1 + a3;
    0x000055d0 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x000055d4 bal 0x3d1c                    |     sym_dl_add_elf_hash_table ();
    0x000055d8 lw gp, 0x18(fp)               |     gp = *(var_18h);
    0x000055dc move s1, v0                   |     s1 = v0;
    0x000055e0 addiu v1, zero, 1             |     v1 = 1;
    0x000055e4 lw s5, -0x7fb4(gp)            |     s5 = *(gp);
    0x000055e8 lw a1, -0x7fe4(gp)            |     a1 = *((gp - 8185));
    0x000055ec addiu a0, zero, 0x18          |     a0 = 0x18;
    0x000055f0 lw v0, (s5)                   |     v0 = *(s5);
    0x000055f4 addiu t9, a1, 0x27a0          |     t9 = a1 + fcn.000027a0;
    0x000055f8 sw v1, 0x38(v0)               |     *((v0 + 14)) = v1;
    0x000055fc lw v1, 0x1c(s0)               |     v1 = *((s0 + 7));
    0x00005600 sw v1, 0x108(v0)              |     *(v0) = v1;
    0x00005604 lw v1, 0x2c(s0)               |     v1 = *((s0 + 11));
    0x00005608 sw v1, 0x104(v0)              |     *((v0 + 65)) = v1;
    0x0000560c bal 0x27a0                    |     fcn_000027a0 ();
    0x00005610 lw gp, 0x18(fp)               |     gp = *(var_18h);
    0x00005614 lw a0, 0x158(fp)              |     a0 = *(var_158h);
    0x00005618 sw v0, 0x154(fp)              |     *(var_154h) = v0;
    0x0000561c lw v1, -0x7f00(gp)            |     v1 = *(gp);
    0x00005620 sw v0, (v1)                   |     *(v1) = v0;
    0x00005624 lw v1, (s5)                   |     v1 = *(s5);
    0x00005628 sw v1, (v0)                   |     *(v0) = v1;
    0x0000562c ori v0, a0, 4                 |     v0 = a0 | 4;
    0x00005630 sw v0, 0x4c(s1)               |     *((s1 + 19)) = v0;
    0x00005634 lhu v0, 0x48(s1)              |     v0 = *((s1 + 36));
    0x00005638 lw a0, 0x74(s1)               |     a0 = *((s1 + 29));
    0x0000563c sw s4, 0x34(s1)               |     *((s1 + 13)) = s4;
    0x00005640 addiu v0, v0, 1               |     v0++;
    0x00005644 sh v0, 0x48(s1)               |     *((s1 + 36)) = v0;
                                             |     if (a0 == 0) {
    0x00005648 beqz a0, 0x56a8               |         goto label_19;
                                             |     }
    0x0000564c lw a1, 0x38(v1)               |     a1 = *((v1 + 14));
    0x00005650 addiu v0, zero, 2             |     v0 = 2;
    0x00005654 lw v0, -0x7f34(gp)            |     v0 = sym._dl_runtime_resolve;
                                             |     if (a1 == v0) {
    0x00005658 beq a1, v0, 0x56a8            |         goto label_19;
                                             |     }
    0x0000565c sw v1, 4(a0)                  |     *((a0 + 1)) = v1;
    0x00005660 sw v0, (a0)                   |     *(a0) = v0;
    0x00005664 lw v0, 0x100(v1)              |     v0 = *((v1 + 64));
    0x00005668 lw a1, -0x7f30(gp)            |     a1 = sym._dl_runtime_pltresolve;
                                             |     if (v0 != 0) {
    0x0000566c beqz v0, 0x5678               |         
    0x00005670 sw v1, 4(v0)                  |         *((v0 + 1)) = v1;
    0x00005674 sw a1, (v0)                   |         *(v0) = a1;
                                             |     }
    0x00005678 addiu v0, zero, 2             |     v0 = 2;
    0x0000567c b 0x5698                      |     
                                             |     while (a1 != 0) {
    0x00005680 addu a1, a0, a1               |         a1 = a0 + a1;
    0x00005684 lw a3, (a1)                   |         a3 = *(a1);
    0x00005688 lw a2, (v1)                   |         a2 = *(v1);
    0x0000568c addiu v0, v0, 1               |         v0++;
    0x00005690 addu a2, a3, a2               |         a2 = a3 + a2;
    0x00005694 sw a2, (a1)                   |         *(a1) = a2;
    0x00005698 lw a1, 0xf8(v1)               |         a1 = *((v1 + 62));
    0x0000569c sltu a1, v0, a1               |         a1 = (v0 < a1) ? 1 : 0;
    0x000056a0 sll a1, v0, 2                 |         a1 = v0 << 2;
    0x000056a4 bnez a1, 0x5680               |         
                                             |     }
                                             | label_19:
    0x000056a8 lw v1, (s2)                   |     v1 = *(s2);
                                             | label_20:
    0x000056ac addiu v0, zero, 3             |     v0 = 3;
    0x000056b0 lw v1, (s2)                   |     v1 = *(s2);
                                             |     if (v1 == v0) {
    0x000056b4 bnel v1, v0, 0x5710           |         goto label_22;
                                             |     }
    0x000056b8 lw a0, 8(s2)                  |     a0 = *((s2 + 2));
    0x000056bc lw v0, (s1)                   |     v0 = *(s1);
    0x000056c0 lw a1, 0x1a0(fp)              |     a1 = *(arg_1a0h);
    0x000056c4 lw t9, -0x7f48(gp)            |     t9 = sym._dl_strdup;
    0x000056c8 addu a0, a0, v0               |     a0 += v0;
    0x000056cc sw a0, 4(a1)                  |     *((a1 + 1)) = a0;
    0x000056d0 bal 0x3ca0                    |     sym_dl_strdup ();
    0x000056d4 addiu a0, v0, -1              |     a0 = v0 + -1;
    0x000056d8 lw gp, 0x18(fp)               |     gp = *(var_18h);
    0x000056dc move v1, zero                 |     v1 = 0;
    0x000056e0 b 0x56ec                      |     
                                             |     if (a0 != 0) {
                                             |         while (a0 == 0) {
    0x000056e4 movz v1, a1, a0               |             v1 = a1;
                                             |         }
    0x000056e8 move a0, a1                   |         a0 = a1;
    0x000056ec addiu a1, a0, 1               |         a1 = a0 + 1;
    0x000056f0 lbu a0, 1(a0)                 |         a0 = *((a0 + 1));
    0x000056f4 xori a0, a0, 0x2f             |         a0 ^= 0x2f;
    0x000056f8 bnel a0, zero, 0x56e4         |         
                                             |     }
                                             |     if (v1 != 0) {
    0x000056fc movz v1, v0, v1               |         v1 = v0;
                                             |     }
    0x00005700 sb zero, (v1)                 |     *(v1) = 0;
    0x00005704 lw v1, -0x7f20(gp)            |     v1 = *(gp);
    0x00005708 sw v0, (v1)                   |     *(v1) = v0;
    0x0000570c lw v1, (s2)                   |     v1 = *(s2);
                                             | label_22:
    0x00005710 addiu v0, zero, 7             |     v0 = 7;
    0x00005714 addiu s6, s6, 1               |     s6++;
                                             |     if (v1 != v0) {
    0x00005718 bnel v1, v0, 0x5770           |         
    0x0000571c lw v0, 0x14(s2)               |         v0 = *((s2 + 5));
                                             |         if (v0 == 0) {
    0x00005720 beql v0, zero, 0x5788         |             goto label_23;
                                             |         }
    0x00005724 lw v0, 0x15c(fp)              |         v0 = *(var_15ch);
    0x00005728 sw v0, 0x1c(s1)               |         *(var_1ch_2) = v0;
    0x0000572c lw v0, 0x1c(s2)               |         v0 = *((s2 + 7));
    0x00005730 lw v1, 8(s2)                  |         v1 = *((s2 + 2));
    0x00005734 sw v0, 0x20(s1)               |         *(var_20h_2) = v0;
                                             |         if (v0 == 0) {
    0x00005738 bnez v0, 0x5744               |             
    0x0000573c sw zero, 0x24(s1)             |             *(var_24h) = 0;
    0x00005740 b 0x5750                      |             
                                             |         } else {
    0x00005744 addiu v0, v0, -1              |             v0 += -1;
    0x00005748 and v0, v0, v1                |             v0 &= v1;
    0x0000574c sw v0, 0x24(s1)               |             *(var_24h) = v0;
                                             |         }
    0x00005750 lw v0, 0x10(s2)               |         v0 = *((s2 + 4));
    0x00005754 sw v1, 0x14(s1)               |         *(var_14h) = v1;
    0x00005758 lw v1, -0x7fc8(gp)            |         v1 = *(gp);
    0x0000575c sw v0, 0x18(s1)               |         *(var_18h_3) = v0;
    0x00005760 addiu v0, zero, 1             |         v0 = 1;
    0x00005764 sw v0, 0x2c(s1)               |         *(var_2ch) = v0;
    0x00005768 sw v0, (v1)                   |         *(v1) = v0;
    0x0000576c b 0x5784                      |         goto label_24;
                                             |     }
    0x00005770 addiu s2, s2, 0x20            |     s2 += 0x20;
                                             | label_17:
    0x00005774 lw v0, 0x2c(s0)               |     v0 = *((s0 + 11));
    0x00005778 sltu v0, s6, v0               |     v0 = (s6 < v0) ? 1 : 0;
    0x0000577c lw v0, (s2)                   |     v0 = *(s2);
                                             |     if (v0 == 0) {
    0x00005780 bnel v0, zero, 0x5508         |         goto label_2;
                                             |     }
                                             | label_24:
    0x00005784 lw v0, 0x15c(fp)              |     v0 = *(var_15ch);
                                             | label_23:
    0x00005788 lw v1, 0x160(fp)              |     v1 = *(var_160h);
    0x0000578c sw v0, 0x10c(s1)              |     *(var_10ch) = v0;
    0x00005790 lw v0, 0x14(s1)               |     v0 = *(var_14h);
    0x00005794 sw v1, 0x110(s1)              |     *(var_110h) = v1;
                                             |     if (v0 != 0) {
    0x00005798 beqz v0, 0x57a8               |         
    0x0000579c lw v1, (s1)                   |         v1 = *(s1);
    0x000057a0 addu v0, v0, v1               |         v0 += v1;
    0x000057a4 sw v0, 0x14(s1)               |         *(var_14h) = v0;
                                             |     }
    0x000057a8 lw a0, -0x7fe4(gp)            |     a0 = *((gp - 8185));
    0x000057ac lw t9, -0x7f18(gp)            |     t9 = sym._dl_getenv;
    0x000057b0 lw a1, 0x1ac(fp)              |     a1 = *(arg_1ach);
    0x000057b4 addiu a0, a0, 0x6da8          |     a0 += 0x6da8;
    0x000057b8 bal 0x1794                    |     sym_dl_getenv ();
    0x000057bc lw gp, 0x18(fp)               |     gp = *(var_18h);
    0x000057c0 sltu s1, zero, v0             |     s1 = (0 < v0) ? 1 : 0;
    0x000057c4 lw s6, 0x3c(s0)               |     s6 = *((s0 + 15));
    0x000057c8 lw v0, -0x7fb4(gp)            |     v0 = *(gp);
    0x000057cc lw t9, -0x7efc(gp)            |     t9 = sym._dl_map_cache;
    0x000057d0 sw s6, 0x10(s3)               |     *((s3 + 4)) = s6;
    0x000057d4 lw v0, (v0)                   |     v0 = *(v0);
    0x000057d8 sw v0, 4(s3)                  |     *((s3 + 1)) = v0;
    0x000057dc addiu v0, zero, 1             |     v0 = 1;
    0x000057e0 sw v0, (s3)                   |     *(s3) = v0;
    0x000057e4 lw v0, -0x7ef8(gp)            |     v0 = sym._dl_debug_state;
    0x000057e8 sw v0, 8(s3)                  |     *((s3 + 2)) = v0;
    0x000057ec lw v0, -0x7ef4(gp)            |     v0 = *(gp);
    0x000057f0 sw s3, (v0)                   |     *(v0) = s3;
    0x000057f4 bal 0x2390                    |     sym_dl_map_cache ();
    0x000057f8 lw gp, 0x18(fp)               |     gp = *(var_18h);
    0x000057fc lw v0, -0x7f14(gp)            |     v0 = *(gp);
    0x00005800 lw v1, (v0)                   |     v1 = *(v0);
    0x00005804 addiu a0, zero, 0x20          |     a0 = 0x20;
                                             |     if (v1 == 0) {
    0x00005808 bnez v1, 0x5824               |         
                                             | label_6:
    0x0000580c lw s4, -0x7fd8(gp)            |         s4 = *((gp - 8182));
    0x00005810 lw v0, -0x7fb4(gp)            |         v0 = *(gp);
    0x00005814 move s5, zero                 |         s5 = 0;
    0x00005818 sw zero, 0x71f8(s4)           |         *((s4 + 7294)) = 0;
    0x0000581c lw s2, (v0)                   |         s2 = *(v0);
    0x00005820 b 0x5c1c                      |         goto label_25;
                                             |     }
    0x00005824 addiu a1, zero, 0x3a          |     a1 = 0x3a;
    0x00005828 addiu a2, zero, 9             |     a2 = 9;
                                             |     do {
                                             | label_3:
    0x0000582c lbu v0, (v1)                  |         v0 = *(v1);
    0x00005830 beql v0, a0, 0x582c           |         
                                             |     } while (v0 == a0);
    0x00005834 addiu v1, v1, 1               |     v1++;
                                             |     if (v0 == a1) {
    0x00005838 beql v0, a1, 0x582c           |         goto label_3;
                                             |     }
    0x0000583c addiu v1, v1, 1               |     v1++;
    0x00005840 lw s4, -0x7fe4(gp)            |     s4 = *((gp - 8185));
                                             |     if (v0 != a2) {
    0x00005844 bne v0, a2, 0x59f8            |         goto label_26;
                                             |     }
    0x00005848 addiu v1, v1, 1               |     v1++;
    0x0000584c b 0x582c                      |     goto label_3;
                                             |     do {
                                             | label_4:
    0x00005850 lbu s3, (s2)                  |         s3 = *(s2);
    0x00005854 sltiu a2, s3, 0x21            |         a2 = (s3 < 0x21) ? 1 : 0;
                                             |         if (s3 == a1) {
    0x00005858 beq s3, a1, 0x5884            |             goto label_27;
                                             |         }
                                             |         if (a2 == 0) {
    0x0000585c beqz a2, 0x587c               |             goto label_28;
                                             |         }
    0x00005860 nop                           |         
                                             |         if (s3 == 0) {
    0x00005864 beql s3, zero, 0x5888         |             goto label_29;
                                             |         }
    0x00005868 lw a1, -0x7fd8(gp)            |         a1 = *((gp - 8182));
    0x0000586c addiu s2, s2, 1               |         s2++;
    0x00005870 bnel s3, v0, 0x5850           |         
                                             |     } while (s3 == v0);
    0x00005874 lw a1, -0x7fd8(gp)            |     a1 = *((gp - 8182));
    0x00005878 b 0x5888                      |     goto label_29;
                                             | label_28:
    0x0000587c addiu s2, s2, 1               |     s2++;
                                             |     if (s3 == a0) {
    0x00005880 bnel s3, a0, 0x5850           |         goto label_4;
                                             |     }
                                             | label_27:
    0x00005884 lw a1, -0x7fd8(gp)            |     a1 = *((gp - 8182));
                                             | label_29:
    0x00005888 sb zero, (s2)                 |     *(s2) = 0;
    0x0000588c lw a0, 0x7010(a1)             |     a0 = *((a1 + 7172));
    0x00005890 addiu v0, v1, -1              |     v0 = v1 + -1;
                                             |     if (a0 == 0) {
    0x00005894 beqz a0, 0x58b4               |         goto label_30;
                                             |     }
    0x00005898 addiu a2, zero, 0x2f          |     a2 = 0x2f;
    0x0000589c addiu v0, v0, 1               |     v0++;
                                             |     do {
    0x000058a0 lbu a1, (v0)                  |         a1 = *(v0);
                                             |         if (a1 == a2) {
    0x000058a4 beql a1, a2, 0x59c4           |             goto label_31;
                                             |         }
    0x000058a8 sb s3, (s2)                   |         *(s2) = s3;
    0x000058ac addiu v0, v0, 1               |         v0++;
    0x000058b0 bnez a1, 0x58a0               |         
                                             |     } while (a1 != 0);
                                             | label_30:
    0x000058b4 lw t9, -0x7ef0(gp)            |     t9 = sym._dl_load_shared_library;
    0x000058b8 move a3, v1                   |     a3 = v1;
    0x000058bc sw v1, 0x164(fp)              |     *(var_164h) = v1;
    0x000058c0 sw s1, 0x10(sp)               |     *(var_10h) = s1;
    0x000058c4 sltu a0, zero, a0             |     a0 = (0 < a0) ? 1 : 0;
    0x000058c8 addiu a1, fp, 0x154           |     a1 = fp + 0x154;
    0x000058cc move a2, zero                 |     a2 = 0;
    0x000058d0 bal 0x4ef8                    |     sym_dl_load_shared_library ();
    0x000058d4 lw gp, 0x18(fp)               |     gp = *(var_18h);
    0x000058d8 lw v1, 0x164(fp)              |     v1 = *(var_164h);
                                             |     if (v0 == 0) {
    0x000058dc bnez v0, 0x593c               |         
    0x000058e0 lw t9, -0x7f94(gp)            |         t9 = sym._dl_dprintf
                                             |         if (s1 != 0) {
    0x000058e4 beqz s1, 0x5900               |             
    0x000058e8 addiu a0, zero, 1             |             a0 = 1;
    0x000058ec addiu a1, s7, 0x6dc0          |             a1 = s7 + str._t_s___not_found_n;
    0x000058f0 move a2, v1                   |             a2 = v1;
    0x000058f4 bal 0x1ec4                    |             sym_dl_dprintf ()
    0x000058f8 lw gp, 0x18(fp)               |             gp = *(var_18h);
    0x000058fc b 0x59c0                      |             goto label_32;
                                             |         }
    0x00005900 lw v0, -0x7f90(gp)            |         v0 = *(gp);
    0x00005904 addiu a0, zero, 2             |         a0 = 2;
    0x00005908 move a1, s5                   |         a1 = s5;
    0x0000590c lw a2, (v0)                   |         a2 = *(v0);
    0x00005910 move a3, v1                   |         a3 = v1;
    0x00005914 bal 0x1ec4                    |         sym_dl_dprintf ()
    0x00005918 lw gp, 0x18(fp)               |         gp = *(var_18h);
    0x0000591c addiu a0, zero, 0xf           |         a0 = 0xf;
    0x00005920 addiu v0, zero, 0xfa1         |         v0 = 0xfa1;
    0x00005924 syscall                       |         __asm ("syscall");
                                             |         if (a3 == 0) {
    0x00005928 beql a3, zero, 0x59c4         |             goto label_31;
                                             |         }
    0x0000592c sb s3, (s2)                   |         *(s2) = s3;
    0x00005930 lw v1, -0x7fdc(gp)            |         v1 = *(gp);
    0x00005934 sw v0, (v1)                   |         *(v1) = v0;
    0x00005938 b 0x59c0                      |         goto label_32;
                                             |     }
    0x0000593c lw a1, 0x158(fp)              |     a1 = *(var_158h);
    0x00005940 ori a0, a1, 4                 |     a0 = a1 | 4;
    0x00005944 sw a0, 0x4c(v0)               |     *((v0 + 19)) = a0;
                                             |     if (s1 == 0) {
    0x00005948 beqz s1, 0x59c0               |         goto label_32;
                                             |     }
    0x0000594c lhu a1, 0x48(v0)              |     a1 = *((v0 + 36));
    0x00005950 addiu a0, zero, 1             |     a0 = 1;
    0x00005954 sb s3, (s2)                   |     *(s2) = s3;
                                             |     if (a1 == a0) {
    0x00005958 bnel a1, a0, 0x59c4           |         goto label_31;
                                             |     }
    0x0000595c lw a0, -0x7f90(gp)            |     a0 = *(gp);
    0x00005960 addiu a3, v1, -1              |     a3 = v1 + -1;
    0x00005964 lw a2, (a0)                   |     a2 = *(a0);
    0x00005968 addiu a2, a2, -1              |     a2 += -1;
    0x0000596c addiu a2, a2, 1               |     a2++;
                                             |     do {
    0x00005970 lbu a1, (a2)                  |         a1 = *(a2);
    0x00005974 addiu a3, a3, 1               |         a3++;
    0x00005978 lbu a0, (a3)                  |         a0 = *(a3);
                                             |         if (a1 == 0) {
    0x0000597c bnez a1, 0x5988               |             
    0x00005980 negu a0, a0                   |             __asm ("negu a0, a0");
    0x00005984 b 0x5994                      |             goto label_33;
                                             |         }
    0x00005988 beql a1, a0, 0x5970           |         
                                             |     } while (a1 == a0);
    0x0000598c addiu a2, a2, 1               |     a2++;
    0x00005990 subu a0, a1, a0               |     __asm ("subu a0, a1, a0");
                                             |     if (a0 != 0) {
                                             | label_33:
    0x00005994 beql a0, zero, 0x59c4         |         
    0x00005998 sb s3, (s2)                   |         *(s2) = s3;
    0x0000599c lw a3, 4(v0)                  |         a3 = *((v0 + 1));
    0x000059a0 lw v0, (v0)                   |         v0 = *(v0);
    0x000059a4 lw t9, -0x7f94(gp)            |         t9 = sym._dl_dprintf
    0x000059a8 addiu a0, zero, 1             |         a0 = 1;
    0x000059ac sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x000059b0 move a1, s4                   |         a1 = s4;
    0x000059b4 move a2, v1                   |         a2 = v1;
    0x000059b8 bal 0x1ec4                    |         sym_dl_dprintf ()
    0x000059bc lw gp, 0x18(fp)               |         gp = *(var_18h);
                                             | label_32:
    0x000059c0 sb s3, (s2)                   |         *(s2) = s3;
                                             |     }
                                             | label_31:
    0x000059c4 move v1, s2                   |     v1 = s2;
    0x000059c8 addiu a0, zero, 0x20          |     a0 = 0x20;
    0x000059cc addiu a1, zero, 0x3a          |     a1 = 0x3a;
    0x000059d0 addiu a2, zero, 9             |     a2 = 9;
                                             |     do {
                                             | label_5:
    0x000059d4 lbu v0, (v1)                  |         v0 = *(v1);
    0x000059d8 beql v0, a0, 0x59d4           |         
                                             |     } while (v0 == a0);
    0x000059dc addiu v1, v1, 1               |     v1++;
                                             |     if (v0 == a1) {
    0x000059e0 beql v0, a1, 0x59d4           |         goto label_5;
                                             |     }
    0x000059e4 addiu v1, v1, 1               |     v1++;
                                             |     if (v0 == a2) {
    0x000059e8 bne v0, a2, 0x5a0c            |         
    0x000059ec nop                           |         
    0x000059f0 addiu v1, v1, 1               |         v1++;
    0x000059f4 b 0x59d4                      |         goto label_5;
                                             | label_26:
    0x000059f8 lw s5, -0x7fe4(gp)            |         s5 = *((gp - 8185));
    0x000059fc lw s7, -0x7fe4(gp)            |         s7 = *((gp - 8185));
    0x00005a00 addiu s4, s4, 0x6df4          |         s4 += str._t_s____s___x__n;
    0x00005a04 addiu s5, s5, 0x6dd4          |         s5 += str._s:_cant_load_library__s_n;
    0x00005a08 lbu v0, (v1)                  |         v0 = *(v1);
                                             |     }
    0x00005a0c addiu a1, zero, 0x20          |     a1 = 0x20;
                                             |     if (v0 == 0) {
    0x00005a10 beqz v0, 0x580c               |         goto label_6;
                                             |     }
    0x00005a14 move s2, v1                   |     s2 = v1;
    0x00005a18 addiu a0, zero, 0x3a          |     a0 = 0x3a;
    0x00005a1c addiu v0, zero, 9             |     v0 = 9;
    0x00005a20 b 0x5850                      |     goto label_4;
                                             | label_8:
    0x00005a24 lw s7, 8(s2)                  |     s7 = *((s2 + 2));
    0x00005a28 addiu v0, v0, 1               |     v0++;
    0x00005a2c sw v0, 0x71f8(s4)             |     *((s4 + 7294)) = v0;
    0x00005a30 b 0x5c0c                      |     goto label_34;
                                             | label_7:
    0x00005a34 addiu s7, s7, 8               |     s7 += 8;
                                             |     if (v0 == v1) {
    0x00005a38 bnel v0, v1, 0x5c0c           |         goto label_34;
                                             |     }
    0x00005a3c lw v0, 0x7c(s2)               |     v0 = *((s2 + 31));
    0x00005a40 lw s3, 4(s7)                  |     s3 = *((s7 + 1));
    0x00005a44 addu s3, s3, v0               |     s3 += v0;
    0x00005a48 addiu v0, s3, -1              |     v0 = s3 + -1;
    0x00005a4c addiu v0, v0, 1               |     v0++;
                                             |     do {
    0x00005a50 lbu v1, (v0)                  |         v1 = *(v0);
    0x00005a54 addiu v0, v0, 1               |         v0++;
    0x00005a58 bnel v1, zero, 0x5a50         |         
                                             |     } while (v1 == 0);
    0x00005a5c addiu v1, zero, 0x2f          |     v1 = 0x2f;
    0x00005a60 b 0x5a64                      |     
                                             |     if (v0 == s3) {
                                             |         while (a0 == v1) {
    0x00005a64 beql v0, s3, 0x5aa8           |             goto label_35;
                                             |         }
    0x00005a68 lw v1, -0x7fe4(gp)            |         v1 = *((gp - 8185));
    0x00005a6c addiu v0, v0, -1              |         v0 += -1;
    0x00005a70 lbu a0, (v0)                  |         a0 = *(v0);
    0x00005a74 beql a0, v1, 0x5a64           |         
                                             |     }
    0x00005a78 sb zero, (v0)                 |     *(v0) = 0;
    0x00005a7c addiu a0, zero, 0x2f          |     a0 = 0x2f;
    0x00005a80 b 0x5a88                      |     
                                             |     while (a1 != a0) {
    0x00005a84 move v0, v1                   |         v0 = v1;
                                             |         if (v0 == s3) {
    0x00005a88 beql v0, s3, 0x5aa8           |             goto label_35;
                                             |         }
    0x00005a8c lw v1, -0x7fe4(gp)            |         v1 = *((gp - 8185));
    0x00005a90 lbu a1, -1(v0)                |         a1 = *((v0 - 1));
    0x00005a94 addiu v1, v0, -1              |         v1 = v0 + -1;
    0x00005a98 bne a1, a0, 0x5a84            |         
                                             |     }
    0x00005a9c xor a0, v1, s3                |     a0 = v1 ^ s3;
                                             |     if (a0 != 0) {
    0x00005aa0 movz v0, v1, a0               |         v0 = v1;
                                             |     }
    0x00005aa4 lw v1, -0x7fe4(gp)            |     v1 = *((gp - 8185));
                                             | label_35:
    0x00005aa8 addiu v0, v0, -1              |     v0 += -1;
    0x00005aac addiu a1, v1, 0x6cdb          |     a1 = v1 + 0x6cdb;
    0x00005ab0 addiu v0, v0, 1               |     v0++;
                                             |     do {
    0x00005ab4 lbu a0, (v0)                  |         a0 = *(v0);
    0x00005ab8 addiu a1, a1, 1               |         a1++;
    0x00005abc lbu v1, (a1)                  |         v1 = *(a1);
                                             |         if (a0 == 0) {
    0x00005ac0 bnez a0, 0x5acc               |             
    0x00005ac4 negu v1, v1                   |             __asm ("negu v1, v1");
    0x00005ac8 b 0x5ad8                      |             goto label_36;
                                             |         }
    0x00005acc beql a0, v1, 0x5ab4           |         
                                             |     } while (a0 == v1);
    0x00005ad0 addiu v0, v0, 1               |     v0++;
    0x00005ad4 subu v1, a0, v1               |     __asm ("subu v1, a0, v1");
                                             | label_36:
    0x00005ad8 lw t9, -0x7ef0(gp)            |     t9 = sym._dl_load_shared_library;
                                             |     if (v1 == 0) {
    0x00005adc bnez v1, 0x5b20               |         
    0x00005ae0 lhu v0, 0x48(s5)              |         v0 = *((s5 + 36));
                                             |         if (s5 != 0) {
    0x00005ae4 bnel s5, zero, 0x5b10         |             
    0x00005ae8 lw t9, -0x7fe4(gp)            |             t9 = *((gp - 8185));
    0x00005aec lw a0, 0x1a0(fp)              |             a0 = *(arg_1a0h);
    0x00005af0 lw a3, 0x154(fp)              |             a3 = *(var_154h);
    0x00005af4 move a1, s6                   |             a1 = s6;
    0x00005af8 addiu t9, t9, 0x3e6c          |             t9 += fcn.00003e6c;
    0x00005afc move a2, s0                   |             a2 = s0;
    0x00005b00 bal 0x3e6c                    |             fcn_00003e6c ();
    0x00005b04 lw gp, 0x18(fp)               |             gp = *(var_18h);
    0x00005b08 move s5, v0                   |             s5 = v0;
    0x00005b0c lhu v0, 0x48(s5)              |             v0 = *((s5 + 36));
                                             |         }
    0x00005b10 addiu v0, v0, 1               |         v0++;
    0x00005b14 sh v0, 0x48(s5)               |         *((s5 + 36)) = v0;
    0x00005b18 move v0, s5                   |         v0 = s5;
    0x00005b1c b 0x5ba8                      |         
                                             |     } else {
    0x00005b20 sw s1, 0x10(sp)               |         *(var_10h) = s1;
    0x00005b24 move a0, zero                 |         a0 = 0;
    0x00005b28 addiu a1, fp, 0x154           |         a1 = fp + 0x154;
    0x00005b2c move a2, s2                   |         a2 = s2;
    0x00005b30 move a3, s3                   |         a3 = s3;
    0x00005b34 bal 0x4ef8                    |         sym_dl_load_shared_library ();
    0x00005b38 lw gp, 0x18(fp)               |         gp = *(var_18h);
                                             |         if (v0 != 0) {
    0x00005b3c bnez v0, 0x5ba8               |             goto label_37;
                                             |         }
    0x00005b40 lw t9, -0x7f94(gp)            |         t9 = sym._dl_dprintf
                                             |         if (s1 != 0) {
    0x00005b44 beqz s1, 0x5b64               |             
    0x00005b48 lw a1, -0x7fe4(gp)            |             a1 = *((gp - 8185));
    0x00005b4c addiu a0, zero, 1             |             a0 = 1;
    0x00005b50 move a2, s3                   |             a2 = s3;
    0x00005b54 addiu a1, a1, 0x6dc0          |             a1 += str._t_s___not_found_n;
    0x00005b58 bal 0x1ec4                    |             sym_dl_dprintf ()
    0x00005b5c lw gp, 0x18(fp)               |             gp = *(var_18h);
    0x00005b60 b 0x5c08                      |             goto label_38;
                                             |         }
    0x00005b64 lw v0, -0x7f90(gp)            |         v0 = *(gp);
    0x00005b68 lw a1, -0x7fe4(gp)            |         a1 = *((gp - 8185));
    0x00005b6c addiu a0, zero, 2             |         a0 = 2;
    0x00005b70 lw a2, (v0)                   |         a2 = *(v0);
    0x00005b74 addiu a1, a1, 0x6dd4          |         a1 += str._s:_cant_load_library__s_n;
    0x00005b78 move a3, s3                   |         a3 = s3;
    0x00005b7c bal 0x1ec4                    |         sym_dl_dprintf ()
    0x00005b80 lw gp, 0x18(fp)               |         gp = *(var_18h);
    0x00005b84 addiu a0, zero, 0x10          |         a0 = 0x10;
    0x00005b88 addiu v0, zero, 0xfa1         |         v0 = 0xfa1;
    0x00005b8c syscall                       |         __asm ("syscall");
    0x00005b90 move v1, v0                   |         v1 = v0;
    0x00005b94 move v0, s1                   |         v0 = s1;
                                             |         if (a3 == 0) {
    0x00005b98 beqz a3, 0x5ba8               |             goto label_37;
                                             |         }
    0x00005b9c lw v0, -0x7fdc(gp)            |         v0 = *(gp);
    0x00005ba0 sw v1, (v0)                   |         *(v0) = v1;
    0x00005ba4 move v0, s1                   |         v0 = s1;
                                             |     }
                                             | label_37:
    0x00005ba8 lw a0, 0x58(s2)               |     a0 = *((s2 + 22));
    0x00005bac addiu sp, sp, -0x10           |     
    0x00005bb0 addiu v1, sp, 0x18            |     v1 = sp + 0x18;
    0x00005bb4 sw a0, 0x18(sp)               |     *(var_18h_2) = a0;
    0x00005bb8 lw a0, 0x158(fp)              |     a0 = *(var_158h);
    0x00005bbc sw v0, 0x1c(sp)               |     *(var_1ch) = v0;
    0x00005bc0 sw v1, 0x58(s2)               |     *((s2 + 22)) = v1;
    0x00005bc4 ori v1, a0, 4                 |     v1 = a0 | 4;
    0x00005bc8 sw v1, 0x4c(v0)               |     *((v0 + 19)) = v1;
                                             |     if (s1 != 0) {
    0x00005bcc beqz s1, 0x5c08               |         
    0x00005bd0 lhu a0, 0x48(v0)              |         a0 = *((v0 + 36));
    0x00005bd4 addiu v1, zero, 1             |         v1 = 1;
    0x00005bd8 addiu s7, s7, 8               |         s7 += 8;
                                             |         if (a0 == v1) {
    0x00005bdc bnel a0, v1, 0x5c0c           |             goto label_34;
                                             |         }
    0x00005be0 lw a3, 4(v0)                  |         a3 = *((v0 + 1));
    0x00005be4 lw a1, -0x7fe4(gp)            |         a1 = *((gp - 8185));
    0x00005be8 lw v0, (v0)                   |         v0 = *(v0);
    0x00005bec lw t9, -0x7f94(gp)            |         t9 = sym._dl_dprintf
    0x00005bf0 addiu a0, zero, 1             |         a0 = 1;
    0x00005bf4 sw v0, 0x10(sp)               |         *(var_10h_2) = v0;
    0x00005bf8 addiu a1, a1, 0x6df4          |         a1 += str._t_s____s___x__n;
    0x00005bfc move a2, s3                   |         a2 = s3;
    0x00005c00 bal 0x1ec4                    |         sym_dl_dprintf ()
    0x00005c04 lw gp, 0x18(fp)               |         gp = *(var_18h);
                                             |     }
                                             | label_38:
    0x00005c08 addiu s7, s7, 8               |     s7 += 8;
                                             | label_34:
    0x00005c0c lw v0, (s7)                   |     v0 = *(s7);
    0x00005c10 addiu v1, zero, 1             |     v1 = 1;
                                             |     if (v0 != 0) {
    0x00005c14 bnez v0, 0x5a34               |         goto label_7;
                                             |     }
    0x00005c18 lw s2, 0xc(s2)                |     s2 = *((s2 + 3));
                                             | label_25:
    0x00005c1c lw v0, 0x71f8(s4)             |     v0 = *((s4 + 7294));
                                             |     if (s2 != 0) {
    0x00005c20 bnez s2, 0x5a24               |         goto label_8;
                                             |     }
    0x00005c24 lw t9, -0x7eec(gp)            |     t9 = sym._dl_unmap_cache;
    0x00005c28 bal 0x1e54                    |     sym_dl_unmap_cache ();
    0x00005c2c nop                           |     
    0x00005c30 lw gp, 0x18(fp)               |     gp = *(var_18h);
    0x00005c34 lw v0, -0x7fb4(gp)            |     v0 = *(gp);
    0x00005c38 lw s7, (v0)                   |     s7 = *(v0);
    0x00005c3c addiu v0, zero, 1             |     v0 = 1;
    0x00005c40 lw v1, 0x38(s7)               |     v1 = *((s7 + 14));
    0x00005c44 lw s2, 0x71f8(s4)             |     s2 = *((s4 + 7294));
                                             |     if (v1 == v0) {
    0x00005c48 bne v1, v0, 0x5c5c            |         
    0x00005c4c lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
    0x00005c50 lw s7, 0xc(s7)                |         s7 = *((s7 + 3));
    0x00005c54 addiu v1, s2, -1              |         v1 = s2 + -1;
    0x00005c58 sw v1, 0x71f8(v0)             |         *((v0 + 7294)) = v1;
                                             |     }
    0x00005c5c lw a0, 0x71f8(s4)             |     a0 = *((s4 + 7294));
    0x00005c60 lw t9, -0x7f88(gp)            |     t9 = sym._dl_malloc;
    0x00005c64 sll a0, a0, 2                 |     a0 <<= 2;
    0x00005c68 bal 0x262c                    |     sym_dl_malloc ();
    0x00005c6c lw gp, 0x18(fp)               |     gp = *(var_18h);
    0x00005c70 move v1, zero                 |     v1 = 0;
    0x00005c74 lw s3, -0x7fd8(gp)            |     s3 = *((gp - 8182));
    0x00005c78 sw v0, 0x71f4(s3)             |     *((s3 + 7293)) = v0;
    0x00005c7c b 0x5c90                      |     
                                             |     while (s7 == 0) {
    0x00005c80 addu a0, v0, a0               |         a0 = v0 + a0;
    0x00005c84 sw s7, (a0)                   |         *(a0) = s7;
    0x00005c88 lw s7, 0xc(s7)                |         s7 = *((s7 + 3));
    0x00005c8c addiu v1, v1, 1               |         v1++;
    0x00005c90 sll a0, v1, 2                 |         a0 = v1 << 2;
    0x00005c94 bnel s7, zero, 0x5c80         |         
                                             |     }
    0x00005c98 lw v1, -0x7fb4(gp)            |     v1 = *(gp);
    0x00005c9c lw v1, (v1)                   |     v1 = *(v1);
    0x00005ca0 lw a0, 0xc(v1)                |     a0 = *((v1 + 3));
    0x00005ca4 b 0x5d44                      |     goto label_39;
                                             |     do {
    0x00005ca8 move v1, a1                   |         v1 = a1;
                                             | label_11:
    0x00005cac sll a1, v1, 2                 |         a1 = v1 << 2;
    0x00005cb0 addu a1, v0, a1               |         a1 = v0 + a1;
    0x00005cb4 lw a2, (a1)                   |         a2 = *(a1);
    0x00005cb8 addiu a1, v1, 1               |         a1 = v1 + 1;
    0x00005cbc bne a2, a0, 0x5ca8            |         
                                             |     } while (a2 != a0);
    0x00005cc0 lw a2, 0x71f8(s4)             |     a2 = *((s4 + 7294));
    0x00005cc4 b 0x5d34                      |     goto label_40;
                                             | label_10:
    0x00005cc8 addu a2, v0, a2               |     a2 = v0 + a2;
    0x00005ccc lw a3, (a2)                   |     a3 = *(a2);
    0x00005cd0 lw a2, 0x58(a3)               |     a2 = *((a3 + 22));
    0x00005cd4 b 0x5d24                      |     goto label_41;
                                             | label_9:
    0x00005cd8 lw a2, (a2)                   |     a2 = *(a2);
                                             |     if (t0 == a0) {
    0x00005cdc bnel t0, a0, 0x5d24           |         goto label_41;
                                             |     }
    0x00005ce0 subu a2, a1, v1               |     __asm ("subu a2, a1, v1");
    0x00005ce4 b 0x5d08                      |     
    0x00005d08 addu t0, a2, v1               |     t0 = a2 + v1;
                                             |     if (a2 != 0) {
    0x00005d0c bnez a2, 0x5ce8               |         void (*0x5ce8)() ();
                                             |     }
                                             | label_41:
    0x00005d24 lw t0, 4(a2)                  |     t0 = *((a2 + 1));
                                             |     if (a2 == 0) {
    0x00005d28 bnel a2, zero, 0x5cd8         |         goto label_9;
                                             |     }
    0x00005d2c addiu a1, a1, 1               |     a1++;
    0x00005d30 lw a2, 0x71f8(s4)             |     a2 = *((s4 + 7294));
                                             | label_40:
    0x00005d34 sltu a2, a1, a2               |     a2 = (a1 < a2) ? 1 : 0;
    0x00005d38 sll a2, a1, 2                 |     a2 = a1 << 2;
                                             |     if (a2 != 0) {
    0x00005d3c bnez a2, 0x5cc8               |         goto label_10;
                                             |     }
    0x00005d40 lw a0, 0xc(a0)                |     a0 = *((a0 + 3));
                                             | label_39:
    0x00005d44 move v1, zero                 |     v1 = 0;
                                             |     if (a0 != 0) {
    0x00005d48 bnez a0, 0x5cac               |         goto label_11;
                                             |     }
    0x00005d4c move v0, s5                   |     v0 = s5;
                                             |     /* Beware that this jump is a conditional jump.
                                             |      * r2dec transformed it as a return, due being the
                                             |      * last instruction. Please, check 'pdda' output
                                             |      * for more hints. */
    0x00005d50 bnez s5, 0x5d84               |     return void (*0x5d84)() ();
                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/lib/ld-uClibc-0.9.33.2.so @ 0x4210 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym._dl_load_elf_shared_library ()       | void dl_load_elf_shared_library () {
    0x00004210 lui gp, 2                             |     
    0x00004214 addiu gp, gp, -0x51f0                 |     
    0x00004218 addu gp, gp, t9                       |     gp += t9;
    0x0000421c addiu sp, sp, -0x1b8                  |     
    0x00004220 sw fp, 0x1b0(sp)                      |     *(var_1b0h) = fp;
    0x00004224 move fp, sp                           |     fp = sp;
    0x00004228 sw s5, 0x1a4(sp)                      |     *(var_1a4h) = s5;
    0x0000422c sw s4, 0x1a0(sp)                      |     *(var_1a0h) = s4;
    0x00004230 sw s0, 0x190(sp)                      |     *(var_190h) = s0;
    0x00004234 move s5, a1                           |     s5 = a1;
    0x00004238 move s0, a0                           |     s0 = a0;
    0x0000423c move s4, a2                           |     s4 = a2;
    0x00004240 move a0, a2                           |     a0 = a2;
    0x00004244 sw ra, 0x1b4(sp)                      |     *(var_1b4h) = ra;
    0x00004248 sw s7, 0x1ac(sp)                      |     *(var_1ach) = s7;
    0x0000424c sw s6, 0x1a8(sp)                      |     *(var_1a8h) = s6;
    0x00004250 sw s3, 0x19c(sp)                      |     *(var_19ch) = s3;
    0x00004254 sw s2, 0x198(sp)                      |     *(var_198h) = s2;
    0x00004258 sw s1, 0x194(sp)                      |     *(var_194h) = s1;
    0x0000425c sw gp, 0x18(sp)                       |     *(var_18h) = gp;
    0x00004260 move a1, zero                         |     a1 = 0;
    0x00004264 move a2, zero                         |     a2 = 0;
    0x00004268 addiu v0, zero, 0xfa5                 |     v0 = 0xfa5;
    0x0000426c syscall                               |     __asm ("syscall");
    0x00004270 move s1, v0                           |     s1 = v0;
                                                     |     if (a3 != 0) {
    0x00004274 beqz a3, 0x4284                       |         
    0x00004278 lw v0, -0x7fdc(gp)                    |         v0 = *(gp);
    0x0000427c sw s1, (v0)                           |         *(v0) = s1;
    0x00004280 b 0x428c                              |         
                                                     |     } else {
    0x00004284 move a0, v0                           |         a0 = v0;
                                                     |         if (v0 >= 0) {
    0x00004288 bgez v0, 0x429c                       |             goto label_6;
                                                     |         }
                                                     |     }
    0x0000428c lw v0, -0x7f40(gp)                    |     v0 = *(gp);
    0x00004290 addiu v1, zero, 1                     |     v1 = 1;
    0x00004294 sw v1, (v0)                           |     *(v0) = v1;
    0x00004298 b 0x4a30                              |     goto label_7;
                                                     | label_6:
    0x0000429c addiu a1, fp, 0xbc                    |     a1 = fp + 0xbc;
    0x000042a0 addiu v0, zero, 0x100c                |     v0 = 0x100c;
    0x000042a4 syscall                               |     __asm ("syscall");
    0x000042a8 lw v1, -0x7fdc(gp)                    |     v1 = *(gp);
                                                     |     if (a3 != 0) {
    0x000042ac beqz a3, 0x42b8                       |         
    0x000042b0 sw v0, (v1)                           |         *(v1) = v0;
    0x000042b4 b 0x42c0                              |         
                                                     |     } else {
    0x000042b8 andi v0, s0, 1                        |         v0 = s0 & 1;
                                                     |         if (v0 >= 0) {
    0x000042bc bgez v0, 0x42c8                       |             goto label_8;
                                                     |         }
                                                     |     }
    0x000042c0 addiu v1, zero, 1                     |     v1 = 1;
    0x000042c4 b 0x43dc                              |     goto label_9;
                                                     | label_8:
    0x000042c8 lw v0, -0x7fb4(gp)                    |     v0 = *(gp);
                                                     |     if (v0 != 0) {
    0x000042cc beqz v0, 0x42e0                       |         
    0x000042d0 lw v0, 0xd0(fp)                       |         v0 = *(var_d0h);
    0x000042d4 andi v0, v0, 0x800                    |         v0 &= 0x800;
    0x000042d8 lw v0, -0x7fb4(gp)                    |         v0 = *(gp);
                                                     |         if (v0 == 0) {
    0x000042dc beqz v0, 0x4a18                       |             goto label_10;
                                                     |         }
                                                     |     }
    0x000042e0 lw s6, (v0)                           |     s6 = *(v0);
    0x000042e4 b 0x4330                              |     
                                                     |     while (s6 == 0) {
    0x000042e8 lw v0, 0xbc(fp)                       |         v0 = *(var_bch);
    0x000042ec lw s6, 0xc(s6)                        |         s6 = *((s6 + 3));
                                                     |         if (v1 != v0) {
    0x000042f0 bnel v1, v0, 0x4330                   |             
    0x000042f4 lw v0, 0x11c(s6)                      |             v0 = *((s6 + 71));
    0x000042f8 lw s6, 0xc(s6)                        |             s6 = *((s6 + 3));
                                                     |             if (v0 == 0) {
    0x000042fc bnel v0, zero, 0x4330                 |                 goto label_11;
                                                     |             }
    0x00004300 lw v1, 0x120(s6)                      |             v1 = *(s6);
    0x00004304 lw v0, 0xcc(fp)                       |             v0 = *(var_cch);
    0x00004308 lw s6, 0xc(s6)                        |             s6 = *((s6 + 3));
                                                     |             if (v1 == v0) {
    0x0000430c bnel v1, v0, 0x4330                   |                 goto label_11;
                                                     |             }
    0x00004310 lhu v0, 0x48(s6)                      |             v0 = *((s6 + 36));
    0x00004314 move a0, s1                           |             a0 = s1;
    0x00004318 addiu v0, v0, 1                       |             v0++;
    0x0000431c sh v0, 0x48(s6)                       |             *((s6 + 36)) = v0;
    0x00004320 addiu v0, zero, 0xfa6                 |             v0 = 0xfa6;
    0x00004324 syscall                               |             __asm ("syscall");
    0x00004328 b 0x4c40                              |             goto label_12;
    0x0000432c nop                                   |             
                                                     |         }
                                                     | label_11:
    0x00004330 lw v1, 0x118(s6)                      |         v1 = *((s6 + 70));
    0x00004334 bnel s6, zero, 0x42e8                 |         
                                                     |     }
    0x00004338 andi s0, s0, 2                        |     s0 &= 2;
    0x0000433c lw v0, -0x7f98(gp)                    |     v0 = *(gp);
                                                     |     if (s0 != 0) {
    0x00004340 beqz s0, 0x4360                       |         
    0x00004344 move a0, s1                           |         a0 = s1;
    0x00004348 addiu v0, zero, 0xfa6                 |         v0 = 0xfa6;
    0x0000434c syscall                               |         __asm ("syscall");
                                                     |         if (a3 == 0) {
    0x00004350 beql a3, zero, 0x4cac                 |             goto label_13;
                                                     |         }
    0x00004354 move s6, zero                         |         s6 = 0;
    0x00004358 lw v1, -0x7fdc(gp)                    |         v1 = *(gp);
    0x0000435c b 0x4ca8                              |         goto label_14;
                                                     |     }
    0x00004360 lui a3, 0x400                         |     a3 = 0x4000000;
    0x00004364 move a0, zero                         |     a0 = 0;
    0x00004368 lw a1, (v0)                           |     a1 = *(v0);
    0x0000436c addiu a2, zero, 3                     |     a2 = 3;
    0x00004370 addiu a3, a3, 0x802                   |     a3 += 0x802;
    0x00004374 addiu v0, zero, -1                    |     v0 = -1;
    0x00004378 addiu sp, sp, -0x20                   |     
    0x0000437c sw v0, 0x10(sp)                       |     *(var_10h) = v0;
    0x00004380 sw s6, 0x14(sp)                       |     *(var_14h) = s6;
    0x00004384 addiu v0, zero, 0xffa                 |     v0 = 0xffa;
    0x00004388 syscall                               |     __asm ("syscall");
    0x0000438c addiu sp, sp, 0x20                    |     
    0x00004390 move s0, v0                           |     s0 = v0;
                                                     |     if (a3 != 0) {
    0x00004394 beqz a3, 0x43a4                       |         
    0x00004398 lw v0, -0x7fdc(gp)                    |         v0 = *(gp);
    0x0000439c sw s0, (v0)                           |         *(v0) = s0;
    0x000043a0 addiu s0, zero, -1                    |         s0 = -1;
                                                     |     }
    0x000043a4 addiu v0, zero, -1                    |     v0 = -1;
    0x000043a8 lw v0, -0x7f98(gp)                    |     v0 = *(gp);
                                                     |     if (s0 == v0) {
    0x000043ac bne s0, v0, 0x43e8                    |         
    0x000043b0 lw v0, -0x7f90(gp)                    |         v0 = *(gp);
    0x000043b4 lw a1, -0x7fe4(gp)                    |         a1 = *((gp - 8185));
    0x000043b8 lw t9, -0x7f94(gp)                    |         t9 = sym._dl_dprintf
    0x000043bc lw a2, (v0)                           |         a2 = *(v0);
    0x000043c0 addiu a0, zero, 2                     |         a0 = 2;
    0x000043c4 sw s4, 0x10(sp)                       |         *(var_10h_2) = s4;
    0x000043c8 addiu a1, a1, 0x6a48                  |         a1 += str._s:_i:_cant_map__s_n;
    0x000043cc addiu a3, zero, 0x1f9                 |         a3 = 0x1f9;
    0x000043d0 bal 0x1ec4                            |         sym_dl_dprintf ()
    0x000043d4 lw gp, 0x18(fp)                       |         gp = *(var_18h);
    0x000043d8 addiu v1, zero, 6                     |         v1 = 6;
                                                     | label_9:
    0x000043dc lw v0, -0x7f40(gp)                    |         v0 = *(gp);
    0x000043e0 sw v1, (v0)                           |         *(v0) = v1;
    0x000043e4 b 0x4a14                              |         goto label_15;
                                                     |     }
    0x000043e8 move a0, s1                           |     a0 = s1;
    0x000043ec move a1, s0                           |     a1 = s0;
    0x000043f0 lw a2, (v0)                           |     a2 = *(v0);
    0x000043f4 addiu v0, zero, 0xfa3                 |     v0 = 0xfa3;
    0x000043f8 syscall                               |     __asm ("syscall");
                                                     |     if (a3 != 0) {
    0x000043fc beql a3, zero, 0x4410                 |         
    0x00004400 lw v1, (s0)                           |         v1 = *(s0);
    0x00004404 lw v1, -0x7fdc(gp)                    |         v1 = *(gp);
    0x00004408 sw v0, (v1)                           |         *(v1) = v0;
    0x0000440c lw v1, (s0)                           |         v1 = *(s0);
                                                     |     }
    0x00004410 lui v0, 0x464c                        |     v0 = 0x464c457f;
    0x00004414 addiu v0, v0, 0x457f                  |     
    0x00004418 lw a1, -0x7fe4(gp)                    |     a1 = *((gp - 8185));
                                                     |     if (v1 != v0) {
    0x0000441c beq v1, v0, 0x4448                    |         
    0x00004420 lw v0, -0x7f90(gp)                    |         v0 = *(gp);
    0x00004424 lw t9, -0x7f94(gp)                    |         t9 = sym._dl_dprintf
    0x00004428 lw a2, (v0)                           |         a2 = *(v0);
    0x0000442c addiu a0, zero, 2                     |         a0 = 2;
    0x00004430 addiu a1, a1, 0x6bd0                  |         a1 += str._s:__s_is_not_an_ELF_file_n;
    0x00004434 move a3, s4                           |         a3 = s4;
    0x00004438 bal 0x1ec4                            |         sym_dl_dprintf ()
    0x0000443c lw gp, 0x18(fp)                       |         gp = *(var_18h);
    0x00004440 addiu v1, zero, 3                     |         v1 = 3;
    0x00004444 b 0x4668                              |         goto label_16;
                                                     |     }
    0x00004448 lhu a0, 0x10(s0)                      |     a0 = *((s0 + 8));
    0x0000444c addiu v1, zero, 3                     |     v1 = 3;
    0x00004450 addiu v0, zero, 5                     |     v0 = 5;
                                                     |     if (a0 == v1) {
    0x00004454 bne a0, v1, 0x4474                    |         
    0x00004458 lhu v0, 0x12(s0)                      |         v0 = *((s0 + 9));
    0x0000445c addiu v1, zero, 8                     |         v1 = 8;
                                                     |         if (v0 == v1) {
    0x00004460 beql v0, v1, 0x44a8                   |             goto label_17;
                                                     |         }
    0x00004464 lw s2, 0x1c(s0)                       |         s2 = *((s0 + 7));
    0x00004468 addiu v1, zero, 0xa                   |         v1 = 0xa;
    0x0000446c addiu v0, zero, 4                     |         v0 = 4;
                                                     |         if (v0 == v1) {
    0x00004470 beq v0, v1, 0x44a4                    |             goto label_18;
                                                     |         }
                                                     |     }
    0x00004474 lw v1, -0x7f40(gp)                    |     v1 = *(gp);
    0x00004478 lw a1, -0x7fe4(gp)                    |     a1 = *((gp - 8185));
    0x0000447c lw t9, -0x7f94(gp)                    |     t9 = sym._dl_dprintf
    0x00004480 sw v0, (v1)                           |     *(v1) = v0;
    0x00004484 lw v0, -0x7f90(gp)                    |     v0 = *(gp);
    0x00004488 addiu a0, zero, 2                     |     a0 = 2;
    0x0000448c addiu a1, a1, 0x6bf0                  |     a1 += str._s:__s_is_not_an_ELF_executable_for_MIPS_n;
    0x00004490 lw a2, (v0)                           |     a2 = *(v0);
    0x00004494 move a3, s4                           |     a3 = s4;
    0x00004498 bal 0x1ec4                            |     sym_dl_dprintf ()
    0x0000449c lw gp, 0x18(fp)                       |     gp = *(var_18h);
    0x000044a0 b 0x4670                              |     goto label_19;
                                                     | label_18:
    0x000044a4 lw s2, 0x1c(s0)                       |     s2 = *((s0 + 7));
                                                     | label_17:
    0x000044a8 lw t0, -0x7fe4(gp)                    |     t0 = *((gp - 8185));
    0x000044ac addiu s7, zero, 1                     |     s7 = 1;
    0x000044b0 lui t1, 0x100                         |     t1 = 0x1000000;
    0x000044b4 sw s7, 0x158(fp)                      |     *(var_158h) = s7;
    0x000044b8 addu s2, s0, s2                       |     s2 = s0 + s2;
    0x000044bc move s7, zero                         |     s7 = 0;
    0x000044c0 move s3, zero                         |     s3 = 0;
    0x000044c4 addiu s6, zero, -1                    |     s6 = -1;
    0x000044c8 sw zero, 0x154(fp)                    |     *(var_154h) = 0;
    0x000044cc sw zero, 0x150(fp)                    |     *(var_150h) = 0;
    0x000044d0 lw v1, -0x7f90(gp)                    |     v1 = *(gp);
    0x000044d4 addiu t0, t0, 0x6c1c                  |     t0 += str._s:__s_has_more_than_one_dynamic_section_n;
    0x000044d8 addiu t1, t1, 1                       |     t1++;
    0x000044dc b 0x45b0                              |     
                                                     |     while (v0 == 0) {
    0x000044e0 addiu v0, zero, 2                     |         v0 = 2;
    0x000044e4 lw v0, (s2)                           |         v0 = *(s2);
                                                     |         if (a0 != v0) {
    0x000044e8 bnel a0, v0, 0x4538                   |             
    0x000044ec lw ra, 0x150(fp)                      |             ra = *(var_150h);
                                                     |             if (ra != 0) {
    0x000044f0 beql ra, zero, 0x4530                 |                 
    0x000044f4 lw v0, 8(s2)                          |                 v0 = *((s2 + 2));
    0x000044f8 lw a2, (v1)                           |                 a2 = *(v1);
    0x000044fc lw t9, -0x7f94(gp)                    |                 t9 = sym._dl_dprintf
    0x00004500 move a1, t0                           |                 a1 = t0;
    0x00004504 sw v1, 0x17c(fp)                      |                 *(var_17ch) = v1;
    0x00004508 sw t0, 0x180(fp)                      |                 *(var_180h) = t0;
    0x0000450c sw t1, 0x184(fp)                      |                 *(var_184h) = t1;
    0x00004510 addiu a0, zero, 2                     |                 a0 = 2;
    0x00004514 move a3, s4                           |                 a3 = s4;
    0x00004518 bal 0x1ec4                            |                 sym_dl_dprintf ()
    0x0000451c lw gp, 0x18(fp)                       |                 gp = *(var_18h);
    0x00004520 lw t1, 0x184(fp)                      |                 t1 = *(var_184h);
    0x00004524 lw t0, 0x180(fp)                      |                 t0 = *(var_180h);
    0x00004528 lw v1, 0x17c(fp)                      |                 v1 = *(var_17ch);
    0x0000452c lw v0, 8(s2)                          |                 v0 = *((s2 + 2));
                                                     |             }
    0x00004530 sw v0, 0x150(fp)                      |             *(var_150h) = v0;
    0x00004534 lw v0, (s2)                           |             v0 = *(s2);
                                                     |         }
    0x00004538 addiu a0, zero, 1                     |         a0 = 1;
    0x0000453c addiu a0, zero, 7                     |         a0 = 7;
                                                     |         if (v0 == a0) {
    0x00004540 bne v0, a0, 0x4590                    |             
    0x00004544 addiu a0, zero, -1                    |             a0 = -1;
    0x00004548 lw v0, 8(s2)                          |             v0 = *((s2 + 2));
                                                     |             if (s6 == a0) {
    0x0000454c bne s6, a0, 0x4560                    |                 
    0x00004550 sltu a0, v0, t1                       |                 a0 = (v0 < t1) ? 1 : 0;
    0x00004554 move s6, v0                           |                 s6 = v0;
                                                     |                 if (a0 == 0) {
    0x00004558 beqz a0, 0x4574                       |                     goto label_20;
                                                     |                 }
    0x0000455c addiu s6, zero, -1                    |                 s6 = -1;
                                                     |             }
    0x00004560 lw a0, 0x158(fp)                      |             a0 = *(var_158h);
    0x00004564 sltu a0, v0, s6                       |             a0 = (v0 < s6) ? 1 : 0;
                                                     |             if (a0 != 0) {
    0x00004568 beqz a0, 0x4578                       |                 
                                                     |                 if (a0 == 0) {
    0x0000456c movn s6, v0, a0                       |                     s6 = v0;
                                                     |                 }
    0x00004570 b 0x4578                              |                 goto label_21;
                                                     | label_20:
    0x00004574 sw zero, 0x158(fp)                    |                 *(var_158h) = 0;
                                                     |             }
                                                     | label_21:
    0x00004578 lw a0, 0x14(s2)                       |             a0 = *((s2 + 5));
    0x0000457c lw v0, 8(s2)                          |             v0 = *((s2 + 2));
    0x00004580 addu v0, a0, v0                       |             v0 = a0 + v0;
    0x00004584 sltu a0, s3, v0                       |             a0 = (s3 < v0) ? 1 : 0;
                                                     |             if (a0 == 0) {
    0x00004588 movn s3, v0, a0                       |                 s3 = v0;
                                                     |             }
    0x0000458c b 0x45a8                              |             
                                                     |         } else {
    0x00004590 addiu s2, s2, 0x20                    |             s2 += 0x20;
                                                     |             if (v0 == a0) {
    0x00004594 bnel v0, a0, 0x45ac                   |                 goto label_22;
                                                     |             }
    0x00004598 lw v0, 0x14(s2)                       |             v0 = *((s2 + 5));
                                                     |             if (v0 == 0) {
    0x0000459c beql v0, zero, 0x45b0                 |                 goto label_23;
                                                     |             }
    0x000045a0 addiu s7, s7, 1                       |             s7++;
    0x000045a4 sw s2, 0x154(fp)                      |             *(var_154h) = s2;
                                                     |         }
    0x000045a8 addiu s2, s2, 0x20                    |         s2 += 0x20;
                                                     | label_22:
    0x000045ac addiu s7, s7, 1                       |         s7++;
                                                     | label_23:
    0x000045b0 lhu v0, 0x2c(s0)                      |         v0 = *((s0 + 22));
    0x000045b4 slt v0, s7, v0                        |         v0 = (s7 < v0) ? 1 : 0;
    0x000045b8 lw a0, (s2)                           |         a0 = *(s2);
    0x000045bc bnel v0, zero, 0x44e0                 |         
                                                     |     }
    0x000045c0 lw v0, -0x7f98(gp)                    |     v0 = *(gp);
    0x000045c4 lw s7, 0x158(fp)                      |     s7 = *(var_158h);
    0x000045c8 move a0, zero                         |     a0 = 0;
    0x000045cc lw v1, (v0)                           |     v1 = *(v0);
    0x000045d0 move a2, zero                         |     a2 = 0;
    0x000045d4 addiu a3, zero, 0x802                 |     a3 = 0x802;
    0x000045d8 negu v0, v1                           |     __asm ("negu v0, v1");
    0x000045dc addiu v1, v1, -1                      |     v1 += -1;
    0x000045e0 addu s3, v1, s3                       |     s3 = v1 + s3;
    0x000045e4 and s6, s6, v0                        |     s6 &= v0;
    0x000045e8 and v0, s3, v0                        |     v0 = s3 & v0;
    0x000045ec subu v0, v0, s6                       |     __asm ("subu v0, v0, s6");
    0x000045f0 sw v0, 0x16c(fp)                      |     *(var_16ch) = v0;
    0x000045f4 move a1, v0                           |     a1 = v0;
                                                     |     if (s7 != 0) {
    0x000045f8 movz a0, s6, s7                       |         a0 = s6;
                                                     |     }
    0x000045fc move s2, zero                         |     s2 = 0;
    0x00004600 addiu v0, zero, -1                    |     v0 = -1;
    0x00004604 addiu sp, sp, -0x20                   |     
    0x00004608 sw v0, 0x10(sp)                       |     *(var_10h) = v0;
    0x0000460c sw s2, 0x14(sp)                       |     *(var_14h) = s2;
    0x00004610 addiu v0, zero, 0xffa                 |     v0 = 0xffa;
    0x00004614 syscall                               |     __asm ("syscall");
    0x00004618 addiu sp, sp, 0x20                    |     
    0x0000461c move s3, v0                           |     s3 = v0;
                                                     |     if (a3 != 0) {
    0x00004620 beqz a3, 0x4630                       |         
    0x00004624 lw v0, -0x7fdc(gp)                    |         v0 = *(gp);
    0x00004628 sw s3, (v0)                           |         *(v0) = s3;
    0x0000462c addiu s3, zero, -1                    |         s3 = -1;
                                                     |     }
    0x00004630 addiu v0, zero, -1                    |     v0 = -1;
    0x00004634 lw s7, 0x158(fp)                      |     s7 = *(var_158h);
                                                     |     if (s3 != v0) {
    0x00004638 bne s3, v0, 0x46a8                    |         goto label_24;
                                                     |     }
                                                     | label_0:
    0x0000463c lw v0, -0x7f90(gp)                    |     v0 = *(gp);
                                                     |     do {
    0x00004640 lw a1, -0x7fe4(gp)                    |         a1 = *((gp - 8185));
    0x00004644 lw t9, -0x7f94(gp)                    |         t9 = sym._dl_dprintf
    0x00004648 lw a2, (v0)                           |         a2 = *(v0);
    0x0000464c addiu a0, zero, 2                     |         a0 = 2;
    0x00004650 sw s4, 0x10(sp)                       |         *(var_10h_2) = s4;
    0x00004654 addiu a1, a1, 0x6a48                  |         a1 += str._s:_i:_cant_map__s_n;
    0x00004658 addiu a3, zero, 0x261                 |         a3 = 0x261;
    0x0000465c bal 0x1ec4                            |         sym_dl_dprintf ()
    0x00004660 lw gp, 0x18(fp)                       |         gp = *(var_18h);
    0x00004664 addiu v1, zero, 6                     |         v1 = 6;
                                                     | label_16:
    0x00004668 lw v0, -0x7f40(gp)                    |         v0 = *(gp);
    0x0000466c sw v1, (v0)                           |         *(v0) = v1;
                                                     | label_19:
    0x00004670 move a0, s1                           |         a0 = s1;
    0x00004674 addiu v0, zero, 0xfa6                 |         v0 = 0xfa6;
    0x00004678 syscall                               |         __asm ("syscall");
                                                     |         if (a3 != 0) {
    0x0000467c beql a3, zero, 0x4690                 |             
    0x00004680 lw v0, -0x7f98(gp)                    |             v0 = *(gp);
    0x00004684 lw v1, -0x7fdc(gp)                    |             v1 = *(gp);
    0x00004688 sw v0, (v1)                           |             *(v1) = v0;
    0x0000468c lw v0, -0x7f98(gp)                    |             v0 = *(gp);
                                                     |         }
    0x00004690 move a0, s0                           |         a0 = s0;
    0x00004694 lw a1, (v0)                           |         a1 = *(v0);
    0x00004698 addiu v0, zero, 0xffb                 |         v0 = 0xffb;
    0x0000469c syscall                               |         __asm ("syscall");
    0x000046a0 b 0x4a20                              |         goto label_25;
    0x000046a4 nop                                   |         
                                                     | label_24:
    0x000046a8 lw s2, 0x1c(s0)                       |         s2 = *((s0 + 7));
    0x000046ac lw v0, -0x7fd8(gp)                    |         v0 = *((gp - 8182));
    0x000046b0 move ra, zero                         |         ra = 0;
    0x000046b4 subu s6, s3, s6                       |         __asm ("subu s6, s3, s6");
                                                     |         if (s7 == 0) {
    0x000046b8 movn ra, s3, s7                       |             ra = s3;
                                                     |         }
    0x000046bc addu s2, s0, s2                       |         s2 = s0 + s2;
    0x000046c0 sw s6, 0x15c(fp)                      |         *(var_15ch) = s6;
    0x000046c4 sw s6, 0x720c(v0)                     |         *((v0 + 7299)) = s6;
    0x000046c8 sw zero, 0x168(fp)                    |         *(var_168h) = 0;
    0x000046cc sw zero, 0x164(fp)                    |         *(var_164h) = 0;
    0x000046d0 sw zero, 0x160(fp)                    |         *(var_160h) = 0;
    0x000046d4 sw ra, 0x178(fp)                      |         *(var_178h) = ra;
    0x000046d8 b 0x4990                              |         goto label_26;
                                                     | label_2:
    0x000046dc lw a0, 0x15c(fp)                      |         a0 = *(var_15ch);
                                                     | label_1:
    0x000046e0 lw a1, 0x16c(fp)                      |         a1 = *(var_16ch);
    0x000046e4 addiu v0, zero, 0xffb                 |         v0 = 0xffb;
    0x000046e8 syscall                               |         __asm ("syscall");
    0x000046ec beql a3, zero, 0x4640                 |         
                                                     |     } while (a3 == 0);
    0x000046f0 lw v0, -0x7f90(gp)                    |     v0 = *(gp);
    0x000046f4 lw v1, -0x7fdc(gp)                    |     v1 = *(gp);
    0x000046f8 sw v0, (v1)                           |     *(v1) = v0;
    0x000046fc b 0x463c                              |     goto label_0;
                                                     | label_4:
    0x00004700 lui ra, 0x6474                        |     ra = 0x6474e552;
    0x00004704 ori ra, ra, 0xe552                    |     
    0x00004708 addiu ra, zero, 1                     |     ra = 1;
                                                     |     if (v0 == ra) {
    0x0000470c bne v0, ra, 0x4724                    |         
    0x00004710 lw s7, 8(s2)                          |         s7 = *((s2 + 2));
    0x00004714 sw s7, 0x164(fp)                      |         *(var_164h) = s7;
    0x00004718 lw s7, 0x14(s2)                       |         s7 = *((s2 + 5));
    0x0000471c sw s7, 0x168(fp)                      |         *(var_168h) = s7;
    0x00004720 b 0x4980                              |         goto label_27;
                                                     |     }
    0x00004724 lw s7, 0x160(fp)                      |     s7 = *(var_160h);
                                                     |     if (v0 != ra) {
    0x00004728 bne v0, ra, 0x4984                    |         goto label_28;
                                                     |     }
    0x0000472c lw v1, 0x18(s2)                       |     v1 = *((s2 + 6));
    0x00004730 andi a0, v1, 2                        |     a0 = v1 & 2;
    0x00004734 lw v0, 8(s2)                          |     v0 = *((s2 + 2));
                                                     |     if (a0 == 0) {
    0x00004738 beqz a0, 0x48e0                       |         goto label_29;
                                                     |     }
    0x0000473c lw a0, -0x7f98(gp)                    |     a0 = *(gp);
    0x00004740 lw a2, 0x10(s2)                       |     a2 = *((s2 + 4));
    0x00004744 addiu a3, zero, 0x12                  |     a3 = 0x12;
    0x00004748 lw ra, (a0)                           |     ra = *(a0);
    0x0000474c lw a0, -0x7fd8(gp)                    |     a0 = *((gp - 8182));
    0x00004750 lw s7, 0x720c(a0)                     |     s7 = *((a0 + 7299));
    0x00004754 lw a0, 0x158(fp)                      |     a0 = *(var_158h);
                                                     |     if (a0 == 0) {
    0x00004758 movn s7, s3, a0                       |         s7 = s3;
                                                     |     }
    0x0000475c negu a0, ra                           |     __asm ("negu a0, ra");
    0x00004760 addiu ra, ra, -1                      |     ra += -1;
    0x00004764 and a1, a0, v0                        |     a1 = a0 & v0;
    0x00004768 and ra, ra, v0                        |     ra &= v0;
    0x0000476c ext v0, v1, 2, 1                      |     __asm ("ext v0, v1, 2, 1");
    0x00004770 ori v0, v0, 2                         |     v0 |= 2;
    0x00004774 addu ra, ra, a2                       |     ra += a2;
    0x00004778 sw v0, 0x170(fp)                      |     *(var_170h) = v0;
    0x0000477c andi v1, v1, 1                        |     v1 &= 1;
    0x00004780 lw v0, 4(s2)                          |     v0 = *((s2 + 1));
    0x00004784 addiu a2, zero, 4                     |     a2 = 4;
    0x00004788 sw v1, 0x174(fp)                      |     *(var_174h) = v1;
                                                     |     if (v1 != 0) {
    0x0000478c movz a2, zero, v1                     |         a2 = 0;
                                                     |     }
    0x00004790 lw v1, 0x170(fp)                      |     v1 = *(var_170h);
    0x00004794 addu s7, s7, a1                       |     s7 += a1;
    0x00004798 ext v0, v0, 0, 0x1f                   |     __asm ("ext v0, v0, 0, 0x1f");
    0x0000479c and v0, v0, a0                        |     v0 &= a0;
    0x000047a0 move a1, ra                           |     a1 = ra;
    0x000047a4 move a0, s7                           |     a0 = s7;
    0x000047a8 or a2, a2, v1                         |     a2 |= v1;
    0x000047ac addiu sp, sp, -0x20                   |     
    0x000047b0 sw s1, 0x10(sp)                       |     *(var_10h) = s1;
    0x000047b4 sw v0, 0x14(sp)                       |     *(var_14h) = v0;
    0x000047b8 addiu v0, zero, 0xffa                 |     v0 = 0xffa;
    0x000047bc syscall                               |     __asm ("syscall");
    0x000047c0 addiu sp, sp, 0x20                    |     
    0x000047c4 move s6, v0                           |     s6 = v0;
                                                     |     if (a3 != 0) {
    0x000047c8 beqz a3, 0x47d8                       |         
    0x000047cc lw a0, -0x7fdc(gp)                    |         a0 = *(gp);
    0x000047d0 addiu s6, zero, -1                    |         s6 = -1;
    0x000047d4 sw v0, (a0)                           |         *(a0) = v0;
                                                     |     }
    0x000047d8 addiu v0, zero, -1                    |     v0 = -1;
    0x000047dc lw a0, 0x15c(fp)                      |     a0 = *(var_15ch);
                                                     |     if (s6 == v0) {
    0x000047e0 beq s6, v0, 0x46e0                    |         goto label_1;
                                                     |     }
                                                     |     if (s7 == 0) {
    0x000047e4 beql s7, zero, 0x47f4                 |         goto label_30;
                                                     |     }
    0x000047e8 lw s7, -0x7f98(gp)                    |     s7 = *(gp);
    0x000047ec lw s7, -0x7f98(gp)                    |     s7 = *(gp);
                                                     |     if (s7 != s6) {
    0x000047f0 bne s7, s6, 0x46e0                    |         goto label_1;
                                                     |     }
                                                     | label_30:
    0x000047f4 lw a1, 0x10(s2)                       |     a1 = *((s2 + 4));
    0x000047f8 lw a0, 8(s2)                          |     a0 = *((s2 + 2));
    0x000047fc lw v1, (s7)                           |     v1 = *(s7);
    0x00004800 addu ra, s6, ra                       |     ra = s6 + ra;
    0x00004804 addu a0, a1, a0                       |     a0 = a1 + a0;
    0x00004808 addiu v0, v1, -1                      |     v0 = v1 + -1;
    0x0000480c addu v0, v0, a0                       |     v0 += a0;
    0x00004810 negu v1, v1                           |     __asm ("negu v1, v1");
    0x00004814 and v0, v0, v1                        |     v0 &= v1;
    0x00004818 lw v1, 0x14(s2)                       |     v1 = *((s2 + 5));
    0x0000481c subu a0, v0, a0                       |     __asm ("subu a0, v0, a0");
    0x00004820 subu v1, v1, a1                       |     __asm ("subu v1, v1, a1");
    0x00004824 sltu a1, v1, a0                       |     a1 = (v1 < a0) ? 1 : 0;
                                                     |     if (a1 != 0) {
    0x00004828 movz v1, a0, a1                       |         v1 = a0;
                                                     |     }
    0x0000482c b 0x483c                              |     
                                                     |     while (v1 != 0) {
    0x00004830 sb zero, (ra)                         |         *(ra) = 0;
    0x00004834 move v1, a0                           |         v1 = a0;
    0x00004838 addiu ra, ra, 1                       |         ra++;
    0x0000483c addiu a0, v1, -1                      |         a0 = v1 + -1;
    0x00004840 bnez v1, 0x4830                       |         
                                                     |     }
    0x00004844 lw v1, 8(s2)                          |     v1 = *((s2 + 2));
    0x00004848 lw a1, 0x14(s2)                       |     a1 = *((s2 + 5));
    0x0000484c addu a1, a1, v1                       |     a1 += v1;
    0x00004850 sltu v1, v0, a1                       |     v1 = (v0 < a1) ? 1 : 0;
    0x00004854 lw ra, 0x178(fp)                      |     ra = *(var_178h);
                                                     |     if (v1 != 0) {
    0x00004858 bnel v1, zero, 0x486c                 |         
                                                     | label_3:
    0x0000485c lw s7, 0x160(fp)                      |         s7 = *(var_160h);
                                                     |         if (s6 != 0) {
    0x00004860 bnez s6, 0x4984                       |             goto label_28;
                                                     |         }
    0x00004864 lw a0, 0x15c(fp)                      |         a0 = *(var_15ch);
    0x00004868 b 0x46e0                              |         goto label_1;
                                                     |     }
    0x0000486c lw s7, 0x174(fp)                      |     s7 = *(var_174h);
    0x00004870 addiu a2, zero, 4                     |     a2 = 4;
    0x00004874 addu ra, ra, v0                       |     ra += v0;
    0x00004878 sw ra, 0x188(fp)                      |     *(var_188h) = ra;
    0x0000487c move a0, ra                           |     a0 = ra;
    0x00004880 lw ra, 0x170(fp)                      |     ra = *(var_170h);
                                                     |     if (s7 != 0) {
    0x00004884 movz a2, zero, s7                     |         a2 = 0;
                                                     |     }
    0x00004888 subu a1, a1, v0                       |     __asm ("subu a1, a1, v0");
    0x0000488c or a2, a2, ra                         |     a2 |= ra;
    0x00004890 addiu a3, zero, 0x812                 |     a3 = 0x812;
    0x00004894 addiu s7, zero, -1                    |     s7 = -1;
    0x00004898 move ra, zero                         |     ra = 0;
    0x0000489c addiu sp, sp, -0x20                   |     
    0x000048a0 sw s7, 0x10(sp)                       |     *(var_10h) = s7;
    0x000048a4 sw ra, 0x14(sp)                       |     *(var_14h) = ra;
    0x000048a8 addiu v0, zero, 0xffa                 |     v0 = 0xffa;
    0x000048ac syscall                               |     __asm ("syscall");
    0x000048b0 addiu sp, sp, 0x20                    |     
    0x000048b4 addiu a0, zero, -1                    |     a0 = -1;
                                                     |     if (a3 != 0) {
    0x000048b8 beqz a3, 0x48c8                       |         
    0x000048bc lw v1, -0x7fdc(gp)                    |         v1 = *(gp);
    0x000048c0 sw v0, (v1)                           |         *(v1) = v0;
    0x000048c4 addiu v0, zero, -1                    |         v0 = -1;
                                                     |     }
    0x000048c8 lw s7, 0x188(fp)                      |     s7 = *(var_188h);
                                                     |     if (v0 == a0) {
    0x000048cc beq v0, a0, 0x46dc                    |         goto label_2;
                                                     |     }
                                                     |     if (s7 == v0) {
    0x000048d0 beq s7, v0, 0x485c                    |         goto label_3;
                                                     |     }
    0x000048d4 nop                                   |     
    0x000048d8 lw a0, 0x15c(fp)                      |     a0 = *(var_15ch);
    0x000048dc b 0x46e0                              |     goto label_1;
                                                     | label_29:
    0x000048e0 lw ra, -0x7fd8(gp)                    |     ra = *((gp - 8182));
    0x000048e4 lw s7, 0x158(fp)                      |     s7 = *(var_158h);
    0x000048e8 lw t0, 0x10(s2)                       |     t0 = *((s2 + 4));
    0x000048ec lw s6, 0x720c(ra)                     |     s6 = *((ra + 7299));
    0x000048f0 lw ra, -0x7f98(gp)                    |     ra = *(gp);
    0x000048f4 ext a3, v1, 2, 1                      |     __asm ("ext a3, v1, 2, 1");
                                                     |     if (s7 == 0) {
    0x000048f8 movn s6, s3, s7                       |         s6 = s3;
                                                     |     }
    0x000048fc lw a1, (ra)                           |     a1 = *(ra);
    0x00004900 andi v1, v1, 1                        |     v1 &= 1;
    0x00004904 negu a0, a1                           |     __asm ("negu a0, a1");
    0x00004908 addiu a1, a1, -1                      |     a1 += -1;
    0x0000490c and a2, a0, v0                        |     a2 = a0 & v0;
    0x00004910 and a1, a1, v0                        |     a1 &= v0;
    0x00004914 lw v0, 4(s2)                          |     v0 = *((s2 + 1));
    0x00004918 addu s6, s6, a2                       |     s6 += a2;
    0x0000491c addiu a2, zero, 4                     |     a2 = 4;
                                                     |     if (v1 != 0) {
    0x00004920 movz a2, zero, v1                     |         a2 = 0;
                                                     |     }
    0x00004924 ext v0, v0, 0, 0x1f                   |     __asm ("ext v0, v0, 0, 0x1f");
    0x00004928 and v0, v0, a0                        |     v0 &= a0;
    0x0000492c or a2, a2, a3                         |     a2 |= a3;
    0x00004930 move a0, s6                           |     a0 = s6;
    0x00004934 addu a1, a1, t0                       |     a1 += t0;
    0x00004938 addiu a3, zero, 0x12                  |     a3 = 0x12;
    0x0000493c addiu sp, sp, -0x20                   |     
    0x00004940 sw s1, 0x10(sp)                       |     *(var_10h) = s1;
    0x00004944 sw v0, 0x14(sp)                       |     *(var_14h) = v0;
    0x00004948 addiu v0, zero, 0xffa                 |     v0 = 0xffa;
    0x0000494c syscall                               |     __asm ("syscall");
    0x00004950 addiu sp, sp, 0x20                    |     
    0x00004954 addiu a0, zero, -1                    |     a0 = -1;
                                                     |     if (a3 == 0) {
    0x00004958 beqz a3, 0x4968                       |         goto label_31;
                                                     |     }
    0x0000495c lw v1, -0x7fdc(gp)                    |     v1 = *(gp);
    0x00004960 sw v0, (v1)                           |     *(v1) = v0;
    0x00004964 addiu v0, zero, -1                    |     v0 = -1;
                                                     |     if (v0 == a0) {
                                                     | label_31:
    0x00004968 beql v0, a0, 0x46e0                   |         goto label_1;
                                                     |     }
    0x0000496c lw a0, 0x15c(fp)                      |     a0 = *(var_15ch);
    0x00004970 lw s7, 0x160(fp)                      |     s7 = *(var_160h);
                                                     |     if (s6 == 0) {
    0x00004974 beqz s6, 0x4984                       |         goto label_28;
                                                     |     }
    0x00004978 lw a0, 0x15c(fp)                      |     a0 = *(var_15ch);
                                                     |     if (s6 != v0) {
    0x0000497c bne s6, v0, 0x46e0                    |         goto label_1;
                                                     |     }
                                                     | label_27:
    0x00004980 lw s7, 0x160(fp)                      |     s7 = *(var_160h);
                                                     | label_28:
    0x00004984 addiu s2, s2, 0x20                    |     s2 += 0x20;
    0x00004988 addiu s7, s7, 1                       |     s7++;
    0x0000498c sw s7, 0x160(fp)                      |     *(var_160h) = s7;
                                                     | label_26:
    0x00004990 lhu v0, 0x2c(s0)                      |     v0 = *((s0 + 22));
    0x00004994 lw ra, 0x160(fp)                      |     ra = *(var_160h);
    0x00004998 slt v0, ra, v0                        |     v0 = (ra < v0) ? 1 : 0;
    0x0000499c lw v0, (s2)                           |     v0 = *(s2);
                                                     |     if (v0 == 0) {
    0x000049a0 bnel v0, zero, 0x4700                 |         goto label_4;
                                                     |     }
    0x000049a4 lw s7, 0x150(fp)                      |     s7 = *(var_150h);
    0x000049a8 lw ra, 0x15c(fp)                      |     ra = *(var_15ch);
    0x000049ac lw v1, 0x158(fp)                      |     v1 = *(var_158h);
    0x000049b0 addu v0, s7, ra                       |     v0 = s7 + ra;
                                                     |     if (v1 == 0) {
    0x000049b4 movn s7, v0, v1                       |         s7 = v0;
                                                     |     }
    0x000049b8 sw s7, 0x150(fp)                      |     *(var_150h) = s7;
                                                     |     if (s7 == 0) {
    0x000049bc bnez s7, 0x4a38                       |         
    0x000049c0 lw v0, -0x7f40(gp)                    |         v0 = *(gp);
    0x000049c4 addiu v1, zero, 7                     |         v1 = 7;
    0x000049c8 lw a1, -0x7fe4(gp)                    |         a1 = *((gp - 8185));
    0x000049cc sw v1, (v0)                           |         *(v0) = v1;
    0x000049d0 lw v0, -0x7f90(gp)                    |         v0 = *(gp);
    0x000049d4 lw t9, -0x7f94(gp)                    |         t9 = sym._dl_dprintf
    0x000049d8 addiu a0, zero, 2                     |         a0 = 2;
    0x000049dc lw a2, (v0)                           |         a2 = *(v0);
    0x000049e0 addiu a1, a1, 0x6c48                  |         a1 += str._s:__s_is_missing_a_dynamic_section_n;
    0x000049e4 move a3, s4                           |         a3 = s4;
    0x000049e8 bal 0x1ec4                            |         sym_dl_dprintf ()
    0x000049ec lw gp, 0x18(fp)                       |         gp = *(var_18h);
    0x000049f0 move a0, s0                           |         a0 = s0;
    0x000049f4 lw v0, -0x7f98(gp)                    |         v0 = *(gp);
    0x000049f8 lw a1, (v0)                           |         a1 = *(v0);
    0x000049fc addiu v0, zero, 0xffb                 |         v0 = 0xffb;
    0x00004a00 syscall                               |         __asm ("syscall");
    0x00004a04 move a0, s1                           |         a0 = s1;
                                                     |         if (a3 != 0) {
    0x00004a08 beqz a3, 0x4a18                       |             
    0x00004a0c lw v1, -0x7fdc(gp)                    |             v1 = *(gp);
    0x00004a10 sw v0, (v1)                           |             *(v1) = v0;
                                                     | label_15:
    0x00004a14 move a0, s1                           |             a0 = s1;
                                                     |         }
                                                     | label_10:
    0x00004a18 addiu v0, zero, 0xfa6                 |         v0 = 0xfa6;
    0x00004a1c syscall                               |         __asm ("syscall");
                                                     |         if (a3 == 0) {
                                                     | label_25:
    0x00004a20 beql a3, zero, 0x4cac                 |             goto label_13;
                                                     |         }
    0x00004a24 move s6, zero                         |         s6 = 0;
    0x00004a28 lw v1, -0x7fdc(gp)                    |         v1 = *(gp);
    0x00004a2c sw v0, (v1)                           |         *(v1) = v0;
                                                     | label_7:
    0x00004a30 move s6, zero                         |         s6 = 0;
    0x00004a34 b 0x4cac                              |         goto label_13;
                                                     |     }
    0x00004a38 addiu v1, fp, 0x20                    |     v1 = fp + 0x20;
    0x00004a3c addiu v0, zero, 0x9c                  |     v0 = 0x9c;
    0x00004a40 b 0x4a50                              |     
                                                     |     while (v0 != 0) {
    0x00004a44 sb zero, (v1)                         |         *(v1) = 0;
    0x00004a48 move v0, a0                           |         v0 = a0;
    0x00004a4c addiu v1, v1, 1                       |         v1++;
    0x00004a50 addiu a0, v0, -1                      |         a0 = v0 + -1;
    0x00004a54 bnez v0, 0x4a44                       |         
                                                     |     }
    0x00004a58 lw t9, -0x7f3c(gp)                    |     t9 = sym._dl_parse_dynamic_info;
    0x00004a5c lw a0, 0x150(fp)                      |     a0 = *(var_150h);
    0x00004a60 lw a3, 0x15c(fp)                      |     a3 = *(var_15ch);
    0x00004a64 addiu a1, fp, 0x20                    |     a1 = fp + 0x20;
    0x00004a68 move a2, zero                         |     a2 = 0;
    0x00004a6c bal 0x3fd0                            |     sym_dl_parse_dynamic_info ();
    0x00004a70 move s2, v0                           |     s2 = v0;
    0x00004a74 lw v0, 0x78(fp)                       |     v0 = *(var_78h);
    0x00004a78 lw gp, 0x18(fp)                       |     gp = *(var_18h);
                                                     |     if (v0 != 0) {
    0x00004a7c beqz v0, 0x4ab8                       |         
    0x00004a80 lw a1, -0x7fe4(gp)                    |         a1 = *((gp - 8185));
    0x00004a84 lw t9, -0x7f94(gp)                    |         t9 = sym._dl_dprintf
    0x00004a88 addiu a0, zero, 2                     |         a0 = 2;
    0x00004a8c addiu a1, a1, 0x6c70                  |         a1 += str.Cant_modify__ss_text_section._Use_GCC_option__fPIC_for_shared_objects__please._n;
    0x00004a90 move a2, s4                           |         a2 = s4;
    0x00004a94 bal 0x1ec4                            |         sym_dl_dprintf ()
    0x00004a98 lw gp, 0x18(fp)                       |         gp = *(var_18h);
    0x00004a9c addiu a0, zero, 1                     |         a0 = 1;
    0x00004aa0 addiu v0, zero, 0xfa1                 |         v0 = 0xfa1;
    0x00004aa4 syscall                               |         __asm ("syscall");
    0x00004aa8 move a0, s1                           |         a0 = s1;
                                                     |         if (a3 == 0) {
    0x00004aac beqz a3, 0x4abc                       |             goto label_32;
                                                     |         }
    0x00004ab0 lw v1, -0x7fdc(gp)                    |         v1 = *(gp);
    0x00004ab4 sw v0, (v1)                           |         *(v1) = v0;
                                                     |     }
    0x00004ab8 move a0, s1                           |     a0 = s1;
                                                     | label_32:
    0x00004abc addiu v0, zero, 0xfa6                 |     v0 = 0xfa6;
    0x00004ac0 syscall                               |     __asm ("syscall");
    0x00004ac4 lw t9, -0x7f44(gp)                    |     t9 = sym._dl_add_elf_hash_table;
                                                     |     if (a3 != 0) {
    0x00004ac8 beqz a3, 0x4ad4                       |         
    0x00004acc lw v1, -0x7fdc(gp)                    |         v1 = *(gp);
    0x00004ad0 sw v0, (v1)                           |         *(v1) = v0;
                                                     |     }
    0x00004ad4 lw a1, 0x15c(fp)                      |     a1 = *(var_15ch);
    0x00004ad8 lw a3, 0x150(fp)                      |     a3 = *(var_150h);
    0x00004adc sw zero, 0x10(sp)                     |     *(var_10h_2) = 0;
    0x00004ae0 move a0, s4                           |     a0 = s4;
    0x00004ae4 addiu a2, fp, 0x20                    |     a2 = fp + 0x20;
    0x00004ae8 bal 0x3d1c                            |     sym_dl_add_elf_hash_table ();
    0x00004aec lw s7, 0x164(fp)                      |     s7 = *(var_164h);
    0x00004af0 lw gp, 0x18(fp)                       |     gp = *(var_18h);
    0x00004af4 move s6, v0                           |     s6 = v0;
    0x00004af8 sw s7, 0x10c(v0)                      |     *(v0) = s7;
    0x00004afc lw s7, 0x168(fp)                      |     s7 = *(var_168h);
    0x00004b00 sw s3, 0x34(v0)                       |     *((v0 + 13)) = s3;
    0x00004b04 sw zero, 0x11c(s6)                    |     *((s6 + 71)) = 0;
    0x00004b08 sw s7, 0x110(v0)                      |     *(v0) = s7;
    0x00004b0c lw v0, 0xbc(fp)                       |     v0 = *(var_bch);
    0x00004b10 lw s7, 0x154(fp)                      |     s7 = *(var_154h);
    0x00004b14 sw v0, 0x118(s6)                      |     *((s6 + 70)) = v0;
    0x00004b18 lw v0, 0xcc(fp)                       |     v0 = *(var_cch);
    0x00004b1c sw v0, 0x120(s6)                      |     *(s6) = v0;
    0x00004b20 lw v0, 0x1c(s0)                       |     v0 = *((s0 + 7));
    0x00004b24 addu s3, s3, v0                       |     s3 += v0;
    0x00004b28 lhu v0, 0x2c(s0)                      |     v0 = *((s0 + 22));
    0x00004b2c sw s3, 0x108(s6)                      |     *(s6) = s3;
    0x00004b30 sw v0, 0x104(s6)                      |     *((s6 + 65)) = v0;
    0x00004b34 lw v0, 0x4c(s6)                       |     v0 = *((s6 + 19));
    0x00004b38 or s2, v0, s2                         |     s2 = v0 | s2;
    0x00004b3c sw s2, 0x4c(s6)                       |     *((s6 + 19)) = s2;
                                                     |     if (s7 != 0) {
    0x00004b40 beqz s7, 0x4bb4                       |         
    0x00004b44 addiu v0, zero, -1                    |         v0 = -1;
    0x00004b48 sw v0, 0x28(s6)                       |         *((s6 + 10)) = v0;
    0x00004b4c lw v0, 0x14(s7)                       |         v0 = *((s7 + 5));
    0x00004b50 lw v1, 8(s7)                          |         v1 = *((s7 + 2));
    0x00004b54 sw v0, 0x1c(s6)                       |         *((s6 + 7)) = v0;
    0x00004b58 lw v0, 0x1c(s7)                       |         v0 = *((s7 + 7));
    0x00004b5c sw v0, 0x20(s6)                       |         *((s6 + 8)) = v0;
                                                     |         if (v0 == 0) {
    0x00004b60 bnez v0, 0x4b6c                       |             
    0x00004b64 sw zero, 0x24(s6)                     |             *((s6 + 9)) = 0;
    0x00004b68 b 0x4b78                              |             
                                                     |         } else {
    0x00004b6c addiu v0, v0, -1                      |             v0 += -1;
    0x00004b70 and v0, v0, v1                        |             v0 &= v1;
    0x00004b74 sw v0, 0x24(s6)                       |             *((s6 + 9)) = v0;
                                                     |         }
    0x00004b78 lw s7, 0x154(fp)                      |         s7 = *(var_154h);
    0x00004b7c lw t9, -0x7f38(gp)                    |         t9 = *(gp);
    0x00004b80 lw v0, 0x10(s7)                       |         v0 = *((s7 + 4));
    0x00004b84 sw v1, 0x14(s6)                       |         *((s6 + 5)) = v1;
    0x00004b88 sw v0, 0x18(s6)                       |         *((s6 + 6)) = v0;
    0x00004b8c bal 0x129c                            |         fcn_0000129c ();
    0x00004b90 lw gp, 0x18(fp)                       |         gp = *(var_18h);
    0x00004b94 sw v0, 0x2c(s6)                       |         *((s6 + 11)) = v0;
    0x00004b98 lw v0, 0x14(s6)                       |         v0 = *((s6 + 5));
                                                     |         if (v0 == 0) {
    0x00004b9c beql v0, zero, 0x4bb8                 |             goto label_33;
                                                     |         }
    0x00004ba0 lw s1, (s5)                           |         s1 = *(s5);
    0x00004ba4 lw v1, 8(s7)                          |         v1 = *((s7 + 2));
    0x00004ba8 lw v0, (s6)                           |         v0 = *(s6);
    0x00004bac addu v0, v1, v0                       |         v0 = v1 + v0;
    0x00004bb0 sw v0, 0x14(s6)                       |         *((s6 + 5)) = v0;
                                                     |     }
    0x00004bb4 lw s1, (s5)                           |     s1 = *(s5);
                                                     | label_33:
    0x00004bb8 lw t9, -0x7f88(gp)                    |     t9 = sym._dl_malloc;
                                                     |     if (s1 == 0) {
    0x00004bbc beqz s1, 0x4c0c                       |         goto label_34;
                                                     |     }
    0x00004bc0 addiu a0, zero, 0x18                  |     a0 = 0x18;
    0x00004bc4 bal 0x262c                            |     sym_dl_malloc ();
    0x00004bc8 lw gp, 0x18(fp)                       |     gp = *(var_18h);
    0x00004bcc sw v0, 0x10(s1)                       |     *((s1 + 4)) = v0;
    0x00004bd0 lw v0, (s5)                           |     v0 = *(s5);
    0x00004bd4 lw v1, 0x10(v0)                       |     v1 = *((v0 + 4));
    0x00004bd8 addiu v0, zero, 0x18                  |     v0 = 0x18;
    0x00004bdc b 0x4bec                              |     
                                                     |     while (v0 != 0) {
    0x00004be0 sb zero, (v1)                         |         *(v1) = 0;
    0x00004be4 move v0, a0                           |         v0 = a0;
    0x00004be8 addiu v1, v1, 1                       |         v1++;
    0x00004bec addiu a0, v0, -1                      |         a0 = v0 + -1;
    0x00004bf0 bnez v0, 0x4be0                       |         
                                                     |     }
    0x00004bf4 lw v0, (s5)                           |     v0 = *(s5);
    0x00004bf8 lw v1, 0x10(v0)                       |     v1 = *((v0 + 4));
    0x00004bfc sw v0, 0x14(v1)                       |     *((v1 + 5)) = v0;
    0x00004c00 lw v0, (s5)                           |     v0 = *(s5);
    0x00004c04 lw v0, 0x10(v0)                       |     v0 = *((v0 + 4));
    0x00004c08 sw v0, (s5)                           |     *(s5) = v0;
                                                     | label_34:
    0x00004c0c lw v0, (s5)                           |     v0 = *(s5);
    0x00004c10 lw v1, 0x2c(fp)                       |     v1 = *(var_2ch);
    0x00004c14 sw s6, (v0)                           |     *(v0) = s6;
    0x00004c18 lhu v0, 0x48(s6)                      |     v0 = *((s6 + 36));
    0x00004c1c sw zero, 0x38(s6)                     |     *((s6 + 14)) = 0;
    0x00004c20 addiu v0, v0, 1                       |     v0++;
    0x00004c24 sh v0, 0x48(s6)                       |     *((s6 + 36)) = v0;
                                                     |     if (v1 == 0) {
    0x00004c28 bnez v1, 0x4c50                       |         
    0x00004c2c lw v0, -0x7f98(gp)                    |         v0 = *(gp);
                                                     | label_5:
    0x00004c30 move a0, s0                           |         a0 = s0;
    0x00004c34 lw a1, (v0)                           |         a1 = *(v0);
    0x00004c38 addiu v0, zero, 0xffb                 |         v0 = 0xffb;
    0x00004c3c syscall                               |         __asm ("syscall");
                                                     | label_12:
    0x00004c40 lw v1, -0x7fdc(gp)                    |         v1 = *(gp);
                                                     |         if (a3 != 0) {
    0x00004c44 bnez a3, 0x4ca8                       |             goto label_14;
                                                     |         }
    0x00004c48 move sp, fp                           |         
    0x00004c4c b 0x4cb0                              |         goto label_35;
                                                     |     }
    0x00004c50 lw v0, -0x7f34(gp)                    |     v0 = sym._dl_runtime_resolve;
    0x00004c54 sw s6, 4(v1)                          |     *((v1 + 1)) = s6;
    0x00004c58 sw v0, (v1)                           |     *(v1) = v0;
    0x00004c5c lw v0, 0x100(s6)                      |     v0 = *((s6 + 64));
    0x00004c60 lw a0, -0x7f30(gp)                    |     a0 = sym._dl_runtime_pltresolve;
                                                     |     if (v0 != 0) {
    0x00004c64 beqz v0, 0x4c70                       |         
    0x00004c68 sw s6, 4(v0)                          |         *((v0 + 1)) = s6;
    0x00004c6c sw a0, (v0)                           |         *(v0) = a0;
                                                     |     }
    0x00004c70 addiu v0, zero, 2                     |     v0 = 2;
    0x00004c74 b 0x4c90                              |     
                                                     |     while (a0 != 0) {
    0x00004c78 addu a0, v1, a0                       |         a0 = v1 + a0;
    0x00004c7c lw a2, (a0)                           |         a2 = *(a0);
    0x00004c80 lw a1, (s6)                           |         a1 = *(s6);
    0x00004c84 addiu v0, v0, 1                       |         v0++;
    0x00004c88 addu a1, a2, a1                       |         a1 = a2 + a1;
    0x00004c8c sw a1, (a0)                           |         *(a0) = a1;
    0x00004c90 lw a0, 0xf8(s6)                       |         a0 = *((s6 + 62));
    0x00004c94 sltu a0, v0, a0                       |         a0 = (v0 < a0) ? 1 : 0;
    0x00004c98 sll a0, v0, 2                         |         a0 = v0 << 2;
    0x00004c9c bnez a0, 0x4c78                       |         
                                                     |     }
    0x00004ca0 lw v0, -0x7f98(gp)                    |     v0 = *(gp);
    0x00004ca4 b 0x4c30                              |     goto label_5;
                                                     | label_14:
    0x00004ca8 sw v0, (v1)                           |     *(v1) = v0;
                                                     | label_13:
    0x00004cac move sp, fp                           |     
                                                     | label_35:
    0x00004cb0 lw ra, 0x1b4(sp)                      |     ra = *(var_1b4h);
    0x00004cb4 move v0, s6                           |     v0 = s6;
    0x00004cb8 lw fp, 0x1b0(sp)                      |     fp = *(var_1b0h);
    0x00004cbc lw s7, 0x1ac(sp)                      |     s7 = *(var_1ach);
    0x00004cc0 lw s6, 0x1a8(sp)                      |     s6 = *(var_1a8h);
    0x00004cc4 lw s5, 0x1a4(sp)                      |     s5 = *(var_1a4h);
    0x00004cc8 lw s4, 0x1a0(sp)                      |     s4 = *(var_1a0h);
    0x00004ccc lw s3, 0x19c(sp)                      |     s3 = *(var_19ch);
    0x00004cd0 lw s2, 0x198(sp)                      |     s2 = *(var_198h);
    0x00004cd4 lw s1, 0x194(sp)                      |     s1 = *(var_194h);
    0x00004cd8 lw s0, 0x190(sp)                      |     s0 = *(var_190h);
    0x00004cdc addiu sp, sp, 0x1b8                   |     
    0x00004ce0 jr ra                                 |     return v0;
                                                     | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/lib/ld-uClibc-0.9.33.2.so @ 0x262c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym._dl_malloc ()            | void dl_malloc () {
    0x0000262c lui gp, 2                 |     
    0x00002630 addiu gp, gp, -0x360c     |     
    0x00002634 addu gp, gp, t9           |     gp += t9;
    0x00002638 lw v0, -0x7f8c(gp)        |     v0 = *(gp);
    0x0000263c addiu sp, sp, -0x30       |     
    0x00002640 sw fp, 0x28(sp)           |     *(var_20h) = fp;
    0x00002644 lw t9, (v0)               |     t9 = *(v0);
    0x00002648 move fp, sp               |     fp = sp;
    0x0000264c sw ra, 0x2c(sp)           |     *(var_24h) = ra;
    0x00002650 sw s3, 0x24(sp)           |     *(var_1ch) = s3;
    0x00002654 sw s2, 0x20(sp)           |     *(var_20h_2) = s2;
    0x00002658 sw s1, 0x1c(sp)           |     *(var_1ch_2) = s1;
    0x0000265c sw s0, 0x18(sp)           |     *(var_10h) = s0;
    0x00002660 sw gp, 0x10(sp)           |     *(var_10h_2) = gp;
    0x00002664 lw ra, 0x2c(fp)           |     ra = *(var_24h);
                                         |     if (t9 != 0) {
    0x00002668 beqz t9, 0x268c           |         
    0x0000266c move sp, fp               |         
    0x00002670 lw fp, 0x28(sp)           |         fp = *(var_20h);
    0x00002674 lw s3, 0x24(sp)           |         s3 = *(var_1ch);
    0x00002678 lw s2, 0x20(sp)           |         s2 = *(var_20h_2);
    0x0000267c lw s1, 0x1c(sp)           |         s1 = *(var_1ch_2);
    0x00002680 lw s0, 0x18(sp)           |         s0 = *(var_10h);
    0x00002684 addiu sp, sp, 0x30        |         
    0x00002688 jr t9                     |         t9 ();
                                         |     }
    0x0000268c lw v1, -0x7fd8(gp)        |     v1 = *((gp - 8182));
    0x00002690 lw s1, -0x7fd8(gp)        |     s1 = *((gp - 8182));
    0x00002694 lw v0, -0x7f98(gp)        |     v0 = *(gp);
    0x00002698 move s0, a0               |     s0 = a0;
    0x0000269c lw a1, 0x71ec(s1)         |     a1 = *((s1 + 7291));
    0x000026a0 lw a0, 0x71f0(v1)         |     a0 = *((v1 + 7292));
    0x000026a4 lw v0, (v0)               |     v0 = *(v0);
    0x000026a8 subu a0, a1, a0           |     __asm ("subu a0, a1, a0");
    0x000026ac addu a0, a0, s0           |     a0 += s0;
    0x000026b0 sltu a0, v0, a0           |     a0 = (v0 < a0) ? 1 : 0;
    0x000026b4 move s3, v1               |     s3 = v1;
                                         |     if (a0 != 0) {
    0x000026b8 beqz a0, 0x2764           |         
    0x000026bc sltu v1, s0, v0           |         v1 = (s0 < v0) ? 1 : 0;
    0x000026c0 move a1, s0               |         a1 = s0;
                                         |         if (v1 != 0) {
    0x000026c4 beqz v1, 0x26d4           |             
    0x000026c8 addiu a1, v0, -1          |             a1 = v0 + -1;
    0x000026cc addu a1, a1, s0           |             a1 += s0;
    0x000026d0 and a1, a1, v0            |             a1 &= v0;
                                         |         }
    0x000026d4 lui a3, 0x400             |         a3 = 0x4000000;
    0x000026d8 move a0, zero             |         a0 = 0;
    0x000026dc addiu a2, zero, 3         |         a2 = 3;
    0x000026e0 addiu a3, a3, 0x802       |         a3 += 0x802;
    0x000026e4 move s2, zero             |         s2 = 0;
    0x000026e8 addiu v0, zero, -1        |         v0 = -1;
    0x000026ec addiu sp, sp, -0x20       |         
    0x000026f0 sw v0, 0x10(sp)           |         *(var_10h_3) = v0;
    0x000026f4 sw s2, 0x14(sp)           |         *(var_14h) = s2;
    0x000026f8 addiu v0, zero, 0xffa     |         v0 = 0xffa;
    0x000026fc syscall                   |         __asm ("syscall");
    0x00002700 addiu sp, sp, 0x20        |         
    0x00002704 addiu v1, zero, -1        |         v1 = -1;
                                         |         if (a3 != 0) {
    0x00002708 beqz a3, 0x271c           |             
    0x0000270c lw v1, -0x7fdc(gp)        |             v1 = *(gp);
    0x00002710 sw v0, (v1)               |             *(v1) = v0;
    0x00002714 addiu v0, zero, -1        |             v0 = -1;
    0x00002718 addiu v1, zero, -1        |             v1 = -1;
                                         |         }
    0x0000271c sw v0, 0x71ec(s1)         |         *((s1 + 7291)) = v0;
    0x00002720 sw v0, 0x71f0(s3)         |         *((s3 + 7292)) = v0;
                                         |         if (v0 != v1) {
    0x00002724 bne v0, v1, 0x2764        |             goto label_0;
                                         |         }
    0x00002728 lw v0, -0x7f90(gp)        |         v0 = *(gp);
    0x0000272c lw a1, -0x7fe4(gp)        |         a1 = *((gp - 8185));
    0x00002730 lw t9, -0x7f94(gp)        |         t9 = sym._dl_dprintf
    0x00002734 lw a2, (v0)               |         a2 = *(v0);
    0x00002738 addiu a0, zero, 2         |         a0 = 2;
    0x0000273c addiu a1, a1, 0x6a7c      |         a1 += str._s:_mmap_of_a_spare_page_failed__n;
    0x00002740 bal 0x1ec4                |         sym_dl_dprintf ()
    0x00002744 lw gp, 0x10(fp)           |         gp = *(var_10h_2);
    0x00002748 addiu a0, zero, 0x14      |         a0 = 0x14;
    0x0000274c addiu v0, zero, 0xfa1     |         v0 = 0xfa1;
    0x00002750 syscall                   |         __asm ("syscall");
                                         |         if (a3 == 0) {
    0x00002754 beql a3, zero, 0x2768     |             goto label_1;
                                         |         }
    0x00002758 lw v0, 0x71ec(s1)         |         v0 = *((s1 + 7291));
    0x0000275c lw v1, -0x7fdc(gp)        |         v1 = *(gp);
    0x00002760 sw v0, (v1)               |         *(v1) = v0;
                                         |     }
                                         | label_0:
    0x00002764 lw v0, 0x71ec(s1)         |     v0 = *((s1 + 7291));
                                         | label_1:
    0x00002768 move sp, fp               |     
    0x0000276c lw ra, 0x2c(sp)           |     ra = *(var_24h);
    0x00002770 addu s0, v0, s0           |     s0 = v0 + s0;
    0x00002774 addiu v1, zero, -4        |     v1 = -4;
    0x00002778 addiu s0, s0, 3           |     s0 += 3;
    0x0000277c and s0, s0, v1            |     s0 &= v1;
    0x00002780 sw s0, 0x71ec(s1)         |     *((s1 + 7291)) = s0;
    0x00002784 lw fp, 0x28(sp)           |     fp = *(var_20h);
    0x00002788 lw s3, 0x24(sp)           |     s3 = *(var_1ch);
    0x0000278c lw s2, 0x20(sp)           |     s2 = *(var_20h_2);
    0x00002790 lw s1, 0x1c(sp)           |     s1 = *(var_1ch_2);
    0x00002794 lw s0, 0x18(sp)           |     s0 = *(var_10h);
    0x00002798 addiu sp, sp, 0x30        |     
    0x0000279c jr ra                     |     return v1;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/lib/ld-uClibc-0.9.33.2.so @ 0x2390 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym._dl_map_cache ()         | void dl_map_cache () {
    0x00002390 lui gp, 2                 |     
    0x00002394 addiu gp, gp, -0x3370     |     
    0x00002398 addu gp, gp, t9           |     gp += t9;
    0x0000239c addiu sp, sp, -0xd0       |     
    0x000023a0 sw s0, 0xb4(sp)           |     *(var_b4h) = s0;
    0x000023a4 lw s0, -0x7fd8(gp)        |     s0 = *((gp - 8182));
    0x000023a8 sw fp, 0xc8(sp)           |     *(var_c8h) = fp;
    0x000023ac addiu v1, zero, -1        |     v1 = -1;
    0x000023b0 lw v0, 0x7204(s0)         |     v0 = *((s0 + 7297));
    0x000023b4 move fp, sp               |     fp = sp;
    0x000023b8 sw ra, 0xcc(sp)           |     *(var_cch) = ra;
    0x000023bc sw s4, 0xc4(sp)           |     *(var_c4h) = s4;
    0x000023c0 sw s3, 0xc0(sp)           |     *(var_c0h) = s3;
    0x000023c4 sw s2, 0xbc(sp)           |     *(var_bch) = s2;
    0x000023c8 sw s1, 0xb8(sp)           |     *(var_b8h) = s1;
    0x000023cc sw gp, 0x18(sp)           |     *(var_18h) = gp;
                                         |     if (v0 == v1) {
    0x000023d0 beql v0, v1, 0x2604       |         goto label_2;
                                         |     }
    0x000023d4 addiu v0, zero, -1        |     v0 = -1;
    0x000023d8 move v0, zero             |     v0 = 0;
                                         |     if (v0 != 0) {
    0x000023dc bnez v0, 0x2604           |         goto label_2;
                                         |     }
    0x000023e0 lw s3, -0x7fe4(gp)        |     s3 = *((gp - 8185));
    0x000023e4 addiu a1, fp, 0x20        |     a1 = fp + 0x20;
    0x000023e8 addiu a0, s3, 0x6a34      |     a0 = s3 + str._etc_ld.so.cache;
    0x000023ec addiu v0, zero, 0x100a    |     v0 = 0x100a;
    0x000023f0 syscall                   |     __asm ("syscall");
    0x000023f4 lw v1, -0x7fdc(gp)        |     v1 = *(gp);
                                         |     if (a3 != 0) {
    0x000023f8 bnez a3, 0x25f8           |         goto label_3;
                                         |     }
    0x000023fc lui a1, 8                 |     a1 = 0x80000;
                                         |     if (v0 != 0) {
    0x00002400 bnez v0, 0x25fc           |         goto label_4;
                                         |     }
    0x00002404 move a2, zero             |     a2 = 0;
    0x00002408 addiu v0, zero, 0xfa5     |     v0 = 0xfa5;
    0x0000240c syscall                   |     __asm ("syscall");
    0x00002410 move s2, a3               |     s2 = a3;
    0x00002414 move s1, v0               |     s1 = v0;
                                         |     if (a3 != 0) {
    0x00002418 beqz a3, 0x2428           |         
    0x0000241c lw v0, -0x7fdc(gp)        |         v0 = *(gp);
    0x00002420 sw s1, (v0)               |         *(v0) = s1;
    0x00002424 b 0x25fc                  |         goto label_4;
                                         |     }
    0x00002428 lw a1, 0x50(fp)           |     a1 = *(var_50h);
                                         |     if (v0 < 0) {
    0x0000242c bgez v0, 0x2438           |         
    0x00002430 addiu v0, zero, -1        |         v0 = -1;
    0x00002434 b 0x2600                  |         goto label_5;
                                         |     }
    0x00002438 lw s4, -0x7fd8(gp)        |     s4 = *((gp - 8182));
    0x0000243c move a0, zero             |     a0 = 0;
    0x00002440 addiu a2, zero, 1         |     a2 = 1;
    0x00002444 sw a1, 0x7208(s4)         |     *((s4 + 7298)) = a1;
    0x00002448 addiu a3, zero, 1         |     a3 = 1;
    0x0000244c addiu sp, sp, -0x20       |     
    0x00002450 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00002454 sw s2, 0x14(sp)           |     *(var_14h) = s2;
    0x00002458 addiu v0, zero, 0xffa     |     v0 = 0xffa;
    0x0000245c syscall                   |     __asm ("syscall");
    0x00002460 addiu sp, sp, 0x20        |     
    0x00002464 move s2, s4               |     s2 = s4;
                                         |     if (a3 != 0) {
    0x00002468 beqz a3, 0x2478           |         
    0x0000246c lw v1, -0x7fdc(gp)        |         v1 = *(gp);
    0x00002470 sw v0, (v1)               |         *(v1) = v0;
    0x00002474 addiu v0, zero, -1        |         v0 = -1;
                                         |     }
    0x00002478 sw v0, 0x7204(s0)         |     *((s0 + 7297)) = v0;
    0x0000247c move a0, s1               |     a0 = s1;
    0x00002480 addiu v0, zero, 0xfa6     |     v0 = 0xfa6;
    0x00002484 syscall                   |     __asm ("syscall");
                                         |     if (a3 != 0) {
    0x00002488 beql a3, zero, 0x249c     |         
    0x0000248c lw v0, 0x7204(s0)         |         v0 = *((s0 + 7297));
    0x00002490 lw v1, -0x7fdc(gp)        |         v1 = *(gp);
    0x00002494 sw v0, (v1)               |         *(v1) = v0;
    0x00002498 lw v0, 0x7204(s0)         |         v0 = *((s0 + 7297));
                                         |     }
    0x0000249c addiu v1, zero, -1        |     v1 = -1;
    0x000024a0 lw v1, 0x7208(s2)         |     v1 = *((s2 + 7298));
                                         |     if (v0 == v1) {
    0x000024a4 bne v0, v1, 0x24d8        |         
    0x000024a8 lw v0, -0x7f90(gp)        |         v0 = *(gp);
    0x000024ac lw a1, -0x7fe4(gp)        |         a1 = *((gp - 8185));
    0x000024b0 lw t9, -0x7f94(gp)        |         t9 = sym._dl_dprintf
    0x000024b4 lw a2, (v0)               |         a2 = *(v0);
    0x000024b8 addiu s3, s3, 0x6a34      |         s3 += str._etc_ld.so.cache;
    0x000024bc sw s3, 0x10(sp)           |         *(var_10h_2) = s3;
    0x000024c0 addiu a0, zero, 2         |         a0 = 2;
    0x000024c4 addiu a1, a1, 0x6a48      |         a1 += str._s:_i:_cant_map__s_n;
    0x000024c8 addiu a3, zero, 0x40      |         a3 = 0x40;
    0x000024cc bal 0x1ec4                |         sym_dl_dprintf ()
    0x000024d0 addiu v0, zero, -1        |         v0 = -1;
    0x000024d4 b 0x2604                  |         goto label_2;
                                         |     }
    0x000024d8 sltiu a0, v1, 0x10        |     a0 = (v1 < 0x10) ? 1 : 0;
    0x000024dc lw a2, -0x7fe4(gp)        |     a2 = *((gp - 8185));
                                         |     if (a0 != 0) {
    0x000024e0 bnez a0, 0x2568           |         goto label_0;
                                         |     }
    0x000024e4 addiu a1, v0, -1          |     a1 = v0 + -1;
    0x000024e8 addiu a0, zero, 6         |     a0 = 6;
    0x000024ec addiu a2, a2, 0x6a23      |     a2 += 0x6a23;
    0x000024f0 addiu a1, a1, 1           |     a1++;
                                         |     do {
    0x000024f4 addiu a2, a2, 1           |         a2++;
    0x000024f8 lbu t0, (a1)              |         t0 = *(a1);
    0x000024fc lbu a3, (a2)              |         a3 = *(a2);
    0x00002500 addiu a0, a0, -1          |         a0 += -1;
                                         |         if (t0 != a3) {
    0x00002504 bne t0, a3, 0x2568        |             goto label_0;
                                         |         }
    0x00002508 addiu a1, a1, 1           |         a1++;
    0x0000250c bnez a0, 0x24f4           |         
                                         |     } while (a0 != 0);
    0x00002510 lw a2, -0x7fe4(gp)        |     a2 = *((gp - 8185));
    0x00002514 addiu a1, v0, 5           |     a1 = v0 + 5;
    0x00002518 addiu a0, zero, 5         |     a0 = 5;
    0x0000251c addiu a2, a2, 0x6a2b      |     a2 += 0x6a2b;
    0x00002520 addiu a1, a1, 1           |     a1++;
                                         |     do {
    0x00002524 addiu a2, a2, 1           |         a2++;
    0x00002528 lbu t0, (a1)              |         t0 = *(a1);
    0x0000252c lbu a3, (a2)              |         a3 = *(a2);
    0x00002530 addiu a0, a0, -1          |         a0 += -1;
                                         |         if (t0 != a3) {
    0x00002534 bne t0, a3, 0x2568        |             goto label_0;
                                         |         }
    0x00002538 addiu a1, a1, 1           |         a1++;
    0x0000253c bnez a0, 0x2524           |         
                                         |     } while (a0 != 0);
    0x00002540 lw a0, 0xc(v0)            |     a0 = *((v0 + 3));
    0x00002544 addiu a1, zero, 0xc       |     a1 = 0xc;
    0x00002548 mul a1, a0, a1            |     __asm ("mul a1, a0, a1");
    0x0000254c addiu a2, a1, 0x10        |     a2 = a1 + 0x10;
    0x00002550 sltu a2, v1, a2           |     a2 = (v1 < a2) ? 1 : 0;
    0x00002554 addu a2, v0, v1           |     a2 = v0 + v1;
                                         |     if (a2 == 0) {
    0x00002558 bnez a2, 0x2568           |         
    0x0000255c lbu a2, -1(a2)            |         a2 = *((a2 - 1));
    0x00002560 addiu v1, v1, -0x10       |         v1 += -0x10;
                                         |         if (a2 == 0) {
    0x00002564 beqz a2, 0x25ac           |             goto label_6;
                                         |         }
                                         |     }
                                         | label_0:
    0x00002568 lw v0, -0x7f90(gp)        |     v0 = *(gp);
                                         |     do {
    0x0000256c lw a1, -0x7fe4(gp)        |         a1 = *((gp - 8185));
    0x00002570 lw t9, -0x7f94(gp)        |         t9 = sym._dl_dprintf
    0x00002574 lw a2, (v0)               |         a2 = *(v0);
    0x00002578 addiu a0, zero, 2         |         a0 = 2;
    0x0000257c addiu a1, a1, 0x6a60      |         a1 += str._s:_cache__s_is_corrupt_n;
    0x00002580 addiu a3, s3, 0x6a34      |         a3 = s3 + str._etc_ld.so.cache;
    0x00002584 bal 0x1ec4                |         sym_dl_dprintf ()
    0x00002588 lw gp, 0x18(fp)           |         gp = *(var_18h);
    0x0000258c lw a0, 0x7204(s0)         |         a0 = *((s0 + 7297));
    0x00002590 lw a1, 0x7208(s2)         |         a1 = *((s2 + 7298));
    0x00002594 addiu v0, zero, 0xffb     |         v0 = 0xffb;
    0x00002598 syscall                   |         __asm ("syscall");
    0x0000259c lw v1, -0x7fdc(gp)        |         v1 = *(gp);
                                         |         if (a3 != 0) {
    0x000025a0 bnez a3, 0x25f8           |             goto label_3;
                                         |         }
    0x000025a4 addiu v0, zero, -1        |         v0 = -1;
    0x000025a8 b 0x2600                  |         goto label_5;
                                         | label_6:
    0x000025ac subu a1, v1, a1           |         __asm ("subu a1, v1, a1");
    0x000025b0 addiu v0, v0, 0x10        |         v0 += 0x10;
    0x000025b4 move v1, zero             |         v1 = 0;
    0x000025b8 addiu a3, zero, 0xc       |         a3 = 0xc;
    0x000025bc b 0x25e4                  |         goto label_7;
                                         | label_1:
    0x000025c0 addu a2, t0, v0           |         a2 = t0 + v0;
    0x000025c4 lw t0, 4(a2)              |         t0 = *((a2 + 1));
    0x000025c8 slt t0, t0, a1            |         t0 = (t0 < a1) ? 1 : 0;
    0x000025cc beql t0, zero, 0x256c     |         
                                         |     } while (t0 == 0);
    0x000025d0 lw v0, -0x7f90(gp)        |     v0 = *(gp);
    0x000025d4 lw a2, 8(a2)              |     a2 = *((a2 + 2));
    0x000025d8 slt a2, a2, a1            |     a2 = (a2 < a1) ? 1 : 0;
    0x000025dc addiu v1, v1, 1           |     v1++;
                                         |     if (a2 == 0) {
    0x000025e0 beqz a2, 0x2568           |         goto label_0;
                                         |     }
                                         | label_7:
    0x000025e4 slt a2, v1, a0            |     a2 = (v1 < a0) ? 1 : 0;
    0x000025e8 mul t0, v1, a3            |     __asm ("mul t0, v1, a3");
                                         |     if (a2 != 0) {
    0x000025ec bnez a2, 0x25c0           |         goto label_1;
                                         |     }
    0x000025f0 move v0, zero             |     v0 = 0;
    0x000025f4 b 0x2604                  |     goto label_2;
                                         | label_3:
    0x000025f8 sw v0, (v1)               |     *(v1) = v0;
                                         | label_4:
    0x000025fc addiu v0, zero, -1        |     v0 = -1;
                                         | label_5:
    0x00002600 sw v0, 0x7204(s0)         |     *((s0 + 7297)) = v0;
                                         | label_2:
    0x00002604 move sp, fp               |     
    0x00002608 lw ra, 0xcc(sp)           |     ra = *(var_cch);
    0x0000260c lw fp, 0xc8(sp)           |     fp = *(var_c8h);
    0x00002610 lw s4, 0xc4(sp)           |     s4 = *(var_c4h);
    0x00002614 lw s3, 0xc0(sp)           |     s3 = *(var_c0h);
    0x00002618 lw s2, 0xbc(sp)           |     s2 = *(var_bch);
    0x0000261c lw s1, 0xb8(sp)           |     s1 = *(var_b8h);
    0x00002620 lw s0, 0xb4(sp)           |     s0 = *(var_b4h);
    0x00002624 addiu sp, sp, 0xd0        |     
    0x00002628 jr ra                     |     return v0;
                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/lib/ld-uClibc-0.9.33.2.so @ 0x3748 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym._dl_parse_relocation_information ()      | void dl_parse_relocation_information () {
    0x00003748 lui gp, 2                                 |     
    0x0000374c addiu gp, gp, -0x4728                     |     
    0x00003750 addu gp, gp, t9                           |     gp += t9;
    0x00003754 addiu sp, sp, -0x68                       |     
    0x00003758 sw s0, 0x40(sp)                           |     *(var_40h) = s0;
    0x0000375c lw s0, (a0)                               |     s0 = *(a0);
    0x00003760 sw fp, 0x60(sp)                           |     *(var_60h) = fp;
    0x00003764 srl a3, a3, 3                             |     a3 >>= 3;
    0x00003768 lw v0, 0x80(s0)                           |     v0 = *((s0 + 32));
    0x0000376c lw v1, 0x7c(s0)                           |     v1 = *((s0 + 31));
    0x00003770 lw a0, 0x74(s0)                           |     a0 = *((s0 + 29));
    0x00003774 move fp, sp                               |     fp = sp;
    0x00003778 sw s3, 0x4c(sp)                           |     *(var_4ch) = s3;
    0x0000377c sw s2, 0x48(sp)                           |     *(var_48h) = s2;
    0x00003780 sw s1, 0x44(sp)                           |     *(var_44h) = s1;
    0x00003784 sw ra, 0x64(sp)                           |     *(var_64h) = ra;
    0x00003788 sw s7, 0x5c(sp)                           |     *(var_5ch) = s7;
    0x0000378c sw s6, 0x58(sp)                           |     *(var_58h) = s6;
    0x00003790 sw s5, 0x54(sp)                           |     *(var_54h) = s5;
    0x00003794 sw s4, 0x50(sp)                           |     *(var_50h) = s4;
    0x00003798 sw gp, 0x18(sp)                           |     *(var_18h) = gp;
    0x0000379c move s3, a1                               |     s3 = a1;
    0x000037a0 sw a3, 0x28(fp)                           |     *(var_28h) = a3;
    0x000037a4 move s1, a2                               |     s1 = a2;
    0x000037a8 sw v0, 0x2c(fp)                           |     *(var_2ch) = v0;
    0x000037ac sw v1, 0x30(fp)                           |     *(var_30h) = v1;
    0x000037b0 sw a0, 0x34(fp)                           |     *(var_34h) = a0;
    0x000037b4 move s2, zero                             |     s2 = 0;
    0x000037b8 b 0x3ac8                                  |     goto label_1;
                                                         | label_0:
    0x000037bc lw t0, (s1)                               |     t0 = *(s1);
    0x000037c0 lw t2, 4(s1)                              |     t2 = *((s1 + 1));
    0x000037c4 lw v1, 0x30(fp)                           |     v1 = *(var_30h);
    0x000037c8 addu s4, t0, v0                           |     s4 = t0 + v0;
    0x000037cc lw v0, 0x2c(fp)                           |     v0 = *(var_2ch);
    0x000037d0 srl s6, t2, 8                             |     s6 = t2 >> 8;
    0x000037d4 sll t1, s6, 4                             |     t1 = s6 << 4;
    0x000037d8 addu t1, v0, t1                           |     t1 = v0 + t1;
    0x000037dc andi s5, t2, 0xff                         |     s5 = t2 & 0xff;
    0x000037e0 lw t3, (t1)                               |     t3 = *(t1);
    0x000037e4 addiu v0, s5, -0x7e                       |     v0 = s5 + -0x7e;
    0x000037e8 sltiu v0, v0, 2                           |     v0 = (v0 < 2) ? 1 : 0;
    0x000037ec addu s7, v1, t3                           |     s7 = v1 + t3;
                                                         |     if (v0 == 0) {
    0x000037f0 bnez v0, 0x37fc                           |         
    0x000037f4 move v0, zero                             |         v0 = 0;
    0x000037f8 b 0x388c                                  |         
                                                         |     } else {
    0x000037fc addiu v0, zero, 0x7f                      |         v0 = 0x7f;
    0x00003800 sw zero, 0x24(fp)                         |         *(var_24h) = 0;
    0x00003804 sw t1, 0x20(fp)                           |         *(var_20h) = t1;
                                                         |         if (s5 != v0) {
    0x00003808 beq s5, v0, 0x3838                        |             
    0x0000380c addiu v0, zero, 0x26                      |             v0 = 0x26;
    0x00003810 addiu v0, zero, 0x27                      |             v0 = 0x27;
                                                         |             if (s5 != v0) {
    0x00003814 beq s5, v0, 0x3838                        |                 
                                                         |                 if (s5 != v0) {
    0x00003818 beql s5, v0, 0x3828                       |                     
    0x0000381c addiu a3, zero, 1                         |                     a3 = 1;
    0x00003820 xori a3, s5, 0x2f                         |                     a3 = s5 ^ 0x2f;
    0x00003824 sltiu a3, a3, 1                           |                     a3 = (a3 < 1) ? 1 : 0;
                                                         |                 }
    0x00003828 addiu v0, zero, 2                         |                 v0 = 2;
    0x0000382c xori a0, s5, 0x7e                         |                 a0 = s5 ^ 0x7e;
                                                         |                 if (a0 == 0) {
    0x00003830 movn v0, zero, a0                         |                     v0 = 0;
                                                         |                 }
    0x00003834 b 0x3840                                  |                 
                                                         |             }
                                                         |         } else {
    0x00003838 addiu a3, zero, 1                         |             a3 = 1;
    0x0000383c move v0, zero                             |             v0 = 0;
                                                         |         }
    0x00003840 lw t9, -0x7f9c(gp)                        |         t9 = sym._dl_find_hash;
    0x00003844 addiu a0, fp, 0x20                        |         a0 = fp + 0x20;
    0x00003848 sw a0, 0x10(sp)                           |         *(var_10h) = a0;
    0x0000384c sw t1, 0x38(fp)                           |         *(var_38h) = t1;
    0x00003850 move a0, s7                               |         a0 = s7;
    0x00003854 move a1, s3                               |         a1 = s3;
    0x00003858 move a2, s0                               |         a2 = s0;
    0x0000385c or a3, a3, v0                             |         a3 |= v0;
    0x00003860 bal 0x19d4                                |         sym_dl_find_hash ();
    0x00003864 lw gp, 0x18(fp)                           |         gp = *(var_18h);
    0x00003868 lw t1, 0x38(fp)                           |         t1 = *(var_38h);
                                                         |         if (v0 != 0) {
    0x0000386c bnez v0, 0x388c                           |             goto label_2;
                                                         |         }
    0x00003870 lbu a0, 0xc(t1)                           |         a0 = *((t1 + 12));
    0x00003874 addiu v0, zero, 2                         |         v0 = 2;
    0x00003878 srl a0, a0, 4                             |         a0 >>= 4;
                                                         |         if (a0 == v0) {
    0x0000387c beql a0, v0, 0x388c                       |             goto label_2;
                                                         |         }
    0x00003880 move v0, zero                             |         v0 = 0;
    0x00003884 addiu v0, zero, 1                         |         v0 = 1;
    0x00003888 b 0x3adc                                  |         goto label_3;
                                                         |     }
                                                         |     if (s6 != 0) {
                                                         | label_2:
    0x0000388c beql s6, zero, 0x3894                     |         
    0x00003890 lw v0, 4(t1)                              |         v0 = *((t1 + 1));
                                                         |     }
    0x00003894 slti a0, s5, 0x28                         |     a0 = (s5 < 0x28) ? 1 : 0;
    0x00003898 addiu a0, zero, 0x7e                      |     a0 = 0x7e;
                                                         |     if (a0 != 0) {
    0x0000389c beqz a0, 0x38c8                           |         
    0x000038a0 slti a0, s5, 0x26                         |         a0 = (s5 < 0x26) ? 1 : 0;
                                                         |         if (a0 != 0) {
    0x000038a4 beql a0, zero, 0x38e4                     |             
    0x000038a8 lbu a0, 0xc(t1)                           |             a0 = *((t1 + 12));
                                                         |             if (s5 == 0) {
    0x000038ac beql s5, zero, 0x3ac4                     |                 goto label_4;
                                                         |             }
    0x000038b0 addiu s2, s2, 1                           |             s2++;
    0x000038b4 addiu v0, zero, 3                         |             v0 = 3;
    0x000038b8 lw v0, -0x7f90(gp)                        |             v0 = *(gp);
                                                         |             if (s5 == v0) {
    0x000038bc bnel s5, v0, 0x3a48                       |                 goto label_5;
                                                         |             }
    0x000038c0 lw v0, (s4)                               |             v0 = *(s4);
    0x000038c4 b 0x39c4                                  |             
                                                         |         } else {
    0x000038c8 addiu a0, zero, 0x7f                      |             a0 = 0x7f;
                                                         |             if (s5 == a0) {
    0x000038cc beq s5, a0, 0x3a10                        |                 goto label_6;
                                                         |             }
    0x000038d0 addiu a0, zero, 0x2f                      |             a0 = 0x2f;
                                                         |             if (s5 == a0) {
    0x000038d4 beq s5, a0, 0x3a08                        |                 goto label_7;
                                                         |             }
    0x000038d8 lw v0, -0x7f90(gp)                        |             v0 = *(gp);
                                                         |             if (s5 == a0) {
    0x000038dc bnel s5, a0, 0x3a48                       |                 goto label_5;
                                                         |             }
    0x000038e0 lbu a0, 0xc(t1)                           |             a0 = *((t1 + 12));
                                                         |         }
    0x000038e4 sw t1, 0x20(fp)                           |         *(var_20h) = t1;
    0x000038e8 sw zero, 0x24(fp)                         |         *(var_24h) = 0;
    0x000038ec srl a0, a0, 4                             |         a0 >>= 4;
    0x000038f0 move s6, s0                               |         s6 = s0;
                                                         |         if (a0 != 0) {
    0x000038f4 beqz a0, 0x3940                           |             
    0x000038f8 addiu v0, zero, 0x26                      |             v0 = 0x26;
    0x000038fc addiu v0, zero, 0x27                      |             v0 = 0x27;
                                                         |             if (s5 != v0) {
    0x00003900 beq s5, v0, 0x3914                        |                 
    0x00003904 xori a3, s5, 0x2f                         |                 a3 = s5 ^ 0x2f;
                                                         |                 if (s5 != v0) {
    0x00003908 beq s5, v0, 0x3914                        |                     
    0x0000390c sltiu a3, a3, 1                           |                     a3 = (a3 < 1) ? 1 : 0;
    0x00003910 b 0x3918                                  |                     
                                                         |                 }
                                                         |             } else {
    0x00003914 addiu a3, zero, 1                         |                 a3 = 1;
                                                         |             }
    0x00003918 lw t9, -0x7f9c(gp)                        |             t9 = sym._dl_find_hash;
    0x0000391c addiu v0, fp, 0x20                        |             v0 = fp + 0x20;
    0x00003920 sw v0, 0x10(sp)                           |             *(var_10h) = v0;
    0x00003924 move a0, s7                               |             a0 = s7;
    0x00003928 move a1, s3                               |             a1 = s3;
    0x0000392c move a2, s0                               |             a2 = s0;
    0x00003930 bal 0x19d4                                |             sym_dl_find_hash ();
    0x00003934 lw s6, 0x24(fp)                           |             s6 = *(var_24h);
    0x00003938 lw gp, 0x18(fp)                           |             gp = *(var_18h);
                                                         |             if (s6 == 0) {
    0x0000393c movz s6, s0, s6                           |                 s6 = s0;
                                                         |                 goto label_8;
                                                         |             }
                                                         |         }
                                                         | label_8:
    0x00003940 addiu v1, s5, -0x26                       |         v1 = s5 + -0x26;
    0x00003944 sltiu a0, v1, 0xb                         |         a0 = (v1 < 0xb) ? 1 : 0;
    0x00003948 lui a0, 0x5000                            |         a0 = 0x50000000;
                                                         |         if (a0 == 0) {
    0x0000394c beqz a0, 0x3ac0                           |             goto label_9;
                                                         |         }
    0x00003950 sllv a0, a0, v1                           |         a0 <<= v1;
    0x00003954 lui a0, 0xa000                            |         a0 = 0xa0000000;
                                                         |         if (a0 >= 0) {
    0x00003958 bltz a0, 0x3984                           |             
    0x0000395c sllv a0, a0, v1                           |             a0 <<= v1;
    0x00003960 lui a0, 0x60                              |             a0 = 0x600000;
                                                         |             if (a0 >= 0) {
    0x00003964 bltz a0, 0x397c                           |                 
    0x00003968 sllv v1, a0, v1                           |                 v1 = a0 << v1;
                                                         |                 if (v1 < 0) {
    0x0000396c bltzl v1, 0x3990                          |                     goto label_10;
                                                         |                 }
    0x00003970 lw a0, 0x28(s6)                           |                 a0 = *((s6 + 10));
    0x00003974 addiu s2, s2, 1                           |                 s2++;
    0x00003978 b 0x3ac4                                  |                 goto label_4;
                                                         |             }
    0x0000397c lw v0, 0x2c(s6)                           |             v0 = *((s6 + 11));
    0x00003980 b 0x3a08                                  |             goto label_7;
                                                         |         }
    0x00003984 lw v1, (s4)                               |         v1 = *(s4);
    0x00003988 addiu v1, v1, -0x8000                     |         v1 += -0x8000;
    0x0000398c b 0x3a04                                  |         goto label_11;
                                                         | label_10:
    0x00003990 addiu v1, zero, -1                        |         v1 = -1;
    0x00003994 lw v1, 0x28(s6)                           |         v1 = *((s6 + 10));
                                                         |         if (a0 != v1) {
    0x00003998 bnel a0, v1, 0x39b8                       |             
    0x0000399c lw t9, -0x7f58(gp)                        |             t9 = *(gp);
    0x000039a0 sw v0, 0x38(fp)                           |             *(var_38h) = v0;
    0x000039a4 move a0, s6                               |             a0 = s6;
    0x000039a8 bal 0x3614                                |             fcn_00003614 ();
    0x000039ac lw gp, 0x18(fp)                           |             gp = *(var_18h);
    0x000039b0 lw v0, 0x38(fp)                           |             v0 = *(var_38h);
    0x000039b4 lw v1, 0x28(s6)                           |             v1 = *((s6 + 10));
                                                         |         }
    0x000039b8 lw a0, (s4)                               |         a0 = *(s4);
    0x000039bc addiu v1, v1, -0x7000                     |         v1 += -0x7000;
    0x000039c0 b 0x39e4                                  |         goto label_12;
                                                         |     }
                                                         |     if (s6 != 0) {
    0x000039c4 beql s6, zero, 0x3a04                     |         
    0x000039c8 lw v1, (s0)                               |         v1 = *(s0);
    0x000039cc lw v1, 0xf4(s0)                           |         v1 = *((s0 + 61));
    0x000039d0 sltu a0, s6, v1                           |         a0 = (s6 < v1) ? 1 : 0;
                                                         |         if (a0 != 0) {
    0x000039d4 beql a0, zero, 0x39ec                     |             
    0x000039d8 lw a0, 0xf8(s0)                           |             a0 = *((s0 + 62));
    0x000039dc lw a0, (s0)                               |             a0 = *(s0);
    0x000039e0 lw v1, 4(t1)                              |             v1 = *((t1 + 1));
                                                         | label_12:
    0x000039e4 addu v1, a0, v1                           |             v1 = a0 + v1;
    0x000039e8 b 0x3a04                                  |             
                                                         |         } else {
    0x000039ec subu v1, s6, v1                           |             __asm ("subu v1, s6, v1");
    0x000039f0 addu v1, v1, a0                           |             v1 += a0;
    0x000039f4 lw a0, 0x34(fp)                           |             a0 = *(var_34h);
    0x000039f8 sll v1, v1, 2                             |             v1 <<= 2;
    0x000039fc addu v1, a0, v1                           |             v1 = a0 + v1;
    0x00003a00 lw v1, (v1)                               |             v1 = *(v1);
                                                         |         }
                                                         |     }
                                                         | label_11:
    0x00003a04 addu v0, v0, v1                           |     v0 += v1;
                                                         | label_7:
    0x00003a08 sw v0, (s4)                               |     *(s4) = v0;
    0x00003a0c b 0x3ac0                                  |     goto label_9;
                                                         |     if (v0 == 0) {
                                                         | label_6:
    0x00003a10 beql v0, zero, 0x3ac4                     |         goto label_4;
                                                         |     }
    0x00003a14 addiu s2, s2, 1                           |     s2++;
    0x00003a18 lw v1, 8(t1)                              |     v1 = *((t1 + 2));
    0x00003a1c addiu t0, s4, -1                          |     t0 = s4 + -1;
    0x00003a20 addiu v0, v0, -1                          |     v0 += -1;
    0x00003a24 b 0x3a38                                  |     
                                                         |     while (v1 != 0) {
    0x00003a28 lbu a0, (v0)                              |         a0 = *(v0);
    0x00003a2c addiu t0, t0, 1                           |         t0++;
    0x00003a30 addiu v1, v1, -1                          |         v1 += -1;
    0x00003a34 sb a0, (t0)                               |         *(t0) = a0;
    0x00003a38 addiu v0, v0, 1                           |         v0++;
    0x00003a3c bnez v1, 0x3a28                           |         
                                                         |     }
    0x00003a40 addiu s2, s2, 1                           |     s2++;
    0x00003a44 b 0x3ac4                                  |     goto label_4;
                                                         | label_5:
    0x00003a48 lw a1, -0x7fe4(gp)                        |     a1 = *((gp - 8185));
    0x00003a4c lw t9, -0x7f94(gp)                        |     t9 = sym._dl_dprintf
    0x00003a50 lw a2, (v0)                               |     a2 = *(v0);
    0x00003a54 addiu a0, zero, 2                         |     a0 = 2;
    0x00003a58 addiu a1, a1, 0x6b90                      |     a1 += str._n_s:_;
    0x00003a5c bal 0x1ec4                                |     sym_dl_dprintf ()
    0x00003a60 lw gp, 0x18(fp)                           |     gp = *(var_18h);
                                                         |     if (s6 != 0) {
    0x00003a64 beqz s6, 0x3a84                           |         
    0x00003a68 lw v0, -0x7fe4(gp)                        |         v0 = *((gp - 8185));
    0x00003a6c lw t9, -0x7f94(gp)                        |         t9 = sym._dl_dprintf
    0x00003a70 addiu a0, zero, 2                         |         a0 = 2;
    0x00003a74 addiu a1, v0, 0x6b98                      |         a1 = v0 + str.symbol__s:_;
    0x00003a78 move a2, s7                               |         a2 = s7;
    0x00003a7c bal 0x1ec4                                |         sym_dl_dprintf ()
    0x00003a80 lw gp, 0x18(fp)                           |         gp = *(var_18h);
                                                         |     }
    0x00003a84 lw a1, -0x7fe4(gp)                        |     a1 = *((gp - 8185));
    0x00003a88 lw t9, -0x7f94(gp)                        |     t9 = sym._dl_dprintf
    0x00003a8c lw a3, 4(s0)                              |     a3 = *((s0 + 1));
    0x00003a90 addiu a0, zero, 2                         |     a0 = 2;
    0x00003a94 addiu a1, a1, 0x6ba8                      |     a1 += str.cant_handle_reloc_type__x_in_lib__s_n;
    0x00003a98 move a2, s5                               |     a2 = s5;
    0x00003a9c bal 0x1ec4                                |     sym_dl_dprintf ()
    0x00003aa0 lw gp, 0x18(fp)                           |     gp = *(var_18h);
    0x00003aa4 addiu a0, zero, 1                         |     a0 = 1;
    0x00003aa8 addiu v0, zero, 0xfa1                     |     v0 = 0xfa1;
    0x00003aac syscall                                   |     __asm ("syscall");
                                                         |     if (a3 != 0) {
    0x00003ab0 beql a3, zero, 0x3ac4                     |         
    0x00003ab4 addiu s2, s2, 1                           |         s2++;
    0x00003ab8 lw v1, -0x7fdc(gp)                        |         v1 = *(gp);
    0x00003abc sw v0, (v1)                               |         *(v1) = v0;
                                                         | label_9:
    0x00003ac0 addiu s2, s2, 1                           |         s2++;
                                                         |     }
                                                         | label_4:
    0x00003ac4 addiu s1, s1, 8                           |     s1 += 8;
                                                         | label_1:
    0x00003ac8 lw v1, 0x28(fp)                           |     v1 = *(var_28h);
    0x00003acc sltu v0, s2, v1                           |     v0 = (s2 < v1) ? 1 : 0;
    0x00003ad0 lw v0, (s0)                               |     v0 = *(s0);
                                                         |     if (v0 == 0) {
    0x00003ad4 bnel v0, zero, 0x37bc                     |         goto label_0;
                                                         |     }
    0x00003ad8 move v0, zero                             |     v0 = 0;
                                                         | label_3:
    0x00003adc move sp, fp                               |     
    0x00003ae0 lw ra, 0x64(sp)                           |     ra = *(var_64h);
    0x00003ae4 lw fp, 0x60(sp)                           |     fp = *(var_60h);
    0x00003ae8 lw s7, 0x5c(sp)                           |     s7 = *(var_5ch);
    0x00003aec lw s6, 0x58(sp)                           |     s6 = *(var_58h);
    0x00003af0 lw s5, 0x54(sp)                           |     s5 = *(var_54h);
    0x00003af4 lw s4, 0x50(sp)                           |     s4 = *(var_50h);
    0x00003af8 lw s3, 0x4c(sp)                           |     s3 = *(var_4ch);
    0x00003afc lw s2, 0x48(sp)                           |     s2 = *(var_48h);
    0x00003b00 lw s1, 0x44(sp)                           |     s1 = *(var_44h);
    0x00003b04 lw s0, 0x40(sp)                           |     s0 = *(var_40h);
    0x00003b08 addiu sp, sp, 0x68                        |     
    0x00003b0c jr ra                                     |     return v0;
                                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/lib/ld-uClibc-0.9.33.2.so @ 0x22c8 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym._dl_protect_relro ()     | void dl_protect_relro () {
    0x000022c8 lui gp, 2                 |     
    0x000022cc addiu gp, gp, -0x32a8     |     
    0x000022d0 addu gp, gp, t9           |     gp += t9;
    0x000022d4 lw v0, (a0)               |     v0 = *(a0);
    0x000022d8 lw v1, 0x10c(a0)          |     v1 = *(a0);
    0x000022dc addiu sp, sp, -0x28       |     
    0x000022e0 sw s0, 0x1c(sp)           |     *(var_1ch) = s0;
    0x000022e4 addu v1, v1, v0           |     v1 += v0;
    0x000022e8 lw v0, -0x7f98(gp)        |     v0 = *(gp);
    0x000022ec move s0, a0               |     s0 = a0;
    0x000022f0 lw a1, 0x110(s0)          |     a1 = *(s0);
    0x000022f4 lw v0, (v0)               |     v0 = *(v0);
    0x000022f8 sw fp, 0x20(sp)           |     *(var_20h) = fp;
    0x000022fc addu a1, v1, a1           |     a1 = v1 + a1;
    0x00002300 negu v0, v0               |     __asm ("negu v0, v0");
    0x00002304 move fp, sp               |     fp = sp;
    0x00002308 and a0, v0, v1            |     a0 = v0 & v1;
    0x0000230c and a1, a1, v0            |     a1 &= v0;
    0x00002310 sw ra, 0x24(sp)           |     *(var_24h) = ra;
    0x00002314 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x00002318 addiu a2, zero, 1         |     a2 = 1;
                                         |     if (a0 != a1) {
    0x0000231c beq a0, a1, 0x2378        |         
    0x00002320 subu a1, a1, a0           |         __asm ("subu a1, a1, a0");
    0x00002324 addiu v0, zero, 0x101d    |         v0 = 0x101d;
    0x00002328 syscall                   |         __asm ("syscall");
    0x0000232c lw v1, -0x7fdc(gp)        |         v1 = *(gp);
                                         |         if (a3 != 0) {
    0x00002330 beqz a3, 0x233c           |             
    0x00002334 sw v0, (v1)               |             *(v1) = v0;
    0x00002338 b 0x2344                  |             
                                         |             if (v0 >= 0) {
                                         |             } else {
    0x0000233c bgezl v0, 0x237c          |                 goto label_0;
                                         |             }
    0x00002340 move sp, fp               |             
                                         |         }
    0x00002344 lw a1, -0x7fe4(gp)        |         a1 = *((gp - 8185));
    0x00002348 lw t9, -0x7f94(gp)        |         t9 = sym._dl_dprintf
    0x0000234c lw a2, 4(s0)              |         a2 = *((s0 + 1));
    0x00002350 addiu a0, zero, 2         |         a0 = 2;
    0x00002354 addiu a1, a1, 0x69e4      |         a1 += str._s:_cannot_apply_additional_memory_protection_after_relocation;
    0x00002358 bal 0x1ec4                |         sym_dl_dprintf ()
    0x0000235c lw gp, 0x10(fp)           |         gp = *(var_10h);
    0x00002360 move a0, zero             |         a0 = 0;
    0x00002364 addiu v0, zero, 0xfa1     |         v0 = 0xfa1;
    0x00002368 syscall                   |         __asm ("syscall");
    0x0000236c lw v1, -0x7fdc(gp)        |         v1 = *(gp);
                                         |         if (a3 == 0) {
    0x00002370 beqz a3, 0x2378           |             goto label_1;
                                         |         }
    0x00002374 sw v0, (v1)               |         *(v1) = v0;
                                         |     }
                                         | label_1:
    0x00002378 move sp, fp               |     
                                         | label_0:
    0x0000237c lw ra, 0x24(sp)           |     ra = *(var_24h);
    0x00002380 lw fp, 0x20(sp)           |     fp = *(var_20h);
    0x00002384 lw s0, 0x1c(sp)           |     s0 = *(var_1ch);
    0x00002388 addiu sp, sp, 0x28        |     
    0x0000238c jr ra                     |     return v0;
                                         | }

[*] Function printf used 53 times ld-uClibc-0.9.33.2.so