[*] Binary protection state of ld-2.27.so

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


[*] Function system tear down of ld-2.27.so

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/ld-2.27.so @ 0x10844 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00010844 ()                  | void fcn_00010844 () {
                                             | label_9:
    0x00010844 lui gp, 3                     |     
    0x00010848 addiu gp, gp, -0x4844         |     
    0x0001084c addu gp, gp, t9               |     gp += t9;
    0x00010850 lw v1, 0x7c(a0)               |     v1 = *((a0 + 31));
    0x00010854 lw v0, (a0)                   |     v0 = *(a0);
    0x00010858 lw t1, 0x38(a0)               |     t1 = *((a0 + 14));
    0x0001085c lw a2, 4(v1)                  |     a2 = *((v1 + 1));
    0x00010860 addu a1, v0, a1               |     a1 = v0 + a1;
    0x00010864 addu a2, a1, a2               |     a2 = a1 + a2;
    0x00010868 lw t0, 0x34(a0)               |     t0 = *((a0 + 13));
    0x0001086c lw v1, 4(a2)                  |     v1 = *((a2 + 1));
    0x00010870 addiu sp, sp, -0x40           |     
    0x00010874 lw a1, 4(t1)                  |     a1 = *((t1 + 1));
    0x00010878 srl t9, v1, 8                 |     t9 = v1 >> 8;
    0x0001087c lw t0, 4(t0)                  |     t0 = *((t0 + 1));
    0x00010880 sw s0, 0x34(sp)               |     *(var_34h) = s0;
    0x00010884 addu a1, v0, a1               |     a1 = v0 + a1;
    0x00010888 lw s0, (a2)                   |     s0 = *(a2);
    0x0001088c sll t1, t9, 4                 |     t1 = t9 << 4;
    0x00010890 sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x00010894 addu a1, a1, t1               |     a1 += t1;
    0x00010898 addiu a3, zero, 0x7f          |     a3 = 0x7f;
    0x0001089c andi v1, v1, 0xff             |     v1 &= 0xff;
    0x000108a0 sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x000108a4 sw s1, 0x38(sp)               |     *(var_38h) = s1;
    0x000108a8 addu t0, v0, t0               |     t0 = v0 + t0;
    0x000108ac sw a1, 0x28(sp)               |     *(var_28h) = a1;
    0x000108b0 addu s0, v0, s0               |     s0 = v0 + s0;
                                             |     if (v1 != a3) {
    0x000108b4 bne v1, a3, 0x10a24           |         goto label_15;
                                             |     }
    0x000108b8 lbu v1, 0xd(a1)               |     v1 = *((a1 + 13));
    0x000108bc andi v1, v1, 3                |     v1 &= 3;
    0x000108c0 lbu v1, 0xc(a1)               |     v1 = *((a1 + 12));
                                             |     if (v1 == 0) {
    0x000108c4 bnel v1, zero, 0x10968        |         goto label_16;
                                             |     }
    0x000108c8 lw v1, 0x1bc(a0)              |     v1 = *((a0 + 111));
    0x000108cc sll t9, t9, 1                 |     t9 <<= 1;
                                             |     if (v1 == 0) {
    0x000108d0 beqz v1, 0x109a0              |         goto label_17;
                                             |     }
    0x000108d4 lw v1, 4(v1)                  |     v1 = *((v1 + 1));
    0x000108d8 addu v0, t9, v0               |     v0 = t9 + v0;
    0x000108dc addu v0, v0, v1               |     v0 += v1;
    0x000108e0 lw v1, 0x248(a0)              |     v1 = *(a0);
    0x000108e4 lhu v0, (v0)                  |     v0 = *(v0);
    0x000108e8 andi v0, v0, 0x7fff           |     v0 &= 0x7fff;
    0x000108ec sll v0, v0, 4                 |     v0 <<= 4;
    0x000108f0 addu v0, v1, v0               |     v0 = v1 + v0;
    0x000108f4 lw v1, 4(v0)                  |     v1 = *((v0 + 1));
    0x000108f8 movz v0, zero, v1             |     v0 = 0;
                                             |     while (1) {
    0x000108fc rdhwr v1, 29                  |         __asm ("rdhwr v1, 29");
    0x00010900 lw v1, -0x7490(v1)            |         v1 = *((v1 - 7460));
    0x00010904 addiu a2, zero, 1             |         a2 = 1;
                                             |         if (v1 != 0) {
    0x00010908 bnez v1, 0x109a8              |             goto label_18;
                                             |         }
                                             | label_0:
    0x0001090c lw v1, (a1)                   |         v1 = *(a1);
    0x00010910 lw a3, 0x2a4(a0)              |         a3 = *((a0 + 169));
    0x00010914 lw t9, -0x7fcc(gp)            |         t9 = *(gp);
    0x00010918 addiu a1, zero, 1             |         a1 = 1;
    0x0001091c sw a2, 0x18(sp)               |         *(var_18h_3) = a2;
    0x00010920 sw a1, 0x14(sp)               |         *(var_14h_3) = a1;
    0x00010924 sw zero, 0x1c(sp)             |         *(var_1ch_2) = 0;
    0x00010928 move a1, a0                   |         a1 = a0;
    0x0001092c sw v0, 0x10(sp)               |         *(var_90h) = v0;
    0x00010930 addiu a2, sp, 0x28            |         a2 = sp + 0x28;
    0x00010934 addu a0, t0, v1               |         a0 = t0 + v1;
    0x00010938 bal 0xb144                    |         fcn_0000b144 ();
    0x0001093c move s1, v0                   |         s1 = v0;
    0x00010940 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00010944 rdhwr v1, 29                  |         __asm ("rdhwr v1, 29");
    0x00010948 lw v0, -0x7490(v1)            |         v0 = *((v1 - 7460));
    0x0001094c lw a1, 0x28(sp)               |         a1 = *(var_28h);
                                             |         if (v0 != 0) {
    0x00010950 bnez v0, 0x109c0              |             goto label_19;
                                             |         }
                                             | label_1:
    0x00010954 move v0, zero                 |         v0 = 0;
                                             |         if (a1 != 0) {
    0x00010958 beqz a1, 0x1097c              |             
    0x0001095c lw v0, (s1)                   |             v0 = *(s1);
                                             |             if (s1 != 0) {
    0x00010960 bnel s1, zero, 0x10964        |                 
                                             |             }
    0x00010964 lbu v1, 0xc(a1)               |             v1 = *((a1 + 12));
                                             | label_16:
    0x00010968 lw t9, 4(a1)                  |             t9 = *((a1 + 1));
    0x0001096c addiu a0, zero, 0xa           |             a0 = 0xa;
    0x00010970 andi v1, v1, 0xf              |             v1 &= 0xf;
    0x00010974 addu v0, v0, t9               |             v0 += t9;
                                             |             if (v1 == a0) {
    0x00010978 beq v1, a0, 0x10a10           |                 goto label_20;
                                             |             }
                                             |         }
                                             | label_2:
    0x0001097c lw v1, -0x7fa0(gp)            |         v1 = *(gp);
    0x00010980 lw v1, 0x30(v1)               |         v1 = *((v1 + 12));
                                             |         if (v1 != 0) {
    0x00010984 beql v1, zero, 0x1098c        |             
    0x00010988 sw v0, (s0)                   |             *(s0) = v0;
                                             |         }
    0x0001098c lw ra, 0x3c(sp)               |         ra = *(var_3ch);
    0x00010990 lw s1, 0x38(sp)               |         s1 = *(var_38h);
    0x00010994 lw s0, 0x34(sp)               |         s0 = *(var_34h);
    0x00010998 addiu sp, sp, 0x40            |         
    0x0001099c jr ra                         |         return v0;
                                             | label_17:
    0x000109a0 move v0, zero                 |         v0 = 0;
    0x000109a4 b 0x108fc                     |         
                                             |     }
                                             | label_18:
    0x000109a8 rdhwr v1, 29                  |     __asm ("rdhwr v1, 29");
    0x000109ac sw a2, -0x748c(v1)            |     *((v1 - 7459)) = a2;
    0x000109b0 sync                          |     __asm ("sync");
    0x000109b4 addiu a2, zero, 5             |     a2 = 5;
    0x000109b8 lw a1, 0x28(sp)               |     a1 = *(var_28h);
    0x000109bc b 0x1090c                     |     goto label_0;
                                             | label_19:
    0x000109c0 rdhwr v1, 29                  |     __asm ("rdhwr v1, 29");
    0x000109c4 move v0, v1                   |     v0 = v1;
    0x000109c8 sync                          |     __asm ("sync");
                                             |     do {
    0x000109cc ll v1, -0x748c(v0)            |         __asm ("ll v1, -0x748c(v0)");
    0x000109d0 addiu at, zero, 0             |         at = 0;
    0x000109d4 sc at, -0x748c(v0)            |         __asm ("sc at, -0x748c(v0)");
    0x000109d8 beqz at, 0x109cc              |         
                                             |     } while (at == 0);
    0x000109dc nop                           |     
    0x000109e0 addiu v0, zero, 2             |     v0 = 2;
    0x000109e4 lw a1, 0x28(sp)               |     a1 = *(var_28h);
                                             |     if (v1 == v0) {
    0x000109e8 bnel v1, v0, 0x10954          |         goto label_1;
                                             |     }
    0x000109ec rdhwr v1, 29                  |     __asm ("rdhwr v1, 29");
    0x000109f0 addiu a1, zero, 0x81          |     a1 = 0x81;
    0x000109f4 addiu a0, v1, -0x748c         |     a0 = v1 + -0x748c;
    0x000109f8 addiu a2, zero, 1             |     a2 = 1;
    0x000109fc move a3, zero                 |     a3 = 0;
    0x00010a00 addiu v0, zero, 0x108e        |     v0 = 0x108e;
    0x00010a04 syscall                       |     __asm ("syscall");
    0x00010a08 lw a1, 0x28(sp)               |     a1 = *(var_28h);
    0x00010a0c b 0x10954                     |     goto label_1;
                                             | label_20:
    0x00010a10 move t9, v0                   |     t9 = v0;
    0x00010a14 jalr t9                       |     t9 ();
    0x00010a18 nop                           |     
    0x00010a1c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00010a20 b 0x1097c                     |     goto label_2;
                                             | label_15:
    0x00010a24 lw a3, -0x7fb4(gp)            |     a3 = *((gp - 8173));
    0x00010a28 lw a1, -0x7fb4(gp)            |     a1 = *((gp - 8173));
    0x00010a2c lw a0, -0x7fb4(gp)            |     a0 = *((gp - 8173));
    0x00010a30 lw t9, -0x7f74(gp)            |     t9 = *(gp);
                                             |     /* str._dl_fixup */
    0x00010a34 addiu a3, a3, 0x1828          |     a3 += 0x1828;
    0x00010a38 addiu a2, zero, 0x50          |     a2 = 0x50;
                                             |     /* str.dl_runtime.c */
    0x00010a3c addiu a1, a1, 0x17d0          |     a1 += 0x17d0;
                                             |     /* str.ELFW_R_TYPE__reloc__r_info___ELF_MACHINE_JMP_SLOT */
    0x00010a40 addiu a0, a0, 0x17e0          |     a0 += 0x17e0;
    0x00010a44 bal 0x1a3ac                   |     fcn_0001a3ac ();
    0x00010a48 lui gp, 3                     |     
    0x00010a4c addiu gp, gp, -0x4a48         |     
    0x00010a50 addu gp, gp, t9               |     gp += t9;
    0x00010a54 addiu sp, sp, -0x80           |     
    0x00010a58 sw s0, 0x58(sp)               |     *(var_58h) = s0;
    0x00010a5c lw s0, 0x278(a0)              |     s0 = *((a0 + 158));
    0x00010a60 sw gp, 0x20(sp)               |     *(var_20h_2) = gp;
    0x00010a64 sw ra, 0x7c(sp)               |     *(var_7ch) = ra;
    0x00010a68 sw fp, 0x78(sp)               |     *(var_78h) = fp;
    0x00010a6c sw s7, 0x74(sp)               |     *(var_74h) = s7;
    0x00010a70 sw s6, 0x70(sp)               |     *(var_70h) = s6;
    0x00010a74 sw s5, 0x6c(sp)               |     *(var_6ch) = s5;
    0x00010a78 sw s4, 0x68(sp)               |     *(var_68h) = s4;
    0x00010a7c sw s3, 0x64(sp)               |     *(var_64h) = s3;
    0x00010a80 sw s2, 0x60(sp)               |     *(var_60h) = s2;
    0x00010a84 sw s1, 0x5c(sp)               |     *(var_5ch) = s1;
    0x00010a88 move s1, a0                   |     s1 = a0;
                                             |     if (s0 == 0) {
    0x00010a8c beqz s0, 0x10f88              |         goto label_21;
                                             |     }
    0x00010a90 srl a0, a1, 3                 |     a0 = a1 >> 3;
    0x00010a94 sll v0, a0, 2                 |     v0 = a0 << 2;
    0x00010a98 addu v0, v0, a0               |     v0 += a0;
    0x00010a9c sll v0, v0, 2                 |     v0 <<= 2;
    0x00010aa0 addu s0, s0, v0               |     s0 += v0;
    0x00010aa4 move s3, a2                   |     s3 = a2;
    0x00010aa8 lw s2, (s0)                   |     s2 = *(s0);
    0x00010aac move s4, a3                   |     s4 = a3;
                                             |     if (s2 != 0) {
    0x00010ab0 bnez s2, 0x10d38              |         goto label_22;
                                             |     }
    0x00010ab4 lw a0, 0x7c(s1)               |     a0 = *((s1 + 31));
    0x00010ab8 lw a2, (s1)                   |     a2 = *(s1);
    0x00010abc lw v0, 0x38(s1)               |     v0 = *((s1 + 14));
    0x00010ac0 lw a0, 4(a0)                  |     a0 = *((a0 + 1));
    0x00010ac4 addu v1, a2, a1               |     v1 = a2 + a1;
    0x00010ac8 addu v1, v1, a0               |     v1 += a0;
    0x00010acc lw a0, 0x34(s1)               |     a0 = *((s1 + 13));
    0x00010ad0 lw a1, 4(v1)                  |     a1 = *((v1 + 1));
    0x00010ad4 lw v0, 4(v0)                  |     v0 = *((v0 + 1));
    0x00010ad8 srl v1, a1, 8                 |     v1 = a1 >> 8;
    0x00010adc lw a0, 4(a0)                  |     a0 = *((a0 + 1));
    0x00010ae0 sll a3, v1, 4                 |     a3 = v1 << 4;
    0x00010ae4 addu v0, a2, v0               |     v0 = a2 + v0;
    0x00010ae8 addu v0, v0, a3               |     v0 += a3;
    0x00010aec andi a1, a1, 0xff             |     a1 &= 0xff;
    0x00010af0 addiu a3, zero, 0x7f          |     a3 = 0x7f;
    0x00010af4 addu a0, a2, a0               |     a0 = a2 + a0;
    0x00010af8 sw v0, 0x3c(sp)               |     *(var_3ch_2) = v0;
                                             |     if (a1 != a3) {
    0x00010afc bne a1, a3, 0x1102c           |         goto label_23;
                                             |     }
    0x00010b00 lbu a1, 0xd(v0)               |     a1 = *((v0 + 13));
    0x00010b04 andi a1, a1, 3                |     a1 &= 3;
    0x00010b08 lbu v1, 0xc(v0)               |     v1 = *((v0 + 12));
                                             |     if (a1 == 0) {
    0x00010b0c bnel a1, zero, 0x10f10        |         goto label_24;
                                             |     }
    0x00010b10 lw a1, 0x1bc(s1)              |     a1 = *((s1 + 111));
    0x00010b14 sll v1, v1, 1                 |     v1 <<= 1;
                                             |     if (a1 == 0) {
    0x00010b18 beqz a1, 0x10f78              |         goto label_25;
                                             |     }
    0x00010b1c lw a1, 4(a1)                  |     a1 = *((a1 + 1));
    0x00010b20 addu v1, v1, a2               |     v1 += a2;
    0x00010b24 addu v1, v1, a1               |     v1 += a1;
    0x00010b28 lw a1, 0x248(s1)              |     a1 = *(s1);
    0x00010b2c lhu v1, (v1)                  |     v1 = *(v1);
    0x00010b30 andi v1, v1, 0x7fff           |     v1 &= 0x7fff;
    0x00010b34 sll v1, v1, 4                 |     v1 <<= 4;
    0x00010b38 addu a1, a1, v1               |     a1 += v1;
    0x00010b3c lw v1, 4(a1)                  |     v1 = *((a1 + 1));
                                             |     if (v1 != 0) {
    0x00010b40 movz a1, zero, v1             |         a1 = 0;
                                             |     }
                                             | label_7:
    0x00010b44 rdhwr v1, 29                  |     __asm ("rdhwr v1, 29");
    0x00010b48 lw v1, -0x7490(v1)            |     v1 = *((v1 - 7460));
    0x00010b4c addiu a2, zero, 1             |     a2 = 1;
                                             |     if (v1 != 0) {
    0x00010b50 bnez v1, 0x11018              |         goto label_26;
                                             |     }
                                             | label_14:
    0x00010b54 lw v0, (v0)                   |     v0 = *(v0);
    0x00010b58 lw a3, 0x2a4(s1)              |     a3 = *((s1 + 169));
    0x00010b5c addiu v1, zero, 1             |     v1 = 1;
    0x00010b60 lw t9, -0x7fcc(gp)            |     t9 = *(gp);
    0x00010b64 sw a2, 0x18(sp)               |     *(var_18h) = a2;
    0x00010b68 sw a1, 0x10(sp)               |     *(var_10h) = a1;
    0x00010b6c sw zero, 0x1c(sp)             |     *(var_1ch) = 0;
    0x00010b70 sw v1, 0x14(sp)               |     *(var_14h) = v1;
    0x00010b74 addiu a2, sp, 0x3c            |     a2 = sp + 0x3c;
    0x00010b78 move a1, s1                   |     a1 = s1;
    0x00010b7c addu a0, a0, v0               |     a0 += v0;
    0x00010b80 bal 0xb144                    |     fcn_0000b144 ();
    0x00010b84 move s5, v0                   |     s5 = v0;
    0x00010b88 lw gp, 0x20(sp)               |     gp = *(var_20h_2);
    0x00010b8c rdhwr v1, 29                  |     __asm ("rdhwr v1, 29");
    0x00010b90 lw v0, -0x7490(v1)            |     v0 = *((v1 - 7460));
    0x00010b94 lw v0, 0x3c(sp)               |     v0 = *(var_3ch_2);
                                             |     if (v0 != 0) {
    0x00010b98 bnez v0, 0x10fc8              |         goto label_27;
                                             |     }
                                             |     if (v0 == 0) {
                                             | label_13:
    0x00010b9c beql v0, zero, 0x10f64        |         goto label_28;
                                             |     }
    0x00010ba0 lw v0, -0x7fa0(gp)            |     v0 = *(gp);
    0x00010ba4 lw s2, (s5)                   |     s2 = *(s5);
                                             |     if (s5 != 0) {
    0x00010ba8 bnel s5, zero, 0x10bac        |         
                                             |     }
    0x00010bac lbu v1, 0xc(v0)               |     v1 = *((v0 + 12));
    0x00010bb0 lw a1, 4(v0)                  |     a1 = *((v0 + 1));
    0x00010bb4 andi v1, v1, 0xf              |     v1 &= 0xf;
    0x00010bb8 addiu a0, zero, 0xa           |     a0 = 0xa;
    0x00010bbc addu s2, s2, a1               |     s2 += a1;
                                             |     if (v1 == a0) {
    0x00010bc0 beq v1, a0, 0x10f28           |         goto label_29;
                                             |     }
                                             | label_4:
    0x00010bc4 lw fp, -0x7fa0(gp)            |     fp = *(gp);
    0x00010bc8 lw v1, 0xcc(fp)               |     v1 = *(arg_cch);
                                             |     if (v1 == 0) {
    0x00010bcc beql v1, zero, 0x10f4c        |         goto label_30;
                                             |     }
    0x00010bd0 lw v0, 0x30(fp)               |     v0 = *(arg_30h);
    0x00010bd4 lw v1, 0x38(s5)               |     v1 = *((s5 + 14));
    0x00010bd8 lw s6, (s5)                   |     s6 = *(s5);
    0x00010bdc lw a1, 0x26c(s1)              |     a1 = *(s1);
    0x00010be0 lw v1, 4(v1)                  |     v1 = *((v1 + 1));
    0x00010be4 lw a0, 0x26c(s5)              |     a0 = *(s5);
    0x00010be8 addu v1, s6, v1               |     v1 = s6 + v1;
    0x00010bec subu v1, v0, v1               |     __asm ("subu v1, v0, v1");
    0x00010bf0 or a0, a0, a1                 |     a0 |= a1;
    0x00010bf4 sra v1, v1, 4                 |     v1 >>= 4;
    0x00010bf8 ext a0, a0, 0xc, 1            |     __asm ("ext a0, a0, 0xc, 1");
    0x00010bfc sw s5, 4(s0)                  |     *((s0 + 1)) = s5;
    0x00010c00 sw v1, 8(s0)                  |     *((s0 + 2)) = v1;
                                             |     if (a0 == 0) {
    0x00010c04 beqz a0, 0x10fbc              |         goto label_31;
                                             |     }
    0x00010c08 lw a2, 0x34(s5)               |     a2 = *((s5 + 13));
    0x00010c0c sw zero, 0x38(sp)             |     *(var_38h_2) = 0;
    0x00010c10 lw v1, 0xc(v0)                |     v1 = *((v0 + 3));
    0x00010c14 lw a1, (v0)                   |     a1 = *(v0);
    0x00010c18 lw a0, 8(v0)                  |     a0 = *((v0 + 2));
    0x00010c1c lw v0, 4(a2)                  |     v0 = *((a2 + 1));
    0x00010c20 lw t0, 0xc8(fp)               |     t0 = *(arg_c8h);
    0x00010c24 addu v0, s6, v0               |     v0 = s6 + v0;
    0x00010c28 sw v0, 0x48(sp)               |     *(var_48h) = v0;
    0x00010c2c addiu v0, zero, 3             |     v0 = 3;
    0x00010c30 sw v1, 0x34(sp)               |     *(var_34h_2) = v1;
    0x00010c34 sw s2, 0x2c(sp)               |     *(var_2ch) = s2;
    0x00010c38 sw a1, 0x28(sp)               |     *(var_28h_2) = a1;
    0x00010c3c sw a0, 0x30(sp)               |     *(var_30h) = a0;
    0x00010c40 sw v0, 0xc(s0)                |     *((s0 + 3)) = v0;
    0x00010c44 addiu v0, sp, 0x38            |     v0 = sp + 0x38;
    0x00010c48 addiu v1, s1, 0x33c           |     v1 = s1 + 0x33c;
    0x00010c4c addiu s5, s5, 0x33c           |     s5 += 0x33c;
    0x00010c50 addiu s2, zero, 1             |     s2 = 1;
    0x00010c54 addiu s6, zero, 3             |     s6 = 3;
    0x00010c58 sw v0, 0x4c(sp)               |     *(var_4ch) = v0;
    0x00010c5c addiu s7, sp, 0x28            |     s7 = sp + 0x28;
    0x00010c60 b 0x10d10                     |     
                                             |     while (v0 == 0) {
    0x00010c64 andi v0, v0, 1                |         v0 &= 1;
                                             |         if (v0 == 0) {
    0x00010c68 beql v0, zero, 0x10d24        |             goto label_32;
                                             |         }
    0x00010c6c lw v0, 0xc(s0)                |         v0 = *((s0 + 3));
    0x00010c70 lw t9, 0x10(t0)               |         t9 = *((t0 + 4));
    0x00010c74 addiu a2, v1, -4              |         a2 = v1 + -4;
                                             |         if (t9 == 0) {
    0x00010c78 beqz t9, 0x10fa4              |             goto label_33;
                                             |         }
    0x00010c7c lw v0, 0x3c(sp)               |         v0 = *(var_3ch_2);
    0x00010c80 sw v1, 0x40(sp)               |         *(var_40h) = v1;
    0x00010c84 lw v0, (v0)                   |         v0 = *(v0);
    0x00010c88 lw v1, 0x48(sp)               |         v1 = *(var_48h);
    0x00010c8c lw a1, 8(s0)                  |         a1 = *((s0 + 2));
    0x00010c90 addu v0, v1, v0               |         v0 = v1 + v0;
    0x00010c94 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x00010c98 lw v0, 0x4c(sp)               |         v0 = *(var_4ch);
    0x00010c9c sw t0, 0x44(sp)               |         *(var_44h) = t0;
    0x00010ca0 move a0, s7                   |         a0 = s7;
    0x00010ca4 addiu a3, s5, -4              |         a3 = s5 + -4;
    0x00010ca8 sw v0, 0x10(sp)               |         *(var_10h) = v0;
    0x00010cac jalr t9                       |         t9 ();
    0x00010cb0 lw a0, 0x2c(sp)               |         a0 = *(var_2ch);
    0x00010cb4 lw gp, 0x20(sp)               |         gp = *(var_20h_2);
    0x00010cb8 lw v1, 0x40(sp)               |         v1 = *(var_40h);
    0x00010cbc lw t0, 0x44(sp)               |         t0 = *(var_44h);
                                             |         if (a0 == v0) {
    0x00010cc0 beq a0, v0, 0x10fa4           |             goto label_33;
                                             |         }
    0x00010cc4 sw v0, 0x2c(sp)               |         *(var_2ch) = v0;
    0x00010cc8 lw v0, 0x38(sp)               |         v0 = *(var_38h_2);
    0x00010ccc ori v0, v0, 0x10              |         v0 |= 0x10;
    0x00010cd0 sw v0, 0x38(sp)               |         *(var_38h_2) = v0;
                                             | label_11:
    0x00010cd4 lw a0, 0xc(s0)                |         a0 = *((s0 + 3));
    0x00010cd8 andi a1, v0, 3                |         a1 = v0 & 3;
    0x00010cdc and v0, v0, a0                |         v0 &= a0;
    0x00010ce0 sll a0, s2, 1                 |         a0 = s2 << 1;
    0x00010ce4 andi v0, v0, 3                |         v0 &= 3;
    0x00010ce8 sllv a0, a1, a0               |         a0 = a1 << a0;
    0x00010cec or v0, v0, a0                 |         v0 |= a0;
    0x00010cf0 sw v0, 0xc(s0)                |         *((s0 + 3)) = v0;
                                             | label_3:
    0x00010cf4 lw v0, 0xcc(fp)               |         v0 = *(arg_cch);
    0x00010cf8 lw t0, 0x20(t0)               |         t0 = *((t0 + 8));
    0x00010cfc sltu v0, s2, v0               |         v0 = (s2 < v0) ? 1 : 0;
    0x00010d00 addiu v1, v1, 8               |         v1 += 8;
    0x00010d04 addiu s2, s2, 1               |         s2++;
    0x00010d08 addiu s5, s5, 8               |         s5 += 8;
                                             |         if (v0 == 0) {
    0x00010d0c beqz v0, 0x10fac              |             goto label_34;
                                             |         }
    0x00010d10 lw v0, (v1)                   |         v0 = *(v1);
    0x00010d14 andi v0, v0, 2                |         v0 &= 2;
    0x00010d18 lw v0, (s5)                   |         v0 = *(s5);
    0x00010d1c bnel v0, zero, 0x10c64        |         
                                             |     }
    0x00010d20 lw v0, 0xc(s0)                |     v0 = *((s0 + 3));
                                             | label_32:
    0x00010d24 sll a0, s2, 1                 |     a0 = s2 << 1;
    0x00010d28 sllv a0, s6, a0               |     a0 = s6 << a0;
    0x00010d2c or v0, v0, a0                 |     v0 |= a0;
    0x00010d30 sw v0, 0xc(s0)                |     *((s0 + 3)) = v0;
    0x00010d34 b 0x10cf4                     |     goto label_3;
                                             | label_22:
    0x00010d38 lw fp, -0x7fa0(gp)            |     fp = *(gp);
    0x00010d3c lw v0, 0xcc(fp)               |     v0 = *(arg_cch);
                                             | label_6:
    0x00010d40 addiu s6, zero, -1            |     s6 = -1;
                                             |     if (v0 == 0) {
    0x00010d44 beqz v0, 0x10ec4              |         goto label_5;
                                             |     }
    0x00010d48 lw s5, 0xc(s0)                |     s5 = *((s0 + 3));
    0x00010d4c andi s5, s5, 1                |     s5 &= 1;
    0x00010d50 lw v0, 0x90(sp)               |     v0 = *(var_90h);
                                             |     if (s5 != 0) {
    0x00010d54 bnez s5, 0x10ec8              |         goto label_35;
                                             |     }
    0x00010d58 lw a0, 4(s0)                  |     a0 = *((s0 + 1));
    0x00010d5c lw v0, 8(s0)                  |     v0 = *((s0 + 2));
    0x00010d60 lw a1, 0x10(s0)               |     a1 = *((s0 + 4));
    0x00010d64 lw a2, 0x38(a0)               |     a2 = *((a0 + 14));
    0x00010d68 lw v1, (a0)                   |     v1 = *(a0);
    0x00010d6c sll v0, v0, 4                 |     v0 <<= 4;
    0x00010d70 lw a0, 0x34(a0)               |     a0 = *((a0 + 13));
    0x00010d74 lw a2, 4(a2)                  |     a2 = *((a2 + 1));
    0x00010d78 addu v0, v0, v1               |     v0 += v1;
    0x00010d7c addu v0, v0, a2               |     v0 += a2;
    0x00010d80 lw a3, 4(a0)                  |     a3 = *((a0 + 1));
    0x00010d84 lw a2, 8(v0)                  |     a2 = *((v0 + 2));
    0x00010d88 lw a0, (v0)                   |     a0 = *(v0);
    0x00010d8c lw v0, 0xc(v0)                |     v0 = *((v0 + 3));
    0x00010d90 addu v1, v1, a3               |     v1 += a3;
    0x00010d94 sw v0, 0x34(sp)               |     *(var_34h_2) = v0;
    0x00010d98 addu v0, v1, a0               |     v0 = v1 + a0;
    0x00010d9c sw v0, 0x48(sp)               |     *(var_48h) = v0;
    0x00010da0 addiu v0, sp, 0x38            |     v0 = sp + 0x38;
    0x00010da4 sw v0, 0x4c(sp)               |     *(var_4ch) = v0;
    0x00010da8 lw t0, 0xc8(fp)               |     t0 = *(arg_c8h);
    0x00010dac addiu v0, sp, 0x3c            |     v0 = sp + 0x3c;
    0x00010db0 sw s2, 0x2c(sp)               |     *(var_2ch) = s2;
    0x00010db4 sw a0, 0x28(sp)               |     *(var_28h_2) = a0;
    0x00010db8 sw a2, 0x30(sp)               |     *(var_30h) = a2;
    0x00010dbc sw a1, 0x3c(sp)               |     *(var_3ch_2) = a1;
    0x00010dc0 addiu s6, zero, -1            |     s6 = -1;
    0x00010dc4 addiu t2, zero, 1             |     t2 = 1;
    0x00010dc8 addiu s2, zero, -1            |     s2 = -1;
    0x00010dcc sw v0, 0x50(sp)               |     *(var_50h) = v0;
    0x00010dd0 addiu s7, sp, 0x28            |     s7 = sp + 0x28;
                                             |     do {
    0x00010dd4 lw t9, 0x14(t0)               |         t9 = *((t0 + 5));
    0x00010dd8 addiu s5, s5, 1               |         s5++;
                                             |         if (t9 != 0) {
    0x00010ddc beqz t9, 0x10eb0              |             
    0x00010de0 sll t5, s5, 1                 |             t5 = s5 << 1;
    0x00010de4 lw v1, 0xc(s0)                |             v1 = *((s0 + 3));
    0x00010de8 sllv v0, t2, t5               |             v0 = t2 << t5;
    0x00010dec and v0, v0, v1                |             v0 &= v1;
    0x00010df0 sw t5, 0x40(sp)               |             *(var_40h) = t5;
                                             |             if (v0 != 0) {
    0x00010df4 bnez v0, 0x10eb0              |                 goto label_36;
                                             |             }
    0x00010df8 lw v0, 0x4c(sp)               |             v0 = *(var_4ch);
    0x00010dfc lw a3, 4(s0)                  |             a3 = *((s0 + 1));
    0x00010e00 lw a1, 8(s0)                  |             a1 = *((s0 + 2));
    0x00010e04 sw v0, 0x1c(sp)               |             *(var_1ch) = v0;
    0x00010e08 lw v0, 0x48(sp)               |             v0 = *(var_48h);
    0x00010e0c sll a2, s5, 3                 |             a2 = s5 << 3;
    0x00010e10 sw v0, 0x18(sp)               |             *(var_18h) = v0;
    0x00010e14 lw v0, 0x50(sp)               |             v0 = *(var_50h);
    0x00010e18 addiu a2, a2, 0x330           |             a2 += 0x330;
    0x00010e1c sw t0, 0x44(sp)               |             *(var_44h) = t0;
    0x00010e20 addu a3, a3, a2               |             a3 += a2;
    0x00010e24 sw s2, 0x38(sp)               |             *(var_38h_2) = s2;
    0x00010e28 sw v0, 0x14(sp)               |             *(var_14h) = v0;
    0x00010e2c sw s4, 0x10(sp)               |             *(var_10h) = s4;
    0x00010e30 addu a2, s1, a2               |             a2 = s1 + a2;
    0x00010e34 move a0, s7                   |             a0 = s7;
    0x00010e38 jalr t9                       |             t9 ();
    0x00010e3c lw v1, 0x2c(sp)               |             v1 = *(var_2ch);
    0x00010e40 lw gp, 0x20(sp)               |             gp = *(var_20h_2);
    0x00010e44 lw t0, 0x44(sp)               |             t0 = *(var_44h);
    0x00010e48 addiu t2, zero, 1             |             t2 = 1;
    0x00010e4c lw t5, 0x40(sp)               |             t5 = *(var_40h);
                                             |             if (v1 == v0) {
    0x00010e50 beq v1, v0, 0x10f80           |                 goto label_37;
                                             |             }
    0x00010e54 lw v1, 0x3c(sp)               |             v1 = *(var_3ch_2);
    0x00010e58 sw v0, 0x2c(sp)               |             *(var_2ch) = v0;
    0x00010e5c ori v1, v1, 0x10              |             v1 |= 0x10;
    0x00010e60 sw v1, 0x3c(sp)               |             *(var_3ch_2) = v1;
                                             | label_8:
    0x00010e64 lw a0, 0xc(s0)                |             a0 = *((s0 + 3));
    0x00010e68 andi v0, v1, 3                |             v0 = v1 & 3;
    0x00010e6c sllv v0, v0, t5               |             v0 <<= t5;
    0x00010e70 addiu v1, zero, 2             |             v1 = 2;
    0x00010e74 or v0, v0, a0                 |             v0 |= a0;
    0x00010e78 sllv t5, v1, t5               |             t5 = v1 << t5;
    0x00010e7c and t5, t5, v0                |             t5 &= v0;
    0x00010e80 sw v0, 0xc(s0)                |             *((s0 + 3)) = v0;
                                             |             if (t5 != 0) {
    0x00010e84 bnez t5, 0x10eb0              |                 goto label_36;
                                             |             }
    0x00010e88 lw v0, 0x38(sp)               |             v0 = *(var_38h_2);
    0x00010e8c addiu v1, zero, -2            |             v1 = -2;
                                             |             if (v0 == s2) {
    0x00010e90 beq v0, s2, 0x10eb0           |                 goto label_36;
                                             |             }
                                             |             if (s6 == v1) {
    0x00010e94 beql s6, v1, 0x10eb4          |                 goto label_38;
                                             |             }
    0x00010e98 lw v0, 0xcc(fp)               |             v0 = *(arg_cch);
                                             |             if (s6 == s2) {
    0x00010e9c beql s6, s2, 0x10eb0          |                 goto label_36;
                                             |             }
    0x00010ea0 move s6, v0                   |             s6 = v0;
    0x00010ea4 slt v1, s6, v0                |             v1 = (s6 < v0) ? 1 : 0;
                                             |             if (s6 == v0) {
    0x00010ea8 beq s6, v0, 0x10eb0           |                 goto label_36;
                                             |             }
                                             |             if (v1 != 0) {
    0x00010eac movn s6, v0, v1               |                 s6 = v0;
                                             |                 goto label_36;
                                             |             }
                                             |         }
                                             | label_36:
    0x00010eb0 lw v0, 0xcc(fp)               |         v0 = *(arg_cch);
                                             | label_38:
    0x00010eb4 sltu v0, s5, v0               |         v0 = (s5 < v0) ? 1 : 0;
    0x00010eb8 lw t0, 0x20(t0)               |         t0 = *((t0 + 8));
    0x00010ebc bnez v0, 0x10dd4              |         
                                             |     } while (v0 != 0);
    0x00010ec0 lw s2, 0x2c(sp)               |     s2 = *(var_2ch);
                                             | label_5:
    0x00010ec4 lw v0, 0x90(sp)               |     v0 = *(var_90h);
                                             | label_35:
    0x00010ec8 lw t9, -0x7e18(gp)            |     t9 = sym._dl_mcount;
    0x00010ecc move a1, s2                   |     a1 = s2;
    0x00010ed0 sw s6, (v0)                   |     *(v0) = s6;
    0x00010ed4 move a0, s3                   |     a0 = s3;
    0x00010ed8 bal 0x136f0                   |     sym_dl_mcount ();
                                             | label_10:
    0x00010edc lw ra, 0x7c(sp)               |     ra = *(var_7ch);
    0x00010ee0 move v0, s2                   |     v0 = s2;
    0x00010ee4 lw fp, 0x78(sp)               |     fp = *(var_78h);
    0x00010ee8 lw s7, 0x74(sp)               |     s7 = *(var_74h);
    0x00010eec lw s6, 0x70(sp)               |     s6 = *(var_70h);
    0x00010ef0 lw s5, 0x6c(sp)               |     s5 = *(var_6ch);
    0x00010ef4 lw s4, 0x68(sp)               |     s4 = *(var_68h);
    0x00010ef8 lw s3, 0x64(sp)               |     s3 = *(var_64h);
    0x00010efc lw s2, 0x60(sp)               |     s2 = *(var_60h);
    0x00010f00 lw s1, 0x5c(sp)               |     s1 = *(var_5ch);
    0x00010f04 lw s0, 0x58(sp)               |     s0 = *(var_58h);
    0x00010f08 addiu sp, sp, 0x80            |     
    0x00010f0c jr ra                         |     return v0;
                                             | label_24:
    0x00010f10 lw s2, 4(v0)                  |     s2 = *((v0 + 1));
    0x00010f14 andi v1, v1, 0xf              |     v1 &= 0xf;
    0x00010f18 addiu a0, zero, 0xa           |     a0 = 0xa;
    0x00010f1c addu s2, a2, s2               |     s2 = a2 + s2;
    0x00010f20 move s5, s1                   |     s5 = s1;
                                             |     if (v1 != a0) {
    0x00010f24 bne v1, a0, 0x10bc4           |         goto label_4;
                                             |     }
                                             | label_29:
    0x00010f28 move t9, s2                   |     t9 = s2;
    0x00010f2c jalr t9                       |     t9 ();
    0x00010f30 nop                           |     
    0x00010f34 move s2, v0                   |     s2 = v0;
    0x00010f38 lw v0, 0x3c(sp)               |     v0 = *(var_3ch_2);
    0x00010f3c lw gp, 0x20(sp)               |     gp = *(var_20h_2);
                                             |     if (v0 != 0) {
    0x00010f40 bnez v0, 0x10bc4              |         goto label_4;
                                             |     }
    0x00010f44 lw fp, -0x7fa0(gp)            |     fp = *(gp);
                                             | label_12:
    0x00010f48 lw v0, 0x30(fp)               |     v0 = *(arg_30h);
                                             |     if (v0 != 0) {
                                             | label_30:
    0x00010f4c beql v0, zero, 0x10f54        |         
    0x00010f50 sw s2, (s0)                   |         *(s0) = s2;
                                             |     }
    0x00010f54 addiu s6, zero, -1            |     s6 = -1;
                                             |     if (s2 == 0) {
    0x00010f58 beqz s2, 0x10ec4              |         goto label_5;
                                             |     }
    0x00010f5c lw v0, 0xcc(fp)               |     v0 = *(arg_cch);
    0x00010f60 b 0x10d40                     |     goto label_6;
                                             | label_28:
    0x00010f64 lw v0, 0x30(v0)               |     v0 = *((v0 + 12));
    0x00010f68 addiu s6, zero, -1            |     s6 = -1;
                                             |     if (v0 != 0) {
    0x00010f6c bnez v0, 0x10ec4              |         goto label_5;
                                             |     }
    0x00010f70 sw zero, (s0)                 |     *(s0) = 0;
    0x00010f74 b 0x10ec4                     |     goto label_5;
                                             | label_25:
    0x00010f78 move a1, zero                 |     a1 = 0;
    0x00010f7c b 0x10b44                     |     goto label_7;
                                             | label_37:
    0x00010f80 lw v1, 0x3c(sp)               |     v1 = *(var_3ch_2);
    0x00010f84 b 0x10e64                     |     goto label_8;
                                             | label_21:
    0x00010f88 lw v1, 0x90(sp)               |     v1 = *(var_90h);
    0x00010f8c addiu v0, zero, -1            |     v0 = -1;
    0x00010f90 lw t9, -0x7e14(gp)            |     t9 = *(gp);
    0x00010f94 sw v0, (v1)                   |     *(v1) = v0;
    0x00010f98 bal 0x10844                   |     fcn_00010844 ();
                                             |     goto label_9;
    0x00010f9c move s2, v0                   |     s2 = v0;
    0x00010fa0 b 0x10edc                     |     goto label_10;
                                             | label_33:
    0x00010fa4 lw v0, 0x38(sp)               |     v0 = *(var_38h_2);
    0x00010fa8 b 0x10cd4                     |     goto label_11;
                                             | label_34:
    0x00010fac lw v0, 0x38(sp)               |     v0 = *(var_38h_2);
    0x00010fb0 lw s2, 0x2c(sp)               |     s2 = *(var_2ch);
    0x00010fb4 sw v0, 0x10(s0)               |     *((s0 + 4)) = v0;
    0x00010fb8 b 0x10f48                     |     goto label_12;
                                             | label_31:
    0x00010fbc ori v0, zero, 0xffff          |     v0 = 0xffff;
    0x00010fc0 sw v0, 0xc(s0)                |     *((s0 + 3)) = v0;
    0x00010fc4 b 0x10f48                     |     goto label_12;
                                             | label_27:
    0x00010fc8 rdhwr v1, 29                  |     __asm ("rdhwr v1, 29");
    0x00010fcc move v0, v1                   |     v0 = v1;
    0x00010fd0 sync                          |     __asm ("sync");
                                             |     do {
    0x00010fd4 ll v1, -0x748c(v0)            |         __asm ("ll v1, -0x748c(v0)");
    0x00010fd8 addiu at, zero, 0             |         at = 0;
    0x00010fdc sc at, -0x748c(v0)            |         __asm ("sc at, -0x748c(v0)");
    0x00010fe0 beqz at, 0x10fd4              |         
                                             |     } while (at == 0);
    0x00010fe4 nop                           |     
    0x00010fe8 addiu v0, zero, 2             |     v0 = 2;
    0x00010fec lw v0, 0x3c(sp)               |     v0 = *(var_3ch_2);
                                             |     if (v1 == v0) {
    0x00010ff0 bnel v1, v0, 0x10b9c          |         goto label_13;
                                             |     }
    0x00010ff4 rdhwr v1, 29                  |     __asm ("rdhwr v1, 29");
    0x00010ff8 addiu a1, zero, 0x81          |     a1 = 0x81;
    0x00010ffc addiu a0, v1, -0x748c         |     a0 = v1 + -0x748c;
    0x00011000 addiu a2, zero, 1             |     a2 = 1;
    0x00011004 move a3, zero                 |     a3 = 0;
    0x00011008 addiu v0, zero, 0x108e        |     v0 = 0x108e;
    0x0001100c syscall                       |     __asm ("syscall");
    0x00011010 lw v0, 0x3c(sp)               |     v0 = *(var_3ch_2);
    0x00011014 b 0x10b9c                     |     goto label_13;
                                             | label_26:
    0x00011018 rdhwr v1, 29                  |     __asm ("rdhwr v1, 29");
    0x0001101c sw a2, -0x748c(v1)            |     *((v1 - 7459)) = a2;
    0x00011020 sync                          |     __asm ("sync");
    0x00011024 addiu a2, zero, 5             |     a2 = 5;
    0x00011028 b 0x10b54                     |     goto label_14;
                                             | label_23:
    0x0001102c lw a3, -0x7fb4(gp)            |     a3 = *((gp - 8173));
    0x00011030 lw a1, -0x7fb4(gp)            |     a1 = *((gp - 8173));
    0x00011034 lw a0, -0x7fb4(gp)            |     a0 = *((gp - 8173));
    0x00011038 lw t9, -0x7f74(gp)            |     t9 = *(gp);
                                             |     /* str._dl_profile_fixup */
    0x0001103c addiu a3, a3, 0x1814          |     a3 += 0x1814;
    0x00011040 addiu a2, zero, 0xcc          |     a2 = 0xcc;
                                             |     /* str.dl_runtime.c */
    0x00011044 addiu a1, a1, 0x17d0          |     a1 += 0x17d0;
                                             |     /* str.ELFW_R_TYPE__reloc__r_info___ELF_MACHINE_JMP_SLOT */
    0x00011048 addiu a0, a0, 0x17e0          |     a0 += 0x17e0;
    0x0001104c bal 0x1a3ac                   |     fcn_0001a3ac ();
    0x00011050 lui gp, 3                     |     
    0x00011054 addiu gp, gp, -0x5050         |     
    0x00011058 addu gp, gp, t9               |     gp += t9;
    0x0001105c addiu sp, sp, -0x68           |     
    0x00011060 srl a1, a1, 3                 |     a1 >>= 3;
    0x00011064 sw s6, 0x58(sp)               |     *(var_58h_2) = s6;
    0x00011068 sll s6, a1, 2                 |     s6 = a1 << 2;
    0x0001106c addu s6, s6, a1               |     s6 += a1;
    0x00011070 lw v0, 0x278(a0)              |     v0 = *((a0 + 158));
    0x00011074 sll s6, s6, 2                 |     s6 <<= 2;
    0x00011078 addu s6, v0, s6               |     s6 = v0 + s6;
    0x0001107c sw s7, 0x5c(sp)               |     *(var_5ch_2) = s7;
    0x00011080 lw a1, 4(s6)                  |     a1 = *((s6 + 1));
    0x00011084 lw v0, 8(s6)                  |     v0 = *((s6 + 2));
    0x00011088 lw s7, -0x7fa0(gp)            |     s7 = *(gp);
    0x0001108c lw t1, 0x38(a1)               |     t1 = *((a1 + 14));
    0x00011090 lw v1, (a1)                   |     v1 = *(a1);
    0x00011094 sll v0, v0, 4                 |     v0 <<= 4;
    0x00011098 lw t1, 4(t1)                  |     t1 = *((t1 + 1));
    0x0001109c lw a1, 0x34(a1)               |     a1 = *((a1 + 13));
    0x000110a0 addu v0, v0, v1               |     v0 += v1;
    0x000110a4 addu v0, v0, t1               |     v0 += t1;
    0x000110a8 lw t2, 4(a1)                  |     t2 = *((a1 + 1));
    0x000110ac lw t0, (s6)                   |     t0 = *(s6);
    0x000110b0 lw t1, 8(v0)                  |     t1 = *((v0 + 2));
    0x000110b4 lw a1, 0xc(v0)                |     a1 = *((v0 + 3));
    0x000110b8 sw s1, 0x44(sp)               |     *(var_44h_2) = s1;
    0x000110bc lw s1, (v0)                   |     s1 = *(v0);
    0x000110c0 lw v0, 0xcc(s7)               |     v0 = *((s7 + 51));
    0x000110c4 sw gp, 0x20(sp)               |     *(var_20h_3) = gp;
    0x000110c8 addu v1, v1, t2               |     v1 += t2;
    0x000110cc sw s5, 0x54(sp)               |     *(var_54h) = s5;
    0x000110d0 sw s1, 0x28(sp)               |     *(var_28h_3) = s1;
    0x000110d4 sw ra, 0x64(sp)               |     *(var_64h_2) = ra;
    0x000110d8 sw fp, 0x60(sp)               |     *(var_60h_2) = fp;
    0x000110dc sw s4, 0x50(sp)               |     *(var_50h_2) = s4;
    0x000110e0 sw s3, 0x4c(sp)               |     *(var_4ch_2) = s3;
    0x000110e4 sw s2, 0x48(sp)               |     *(var_48h_2) = s2;
    0x000110e8 sw s0, 0x40(sp)               |     *(var_40h_2) = s0;
    0x000110ec sw t1, 0x30(sp)               |     *(var_30h_2) = t1;
    0x000110f0 sw a1, 0x34(sp)               |     *(var_34h_3) = a1;
    0x000110f4 sw t0, 0x2c(sp)               |     *(var_2ch_2) = t0;
    0x000110f8 addu s1, v1, s1               |     s1 = v1 + s1;
    0x000110fc lw s5, 0xc8(s7)               |     s5 = *((s7 + 50));
                                             |     if (v0 == 0) {
    0x00011100 beqz v0, 0x11180              |         goto label_39;
                                             |     }
    0x00011104 addiu v0, a0, 0x338           |     v0 = a0 + 0x338;
    0x00011108 move s0, zero                 |     s0 = 0;
    0x0001110c move s4, a3                   |     s4 = a3;
    0x00011110 move s3, a2                   |     s3 = a2;
    0x00011114 addiu fp, zero, 2             |     fp = 2;
    0x00011118 sw v0, 0x38(sp)               |     *(var_38h_3) = v0;
    0x0001111c addiu s2, sp, 0x28            |     s2 = sp + 0x28;
                                             |     do {
    0x00011120 lw t9, 0x18(s5)               |         t9 = *((s5 + 6));
    0x00011124 sll v0, s0, 1                 |         v0 = s0 << 1;
    0x00011128 srav v0, fp, v0               |         __asm ("srav v0, fp, v0");
                                             |         if (t9 != 0) {
    0x0001112c beqz t9, 0x1116c              |             
    0x00011130 lw v1, 0xc(s6)                |             v1 = *((s6 + 3));
    0x00011134 sll a2, s0, 3                 |             a2 = s0 << 3;
    0x00011138 and v0, v0, v1                |             v0 &= v1;
    0x0001113c addiu v1, a2, 0x338           |             v1 = a2 + 0x338;
                                             |             if (v0 != 0) {
    0x00011140 bnez v0, 0x1116c              |                 goto label_40;
                                             |             }
    0x00011144 lw a3, 4(s6)                  |             a3 = *((s6 + 1));
    0x00011148 lw v0, 0x38(sp)               |             v0 = *(var_38h_3);
    0x0001114c lw a1, 8(s6)                  |             a1 = *((s6 + 2));
    0x00011150 addu a3, a3, v1               |             a3 += v1;
    0x00011154 sw s1, 0x18(sp)               |             *(var_18h_2) = s1;
    0x00011158 sw s4, 0x14(sp)               |             *(var_14h_2) = s4;
    0x0001115c sw s3, 0x10(sp)               |             *(var_10h_2) = s3;
    0x00011160 addu a2, v0, a2               |             a2 = v0 + a2;
    0x00011164 move a0, s2                   |             a0 = s2;
    0x00011168 jalr t9                       |             t9 ();
                                             |         }
                                             | label_40:
    0x0001116c lw v0, 0xcc(s7)               |         v0 = *((s7 + 51));
    0x00011170 addiu s0, s0, 1               |         s0++;
    0x00011174 sltu v0, s0, v0               |         v0 = (s0 < v0) ? 1 : 0;
    0x00011178 lw s5, 0x20(s5)               |         s5 = *((s5 + 8));
    0x0001117c bnez v0, 0x11120              |         
                                             |     } while (v0 != 0);
                                             | label_39:
    0x00011180 lw ra, 0x64(sp)               |     ra = *(var_64h_2);
    0x00011184 lw fp, 0x60(sp)               |     fp = *(var_60h_2);
    0x00011188 lw s7, 0x5c(sp)               |     s7 = *(var_5ch_2);
    0x0001118c lw s6, 0x58(sp)               |     s6 = *(var_58h_2);
    0x00011190 lw s5, 0x54(sp)               |     s5 = *(var_54h);
    0x00011194 lw s4, 0x50(sp)               |     s4 = *(var_50h_2);
    0x00011198 lw s3, 0x4c(sp)               |     s3 = *(var_4ch_2);
    0x0001119c lw s2, 0x48(sp)               |     s2 = *(var_48h_2);
    0x000111a0 lw s1, 0x44(sp)               |     s1 = *(var_44h_2);
    0x000111a4 lw s0, 0x40(sp)               |     s0 = *(var_40h_2);
    0x000111a8 addiu sp, sp, 0x68            |     
    0x000111ac jr ra                         |     return v0;
                                             | }

[*] Function system used 1 times ld-2.27.so