[*] Binary protection state of ld-2.27.so
Partial RELRO Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function strcpy 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 strcpy used 1 times ld-2.27.so