[*] Binary protection state of libxml2.so.2.9.9
Full RELRO Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function mmap tear down of libxml2.so.2.9.9
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x1f4c4 */
| #include <stdint.h>
|
; (fcn) entry.fini0 () | void entry_fini0 () {
0x0001f4c4 lui gp, 0x17 |
0x0001f4c8 addiu gp, gp, 0x21ac |
0x0001f4cc addu gp, gp, t9 | gp += t9;
0x0001f4d0 addiu sp, sp, -0x20 |
0x0001f4d4 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0001f4d8 lw s0, -0x7fe4(gp) | s0 = *((gp - 8185));
0x0001f4dc sw gp, 0x10(sp) | *(var_10h) = gp;
0x0001f4e0 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x0001f4e4 lbu v0, -0x5710(s0) | v0 = *((s0 - 22288));
0x0001f4e8 lw v0, -0x6fb4(gp) | v0 = *(gp);
| if (v0 == 0) {
0x0001f4ec bnez v0, 0x1f520 |
0x0001f4f0 lw v0, -0x7fe0(gp) | v0 = *((gp - 8184));
| if (v0 != 0) {
0x0001f4f4 beqz v0, 0x1f508 |
0x0001f4f8 lw t9, -0x6fb4(gp) | t9 = *(gp);
0x0001f4fc lw a0, (v0) | a0 = *(v0);
0x0001f500 jalr t9 | t9 ();
0x0001f504 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x0001f508 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x0001f50c addiu t9, t9, -0xbc0 | t9 += -aav.0x00000bc0;
0x0001f510 bal 0x1f440 | entry0 ();
0x0001f514 nop |
0x0001f518 addiu v0, zero, 1 | v0 = 1;
0x0001f51c sb v0, -0x5710(s0) | *((s0 - 22288)) = v0;
| }
0x0001f520 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x0001f524 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0001f528 addiu sp, sp, 0x20 |
0x0001f52c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x27a80 */
| #include <stdint.h>
|
; (fcn) fcn.00027a80 () | void fcn_00027a80 () {
0x00027a80 lui gp, 0x17 |
0x00027a84 addiu gp, gp, -0x6410 |
0x00027a88 addu gp, gp, t9 | gp += t9;
0x00027a8c addiu sp, sp, -0x38 |
0x00027a90 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00027a94 sw ra, 0x34(sp) | *(var_34h) = ra;
0x00027a98 sw s6, 0x30(sp) | *(var_30h) = s6;
0x00027a9c sw s5, 0x2c(sp) | *(var_2ch) = s5;
0x00027aa0 sw s4, 0x28(sp) | *(var_28h) = s4;
0x00027aa4 sw s3, 0x24(sp) | *(var_24h) = s3;
0x00027aa8 sw s2, 0x20(sp) | *(var_20h) = s2;
0x00027aac sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x00027ab0 sw s0, 0x18(sp) | *(var_18h) = s0;
| if (a2 != 0) {
0x00027ab4 beql a2, zero, 0x27afc |
0x00027ab8 addiu s2, zero, -1 | s2 = -1;
0x00027abc move s4, a3 | s4 = a3;
| if (a1 == 0) {
0x00027ac0 beqz a1, 0x27d98 | goto label_6;
| }
0x00027ac4 lw v0, (a1) | v0 = *(a1);
0x00027ac8 move s0, a1 | s0 = a1;
0x00027acc move s1, a2 | s1 = a2;
| if (v0 == 0) {
0x00027ad0 beqz v0, 0x27b58 | goto label_7;
| }
0x00027ad4 move s3, a0 | s3 = a0;
0x00027ad8 lw a0, 0xc(v0) | a0 = *((v0 + 3));
0x00027adc lw t9, -0x70f0(gp) | t9 = *(gp);
| if (a0 == 0) {
0x00027ae0 beqz a0, 0x27b9c | goto label_8;
| }
0x00027ae4 lw t9, -0x7f0c(gp) | t9 = *((gp - 8131));
| if (a0 == a2) {
0x00027ae8 beq a0, a2, 0x27b28 | goto label_9;
| }
0x00027aec move s2, zero | s2 = 0;
0x00027af0 bal 0x250e8 | sym_xmlCharEncCloseFunc ();
0x00027af4 lw v0, (s0) | v0 = *(s0);
0x00027af8 sw s1, 0xc(v0) | *((v0 + 3)) = s1;
| }
| label_0:
0x00027afc lw ra, 0x34(sp) | ra = *(var_34h);
| label_5:
0x00027b00 move v0, s2 | v0 = s2;
0x00027b04 lw s6, 0x30(sp) | s6 = *(var_30h);
0x00027b08 lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x00027b0c lw s4, 0x28(sp) | s4 = *(var_28h);
0x00027b10 lw s3, 0x24(sp) | s3 = *(var_24h);
0x00027b14 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00027b18 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00027b1c lw s0, 0x18(sp) | s0 = *(var_18h);
0x00027b20 addiu sp, sp, 0x38 |
0x00027b24 jr ra | return v1;
| do {
| label_9:
0x00027b28 lw ra, 0x34(sp) | ra = *(var_34h);
0x00027b2c move s2, zero | s2 = 0;
0x00027b30 move v0, s2 | v0 = s2;
0x00027b34 lw s6, 0x30(sp) | s6 = *(var_30h);
0x00027b38 lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x00027b3c lw s4, 0x28(sp) | s4 = *(var_28h);
0x00027b40 lw s3, 0x24(sp) | s3 = *(var_24h);
0x00027b44 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00027b48 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00027b4c lw s0, 0x18(sp) | s0 = *(var_18h);
0x00027b50 addiu sp, sp, 0x38 |
0x00027b54 jr ra | return v1;
| label_7:
0x00027b58 lw v0, 0x18(a1) | v0 = *((a1 + 6));
0x00027b5c lw t9, -0x7f0c(gp) | t9 = *((gp - 8131));
| if (v0 == 0) {
0x00027b60 beqz v0, 0x27da0 | goto label_10;
| }
0x00027b64 move a0, a2 | a0 = a2;
0x00027b68 bal 0x250e8 | sym_xmlCharEncCloseFunc ();
0x00027b6c lw ra, 0x34(sp) | ra = *(var_34h);
0x00027b70 move s2, zero | s2 = 0;
0x00027b74 move v0, s2 | v0 = s2;
0x00027b78 lw s6, 0x30(sp) | s6 = *(var_30h);
0x00027b7c lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x00027b80 lw s4, 0x28(sp) | s4 = *(var_28h);
0x00027b84 lw s3, 0x24(sp) | s3 = *(var_24h);
0x00027b88 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00027b8c lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00027b90 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00027b94 addiu sp, sp, 0x38 |
0x00027b98 jr ra | return v1;
| label_8:
0x00027b9c lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x00027ba0 sw a2, 0xc(v0) | *((v0 + 3)) = a2;
0x00027ba4 jalr t9 | t9 ();
0x00027ba8 move s2, v0 | s2 = v0;
0x00027bac lw gp, 0x10(sp) | gp = *(var_10h);
0x00027bb0 bnez v0, 0x27b28 |
| } while (v0 != 0);
0x00027bb4 lw s1, (s1) | s1 = *(s1);
0x00027bb8 lw s5, 0x10(s0) | s5 = *((s0 + 4));
| if (s1 != 0) {
0x00027bbc beqz s1, 0x27c6c |
0x00027bc0 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00027bc4 lw t9, -0x7140(gp) | t9 = *(gp);
0x00027bc8 addiu a1, a1, 0x638c | a1 += aav.0x0000638c;
0x00027bcc move a0, s1 | a0 = s1;
0x00027bd0 jalr t9 | t9 ();
0x00027bd4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00027bd8 bnez v0, 0x27d44 | goto label_11;
| }
0x00027bdc lbu v1, (s5) | v1 = *(s5);
| label_2:
0x00027be0 addiu v0, zero, 0xff | v0 = 0xff;
| if (v1 == v0) {
0x00027be4 beql v1, v0, 0x27d68 | goto label_12;
| }
0x00027be8 lbu v1, 1(s5) | v1 = *((s5 + 1));
| label_1:
0x00027bec lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00027bf0 lw t9, -0x7140(gp) | t9 = *(gp);
0x00027bf4 addiu a1, a1, 0x6398 | a1 += 0x6398;
0x00027bf8 move a0, s1 | a0 = s1;
0x00027bfc jalr t9 | t9 ();
0x00027c00 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00027c04 bnez v0, 0x27c18 |
0x00027c08 lbu v1, (s5) | v1 = *(s5);
0x00027c0c addiu v0, zero, 0xfe | v0 = 0xfe;
| if (v1 == v0) {
0x00027c10 beql v1, v0, 0x27d80 | goto label_13;
| }
0x00027c14 lbu v1, 1(s5) | v1 = *((s5 + 1));
| }
| label_4:
0x00027c18 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00027c1c lw t9, -0x7140(gp) | t9 = *(gp);
0x00027c20 addiu a1, a1, 0x6150 | a1 += 0x6150;
0x00027c24 move a0, s1 | a0 = s1;
0x00027c28 jalr t9 | t9 ();
0x00027c2c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00027c30 bnez v0, 0x27c6c | goto label_14;
| }
0x00027c34 lbu v1, (s5) | v1 = *(s5);
0x00027c38 addiu v0, zero, 0xef | v0 = 0xef;
0x00027c3c lw v0, (s0) | v0 = *(s0);
| if (v1 == v0) {
0x00027c40 bnel v1, v0, 0x27c70 | goto label_3;
| }
0x00027c44 lbu v1, 1(s5) | v1 = *((s5 + 1));
0x00027c48 addiu v0, zero, 0xbb | v0 = 0xbb;
0x00027c4c lw v0, (s0) | v0 = *(s0);
| if (v1 == v0) {
0x00027c50 bnel v1, v0, 0x27c70 | goto label_3;
| }
0x00027c54 lbu v1, 2(s5) | v1 = *((s5 + 2));
0x00027c58 addiu v0, zero, 0xbf | v0 = 0xbf;
0x00027c5c lw v0, (s0) | v0 = *(s0);
| if (v1 == v0) {
0x00027c60 bnel v1, v0, 0x27c70 | goto label_3;
| }
0x00027c64 addiu s5, s5, 3 | s5 += 3;
0x00027c68 sw s5, 0x10(s0) | *((s0 + 4)) = s5;
| }
| label_14:
0x00027c6c lw v0, (s0) | v0 = *(s0);
| label_3:
0x00027c70 lw s1, 0xc(s0) | s1 = *((s0 + 3));
0x00027c74 lw t9, -0x7f40(gp) | t9 = *(gp);
0x00027c78 subu s1, s5, s1 | __asm ("subu s1, s5, s1");
0x00027c7c lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x00027c80 move a1, s1 | a1 = s1;
0x00027c84 jalr t9 | t9 ();
0x00027c88 lw s5, (s0) | s5 = *(s0);
0x00027c8c lw gp, 0x10(sp) | gp = *(var_10h);
0x00027c90 lw v0, 0x10(s5) | v0 = *((s5 + 4));
0x00027c94 lw t9, -0x6f44(gp) | t9 = *((gp - 7121));
0x00027c98 lw s6, -0x7f4c(gp) | s6 = *((gp - 8147));
0x00027c9c sw v0, 0x14(s5) | *((s5 + 5)) = v0;
0x00027ca0 jalr t9 | t9 ();
0x00027ca4 lw v1, (s0) | v1 = *(s0);
0x00027ca8 move t9, s6 | t9 = s6;
0x00027cac sw v0, 0x10(s5) | *((s5 + 4)) = v0;
0x00027cb0 lw a0, 0x14(v1) | a0 = *((v1 + 5));
0x00027cb4 sw s1, 0x20(v1) | *((v1 + 8)) = s1;
0x00027cb8 jalr t9 | t9 ();
0x00027cbc lw v1, 0x20(s3) | v1 = *((s3 + 8));
0x00027cc0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00027cc4 move s1, v0 | s1 = v0;
| if (v1 != 0) {
0x00027cc8 bnez v1, 0x27d28 | goto label_15;
| }
0x00027ccc lw t9, -0x7008(gp) | t9 = *((gp - 7170));
0x00027cd0 lw a0, (s0) | a0 = *(s0);
0x00027cd4 move a1, s4 | a1 = s4;
0x00027cd8 jalr t9 | t9 ();
0x00027cdc lw gp, 0x10(sp) | gp = *(var_10h);
0x00027ce0 move s4, v0 | s4 = v0;
| do {
0x00027ce4 lw v0, (s0) | v0 = *(s0);
0x00027ce8 lw t9, -0x6ecc(gp) | t9 = *((gp - 7091));
0x00027cec move a1, s0 | a1 = s0;
0x00027cf0 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x00027cf4 jalr t9 | t9 ();
0x00027cf8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s4 < 0) {
0x00027cfc bltz s4, 0x27dd4 | goto label_16;
| }
0x00027d00 lw v0, (s0) | v0 = *(s0);
0x00027d04 move t9, s6 | t9 = s6;
0x00027d08 lw a0, 0x14(v0) | a0 = *((v0 + 5));
0x00027d0c jalr t9 | t9 ();
0x00027d10 lw v1, (s0) | v1 = *(s0);
0x00027d14 lw a0, 0x20(v1) | a0 = *((v1 + 8));
0x00027d18 addu s1, s1, a0 | s1 += a0;
0x00027d1c subu s1, s1, v0 | __asm ("subu s1, s1, v0");
0x00027d20 sw s1, 0x20(v1) | *((v1 + 8)) = s1;
0x00027d24 b 0x27afc | goto label_0;
| label_15:
0x00027d28 lw t9, -0x6fec(gp) | t9 = *((gp - 7163));
0x00027d2c lw a0, (s0) | a0 = *(s0);
0x00027d30 addiu a1, zero, 1 | a1 = 1;
0x00027d34 jalr t9 | t9 ();
0x00027d38 move s4, v0 | s4 = v0;
0x00027d3c lw gp, 0x10(sp) | gp = *(var_10h);
0x00027d40 b 0x27ce4 |
| } while (1);
| label_11:
0x00027d44 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00027d48 lw t9, -0x7140(gp) | t9 = *(gp);
0x00027d4c addiu a1, a1, 0x6160 | a1 += 0x6160;
0x00027d50 move a0, s1 | a0 = s1;
0x00027d54 jalr t9 | t9 ();
0x00027d58 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00027d5c bnez v0, 0x27bec | goto label_1;
| }
0x00027d60 lbu v1, (s5) | v1 = *(s5);
0x00027d64 b 0x27be0 | goto label_2;
| label_12:
0x00027d68 addiu v0, zero, 0xfe | v0 = 0xfe;
0x00027d6c lw v0, (s0) | v0 = *(s0);
| if (v1 == v0) {
0x00027d70 bnel v1, v0, 0x27c70 | goto label_3;
| }
0x00027d74 addiu s5, s5, 2 | s5 += 2;
0x00027d78 sw s5, 0x10(s0) | *((s0 + 4)) = s5;
0x00027d7c b 0x27bec | goto label_1;
| label_13:
0x00027d80 addiu v0, zero, 0xff | v0 = 0xff;
0x00027d84 lw v0, (s0) | v0 = *(s0);
| if (v1 == v0) {
0x00027d88 bnel v1, v0, 0x27c70 | goto label_3;
| }
0x00027d8c addiu s5, s5, 2 | s5 += 2;
0x00027d90 sw s5, 0x10(s0) | *((s0 + 4)) = s5;
0x00027d94 b 0x27c18 | goto label_4;
| label_6:
0x00027d98 addiu s2, zero, -1 | s2 = -1;
0x00027d9c b 0x27afc | goto label_0;
| label_10:
0x00027da0 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00027da4 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00027da8 move a2, zero | a2 = 0;
0x00027dac addiu t9, t9, 0x7960 | t9 += aav.0x00007960;
0x00027db0 addiu a1, a1, 0x6844 | a1 += 0x6844;
0x00027db4 bal 0x27960 | fcn_00027960 ();
0x00027db8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00027dbc move a0, s1 | a0 = s1;
0x00027dc0 lw t9, -0x7f0c(gp) | t9 = *((gp - 8131));
0x00027dc4 addiu s2, zero, -1 | s2 = -1;
0x00027dc8 bal 0x250e8 | sym_xmlCharEncCloseFunc ();
0x00027dcc lw ra, 0x34(sp) | ra = *(var_34h);
0x00027dd0 b 0x27b00 | goto label_5;
| label_16:
0x00027dd4 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00027dd8 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00027ddc move a2, zero | a2 = 0;
0x00027de0 addiu a1, a1, 0x6820 | a1 += 0x6820;
0x00027de4 addiu t9, t9, 0x7960 | t9 += aav.0x00007960;
0x00027de8 move a0, s3 | a0 = s3;
0x00027dec bal 0x27960 | fcn_00027960 ();
0x00027df0 addiu s2, zero, -1 | s2 = -1;
0x00027df4 b 0x27afc | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x4acc0 */
| #include <stdint.h>
|
; (fcn) fcn.0004acc0 () | void fcn_0004acc0 () {
0x0004acc0 lui gp, 0x14 |
0x0004acc4 addiu gp, gp, 0x69b0 |
0x0004acc8 addu gp, gp, t9 | gp += t9;
0x0004accc addiu sp, sp, -0x38 |
0x0004acd0 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0004acd4 lw s1, (a0) | s1 = *(a0);
0x0004acd8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0004acdc sw s4, 0x30(sp) | *(var_30h) = s4;
0x0004ace0 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x0004ace4 sw s2, 0x28(sp) | *(var_28h) = s2;
0x0004ace8 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0004acec sw s0, 0x20(sp) | *(var_20h) = s0;
0x0004acf0 move s4, a1 | s4 = a1;
0x0004acf4 move s3, a2 | s3 = a2;
0x0004acf8 move s2, a3 | s2 = a3;
| if (s1 == 0) {
0x0004acfc beqz s1, 0x4adcc | goto label_4;
| }
| label_1:
0x0004ad00 lw s0, 8(s1) | s0 = *((s1 + 2));
0x0004ad04 lw t9, -0x6ea4(gp) | t9 = *((gp - 7081));
| if (s0 == 0) {
0x0004ad08 beqz s0, 0x4ad84 | goto label_5;
| }
0x0004ad0c lw v0, (s0) | v0 = *(s0);
0x0004ad10 sw v0, 8(s1) | *((s1 + 2)) = v0;
0x0004ad14 addiu a2, zero, 0x18 | a2 = 0x18;
0x0004ad18 move a1, zero | a1 = 0;
0x0004ad1c move a0, s0 | a0 = s0;
0x0004ad20 jalr t9 | t9 ();
0x0004ad24 lw v0, (s1) | v0 = *(s1);
| if (v0 == 0) {
0x0004ad28 beql v0, zero, 0x4adc4 | goto label_6;
| }
0x0004ad2c sw s0, (s1) | *(s1) = s0;
0x0004ad30 addiu v1, zero, -1 | v1 = -1;
| do {
| if (s4 == v1) {
0x0004ad34 beql s4, v1, 0x4ae24 | goto label_7;
| }
0x0004ad38 lw v0, 4(s1) | v0 = *((s1 + 1));
0x0004ad3c sw s0, 4(v0) | *((v0 + 1)) = s0;
0x0004ad40 sw v0, (s0) | *(s0) = v0;
0x0004ad44 sw s0, (s1) | *(s1) = s0;
| label_0:
0x0004ad48 addiu v0, zero, -1 | v0 = -1;
0x0004ad4c sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x0004ad50 lw v0, 0x48(sp) | v0 = *(arg_48h);
0x0004ad54 sw s3, 8(s0) | *((s0 + 2)) = s3;
0x0004ad58 sw s2, 0xc(s0) | *((s0 + 3)) = s2;
0x0004ad5c sw v0, 0x14(s0) | *((s0 + 5)) = v0;
| label_2:
0x0004ad60 lw ra, 0x34(sp) | ra = *(var_34h);
| label_3:
0x0004ad64 move v0, s0 | v0 = s0;
0x0004ad68 lw s4, 0x30(sp) | s4 = *(var_30h);
0x0004ad6c lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0004ad70 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0004ad74 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0004ad78 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0004ad7c addiu sp, sp, 0x38 |
0x0004ad80 jr ra | return v0;
| label_5:
0x0004ad84 lw v0, -0x716c(gp) | v0 = *(gp);
0x0004ad88 lw t9, (v0) | t9 = *(v0);
0x0004ad8c addiu a0, zero, 0x18 | a0 = 0x18;
0x0004ad90 jalr t9 | t9 ();
0x0004ad94 move s0, v0 | s0 = v0;
0x0004ad98 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0004ad9c beqz v0, 0x4ae60 | goto label_8;
| }
0x0004ada0 lw t9, -0x6ea4(gp) | t9 = *((gp - 7081));
0x0004ada4 addiu a2, zero, 0x18 | a2 = 0x18;
0x0004ada8 move a1, zero | a1 = 0;
0x0004adac move a0, s0 | a0 = s0;
0x0004adb0 jalr t9 | t9 ();
0x0004adb4 lw v0, (s1) | v0 = *(s1);
0x0004adb8 addiu v1, zero, -1 | v1 = -1;
0x0004adbc bnez v0, 0x4ad34 |
| } while (v0 != 0);
0x0004adc0 sw s0, (s1) | *(s1) = s0;
| label_6:
0x0004adc4 sw s0, 4(s1) | *((s1 + 1)) = s0;
0x0004adc8 b 0x4ad48 | goto label_0;
| label_4:
0x0004adcc lw v0, -0x716c(gp) | v0 = *(gp);
0x0004add0 move s0, a0 | s0 = a0;
0x0004add4 lw t9, (v0) | t9 = *(v0);
0x0004add8 addiu a0, zero, 0xc | a0 = 0xc;
0x0004addc jalr t9 | t9 ();
0x0004ade0 move s1, v0 | s1 = v0;
0x0004ade4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0004ade8 beqz v0, 0x4ae34 |
0x0004adec sb zero, (v0) | *(v0) = 0;
0x0004adf0 sb zero, 1(v0) | *((v0 + 1)) = 0;
0x0004adf4 sb zero, 2(v0) | *((v0 + 2)) = 0;
0x0004adf8 sb zero, 3(v0) | *((v0 + 3)) = 0;
0x0004adfc sb zero, 4(v0) | *((v0 + 4)) = 0;
0x0004ae00 sb zero, 5(v0) | *((v0 + 5)) = 0;
0x0004ae04 sb zero, 6(v0) | *((v0 + 6)) = 0;
0x0004ae08 sb zero, 7(v0) | *((v0 + 7)) = 0;
0x0004ae0c sb zero, 8(v0) | *((v0 + 8)) = 0;
0x0004ae10 sb zero, 9(v0) | *((v0 + 9)) = 0;
0x0004ae14 sb zero, 0xa(v0) | *((v0 + 10)) = 0;
0x0004ae18 sb zero, 0xb(v0) | *((v0 + 11)) = 0;
0x0004ae1c sw v0, (s0) | *(s0) = v0;
0x0004ae20 b 0x4ad00 | goto label_1;
| label_7:
0x0004ae24 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x0004ae28 sw s0, (v0) | *(v0) = s0;
0x0004ae2c sw s0, 4(s1) | *((s1 + 1)) = s0;
0x0004ae30 b 0x4ad48 | goto label_0;
| }
0x0004ae34 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x0004ae38 lw t9, -0x6db8(gp) | t9 = *((gp - 7022));
0x0004ae3c addiu v0, v0, -0x6a28 | v0 += -0x6a28;
0x0004ae40 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0004ae44 move a3, zero | a3 = 0;
0x0004ae48 move a2, zero | a2 = 0;
0x0004ae4c addiu a1, zero, 2 | a1 = 2;
0x0004ae50 addiu a0, zero, 2 | a0 = 2;
0x0004ae54 jalr t9 | t9 ();
0x0004ae58 move s0, zero | s0 = 0;
0x0004ae5c b 0x4ad60 | goto label_2;
| label_8:
0x0004ae60 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x0004ae64 lw t9, -0x6db8(gp) | t9 = *((gp - 7022));
0x0004ae68 addiu v0, v0, -0x6a0c | v0 += -aav.0x00006a0c;
0x0004ae6c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0004ae70 move a3, zero | a3 = 0;
0x0004ae74 move a2, zero | a2 = 0;
0x0004ae78 addiu a1, zero, 2 | a1 = 2;
0x0004ae7c addiu a0, zero, 2 | a0 = 2;
0x0004ae80 jalr t9 | t9 ();
0x0004ae84 lw ra, 0x34(sp) | ra = *(var_34h);
0x0004ae88 b 0x4ad64 | goto label_3;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x5d9a8 */
| #include <stdint.h>
|
; (fcn) fcn.0005d9a8 () | void fcn_0005d9a8 () {
0x0005d9a8 lui gp, 0x13 |
0x0005d9ac addiu gp, gp, 0x3cc8 |
0x0005d9b0 addu gp, gp, t9 | gp += t9;
0x0005d9b4 addiu sp, sp, -0x28 |
0x0005d9b8 lw t9, -0x7b18(gp) | t9 = *(gp);
0x0005d9bc sw s1, 0x20(sp) | *(var_20h) = s1;
0x0005d9c0 lw s1, -0x7158(gp) | s1 = *(gp);
0x0005d9c4 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x0005d9c8 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0005d9cc sw gp, 0x10(sp) | *(var_10h) = gp;
0x0005d9d0 move s0, a0 | s0 = a0;
0x0005d9d4 bal 0x5d904 | sym_xmlListClear ();
0x0005d9d8 lw t9, (s1) | t9 = *(s1);
0x0005d9dc lw a0, (s0) | a0 = *(s0);
0x0005d9e0 jalr t9 | t9 ();
0x0005d9e4 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005d9e8 lw t9, (s1) | t9 = *(s1);
0x0005d9ec lw ra, 0x24(sp) | ra = *(var_24h);
0x0005d9f0 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0005d9f4 move a0, s0 | a0 = s0;
0x0005d9f8 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0005d9fc addiu sp, sp, 0x28 |
0x0005da00 jr t9 | t9 ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x5da2c */
| #include <stdint.h>
|
; (fcn) fcn.0005da2c () | void fcn_0005da2c () {
0x0005da2c lui gp, 0x13 |
0x0005da30 addiu gp, gp, 0x3c44 |
0x0005da34 addu gp, gp, t9 | gp += t9;
0x0005da38 lw v0, (a1) | v0 = *(a1);
0x0005da3c addiu sp, sp, -0x30 |
0x0005da40 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x0005da44 lw s0, (v0) | s0 = *(v0);
0x0005da48 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0005da4c sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0005da50 sw s3, 0x28(sp) | *(var_28h) = s3;
0x0005da54 sw s2, 0x24(sp) | *(var_24h) = s2;
0x0005da58 sw s1, 0x20(sp) | *(var_20h) = s1;
0x0005da5c move s2, a0 | s2 = a0;
| if (v0 == s0) {
0x0005da60 beq v0, s0, 0x5dac8 | goto label_0;
| }
0x0005da64 move s1, a1 | s1 = a1;
0x0005da68 lw s3, -0x7b14(gp) | s3 = *(gp);
0x0005da6c b 0x5da80 |
| while (v0 == 0) {
0x0005da70 lw s0, (s0) | s0 = *(s0);
0x0005da74 lw v0, (s1) | v0 = *(s1);
0x0005da78 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (s0 == v0) {
0x0005da7c beq s0, v0, 0x5dacc | goto label_1;
| }
0x0005da80 lw a1, 8(s0) | a1 = *((s0 + 2));
0x0005da84 move t9, s3 | t9 = s3;
0x0005da88 move a0, s2 | a0 = s2;
0x0005da8c bal 0x5d5bc | sym_xmlListInsert ();
0x0005da90 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005da94 beqz v0, 0x5da70 |
| }
0x0005da98 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
0x0005da9c addiu t9, t9, -0x2658 | t9 += -0x2658;
0x0005daa0 move a0, s2 | a0 = s2;
0x0005daa4 bal 0x5d9a8 | fcn_0005d9a8 ();
0x0005daa8 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0005daac lw s3, 0x28(sp) | s3 = *(var_28h);
0x0005dab0 lw s2, 0x24(sp) | s2 = *(var_24h);
0x0005dab4 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0005dab8 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0005dabc addiu v0, zero, 1 | v0 = 1;
0x0005dac0 addiu sp, sp, 0x30 |
0x0005dac4 jr ra | return v0;
| label_0:
0x0005dac8 lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_1:
0x0005dacc lw s3, 0x28(sp) | s3 = *(var_28h);
0x0005dad0 lw s2, 0x24(sp) | s2 = *(var_24h);
0x0005dad4 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0005dad8 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0005dadc move v0, zero | v0 = 0;
0x0005dae0 addiu sp, sp, 0x30 |
0x0005dae4 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x6938c */
| #include <stdint.h>
|
; (fcn) fcn.0006938c () | void fcn_0006938c () {
0x0006938c lui gp, 0x13 |
0x00069390 addiu gp, gp, -0x7d1c |
0x00069394 addu gp, gp, t9 | gp += t9;
0x00069398 addiu sp, sp, -0x58 |
0x0006939c sw gp, 0x48(sp) | *(var_28h) = gp;
0x000693a0 sw ra, 0x54(sp) | *(var_34h) = ra;
0x000693a4 move t0, a1 | t0 = a1;
| if (a0 == 0) {
0x000693a8 beqz a0, 0x69478 | goto label_2;
| }
0x000693ac lw v0, 0x1c(a0) | v0 = *((a0 + 7));
0x000693b0 lui v1, 0x5432 | v1 = 0x5432edcc;
0x000693b4 ori v1, v1, 0xedcc |
0x000693b8 addu v0, v0, v1 | v0 += v1;
0x000693bc sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x000693c0 lw a1, 4(a0) | a1 = *((a0 + 1));
0x000693c4 lw v1, (a0) | v1 = *(a0);
| if (v0 != 0) {
0x000693c8 bnez v0, 0x69430 | goto label_3;
| }
0x000693cc move a0, zero | a0 = 0;
| label_1:
0x000693d0 lw t9, -0x6f3c(gp) | t9 = *(gp);
| if (a3 == 0) {
0x000693d4 beqz a3, 0x69450 | goto label_4;
| }
| do {
0x000693d8 sw a3, 0x40(sp) | *(var_20h) = a3;
0x000693dc sw a2, 0x3c(sp) | *(var_1ch) = a2;
0x000693e0 sw zero, 0x38(sp) | *(var_18h) = 0;
0x000693e4 sw zero, 0x34(sp) | *(var_34h_2) = 0;
0x000693e8 sw zero, 0x30(sp) | *(var_10h) = 0;
0x000693ec sw zero, 0x2c(sp) | *(var_2ch_2) = 0;
0x000693f0 sw a3, 0x28(sp) | *(var_28h_2) = a3;
| label_0:
0x000693f4 addiu v0, zero, 2 | v0 = 2;
0x000693f8 sw v0, 0x1c(sp) | *(var_1ch_2) = v0;
0x000693fc addiu v0, zero, 0x17 | v0 = 0x17;
0x00069400 sw t0, 0x18(sp) | *(var_18h_2) = t0;
0x00069404 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00069408 move a3, a0 | a3 = a0;
0x0006940c sw zero, 0x24(sp) | *(var_24h_2) = 0;
0x00069410 sw zero, 0x20(sp) | *(var_20h_2) = 0;
0x00069414 sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x00069418 move a2, v1 | a2 = v1;
0x0006941c move a0, zero | a0 = 0;
0x00069420 jalr t9 | t9 ();
0x00069424 lw ra, 0x54(sp) | ra = *(var_34h);
0x00069428 addiu sp, sp, 0x58 |
0x0006942c jr ra | return v1;
| label_3:
0x00069430 subu a0, a0, v1 | __asm ("subu a0, a0, v1");
0x00069434 addiu a0, a0, -1 | a0 += -1;
0x00069438 sltiu a0, a0, 0xf9 | a0 = (a0 < 0xf9) ? 1 : 0;
0x0006943c move v0, v1 | v0 = v1;
| if (a0 != 0) {
0x00069440 movz v0, zero, a0 | v0 = 0;
| }
0x00069444 move a0, v0 | a0 = v0;
0x00069448 lw t9, -0x6f3c(gp) | t9 = *(gp);
0x0006944c bnez a3, 0x693d8 |
| } while (a3 != 0);
| label_4:
0x00069450 lw v0, -0x7fb0(gp) | v0 = *((gp - 8172));
0x00069454 sw a2, 0x40(sp) | *(var_20h) = a2;
0x00069458 addiu v0, v0, 0x47f4 | v0 += 0x47f4;
0x0006945c sw v0, 0x3c(sp) | *(var_1ch) = v0;
0x00069460 sw zero, 0x38(sp) | *(var_18h) = 0;
0x00069464 sw zero, 0x34(sp) | *(var_34h_2) = 0;
0x00069468 sw zero, 0x30(sp) | *(var_10h) = 0;
0x0006946c sw zero, 0x2c(sp) | *(var_2ch_2) = 0;
0x00069470 sw zero, 0x28(sp) | *(var_28h_2) = 0;
0x00069474 b 0x693f4 | goto label_0;
| label_2:
0x00069478 move v1, zero | v1 = 0;
0x0006947c move a0, zero | a0 = 0;
0x00069480 move a1, zero | a1 = 0;
0x00069484 b 0x693d0 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x85614 */
| #include <stdint.h>
|
; (fcn) fcn.00085614 () | void fcn_00085614 () {
0x00085614 lui gp, 0x11 |
0x00085618 addiu gp, gp, -0x3fa4 |
0x0008561c addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00085620 beqz a0, 0x859a0 | goto label_10;
| }
0x00085624 nop |
0x00085628 addiu sp, sp, -0x68 |
0x0008562c lw v0, (a0) | v0 = *(a0);
0x00085630 addiu v1, zero, -9 | v1 = -9;
0x00085634 and v0, v0, v1 | v0 &= v1;
0x00085638 sw s0, 0x40(sp) | *(var_40h) = s0;
0x0008563c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00085640 move s0, a2 | s0 = a2;
0x00085644 addiu a2, zero, 1 | a2 = 1;
0x00085648 sw ra, 0x64(sp) | *(var_64h) = ra;
0x0008564c sw fp, 0x60(sp) | *(var_60h) = fp;
0x00085650 sw s7, 0x5c(sp) | *(var_5ch) = s7;
0x00085654 sw s6, 0x58(sp) | *(var_58h) = s6;
0x00085658 sw s5, 0x54(sp) | *(var_54h) = s5;
0x0008565c sw s4, 0x50(sp) | *(var_50h) = s4;
0x00085660 sw s3, 0x4c(sp) | *(var_4ch) = s3;
0x00085664 sw s2, 0x48(sp) | *(var_48h) = s2;
0x00085668 sw s1, 0x44(sp) | *(var_44h) = s1;
| if (v0 == a2) {
0x0008566c beq v0, a2, 0x856a8 | goto label_11;
| }
0x00085670 nop |
| label_1:
0x00085674 move v0, zero | v0 = 0;
| do {
| label_0:
0x00085678 lw ra, 0x64(sp) | ra = *(var_64h);
0x0008567c lw fp, 0x60(sp) | fp = *(var_60h);
0x00085680 lw s7, 0x5c(sp) | s7 = *(var_5ch);
0x00085684 lw s6, 0x58(sp) | s6 = *(var_58h);
0x00085688 lw s5, 0x54(sp) | s5 = *(var_54h);
0x0008568c lw s4, 0x50(sp) | s4 = *(var_50h);
0x00085690 lw s3, 0x4c(sp) | s3 = *(var_4ch);
0x00085694 lw s2, 0x48(sp) | s2 = *(var_48h);
0x00085698 lw s1, 0x44(sp) | s1 = *(var_44h);
0x0008569c lw s0, 0x40(sp) | s0 = *(var_40h);
0x000856a0 addiu sp, sp, 0x68 |
0x000856a4 jr ra | return v0;
| label_11:
0x000856a8 beql a1, zero, 0x85678 |
| } while (a1 == 0);
0x000856ac move v0, zero | v0 = 0;
0x000856b0 lw a2, (a1) | a2 = *(a1);
0x000856b4 and v1, a2, v1 | v1 = a2 & v1;
0x000856b8 move v0, zero | v0 = 0;
| if (v1 != v0) {
0x000856bc bne v1, v0, 0x85678 | goto label_0;
| }
0x000856c0 lw v0, 4(a0) | v0 = *((a0 + 1));
0x000856c4 sw v0, 0x1c(sp) | *(var_1ch) = v0;
| if (v0 == 0) {
0x000856c8 beqz v0, 0x85674 | goto label_1;
| }
0x000856cc lw a0, (v0) | a0 = *(v0);
| if (a0 <= 0) {
0x000856d0 blezl a0, 0x85678 | goto label_0;
| }
0x000856d4 move v0, zero | v0 = 0;
0x000856d8 lw fp, 4(a1) | fp = *((a1 + 1));
| if (fp == 0) {
0x000856dc beql fp, zero, 0x85678 | goto label_0;
| }
0x000856e0 move v0, zero | v0 = 0;
0x000856e4 lw a2, (fp) | a2 = *(fp);
| if (a2 <= 0) {
0x000856e8 blezl a2, 0x85678 | goto label_0;
| }
0x000856ec move v0, zero | v0 = 0;
0x000856f0 lw s1, -0x716c(gp) | s1 = *(gp);
| if (s0 != 0) {
0x000856f4 bnez s0, 0x85734 | goto label_12;
| }
0x000856f8 lw t3, 8(fp) | t3 = *(arg_8h);
0x000856fc lw t1, 8(v0) | t1 = *((v0 + 2));
0x00085700 move t2, zero | t2 = 0;
| label_2:
0x00085704 lw a3, (t1) | a3 = *(t1);
0x00085708 move v1, t3 | v1 = t3;
0x0008570c move v0, zero | v0 = 0;
| do {
0x00085710 lw a1, (v1) | a1 = *(v1);
0x00085714 addiu v0, v0, 1 | v0++;
| if (a3 == a1) {
0x00085718 beq a3, a1, 0x85a30 | goto label_13;
| }
0x0008571c addiu v1, v1, 4 | v1 += 4;
0x00085720 bne a2, v0, 0x85710 |
| } while (a2 != v0);
0x00085724 addiu t2, t2, 1 | t2++;
0x00085728 addiu t1, t1, 4 | t1 += 4;
| if (a0 != t2) {
0x0008572c bne a0, t2, 0x85704 | goto label_2;
| }
0x00085730 lw s1, -0x716c(gp) | s1 = *(gp);
| label_12:
0x00085734 lw t9, (s1) | t9 = *(s1);
0x00085738 sll a0, a0, 2 | a0 <<= 2;
0x0008573c jalr t9 | t9 ();
0x00085740 sw v0, 0x38(sp) | *(var_38h) = v0;
0x00085744 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00085748 beqz v0, 0x85a7c | goto label_14;
| }
0x0008574c lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x00085750 lw t9, (s1) | t9 = *(s1);
0x00085754 lw a0, (v0) | a0 = *(v0);
0x00085758 sll a0, a0, 2 | a0 <<= 2;
0x0008575c jalr t9 | t9 ();
0x00085760 sw v0, 0x3c(sp) | *(var_3ch) = v0;
0x00085764 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00085768 beqz v0, 0x859a8 | goto label_15;
| }
0x0008576c lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x00085770 lw t9, -0x6ea4(gp) | t9 = *((gp - 7081));
0x00085774 lw a0, 0x38(sp) | a0 = *(var_38h);
0x00085778 lw a2, (v0) | a2 = *(v0);
0x0008577c move a1, zero | a1 = 0;
0x00085780 sll a2, a2, 2 | a2 <<= 2;
0x00085784 jalr t9 | t9 ();
0x00085788 lw a0, (fp) | a0 = *(fp);
0x0008578c lw t9, (s1) | t9 = *(s1);
0x00085790 sll a0, a0, 2 | a0 <<= 2;
0x00085794 jalr t9 | t9 ();
0x00085798 sw v0, 0x20(sp) | *(var_20h) = v0;
0x0008579c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000857a0 beqz v0, 0x85a98 | goto label_16;
| }
0x000857a4 lw a0, (fp) | a0 = *(fp);
0x000857a8 lw t9, (s1) | t9 = *(s1);
0x000857ac sll a0, a0, 2 | a0 <<= 2;
0x000857b0 jalr t9 | t9 ();
0x000857b4 sw v0, 0x34(sp) | *(var_34h) = v0;
0x000857b8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000857bc beqz v0, 0x85a38 | goto label_17;
| }
0x000857c0 lw a2, (fp) | a2 = *(fp);
0x000857c4 lw t9, -0x6ea4(gp) | t9 = *((gp - 7081));
0x000857c8 lw a0, 0x20(sp) | a0 = *(var_20h);
0x000857cc sll a2, a2, 2 | a2 <<= 2;
0x000857d0 move a1, zero | a1 = 0;
0x000857d4 jalr t9 | t9 ();
0x000857d8 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x000857dc lw v0, (v0) | v0 = *(v0);
0x000857e0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 <= 0) {
0x000857e4 blez v0, 0x85ad0 | goto label_18;
| }
0x000857e8 lw v0, -0x7f90(gp) | v0 = *((gp - 8164));
0x000857ec lw s2, 0x38(sp) | s2 = *(var_38h);
0x000857f0 sw v0, 0x24(sp) | *(var_24h) = v0;
0x000857f4 lw v0, -0x7928(gp) | v0 = *(gp);
0x000857f8 lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x000857fc sw v0, 0x30(sp) | *(var_30h) = v0;
0x00085800 lw v0, -0x7994(gp) | v0 = *(gp);
0x00085804 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00085808 addiu v0, v0, 0x42b8 | v0 += 0x42b8;
0x0008580c move s1, zero | s1 = 0;
0x00085810 sw v0, 0x18(sp) | *(var_18h) = v0;
| label_4:
0x00085814 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x00085818 lw t9, 0x18(sp) | t9 = *(var_18h);
0x0008581c lw a0, 8(v0) | a0 = *((v0 + 2));
0x00085820 sll v0, s1, 2 | v0 = s1 << 2;
0x00085824 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00085828 lwx a0, v0(a0) | __asm ("lwx a0, v0(a0)");
0x0008582c jalr t9 | t9 ();
0x00085830 lw gp, 0x10(sp) | gp = *(var_10h);
0x00085834 sw v0, (s5) | *(s5) = v0;
0x00085838 lw v0, (fp) | v0 = *(fp);
0x0008583c lw v0, 0x1c(sp) | v0 = *(var_1ch);
| if (v0 <= 0) {
0x00085840 blez v0, 0x858c8 | goto label_19;
| }
0x00085844 lw s6, 0x34(sp) | s6 = *(var_34h);
0x00085848 move s4, zero | s4 = 0;
0x0008584c move s7, zero | s7 = 0;
0x00085850 b 0x85870 |
| while (a0 != v0) {
0x00085854 lw v0, 0x1c(sp) | v0 = *(var_1ch);
| if (s0 != 0) {
0x00085858 bnez s0, 0x85a28 | goto label_20;
| }
| label_3:
0x0008585c lw v0, (fp) | v0 = *(fp);
0x00085860 addiu s7, s7, 1 | s7++;
0x00085864 slt v0, s7, v0 | v0 = (s7 < v0) ? 1 : 0;
0x00085868 addiu s6, s6, 4 | s6 += 4;
| if (v0 == 0) {
0x0008586c beqz v0, 0x858c0 | goto label_21;
| }
0x00085870 sll s3, s7, 2 | s3 = s7 << 2;
| if (s1 == 0) {
0x00085874 beqz s1, 0x859d8 | goto label_22;
| }
0x00085878 lw v0, (s6) | v0 = *(s6);
| label_5:
0x0008587c lw a0, (s5) | a0 = *(s5);
0x00085880 bne a0, v0, 0x85854 |
| }
0x00085884 nop |
0x00085888 lw v0, (s2) | v0 = *(s2);
0x0008588c lw v0, 0x1c(sp) | v0 = *(var_1ch);
| if (v0 == 0) {
0x00085890 beqz v0, 0x85a0c | goto label_23;
| }
| label_7:
0x00085894 lw v0, 0x20(sp) | v0 = *(var_20h);
0x00085898 addu s4, v0, s3 | s4 = v0 + s3;
0x0008589c lw a1, (s4) | a1 = *(s4);
| if (a1 == 0) {
0x000858a0 beql a1, zero, 0x859f4 | goto label_24;
| }
0x000858a4 lw a0, 8(fp) | a0 = *(arg_8h);
| label_6:
0x000858a8 lw t9, 0x24(sp) | t9 = *(var_24h);
0x000858ac lw a0, (s2) | a0 = *(s2);
0x000858b0 jalr t9 | t9 ();
0x000858b4 xor s4, s0, v0 | s4 = s0 ^ v0;
0x000858b8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s0 == v0) {
0x000858bc beq s0, v0, 0x8585c | goto label_3;
| }
| label_21:
0x000858c0 lw v0, 0x1c(sp) | v0 = *(var_1ch);
| if (s4 != 0) {
0x000858c4 bnez s4, 0x85ae0 | goto label_25;
| }
| label_19:
0x000858c8 addiu s1, s1, 1 | s1++;
0x000858cc addiu s5, s5, 4 | s5 += 4;
0x000858d0 lw v0, (v0) | v0 = *(v0);
0x000858d4 slt v1, s1, v0 | v1 = (s1 < v0) ? 1 : 0;
0x000858d8 addiu s2, s2, 4 | s2 += 4;
| if (v1 != 0) {
0x000858dc bnez v1, 0x85814 | goto label_4;
| }
0x000858e0 move s0, zero | s0 = 0;
| label_8:
0x000858e4 lw s1, -0x7158(gp) | s1 = *(gp);
0x000858e8 lw t9, (s1) | t9 = *(s1);
| if (v0 <= 0) {
0x000858ec blez v0, 0x85930 | goto label_9;
| }
0x000858f0 move s2, zero | s2 = 0;
| do {
0x000858f4 lw v1, 0x28(sp) | v1 = *(var_28h);
0x000858f8 addiu s2, s2, 1 | s2++;
0x000858fc lw v1, (v1) | v1 = *(v1);
0x00085900 move a0, v1 | a0 = v1;
| if (v1 != 0) {
0x00085904 beqz v1, 0x8591c |
0x00085908 jalr t9 | t9 ();
0x0008590c nop |
0x00085910 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x00085914 lw t9, (s1) | t9 = *(s1);
0x00085918 lw v0, (v0) | v0 = *(v0);
| }
0x0008591c lw a0, 0x28(sp) | a0 = *(var_28h);
0x00085920 slt v1, s2, v0 | v1 = (s2 < v0) ? 1 : 0;
0x00085924 addiu a0, a0, 4 | a0 += 4;
0x00085928 sw a0, 0x28(sp) | *(var_28h) = a0;
0x0008592c bnez v1, 0x858f4 |
| } while (v1 != 0);
| label_9:
0x00085930 lw v1, (fp) | v1 = *(fp);
0x00085934 lw s3, 0x20(sp) | s3 = *(var_20h);
| if (v1 <= 0) {
0x00085938 blez v1, 0x8596c | goto label_26;
| }
0x0008593c move s2, zero | s2 = 0;
| do {
0x00085940 lw v0, (s3) | v0 = *(s3);
0x00085944 addiu s2, s2, 1 | s2++;
0x00085948 move a0, v0 | a0 = v0;
| if (v0 != 0) {
0x0008594c beqz v0, 0x85960 |
0x00085950 jalr t9 | t9 ();
0x00085954 nop |
0x00085958 lw v1, (fp) | v1 = *(fp);
0x0008595c lw t9, (s1) | t9 = *(s1);
| }
0x00085960 slt v0, s2, v1 | v0 = (s2 < v1) ? 1 : 0;
0x00085964 addiu s3, s3, 4 | s3 += 4;
0x00085968 bnez v0, 0x85940 |
| } while (v0 != 0);
| label_26:
0x0008596c lw a0, 0x38(sp) | a0 = *(var_38h);
0x00085970 jalr t9 | t9 ();
0x00085974 lw t9, (s1) | t9 = *(s1);
0x00085978 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0008597c jalr t9 | t9 ();
0x00085980 lw t9, (s1) | t9 = *(s1);
0x00085984 lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x00085988 jalr t9 | t9 ();
0x0008598c lw t9, (s1) | t9 = *(s1);
0x00085990 lw a0, 0x34(sp) | a0 = *(var_34h);
0x00085994 jalr t9 | t9 ();
0x00085998 move v0, s0 | v0 = s0;
0x0008599c b 0x85678 | goto label_0;
| label_10:
0x000859a0 move v0, zero | v0 = 0;
0x000859a4 jr ra | return v0;
| label_15:
0x000859a8 lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x000859ac lw t9, -0x7994(gp) | t9 = *(gp);
0x000859b0 addiu t9, t9, 0x4de8 | t9 += 0x4de8;
0x000859b4 addiu a0, a0, 0x1050 | a0 += 0x1050;
0x000859b8 bal 0x84de8 | fcn_00084de8 ();
0x000859bc lw gp, 0x10(sp) | gp = *(var_10h);
0x000859c0 lw v0, -0x7158(gp) | v0 = *(gp);
0x000859c4 lw t9, (v0) | t9 = *(v0);
0x000859c8 lw a0, 0x38(sp) | a0 = *(var_38h);
0x000859cc jalr t9 | t9 ();
0x000859d0 move v0, zero | v0 = 0;
0x000859d4 b 0x85678 | goto label_0;
| label_22:
0x000859d8 lw a0, 8(fp) | a0 = *(arg_8h);
0x000859dc lw t9, 0x18(sp) | t9 = *(var_18h);
0x000859e0 lwx a0, s3(a0) | __asm ("lwx a0, s3(a0)");
0x000859e4 jalr t9 | t9 ();
0x000859e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000859ec sw v0, (s6) | *(s6) = v0;
0x000859f0 b 0x8587c | goto label_5;
| label_24:
0x000859f4 lw t9, 0x30(sp) | t9 = *(var_30h);
0x000859f8 lwx a0, s3(a0) | __asm ("lwx a0, s3(a0)");
0x000859fc jalr t9 | t9 ();
0x00085a00 move a1, v0 | a1 = v0;
0x00085a04 sw v0, (s4) | *(s4) = v0;
0x00085a08 b 0x858a8 | goto label_6;
| label_23:
0x00085a0c lw t9, 0x30(sp) | t9 = *(var_30h);
0x00085a10 lw a0, 8(v0) | a0 = *((v0 + 2));
0x00085a14 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x00085a18 lwx a0, v0(a0) | __asm ("lwx a0, v0(a0)");
0x00085a1c jalr t9 | t9 ();
0x00085a20 sw v0, (s2) | *(s2) = v0;
0x00085a24 b 0x85894 | goto label_7;
| label_20:
0x00085a28 lw v0, (v0) | v0 = *(v0);
0x00085a2c b 0x858e4 | goto label_8;
| label_13:
0x00085a30 addiu v0, zero, 1 | v0 = 1;
0x00085a34 b 0x85678 | goto label_0;
| label_17:
0x00085a38 lw s0, -0x7158(gp) | s0 = *(gp);
0x00085a3c lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x00085a40 lw t9, -0x7994(gp) | t9 = *(gp);
0x00085a44 addiu t9, t9, 0x4de8 | t9 += 0x4de8;
0x00085a48 addiu a0, a0, 0x1050 | a0 += 0x1050;
0x00085a4c bal 0x84de8 | fcn_00084de8 ();
0x00085a50 lw t9, (s0) | t9 = *(s0);
0x00085a54 lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x00085a58 jalr t9 | t9 ();
0x00085a5c lw t9, (s0) | t9 = *(s0);
0x00085a60 lw a0, 0x38(sp) | a0 = *(var_38h);
0x00085a64 jalr t9 | t9 ();
0x00085a68 lw t9, (s0) | t9 = *(s0);
0x00085a6c lw a0, 0x20(sp) | a0 = *(var_20h);
0x00085a70 jalr t9 | t9 ();
0x00085a74 move v0, zero | v0 = 0;
0x00085a78 b 0x85678 | goto label_0;
| label_14:
0x00085a7c lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x00085a80 lw t9, -0x7994(gp) | t9 = *(gp);
0x00085a84 addiu t9, t9, 0x4de8 | t9 += 0x4de8;
0x00085a88 addiu a0, a0, 0x1050 | a0 += 0x1050;
0x00085a8c bal 0x84de8 | fcn_00084de8 ();
0x00085a90 move v0, zero | v0 = 0;
0x00085a94 b 0x85678 | goto label_0;
| label_16:
0x00085a98 lw s0, -0x7158(gp) | s0 = *(gp);
0x00085a9c lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x00085aa0 lw t9, -0x7994(gp) | t9 = *(gp);
0x00085aa4 addiu t9, t9, 0x4de8 | t9 += 0x4de8;
0x00085aa8 addiu a0, a0, 0x1050 | a0 += 0x1050;
0x00085aac bal 0x84de8 | fcn_00084de8 ();
0x00085ab0 lw t9, (s0) | t9 = *(s0);
0x00085ab4 lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x00085ab8 jalr t9 | t9 ();
0x00085abc lw t9, (s0) | t9 = *(s0);
0x00085ac0 lw a0, 0x38(sp) | a0 = *(var_38h);
0x00085ac4 jalr t9 | t9 ();
0x00085ac8 move v0, zero | v0 = 0;
0x00085acc b 0x85678 | goto label_0;
| label_18:
0x00085ad0 lw s1, -0x7158(gp) | s1 = *(gp);
0x00085ad4 move s0, zero | s0 = 0;
0x00085ad8 lw t9, (s1) | t9 = *(s1);
0x00085adc b 0x85930 | goto label_9;
| label_25:
0x00085ae0 move s0, s4 | s0 = s4;
0x00085ae4 lw v0, (v0) | v0 = *(v0);
0x00085ae8 b 0x858e4 | goto label_8;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x90834 */
| #include <stdint.h>
|
; (fcn) fcn.00090834 () | void fcn_00090834 () {
0x00090834 lui gp, 0x10 |
0x00090838 addiu gp, gp, 0xe3c |
0x0009083c addu gp, gp, t9 | gp += t9;
0x00090840 addiu sp, sp, -0x48 |
0x00090844 lw v0, (a1) | v0 = *(a1);
0x00090848 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0009084c sltiu v1, v0, 9 | v1 = (v0 < 9) ? 1 : 0;
0x00090850 sw s2, 0x28(sp) | *(var_18h) = s2;
0x00090854 sw s1, 0x24(sp) | *(var_24h_2) = s1;
0x00090858 sw s0, 0x20(sp) | *(var_20h_2) = s0;
0x0009085c sw ra, 0x44(sp) | *(var_34h) = ra;
0x00090860 sw fp, 0x40(sp) | *(var_30h) = fp;
0x00090864 sw s7, 0x3c(sp) | *(var_2ch) = s7;
0x00090868 sw s6, 0x38(sp) | *(var_28h) = s6;
0x0009086c sw s5, 0x34(sp) | *(var_24h) = s5;
0x00090870 sw s4, 0x30(sp) | *(var_20h) = s4;
0x00090874 sw s3, 0x2c(sp) | *(var_2ch_2) = s3;
0x00090878 move s0, a1 | s0 = a1;
0x0009087c move s1, a0 | s1 = a0;
0x00090880 move s2, a2 | s2 = a2;
| if (v1 == 0) {
0x00090884 beqz v1, 0x90ae4 | goto label_0;
| }
0x00090888 sll v1, v0, 2 | v1 = v0 << 2;
0x0009088c lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x00090890 addiu v0, v0, 0xc68 | v0 += 0xc68;
0x00090894 lwx v0, v1(v0) | __asm ("lwx v0, v1(v0)");
0x00090898 addu v0, v0, gp | v0 += gp;
0x0009089c jr v0 | v0 ();
0x000908a0 nop |
| do {
0x00090960 move a1, s0 | a1 = s0;
0x00090964 lw s0, -0x78d0(gp) | s0 = *(gp);
0x00090968 addiu s0, s0, -0x39f0 | s0 += -0x39f0;
0x0009096c move t9, s0 | t9 = s0;
0x00090970 lw a0, 0xc(s1) | a0 = *((s1 + 3));
0x00090974 bal 0x8c610 | fcn_0008c610 ();
0x00090978 lw a0, 0xc(s1) | a0 = *((s1 + 3));
0x0009097c move t9, s0 | t9 = s0;
0x00090980 move a1, s2 | a1 = s2;
0x00090984 bal 0x8c610 | fcn_0008c610 ();
0x00090988 lw ra, 0x44(sp) | ra = *(var_34h);
0x0009098c move v0, s3 | v0 = s3;
0x00090990 lw fp, 0x40(sp) | fp = *(var_30h);
0x00090994 lw s7, 0x3c(sp) | s7 = *(var_2ch);
0x00090998 lw s6, 0x38(sp) | s6 = *(var_28h);
0x0009099c lw s5, 0x34(sp) | s5 = *(var_24h);
0x000909a0 lw s4, 0x30(sp) | s4 = *(var_20h);
0x000909a4 lw s3, 0x2c(sp) | s3 = *(var_2ch_2);
0x000909a8 lw s2, 0x28(sp) | s2 = *(var_18h);
0x000909ac lw s1, 0x24(sp) | s1 = *(var_24h_2);
0x000909b0 lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x000909b4 addiu sp, sp, 0x48 |
0x000909b8 jr ra | return v0;
| label_0:
0x00090ae4 move s3, zero | s3 = 0;
0x00090ae8 b 0x90960 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xa8140 */
| #include <stdint.h>
|
; (fcn) fcn.000a8140 () | void fcn_000a8140 () {
0x000a8140 lui gp, 0xf |
0x000a8144 addiu gp, gp, -0x6ad0 |
0x000a8148 addu gp, gp, t9 | gp += t9;
0x000a814c addiu sp, sp, -0x30 |
0x000a8150 sw s0, 0x18(sp) | *(var_18h) = s0;
0x000a8154 move s0, a0 | s0 = a0;
0x000a8158 lw a0, (a0) | a0 = *(a0);
0x000a815c sw gp, 0x10(sp) | *(var_10h) = gp;
0x000a8160 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x000a8164 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000a8168 sw s4, 0x28(sp) | *(var_28h) = s4;
0x000a816c sw s3, 0x24(sp) | *(var_24h) = s3;
0x000a8170 sw s2, 0x20(sp) | *(var_20h) = s2;
0x000a8174 move s1, a1 | s1 = a1;
| if (a0 != 0) {
0x000a8178 beqz a0, 0xa8194 |
0x000a817c lw v0, -0x7158(gp) | v0 = *(gp);
0x000a8180 lw t9, (v0) | t9 = *(v0);
0x000a8184 jalr t9 | t9 ();
0x000a8188 nop |
0x000a818c lw gp, 0x10(sp) | gp = *(var_10h);
0x000a8190 sw zero, (s0) | *(s0) = 0;
| }
0x000a8194 lw a0, 4(s0) | a0 = *((s0 + 1));
0x000a8198 lw v0, -0x7158(gp) | v0 = *(gp);
| if (a0 != 0) {
0x000a819c beqz a0, 0xa81b4 |
0x000a81a0 lw t9, (v0) | t9 = *(v0);
0x000a81a4 jalr t9 | t9 ();
0x000a81a8 nop |
0x000a81ac lw gp, 0x10(sp) | gp = *(var_10h);
0x000a81b0 sw zero, 4(s0) | *((s0 + 1)) = 0;
| }
0x000a81b4 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x000a81b8 lw v0, -0x7158(gp) | v0 = *(gp);
| if (a0 != 0) {
0x000a81bc beqz a0, 0xa81d4 |
0x000a81c0 lw t9, (v0) | t9 = *(v0);
0x000a81c4 jalr t9 | t9 ();
0x000a81c8 nop |
0x000a81cc lw gp, 0x10(sp) | gp = *(var_10h);
0x000a81d0 sw zero, 0xc(s0) | *((s0 + 3)) = 0;
| }
0x000a81d4 lw t9, -0x76d0(gp) | t9 = *((gp - 7604));
| if (s1 == 0) {
0x000a81d8 beqz s1, 0xa82cc | goto label_0;
| }
0x000a81dc move a0, s1 | a0 = s1;
0x000a81e0 addiu a1, zero, 1 | a1 = 1;
0x000a81e4 jalr t9 | t9 ();
0x000a81e8 move s1, v0 | s1 = v0;
0x000a81ec lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000a81f0 beqz v0, 0xa82cc | goto label_0;
| }
0x000a81f4 lw a0, (v0) | a0 = *(v0);
0x000a81f8 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (a0 == 0) {
0x000a81fc beqz a0, 0xa82a8 | goto label_1;
| }
0x000a8200 lw v0, 0xc(v0) | v0 = *((v0 + 3));
0x000a8204 lw s2, -0x6e34(gp) | s2 = *(gp);
| if (v0 == 0) {
0x000a8208 beqz v0, 0xa82a8 | goto label_1;
| }
0x000a820c lw t9, (s2) | t9 = *(s2);
0x000a8210 jalr t9 | t9 ();
0x000a8214 nop |
0x000a8218 lw t9, (s2) | t9 = *(s2);
0x000a821c lw a0, 0xc(s1) | a0 = *((s1 + 3));
0x000a8220 sw v0, (s0) | *(s0) = v0;
0x000a8224 jalr t9 | t9 ();
0x000a8228 lw a0, 0x18(s1) | a0 = *((s1 + 6));
0x000a822c lw gp, 0x10(sp) | gp = *(var_10h);
0x000a8230 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x000a8234 lw t9, (s2) | t9 = *(s2);
0x000a8238 beqz a0, 0xa8328 |
| while (1) {
0x000a823c jalr t9 | t9 ();
0x000a8240 nop |
0x000a8244 lw gp, 0x10(sp) | gp = *(var_10h);
0x000a8248 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
0x000a824c lw v0, 0x14(s1) | v0 = *((s1 + 5));
0x000a8250 sw v0, 8(s0) | *((s0 + 2)) = v0;
| if (v0 != 0) {
0x000a8254 bnel v0, zero, 0xa8258 |
| }
0x000a8258 lw s3, 0x10(s1) | s3 = *((s1 + 4));
0x000a825c lw t9, -0x6e68(gp) | t9 = *((gp - 7066));
| if (s3 != 0) {
0x000a8260 beqz s3, 0xa82a4 |
0x000a8264 addiu a1, zero, 0x3a | a1 = 0x3a;
0x000a8268 move a0, s3 | a0 = s3;
0x000a826c jalr t9 | t9 ();
0x000a8270 move s4, v0 | s4 = v0;
0x000a8274 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000a8278 beqz v0, 0xa82ec | goto label_2;
| }
0x000a827c lw t9, -0x7fc8(gp) | t9 = *(gp);
0x000a8280 subu a1, v0, s3 | __asm ("subu a1, v0, s3");
0x000a8284 move a0, s3 | a0 = s3;
0x000a8288 bal 0xb7bb8 | sym_xmlStrndup ();
0x000a828c lw t9, (s2) | t9 = *(s2);
0x000a8290 sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x000a8294 addiu a0, s4, 1 | a0 = s4 + 1;
0x000a8298 jalr t9 | t9 ();
0x000a829c lw gp, 0x10(sp) | gp = *(var_10h);
0x000a82a0 sw v0, 0x14(s0) | *((s0 + 5)) = v0;
| }
0x000a82a4 lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_1:
0x000a82a8 lw s4, 0x28(sp) | s4 = *(var_28h);
0x000a82ac lw s3, 0x24(sp) | s3 = *(var_24h);
0x000a82b0 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000a82b4 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000a82b8 move a0, s1 | a0 = s1;
0x000a82bc lw t9, -0x7da8(gp) | t9 = *(gp);
0x000a82c0 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000a82c4 addiu sp, sp, 0x30 |
0x000a82c8 jr t9 | t9 ();
| label_0:
0x000a82cc lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000a82d0 lw s4, 0x28(sp) | s4 = *(var_28h);
0x000a82d4 lw s3, 0x24(sp) | s3 = *(var_24h);
0x000a82d8 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000a82dc lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000a82e0 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000a82e4 addiu sp, sp, 0x30 |
0x000a82e8 jr ra | return v0;
| label_2:
0x000a82ec lw t9, (s2) | t9 = *(s2);
0x000a82f0 move a0, s3 | a0 = s3;
0x000a82f4 jalr t9 | t9 ();
0x000a82f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000a82fc lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000a8300 sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x000a8304 lw s4, 0x28(sp) | s4 = *(var_28h);
0x000a8308 lw s3, 0x24(sp) | s3 = *(var_24h);
0x000a830c lw s2, 0x20(sp) | s2 = *(var_20h);
0x000a8310 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000a8314 move a0, s1 | a0 = s1;
0x000a8318 lw t9, -0x7da8(gp) | t9 = *(gp);
0x000a831c lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000a8320 addiu sp, sp, 0x30 |
0x000a8324 jr t9 | t9 ();
0x000a8328 lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x000a832c addiu a0, a0, 0x2384 | a0 += aav.0x00002384;
0x000a8330 b 0xa823c |
| }
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb9240 */
| #include <stdint.h>
|
; (fcn) fcn.000b9240 () | void fcn_000b9240 () {
0x000b9240 lui gp, 0xe |
0x000b9244 addiu gp, gp, -0x7bd0 |
0x000b9248 addu gp, gp, t9 | gp += t9;
0x000b924c lw v1, 8(a0) | v1 = *((a0 + 2));
0x000b9250 lw v0, 0x18(a0) | v0 = *((a0 + 6));
0x000b9254 lui v0, 0x7fff | v0 = 0x7fff0000;
| if (v0 != v1) {
0x000b9258 beq v0, v1, 0xb926c |
0x000b925c ori v0, v0, 0xffff | v0 |= 0xffff;
0x000b9260 sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x000b9264 sw v1, 0x18(a0) | *((a0 + 6)) = v1;
| if (v0 == 0) {
0x000b9268 bnel v0, zero, 0xb926c | goto label_3;
| }
| }
| label_3:
0x000b926c lw v1, 4(a0) | v1 = *((a0 + 1));
0x000b9270 lw v0, 0x14(a0) | v0 = *((a0 + 5));
0x000b9274 lui v0, 0x7fff | v0 = 0x7fff0000;
| if (v0 != v1) {
0x000b9278 beq v0, v1, 0xb928c |
0x000b927c ori v0, v0, 0xffff | v0 |= 0xffff;
0x000b9280 sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x000b9284 lw a2, 0xc(a0) | a2 = *((a0 + 3));
| if (v0 == 0) {
0x000b9288 bnel v0, zero, 0xb9354 | goto label_4;
| }
| }
0x000b928c lw a2, 0xc(a0) | a2 = *((a0 + 3));
0x000b9290 addiu v0, zero, 2 | v0 = 2;
| if (a2 == v0) {
0x000b9294 beq a2, v0, 0xb9360 | goto label_5;
| }
0x000b9298 nop |
| do {
0x000b929c lw v0, 0x14(a0) | v0 = *((a0 + 5));
0x000b92a0 lw v1, 0x18(a0) | v1 = *((a0 + 6));
0x000b92a4 addu a3, v0, a1 | a3 = v0 + a1;
0x000b92a8 sltu t0, a3, v1 | t0 = (a3 < v1) ? 1 : 0;
| if (t0 != 0) {
0x000b92ac bnez t0, 0xb93a8 | goto label_6;
| }
0x000b92b0 nop |
0x000b92b4 addiu sp, sp, -0x28 |
0x000b92b8 sltu a1, a1, v1 | a1 = (a1 < v1) ? 1 : 0;
0x000b92bc sw gp, 0x10(sp) | *(var_10h) = gp;
0x000b92c0 sw ra, 0x24(sp) | *(var_24h) = ra;
0x000b92c4 sw s2, 0x20(sp) | *(var_20h) = s2;
0x000b92c8 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x000b92cc sw s0, 0x18(sp) | *(var_18h) = s0;
0x000b92d0 addiu v0, zero, 5 | v0 = 5;
| if (a1 != 0) {
0x000b92d4 bnez a1, 0xb9368 | goto label_7;
| }
0x000b92d8 addiu s1, a3, 0x64 | s1 = a3 + 0x64;
0x000b92dc move s0, a0 | s0 = a0;
| if (a2 == v0) {
0x000b92e0 beq a2, v0, 0xb9374 | goto label_8;
| }
| label_0:
0x000b92e4 lw v1, -0x6e24(gp) | v1 = *(gp);
0x000b92e8 addiu v0, zero, 3 | v0 = 3;
0x000b92ec lw a0, (a0) | a0 = *(a0);
0x000b92f0 lw t9, (v1) | t9 = *(v1);
| if (a2 == v0) {
0x000b92f4 beq a2, v0, 0xb93b0 | goto label_9;
| }
| label_1:
0x000b92f8 move a1, s1 | a1 = s1;
0x000b92fc jalr t9 | t9 ();
0x000b9300 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000b9304 beqz v0, 0xb9414 | goto label_10;
| }
0x000b9308 sw v0, (s0) | *(s0) = v0;
| label_2:
0x000b930c lw v0, 0x14(s0) | v0 = *((s0 + 5));
0x000b9310 lui v1, 0x7fff | v1 = 0x7fffffff;
0x000b9314 ori v1, v1, 0xffff |
0x000b9318 sltu a1, s1, v1 | a1 = (s1 < v1) ? 1 : 0;
0x000b931c sltu a0, v0, v1 | a0 = (v0 < v1) ? 1 : 0;
0x000b9320 lw ra, 0x24(sp) | ra = *(var_24h);
0x000b9324 move a2, s1 | a2 = s1;
| if (a1 != 0) {
0x000b9328 movz a2, v1, a1 | a2 = v1;
| }
| if (a0 == 0) {
0x000b932c movn v1, v0, a0 | v1 = v0;
| }
0x000b9330 sw s1, 0x18(s0) | *((s0 + 6)) = s1;
0x000b9334 sw a2, 8(s0) | *((s0 + 2)) = a2;
0x000b9338 sw v1, 4(s0) | *((s0 + 1)) = v1;
0x000b933c subu v0, s1, v0 | __asm ("subu v0, s1, v0");
0x000b9340 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000b9344 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000b9348 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000b934c addiu sp, sp, 0x28 |
0x000b9350 jr ra | return v0;
| label_4:
0x000b9354 addiu v0, zero, 2 | v0 = 2;
0x000b9358 sw v1, 0x14(a0) | *((a0 + 5)) = v1;
0x000b935c bne a2, v0, 0xb929c |
| } while (a2 != v0);
| label_5:
0x000b9360 move v0, zero | v0 = 0;
0x000b9364 jr ra | return v0;
| label_7:
0x000b9368 sll s1, v1, 1 | s1 = v1 << 1;
0x000b936c move s0, a0 | s0 = a0;
| if (a2 != v0) {
0x000b9370 bne a2, v0, 0xb92e4 | goto label_0;
| }
| label_8:
0x000b9374 lui a0, 0x98 | a0 = 0x980000;
0x000b9378 ori a0, a0, 0x9680 |
0x000b937c sltu a3, a3, a0 | a3 = (a3 < a0) ? 1 : 0;
0x000b9380 sltu v0, v1, a0 | v0 = (v1 < a0) ? 1 : 0;
| if (a3 == 0) {
0x000b9384 beqz a3, 0xb93e0 | goto label_11;
| }
0x000b9388 addiu v0, a0, 1 | v0 = a0 + 1;
| if (v0 == 0) {
0x000b938c beqz v0, 0xb93e0 | goto label_11;
| }
0x000b9390 sltu v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
| if (v0 != 0) {
0x000b9394 movz s1, a0, v0 | s1 = a0;
| }
0x000b9398 lw v0, -0x6e24(gp) | v0 = *(gp);
0x000b939c lw a0, (s0) | a0 = *(s0);
0x000b93a0 lw t9, (v0) | t9 = *(v0);
0x000b93a4 b 0xb92f8 | goto label_1;
| label_6:
0x000b93a8 subu v0, v1, v0 | __asm ("subu v0, v1, v0");
0x000b93ac jr ra | return v0;
| label_9:
0x000b93b0 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x000b93b4 subu s2, a0, v0 | __asm ("subu s2, a0, v0");
| if (v0 == 0) {
0x000b93b8 beqz v0, 0xb92f8 | goto label_1;
| }
0x000b93bc addu a1, s1, s2 | a1 = s1 + s2;
0x000b93c0 move a0, v0 | a0 = v0;
0x000b93c4 jalr t9 | t9 ();
0x000b93c8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000b93cc beqz v0, 0xb9414 | goto label_10;
| }
0x000b93d0 addu a0, v0, s2 | a0 = v0 + s2;
0x000b93d4 sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x000b93d8 sw a0, (s0) | *(s0) = a0;
0x000b93dc b 0xb930c | goto label_2;
| label_11:
0x000b93e0 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b93e4 addiu a1, a1, 0x3920 | a1 += 0x3920;
| do {
0x000b93e8 lw t9, -0x7614(gp) | t9 = *((gp - 7557));
0x000b93ec addiu t9, t9, -0x6e90 | t9 += -0x6e90;
0x000b93f0 move a0, s0 | a0 = s0;
0x000b93f4 bal 0xb9170 | fcn_000b9170 ();
0x000b93f8 lw ra, 0x24(sp) | ra = *(var_24h);
0x000b93fc lw s2, 0x20(sp) | s2 = *(var_20h);
0x000b9400 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000b9404 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000b9408 move v0, zero | v0 = 0;
0x000b940c addiu sp, sp, 0x28 |
0x000b9410 jr ra | return v0;
| label_10:
0x000b9414 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b9418 addiu a1, a1, -0x670c | a1 += -0x670c;
0x000b941c b 0xb93e8 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xbd9a4 */
| #include <stdint.h>
|
; (fcn) fcn.000bd9a4 () | void fcn_000bd9a4 () {
0x000bd9a4 lui gp, 0xd |
0x000bd9a8 addiu gp, gp, 0x3ccc |
0x000bd9ac addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x000bd9b0 beqz a0, 0xbdaec | goto label_0;
| }
0x000bd9b4 nop |
0x000bd9b8 addiu sp, sp, -0x30 |
0x000bd9bc sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000bd9c0 move s0, a0 | s0 = a0;
0x000bd9c4 lw a0, (a0) | a0 = *(a0);
0x000bd9c8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000bd9cc sw s2, 0x24(sp) | *(var_24h) = s2;
0x000bd9d0 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000bd9d4 sw s3, 0x28(sp) | *(var_28h) = s3;
0x000bd9d8 sw s1, 0x20(sp) | *(var_20h) = s1;
0x000bd9dc lw s2, -0x7158(gp) | s2 = *(gp);
| if (a0 != 0) {
0x000bd9e0 beqz a0, 0xbd9f4 |
0x000bd9e4 lw t9, (s2) | t9 = *(s2);
0x000bd9e8 jalr t9 | t9 ();
0x000bd9ec nop |
0x000bd9f0 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000bd9f4 lw a0, 0x34(s0) | a0 = *((s0 + 13));
| if (a0 == 0) {
0x000bd9f8 beql a0, zero, 0xbda50 | goto label_1;
| }
0x000bd9fc lw v1, 0x28(s0) | v1 = *((s0 + 10));
0x000bda00 lw v0, 0x30(s0) | v0 = *((s0 + 12));
| if (v0 <= 0) {
0x000bda04 blezl v0, 0xbda40 | goto label_2;
| }
0x000bda08 lw t9, (s2) | t9 = *(s2);
0x000bda0c lw s3, -0x7614(gp) | s3 = *((gp - 7557));
0x000bda10 move s1, zero | s1 = 0;
0x000bda14 addiu s3, s3, -0x4c00 | s3 += -0x4c00;
| do {
0x000bda18 sll v0, s1, 2 | v0 = s1 << 2;
0x000bda1c move t9, s3 | t9 = s3;
0x000bda20 lwx a0, v0(a0) | __asm ("lwx a0, v0(a0)");
0x000bda24 addiu s1, s1, 1 | s1++;
0x000bda28 bal 0xbb400 | fcn_000bb400 ();
0x000bda2c lw v0, 0x30(s0) | v0 = *((s0 + 12));
0x000bda30 slt v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x000bda34 lw a0, 0x34(s0) | a0 = *((s0 + 13));
0x000bda38 bnez v0, 0xbda18 |
| } while (v0 != 0);
0x000bda3c lw t9, (s2) | t9 = *(s2);
| label_2:
0x000bda40 jalr t9 | t9 ();
0x000bda44 nop |
0x000bda48 lw gp, 0x10(sp) | gp = *(var_10h);
0x000bda4c lw v1, 0x28(s0) | v1 = *((s0 + 10));
| if (v1 == 0) {
| label_1:
0x000bda50 beql v1, zero, 0xbdab4 | goto label_3;
| }
0x000bda54 lw a0, 0x40(s0) | a0 = *((s0 + 16));
0x000bda58 lw a1, 0x24(s0) | a1 = *((s0 + 9));
0x000bda5c lw s3, -0x7614(gp) | s3 = *((gp - 7557));
| if (a1 <= 0) {
0x000bda60 blez a1, 0xbdaa0 | goto label_4;
| }
0x000bda64 move s1, zero | s1 = 0;
0x000bda68 addiu s3, s3, -0x27c4 | s3 += -0x27c4;
0x000bda6c sll v0, s1, 2 | v0 = s1 << 2;
| do {
0x000bda70 addiu s1, s1, 1 | s1++;
0x000bda74 lwx v0, v0(v1) | __asm ("lwx v0, v0(v1)");
0x000bda78 move a0, v0 | a0 = v0;
| if (v0 != 0) {
0x000bda7c beqz v0, 0xbda94 |
0x000bda80 move t9, s3 | t9 = s3;
0x000bda84 bal 0xbd83c | fcn_000bd83c ();
0x000bda88 nop |
0x000bda8c lw a1, 0x24(s0) | a1 = *((s0 + 9));
0x000bda90 lw v1, 0x28(s0) | v1 = *((s0 + 10));
| }
0x000bda94 slt v0, s1, a1 | v0 = (s1 < a1) ? 1 : 0;
0x000bda98 sll v0, s1, 2 | v0 = s1 << 2;
0x000bda9c bnez v0, 0xbda70 |
| } while (v0 != 0);
| label_4:
0x000bdaa0 lw t9, (s2) | t9 = *(s2);
0x000bdaa4 move a0, v1 | a0 = v1;
0x000bdaa8 jalr t9 | t9 ();
0x000bdaac lw gp, 0x10(sp) | gp = *(var_10h);
0x000bdab0 lw a0, 0x40(s0) | a0 = *((s0 + 16));
| label_3:
0x000bdab4 lw t9, (s2) | t9 = *(s2);
| if (a0 != 0) {
0x000bdab8 beqz a0, 0xbdacc |
0x000bdabc jalr t9 | t9 ();
0x000bdac0 nop |
0x000bdac4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000bdac8 lw t9, (s2) | t9 = *(s2);
| }
0x000bdacc lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000bdad0 lw s3, 0x28(sp) | s3 = *(var_28h);
0x000bdad4 lw s2, 0x24(sp) | s2 = *(var_24h);
0x000bdad8 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000bdadc move a0, s0 | a0 = s0;
0x000bdae0 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000bdae4 addiu sp, sp, 0x30 |
0x000bdae8 jr t9 | t9 ();
| label_0:
0x000bdaec jr ra | return v0;
0x000bdaf0 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xc125c */
| #include <stdint.h>
|
; (fcn) fcn.000c125c () | void fcn_000c125c () {
0x000c125c lui gp, 0xd |
0x000c1260 addiu gp, gp, 0x414 |
0x000c1264 addu gp, gp, t9 | gp += t9;
0x000c1268 addiu sp, sp, -0x40 |
0x000c126c lw v1, -0x7f94(gp) | v1 = *((gp - 8165));
0x000c1270 sw s1, 0x24(sp) | *(var_24h) = s1;
0x000c1274 move s1, a1 | s1 = a1;
0x000c1278 sw s5, 0x34(sp) | *(var_34h) = s5;
0x000c127c sw s4, 0x30(sp) | *(var_30h) = s4;
0x000c1280 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x000c1284 sw s0, 0x20(sp) | *(var_20h) = s0;
0x000c1288 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000c128c sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x000c1290 sw s6, 0x38(sp) | *(var_38h) = s6;
0x000c1294 sw s2, 0x28(sp) | *(var_28h) = s2;
0x000c1298 lbu v0, (s1) | v0 = *(s1);
0x000c129c move s5, a0 | s5 = a0;
0x000c12a0 sltiu a0, v0, 6 | a0 = (v0 < 6) ? 1 : 0;
0x000c12a4 lw s0, 0x50(sp) | s0 = *(arg_50h);
0x000c12a8 move s3, a2 | s3 = a2;
0x000c12ac move s4, a3 | s4 = a3;
0x000c12b0 addiu v1, v1, 0x4560 | v1 += aav.0x00004560;
| if (a0 != 0) {
0x000c12b4 beqz a0, 0xc1310 |
0x000c12b8 sll v0, v0, 2 | v0 <<= 2;
0x000c12bc lwx v0, v0(v1) | __asm ("lwx v0, v0(v1)");
0x000c12c0 addu v0, v0, gp | v0 += gp;
0x000c12c4 jr v0 | v0 ();
0x000c12c8 nop |
| }
0x000c1310 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x000c1314 addiu s2, zero, -1 | s2 = -1;
0x000c1318 move v0, s2 | v0 = s2;
0x000c131c lw s6, 0x38(sp) | s6 = *(var_38h);
0x000c1320 lw s5, 0x34(sp) | s5 = *(var_34h);
0x000c1324 lw s4, 0x30(sp) | s4 = *(var_30h);
0x000c1328 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x000c132c lw s2, 0x28(sp) | s2 = *(var_28h);
0x000c1330 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000c1334 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000c1338 addiu sp, sp, 0x40 |
0x000c133c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x11439c */
| #include <stdint.h>
|
; (fcn) fcn.0011439c () | void fcn_0011439c () {
0x0011439c lui gp, 8 |
0x001143a0 addiu gp, gp, -0x2d2c |
0x001143a4 addu gp, gp, t9 | gp += t9;
0x001143a8 addiu sp, sp, -0x60 |
0x001143ac lw v0, 0x3c(a0) | v0 = *((a0 + 15));
0x001143b0 sw gp, 0x10(sp) | *(var_10h) = gp;
0x001143b4 sw fp, 0x58(sp) | *(var_58h) = fp;
0x001143b8 sw s7, 0x54(sp) | *(var_54h) = s7;
0x001143bc sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x001143c0 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x001143c4 sw s6, 0x50(sp) | *(var_50h) = s6;
0x001143c8 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x001143cc sw s4, 0x48(sp) | *(var_48h) = s4;
0x001143d0 sw s3, 0x44(sp) | *(var_44h) = s3;
0x001143d4 sw s2, 0x40(sp) | *(var_40h) = s2;
0x001143d8 sw s0, 0x38(sp) | *(var_38h) = s0;
0x001143dc move fp, a0 | fp = a0;
0x001143e0 move s7, a1 | s7 = a1;
0x001143e4 lw s1, 0x40(a0) | s1 = *((a0 + 16));
| if (v0 != 0) {
0x001143e8 beqz v0, 0x114454 |
0x001143ec lw t9, -0x7f34(gp) | t9 = *(gp);
| if (s1 == 0) {
0x001143f0 beqz s1, 0x114760 | goto label_8;
| }
0x001143f4 jalr t9 | t9 ();
0x001143f8 nop |
0x001143fc lw gp, 0x10(sp) | gp = *(var_10h);
0x00114400 lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x00114404 lw s0, (v0) | s0 = *(v0);
0x00114408 jalr t9 | t9 ();
0x0011440c lw gp, 0x10(sp) | gp = *(var_10h);
0x00114410 lw a0, (v0) | a0 = *(v0);
0x00114414 addiu a3, zero, 0x2990 | a3 = aav.0x00002990;
0x00114418 lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x0011441c lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00114420 addiu a2, a2, 0x800 | a2 += 0x800;
0x00114424 move t9, s0 | t9 = s0;
0x00114428 addiu a1, a1, 0x12a4 | a1 += 0x12a4;
0x0011442c jalr t9 | t9 ();
0x00114430 lw gp, 0x10(sp) | gp = *(var_10h);
0x00114434 lw a1, 0x3c(fp) | a1 = *(arg_3ch);
0x00114438 lw t9, -0x73ac(gp) | t9 = *(gp);
0x0011443c addiu t9, t9, -0x5b5c | t9 += -0x5b5c;
0x00114440 move a0, fp | a0 = fp;
0x00114444 bal 0x10a4a4 | fcn_0010a4a4 ();
0x00114448 lw s1, 0x40(fp) | s1 = *(arg_40h);
0x0011444c lw gp, 0x10(sp) | gp = *(var_10h);
0x00114450 sw zero, 0x3c(fp) | *(arg_3ch) = 0;
| }
0x00114454 addiu a0, zero, 1 | a0 = 1;
| if (s1 == 0) {
0x00114458 beqz s1, 0x114760 | goto label_8;
| }
0x0011445c lw v0, (s1) | v0 = *(s1);
| if (v0 == a0) {
0x00114460 beql v0, a0, 0x11473c | goto label_9;
| }
0x00114464 lw v0, 8(s1) | v0 = *((s1 + 2));
0x00114468 lw v1, 0x1c(fp) | v1 = *(arg_1ch);
0x0011446c sw zero, 0x40(fp) | *(arg_40h) = 0;
0x00114470 ori a0, v1, 1 | a0 = v1 | 1;
0x00114474 sw v1, 0x34(sp) | *(var_34h) = v1;
0x00114478 sw a0, 0x1c(fp) | *(arg_1ch) = a0;
| if (v0 <= 0) {
0x0011447c blez v0, 0x11490c | goto label_10;
| }
0x00114480 lw v0, -0x73ac(gp) | v0 = *(gp);
0x00114484 lw s6, -0x73ac(gp) | s6 = *(gp);
0x00114488 sw v0, 0x24(sp) | *(var_24h) = v0;
0x0011448c lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x00114490 lw s4, -0x73ac(gp) | s4 = *(gp);
0x00114494 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00114498 addiu v0, s6, 0x2170 | v0 = s6 + 0x2170;
0x0011449c sw v0, 0x20(sp) | *(var_20h) = v0;
0x001144a0 lw v0, -0x7470(gp) | v0 = *(gp);
0x001144a4 move s5, zero | s5 = 0;
0x001144a8 addiu v0, v0, 0x77b4 | v0 += 0x77b4;
0x001144ac sw v0, 0x30(sp) | *(var_30h) = v0;
0x001144b0 addiu v0, s4, -0x5b5c | v0 = s4 + -0x5b5c;
0x001144b4 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x001144b8 lw v0, -0x7fb0(gp) | v0 = *((gp - 8172));
0x001144bc move s0, zero | s0 = 0;
0x001144c0 addiu v0, v0, 0x800 | v0 += 0x800;
0x001144c4 move s3, zero | s3 = 0;
0x001144c8 sw v0, 0x28(sp) | *(var_28h) = v0;
0x001144cc lw a0, 8(s1) | a0 = *((s1 + 2));
| label_0:
0x001144d0 sll v0, s0, 2 | v0 = s0 << 2;
0x001144d4 lw t9, 0x20(sp) | t9 = *(var_20h);
0x001144d8 lwx v0, v0(a0) | __asm ("lwx v0, v0(a0)");
0x001144dc move a1, s7 | a1 = s7;
0x001144e0 move a0, fp | a0 = fp;
0x001144e4 sw v0, 0x3c(fp) | *(arg_3ch) = v0;
0x001144e8 sw zero, 0x40(fp) | *(arg_40h) = 0;
0x001144ec jalr t9 | t9 ();
0x001144f0 lw a1, 0x3c(fp) | a1 = *(arg_3ch);
0x001144f4 lw gp, 0x10(sp) | gp = *(var_10h);
0x001144f8 move s6, v0 | s6 = v0;
| if (a1 != 0) {
0x001144fc beqz a1, 0x114558 |
0x00114500 lw v0, 0x40(fp) | v0 = *(arg_40h);
0x00114504 lw t9, -0x7f34(gp) | t9 = *(gp);
| if (v0 == 0) {
0x00114508 beqz v0, 0x114648 | goto label_11;
| }
0x0011450c jalr t9 | t9 ();
0x00114510 nop |
0x00114514 lw gp, 0x10(sp) | gp = *(var_10h);
0x00114518 lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x0011451c lw s2, (v0) | s2 = *(v0);
0x00114520 jalr t9 | t9 ();
0x00114524 lw a0, (v0) | a0 = *(v0);
0x00114528 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x0011452c lw a2, 0x28(sp) | a2 = *(var_28h);
0x00114530 addiu a1, v0, 0x12a4 | a1 = v0 + 0x12a4;
0x00114534 move t9, s2 | t9 = s2;
0x00114538 addiu a3, zero, 0x29b5 | a3 = 0x29b5;
0x0011453c jalr t9 | t9 ();
0x00114540 lw a1, 0x3c(fp) | a1 = *(arg_3ch);
0x00114544 lw t9, 0x1c(sp) | t9 = *(var_1ch);
0x00114548 move a0, fp | a0 = fp;
0x0011454c jalr t9 | t9 ();
0x00114550 lw gp, 0x10(sp) | gp = *(var_10h);
0x00114554 sw zero, 0x3c(fp) | *(arg_3ch) = 0;
| }
0x00114558 lw s4, 0x40(fp) | s4 = *(arg_40h);
| if (s6 != 0) {
0x0011455c bnez s6, 0x114664 | goto label_12;
| }
| if (s4 == 0) {
0x00114560 beql s4, zero, 0x1146b4 | goto label_13;
| }
0x00114564 lw a1, 0x3c(fp) | a1 = *(arg_3ch);
0x00114568 lw v1, 0x24(sp) | v1 = *(var_24h);
| if (s3 == 0) {
0x0011456c beqz s3, 0x1146e0 | goto label_14;
| }
0x00114570 lw v0, (s4) | v0 = *(s4);
0x00114574 addiu s2, v1, -0x5a28 | s2 = v1 + -0x5a28;
| if (v0 <= 0) {
0x00114578 blez v0, 0x1145b0 | goto label_15;
| }
0x0011457c lw a2, 8(s4) | a2 = *((s4 + 2));
| do {
0x00114580 sll v0, s6, 2 | v0 = s6 << 2;
0x00114584 move a1, s3 | a1 = s3;
0x00114588 lwx a2, v0(a2) | __asm ("lwx a2, v0(a2)");
0x0011458c move t9, s2 | t9 = s2;
0x00114590 move a0, fp | a0 = fp;
0x00114594 jalr t9 | t9 ();
0x00114598 lw s4, 0x40(fp) | s4 = *(arg_40h);
0x0011459c addiu s6, s6, 1 | s6++;
0x001145a0 lw v0, (s4) | v0 = *(s4);
0x001145a4 slt v0, s6, v0 | v0 = (s6 < v0) ? 1 : 0;
0x001145a8 lw a2, 8(s4) | a2 = *((s4 + 2));
0x001145ac bnel v0, zero, 0x114580 |
| } while (v0 == 0);
| label_15:
0x001145b0 lw t9, 0x30(sp) | t9 = *(var_30h);
| label_3:
0x001145b4 move a1, s4 | a1 = s4;
0x001145b8 move a0, fp | a0 = fp;
0x001145bc jalr t9 | t9 ();
0x001145c0 lw gp, 0x10(sp) | gp = *(var_10h);
0x001145c4 sw zero, 0x40(fp) | *(arg_40h) = 0;
| label_1:
0x001145c8 lw v0, (s1) | v0 = *(s1);
| label_2:
0x001145cc addiu s0, s0, 1 | s0++;
0x001145d0 slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x001145d4 lw a0, 8(s1) | a0 = *((s1 + 2));
| if (v0 == 0) {
0x001145d8 bnel v0, zero, 0x1144d0 | goto label_0;
| }
0x001145dc lw v0, 0x34(sp) | v0 = *(var_34h);
0x001145e0 sw v0, 0x1c(fp) | *(arg_1ch) = v0;
| if (s3 == 0) {
0x001145e4 beqz s3, 0x114828 | goto label_16;
| }
0x001145e8 lw t9, -0x7470(gp) | t9 = *(gp);
0x001145ec move a1, s1 | a1 = s1;
0x001145f0 addiu t9, t9, 0x77b4 | t9 += 0x77b4;
0x001145f4 move a0, fp | a0 = fp;
0x001145f8 bal 0x1077b4 | fcn_001077b4 ();
0x001145fc lw gp, 0x10(sp) | gp = *(var_10h);
0x00114600 sw s3, 0x40(fp) | *(arg_40h) = s3;
| label_7:
0x00114604 lw v0, 0x3c(fp) | v0 = *(arg_3ch);
0x00114608 lw t9, -0x7f34(gp) | t9 = *(gp);
| if (v0 != 0) {
0x0011460c bnez v0, 0x114878 | goto label_17;
| }
| label_6:
0x00114610 move s0, zero | s0 = 0;
| label_4:
0x00114614 lw ra, 0x5c(sp) | ra = *(var_5ch);
| label_5:
0x00114618 move v0, s0 | v0 = s0;
0x0011461c lw fp, 0x58(sp) | fp = *(var_58h);
0x00114620 lw s7, 0x54(sp) | s7 = *(var_54h);
0x00114624 lw s6, 0x50(sp) | s6 = *(var_50h);
0x00114628 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x0011462c lw s4, 0x48(sp) | s4 = *(var_48h);
0x00114630 lw s3, 0x44(sp) | s3 = *(var_44h);
0x00114634 lw s2, 0x40(sp) | s2 = *(var_40h);
0x00114638 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0011463c lw s0, 0x38(sp) | s0 = *(var_38h);
0x00114640 addiu sp, sp, 0x60 |
0x00114644 jr ra | return v0;
| label_11:
0x00114648 lw t9, 0x1c(sp) | t9 = *(var_1ch);
| if (s6 == 0) {
0x0011464c beqz s6, 0x1146b4 | goto label_13;
| }
0x00114650 move a0, fp | a0 = fp;
0x00114654 jalr t9 | t9 ();
0x00114658 lw gp, 0x10(sp) | gp = *(var_10h);
0x0011465c sw zero, 0x3c(fp) | *(arg_3ch) = 0;
0x00114660 b 0x1145c8 | goto label_1;
| if (s4 == 0) {
| label_12:
0x00114664 beql s4, zero, 0x1145cc | goto label_2;
| }
0x00114668 lw v0, (s1) | v0 = *(s1);
0x0011466c lw v0, (s4) | v0 = *(s4);
0x00114670 lw t9, 0x30(sp) | t9 = *(var_30h);
| if (v0 <= 0) {
0x00114674 blez v0, 0x1145b4 | goto label_3;
| }
0x00114678 move s2, zero | s2 = 0;
0x0011467c lw a1, 8(s4) | a1 = *((s4 + 2));
| do {
0x00114680 sll v0, s2, 2 | v0 = s2 << 2;
0x00114684 lw t9, 0x1c(sp) | t9 = *(var_1ch);
0x00114688 lwx a1, v0(a1) | __asm ("lwx a1, v0(a1)");
0x0011468c move a0, fp | a0 = fp;
0x00114690 jalr t9 | t9 ();
0x00114694 lw s4, 0x40(fp) | s4 = *(arg_40h);
0x00114698 addiu s2, s2, 1 | s2++;
0x0011469c lw v0, (s4) | v0 = *(s4);
0x001146a0 slt v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
0x001146a4 lw a1, 8(s4) | a1 = *((s4 + 2));
0x001146a8 bnel v0, zero, 0x114680 |
| } while (v0 == 0);
0x001146ac lw t9, 0x30(sp) | t9 = *(var_30h);
0x001146b0 b 0x1145b4 | goto label_3;
| label_13:
0x001146b4 lw v0, 0x24(sp) | v0 = *(var_24h);
| if (s3 == 0) {
0x001146b8 beqz s3, 0x114720 | goto label_18;
| }
0x001146bc move a2, a1 | a2 = a1;
0x001146c0 addiu s2, v0, -0x5a28 | s2 = v0 + -0x5a28;
0x001146c4 move a1, s3 | a1 = s3;
0x001146c8 move t9, s2 | t9 = s2;
0x001146cc move a0, fp | a0 = fp;
0x001146d0 bal 0x10a5d8 | fcn_0010a5d8 ();
0x001146d4 lw gp, 0x10(sp) | gp = *(var_10h);
0x001146d8 sw zero, 0x3c(fp) | *(arg_3ch) = 0;
0x001146dc b 0x1145c8 | goto label_1;
| label_14:
0x001146e0 sw zero, 0x40(fp) | *(arg_40h) = 0;
| if (s5 == 0) {
0x001146e4 beqz s5, 0x114718 | goto label_19;
| }
0x001146e8 lw v0, 0x24(sp) | v0 = *(var_24h);
0x001146ec addiu s2, v0, -0x5a28 | s2 = v0 + -0x5a28;
| do {
0x001146f0 lw a2, 8(s1) | a2 = *((s1 + 2));
0x001146f4 sll v0, s6, 2 | v0 = s6 << 2;
0x001146f8 move a1, s4 | a1 = s4;
0x001146fc lwx a2, v0(a2) | __asm ("lwx a2, v0(a2)");
0x00114700 move a0, fp | a0 = fp;
0x00114704 move t9, s2 | t9 = s2;
0x00114708 addiu s6, s6, 1 | s6++;
0x0011470c bal 0x10a5d8 | fcn_0010a5d8 ();
0x00114710 lw gp, 0x10(sp) | gp = *(var_10h);
0x00114714 bne s6, s5, 0x1146f0 |
| } while (s6 != s5);
| label_19:
0x00114718 move s3, s4 | s3 = s4;
0x0011471c b 0x1145c8 | goto label_1;
| label_18:
0x00114720 lw v0, 8(s1) | v0 = *((s1 + 2));
0x00114724 sll a0, s5, 2 | a0 = s5 << 2;
0x00114728 addu v0, v0, a0 | v0 += a0;
0x0011472c addiu s5, s5, 1 | s5++;
0x00114730 sw a1, (v0) | *(v0) = a1;
0x00114734 sw zero, 0x3c(fp) | *(arg_3ch) = 0;
0x00114738 b 0x1145c8 | goto label_1;
| label_9:
0x0011473c lw t9, -0x7470(gp) | t9 = *(gp);
0x00114740 move a1, s1 | a1 = s1;
0x00114744 lw v0, (v0) | v0 = *(v0);
0x00114748 move a0, fp | a0 = fp;
0x0011474c addiu t9, t9, 0x77b4 | t9 += 0x77b4;
0x00114750 sw v0, 0x3c(fp) | *(arg_3ch) = v0;
0x00114754 bal 0x1077b4 | fcn_001077b4 ();
0x00114758 lw gp, 0x10(sp) | gp = *(var_10h);
0x0011475c sw zero, 0x40(fp) | *(arg_40h) = 0;
| label_8:
0x00114760 lw t9, -0x73ac(gp) | t9 = *(gp);
0x00114764 move a0, fp | a0 = fp;
0x00114768 addiu t9, t9, 0x2170 | t9 += 0x2170;
0x0011476c move a1, s7 | a1 = s7;
0x00114770 bal 0x112170 | fcn_00112170 ();
0x00114774 lw a0, 0x3c(fp) | a0 = *(arg_3ch);
0x00114778 lw gp, 0x10(sp) | gp = *(var_10h);
0x0011477c move s0, v0 | s0 = v0;
| if (a0 == 0) {
0x00114780 beqz a0, 0x1147ec | goto label_20;
| }
0x00114784 lw v0, 0x40(fp) | v0 = *(arg_40h);
0x00114788 lw t9, -0x7f34(gp) | t9 = *(gp);
| if (v0 == 0) {
0x0011478c beqz v0, 0x114614 | goto label_4;
| }
0x00114790 jalr t9 | t9 ();
0x00114794 nop |
0x00114798 lw gp, 0x10(sp) | gp = *(var_10h);
0x0011479c lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x001147a0 lw s1, (v0) | s1 = *(v0);
0x001147a4 jalr t9 | t9 ();
0x001147a8 lw gp, 0x10(sp) | gp = *(var_10h);
0x001147ac lw a0, (v0) | a0 = *(v0);
0x001147b0 addiu a3, zero, 0x299c | a3 = 0x299c;
0x001147b4 lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x001147b8 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x001147bc addiu a2, a2, 0x800 | a2 += 0x800;
0x001147c0 move t9, s1 | t9 = s1;
0x001147c4 addiu a1, a1, 0x12a4 | a1 += 0x12a4;
0x001147c8 jalr t9 | t9 ();
0x001147cc lw gp, 0x10(sp) | gp = *(var_10h);
0x001147d0 lw a1, 0x3c(fp) | a1 = *(arg_3ch);
0x001147d4 lw t9, -0x73ac(gp) | t9 = *(gp);
0x001147d8 addiu t9, t9, -0x5b5c | t9 += -0x5b5c;
0x001147dc move a0, fp | a0 = fp;
0x001147e0 bal 0x10a4a4 | fcn_0010a4a4 ();
0x001147e4 lw gp, 0x10(sp) | gp = *(var_10h);
0x001147e8 sw zero, 0x3c(fp) | *(arg_3ch) = 0;
| label_20:
0x001147ec lw a1, 0x40(fp) | a1 = *(arg_40h);
0x001147f0 addiu v0, zero, 1 | v0 = 1;
| if (a1 == 0) {
0x001147f4 beqz a1, 0x114614 | goto label_4;
| }
0x001147f8 lw a0, (a1) | a0 = *(a1);
0x001147fc lw ra, 0x5c(sp) | ra = *(var_5ch);
| if (a0 != v0) {
0x00114800 bne a0, v0, 0x114618 | goto label_5;
| }
0x00114804 lw v0, 8(a1) | v0 = *((a1 + 2));
0x00114808 lw t9, -0x7470(gp) | t9 = *(gp);
0x0011480c move a0, fp | a0 = fp;
0x00114810 lw v0, (v0) | v0 = *(v0);
0x00114814 addiu t9, t9, 0x77b4 | t9 += 0x77b4;
0x00114818 sw v0, 0x3c(fp) | *(arg_3ch) = v0;
0x0011481c bal 0x1077b4 | fcn_001077b4 ();
0x00114820 sw zero, 0x40(fp) | *(arg_40h) = 0;
0x00114824 b 0x114614 | goto label_4;
| label_16:
0x00114828 slti v0, s5, 2 | v0 = (s5 < 2) ? 1 : 0;
| if (v0 == 0) {
0x0011482c beql v0, zero, 0x114904 | goto label_21;
| }
0x00114830 sw s5, (s1) | *(s1) = s5;
0x00114834 addiu v0, zero, 1 | v0 = 1;
0x00114838 lw t9, -0x7470(gp) | t9 = *(gp);
| if (s5 != v0) {
0x0011483c bne s5, v0, 0x114914 | goto label_22;
| }
0x00114840 lw v0, 8(s1) | v0 = *((s1 + 2));
0x00114844 move a1, s1 | a1 = s1;
0x00114848 lw v0, (v0) | v0 = *(v0);
0x0011484c move a0, fp | a0 = fp;
0x00114850 addiu t9, t9, 0x77b4 | t9 += 0x77b4;
0x00114854 sw v0, 0x3c(fp) | *(arg_3ch) = v0;
0x00114858 bal 0x1077b4 | fcn_001077b4 ();
0x0011485c lw v0, 0x3c(fp) | v0 = *(arg_3ch);
0x00114860 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00114864 beqz v0, 0x114610 | goto label_6;
| }
0x00114868 lw v0, 0x40(fp) | v0 = *(arg_40h);
| if (v0 == 0) {
0x0011486c beql v0, zero, 0x114614 | goto label_4;
| }
0x00114870 move s0, zero | s0 = 0;
0x00114874 lw t9, -0x7f34(gp) | t9 = *(gp);
| label_17:
0x00114878 move s0, zero | s0 = 0;
0x0011487c jalr t9 | t9 ();
0x00114880 lw gp, 0x10(sp) | gp = *(var_10h);
0x00114884 lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x00114888 lw s1, (v0) | s1 = *(v0);
0x0011488c jalr t9 | t9 ();
0x00114890 lw gp, 0x10(sp) | gp = *(var_10h);
0x00114894 lw a0, (v0) | a0 = *(v0);
0x00114898 addiu a3, zero, 0x29f7 | a3 = 0x29f7;
0x0011489c lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x001148a0 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x001148a4 addiu a2, a2, 0x800 | a2 += 0x800;
0x001148a8 move t9, s1 | t9 = s1;
0x001148ac addiu a1, a1, 0x12a4 | a1 += 0x12a4;
0x001148b0 jalr t9 | t9 ();
0x001148b4 lw gp, 0x10(sp) | gp = *(var_10h);
0x001148b8 lw a1, 0x3c(fp) | a1 = *(arg_3ch);
0x001148bc lw t9, -0x73ac(gp) | t9 = *(gp);
0x001148c0 addiu t9, t9, -0x5b5c | t9 += -0x5b5c;
0x001148c4 move a0, fp | a0 = fp;
0x001148c8 bal 0x10a4a4 | fcn_0010a4a4 ();
0x001148cc lw ra, 0x5c(sp) | ra = *(var_5ch);
0x001148d0 sw zero, 0x3c(fp) | *(arg_3ch) = 0;
0x001148d4 move v0, s0 | v0 = s0;
0x001148d8 lw fp, 0x58(sp) | fp = *(var_58h);
0x001148dc lw s7, 0x54(sp) | s7 = *(var_54h);
0x001148e0 lw s6, 0x50(sp) | s6 = *(var_50h);
0x001148e4 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x001148e8 lw s4, 0x48(sp) | s4 = *(var_48h);
0x001148ec lw s3, 0x44(sp) | s3 = *(var_44h);
0x001148f0 lw s2, 0x40(sp) | s2 = *(var_40h);
0x001148f4 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x001148f8 lw s0, 0x38(sp) | s0 = *(var_38h);
0x001148fc addiu sp, sp, 0x60 |
0x00114900 jr ra | return v0;
| label_21:
0x00114904 sw s1, 0x40(fp) | *(arg_40h) = s1;
0x00114908 b 0x114604 | goto label_7;
| label_10:
0x0011490c lw v0, 0x34(sp) | v0 = *(var_34h);
0x00114910 sw v0, 0x1c(fp) | *(arg_1ch) = v0;
| label_22:
0x00114914 lw s0, -0x7470(gp) | s0 = *(gp);
0x00114918 move a1, s1 | a1 = s1;
0x0011491c addiu s0, s0, 0x77b4 | s0 += 0x77b4;
0x00114920 move t9, s0 | t9 = s0;
0x00114924 move a0, fp | a0 = fp;
0x00114928 bal 0x1077b4 | fcn_001077b4 ();
0x0011492c lw a1, 0x40(fp) | a1 = *(arg_40h);
0x00114930 move t9, s0 | t9 = s0;
| if (a1 != 0) {
0x00114934 beqz a1, 0x114944 |
0x00114938 move a0, fp | a0 = fp;
0x0011493c bal 0x1077b4 | fcn_001077b4 ();
0x00114940 sw zero, 0x40(fp) | *(arg_40h) = 0;
| }
0x00114944 addiu s0, zero, -1 | s0 = -1;
0x00114948 b 0x114614 | goto label_4;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x7fdb4 */
| #include <stdint.h>
|
; (fcn) sym.htmlAttrAllowed () | void htmlAttrAllowed () {
0x0007fdb4 lui gp, 0x11 |
0x0007fdb8 addiu gp, gp, 0x18bc |
0x0007fdbc addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x0007fdc0 beqz a0, 0x7ff34 | goto label_1;
| }
0x0007fdc4 nop |
| if (a1 == 0) {
0x0007fdc8 beqz a1, 0x7ff34 | goto label_1;
| }
0x0007fdcc nop |
0x0007fdd0 addiu sp, sp, -0x30 |
0x0007fdd4 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0007fdd8 lw s0, 0x20(a0) | s0 = *((a0 + 8));
0x0007fddc sw gp, 0x10(sp) | *(var_10h) = gp;
0x0007fde0 sw s4, 0x28(sp) | *(var_28h) = s4;
0x0007fde4 sw s3, 0x24(sp) | *(var_24h) = s3;
0x0007fde8 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x0007fdec sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0007fdf0 sw s2, 0x20(sp) | *(var_20h) = s2;
0x0007fdf4 move s4, a2 | s4 = a2;
0x0007fdf8 move s1, a1 | s1 = a1;
0x0007fdfc move s3, a0 | s3 = a0;
| if (s0 == 0) {
0x0007fe00 beqz s0, 0x7fe60 | goto label_2;
| }
0x0007fe04 lw a0, (s0) | a0 = *(s0);
0x0007fe08 lw s2, -0x7a4c(gp) | s2 = *((gp - 7827));
| if (a0 == 0) {
0x0007fe0c beqz a0, 0x7fe60 | goto label_2;
| }
0x0007fe10 move t9, s2 | t9 = s2;
0x0007fe14 b 0x7fe28 |
| while (v0 != 0) {
0x0007fe18 lw a0, (s0) | a0 = *(s0);
| if (a0 == 0) {
0x0007fe1c beql a0, zero, 0x7fe64 | goto label_3;
| }
0x0007fe20 lw s0, 0x18(s3) | s0 = *((s3 + 6));
0x0007fe24 move t9, s2 | t9 = s2;
0x0007fe28 move a1, s1 | a1 = s1;
0x0007fe2c jalr t9 | t9 ();
0x0007fe30 addiu s0, s0, 4 | s0 += 4;
0x0007fe34 lw gp, 0x10(sp) | gp = *(var_10h);
0x0007fe38 bnez v0, 0x7fe18 |
| }
0x0007fe3c addiu v0, zero, 0xc | v0 = 0xc;
| label_0:
0x0007fe40 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0007fe44 lw s4, 0x28(sp) | s4 = *(var_28h);
0x0007fe48 lw s3, 0x24(sp) | s3 = *(var_24h);
0x0007fe4c lw s2, 0x20(sp) | s2 = *(var_20h);
0x0007fe50 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0007fe54 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0007fe58 addiu sp, sp, 0x30 |
0x0007fe5c jr ra | return v0;
| label_2:
0x0007fe60 lw s0, 0x18(s3) | s0 = *((s3 + 6));
| if (s0 == 0) {
| label_3:
0x0007fe64 beqz s0, 0x7fec4 | goto label_4;
| }
0x0007fe68 nop |
0x0007fe6c lw a0, (s0) | a0 = *(s0);
0x0007fe70 lw s2, -0x7a4c(gp) | s2 = *((gp - 7827));
| if (a0 == 0) {
0x0007fe74 beqz a0, 0x7fec4 | goto label_4;
| }
0x0007fe78 move t9, s2 | t9 = s2;
0x0007fe7c b 0x7fe8c |
| while (v0 != 0) {
0x0007fe80 lw a0, (s0) | a0 = *(s0);
0x0007fe84 move t9, s2 | t9 = s2;
| if (a0 == 0) {
0x0007fe88 beqz a0, 0x7fec4 | goto label_4;
| }
0x0007fe8c move a1, s1 | a1 = s1;
0x0007fe90 jalr t9 | t9 ();
0x0007fe94 addiu s0, s0, 4 | s0 += 4;
0x0007fe98 lw gp, 0x10(sp) | gp = *(var_10h);
0x0007fe9c bnez v0, 0x7fe80 |
| }
0x0007fea0 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0007fea4 lw s4, 0x28(sp) | s4 = *(var_28h);
0x0007fea8 lw s3, 0x24(sp) | s3 = *(var_24h);
0x0007feac lw s2, 0x20(sp) | s2 = *(var_20h);
0x0007feb0 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0007feb4 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0007feb8 addiu v0, zero, 4 | v0 = 4;
0x0007febc addiu sp, sp, 0x30 |
0x0007fec0 jr ra | return v0;
| label_4:
0x0007fec4 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (s4 == 0) {
0x0007fec8 beqz s4, 0x7ff14 | goto label_5;
| }
0x0007fecc lw s0, 0x1c(s3) | s0 = *((s3 + 7));
| if (s0 == 0) {
0x0007fed0 beql s0, zero, 0x7ff18 | goto label_6;
| }
0x0007fed4 lw s4, 0x28(sp) | s4 = *(var_28h);
0x0007fed8 lw a0, (s0) | a0 = *(s0);
0x0007fedc lw s2, -0x7a4c(gp) | s2 = *((gp - 7827));
| if (a0 == 0) {
0x0007fee0 beqz a0, 0x7ff14 | goto label_5;
| }
0x0007fee4 move t9, s2 | t9 = s2;
0x0007fee8 b 0x7fefc |
| while (v0 != 0) {
0x0007feec lw a0, (s0) | a0 = *(s0);
0x0007fef0 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (a0 == 0) {
0x0007fef4 beqz a0, 0x7ff14 | goto label_5;
| }
0x0007fef8 move t9, s2 | t9 = s2;
0x0007fefc move a1, s1 | a1 = s1;
0x0007ff00 jalr t9 | t9 ();
0x0007ff04 addiu s0, s0, 4 | s0 += 4;
0x0007ff08 bnez v0, 0x7feec |
| }
0x0007ff0c addiu v0, zero, 2 | v0 = 2;
0x0007ff10 b 0x7fe40 | goto label_0;
| label_5:
0x0007ff14 lw s4, 0x28(sp) | s4 = *(var_28h);
| label_6:
0x0007ff18 lw s3, 0x24(sp) | s3 = *(var_24h);
0x0007ff1c lw s2, 0x20(sp) | s2 = *(var_20h);
0x0007ff20 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0007ff24 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0007ff28 addiu v0, zero, 1 | v0 = 1;
0x0007ff2c addiu sp, sp, 0x30 |
0x0007ff30 jr ra | return v0;
| label_1:
0x0007ff34 addiu v0, zero, 1 | v0 = 1;
0x0007ff38 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x80234 */
| #include <stdint.h>
|
; (fcn) sym.htmlCtxtUseOptions () | void htmlCtxtUseOptions () {
0x00080234 lui gp, 0x11 |
0x00080238 addiu gp, gp, 0x143c |
0x0008023c addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00080240 beqz a0, 0x803ac | goto label_1;
| }
0x00080244 nop |
0x00080248 andi v0, a1, 0x40 | v0 = a1 & 0x40;
0x0008024c andi v0, a1, 0x20 | v0 = a1 & 0x20;
| if (v0 != 0) {
0x00080250 beqz v0, 0x80274 |
0x00080254 lw v0, 0x168(a0) | v0 = *(a0);
0x00080258 lw v1, (a0) | v1 = *(a0);
0x0008025c ori v0, v0, 0x40 | v0 |= 0x40;
0x00080260 addiu a1, a1, -0x40 | a1 += -0x40;
0x00080264 sw zero, 0x54(v1) | *((v1 + 21)) = 0;
0x00080268 sw zero, 0x74(a0) | *((a0 + 29)) = 0;
0x0008026c sw v0, 0x168(a0) | *(a0) = v0;
0x00080270 andi v0, a1, 0x20 | v0 = a1 & 0x20;
| }
0x00080274 andi v0, a1, 0x80 | v0 = a1 & 0x80;
| if (v0 != 0) {
0x00080278 beqz v0, 0x802a0 |
0x0008027c lw v0, 0x168(a0) | v0 = *(a0);
0x00080280 lw v1, (a0) | v1 = *(a0);
0x00080284 ori v0, v0, 0x20 | v0 |= 0x20;
0x00080288 addiu a1, a1, -0x20 | a1 += -0x20;
0x0008028c sw zero, 0x58(v1) | *((v1 + 22)) = 0;
0x00080290 sw zero, 0x70(a0) | *((a0 + 28)) = 0;
0x00080294 sw zero, 0x5c(v1) | *((v1 + 23)) = 0;
0x00080298 sw v0, 0x168(a0) | *(a0) = v0;
0x0008029c andi v0, a1, 0x80 | v0 = a1 & 0x80;
| }
0x000802a0 lw v0, 0x168(a0) | v0 = *(a0);
| if (v0 == 0) {
0x000802a4 bnel v0, zero, 0x80380 | goto label_2;
| }
0x000802a8 andi v0, a1, 0x100 | v0 = a1 & aav.0x00000100;
0x000802ac sw zero, 0x10c(a0) | *(a0) = 0;
| if (v0 == 0) {
0x000802b0 beqz v0, 0x8039c | goto label_3;
| }
| do {
0x000802b4 lw v1, 0x168(a0) | v1 = *(a0);
0x000802b8 lw a2, (a0) | a2 = *(a0);
0x000802bc addiu v0, a1, -0x100 | v0 = a1 + -aav.0x00000100;
0x000802c0 lw a1, -0x7ea8(gp) | a1 = *((gp - 8106));
0x000802c4 ori v1, v1, 0x100 | v1 |= aav.0x00000100;
0x000802c8 sw zero, 0xd0(a0) | *((a0 + 52)) = 0;
0x000802cc sw a1, 0x48(a2) | *((a2 + 18)) = a1;
0x000802d0 sw v1, 0x168(a0) | *(a0) = v1;
| label_0:
0x000802d4 andi v1, v0, 1 | v1 = v0 & 1;
0x000802d8 addiu v0, v0, -1 | v0 += -1;
| if (v1 != 0) {
0x000802dc bnel v1, zero, 0x802e0 |
| }
0x000802e0 lui a1, 1 | a1 = 0x10000;
0x000802e4 and a2, v0, a1 | a2 = v0 & a1;
0x000802e8 sw v1, 0x120(a0) | *(a0) = v1;
| if (a2 != 0) {
0x000802ec beqz a2, 0x80300 |
0x000802f0 lw v1, 0x168(a0) | v1 = *(a0);
0x000802f4 subu v0, v0, a1 | __asm ("subu v0, v0, a1");
0x000802f8 or a1, v1, a1 | a1 = v1 | a1;
0x000802fc sw a1, 0x168(a0) | *(a0) = a1;
| }
0x00080300 lui v1, 8 | v1 = 0x80000;
0x00080304 and a1, v0, v1 | a1 = v0 & v1;
| if (a1 != 0) {
0x00080308 beql a1, zero, 0x80324 |
0x0008030c andi v1, v0, 4 | v1 = v0 & 4;
0x00080310 lw a1, 0x168(a0) | a1 = *(a0);
0x00080314 subu v0, v0, v1 | __asm ("subu v0, v0, v1");
0x00080318 or v1, a1, v1 | v1 = a1 | v1;
0x0008031c sw v1, 0x168(a0) | *(a0) = v1;
0x00080320 andi v1, v0, 4 | v1 = v0 & 4;
| }
0x00080324 lui v1, 0x20 | v1 = 0x200000;
| if (v1 != 0) {
0x00080328 beqz v1, 0x80340 |
0x0008032c lw v1, 0x168(a0) | v1 = *(a0);
0x00080330 addiu v0, v0, -4 | v0 += -4;
0x00080334 ori v1, v1, 4 | v1 |= 4;
0x00080338 sw v1, 0x168(a0) | *(a0) = v1;
0x0008033c lui v1, 0x20 | v1 = 0x200000;
| }
0x00080340 and a1, v0, v1 | a1 = v0 & v1;
| if (a1 != 0) {
0x00080344 beql a1, zero, 0x80360 |
0x00080348 andi v1, v0, 0x2000 | v1 = v0 & 0x2000;
0x0008034c lw a1, 0x168(a0) | a1 = *(a0);
0x00080350 subu v0, v0, v1 | __asm ("subu v0, v0, v1");
0x00080354 or v1, a1, v1 | v1 = a1 | v1;
0x00080358 sw v1, 0x168(a0) | *(a0) = v1;
0x0008035c andi v1, v0, 0x2000 | v1 = v0 & 0x2000;
| }
| if (v1 != 0) {
0x00080360 beqz v1, 0x80378 |
0x00080364 nop |
0x00080368 lw v1, 0x168(a0) | v1 = *(a0);
0x0008036c addiu v0, v0, -0x2000 | v0 += -0x2000;
0x00080370 ori v1, v1, 0x2000 | v1 |= 0x2000;
0x00080374 sw v1, 0x168(a0) | *(a0) = v1;
| }
0x00080378 sw zero, 0x16c(a0) | *(a0) = 0;
0x0008037c jr ra | return v0;
| label_2:
0x00080380 addiu a1, a1, -0x80 | a1 += -0x80;
0x00080384 ori v0, v0, 0x80 | v0 |= 0x80;
0x00080388 addiu v1, zero, 1 | v1 = 1;
0x0008038c sw v0, 0x168(a0) | *(a0) = v0;
0x00080390 andi v0, a1, 0x100 | v0 = a1 & aav.0x00000100;
0x00080394 sw v1, 0x10c(a0) | *(a0) = v1;
0x00080398 bnez v0, 0x802b4 |
| } while (v0 != 0);
| label_3:
0x0008039c addiu v0, zero, 1 | v0 = 1;
0x000803a0 sw v0, 0xd0(a0) | *((a0 + 52)) = v0;
0x000803a4 move v0, a1 | v0 = a1;
0x000803a8 b 0x802d4 | goto label_0;
| label_1:
0x000803ac addiu v0, zero, -1 | v0 = -1;
0x000803b0 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x7fd38 */
| #include <stdint.h>
|
; (fcn) sym.htmlElementStatusHere () | void htmlElementStatusHere () {
0x0007fd38 lui gp, 0x11 |
0x0007fd3c addiu gp, gp, 0x1938 |
0x0007fd40 addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x0007fd44 beqz a0, 0x7fdac |
0x0007fd48 nop |
0x0007fd4c lw t9, -0x7978(gp) | t9 = *(gp);
| if (a1 == 0) {
0x0007fd50 beqz a1, 0x7fdac | goto label_0;
| }
0x0007fd54 addiu sp, sp, -0x20 |
0x0007fd58 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0007fd5c move s0, a1 | s0 = a1;
0x0007fd60 lw a1, (a1) | a1 = *(a1);
0x0007fd64 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0007fd68 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x0007fd6c bal 0x7fc88 | sym_htmlElementAllowedHere ();
0x0007fd70 nop |
0x0007fd74 lw ra, 0x1c(sp) | ra = *(var_1ch);
| if (v0 != 0) {
0x0007fd78 beqz v0, 0x7fd9c |
0x0007fd7c lb v0, 9(s0) | v0 = *((s0 + 9));
0x0007fd80 addiu a0, zero, 4 | a0 = 4;
0x0007fd84 addiu v1, zero, 2 | v1 = 2;
| if (v0 != 0) {
0x0007fd88 movz v1, a0, v0 | v1 = a0;
| }
0x0007fd8c lw s0, 0x18(sp) | s0 = *(var_18h);
0x0007fd90 move v0, v1 | v0 = v1;
0x0007fd94 addiu sp, sp, 0x20 |
0x0007fd98 jr ra | return v0;
| }
0x0007fd9c lw s0, 0x18(sp) | s0 = *(var_18h);
0x0007fda0 addiu v0, zero, 1 | v0 = 1;
0x0007fda4 addiu sp, sp, 0x20 |
0x0007fda8 jr ra | return v0;
| }
| label_0:
0x0007fdac addiu v0, zero, 1 | v0 = 1;
0x0007fdb0 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x7a0e0 */
| #include <stdint.h>
|
; (fcn) sym.htmlEncodeEntities () | void htmlEncodeEntities () {
0x0007a0e0 lui gp, 0x11 |
0x0007a0e4 addiu gp, gp, 0x7590 |
0x0007a0e8 addu gp, gp, t9 | gp += t9;
0x0007a0ec addiu sp, sp, -0x78 |
0x0007a0f0 sw s4, 0x60(sp) | *(var_60h) = s4;
0x0007a0f4 lw s4, -0x7000(gp) | s4 = *((gp - 7168));
0x0007a0f8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0007a0fc sw ra, 0x74(sp) | *(var_74h) = ra;
0x0007a100 lw v0, (s4) | v0 = *(s4);
0x0007a104 sw fp, 0x70(sp) | *(var_70h) = fp;
0x0007a108 sw s7, 0x6c(sp) | *(var_6ch) = s7;
0x0007a10c sw s6, 0x68(sp) | *(var_68h) = s6;
0x0007a110 sw s5, 0x64(sp) | *(var_64h) = s5;
0x0007a114 sw s3, 0x5c(sp) | *(var_5ch) = s3;
0x0007a118 sw s2, 0x58(sp) | *(var_58h) = s2;
0x0007a11c sw s1, 0x54(sp) | *(var_54h) = s1;
0x0007a120 sw s0, 0x50(sp) | *(var_50h) = s0;
0x0007a124 sw v0, 0x4c(sp) | *(var_4ch) = v0;
| if (a0 == 0) {
0x0007a128 beql a0, zero, 0x7a388 | goto label_5;
| }
0x0007a12c addiu v0, zero, -1 | v0 = -1;
0x0007a130 move s1, a1 | s1 = a1;
| if (a1 == 0) {
0x0007a134 beqz a1, 0x7a454 | goto label_7;
| }
0x0007a138 move fp, a3 | fp = a3;
| if (a3 == 0) {
0x0007a13c beqz a3, 0x7a454 | goto label_7;
| }
0x0007a140 move s6, a2 | s6 = a2;
| if (a2 == 0) {
0x0007a144 beqz a2, 0x7a454 | goto label_7;
| }
0x0007a148 lw t0, (a3) | t0 = *(a3);
0x0007a14c lw v1, (a1) | v1 = *(a1);
0x0007a150 addu t0, a2, t0 | t0 = a2 + t0;
0x0007a154 addu v1, a0, v1 | v1 = a0 + v1;
0x0007a158 sltu v0, a2, t0 | v0 = (a2 < t0) ? 1 : 0;
0x0007a15c move s7, a0 | s7 = a0;
0x0007a160 sw v1, 0x24(sp) | *(var_24h_2) = v1;
| if (v0 == 0) {
0x0007a164 beqz v0, 0x7a448 | goto label_8;
| }
0x0007a168 lw v0, -0x7e04(gp) | v0 = *((gp - 8065));
0x0007a16c lw s3, -0x7e04(gp) | s3 = *((gp - 8065));
0x0007a170 lw s2, -0x7f94(gp) | s2 = *((gp - 8165));
0x0007a174 sw v0, 0x28(sp) | *(var_28h) = v0;
0x0007a178 addiu v0, s3, 0x562c | v0 = s3 + 0x562c;
0x0007a17c move s5, a2 | s5 = a2;
0x0007a180 move t1, a0 | t1 = a0;
0x0007a184 addiu s2, s2, -0x3c04 | s2 += -0x3c04;
0x0007a188 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0007a18c lbu v0, (s5) | v0 = *(s5);
| label_0:
0x0007a190 sltiu v1, v0, 0x80 | v1 = (v0 < 0x80) ? 1 : 0;
0x0007a194 addiu s0, s5, 1 | s0 = s5 + 1;
| if (v1 != 0) {
0x0007a198 bnez v1, 0x7a310 | goto label_9;
| }
0x0007a19c sltiu v1, v0, 0xc0 | v1 = (v0 < 0xc0) ? 1 : 0;
0x0007a1a0 sltiu v1, v0, 0xe0 | v1 = (v0 < 0xe0) ? 1 : 0;
| if (v1 != 0) {
0x0007a1a4 bnez v1, 0x7a430 | goto label_10;
| }
0x0007a1a8 subu s0, t0, s0 | __asm ("subu s0, t0, s0");
| if (v1 == 0) {
0x0007a1ac bnel v1, zero, 0x7a364 | goto label_11;
| }
0x0007a1b0 sltiu v1, v0, 0xf0 | v1 = (v0 < 0xf0) ? 1 : 0;
0x0007a1b4 sltiu v1, v0, 0xf8 | v1 = (v0 < 0xf8) ? 1 : 0;
| if (v1 == 0) {
0x0007a1b8 beqz v1, 0x7a3fc | goto label_12;
| }
0x0007a1bc subu v1, t0, s0 | __asm ("subu v1, t0, s0");
0x0007a1c0 slti v1, v1, 2 | v1 = (v1 < 2) ? 1 : 0;
0x0007a1c4 andi v0, v0, 0xf | v0 &= 0xf;
| if (v1 != 0) {
0x0007a1c8 bnez v1, 0x7a418 | goto label_13;
| }
0x0007a1cc addiu a1, zero, 1 | a1 = 1;
| label_3:
0x0007a1d0 lbu v1, 1(s5) | v1 = *((s5 + 1));
0x0007a1d4 addiu a0, zero, 0x80 | a0 = 0x80;
0x0007a1d8 andi a2, v1, 0xc0 | a2 = v1 & 0xc0;
0x0007a1dc addiu s0, s5, 2 | s0 = s5 + 2;
| if (a2 != a0) {
0x0007a1e0 bne a2, a0, 0x7a374 | goto label_14;
| }
0x0007a1e4 addiu a1, a1, 2 | a1 += 2;
0x0007a1e8 addu a1, s5, a1 | a1 = s5 + a1;
0x0007a1ec addiu a3, zero, -0x40 | a3 = -0x40;
0x0007a1f0 addiu a2, zero, 0x80 | a2 = 0x80;
0x0007a1f4 b 0x7a20c |
| while (a1 != s0) {
0x0007a1f8 addiu s0, s0, 1 | s0++;
0x0007a1fc lbu v1, -1(s0) | v1 = *((s0 - 1));
0x0007a200 and a0, v1, a3 | a0 = v1 & a3;
0x0007a204 subu s7, t1, s7 | __asm ("subu s7, t1, s7");
| if (a0 == a2) {
0x0007a208 bnel a0, a2, 0x7a378 | goto label_15;
| }
0x0007a20c sll v0, v0, 6 | v0 <<= 6;
0x0007a210 andi v1, v1, 0x3f | v1 &= 0x3f;
0x0007a214 or v0, v1, v0 | v0 = v1 | v0;
0x0007a218 bne a1, s0, 0x7a1f8 |
| }
0x0007a21c sltiu v1, v0, 0x80 | v1 = (v0 < 0x80) ? 1 : 0;
0x0007a220 lw v1, 0x88(sp) | v1 = *(arg_88h);
| if (v1 == 0) {
0x0007a224 bnel v1, zero, 0x7a31c | goto label_16;
| }
0x0007a228 lw v1, 0x28(sp) | v1 = *(var_28h);
| label_1:
0x0007a22c addiu a1, zero, 0x22 | a1 = 0x22;
0x0007a230 addiu a0, v1, 0x5638 | a0 = v1 + 0x5638;
0x0007a234 addiu a3, zero, 0xfd | a3 = 0xfd;
0x0007a238 move v1, zero | v1 = 0;
0x0007a23c b 0x7a250 |
| while (a2 == 0) {
0x0007a240 lw t9, -0x7108(gp) | t9 = *(gp);
| if (v1 == a3) {
0x0007a244 beq v1, a3, 0x7a3c4 | goto label_17;
| }
0x0007a248 lw a1, (a0) | a1 = *(a0);
0x0007a24c addiu a0, a0, 0xc | a0 += 0xc;
0x0007a250 sltu a2, a1, v0 | a2 = (a1 < v0) ? 1 : 0;
0x0007a254 addiu v1, v1, 1 | v1++;
0x0007a258 bnel a2, zero, 0x7a240 |
| }
0x0007a25c sltu a1, v0, a1 | a1 = (v0 < a1) ? 1 : 0;
0x0007a260 lw t9, -0x7108(gp) | t9 = *(gp);
| if (a1 != 0) {
0x0007a264 bnez a1, 0x7a3c4 | goto label_17;
| }
0x0007a268 sll v0, v1, 1 | v0 = v1 << 1;
0x0007a26c addu v0, v0, v1 | v0 += v1;
0x0007a270 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x0007a274 sll v0, v0, 2 | v0 <<= 2;
0x0007a278 addu v0, v1, v0 | v0 = v1 + v0;
0x0007a27c lw s3, 4(v0) | s3 = *((v0 + 1));
| label_4:
0x0007a280 lw t9, -0x6fc0(gp) | t9 = *(gp);
0x0007a284 sw t1, 0x30(sp) | *(var_30h) = t1;
0x0007a288 sw t0, 0x34(sp) | *(var_34h) = t0;
0x0007a28c move a0, s3 | a0 = s3;
0x0007a290 jalr t9 | t9 ();
0x0007a294 lw t1, 0x30(sp) | t1 = *(var_30h);
0x0007a298 move a3, v0 | a3 = v0;
0x0007a29c lw v1, 0x24(sp) | v1 = *(var_24h_2);
0x0007a2a0 addiu v0, v0, 2 | v0 += 2;
0x0007a2a4 addu v0, t1, v0 | v0 = t1 + v0;
0x0007a2a8 sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x0007a2ac lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0007a2b0 bnez v0, 0x7a418 | goto label_13;
| }
0x0007a2b4 addiu v1, t1, 1 | v1 = t1 + 1;
0x0007a2b8 lw t9, -0x6fbc(gp) | t9 = *(gp);
0x0007a2bc addiu v0, zero, 0x26 | v0 = 0x26;
0x0007a2c0 sb v0, (t1) | *(t1) = v0;
0x0007a2c4 move a2, a3 | a2 = a3;
0x0007a2c8 sw a3, 0x30(sp) | *(var_30h) = a3;
0x0007a2cc move a0, v1 | a0 = v1;
0x0007a2d0 move a1, s3 | a1 = s3;
0x0007a2d4 jalr t9 | t9 ();
0x0007a2d8 lw a3, 0x30(sp) | a3 = *(var_30h);
0x0007a2dc lw t0, 0x34(sp) | t0 = *(var_34h);
0x0007a2e0 addu v1, v0, a3 | v1 = v0 + a3;
0x0007a2e4 addiu v0, zero, 0x3b | v0 = 0x3b;
0x0007a2e8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0007a2ec addiu t1, v1, 1 | t1 = v1 + 1;
0x0007a2f0 sb v0, (v1) | *(v1) = v0;
0x0007a2f4 move s5, s0 | s5 = s0;
| label_2:
0x0007a2f8 sltu v0, s0, t0 | v0 = (s0 < t0) ? 1 : 0;
0x0007a2fc lbu v0, (s5) | v0 = *(s5);
| if (v0 == 0) {
0x0007a300 bnel v0, zero, 0x7a190 | goto label_0;
| }
0x0007a304 subu s7, t1, s7 | __asm ("subu s7, t1, s7");
0x0007a308 subu s5, s0, s6 | __asm ("subu s5, s0, s6");
0x0007a30c b 0x7a420 | goto label_6;
| label_9:
0x0007a310 subu v1, t0, s0 | __asm ("subu v1, t0, s0");
0x0007a314 lw v1, 0x88(sp) | v1 = *(arg_88h);
| if (v1 < 0) {
0x0007a318 bltz v1, 0x7a418 | goto label_13;
| }
| label_16:
0x0007a31c lw v1, 0x28(sp) | v1 = *(var_28h);
| if (v1 == v0) {
0x0007a320 beq v1, v0, 0x7a22c | goto label_1;
| }
0x0007a324 addiu v1, zero, 0x26 | v1 = 0x26;
0x0007a328 lw v1, 0x28(sp) | v1 = *(var_28h);
| if (v0 == v1) {
0x0007a32c beq v0, v1, 0x7a22c | goto label_1;
| }
0x0007a330 addiu v1, zero, -3 | v1 = -3;
0x0007a334 and v1, v0, v1 | v1 = v0 & v1;
0x0007a338 addiu a0, zero, 0x3c | a0 = 0x3c;
0x0007a33c lw v1, 0x28(sp) | v1 = *(var_28h);
| if (v1 == a0) {
0x0007a340 beq v1, a0, 0x7a22c | goto label_1;
| }
0x0007a344 lw v1, 0x24(sp) | v1 = *(var_24h_2);
0x0007a348 sltu v1, t1, v1 | v1 = (t1 < v1) ? 1 : 0;
| if (v1 == 0) {
0x0007a34c beql v1, zero, 0x7a41c | goto label_18;
| }
0x0007a350 subu s7, t1, s7 | __asm ("subu s7, t1, s7");
0x0007a354 sb v0, (t1) | *(t1) = v0;
0x0007a358 move s5, s0 | s5 = s0;
0x0007a35c addiu t1, t1, 1 | t1++;
0x0007a360 b 0x7a2f8 | goto label_2;
| label_11:
0x0007a364 andi v0, v0, 0x1f | v0 &= 0x1f;
| if (s0 <= 0) {
0x0007a368 blez s0, 0x7a418 | goto label_13;
| }
0x0007a36c move a1, zero | a1 = 0;
0x0007a370 b 0x7a1d0 | goto label_3;
| label_14:
0x0007a374 subu s7, t1, s7 | __asm ("subu s7, t1, s7");
| label_15:
0x0007a378 subu s5, s5, s6 | __asm ("subu s5, s5, s6");
0x0007a37c sw s7, (s1) | *(s1) = s7;
0x0007a380 addiu v0, zero, -2 | v0 = -2;
0x0007a384 sw s5, (fp) | *(fp) = s5;
| do {
| label_5:
0x0007a388 lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x0007a38c lw v1, (s4) | v1 = *(s4);
0x0007a390 lw ra, 0x74(sp) | ra = *(var_74h);
| if (a0 != v1) {
0x0007a394 bne a0, v1, 0x7a45c | goto label_19;
| }
0x0007a398 lw fp, 0x70(sp) | fp = *(var_70h);
0x0007a39c lw s7, 0x6c(sp) | s7 = *(var_6ch);
0x0007a3a0 lw s6, 0x68(sp) | s6 = *(var_68h);
0x0007a3a4 lw s5, 0x64(sp) | s5 = *(var_64h);
0x0007a3a8 lw s4, 0x60(sp) | s4 = *(var_60h);
0x0007a3ac lw s3, 0x5c(sp) | s3 = *(var_5ch);
0x0007a3b0 lw s2, 0x58(sp) | s2 = *(var_58h);
0x0007a3b4 lw s1, 0x54(sp) | s1 = *(var_54h);
0x0007a3b8 lw s0, 0x50(sp) | s0 = *(var_50h);
0x0007a3bc addiu sp, sp, 0x78 |
0x0007a3c0 jr ra | return v0;
| label_17:
0x0007a3c4 sw t0, 0x34(sp) | *(var_34h) = t0;
0x0007a3c8 sw t1, 0x30(sp) | *(var_30h) = t1;
0x0007a3cc addiu a0, sp, 0x3c | a0 = sp + 0x3c;
0x0007a3d0 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0007a3d4 sw s2, 0x10(sp) | *(var_10h_2) = s2;
0x0007a3d8 addiu a3, zero, 0x10 | a3 = 0x10;
0x0007a3dc addiu a2, zero, 1 | a2 = 1;
0x0007a3e0 addiu a1, zero, 0x10 | a1 = 0x10;
0x0007a3e4 move s3, a0 | s3 = a0;
0x0007a3e8 jalr t9 | t9 ();
0x0007a3ec lw gp, 0x18(sp) | gp = *(var_18h);
0x0007a3f0 lw t0, 0x34(sp) | t0 = *(var_34h);
0x0007a3f4 lw t1, 0x30(sp) | t1 = *(var_30h);
0x0007a3f8 b 0x7a280 | goto label_4;
| label_12:
0x0007a3fc subu v1, t0, s0 | __asm ("subu v1, t0, s0");
| if (v1 == 0) {
0x0007a400 beqz v1, 0x7a430 | goto label_10;
| }
0x0007a404 slti v1, v1, 3 | v1 = (v1 < 3) ? 1 : 0;
0x0007a408 andi v0, v0, 7 | v0 &= 7;
| if (v1 == 0) {
0x0007a40c bnez v1, 0x7a418 |
0x0007a410 addiu a1, zero, 2 | a1 = 2;
0x0007a414 b 0x7a1d0 | goto label_3;
| }
| label_13:
0x0007a418 subu s7, t1, s7 | __asm ("subu s7, t1, s7");
| label_18:
0x0007a41c subu s5, s5, s6 | __asm ("subu s5, s5, s6");
| label_6:
0x0007a420 sw s7, (s1) | *(s1) = s7;
0x0007a424 move v0, zero | v0 = 0;
0x0007a428 sw s5, (fp) | *(fp) = s5;
0x0007a42c b 0x7a388 |
| } while (1);
| label_10:
0x0007a430 subu t1, t1, s7 | __asm ("subu t1, t1, s7");
0x0007a434 subu s5, s5, s6 | __asm ("subu s5, s5, s6");
0x0007a438 sw t1, (s1) | *(s1) = t1;
0x0007a43c addiu v0, zero, -2 | v0 = -2;
0x0007a440 sw s5, (fp) | *(fp) = s5;
0x0007a444 b 0x7a388 | goto label_5;
| label_8:
0x0007a448 move s5, zero | s5 = 0;
0x0007a44c move s7, zero | s7 = 0;
0x0007a450 b 0x7a420 | goto label_6;
| label_7:
0x0007a454 addiu v0, zero, -1 | v0 = -1;
0x0007a458 b 0x7a388 | goto label_5;
| label_19:
0x0007a45c lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x0007a460 jalr t9 | t9 ();
0x0007a464 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x7dcac */
| #include <stdint.h>
|
; (fcn) sym.htmlParseChunk () | void htmlParseChunk () {
0x0007dcac lui gp, 0x11 |
0x0007dcb0 addiu gp, gp, 0x39c4 |
0x0007dcb4 addu gp, gp, t9 | gp += t9;
0x0007dcb8 addiu sp, sp, -0x88 |
0x0007dcbc sw s4, 0x70(sp) | *(var_70h) = s4;
0x0007dcc0 lw s4, -0x7000(gp) | s4 = *((gp - 7168));
0x0007dcc4 sw gp, 0x20(sp) | *(var_20h) = gp;
0x0007dcc8 sw s6, 0x78(sp) | *(var_78h) = s6;
0x0007dccc lw v0, (s4) | v0 = *(s4);
0x0007dcd0 sw ra, 0x84(sp) | *(var_84h) = ra;
0x0007dcd4 sw fp, 0x80(sp) | *(var_80h) = fp;
0x0007dcd8 sw s7, 0x7c(sp) | *(var_7ch) = s7;
0x0007dcdc sw s5, 0x74(sp) | *(var_74h) = s5;
0x0007dce0 sw s3, 0x6c(sp) | *(var_6ch) = s3;
0x0007dce4 sw s2, 0x68(sp) | *(var_68h) = s2;
0x0007dce8 sw s1, 0x64(sp) | *(var_64h) = s1;
0x0007dcec sw s0, 0x60(sp) | *(var_60h) = s0;
0x0007dcf0 move s6, a0 | s6 = a0;
0x0007dcf4 sw v0, 0x5c(sp) | *(var_5ch) = v0;
| if (a0 == 0) {
0x0007dcf8 beql a0, zero, 0x7e5b4 | goto label_16;
| }
0x0007dcfc lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0007dd00 lw s7, 0x24(a0) | s7 = *((a0 + 9));
| if (s7 == 0) {
0x0007dd04 beql s7, zero, 0x7e5b4 | goto label_16;
| }
0x0007dd08 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0007dd0c move s0, a2 | s0 = a2;
0x0007dd10 move s2, a3 | s2 = a3;
0x0007dd14 lw v0, 0xac(a0) | v0 = *((a0 + 43));
| if (a2 <= 0) {
0x0007dd18 blez a2, 0x7de18 | goto label_17;
| }
0x0007dd1c move s1, a1 | s1 = a1;
| if (a1 == 0) {
0x0007dd20 beqz a1, 0x7de18 | goto label_17;
| }
0x0007dd24 lw a0, (s7) | a0 = *(s7);
0x0007dd28 addiu s3, zero, -1 | s3 = -1;
| if (a0 == 0) {
0x0007dd2c beqz a0, 0x7de18 | goto label_17;
| }
0x0007dd30 lw t9, -0x6f30(gp) | t9 = *(gp);
| if (v0 != s3) {
0x0007dd34 bne v0, s3, 0x7e6b4 | goto label_18;
| }
| label_2:
0x0007dd38 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
| do {
0x0007dd3c lw s3, -0x7f94(gp) | s3 = *((gp - 8165));
| label_0:
0x0007dd40 sw v0, 0x28(sp) | *(var_28h_2) = v0;
| label_1:
0x0007dd44 lw s1, -0x7a48(gp) | s1 = *(gp);
0x0007dd48 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x0007dd4c lw s5, -0x7a48(gp) | s5 = *(gp);
0x0007dd50 move s0, zero | s0 = 0;
0x0007dd54 addiu s3, s3, 0x8f0 | s3 += 0x8f0;
0x0007dd58 addiu s1, s1, 0x4770 | s1 += 0x4770;
0x0007dd5c sw v0, 0x2c(sp) | *(var_2ch_2) = v0;
0x0007dd60 addiu s5, s5, 0x6348 | s5 += 0x6348;
| if (s7 == 0) {
| label_12:
0x0007dd64 beqz s7, 0x7e020 | goto label_19;
| }
0x0007dd68 nop |
| label_6:
0x0007dd6c lw v0, (s7) | v0 = *(s7);
0x0007dd70 lw t9, -0x7f4c(gp) | t9 = *((gp - 8147));
| if (v0 == 0) {
0x0007dd74 beqz v0, 0x7deb0 | goto label_20;
| }
0x0007dd78 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x0007dd7c jalr t9 | t9 ();
0x0007dd80 lw a0, 0x10(s7) | a0 = *((s7 + 4));
0x0007dd84 lw a1, 0xc(s7) | a1 = *((s7 + 3));
0x0007dd88 subu s0, a0, a1 | __asm ("subu s0, a0, a1");
0x0007dd8c subu s0, v0, s0 | __asm ("subu s0, v0, s0");
0x0007dd90 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s0 != 0) {
0x0007dd94 bnez s0, 0x7decc | goto label_21;
| }
| label_3:
0x0007dd98 lw s0, -0x7a48(gp) | s0 = *(gp);
| if (s2 == 0) {
0x0007dd9c bnel s2, zero, 0x7df04 | goto label_22;
| }
0x0007dda0 lw v0, 0x168(s6) | v0 = *(s6);
| label_7:
0x0007dda4 andi v0, v0, 4 | v0 &= 4;
0x0007dda8 lw v0, 0x54(s6) | v0 = *((s6 + 21));
| if (v0 != 0) {
0x0007ddac bnel v0, zero, 0x7dddc |
0x0007ddb0 lw a0, 8(s6) | a0 = *((s6 + 2));
| if (a0 == 0) {
| label_11:
0x0007ddb4 beqz a0, 0x7df98 | goto label_10;
| }
0x0007ddb8 nop |
0x0007ddbc addiu a1, zero, -1 | a1 = -1;
| if (s2 != 0) {
0x0007ddc0 bnez s2, 0x7df54 | goto label_23;
| }
0x0007ddc4 lw v0, 0xac(s6) | v0 = *((s6 + 43));
0x0007ddc8 addiu a1, zero, 0xe | a1 = 0xe;
| if (v0 == a1) {
0x0007ddcc beq v0, a1, 0x7ea48 | goto label_24;
| }
0x0007ddd0 lw t9, -0x79a8(gp) | t9 = *((gp - 7786));
| if (v0 == a1) {
0x0007ddd4 beq v0, a1, 0x7ea4c | goto label_25;
| }
| label_5:
0x0007ddd8 lw v0, 0x54(s6) | v0 = *((s6 + 21));
| }
| label_4:
0x0007dddc lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x0007dde0 lw v1, (s4) | v1 = *(s4);
0x0007dde4 lw ra, 0x84(sp) | ra = *(var_84h);
| if (a0 != v1) {
0x0007dde8 bne a0, v1, 0x7f3b0 | goto label_26;
| }
0x0007ddec lw fp, 0x80(sp) | fp = *(var_80h);
0x0007ddf0 lw s7, 0x7c(sp) | s7 = *(var_7ch);
0x0007ddf4 lw s6, 0x78(sp) | s6 = *(var_78h);
0x0007ddf8 lw s5, 0x74(sp) | s5 = *(var_74h);
0x0007ddfc lw s4, 0x70(sp) | s4 = *(var_70h);
0x0007de00 lw s3, 0x6c(sp) | s3 = *(var_6ch);
0x0007de04 lw s2, 0x68(sp) | s2 = *(var_68h);
0x0007de08 lw s1, 0x64(sp) | s1 = *(var_64h);
0x0007de0c lw s0, 0x60(sp) | s0 = *(var_60h);
0x0007de10 addiu sp, sp, 0x88 |
0x0007de14 jr ra | return v0;
| label_17:
0x0007de18 addiu a0, zero, -1 | a0 = -1;
0x0007de1c lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x0007de20 beq v0, a0, 0x7dd3c |
| } while (v0 == a0);
0x0007de24 lw s0, (s7) | s0 = *(s7);
0x0007de28 lw s3, -0x7f94(gp) | s3 = *((gp - 8165));
| if (s0 == 0) {
0x0007de2c beqz s0, 0x7dd40 | goto label_0;
| }
0x0007de30 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0007de34 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
| if (v0 == 0) {
0x0007de38 beqz v0, 0x7dd40 | goto label_0;
| }
0x0007de3c lw a0, 0x10(s0) | a0 = *((s0 + 4));
| if (a0 == 0) {
0x0007de40 beql a0, zero, 0x7dd44 | goto label_1;
| }
0x0007de44 sw v0, 0x28(sp) | *(var_28h_2) = v0;
0x0007de48 lw v0, 0x14(s0) | v0 = *((s0 + 5));
0x0007de4c lw t9, -0x6f30(gp) | t9 = *(gp);
| if (v0 == 0) {
0x0007de50 beqz v0, 0x7dd38 | goto label_2;
| }
0x0007de54 move a1, s7 | a1 = s7;
0x0007de58 jalr t9 | t9 ();
0x0007de5c lw a0, 0x24(s6) | a0 = *((s6 + 9));
0x0007de60 lw gp, 0x20(sp) | gp = *(var_20h);
0x0007de64 move a1, s2 | a1 = s2;
0x0007de68 lw a3, 0x10(a0) | a3 = *((a0 + 4));
0x0007de6c lw t9, -0x6fec(gp) | t9 = *((gp - 7163));
0x0007de70 lw s1, 0xc(a0) | s1 = *((a0 + 3));
0x0007de74 move a0, s0 | a0 = s0;
0x0007de78 move s3, v0 | s3 = v0;
0x0007de7c subu s1, a3, s1 | __asm ("subu s1, a3, s1");
0x0007de80 jalr t9 | t9 ();
0x0007de84 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x0007de88 bltz v0, 0x7edc0 | goto label_27;
| }
0x0007de8c lw t9, -0x6e14(gp) | t9 = *((gp - 7045));
0x0007de90 lw a1, 0x24(s6) | a1 = *((s6 + 9));
0x0007de94 lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x0007de98 move a3, s1 | a3 = s1;
0x0007de9c move a2, s3 | a2 = s3;
0x0007dea0 jalr t9 | t9 ();
0x0007dea4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0007dea8 lw s7, 0x24(s6) | s7 = *((s6 + 9));
0x0007deac b 0x7dd38 | goto label_2;
| label_20:
0x0007deb0 lw a0, 0x10(s7) | a0 = *((s7 + 4));
0x0007deb4 lw a1, 0xc(s7) | a1 = *((s7 + 3));
0x0007deb8 lw s0, 0x18(s7) | s0 = *((s7 + 6));
0x0007debc subu v0, a0, a1 | __asm ("subu v0, a0, a1");
0x0007dec0 subu s0, s0, v0 | __asm ("subu s0, s0, v0");
| if (s0 == 0) {
0x0007dec4 beqz s0, 0x7dd98 | goto label_3;
| }
0x0007dec8 nop |
| if (s0 <= 0) {
| label_21:
0x0007decc blezl s0, 0x7e118 | goto label_28;
| }
0x0007ded0 lw v0, 0x168(s6) | v0 = *(s6);
0x0007ded4 lbu a2, (a0) | a2 = *(a0);
| if (a2 == 0) {
0x0007ded8 beql a2, zero, 0x7dff8 | goto label_29;
| }
0x0007dedc lw s7, 0x24(s6) | s7 = *((s6 + 9));
0x0007dee0 lw v0, 0xac(s6) | v0 = *((s6 + 43));
0x0007dee4 addiu v0, v0, 1 | v0++;
0x0007dee8 sltiu a3, v0, 0x12 | a3 = (v0 < 0x12) ? 1 : 0;
0x0007deec sll v0, v0, 2 | v0 <<= 2;
| if (a3 == 0) {
0x0007def0 beqz a3, 0x7e338 | goto label_30;
| }
0x0007def4 lwx v0, v0(s3) | __asm ("lwx v0, v0(s3)");
0x0007def8 addu v0, v0, gp | v0 += gp;
0x0007defc jr v0 | v0 ();
0x0007df00 nop |
| label_22:
0x0007df04 addiu s0, s0, 0x4610 | s0 += 0x4610;
0x0007df08 move t9, s0 | t9 = s0;
0x0007df0c move a0, s6 | a0 = s6;
0x0007df10 bal 0x74610 | fcn_00074610 ();
0x0007df14 lw v0, 0xbc(s6) | v0 = *((s6 + 47));
| if (v0 == 0) {
0x0007df18 beql v0, zero, 0x7e03c | goto label_31;
| }
0x0007df1c lw a0, 0xac(s6) | a0 = *((s6 + 43));
| label_8:
0x0007df20 move t9, s0 | t9 = s0;
| label_9:
0x0007df24 move a0, s6 | a0 = s6;
0x0007df28 bal 0x74610 | fcn_00074610 ();
0x0007df2c lw v0, 0xbc(s6) | v0 = *((s6 + 47));
0x0007df30 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0007df34 beqz v0, 0x7ea10 | goto label_32;
| }
| label_14:
0x0007df38 lw v0, 0x168(s6) | v0 = *(s6);
| label_13:
0x0007df3c andi v0, v0, 4 | v0 &= 4;
0x0007df40 lw v0, 0xac(s6) | v0 = *((s6 + 43));
| if (v0 == 0) {
0x0007df44 bnel v0, zero, 0x7dfa4 | goto label_33;
| }
0x0007df48 lw a0, 8(s6) | a0 = *((s6 + 2));
| if (a0 == 0) {
0x0007df4c beqz a0, 0x7df98 | goto label_10;
| }
0x0007df50 nop |
| label_23:
0x0007df54 lw t9, -0x79a8(gp) | t9 = *((gp - 7786));
0x0007df58 jalr t9 | t9 ();
0x0007df5c nop |
0x0007df60 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0007df64 bnez v0, 0x7dfa0 | goto label_34;
| }
0x0007df68 lw s0, 8(s6) | s0 = *((s6 + 2));
| label_15:
0x0007df6c lw a3, -0x7f94(gp) | a3 = *((gp - 8165));
0x0007df70 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0007df74 lw a1, -0x7fb0(gp) | a1 = *((gp - 8172));
0x0007df78 lw t9, -0x7d28(gp) | t9 = *(gp);
0x0007df7c addiu a3, a3, -0x3bb8 | a3 += -0x3bb8;
0x0007df80 addiu a2, a2, -0x3be0 | a2 += -0x3be0;
0x0007df84 addiu a1, a1, 0x436c | a1 += 0x436c;
0x0007df88 move a0, s0 | a0 = s0;
0x0007df8c jalr t9 | t9 ();
0x0007df90 lw gp, 0x20(sp) | gp = *(var_20h);
0x0007df94 sw v0, 0x2c(s0) | *((s0 + 11)) = v0;
| if (s2 == 0) {
| label_10:
0x0007df98 beql s2, zero, 0x7dddc | goto label_4;
| }
0x0007df9c lw v0, 0x54(s6) | v0 = *((s6 + 21));
| label_34:
0x0007dfa0 lw v0, 0xac(s6) | v0 = *((s6 + 43));
| label_33:
0x0007dfa4 addiu a0, zero, -1 | a0 = -1;
0x0007dfa8 addiu a0, zero, 0xe | a0 = 0xe;
| if (v0 != a0) {
0x0007dfac beq v0, a0, 0x7dfec |
0x0007dfb0 addiu a0, zero, 1 | a0 = 1;
| if (v0 != a0) {
0x0007dfb4 beq v0, a0, 0x7dfc8 |
0x0007dfb8 addiu v0, zero, 5 | v0 = 5;
| if (v0 == a0) {
0x0007dfbc beq v0, a0, 0x7dfc8 | goto label_35;
| }
0x0007dfc0 sw v0, 0x54(s6) | *((s6 + 21)) = v0;
0x0007dfc4 sw zero, 0xc(s6) | *((s6 + 3)) = 0;
| }
| label_35:
0x0007dfc8 lw v0, (s6) | v0 = *(s6);
| if (v0 == 0) {
0x0007dfcc beql v0, zero, 0x7dff0 | goto label_36;
| }
0x0007dfd0 addiu v0, zero, -1 | v0 = -1;
0x0007dfd4 lw t9, 0x34(v0) | t9 = *((v0 + 13));
0x0007dfd8 addiu v0, zero, -1 | v0 = -1;
| if (t9 == 0) {
0x0007dfdc beqz t9, 0x7dff0 | goto label_36;
| }
0x0007dfe0 lw a0, 4(s6) | a0 = *((s6 + 1));
0x0007dfe4 jalr t9 | t9 ();
0x0007dfe8 lw gp, 0x20(sp) | gp = *(var_20h);
| }
0x0007dfec addiu v0, zero, -1 | v0 = -1;
| label_36:
0x0007dff0 sw v0, 0xac(s6) | *((s6 + 43)) = v0;
0x0007dff4 b 0x7ddd8 | goto label_5;
| label_29:
0x0007dff8 lw a1, 0xc8(s6) | a1 = *((s6 + 50));
0x0007dffc lw a0, 0x10(s7) | a0 = *((s7 + 4));
0x0007e000 lw v0, 0x20(s7) | v0 = *((s7 + 8));
0x0007e004 addiu a1, a1, 1 | a1++;
0x0007e008 addiu a0, a0, 1 | a0++;
0x0007e00c addiu v0, v0, 1 | v0++;
0x0007e010 sw a1, 0xc8(s6) | *((s6 + 50)) = a1;
0x0007e014 sw a0, 0x10(s7) | *((s7 + 4)) = a0;
0x0007e018 sw v0, 0x20(s7) | *((s7 + 8)) = v0;
| if (s7 != 0) {
0x0007e01c bnez s7, 0x7dd6c | goto label_6;
| }
| label_19:
0x0007e020 lw v0, 0x168(s6) | v0 = *(s6);
| if (s0 == 0) {
0x0007e024 bnel s0, zero, 0x7e118 | goto label_28;
| }
| if (s2 == 0) {
0x0007e028 beql s2, zero, 0x7dda4 | goto label_7;
| }
0x0007e02c lw v0, 0x168(s6) | v0 = *(s6);
0x0007e030 lw s0, -0x7a48(gp) | s0 = *(gp);
0x0007e034 addiu s0, s0, 0x4610 | s0 += 0x4610;
0x0007e038 b 0x7df20 | goto label_8;
| label_31:
0x0007e03c addiu v0, zero, -1 | v0 = -1;
0x0007e040 move t9, s0 | t9 = s0;
| if (a0 == v0) {
0x0007e044 beq a0, v0, 0x7df24 | goto label_9;
| }
0x0007e048 lw a0, (s6) | a0 = *(s6);
0x0007e04c sw v0, 0xac(s6) | *((s6 + 43)) = v0;
| if (a0 == 0) {
0x0007e050 beqz a0, 0x7df20 | goto label_8;
| }
0x0007e054 lw t9, 0x34(a0) | t9 = *((a0 + 13));
| if (t9 == 0) {
0x0007e058 beql t9, zero, 0x7df24 | goto label_9;
| }
0x0007e05c move t9, s0 | t9 = s0;
0x0007e060 lw a0, 4(s6) | a0 = *((s6 + 1));
0x0007e064 jalr t9 | t9 ();
0x0007e068 move t9, s0 | t9 = s0;
0x0007e06c b 0x7df24 | goto label_9;
| label_28:
0x0007e118 andi v0, v0, 4 | v0 &= 4;
| if (v0 != 0) {
0x0007e11c bnez v0, 0x7df98 | goto label_10;
| }
0x0007e120 nop |
0x0007e124 lw a0, 8(s6) | a0 = *((s6 + 2));
0x0007e128 b 0x7ddb4 | goto label_11;
| label_30:
0x0007e338 lw s7, 0x24(s6) | s7 = *((s6 + 9));
0x0007e33c b 0x7dd64 | goto label_12;
| label_16:
0x0007e5b4 lw t9, -0x7a48(gp) | t9 = *(gp);
0x0007e5b8 sw zero, 0x10(sp) | *(var_10h) = 0;
0x0007e5bc move a3, zero | a3 = 0;
0x0007e5c0 addiu a2, a2, -0x3868 | a2 += -0x3868;
0x0007e5c4 addiu a1, zero, 1 | a1 = 1;
0x0007e5c8 addiu t9, t9, 0x4770 | t9 += 0x4770;
0x0007e5cc move a0, s6 | a0 = s6;
0x0007e5d0 bal 0x74770 | fcn_00074770 ();
0x0007e5d4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0007e5d8 addiu v0, zero, 1 | v0 = 1;
0x0007e5dc b 0x7dddc | goto label_4;
| label_18:
0x0007e6b4 lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x0007e6b8 move a1, s7 | a1 = s7;
0x0007e6bc jalr t9 | t9 ();
0x0007e6c0 lw a0, 0x24(s6) | a0 = *((s6 + 9));
0x0007e6c4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0007e6c8 move a2, s1 | a2 = s1;
0x0007e6cc lw a3, 0x10(a0) | a3 = *((a0 + 4));
0x0007e6d0 lw t0, 0xc(a0) | t0 = *((a0 + 3));
0x0007e6d4 lw t9, -0x7d1c(gp) | t9 = *((gp - 8007));
0x0007e6d8 lw a0, (a0) | a0 = *(a0);
0x0007e6dc move a1, s0 | a1 = s0;
0x0007e6e0 move s1, v0 | s1 = v0;
0x0007e6e4 subu s0, a3, t0 | __asm ("subu s0, a3, t0");
0x0007e6e8 bal 0x6165c | sym_xmlParserInputBufferPush ();
0x0007e6ec lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x0007e6f0 bltz v0, 0x7f394 | goto label_37;
| }
0x0007e6f4 lw a1, 0x24(s6) | a1 = *((s6 + 9));
0x0007e6f8 lw t9, -0x6e14(gp) | t9 = *((gp - 7045));
0x0007e6fc move a3, s0 | a3 = s0;
0x0007e700 lw v0, (a1) | v0 = *(a1);
0x0007e704 move a2, s1 | a2 = s1;
0x0007e708 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x0007e70c jalr t9 | t9 ();
0x0007e710 lw gp, 0x20(sp) | gp = *(var_20h);
0x0007e714 lw s7, 0x24(s6) | s7 = *((s6 + 9));
0x0007e718 b 0x7dd38 | goto label_2;
| label_32:
0x0007ea10 lw a0, 0xac(s6) | a0 = *((s6 + 43));
0x0007ea14 addiu v0, zero, -1 | v0 = -1;
| if (a0 == v0) {
0x0007ea18 beql a0, v0, 0x7df3c | goto label_13;
| }
0x0007ea1c lw v0, 0x168(s6) | v0 = *(s6);
0x0007ea20 lw a0, (s6) | a0 = *(s6);
0x0007ea24 sw v0, 0xac(s6) | *((s6 + 43)) = v0;
| if (a0 == 0) {
0x0007ea28 beqz a0, 0x7df38 | goto label_14;
| }
0x0007ea2c lw t9, 0x34(a0) | t9 = *((a0 + 13));
| if (t9 == 0) {
0x0007ea30 beql t9, zero, 0x7df3c | goto label_13;
| }
0x0007ea34 lw v0, 0x168(s6) | v0 = *(s6);
0x0007ea38 lw a0, 4(s6) | a0 = *((s6 + 1));
0x0007ea3c jalr t9 | t9 ();
0x0007ea40 lw gp, 0x20(sp) | gp = *(var_20h);
0x0007ea44 b 0x7df38 | goto label_14;
| label_24:
0x0007ea48 lw t9, -0x79a8(gp) | t9 = *((gp - 7786));
| label_25:
0x0007ea4c jalr t9 | t9 ();
0x0007ea50 nop |
0x0007ea54 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0007ea58 bnez v0, 0x7ddd8 | goto label_5;
| }
0x0007ea5c lw s0, 8(s6) | s0 = *((s6 + 2));
0x0007ea60 b 0x7df6c | goto label_15;
| label_27:
0x0007edc0 lw a2, -0x7fd4(gp) | a2 = *(gp);
0x0007edc4 lw t9, -0x7a48(gp) | t9 = *(gp);
0x0007edc8 sw zero, 0x10(sp) | *(var_10h) = 0;
0x0007edcc move a3, zero | a3 = 0;
0x0007edd0 addiu a2, a2, 0x6834 | a2 += 0x6834;
0x0007edd4 addiu a1, zero, 0x51 | a1 = 0x51;
0x0007edd8 addiu t9, t9, 0x4770 | t9 += 0x4770;
0x0007eddc move a0, s6 | a0 = s6;
0x0007ede0 bal 0x74770 | fcn_00074770 ();
0x0007ede4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0007ede8 addiu v0, zero, 0x51 | v0 = 0x51;
0x0007edec b 0x7dddc | goto label_4;
| label_37:
0x0007f394 addiu v0, zero, 1 | v0 = 1;
0x0007f398 sw v0, 0xd4(s6) | *((s6 + 53)) = v0;
0x0007f39c sw s3, 0x54(s6) | *((s6 + 21)) = s3;
0x0007f3a0 addiu v0, zero, -1 | v0 = -1;
0x0007f3a4 b 0x7dddc | goto label_4;
| label_26:
0x0007f3b0 lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x0007f3b4 jalr t9 | t9 ();
0x0007f3b8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x7c8e8 */
| #include <stdint.h>
|
; (fcn) sym.htmlParseElement () | void htmlParseElement () {
| label_1:
0x0007c8e8 lui gp, 0x11 |
0x0007c8ec addiu gp, gp, 0x4d88 |
0x0007c8f0 addu gp, gp, t9 | gp += t9;
0x0007c8f4 lw v0, -0x7000(gp) | v0 = *((gp - 7168));
0x0007c8f8 addiu sp, sp, -0x80 |
0x0007c8fc sw v0, 0x28(sp) | *(var_28h) = v0;
0x0007c900 lw v0, (v0) | v0 = *(v0);
0x0007c904 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0007c908 sw fp, 0x78(sp) | *(var_78h) = fp;
0x0007c90c sw ra, 0x7c(sp) | *(var_7ch) = ra;
0x0007c910 sw s7, 0x74(sp) | *(var_74h) = s7;
0x0007c914 sw s6, 0x70(sp) | *(var_70h) = s6;
0x0007c918 sw s5, 0x6c(sp) | *(var_6ch) = s5;
0x0007c91c sw s4, 0x68(sp) | *(var_68h) = s4;
0x0007c920 sw s3, 0x64(sp) | *(var_64h) = s3;
0x0007c924 sw s2, 0x60(sp) | *(var_60h) = s2;
0x0007c928 sw s1, 0x5c(sp) | *(var_5ch) = s1;
0x0007c92c sw s0, 0x58(sp) | *(var_58h) = s0;
0x0007c930 move fp, a0 | fp = a0;
0x0007c934 sw v0, 0x54(sp) | *(var_54h) = v0;
0x0007c938 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
| if (a0 == 0) {
0x0007c93c beqz a0, 0x7cd90 | goto label_29;
| }
0x0007c940 lw v0, 0x24(a0) | v0 = *((a0 + 9));
0x0007c944 lw t9, -0x7a48(gp) | t9 = *(gp);
| if (v0 == 0) {
0x0007c948 beqz v0, 0x7cd94 | goto label_30;
| }
0x0007c94c lw a1, 0xac(a0) | a1 = *((a0 + 43));
0x0007c950 addiu a0, zero, -1 | a0 = -1;
| if (a1 == a0) {
0x0007c954 beql a1, a0, 0x7cd28 | goto label_6;
| }
0x0007c958 lw v0, 0x28(sp) | v0 = *(var_28h_3);
0x0007c95c lw a0, 0x44(fp) | a0 = *(arg_44h);
0x0007c960 lw t9, -0x7994(gp) | t9 = *(gp);
| if (a0 != 0) {
0x0007c964 beqz a0, 0x7c988 |
0x0007c968 lw a1, 0xc(v0) | a1 = *((v0 + 3));
0x0007c96c lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x0007c970 lw a2, 0x24(v0) | a2 = *((v0 + 9));
0x0007c974 subu a0, a0, a1 | __asm ("subu a0, a0, a1");
0x0007c978 lw a1, 0x1c(v0) | a1 = *((v0 + 7));
0x0007c97c addu v0, a0, a2 | v0 = a0 + a2;
0x0007c980 sw v0, 0x44(sp) | *(var_44h) = v0;
0x0007c984 sw a1, 0x48(sp) | *(var_48h) = a1;
| }
0x0007c988 addiu t9, t9, -0x4e7c | t9 += -aav.0x00004e7c;
0x0007c98c move a0, fp | a0 = fp;
0x0007c990 bal 0x7b184 | fcn_0007b184 ();
0x0007c994 addiu a0, zero, -1 | a0 = -1;
0x0007c998 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 == a0) {
0x0007c99c beq v0, a0, 0x7cd64 | goto label_31;
| }
0x0007c9a0 lw s2, 0xb8(fp) | s2 = *(arg_b8h);
0x0007c9a4 lw s1, -0x7e04(gp) | s1 = *((gp - 8065));
| if (s2 == 0) {
0x0007c9a8 beqz s2, 0x7cd64 | goto label_31;
| }
0x0007c9ac lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x0007c9b0 addiu s1, s1, 0x6908 | s1 += 0x6908;
0x0007c9b4 addiu a1, a1, -0x1878 | a1 += -0x1878;
0x0007c9b8 move s0, zero | s0 = 0;
0x0007c9bc lw s3, -0x7de8(gp) | s3 = *(gp);
0x0007c9c0 addiu s4, zero, 0x5c | s4 = 0x5c;
0x0007c9c4 b 0x7c9dc |
| while (v0 != 0) {
0x0007c9c8 addiu s0, s0, 1 | s0++;
0x0007c9cc lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
| if (s0 == s4) {
0x0007c9d0 beq s0, s4, 0x7d200 | goto label_32;
| }
0x0007c9d4 lw a1, (s1) | a1 = *(s1);
0x0007c9d8 addiu s1, s1, 0x24 | s1 += 0x24;
0x0007c9dc move t9, s3 | t9 = s3;
0x0007c9e0 move a0, s2 | a0 = s2;
0x0007c9e4 jalr t9 | t9 ();
0x0007c9e8 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007c9ec bnez v0, 0x7c9c8 |
| }
0x0007c9f0 sll v0, s0, 3 | v0 = s0 << 3;
0x0007c9f4 addu s0, v0, s0 | s0 = v0 + s0;
0x0007c9f8 sll v0, s0, 2 | v0 = s0 << 2;
0x0007c9fc lw s0, -0x7e04(gp) | s0 = *((gp - 8065));
0x0007ca00 addiu s0, s0, 0x68e4 | s0 += 0x68e4;
0x0007ca04 addu s0, s0, v0 | s0 += v0;
| label_23:
0x0007ca08 lw a1, 0x24(fp) | a1 = *(arg_24h);
0x0007ca0c addiu a2, zero, 0x2f | a2 = 0x2f;
0x0007ca10 lw a0, 0x10(a1) | a0 = *((a1 + 4));
0x0007ca14 lbu v0, (a0) | v0 = *(a0);
| if (v0 == a2) {
0x0007ca18 beql v0, a2, 0x7cca0 | goto label_33;
| }
0x0007ca1c lbu a2, 1(a0) | a2 = *((a0 + 1));
0x0007ca20 addiu a0, zero, 0x3e | a0 = 0x3e;
0x0007ca24 lw t9, -0x7e30(gp) | t9 = *((gp - 8076));
| if (v0 != a0) {
0x0007ca28 bne v0, a0, 0x7cdb8 | goto label_34;
| }
0x0007ca2c move a0, fp | a0 = fp;
0x0007ca30 sw t9, 0x34(sp) | *(var_34h_2) = t9;
0x0007ca34 jalr t9 | t9 ();
0x0007ca38 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (s0 != 0) {
0x0007ca3c beqz s0, 0x7ca4c |
0x0007ca40 lb v0, 7(s0) | v0 = *((s0 + 7));
0x0007ca44 lw v0, (fp) | v0 = *(fp);
| if (v0 == 0) {
0x0007ca48 bnel v0, zero, 0x7d27c | goto label_35;
| }
| }
0x0007ca4c lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x0007ca50 lw a0, 0xb8(fp) | a0 = *(arg_b8h);
0x0007ca54 sw t9, 0x2c(sp) | *(var_2ch_2) = t9;
0x0007ca58 jalr t9 | t9 ();
0x0007ca5c lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007ca60 sw v0, 0x3c(sp) | *(var_3ch_2) = v0;
0x0007ca64 lw v0, 0xbc(fp) | v0 = *(arg_bch);
0x0007ca68 lw a0, 0x24(fp) | a0 = *(arg_24h);
0x0007ca6c sw v0, 0x30(sp) | *(var_30h_2) = v0;
0x0007ca70 lw v0, -0x7994(gp) | v0 = *(gp);
0x0007ca74 lw s4, -0x7994(gp) | s4 = *(gp);
0x0007ca78 addiu v0, v0, -0x4370 | v0 += -0x4370;
0x0007ca7c sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x0007ca80 lw v0, -0x7994(gp) | v0 = *(gp);
0x0007ca84 lw s5, 0x10(a0) | s5 = *((a0 + 4));
0x0007ca88 addiu v0, v0, -0x77a4 | v0 += -0x77a4;
0x0007ca8c addiu s4, s4, -0x6d4c | s4 += -aav.0x00006d4c;
0x0007ca90 sw v0, 0x38(sp) | *(var_38h_2) = v0;
0x0007ca94 b 0x7cb10 | goto label_36;
| label_12:
0x0007ca98 lw v0, 0xbc(fp) | v0 = *(arg_bch);
| label_0:
0x0007ca9c slt v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
| if (v0 > 0) {
0x0007caa0 blez v0, 0x7caac |
0x0007caa4 lw t9, -0x7f90(gp) | t9 = *((gp - 8164));
| if (v0 == 0) {
0x0007caa8 beqz v0, 0x7cf38 | goto label_37;
| }
| }
| label_14:
0x0007caac lw v0, 0x24(fp) | v0 = *(arg_24h);
0x0007cab0 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x0007cab4 lbu v0, (v0) | v0 = *(v0);
0x0007cab8 lw s7, -0x7f90(gp) | s7 = *((gp - 8164));
| if (v0 != 0) {
0x0007cabc bnez v0, 0x7cbcc | goto label_38;
| }
| label_7:
0x0007cac0 lw t9, -0x7a48(gp) | t9 = *(gp);
0x0007cac4 addiu t9, t9, 0x4610 | t9 += 0x4610;
0x0007cac8 move a0, fp | a0 = fp;
0x0007cacc bal 0x74610 | fcn_00074610 ();
0x0007cad0 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (s1 == 0) {
| do {
| label_9:
0x0007cad4 beql s1, zero, 0x7ceac | goto label_18;
| }
0x0007cad8 lw a0, 0x24(fp) | a0 = *(arg_24h);
| label_10:
0x0007cadc lw v0, -0x7158(gp) | v0 = *(gp);
| label_17:
0x0007cae0 lw t9, (v0) | t9 = *(v0);
0x0007cae4 move a0, s1 | a0 = s1;
0x0007cae8 jalr t9 | t9 ();
0x0007caec lw a0, 0x24(fp) | a0 = *(arg_24h);
0x0007caf0 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007caf4 lw v0, 0x10(a0) | v0 = *((a0 + 4));
| label_11:
0x0007caf8 lw v1, 0x30(sp) | v1 = *(var_30h_2);
| if (v0 == s5) {
0x0007cafc beq v0, s5, 0x7d114 | goto label_39;
| }
0x0007cb00 lw a1, 0xbc(fp) | a1 = *(arg_bch);
0x0007cb04 slt a1, a1, v1 | a1 = (a1 < v1) ? 1 : 0;
0x0007cb08 move s5, v0 | s5 = v0;
| if (a1 != 0) {
0x0007cb0c bnez a1, 0x7d114 | goto label_39;
| }
| label_36:
0x0007cb10 lbu v0, (s5) | v0 = *(s5);
0x0007cb14 addiu a1, v0, -9 | a1 = v0 + -9;
0x0007cb18 sltiu a1, a1, 2 | a1 = (a1 < 2) ? 1 : 0;
0x0007cb1c addiu a1, zero, 0xd | a1 = 0xd;
| if (a1 == 0) {
0x0007cb20 bnez a1, 0x7cb34 |
0x0007cb24 sltiu v0, v0, 0x20 | v0 = (v0 < 0x20) ? 1 : 0;
| if (v0 == a1) {
0x0007cb28 beq v0, a1, 0x7cb34 | goto label_40;
| }
0x0007cb2c lw v0, 0x3c(sp) | v0 = *(var_3ch_2);
| if (v0 != 0) {
0x0007cb30 bnez v0, 0x7d118 | goto label_41;
| }
| }
| label_40:
0x0007cb34 lw t9, 0x2c(sp) | t9 = *(var_2ch_2);
0x0007cb38 lw s3, -0x7f94(gp) | s3 = *((gp - 8165));
0x0007cb3c lw a0, 0xb8(fp) | a0 = *(arg_b8h);
0x0007cb40 jalr t9 | t9 ();
0x0007cb44 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007cb48 move s1, v0 | s1 = v0;
0x0007cb4c lw s2, 0xbc(fp) | s2 = *(arg_bch);
0x0007cb50 lw v0, 0x124(fp) | v0 = *(arg_124h);
0x0007cb54 lw s6, -0x7f94(gp) | s6 = *((gp - 8165));
| label_2:
0x0007cb58 lw s0, 0xc8(fp) | s0 = *(arg_c8h);
| if (v0 == 0) {
0x0007cb5c beqz v0, 0x7cf18 | goto label_42;
| }
| label_4:
0x0007cb60 lw a0, 0xac(fp) | a0 = *(arg_ach);
| label_3:
0x0007cb64 addiu v0, zero, -1 | v0 = -1;
0x0007cb68 addiu a1, zero, 0x3c | a1 = 0x3c;
0x0007cb6c beq a0, v0, 0x7cad4 |
| } while (a0 == v0);
0x0007cb70 lw a0, 0x24(fp) | a0 = *(arg_24h);
0x0007cb74 lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x0007cb78 lbu a2, (v0) | a2 = *(v0);
0x0007cb7c lw v0, 0xbc(fp) | v0 = *(arg_bch);
| if (a2 == a1) {
0x0007cb80 bnel a2, a1, 0x7ca9c | goto label_0;
| }
0x0007cb84 lbu a1, 1(v0) | a1 = *((v0 + 1));
0x0007cb88 addiu v0, zero, 0x2f | v0 = 0x2f;
0x0007cb8c andi v0, a1, 0xdf | v0 = a1 & 0xdf;
| if (a1 == v0) {
0x0007cb90 beq a1, v0, 0x7cfd4 | goto label_43;
| }
0x0007cb94 addiu v0, v0, -0x41 | v0 += -0x41;
0x0007cb98 sltiu v0, v0, 0x1a | v0 = (v0 < 0x1a) ? 1 : 0;
0x0007cb9c addiu v0, zero, 0x5f | v0 = 0x5f;
| if (v0 != 0) {
0x0007cba0 bnez v0, 0x7ceb4 | goto label_44;
| }
0x0007cba4 addiu v0, zero, 0x3a | v0 = 0x3a;
| if (a1 == v0) {
0x0007cba8 beq a1, v0, 0x7ceb4 | goto label_44;
| }
0x0007cbac lw t9, -0x7a48(gp) | t9 = *(gp);
| if (a1 == v0) {
0x0007cbb0 beq a1, v0, 0x7ceb8 | goto label_45;
| }
0x0007cbb4 lw v0, 0xbc(fp) | v0 = *(arg_bch);
0x0007cbb8 slt v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
| if (v0 > 0) {
0x0007cbbc blez v0, 0x7cbc8 |
0x0007cbc0 lw t9, -0x7f90(gp) | t9 = *((gp - 8164));
| if (v0 == 0) {
0x0007cbc4 beqz v0, 0x7cf38 | goto label_37;
| }
| }
0x0007cbc8 lw s7, -0x7f90(gp) | s7 = *((gp - 8164));
| label_38:
0x0007cbcc addiu a1, s3, -0x3eb4 | a1 = s3 + -0x3eb4;
0x0007cbd0 move t9, s7 | t9 = s7;
0x0007cbd4 move a0, s1 | a0 = s1;
0x0007cbd8 jalr t9 | t9 ();
0x0007cbdc lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 != 0) {
0x0007cbe0 bnez v0, 0x7cf20 | goto label_46;
| }
0x0007cbe4 addiu a1, s6, 0x1ac | a1 = s6 + aav.0x000001ac;
0x0007cbe8 move t9, s7 | t9 = s7;
0x0007cbec move a0, s1 | a0 = s1;
0x0007cbf0 jalr t9 | t9 ();
0x0007cbf4 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 != 0) {
0x0007cbf8 bnez v0, 0x7cf20 | goto label_46;
| }
0x0007cbfc lw v0, 0x24(fp) | v0 = *(arg_24h);
0x0007cc00 addiu a1, zero, 0x3c | a1 = 0x3c;
0x0007cc04 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x0007cc08 lbu v0, (a0) | v0 = *(a0);
0x0007cc0c addiu a1, zero, 0x21 | a1 = 0x21;
| if (v0 != a1) {
0x0007cc10 bne v0, a1, 0x7ce48 | goto label_20;
| }
0x0007cc14 lbu v0, 1(a0) | v0 = *((a0 + 1));
0x0007cc18 lw t9, -0x6f14(gp) | t9 = *((gp - 7109));
| if (v0 == a1) {
0x0007cc1c beq v0, a1, 0x7cf78 | goto label_47;
| }
0x0007cc20 addiu a0, zero, 0x3f | a0 = 0x3f;
| label_21:
0x0007cc24 lw t9, 0x38(sp) | t9 = *(var_38h_2);
| if (v0 == a0) {
0x0007cc28 beq v0, a0, 0x7d008 | goto label_48;
| }
0x0007cc2c lw t9, -0x7990(gp) | t9 = *((gp - 7780));
| label_16:
0x0007cc30 move a0, fp | a0 = fp;
0x0007cc34 bal 0x7c8e8 | sym_htmlParseElement ();
| goto label_1;
0x0007cc38 lw gp, 0x18(sp) | gp = *(var_18h_3);
| label_15:
0x0007cc3c lw v0, 0xc8(fp) | v0 = *(arg_c8h);
| if (s0 == v0) {
0x0007cc40 beql s0, v0, 0x7ce78 | goto label_49;
| }
0x0007cc44 lw v0, 0x34(fp) | v0 = *(arg_34h);
| label_8:
0x0007cc48 lw v0, 0x124(fp) | v0 = *(arg_124h);
| if (v0 != 0) {
0x0007cc4c bnez v0, 0x7cb58 | goto label_2;
| }
0x0007cc50 nop |
0x0007cc54 lw a0, 0x24(fp) | a0 = *(arg_24h);
0x0007cc58 lw v0, 0x14(a0) | v0 = *((a0 + 5));
0x0007cc5c lw a1, 0x10(a0) | a1 = *((a0 + 4));
0x0007cc60 subu v0, v0, a1 | __asm ("subu v0, v0, a1");
0x0007cc64 slti v0, v0, 0xfa | v0 = (v0 < 0xfa) ? 1 : 0;
0x0007cc68 lw t9, -0x7ef8(gp) | t9 = *((gp - 8126));
| if (v0 != 0) {
0x0007cc6c bnez v0, 0x7cf54 | goto label_50;
| }
0x0007cc70 lw s0, 0xc8(fp) | s0 = *(arg_c8h);
| label_13:
0x0007cc74 lw v0, 0x14(a0) | v0 = *((a0 + 5));
0x0007cc78 lw a1, 0x10(a0) | a1 = *((a0 + 4));
0x0007cc7c subu v0, v0, a1 | __asm ("subu v0, v0, a1");
0x0007cc80 slti v0, v0, 0xfa | v0 = (v0 < 0xfa) ? 1 : 0;
| if (v0 == 0) {
0x0007cc84 beql v0, zero, 0x7cb64 | goto label_3;
| }
0x0007cc88 lw a0, 0xac(fp) | a0 = *(arg_ach);
0x0007cc8c lw t9, -0x7ef8(gp) | t9 = *((gp - 8126));
0x0007cc90 addiu a1, zero, 0xfa | a1 = 0xfa;
0x0007cc94 jalr t9 | t9 ();
0x0007cc98 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007cc9c b 0x7cb60 | goto label_4;
| label_33:
0x0007cca0 addiu v0, zero, 0x3e | v0 = 0x3e;
0x0007cca4 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
| if (a2 != v0) {
0x0007cca8 bne a2, v0, 0x7cdbc | goto label_51;
| }
0x0007ccac lw a2, 0xc8(fp) | a2 = *(arg_c8h);
0x0007ccb0 lw v0, 0x20(a1) | v0 = *((a1 + 8));
0x0007ccb4 lw a3, (fp) | a3 = *(fp);
0x0007ccb8 addiu a2, a2, 2 | a2 += 2;
0x0007ccbc addiu a0, a0, 2 | a0 += 2;
0x0007ccc0 addiu v0, v0, 2 | v0 += 2;
0x0007ccc4 sw a2, 0xc8(fp) | *(arg_c8h) = a2;
0x0007ccc8 sw a0, 0x10(a1) | *((a1 + 4)) = a0;
0x0007cccc sw v0, 0x20(a1) | *((a1 + 8)) = v0;
| if (a3 != 0) {
0x0007ccd0 beqz a3, 0x7ccf0 |
0x0007ccd4 lw t9, 0x3c(a3) | t9 = *((a3 + 15));
| if (t9 == 0) {
0x0007ccd8 beql t9, zero, 0x7ccf4 | goto label_25;
| }
0x0007ccdc lw v0, 0xbc(fp) | v0 = *(arg_bch);
0x0007cce0 lw a0, 4(fp) | a0 = *(arg_4h);
| label_26:
0x0007cce4 move a1, s2 | a1 = s2;
0x0007cce8 jalr t9 | t9 ();
0x0007ccec lw gp, 0x18(sp) | gp = *(var_18h_3);
| }
0x0007ccf0 lw v0, 0xbc(fp) | v0 = *(arg_bch);
| label_25:
0x0007ccf4 addiu a0, v0, -1 | a0 = v0 + -1;
| if (v0 > 0) {
0x0007ccf8 blez v0, 0x7cd24 |
0x0007ccfc sw a0, 0xbc(fp) | *(arg_bch) = a0;
0x0007cd00 lw a1, 0xc4(fp) | a1 = *(arg_c4h);
| if (a0 == 0) {
0x0007cd04 beqz a0, 0x7d310 | goto label_52;
| }
0x0007cd08 sll v0, v0, 2 | v0 <<= 2;
0x0007cd0c addiu v0, v0, -8 | v0 += -8;
0x0007cd10 lwx v0, v0(a1) | __asm ("lwx v0, v0(a1)");
| label_28:
0x0007cd14 sll a0, a0, 2 | a0 <<= 2;
0x0007cd18 addu a0, a1, a0 | a0 = a1 + a0;
0x0007cd1c sw v0, 0xb8(fp) | *(arg_b8h) = v0;
0x0007cd20 sw zero, (a0) | *(a0) = 0;
| }
| label_5:
0x0007cd24 lw v0, 0x28(sp) | v0 = *(var_28h);
| do {
| label_6:
0x0007cd28 lw v1, 0x54(sp) | v1 = *(var_54h);
0x0007cd2c lw v0, (v0) | v0 = *(v0);
0x0007cd30 lw ra, 0x7c(sp) | ra = *(var_7ch);
| if (v1 != v0) {
0x0007cd34 bne v1, v0, 0x7d318 | goto label_53;
| }
0x0007cd38 lw fp, 0x78(sp) | fp = *(var_78h_3);
0x0007cd3c lw s7, 0x74(sp) | s7 = *(var_74h_3);
0x0007cd40 lw s6, 0x70(sp) | s6 = *(var_70h_3);
0x0007cd44 lw s5, 0x6c(sp) | s5 = *(var_6ch_3);
0x0007cd48 lw s4, 0x68(sp) | s4 = *(var_68h_3);
0x0007cd4c lw s3, 0x64(sp) | s3 = *(var_64h_3);
0x0007cd50 lw s2, 0x60(sp) | s2 = *(var_60h_3);
0x0007cd54 lw s1, 0x5c(sp) | s1 = *(var_5ch_3);
0x0007cd58 lw s0, 0x58(sp) | s0 = *(var_58h_3);
0x0007cd5c addiu sp, sp, 0x80 |
0x0007cd60 jr ra | return v0;
| label_31:
0x0007cd64 lw a0, 0x24(fp) | a0 = *(arg_24h);
0x0007cd68 addiu v0, zero, 0x3e | v0 = 0x3e;
0x0007cd6c lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x0007cd70 lbu a0, (a0) | a0 = *(a0);
0x0007cd74 lw v0, 0x28(sp) | v0 = *(var_28h_3);
0x0007cd78 bne a0, v0, 0x7cd28 |
| } while (a0 != v0);
0x0007cd7c lw t9, -0x7e30(gp) | t9 = *((gp - 8076));
0x0007cd80 move a0, fp | a0 = fp;
0x0007cd84 jalr t9 | t9 ();
0x0007cd88 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007cd8c b 0x7cd24 | goto label_5;
| label_29:
0x0007cd90 lw t9, -0x7a48(gp) | t9 = *(gp);
| label_30:
0x0007cd94 sw zero, 0x10(sp) | *(var_10h) = 0;
0x0007cd98 move a3, zero | a3 = 0;
0x0007cd9c addiu a2, a2, -0x3908 | a2 += -aav.0x00003908;
0x0007cda0 addiu a1, zero, 1 | a1 = 1;
0x0007cda4 addiu t9, t9, 0x4770 | t9 += 0x4770;
0x0007cda8 move a0, fp | a0 = fp;
0x0007cdac bal 0x74770 | fcn_00074770 ();
0x0007cdb0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0007cdb4 b 0x7cd24 | goto label_5;
| label_34:
0x0007cdb8 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
| label_51:
0x0007cdbc lw t9, -0x7a48(gp) | t9 = *(gp);
0x0007cdc0 move a3, s2 | a3 = s2;
0x0007cdc4 addiu a2, a2, -0x7138 | a2 += -aav.0x00007138;
0x0007cdc8 addiu a1, zero, 0x49 | a1 = 0x49;
0x0007cdcc move a0, fp | a0 = fp;
0x0007cdd0 addiu t9, t9, 0x4770 | t9 += 0x4770;
0x0007cdd4 sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x0007cdd8 bal 0x74770 | fcn_00074770 ();
0x0007cddc lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007cde0 lw a1, 0xb8(fp) | a1 = *(arg_b8h);
0x0007cde4 lw t9, -0x7f90(gp) | t9 = *((gp - 8164));
0x0007cde8 move a0, s2 | a0 = s2;
0x0007cdec jalr t9 | t9 ();
0x0007cdf0 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 != 0) {
0x0007cdf4 bnez v0, 0x7d22c | goto label_54;
| }
| label_24:
0x0007cdf8 lw v0, 0x44(fp) | v0 = *(arg_44h);
0x0007cdfc lw v0, 0x28(sp) | v0 = *(var_28h_3);
| if (v0 == 0) {
0x0007ce00 beqz v0, 0x7cd28 | goto label_6;
| }
0x0007ce04 lw a0, 0x24(fp) | a0 = *(arg_24h);
0x0007ce08 lw a2, 0x34(fp) | a2 = *(arg_34h);
0x0007ce0c lw t9, -0x7cb4(gp) | t9 = *((gp - 7981));
0x0007ce10 lw a3, 0xc(a0) | a3 = *((a0 + 3));
0x0007ce14 lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x0007ce18 lw a1, 0x24(a0) | a1 = *((a0 + 9));
0x0007ce1c subu v0, v0, a3 | __asm ("subu v0, v0, a3");
0x0007ce20 lw a3, 0x1c(a0) | a3 = *((a0 + 7));
0x0007ce24 addu v0, v0, a1 | v0 += a1;
0x0007ce28 move a0, fp | a0 = fp;
0x0007ce2c addiu a1, sp, 0x40 | a1 = sp + 0x40;
0x0007ce30 sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x0007ce34 sw a3, 0x50(sp) | *(var_50h) = a3;
0x0007ce38 sw a2, 0x40(sp) | *(var_40h) = a2;
0x0007ce3c jalr t9 | t9 ();
0x0007ce40 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007ce44 b 0x7cd24 | goto label_5;
| label_20:
0x0007ce48 addiu a0, zero, 0x26 | a0 = 0x26;
0x0007ce4c lw t9, 0x24(sp) | t9 = *(var_24h_2);
| if (v0 == a0) {
0x0007ce50 beq v0, a0, 0x7cf68 | goto label_55;
| }
0x0007ce54 move a1, zero | a1 = 0;
| if (v0 == 0) {
0x0007ce58 beqz v0, 0x7cac0 | goto label_7;
| }
0x0007ce5c move t9, s4 | t9 = s4;
0x0007ce60 move a0, fp | a0 = fp;
0x0007ce64 bal 0x792b4 | fcn_000792b4 ();
0x0007ce68 lw v0, 0xc8(fp) | v0 = *(arg_c8h);
0x0007ce6c lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (s0 != v0) {
0x0007ce70 bne s0, v0, 0x7cc48 | goto label_8;
| }
0x0007ce74 lw v0, 0x34(fp) | v0 = *(arg_34h);
| label_49:
0x0007ce78 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
| if (v0 == 0) {
0x0007ce7c beqz v0, 0x7cad4 | goto label_9;
| }
0x0007ce80 lw t9, -0x7a48(gp) | t9 = *(gp);
0x0007ce84 sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x0007ce88 move a3, zero | a3 = 0;
0x0007ce8c addiu a2, a2, -0x720c | a2 += -0x720c;
0x0007ce90 addiu a1, zero, 1 | a1 = 1;
0x0007ce94 addiu t9, t9, 0x4770 | t9 += 0x4770;
0x0007ce98 move a0, fp | a0 = fp;
0x0007ce9c bal 0x74770 | fcn_00074770 ();
0x0007cea0 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (s1 != 0) {
0x0007cea4 bnez s1, 0x7cadc | goto label_10;
| }
0x0007cea8 lw a0, 0x24(fp) | a0 = *(arg_24h);
| label_18:
0x0007ceac lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x0007ceb0 b 0x7caf8 | goto label_11;
| label_44:
0x0007ceb4 lw t9, -0x7a48(gp) | t9 = *(gp);
| label_45:
0x0007ceb8 addiu t9, t9, 0x5a54 | t9 += 0x5a54;
0x0007cebc addiu a1, fp, 0x128 | a1 = fp + aav.0x00000128;
0x0007cec0 bal 0x75a54 | fcn_00075a54 ();
0x0007cec4 move s7, v0 | s7 = v0;
0x0007cec8 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 == 0) {
0x0007cecc beqz v0, 0x7d17c | goto label_56;
| }
0x0007ced0 lw a1, 0xb8(fp) | a1 = *(arg_b8h);
0x0007ced4 lw t9, -0x7a48(gp) | t9 = *(gp);
| if (a1 == 0) {
0x0007ced8 beqz a1, 0x7ca98 | goto label_12;
| }
0x0007cedc addiu t9, t9, 0x66cc | t9 += aav.0x000066cc;
0x0007cee0 move a0, v0 | a0 = v0;
0x0007cee4 bal 0x766cc | fcn_000766cc ();
0x0007cee8 addiu a0, zero, 1 | a0 = 1;
0x0007ceec lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 != a0) {
0x0007cef0 bne v0, a0, 0x7ca98 | goto label_12;
| }
0x0007cef4 lw t9, -0x7a48(gp) | t9 = *(gp);
0x0007cef8 move a1, s7 | a1 = s7;
0x0007cefc addiu t9, t9, 0x6824 | t9 += aav.0x00006824;
0x0007cf00 move a0, fp | a0 = fp;
0x0007cf04 bal 0x76824 | fcn_00076824 ();
0x0007cf08 lw v0, 0x124(fp) | v0 = *(arg_124h);
0x0007cf0c lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007cf10 lw s0, 0xc8(fp) | s0 = *(arg_c8h);
| if (v0 != 0) {
0x0007cf14 bnez v0, 0x7cb60 | goto label_4;
| }
| label_42:
0x0007cf18 lw a0, 0x24(fp) | a0 = *(arg_24h);
0x0007cf1c b 0x7cc74 | goto label_13;
| label_46:
0x0007cf20 lw t9, -0x7994(gp) | t9 = *(gp);
0x0007cf24 addiu t9, t9, -0x7154 | t9 += -0x7154;
0x0007cf28 move a0, fp | a0 = fp;
0x0007cf2c bal 0x78eac | fcn_00078eac ();
0x0007cf30 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007cf34 b 0x7cc48 | goto label_8;
| label_37:
0x0007cf38 lw a1, 0xb8(fp) | a1 = *(arg_b8h);
0x0007cf3c move a0, s1 | a0 = s1;
0x0007cf40 jalr t9 | t9 ();
0x0007cf44 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 != 0) {
0x0007cf48 bnez v0, 0x7caac | goto label_14;
| }
0x0007cf4c b 0x7cad4 | goto label_9;
0x0007cf50 nop |
| label_50:
0x0007cf54 addiu a1, zero, 0xfa | a1 = 0xfa;
0x0007cf58 jalr t9 | t9 ();
0x0007cf5c lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007cf60 lw v0, 0x124(fp) | v0 = *(arg_124h);
0x0007cf64 b 0x7cb58 | goto label_2;
| label_55:
0x0007cf68 move a0, fp | a0 = fp;
0x0007cf6c jalr t9 | t9 ();
0x0007cf70 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007cf74 b 0x7cc3c | goto label_15;
| label_47:
0x0007cf78 sw a0, 0x20(sp) | *(var_20h) = a0;
0x0007cf7c jalr t9 | t9 ();
0x0007cf80 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0007cf84 lw v0, (v0) | v0 = *(v0);
0x0007cf88 addiu a2, zero, 0x44 | a2 = 0x44;
0x0007cf8c lbu a1, 2(a0) | a1 = *((a0 + 2));
0x0007cf90 sll a1, a1, 2 | a1 <<= 2;
0x0007cf94 lwx a1, a1(v0) | __asm ("lwx a1, a1(v0)");
0x0007cf98 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (a1 == a2) {
0x0007cf9c beq a1, a2, 0x7d018 | goto label_57;
| }
0x0007cfa0 lbu v0, 2(a0) | v0 = *((a0 + 2));
| label_19:
0x0007cfa4 addiu a1, zero, 0x2d | a1 = 0x2d;
0x0007cfa8 lw t9, -0x7990(gp) | t9 = *((gp - 7780));
| if (v0 != a1) {
0x0007cfac bne v0, a1, 0x7cc30 | goto label_16;
| }
0x0007cfb0 lbu a0, 3(a0) | a0 = *((a0 + 3));
| if (a0 != v0) {
0x0007cfb4 bne a0, v0, 0x7cc30 | goto label_16;
| }
0x0007cfb8 nop |
0x0007cfbc lw t9, -0x7994(gp) | t9 = *(gp);
0x0007cfc0 addiu t9, t9, -0x7e84 | t9 += -0x7e84;
0x0007cfc4 move a0, fp | a0 = fp;
0x0007cfc8 bal 0x7817c | fcn_0007817c ();
0x0007cfcc lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007cfd0 b 0x7cc3c | goto label_15;
| label_43:
0x0007cfd4 lw t9, -0x7a48(gp) | t9 = *(gp);
0x0007cfd8 addiu t9, t9, 0x4e4c | t9 += 0x4e4c;
0x0007cfdc move a0, fp | a0 = fp;
0x0007cfe0 bal 0x74e4c | fcn_00074e4c ();
0x0007cfe4 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 == 0) {
0x0007cfe8 beqz v0, 0x7d000 | goto label_58;
| }
0x0007cfec lw v0, -0x7158(gp) | v0 = *(gp);
| if (s1 != 0) {
0x0007cff0 bnez s1, 0x7cae0 | goto label_17;
| }
0x0007cff4 lw v0, 0xbc(fp) | v0 = *(arg_bch);
| if (v0 == 0) {
0x0007cff8 beql v0, zero, 0x7ceac | goto label_18;
| }
0x0007cffc lw a0, 0x24(fp) | a0 = *(arg_24h);
| label_58:
0x0007d000 lw v0, 0x124(fp) | v0 = *(arg_124h);
0x0007d004 b 0x7cb58 | goto label_2;
| label_48:
0x0007d008 move a0, fp | a0 = fp;
0x0007d00c jalr t9 | t9 ();
0x0007d010 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007d014 b 0x7cc3c | goto label_15;
| label_57:
0x0007d018 lbu a1, 3(a0) | a1 = *((a0 + 3));
0x0007d01c addiu a2, zero, 0x4f | a2 = 0x4f;
0x0007d020 sll a1, a1, 2 | a1 <<= 2;
0x0007d024 lwx a1, a1(v0) | __asm ("lwx a1, a1(v0)");
0x0007d028 lbu v0, 2(a0) | v0 = *((a0 + 2));
| if (a1 == a2) {
0x0007d02c bnel a1, a2, 0x7cfa4 | goto label_19;
| }
0x0007d030 lbu a1, 4(a0) | a1 = *((a0 + 4));
0x0007d034 addiu a2, zero, 0x43 | a2 = 0x43;
0x0007d038 sll a1, a1, 2 | a1 <<= 2;
0x0007d03c lwx a1, a1(v0) | __asm ("lwx a1, a1(v0)");
0x0007d040 lbu v0, 2(a0) | v0 = *((a0 + 2));
| if (a1 == a2) {
0x0007d044 bnel a1, a2, 0x7cfa4 | goto label_19;
| }
0x0007d048 lbu a1, 5(a0) | a1 = *((a0 + 5));
0x0007d04c addiu a2, zero, 0x54 | a2 = 0x54;
0x0007d050 sll a1, a1, 2 | a1 <<= 2;
0x0007d054 lwx a1, a1(v0) | __asm ("lwx a1, a1(v0)");
0x0007d058 lbu v0, 2(a0) | v0 = *((a0 + 2));
| if (a1 == a2) {
0x0007d05c bnel a1, a2, 0x7cfa4 | goto label_19;
| }
0x0007d060 lbu a1, 6(a0) | a1 = *((a0 + 6));
0x0007d064 addiu a2, zero, 0x59 | a2 = 0x59;
0x0007d068 sll a1, a1, 2 | a1 <<= 2;
0x0007d06c lwx a1, a1(v0) | __asm ("lwx a1, a1(v0)");
0x0007d070 lbu v0, 2(a0) | v0 = *((a0 + 2));
| if (a1 == a2) {
0x0007d074 bnel a1, a2, 0x7cfa4 | goto label_19;
| }
0x0007d078 lbu a1, 7(a0) | a1 = *((a0 + 7));
0x0007d07c addiu a2, zero, 0x50 | a2 = 0x50;
0x0007d080 sll a1, a1, 2 | a1 <<= 2;
0x0007d084 lwx a1, a1(v0) | __asm ("lwx a1, a1(v0)");
0x0007d088 lbu v0, 2(a0) | v0 = *((a0 + 2));
| if (a1 == a2) {
0x0007d08c bnel a1, a2, 0x7cfa4 | goto label_19;
| }
0x0007d090 lbu a1, 8(a0) | a1 = *((a0 + 8));
0x0007d094 addiu a2, zero, 0x45 | a2 = 0x45;
0x0007d098 sll a1, a1, 2 | a1 <<= 2;
0x0007d09c lwx v0, a1(v0) | __asm ("lwx v0, a1(v0)");
0x0007d0a0 lbu v0, 2(a0) | v0 = *((a0 + 2));
| if (v0 == a2) {
0x0007d0a4 bnel v0, a2, 0x7cfa4 | goto label_19;
| }
0x0007d0a8 lw a3, -0x7f94(gp) | a3 = *((gp - 8165));
0x0007d0ac lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0007d0b0 lw t9, -0x7a48(gp) | t9 = *(gp);
0x0007d0b4 addiu a1, zero, 0x320 | a1 = aav.0x00000320;
0x0007d0b8 addiu a3, a3, -0x3940 | a3 += -0x3940;
0x0007d0bc addiu a2, a2, -0x3938 | a2 += -0x3938;
0x0007d0c0 move a0, fp | a0 = fp;
0x0007d0c4 addiu t9, t9, 0x4770 | t9 += 0x4770;
0x0007d0c8 sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x0007d0cc bal 0x74770 | fcn_00074770 ();
0x0007d0d0 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007d0d4 lw t9, -0x7a48(gp) | t9 = *(gp);
0x0007d0d8 addiu t9, t9, 0x7adc | t9 += 0x7adc;
0x0007d0dc move a0, fp | a0 = fp;
0x0007d0e0 bal 0x77adc | fcn_00077adc ();
0x0007d0e4 lw v0, 0x24(fp) | v0 = *(arg_24h);
0x0007d0e8 addiu a1, zero, 0x3c | a1 = 0x3c;
0x0007d0ec lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x0007d0f0 lbu v0, (a0) | v0 = *(a0);
0x0007d0f4 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 != a1) {
0x0007d0f8 bne v0, a1, 0x7ce48 | goto label_20;
| }
0x0007d0fc lbu v0, 1(a0) | v0 = *((a0 + 1));
0x0007d100 addiu a1, zero, 0x21 | a1 = 0x21;
| if (v0 == a1) {
0x0007d104 beql v0, a1, 0x7cfa4 | goto label_19;
| }
0x0007d108 lbu v0, 2(a0) | v0 = *((a0 + 2));
0x0007d10c addiu a0, zero, 0x3f | a0 = 0x3f;
0x0007d110 b 0x7cc24 | goto label_21;
| label_39:
0x0007d114 lw v0, 0x3c(sp) | v0 = *(var_3ch_2);
| if (v0 == 0) {
| label_41:
0x0007d118 beql v0, zero, 0x7d298 | goto label_59;
| }
0x0007d11c lbu a0, (s5) | a0 = *(s5);
0x0007d120 lw v0, 0x44(fp) | v0 = *(arg_44h);
0x0007d124 lw v0, 0xc(a0) | v0 = *((a0 + 3));
| if (v0 == 0) {
0x0007d128 bnel v0, zero, 0x7d2d0 | goto label_60;
| }
| label_27:
0x0007d12c lbu a0, (s5) | a0 = *(s5);
0x0007d130 addiu v0, a0, -9 | v0 = a0 + -9;
0x0007d134 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x0007d138 addiu v0, zero, 0xd | v0 = 0xd;
| if (v0 == 0) {
0x0007d13c bnez v0, 0x7d164 |
0x0007d140 sltiu a0, a0, 0x20 | a0 = (a0 < 0x20) ? 1 : 0;
| if (a0 == v0) {
0x0007d144 beq a0, v0, 0x7d164 | goto label_61;
| }
0x0007d148 lw v0, -0x7158(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0007d14c beqz a0, 0x7d168 | goto label_62;
| }
0x0007d150 lw t9, -0x7a48(gp) | t9 = *(gp);
0x0007d154 addiu t9, t9, 0x4610 | t9 += 0x4610;
0x0007d158 move a0, fp | a0 = fp;
0x0007d15c bal 0x74610 | fcn_00074610 ();
0x0007d160 lw gp, 0x18(sp) | gp = *(var_18h_3);
| }
| label_61:
0x0007d164 lw v0, -0x7158(gp) | v0 = *(gp);
| label_62:
0x0007d168 lw t9, (v0) | t9 = *(v0);
0x0007d16c lw a0, 0x3c(sp) | a0 = *(var_3ch_2);
0x0007d170 jalr t9 | t9 ();
0x0007d174 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007d178 b 0x7cd24 | goto label_5;
| label_56:
0x0007d17c lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0007d180 lw t9, -0x7a48(gp) | t9 = *(gp);
0x0007d184 sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x0007d188 move a3, zero | a3 = 0;
0x0007d18c addiu a2, a2, -0x3a78 | a2 += -0x3a78;
0x0007d190 addiu a1, zero, 0x44 | a1 = 0x44;
0x0007d194 addiu t9, t9, 0x4770 | t9 += 0x4770;
0x0007d198 move a0, fp | a0 = fp;
0x0007d19c bal 0x74770 | fcn_00074770 ();
0x0007d1a0 addiu s0, zero, 0xd | s0 = 0xd;
0x0007d1a4 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007d1a8 addiu s2, zero, 0x3e | s2 = 0x3e;
0x0007d1ac b 0x7d1bc |
| while (a1 != 0) {
| label_22:
0x0007d1b0 move a0, fp | a0 = fp;
0x0007d1b4 jalr t9 | t9 ();
0x0007d1b8 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007d1bc lw a0, 0x24(fp) | a0 = *(arg_24h);
0x0007d1c0 lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x0007d1c4 lbu a2, (v0) | a2 = *(v0);
0x0007d1c8 addiu a1, a2, -9 | a1 = a2 + -9;
0x0007d1cc sltiu a1, a1, 2 | a1 = (a1 < 2) ? 1 : 0;
0x0007d1d0 lw t9, 0x34(sp) | t9 = *(var_34h_2);
0x0007d1d4 bnez a1, 0x7d1b0 |
| }
0x0007d1d8 sltiu a1, a2, 0x20 | a1 = (a2 < 0x20) ? 1 : 0;
| if (a2 == s0) {
0x0007d1dc beq a2, s0, 0x7d1b0 | goto label_22;
| }
| if (a1 != 0) {
0x0007d1e0 bnez a1, 0x7d1f0 | goto label_63;
| }
0x0007d1e4 nop |
| if (a2 != s2) {
0x0007d1e8 bne a2, s2, 0x7d1b0 | goto label_22;
| }
0x0007d1ec nop |
| label_63:
0x0007d1f0 lw v0, -0x7158(gp) | v0 = *(gp);
| if (s1 == 0) {
0x0007d1f4 bnel s1, zero, 0x7cae0 | goto label_17;
| }
0x0007d1f8 b 0x7caf8 | goto label_11;
0x0007d1fc nop |
| label_32:
0x0007d200 lw t9, -0x7a48(gp) | t9 = *(gp);
0x0007d204 sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x0007d208 move a3, s2 | a3 = s2;
0x0007d20c addiu a2, a2, -0x3918 | a2 += -0x3918;
0x0007d210 addiu a1, zero, 0x321 | a1 = 0x321;
0x0007d214 addiu t9, t9, 0x4770 | t9 += 0x4770;
0x0007d218 move a0, fp | a0 = fp;
0x0007d21c bal 0x74770 | fcn_00074770 ();
0x0007d220 move s0, zero | s0 = 0;
0x0007d224 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007d228 b 0x7ca08 | goto label_23;
| label_54:
0x0007d22c lw t9, -0x7cac(gp) | t9 = *(gp);
0x0007d230 move a0, fp | a0 = fp;
0x0007d234 jalr t9 | t9 ();
0x0007d238 lw v0, 0xbc(fp) | v0 = *(arg_bch);
0x0007d23c lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 <= 0) {
0x0007d240 blez v0, 0x7cdf8 | goto label_24;
| }
0x0007d244 addiu a0, v0, -1 | a0 = v0 + -1;
0x0007d248 sw a0, 0xbc(fp) | *(arg_bch) = a0;
0x0007d24c lw a1, 0xc4(fp) | a1 = *(arg_c4h);
| if (a0 == 0) {
0x0007d250 beqz a0, 0x7d274 | goto label_64;
| }
0x0007d254 sll v0, v0, 2 | v0 <<= 2;
0x0007d258 addiu v0, v0, -8 | v0 += -8;
0x0007d25c lwx v0, v0(a1) | __asm ("lwx v0, v0(a1)");
| do {
0x0007d260 sll a0, a0, 2 | a0 <<= 2;
0x0007d264 addu a0, a1, a0 | a0 = a1 + a0;
0x0007d268 sw v0, 0xb8(fp) | *(arg_b8h) = v0;
0x0007d26c sw zero, (a0) | *(a0) = 0;
0x0007d270 b 0x7cdf8 | goto label_24;
| label_64:
0x0007d274 move v0, zero | v0 = 0;
0x0007d278 b 0x7d260 |
| } while (1);
| if (v0 == 0) {
| label_35:
0x0007d27c beql v0, zero, 0x7ccf4 | goto label_25;
| }
0x0007d280 lw v0, 0xbc(fp) | v0 = *(arg_bch);
0x0007d284 lw t9, 0x3c(v0) | t9 = *((v0 + 15));
0x0007d288 lw a0, 4(fp) | a0 = *(arg_4h);
| if (t9 == 0) {
0x0007d28c bnel t9, zero, 0x7cce4 | goto label_26;
| }
0x0007d290 lw v0, 0xbc(fp) | v0 = *(arg_bch);
0x0007d294 b 0x7ccf4 | goto label_25;
| label_59:
0x0007d298 addiu v0, a0, -9 | v0 = a0 + -9;
0x0007d29c sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x0007d2a0 addiu v0, zero, 0xd | v0 = 0xd;
| if (v0 != 0) {
0x0007d2a4 bnez v0, 0x7cd24 | goto label_5;
| }
0x0007d2a8 sltiu a0, a0, 0x20 | a0 = (a0 < 0x20) ? 1 : 0;
| if (a0 == v0) {
0x0007d2ac beq a0, v0, 0x7cd24 | goto label_5;
| }
0x0007d2b0 lw v0, 0x28(sp) | v0 = *(var_28h_3);
| if (a0 == 0) {
0x0007d2b4 beqz a0, 0x7cd28 | goto label_6;
| }
0x0007d2b8 lw t9, -0x7a48(gp) | t9 = *(gp);
0x0007d2bc addiu t9, t9, 0x4610 | t9 += 0x4610;
0x0007d2c0 move a0, fp | a0 = fp;
0x0007d2c4 bal 0x74610 | fcn_00074610 ();
0x0007d2c8 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007d2cc b 0x7cd24 | goto label_5;
| label_60:
0x0007d2d0 lw a1, 0x24(a0) | a1 = *((a0 + 9));
0x0007d2d4 lw a3, 0x1c(a0) | a3 = *((a0 + 7));
0x0007d2d8 subu v0, s5, v0 | __asm ("subu v0, s5, v0");
0x0007d2dc lw a2, 0x34(fp) | a2 = *(arg_34h);
0x0007d2e0 addu v0, v0, a1 | v0 += a1;
0x0007d2e4 lw t9, -0x7cb4(gp) | t9 = *((gp - 7981));
0x0007d2e8 sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x0007d2ec addiu a1, sp, 0x40 | a1 = sp + 0x40;
0x0007d2f0 move a0, fp | a0 = fp;
0x0007d2f4 sw a3, 0x50(sp) | *(var_50h) = a3;
0x0007d2f8 sw a2, 0x40(sp) | *(var_40h) = a2;
0x0007d2fc jalr t9 | t9 ();
0x0007d300 lw v0, 0x24(fp) | v0 = *(arg_24h);
0x0007d304 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0007d308 lw s5, 0x10(v0) | s5 = *((v0 + 4));
0x0007d30c b 0x7d12c | goto label_27;
| label_52:
0x0007d310 move v0, zero | v0 = 0;
0x0007d314 b 0x7cd14 | goto label_28;
| label_53:
0x0007d318 lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x0007d31c jalr t9 | t9 ();
0x0007d320 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb0f70 */
| #include <stdint.h>
|
; (fcn) sym.xmlACatalogAdd () | void xmlACatalogAdd () {
0x000b0f70 lui gp, 0xe |
0x000b0f74 addiu gp, gp, 0x700 |
0x000b0f78 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x000b0f7c beqz a0, 0xb1630 | goto label_8;
| }
0x000b0f80 nop |
0x000b0f84 addiu sp, sp, -0x50 |
0x000b0f88 lw v1, (a0) | v1 = *(a0);
0x000b0f8c addiu v0, zero, 1 | v0 = 1;
0x000b0f90 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000b0f94 sw s3, 0x38(sp) | *(var_38h) = s3;
0x000b0f98 sw s2, 0x34(sp) | *(var_34h) = s2;
0x000b0f9c sw s1, 0x30(sp) | *(var_30h) = s1;
0x000b0fa0 sw s0, 0x2c(sp) | *(var_2ch) = s0;
0x000b0fa4 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x000b0fa8 sw s7, 0x48(sp) | *(var_48h) = s7;
0x000b0fac sw s6, 0x44(sp) | *(var_44h) = s6;
0x000b0fb0 sw s5, 0x40(sp) | *(var_40h) = s5;
0x000b0fb4 sw s4, 0x3c(sp) | *(var_3ch) = s4;
0x000b0fb8 move s3, a3 | s3 = a3;
0x000b0fbc move s1, a2 | s1 = a2;
0x000b0fc0 move s2, a1 | s2 = a1;
0x000b0fc4 move s0, a0 | s0 = a0;
| if (v1 == v0) {
0x000b0fc8 beq v1, v0, 0xb1078 | goto label_9;
| }
0x000b0fcc lw s4, -0x7f90(gp) | s4 = *((gp - 8164));
0x000b0fd0 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b0fd4 move a0, s2 | a0 = s2;
0x000b0fd8 move t9, s4 | t9 = s4;
0x000b0fdc addiu a1, a1, 0x29e0 | a1 += 0x29e0;
0x000b0fe0 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b0fe4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000b0fe8 beqz v0, 0xb1054 | goto label_10;
| }
0x000b0fec addiu a0, zero, 0xd | a0 = 0xd;
| do {
| label_3:
0x000b0ff0 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
0x000b0ff4 move a2, s3 | a2 = s3;
0x000b0ff8 sw zero, 0x14(sp) | *(var_14h) = 0;
0x000b0ffc sw zero, 0x10(sp) | *(var_10h) = 0;
0x000b1000 move a3, zero | a3 = 0;
0x000b1004 addiu t9, t9, -0x2f88 | t9 += -0x2f88;
0x000b1008 move a1, s1 | a1 = s1;
0x000b100c bal 0xad078 | fcn_000ad078 ();
0x000b1010 lw a0, 0x34(s0) | a0 = *((s0 + 13));
0x000b1014 lw gp, 0x18(sp) | gp = *(var_18h);
0x000b1018 move a2, v0 | a2 = v0;
| if (a0 == 0) {
0x000b101c beqz a0, 0xb1284 | goto label_11;
| }
0x000b1020 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x000b1024 lw s7, 0x48(sp) | s7 = *(var_48h);
0x000b1028 lw s6, 0x44(sp) | s6 = *(var_44h);
0x000b102c lw s5, 0x40(sp) | s5 = *(var_40h);
0x000b1030 lw s4, 0x3c(sp) | s4 = *(var_3ch);
0x000b1034 lw s3, 0x38(sp) | s3 = *(var_38h);
0x000b1038 lw s2, 0x34(sp) | s2 = *(var_34h);
0x000b103c lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x000b1040 move a1, s1 | a1 = s1;
0x000b1044 lw t9, -0x7fb8(gp) | t9 = *(gp);
0x000b1048 lw s1, 0x30(sp) | s1 = *(var_30h);
0x000b104c addiu sp, sp, 0x50 |
0x000b1050 jr t9 | t9 ();
| label_10:
0x000b1054 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b1058 move a0, s2 | a0 = s2;
0x000b105c move t9, s4 | t9 = s4;
0x000b1060 addiu a1, a1, 0x29e8 | a1 += 0x29e8;
0x000b1064 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b1068 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000b106c beqz v0, 0xb11d0 | goto label_12;
| }
0x000b1070 addiu a0, zero, 0xe | a0 = 0xe;
0x000b1074 b 0xb0ff0 |
| } while (1);
| label_9:
0x000b1078 lw s5, 0x3c(a0) | s5 = *((a0 + 15));
0x000b107c addiu v0, zero, -1 | v0 = -1;
| if (s5 == 0) {
0x000b1080 beqz s5, 0xb1320 | goto label_4;
| }
0x000b1084 lw v0, 0xc(s5) | v0 = *((s5 + 3));
0x000b1088 addiu v0, v0, -1 | v0 += -1;
0x000b108c sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x000b1090 addiu v0, zero, -1 | v0 = -1;
| if (v0 == 0) {
0x000b1094 beqz v0, 0xb1320 | goto label_4;
| }
0x000b1098 lw s6, 8(s5) | s6 = *((s5 + 2));
0x000b109c lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
| if (s6 == 0) {
0x000b10a0 beqz s6, 0xb138c | goto label_13;
| }
| label_5:
0x000b10a4 lw s4, -0x7f90(gp) | s4 = *((gp - 8164));
0x000b10a8 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b10ac move a0, s2 | a0 = s2;
0x000b10b0 move t9, s4 | t9 = s4;
0x000b10b4 addiu a1, a1, 0x27b8 | a1 += 0x27b8;
0x000b10b8 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b10bc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000b10c0 beqz v0, 0xb1190 | goto label_14;
| }
0x000b10c4 addiu s7, zero, 6 | s7 = 6;
| label_2:
0x000b10c8 lw s0, 8(s5) | s0 = *((s5 + 2));
0x000b10cc lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
| if (s0 != 0) {
0x000b10d0 bnez s0, 0xb10ec | goto label_15;
| }
0x000b10d4 lw v0, -0x4ad8(v0) | v0 = *(v0);
0x000b10d8 b 0xb1210 | goto label_16;
| label_1:
0x000b10dc lw v0, (s0) | v0 = *(s0);
| if (v0 == 0) {
| do {
| label_0:
0x000b10e0 beql v0, zero, 0xb12d8 | goto label_17;
| }
0x000b10e4 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x000b10e8 move s0, v0 | s0 = v0;
| label_15:
0x000b10ec beql s1, zero, 0xb10e0 |
| } while (s1 == 0);
0x000b10f0 lw v0, (s0) | v0 = *(s0);
0x000b10f4 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x000b10f8 lw v0, (s0) | v0 = *(s0);
| if (v0 == s7) {
0x000b10fc bnel v0, s7, 0xb10e0 | goto label_0;
| }
0x000b1100 lw a1, 0x10(s0) | a1 = *((s0 + 4));
0x000b1104 move t9, s4 | t9 = s4;
0x000b1108 move a0, s1 | a0 = s1;
0x000b110c bal 0xb7e60 | sym_xmlStrEqual ();
0x000b1110 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000b1114 beqz v0, 0xb10dc | goto label_1;
| }
0x000b1118 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x000b111c lw v0, -0x4ad8(v0) | v0 = *(v0);
0x000b1120 lw t9, -0x7f34(gp) | t9 = *(gp);
| if (v0 != 0) {
0x000b1124 bnez v0, 0xb1564 | goto label_18;
| }
| label_6:
0x000b1128 lw a0, 0x14(s0) | a0 = *((s0 + 5));
0x000b112c lw v0, -0x7158(gp) | v0 = *(gp);
| if (a0 != 0) {
0x000b1130 beqz a0, 0xb1144 |
0x000b1134 lw t9, (v0) | t9 = *(v0);
0x000b1138 jalr t9 | t9 ();
0x000b113c nop |
0x000b1140 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x000b1144 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x000b1148 lw s1, -0x7fd8(gp) | s1 = *((gp - 8182));
| if (a0 != 0) {
0x000b114c beqz a0, 0xb1168 |
0x000b1150 lw v0, -0x7158(gp) | v0 = *(gp);
0x000b1154 lw t9, (v0) | t9 = *(v0);
0x000b1158 jalr t9 | t9 ();
0x000b115c nop |
0x000b1160 lw gp, 0x18(sp) | gp = *(var_18h);
0x000b1164 lw s1, -0x7fd8(gp) | s1 = *((gp - 8182));
| }
0x000b1168 move t9, s1 | t9 = s1;
0x000b116c move a0, s3 | a0 = s3;
0x000b1170 bal 0xb7cb8 | sym_xmlStrdup ();
0x000b1174 sw v0, 0x14(s0) | *((s0 + 5)) = v0;
0x000b1178 move t9, s1 | t9 = s1;
0x000b117c move a0, s3 | a0 = s3;
0x000b1180 bal 0xb7cb8 | sym_xmlStrdup ();
0x000b1184 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
0x000b1188 move v0, zero | v0 = 0;
0x000b118c b 0xb1320 | goto label_4;
| label_14:
0x000b1190 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b1194 move a0, s2 | a0 = s2;
0x000b1198 move t9, s4 | t9 = s4;
0x000b119c addiu a1, a1, 0x27a8 | a1 += 0x27a8;
0x000b11a0 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b11a4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000b11a8 bnez v0, 0xb137c | goto label_19;
| }
0x000b11ac lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b11b0 move a0, s2 | a0 = s2;
0x000b11b4 move t9, s4 | t9 = s4;
0x000b11b8 addiu a1, a1, 0x27d8 | a1 += 0x27d8;
0x000b11bc bal 0xb7e60 | sym_xmlStrEqual ();
0x000b11c0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000b11c4 beqz v0, 0xb13a4 | goto label_20;
| }
0x000b11c8 addiu s7, zero, 7 | s7 = 7;
0x000b11cc b 0xb10c8 | goto label_2;
| label_12:
0x000b11d0 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b11d4 move a0, s2 | a0 = s2;
0x000b11d8 move t9, s4 | t9 = s4;
0x000b11dc addiu a1, a1, 0x29f0 | a1 += 0x29f0;
0x000b11e0 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b11e4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000b11e8 bnez v0, 0xb1384 | goto label_21;
| }
0x000b11ec lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b11f0 move a0, s2 | a0 = s2;
0x000b11f4 move t9, s4 | t9 = s4;
0x000b11f8 addiu a1, a1, 0x29fc | a1 += 0x29fc;
0x000b11fc bal 0xb7e60 | sym_xmlStrEqual ();
0x000b1200 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000b1204 beqz v0, 0xb1470 | goto label_22;
| }
0x000b1208 addiu a0, zero, 0xf | a0 = 0xf;
0x000b120c b 0xb0ff0 | goto label_3;
| label_16:
0x000b1210 lw t9, -0x7f34(gp) | t9 = *(gp);
| if (v0 != 0) {
0x000b1214 beqz v0, 0xb1250 |
0x000b1218 bal 0xb35ac | sym_xmlGenericError ();
0x000b121c nop |
0x000b1220 lw gp, 0x18(sp) | gp = *(var_18h);
0x000b1224 lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x000b1228 lw s0, (v0) | s0 = *(v0);
0x000b122c bal 0xb365c | sym_xmlGenericErrorContext ();
0x000b1230 lw gp, 0x18(sp) | gp = *(var_18h);
0x000b1234 lw a0, (v0) | a0 = *(v0);
0x000b1238 move a2, s2 | a2 = s2;
0x000b123c lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b1240 move t9, s0 | t9 = s0;
0x000b1244 addiu a1, a1, 0x2e34 | a1 += 0x2e34;
0x000b1248 jalr t9 | t9 ();
0x000b124c lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x000b1250 sw zero, 0x14(sp) | *(var_14h) = 0;
0x000b1254 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
0x000b1258 lw v0, 0x1c(s5) | v0 = *((s5 + 7));
0x000b125c move a3, zero | a3 = 0;
0x000b1260 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000b1264 move a2, s3 | a2 = s3;
0x000b1268 move a1, s1 | a1 = s1;
0x000b126c addiu t9, t9, -0x2f88 | t9 += -0x2f88;
0x000b1270 move a0, s7 | a0 = s7;
0x000b1274 bal 0xad078 | fcn_000ad078 ();
0x000b1278 lw gp, 0x18(sp) | gp = *(var_18h);
0x000b127c sw v0, 8(s5) | *((s5 + 2)) = v0;
0x000b1280 b 0xb1314 | goto label_23;
| label_11:
0x000b1284 lw t9, -0x7f80(gp) | t9 = *(gp);
0x000b1288 sw v0, 0x24(sp) | *(var_24h) = v0;
0x000b128c addiu a0, zero, 0xa | a0 = 0xa;
0x000b1290 jalr t9 | t9 ();
0x000b1294 lw gp, 0x18(sp) | gp = *(var_18h);
0x000b1298 lw a2, 0x24(sp) | a2 = *(var_24h);
0x000b129c sw v0, 0x34(s0) | *((s0 + 13)) = v0;
0x000b12a0 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x000b12a4 lw s7, 0x48(sp) | s7 = *(var_48h);
0x000b12a8 lw s6, 0x44(sp) | s6 = *(var_44h);
0x000b12ac lw s5, 0x40(sp) | s5 = *(var_40h);
0x000b12b0 lw s4, 0x3c(sp) | s4 = *(var_3ch);
0x000b12b4 lw s3, 0x38(sp) | s3 = *(var_38h);
0x000b12b8 lw s2, 0x34(sp) | s2 = *(var_34h);
0x000b12bc lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x000b12c0 move a1, s1 | a1 = s1;
0x000b12c4 lw t9, -0x7fb8(gp) | t9 = *(gp);
0x000b12c8 lw s1, 0x30(sp) | s1 = *(var_30h);
0x000b12cc move a0, v0 | a0 = v0;
0x000b12d0 addiu sp, sp, 0x50 |
0x000b12d4 jr t9 | t9 ();
| label_17:
0x000b12d8 lw v0, -0x4ad8(v0) | v0 = *(v0);
0x000b12dc lw t9, -0x7f34(gp) | t9 = *(gp);
| if (v0 != 0) {
0x000b12e0 bnez v0, 0xb1638 | goto label_24;
| }
| label_7:
0x000b12e4 sw zero, 0x14(sp) | *(var_14h) = 0;
0x000b12e8 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
0x000b12ec lw v0, 0x1c(s5) | v0 = *((s5 + 7));
0x000b12f0 move a3, zero | a3 = 0;
0x000b12f4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000b12f8 move a2, s3 | a2 = s3;
0x000b12fc move a1, s1 | a1 = s1;
0x000b1300 addiu t9, t9, -0x2f88 | t9 += -0x2f88;
0x000b1304 move a0, s7 | a0 = s7;
0x000b1308 bal 0xad078 | fcn_000ad078 ();
0x000b130c lw gp, 0x18(sp) | gp = *(var_18h);
0x000b1310 sw v0, (s0) | *(s0) = v0;
| label_23:
0x000b1314 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x000b1318 beqz s6, 0xb134c |
| while (v0 == 0) {
0x000b131c move v0, zero | v0 = 0;
| label_4:
0x000b1320 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x000b1324 lw s7, 0x48(sp) | s7 = *(var_48h);
0x000b1328 lw s6, 0x44(sp) | s6 = *(var_44h);
0x000b132c lw s5, 0x40(sp) | s5 = *(var_40h);
0x000b1330 lw s4, 0x3c(sp) | s4 = *(var_3ch);
0x000b1334 lw s3, 0x38(sp) | s3 = *(var_38h);
0x000b1338 lw s2, 0x34(sp) | s2 = *(var_34h);
0x000b133c lw s1, 0x30(sp) | s1 = *(var_30h);
0x000b1340 lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x000b1344 addiu sp, sp, 0x50 |
0x000b1348 jr ra | return v0;
0x000b134c lw a1, 0x18(s5) | a1 = *((s5 + 6));
0x000b1350 lw t9, -0x7f88(gp) | t9 = *(gp);
0x000b1354 lw a0, -0x4adc(v0) | a0 = *((v0 - 4791));
0x000b1358 addiu v0, zero, 1 | v0 = 1;
0x000b135c sw v0, 0xc(s5) | *((s5 + 3)) = v0;
0x000b1360 jalr t9 | t9 ();
0x000b1364 move v1, v0 | v1 = v0;
0x000b1368 beqz v0, 0xb131c |
| }
0x000b136c lw a0, 8(s5) | a0 = *((s5 + 2));
0x000b1370 move v0, zero | v0 = 0;
0x000b1374 sw a0, 8(v1) | *((v1 + 2)) = a0;
0x000b1378 b 0xb1320 | goto label_4;
| label_19:
0x000b137c addiu s7, zero, 5 | s7 = 5;
0x000b1380 b 0xb10c8 | goto label_2;
| label_21:
0x000b1384 addiu a0, zero, 0x14 | a0 = 0x14;
0x000b1388 b 0xb0ff0 | goto label_3;
| label_13:
0x000b138c addiu t9, t9, -0x12e8 | t9 += -0x12e8;
0x000b1390 move a0, s5 | a0 = s5;
0x000b1394 bal 0xaed18 | fcn_000aed18 ();
0x000b1398 lw gp, 0x18(sp) | gp = *(var_18h);
0x000b139c lw s6, 8(s5) | s6 = *((s5 + 2));
0x000b13a0 b 0xb10a4 | goto label_5;
| label_20:
0x000b13a4 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b13a8 move a0, s2 | a0 = s2;
0x000b13ac move t9, s4 | t9 = s4;
0x000b13b0 addiu a1, a1, 0x280c | a1 += 0x280c;
0x000b13b4 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b13b8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000b13bc bnez v0, 0xb1544 |
0x000b13c0 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b13c4 move a0, s2 | a0 = s2;
0x000b13c8 move t9, s4 | t9 = s4;
0x000b13cc addiu a1, a1, 0x2830 | a1 += 0x2830;
0x000b13d0 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b13d4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000b13d8 bnez v0, 0xb1554 | goto label_25;
| }
0x000b13dc lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b13e0 move a0, s2 | a0 = s2;
0x000b13e4 move t9, s4 | t9 = s4;
0x000b13e8 addiu a1, a1, 0x33f8 | a1 += 0x33f8;
0x000b13ec bal 0xb7e60 | sym_xmlStrEqual ();
0x000b13f0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000b13f4 bnez v0, 0xb15a0 | goto label_26;
| }
0x000b13f8 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b13fc move a0, s2 | a0 = s2;
0x000b1400 move t9, s4 | t9 = s4;
0x000b1404 addiu a1, a1, 0x2840 | a1 += 0x2840;
0x000b1408 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b140c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000b1410 bnez v0, 0xb1600 | goto label_27;
| }
0x000b1414 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b1418 move a0, s2 | a0 = s2;
0x000b141c move t9, s4 | t9 = s4;
0x000b1420 addiu a1, a1, 0x285c | a1 += 0x285c;
0x000b1424 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b1428 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000b142c bnez v0, 0xb1610 | goto label_28;
| }
0x000b1430 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b1434 move a0, s2 | a0 = s2;
0x000b1438 move t9, s4 | t9 = s4;
0x000b143c addiu a1, a1, 0x2794 | a1 += 0x2794;
0x000b1440 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b1444 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000b1448 bnez v0, 0xb1620 | goto label_29;
| }
0x000b144c lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b1450 move a0, s2 | a0 = s2;
0x000b1454 move t9, s4 | t9 = s4;
0x000b1458 addiu a1, a1, 0x2a74 | a1 += aav.0x00002a74;
0x000b145c bal 0xb7e60 | sym_xmlStrEqual ();
0x000b1460 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000b1464 beqz v0, 0xb15b0 | goto label_30;
| }
0x000b1468 addiu s7, zero, 1 | s7 = 1;
0x000b146c b 0xb10c8 | goto label_2;
| label_22:
0x000b1470 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b1474 move a0, s2 | a0 = s2;
0x000b1478 move t9, s4 | t9 = s4;
0x000b147c addiu a1, a1, -0x3940 | a1 += -0x3940;
0x000b1480 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b1484 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000b1488 bnez v0, 0xb154c | goto label_31;
| }
0x000b148c lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b1490 move a0, s2 | a0 = s2;
0x000b1494 move t9, s4 | t9 = s4;
0x000b1498 addiu a1, a1, 0x2a04 | a1 += 0x2a04;
0x000b149c bal 0xb7e60 | sym_xmlStrEqual ();
0x000b14a0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000b14a4 bnez v0, 0xb155c | goto label_32;
| }
0x000b14a8 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b14ac move a0, s2 | a0 = s2;
0x000b14b0 move t9, s4 | t9 = s4;
0x000b14b4 addiu a1, a1, 0x2a10 | a1 += 0x2a10;
0x000b14b8 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b14bc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000b14c0 bnez v0, 0xb15a8 | goto label_33;
| }
0x000b14c4 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b14c8 move a0, s2 | a0 = s2;
0x000b14cc move t9, s4 | t9 = s4;
0x000b14d0 addiu a1, a1, 0x2a1c | a1 += 0x2a1c;
0x000b14d4 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b14d8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000b14dc bnez v0, 0xb1608 | goto label_34;
| }
0x000b14e0 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b14e4 move a0, s2 | a0 = s2;
0x000b14e8 move t9, s4 | t9 = s4;
0x000b14ec addiu a1, a1, 0x2a28 | a1 += 0x2a28;
0x000b14f0 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b14f4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000b14f8 bnez v0, 0xb1618 | goto label_35;
| }
0x000b14fc lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b1500 move a0, s2 | a0 = s2;
0x000b1504 move t9, s4 | t9 = s4;
0x000b1508 addiu a1, a1, 0x2a34 | a1 += 0x2a34;
0x000b150c bal 0xb7e60 | sym_xmlStrEqual ();
0x000b1510 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000b1514 bnez v0, 0xb1628 | goto label_36;
| }
0x000b1518 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b151c move a0, s2 | a0 = s2;
0x000b1520 move t9, s4 | t9 = s4;
0x000b1524 addiu a1, a1, 0x2a3c | a1 += 0x2a3c;
0x000b1528 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b152c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000b1530 bnez v0, 0xb153c |
0x000b1534 addiu v0, zero, -1 | v0 = -1;
0x000b1538 b 0xb1320 | goto label_4;
| }
0x000b153c addiu a0, zero, 0x15 | a0 = 0x15;
0x000b1540 b 0xb0ff0 | goto label_3;
| }
0x000b1544 addiu s7, zero, 8 | s7 = 8;
0x000b1548 b 0xb10c8 | goto label_2;
| label_31:
0x000b154c addiu a0, zero, 0x11 | a0 = 0x11;
0x000b1550 b 0xb0ff0 | goto label_3;
| label_25:
0x000b1554 addiu s7, zero, 9 | s7 = 9;
0x000b1558 b 0xb10c8 | goto label_2;
| label_32:
0x000b155c addiu a0, zero, 0x12 | a0 = 0x12;
0x000b1560 b 0xb0ff0 | goto label_3;
| label_18:
0x000b1564 bal 0xb35ac | sym_xmlGenericError ();
0x000b1568 nop |
0x000b156c lw gp, 0x18(sp) | gp = *(var_18h);
0x000b1570 lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x000b1574 lw s1, (v0) | s1 = *(v0);
0x000b1578 bal 0xb365c | sym_xmlGenericErrorContext ();
0x000b157c lw gp, 0x18(sp) | gp = *(var_18h);
0x000b1580 lw a0, (v0) | a0 = *(v0);
0x000b1584 move a2, s2 | a2 = s2;
0x000b1588 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b158c move t9, s1 | t9 = s1;
0x000b1590 addiu a1, a1, 0x2e14 | a1 += 0x2e14;
0x000b1594 jalr t9 | t9 ();
0x000b1598 lw gp, 0x18(sp) | gp = *(var_18h);
0x000b159c b 0xb1128 | goto label_6;
| label_26:
0x000b15a0 addiu s7, zero, 0xa | s7 = 0xa;
0x000b15a4 b 0xb10c8 | goto label_2;
| label_33:
0x000b15a8 addiu a0, zero, 0x13 | a0 = 0x13;
0x000b15ac b 0xb0ff0 | goto label_3;
| label_30:
0x000b15b0 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x000b15b4 lw v0, -0x4ad8(v0) | v0 = *(v0);
| if (v0 == 0) {
0x000b15b8 beql v0, zero, 0xb1320 | goto label_4;
| }
0x000b15bc addiu v0, zero, -1 | v0 = -1;
0x000b15c0 lw t9, -0x7f34(gp) | t9 = *(gp);
0x000b15c4 bal 0xb35ac | sym_xmlGenericError ();
0x000b15c8 nop |
0x000b15cc lw gp, 0x18(sp) | gp = *(var_18h);
0x000b15d0 lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x000b15d4 lw s0, (v0) | s0 = *(v0);
0x000b15d8 bal 0xb365c | sym_xmlGenericErrorContext ();
0x000b15dc lw gp, 0x18(sp) | gp = *(var_18h);
0x000b15e0 lw a0, (v0) | a0 = *(v0);
0x000b15e4 move a2, s2 | a2 = s2;
0x000b15e8 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b15ec move t9, s0 | t9 = s0;
0x000b15f0 addiu a1, a1, 0x2de4 | a1 += 0x2de4;
0x000b15f4 jalr t9 | t9 ();
0x000b15f8 addiu v0, zero, -1 | v0 = -1;
0x000b15fc b 0xb1320 | goto label_4;
| label_27:
0x000b1600 addiu s7, zero, 0xb | s7 = 0xb;
0x000b1604 b 0xb10c8 | goto label_2;
| label_34:
0x000b1608 addiu a0, zero, 0x18 | a0 = 0x18;
0x000b160c b 0xb0ff0 | goto label_3;
| label_28:
0x000b1610 addiu s7, zero, 0xc | s7 = 0xc;
0x000b1614 b 0xb10c8 | goto label_2;
| label_35:
0x000b1618 addiu a0, zero, 0x17 | a0 = 0x17;
0x000b161c b 0xb0ff0 | goto label_3;
| label_29:
0x000b1620 addiu s7, zero, 3 | s7 = 3;
0x000b1624 b 0xb10c8 | goto label_2;
| label_36:
0x000b1628 addiu a0, zero, 0x16 | a0 = 0x16;
0x000b162c b 0xb0ff0 | goto label_3;
| label_8:
0x000b1630 addiu v0, zero, -1 | v0 = -1;
0x000b1634 jr ra | return v0;
| label_24:
0x000b1638 bal 0xb35ac | sym_xmlGenericError ();
0x000b163c nop |
0x000b1640 lw gp, 0x18(sp) | gp = *(var_18h);
0x000b1644 lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x000b1648 lw s4, (v0) | s4 = *(v0);
0x000b164c bal 0xb365c | sym_xmlGenericErrorContext ();
0x000b1650 lw gp, 0x18(sp) | gp = *(var_18h);
0x000b1654 lw a0, (v0) | a0 = *(v0);
0x000b1658 move a2, s2 | a2 = s2;
0x000b165c lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b1660 move t9, s4 | t9 = s4;
0x000b1664 addiu a1, a1, 0x2e34 | a1 += 0x2e34;
0x000b1668 jalr t9 | t9 ();
0x000b166c lw gp, 0x18(sp) | gp = *(var_18h);
0x000b1670 b 0xb12e4 | goto label_7;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb1674 */
| #include <stdint.h>
|
; (fcn) sym.xmlACatalogRemove () | void xmlACatalogRemove () {
0x000b1674 lui gp, 0xe |
0x000b1678 addiu gp, gp, -4 |
0x000b167c addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x000b1680 beqz a0, 0xb1864 | goto label_6;
| }
0x000b1684 nop |
0x000b1688 addiu sp, sp, -0x40 |
0x000b168c sw gp, 0x10(sp) | *(var_10h) = gp;
0x000b1690 sw s1, 0x20(sp) | *(var_20h) = s1;
0x000b1694 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x000b1698 sw s7, 0x38(sp) | *(var_38h) = s7;
0x000b169c sw s6, 0x34(sp) | *(var_34h) = s6;
0x000b16a0 sw s5, 0x30(sp) | *(var_30h) = s5;
0x000b16a4 sw s4, 0x2c(sp) | *(var_2ch) = s4;
0x000b16a8 sw s3, 0x28(sp) | *(var_28h) = s3;
0x000b16ac sw s2, 0x24(sp) | *(var_24h) = s2;
0x000b16b0 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000b16b4 move s1, a1 | s1 = a1;
| if (a1 == 0) {
0x000b16b8 beqz a1, 0xb185c | goto label_7;
| }
0x000b16bc lw v1, (a0) | v1 = *(a0);
0x000b16c0 addiu v0, zero, 1 | v0 = 1;
0x000b16c4 lw a2, -0x76bc(gp) | a2 = *((gp - 7599));
| if (v1 == v0) {
0x000b16c8 beq v1, v0, 0xb1710 | goto label_8;
| }
0x000b16cc lw a0, 0x34(a0) | a0 = *((a0 + 13));
0x000b16d0 lw t9, -0x7be4(gp) | t9 = *(gp);
0x000b16d4 addiu a2, a2, -0x317c | a2 += -0x317c;
0x000b16d8 jalr t9 | t9 ();
| if (v0 == 0) {
0x000b16dc beql v0, zero, 0xb16e4 | goto label_0;
| }
0x000b16e0 addiu v0, zero, 1 | v0 = 1;
| do {
| label_0:
0x000b16e4 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x000b16e8 lw s7, 0x38(sp) | s7 = *(var_38h);
0x000b16ec lw s6, 0x34(sp) | s6 = *(var_34h);
0x000b16f0 lw s5, 0x30(sp) | s5 = *(var_30h);
0x000b16f4 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x000b16f8 lw s3, 0x28(sp) | s3 = *(var_28h);
0x000b16fc lw s2, 0x24(sp) | s2 = *(var_24h);
0x000b1700 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000b1704 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000b1708 addiu sp, sp, 0x40 |
0x000b170c jr ra | return v0;
| label_8:
0x000b1710 lw s2, 0x3c(a0) | s2 = *((a0 + 15));
0x000b1714 addiu v0, zero, -1 | v0 = -1;
0x000b1718 beqz s2, 0xb16e4 |
| } while (s2 == 0);
0x000b171c lw v0, 0xc(s2) | v0 = *((s2 + 3));
0x000b1720 addiu v0, v0, -1 | v0 += -1;
0x000b1724 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x000b1728 addiu v0, zero, -1 | v0 = -1;
| if (v0 == 0) {
0x000b172c beqz v0, 0xb16e4 | goto label_0;
| }
0x000b1730 lw s0, 8(s2) | s0 = *((s2 + 2));
0x000b1734 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
| if (s0 == 0) {
0x000b1738 beqz s0, 0xb183c | goto label_9;
| }
| label_4:
0x000b173c lw s3, -0x7f94(gp) | s3 = *((gp - 8165));
0x000b1740 lw s2, -0x7f90(gp) | s2 = *((gp - 8164));
0x000b1744 lw s4, -0x7fe4(gp) | s4 = *((gp - 8185));
0x000b1748 lw s6, -0x7f34(gp) | s6 = *(gp);
0x000b174c lw s5, -0x7f38(gp) | s5 = *((gp - 8142));
0x000b1750 addiu s3, s3, 0x2e54 | s3 += 0x2e54;
0x000b1754 lw v0, 0x10(s0) | v0 = *((s0 + 4));
| do {
0x000b1758 move a0, s1 | a0 = s1;
0x000b175c move a1, v0 | a1 = v0;
| if (v0 == 0) {
0x000b1760 beqz v0, 0xb17fc | goto label_10;
| }
0x000b1764 move t9, s2 | t9 = s2;
0x000b1768 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b176c nop |
| if (v0 == 0) {
0x000b1770 beql v0, zero, 0xb1800 | goto label_11;
| }
0x000b1774 lw a1, 0x14(s0) | a1 = *((s0 + 5));
0x000b1778 lw v0, -0x4ad8(s4) | v0 = *(s4);
| label_1:
0x000b177c addiu v0, zero, -1 | v0 = -1;
| if (v0 != 0) {
0x000b1780 beqz v0, 0xb17bc |
0x000b1784 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x000b1788 move t9, s6 | t9 = s6;
| if (v0 == 0) {
0x000b178c beqz v0, 0xb181c | goto label_12;
| }
0x000b1790 bal 0xb35ac | sym_xmlGenericError ();
0x000b1794 nop |
0x000b1798 move t9, s5 | t9 = s5;
0x000b179c lw s7, (v0) | s7 = *(v0);
0x000b17a0 bal 0xb365c | sym_xmlGenericErrorContext ();
0x000b17a4 lw a0, (v0) | a0 = *(v0);
0x000b17a8 lw a2, 0x10(s0) | a2 = *((s0 + 4));
| label_3:
0x000b17ac move t9, s7 | t9 = s7;
0x000b17b0 move a1, s3 | a1 = s3;
0x000b17b4 jalr t9 | t9 ();
0x000b17b8 addiu v0, zero, -1 | v0 = -1;
| }
0x000b17bc sw v0, 0xc(s0) | *((s0 + 3)) = v0;
0x000b17c0 lw s0, (s0) | s0 = *(s0);
| label_2:
0x000b17c4 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x000b17c8 bnel s0, zero, 0xb1758 |
| } while (s0 == 0);
0x000b17cc move v0, zero | v0 = 0;
| label_5:
0x000b17d0 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x000b17d4 lw s7, 0x38(sp) | s7 = *(var_38h);
0x000b17d8 lw s6, 0x34(sp) | s6 = *(var_34h);
0x000b17dc lw s5, 0x30(sp) | s5 = *(var_30h);
0x000b17e0 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x000b17e4 lw s3, 0x28(sp) | s3 = *(var_28h);
0x000b17e8 lw s2, 0x24(sp) | s2 = *(var_24h);
0x000b17ec lw s1, 0x20(sp) | s1 = *(var_20h);
0x000b17f0 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000b17f4 addiu sp, sp, 0x40 |
0x000b17f8 jr ra | return v0;
| label_10:
0x000b17fc lw a1, 0x14(s0) | a1 = *((s0 + 5));
| label_11:
0x000b1800 move t9, s2 | t9 = s2;
0x000b1804 move a0, s1 | a0 = s1;
0x000b1808 bal 0xb7e60 | sym_xmlStrEqual ();
0x000b180c lw v0, -0x4ad8(s4) | v0 = *(s4);
| if (v0 != 0) {
0x000b1810 bnez v0, 0xb177c | goto label_1;
| }
0x000b1814 lw s0, (s0) | s0 = *(s0);
0x000b1818 b 0xb17c4 | goto label_2;
| label_12:
0x000b181c bal 0xb35ac | sym_xmlGenericError ();
0x000b1820 nop |
0x000b1824 move t9, s5 | t9 = s5;
0x000b1828 lw s7, (v0) | s7 = *(v0);
0x000b182c bal 0xb365c | sym_xmlGenericErrorContext ();
0x000b1830 lw a0, (v0) | a0 = *(v0);
0x000b1834 lw a2, 0x14(s0) | a2 = *((s0 + 5));
0x000b1838 b 0xb17ac | goto label_3;
| label_9:
0x000b183c addiu t9, t9, -0x12e8 | t9 += -0x12e8;
0x000b1840 move a0, s2 | a0 = s2;
0x000b1844 bal 0xaed18 | fcn_000aed18 ();
0x000b1848 lw s0, 8(s2) | s0 = *((s2 + 2));
0x000b184c lw gp, 0x10(sp) | gp = *(var_10h);
| if (s0 != 0) {
0x000b1850 bnez s0, 0xb173c | goto label_4;
| }
0x000b1854 move v0, zero | v0 = 0;
0x000b1858 b 0xb17d0 | goto label_5;
| label_7:
0x000b185c addiu v0, zero, -1 | v0 = -1;
0x000b1860 b 0xb16e4 | goto label_0;
| label_6:
0x000b1864 addiu v0, zero, -1 | v0 = -1;
0x000b1868 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb07f4 */
| #include <stdint.h>
|
; (fcn) sym.xmlACatalogResolveSystem () | void xmlACatalogResolveSystem () {
0x000b07f4 lui gp, 0xe |
0x000b07f8 addiu gp, gp, 0xe7c |
0x000b07fc addu gp, gp, t9 | gp += t9;
| if (a1 == 0) {
0x000b0800 beqz a1, 0xb0904 | goto label_0;
| }
0x000b0804 nop |
| if (a0 == 0) {
0x000b0808 beqz a0, 0xb0904 | goto label_0;
| }
0x000b080c nop |
0x000b0810 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x000b0814 addiu sp, sp, -0x28 |
0x000b0818 lw v0, -0x4ad8(v0) | v0 = *(v0);
0x000b081c sw gp, 0x10(sp) | *(var_10h) = gp;
0x000b0820 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x000b0824 sw s0, 0x18(sp) | *(var_18h) = s0;
0x000b0828 sw ra, 0x24(sp) | *(var_24h) = ra;
0x000b082c sw s2, 0x20(sp) | *(var_20h) = s2;
0x000b0830 move s0, a0 | s0 = a0;
0x000b0834 move s1, a1 | s1 = a1;
0x000b0838 bnez v0, 0xb08c4 |
| while (1) {
0x000b083c lw v1, (s0) | v1 = *(s0);
0x000b0840 addiu v0, zero, 1 | v0 = 1;
0x000b0844 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
| if (v1 != v0) {
0x000b0848 beq v1, v0, 0xb0884 |
0x000b084c lw a0, 0x34(s0) | a0 = *((s0 + 13));
0x000b0850 addiu t9, t9, -0x3ab0 | t9 += -aav.0x00003ab0;
0x000b0854 move a1, s1 | a1 = s1;
0x000b0858 bal 0xac550 | fcn_000ac550 ();
0x000b085c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000b0860 beqz v0, 0xb08a8 | goto label_1;
| }
0x000b0864 lw ra, 0x24(sp) | ra = *(var_24h);
0x000b0868 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000b086c lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000b0870 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000b0874 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x000b0878 move a0, v0 | a0 = v0;
0x000b087c addiu sp, sp, 0x28 |
0x000b0880 b 0xb7cb8 | void (*0xb7cb8)() ();
| }
0x000b0884 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
0x000b0888 lw a0, 0x3c(s0) | a0 = *((s0 + 15));
0x000b088c move a2, s1 | a2 = s1;
0x000b0890 addiu t9, t9, -0x568 | t9 += -aav.0x00000568;
0x000b0894 move a1, zero | a1 = 0;
0x000b0898 bal 0xafa98 | fcn_000afa98 ();
0x000b089c addiu v1, zero, -1 | v1 = -1;
0x000b08a0 lw ra, 0x24(sp) | ra = *(var_24h);
| if (v0 == v1) {
0x000b08a4 bne v0, v1, 0xb08b0 |
| label_1:
0x000b08a8 move v0, zero | v0 = 0;
0x000b08ac lw ra, 0x24(sp) | ra = *(var_24h);
| }
0x000b08b0 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000b08b4 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000b08b8 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000b08bc addiu sp, sp, 0x28 |
0x000b08c0 jr ra | return v0;
0x000b08c4 lw t9, -0x7f34(gp) | t9 = *(gp);
0x000b08c8 bal 0xb35ac | sym_xmlGenericError ();
0x000b08cc nop |
0x000b08d0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b08d4 lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x000b08d8 lw s2, (v0) | s2 = *(v0);
0x000b08dc bal 0xb365c | sym_xmlGenericErrorContext ();
0x000b08e0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b08e4 lw a0, (v0) | a0 = *(v0);
0x000b08e8 move a2, s1 | a2 = s1;
0x000b08ec lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b08f0 move t9, s2 | t9 = s2;
0x000b08f4 addiu a1, a1, 0x2cec | a1 += aav.0x00002cec;
0x000b08f8 jalr t9 | t9 ();
0x000b08fc lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0900 b 0xb083c |
| }
| label_0:
0x000b0904 move v0, zero | v0 = 0;
0x000b0908 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb090c */
| #include <stdint.h>
|
; (fcn) sym.xmlACatalogResolvePublic () | void xmlACatalogResolvePublic () {
0x000b090c lui gp, 0xe |
0x000b0910 addiu gp, gp, 0xd64 |
0x000b0914 addu gp, gp, t9 | gp += t9;
| if (a1 == 0) {
0x000b0918 beqz a1, 0xb0a1c | goto label_0;
| }
0x000b091c nop |
| if (a0 == 0) {
0x000b0920 beqz a0, 0xb0a1c | goto label_0;
| }
0x000b0924 nop |
0x000b0928 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x000b092c addiu sp, sp, -0x28 |
0x000b0930 lw v0, -0x4ad8(v0) | v0 = *(v0);
0x000b0934 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000b0938 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x000b093c sw s0, 0x18(sp) | *(var_18h) = s0;
0x000b0940 sw ra, 0x24(sp) | *(var_24h) = ra;
0x000b0944 sw s2, 0x20(sp) | *(var_20h) = s2;
0x000b0948 move s0, a0 | s0 = a0;
0x000b094c move s1, a1 | s1 = a1;
0x000b0950 bnez v0, 0xb09dc |
| while (1) {
0x000b0954 lw v1, (s0) | v1 = *(s0);
0x000b0958 addiu v0, zero, 1 | v0 = 1;
0x000b095c lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
| if (v1 != v0) {
0x000b0960 beq v1, v0, 0xb099c |
0x000b0964 lw a0, 0x34(s0) | a0 = *((s0 + 13));
0x000b0968 addiu t9, t9, -0x24a4 | t9 += -0x24a4;
0x000b096c move a1, s1 | a1 = s1;
0x000b0970 bal 0xadb5c | fcn_000adb5c ();
0x000b0974 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000b0978 beqz v0, 0xb09c0 | goto label_1;
| }
0x000b097c lw ra, 0x24(sp) | ra = *(var_24h);
0x000b0980 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000b0984 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000b0988 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000b098c lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x000b0990 move a0, v0 | a0 = v0;
0x000b0994 addiu sp, sp, 0x28 |
0x000b0998 b 0xb7cb8 | void (*0xb7cb8)() ();
| }
0x000b099c lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
0x000b09a0 lw a0, 0x3c(s0) | a0 = *((s0 + 15));
0x000b09a4 move a2, zero | a2 = 0;
0x000b09a8 addiu t9, t9, -0x568 | t9 += -aav.0x00000568;
0x000b09ac move a1, s1 | a1 = s1;
0x000b09b0 bal 0xafa98 | fcn_000afa98 ();
0x000b09b4 addiu v1, zero, -1 | v1 = -1;
0x000b09b8 lw ra, 0x24(sp) | ra = *(var_24h);
| if (v0 == v1) {
0x000b09bc bne v0, v1, 0xb09c8 |
| label_1:
0x000b09c0 move v0, zero | v0 = 0;
0x000b09c4 lw ra, 0x24(sp) | ra = *(var_24h);
| }
0x000b09c8 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000b09cc lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000b09d0 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000b09d4 addiu sp, sp, 0x28 |
0x000b09d8 jr ra | return v0;
0x000b09dc lw t9, -0x7f34(gp) | t9 = *(gp);
0x000b09e0 bal 0xb35ac | sym_xmlGenericError ();
0x000b09e4 nop |
0x000b09e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b09ec lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x000b09f0 lw s2, (v0) | s2 = *(v0);
0x000b09f4 bal 0xb365c | sym_xmlGenericErrorContext ();
0x000b09f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b09fc lw a0, (v0) | a0 = *(v0);
0x000b0a00 move a2, s1 | a2 = s1;
0x000b0a04 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b0a08 move t9, s2 | t9 = s2;
0x000b0a0c addiu a1, a1, 0x2d00 | a1 += 0x2d00;
0x000b0a10 jalr t9 | t9 ();
0x000b0a14 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0a18 b 0xb0954 |
| }
| label_0:
0x000b0a1c move v0, zero | v0 = 0;
0x000b0a20 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb0a24 */
| #include <stdint.h>
|
; (fcn) sym.xmlACatalogResolve () | void xmlACatalogResolve () {
0x000b0a24 lui gp, 0xe |
0x000b0a28 addiu gp, gp, 0xc4c |
0x000b0a2c addu gp, gp, t9 | gp += t9;
| if (a1 == 0) {
0x000b0a30 beqz a1, 0xb0bb0 | goto label_5;
| }
0x000b0a34 nop |
| if (a0 == 0) {
| label_1:
0x000b0a38 beqz a0, 0xb0bb8 | goto label_6;
| }
0x000b0a3c nop |
0x000b0a40 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x000b0a44 addiu sp, sp, -0x30 |
0x000b0a48 lw v0, -0x4ad8(v0) | v0 = *(v0);
0x000b0a4c sw gp, 0x10(sp) | *(var_10h) = gp;
0x000b0a50 sw s2, 0x24(sp) | *(var_24h) = s2;
0x000b0a54 sw s1, 0x20(sp) | *(var_20h) = s1;
0x000b0a58 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000b0a5c sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000b0a60 sw s3, 0x28(sp) | *(var_28h) = s3;
0x000b0a64 move s2, a2 | s2 = a2;
0x000b0a68 move s1, a0 | s1 = a0;
0x000b0a6c move s0, a1 | s0 = a1;
| if (v0 != 0) {
0x000b0a70 bnez v0, 0xb0ad0 | goto label_7;
| }
| label_2:
0x000b0a74 lw v1, (s1) | v1 = *(s1);
0x000b0a78 addiu v0, zero, 1 | v0 = 1;
0x000b0a7c lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
| if (v1 == v0) {
0x000b0a80 beq v1, v0, 0xb0b2c | goto label_8;
| }
| do {
0x000b0a84 lw a0, 0x34(s1) | a0 = *((s1 + 13));
0x000b0a88 move v0, zero | v0 = 0;
| if (a0 == 0) {
0x000b0a8c beqz a0, 0xb0b50 | goto label_3;
| }
0x000b0a90 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
| if (s0 == 0) {
0x000b0a94 beqz s0, 0xb0b6c | goto label_9;
| }
0x000b0a98 addiu t9, t9, -0x24a4 | t9 += -0x24a4;
0x000b0a9c move a1, s0 | a1 = s0;
0x000b0aa0 bal 0xadb5c | fcn_000adb5c ();
0x000b0aa4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000b0aa8 beqz v0, 0xb0bfc | goto label_10;
| }
0x000b0aac lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000b0ab0 lw s3, 0x28(sp) | s3 = *(var_28h);
0x000b0ab4 lw s2, 0x24(sp) | s2 = *(var_24h);
0x000b0ab8 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000b0abc lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000b0ac0 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x000b0ac4 move a0, v0 | a0 = v0;
0x000b0ac8 addiu sp, sp, 0x30 |
0x000b0acc b 0xb7cb8 | void (*0xb7cb8)() ();
| label_7:
0x000b0ad0 lw t9, -0x7f34(gp) | t9 = *(gp);
| if (a1 == 0) {
0x000b0ad4 beqz a1, 0xb0c0c | goto label_11;
| }
| if (a2 == 0) {
0x000b0ad8 beqz a2, 0xb0bc0 | goto label_12;
| }
0x000b0adc nop |
0x000b0ae0 bal 0xb35ac | sym_xmlGenericError ();
0x000b0ae4 nop |
0x000b0ae8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0aec lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x000b0af0 lw s3, (v0) | s3 = *(v0);
0x000b0af4 bal 0xb365c | sym_xmlGenericErrorContext ();
0x000b0af8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0afc lw a0, (v0) | a0 = *(v0);
0x000b0b00 move a3, s2 | a3 = s2;
0x000b0b04 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b0b08 move a2, s0 | a2 = s0;
0x000b0b0c move t9, s3 | t9 = s3;
0x000b0b10 addiu a1, a1, 0x2d14 | a1 += 0x2d14;
0x000b0b14 jalr t9 | t9 ();
0x000b0b18 lw v1, (s1) | v1 = *(s1);
0x000b0b1c addiu v0, zero, 1 | v0 = 1;
0x000b0b20 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0b24 bne v1, v0, 0xb0a84 |
| } while (v1 != v0);
0x000b0b28 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
| label_8:
0x000b0b2c lw a0, 0x3c(s1) | a0 = *((s1 + 15));
0x000b0b30 move a2, s2 | a2 = s2;
0x000b0b34 addiu t9, t9, -0x568 | t9 += -aav.0x00000568;
0x000b0b38 move a1, s0 | a1 = s0;
0x000b0b3c bal 0xafa98 | fcn_000afa98 ();
0x000b0b40 addiu v1, zero, -1 | v1 = -1;
0x000b0b44 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (v0 != v1) {
0x000b0b48 bne v0, v1, 0xb0b54 | goto label_13;
| }
| label_0:
0x000b0b4c move v0, zero | v0 = 0;
| do {
| label_3:
0x000b0b50 lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_13:
0x000b0b54 lw s3, 0x28(sp) | s3 = *(var_28h);
0x000b0b58 lw s2, 0x24(sp) | s2 = *(var_24h);
0x000b0b5c lw s1, 0x20(sp) | s1 = *(var_20h);
0x000b0b60 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000b0b64 addiu sp, sp, 0x30 |
0x000b0b68 jr ra | return v0;
| label_9:
0x000b0b6c move v0, zero | v0 = 0;
0x000b0b70 beqz s2, 0xb0b50 |
| } while (s2 == 0);
| label_4:
0x000b0b74 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
0x000b0b78 addiu t9, t9, -0x3ab0 | t9 += -aav.0x00003ab0;
0x000b0b7c move a1, s2 | a1 = s2;
0x000b0b80 bal 0xac550 | fcn_000ac550 ();
0x000b0b84 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000b0b88 beqz v0, 0xb0b4c | goto label_0;
| }
0x000b0b8c lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000b0b90 lw s3, 0x28(sp) | s3 = *(var_28h);
0x000b0b94 lw s2, 0x24(sp) | s2 = *(var_24h);
0x000b0b98 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000b0b9c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000b0ba0 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x000b0ba4 move a0, v0 | a0 = v0;
0x000b0ba8 addiu sp, sp, 0x30 |
0x000b0bac b 0xb7cb8 | void (*0xb7cb8)() ();
| if (a2 != 0) {
| label_5:
0x000b0bb0 bnez a2, 0xb0a38 | goto label_1;
| }
0x000b0bb4 nop |
| label_6:
0x000b0bb8 move v0, zero | v0 = 0;
0x000b0bbc jr ra | return v0;
| label_12:
0x000b0bc0 bal 0xb35ac | sym_xmlGenericError ();
0x000b0bc4 nop |
0x000b0bc8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0bcc lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x000b0bd0 lw s3, (v0) | s3 = *(v0);
0x000b0bd4 bal 0xb365c | sym_xmlGenericErrorContext ();
0x000b0bd8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0bdc lw a0, (v0) | a0 = *(v0);
0x000b0be0 move a2, s0 | a2 = s0;
0x000b0be4 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b0be8 move t9, s3 | t9 = s3;
0x000b0bec addiu a1, a1, 0x2d30 | a1 += 0x2d30;
0x000b0bf0 jalr t9 | t9 ();
0x000b0bf4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0bf8 b 0xb0a74 | goto label_2;
| label_10:
0x000b0bfc move v0, zero | v0 = 0;
| if (s2 == 0) {
0x000b0c00 beqz s2, 0xb0b50 | goto label_3;
| }
0x000b0c04 lw a0, 0x34(s1) | a0 = *((s1 + 13));
0x000b0c08 b 0xb0b74 | goto label_4;
| label_11:
0x000b0c0c bal 0xb35ac | sym_xmlGenericError ();
0x000b0c10 nop |
0x000b0c14 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0c18 lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x000b0c1c lw s3, (v0) | s3 = *(v0);
0x000b0c20 bal 0xb365c | sym_xmlGenericErrorContext ();
0x000b0c24 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0c28 lw a0, (v0) | a0 = *(v0);
0x000b0c2c move a2, s2 | a2 = s2;
0x000b0c30 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b0c34 move t9, s3 | t9 = s3;
0x000b0c38 addiu a1, a1, 0x2d44 | a1 += 0x2d44;
0x000b0c3c jalr t9 | t9 ();
0x000b0c40 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0c44 b 0xb0a74 | goto label_2;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb0c48 */
| #include <stdint.h>
|
; (fcn) sym.xmlACatalogResolveURI () | void xmlACatalogResolveURI () {
0x000b0c48 lui gp, 0xe |
0x000b0c4c addiu gp, gp, 0xa28 |
0x000b0c50 addu gp, gp, t9 | gp += t9;
| if (a1 == 0) {
0x000b0c54 beqz a1, 0xb0d58 | goto label_0;
| }
0x000b0c58 nop |
| if (a0 == 0) {
0x000b0c5c beqz a0, 0xb0d58 | goto label_0;
| }
0x000b0c60 nop |
0x000b0c64 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x000b0c68 addiu sp, sp, -0x28 |
0x000b0c6c lw v0, -0x4ad8(v0) | v0 = *(v0);
0x000b0c70 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000b0c74 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x000b0c78 sw s0, 0x18(sp) | *(var_18h) = s0;
0x000b0c7c sw ra, 0x24(sp) | *(var_24h) = ra;
0x000b0c80 sw s2, 0x20(sp) | *(var_20h) = s2;
0x000b0c84 move s0, a0 | s0 = a0;
0x000b0c88 move s1, a1 | s1 = a1;
0x000b0c8c bnez v0, 0xb0d18 |
| while (1) {
0x000b0c90 lw v1, (s0) | v1 = *(s0);
0x000b0c94 addiu v0, zero, 1 | v0 = 1;
0x000b0c98 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
| if (v1 != v0) {
0x000b0c9c beq v1, v0, 0xb0ce0 |
0x000b0ca0 lw a0, 0x34(s0) | a0 = *((s0 + 13));
0x000b0ca4 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
| if (a0 == 0) {
0x000b0ca8 beqz a0, 0xb0cfc | goto label_1;
| }
0x000b0cac addiu t9, t9, -0x3ab0 | t9 += -aav.0x00003ab0;
0x000b0cb0 move a1, s1 | a1 = s1;
0x000b0cb4 bal 0xac550 | fcn_000ac550 ();
0x000b0cb8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000b0cbc beqz v0, 0xb0cfc | goto label_1;
| }
0x000b0cc0 lw ra, 0x24(sp) | ra = *(var_24h);
0x000b0cc4 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000b0cc8 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000b0ccc lw s0, 0x18(sp) | s0 = *(var_18h);
0x000b0cd0 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x000b0cd4 move a0, v0 | a0 = v0;
0x000b0cd8 addiu sp, sp, 0x28 |
0x000b0cdc b 0xb7cb8 | void (*0xb7cb8)() ();
| }
0x000b0ce0 lw a0, 0x3c(s0) | a0 = *((s0 + 15));
0x000b0ce4 addiu t9, t9, -0x1c0 | t9 += -aav.0x000001c0;
0x000b0ce8 move a1, s1 | a1 = s1;
0x000b0cec bal 0xafe40 | fcn_000afe40 ();
0x000b0cf0 addiu v1, zero, -1 | v1 = -1;
0x000b0cf4 lw ra, 0x24(sp) | ra = *(var_24h);
| if (v0 == v1) {
0x000b0cf8 bne v0, v1, 0xb0d04 |
| label_1:
0x000b0cfc move v0, zero | v0 = 0;
0x000b0d00 lw ra, 0x24(sp) | ra = *(var_24h);
| }
0x000b0d04 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000b0d08 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000b0d0c lw s0, 0x18(sp) | s0 = *(var_18h);
0x000b0d10 addiu sp, sp, 0x28 |
0x000b0d14 jr ra | return v0;
0x000b0d18 lw t9, -0x7f34(gp) | t9 = *(gp);
0x000b0d1c bal 0xb35ac | sym_xmlGenericError ();
0x000b0d20 nop |
0x000b0d24 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0d28 lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x000b0d2c lw s2, (v0) | s2 = *(v0);
0x000b0d30 bal 0xb365c | sym_xmlGenericErrorContext ();
0x000b0d34 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0d38 lw a0, (v0) | a0 = *(v0);
0x000b0d3c move a2, s1 | a2 = s1;
0x000b0d40 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b0d44 move t9, s2 | t9 = s2;
0x000b0d48 addiu a1, a1, 0x2d58 | a1 += 0x2d58;
0x000b0d4c jalr t9 | t9 ();
0x000b0d50 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0d54 b 0xb0c90 |
| }
| label_0:
0x000b0d58 move v0, zero | v0 = 0;
0x000b0d5c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb090c */
| #include <stdint.h>
|
; (fcn) sym.xmlACatalogResolvePublic () | void xmlACatalogResolvePublic () {
0x000b090c lui gp, 0xe |
0x000b0910 addiu gp, gp, 0xd64 |
0x000b0914 addu gp, gp, t9 | gp += t9;
| if (a1 == 0) {
0x000b0918 beqz a1, 0xb0a1c | goto label_0;
| }
0x000b091c nop |
| if (a0 == 0) {
0x000b0920 beqz a0, 0xb0a1c | goto label_0;
| }
0x000b0924 nop |
0x000b0928 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x000b092c addiu sp, sp, -0x28 |
0x000b0930 lw v0, -0x4ad8(v0) | v0 = *(v0);
0x000b0934 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000b0938 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x000b093c sw s0, 0x18(sp) | *(var_18h) = s0;
0x000b0940 sw ra, 0x24(sp) | *(var_24h) = ra;
0x000b0944 sw s2, 0x20(sp) | *(var_20h) = s2;
0x000b0948 move s0, a0 | s0 = a0;
0x000b094c move s1, a1 | s1 = a1;
0x000b0950 bnez v0, 0xb09dc |
| while (1) {
0x000b0954 lw v1, (s0) | v1 = *(s0);
0x000b0958 addiu v0, zero, 1 | v0 = 1;
0x000b095c lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
| if (v1 != v0) {
0x000b0960 beq v1, v0, 0xb099c |
0x000b0964 lw a0, 0x34(s0) | a0 = *((s0 + 13));
0x000b0968 addiu t9, t9, -0x24a4 | t9 += -0x24a4;
0x000b096c move a1, s1 | a1 = s1;
0x000b0970 bal 0xadb5c | fcn_000adb5c ();
0x000b0974 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000b0978 beqz v0, 0xb09c0 | goto label_1;
| }
0x000b097c lw ra, 0x24(sp) | ra = *(var_24h);
0x000b0980 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000b0984 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000b0988 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000b098c lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x000b0990 move a0, v0 | a0 = v0;
0x000b0994 addiu sp, sp, 0x28 |
0x000b0998 b 0xb7cb8 | void (*0xb7cb8)() ();
| }
0x000b099c lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
0x000b09a0 lw a0, 0x3c(s0) | a0 = *((s0 + 15));
0x000b09a4 move a2, zero | a2 = 0;
0x000b09a8 addiu t9, t9, -0x568 | t9 += -aav.0x00000568;
0x000b09ac move a1, s1 | a1 = s1;
0x000b09b0 bal 0xafa98 | fcn_000afa98 ();
0x000b09b4 addiu v1, zero, -1 | v1 = -1;
0x000b09b8 lw ra, 0x24(sp) | ra = *(var_24h);
| if (v0 == v1) {
0x000b09bc bne v0, v1, 0xb09c8 |
| label_1:
0x000b09c0 move v0, zero | v0 = 0;
0x000b09c4 lw ra, 0x24(sp) | ra = *(var_24h);
| }
0x000b09c8 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000b09cc lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000b09d0 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000b09d4 addiu sp, sp, 0x28 |
0x000b09d8 jr ra | return v0;
0x000b09dc lw t9, -0x7f34(gp) | t9 = *(gp);
0x000b09e0 bal 0xb35ac | sym_xmlGenericError ();
0x000b09e4 nop |
0x000b09e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b09ec lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x000b09f0 lw s2, (v0) | s2 = *(v0);
0x000b09f4 bal 0xb365c | sym_xmlGenericErrorContext ();
0x000b09f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b09fc lw a0, (v0) | a0 = *(v0);
0x000b0a00 move a2, s1 | a2 = s1;
0x000b0a04 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b0a08 move t9, s2 | t9 = s2;
0x000b0a0c addiu a1, a1, 0x2d00 | a1 += 0x2d00;
0x000b0a10 jalr t9 | t9 ();
0x000b0a14 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0a18 b 0xb0954 |
| }
| label_0:
0x000b0a1c move v0, zero | v0 = 0;
0x000b0a20 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb0c48 */
| #include <stdint.h>
|
; (fcn) sym.xmlACatalogResolveURI () | void xmlACatalogResolveURI () {
0x000b0c48 lui gp, 0xe |
0x000b0c4c addiu gp, gp, 0xa28 |
0x000b0c50 addu gp, gp, t9 | gp += t9;
| if (a1 == 0) {
0x000b0c54 beqz a1, 0xb0d58 | goto label_0;
| }
0x000b0c58 nop |
| if (a0 == 0) {
0x000b0c5c beqz a0, 0xb0d58 | goto label_0;
| }
0x000b0c60 nop |
0x000b0c64 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x000b0c68 addiu sp, sp, -0x28 |
0x000b0c6c lw v0, -0x4ad8(v0) | v0 = *(v0);
0x000b0c70 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000b0c74 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x000b0c78 sw s0, 0x18(sp) | *(var_18h) = s0;
0x000b0c7c sw ra, 0x24(sp) | *(var_24h) = ra;
0x000b0c80 sw s2, 0x20(sp) | *(var_20h) = s2;
0x000b0c84 move s0, a0 | s0 = a0;
0x000b0c88 move s1, a1 | s1 = a1;
0x000b0c8c bnez v0, 0xb0d18 |
| while (1) {
0x000b0c90 lw v1, (s0) | v1 = *(s0);
0x000b0c94 addiu v0, zero, 1 | v0 = 1;
0x000b0c98 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
| if (v1 != v0) {
0x000b0c9c beq v1, v0, 0xb0ce0 |
0x000b0ca0 lw a0, 0x34(s0) | a0 = *((s0 + 13));
0x000b0ca4 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
| if (a0 == 0) {
0x000b0ca8 beqz a0, 0xb0cfc | goto label_1;
| }
0x000b0cac addiu t9, t9, -0x3ab0 | t9 += -aav.0x00003ab0;
0x000b0cb0 move a1, s1 | a1 = s1;
0x000b0cb4 bal 0xac550 | fcn_000ac550 ();
0x000b0cb8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000b0cbc beqz v0, 0xb0cfc | goto label_1;
| }
0x000b0cc0 lw ra, 0x24(sp) | ra = *(var_24h);
0x000b0cc4 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000b0cc8 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000b0ccc lw s0, 0x18(sp) | s0 = *(var_18h);
0x000b0cd0 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x000b0cd4 move a0, v0 | a0 = v0;
0x000b0cd8 addiu sp, sp, 0x28 |
0x000b0cdc b 0xb7cb8 | void (*0xb7cb8)() ();
| }
0x000b0ce0 lw a0, 0x3c(s0) | a0 = *((s0 + 15));
0x000b0ce4 addiu t9, t9, -0x1c0 | t9 += -aav.0x000001c0;
0x000b0ce8 move a1, s1 | a1 = s1;
0x000b0cec bal 0xafe40 | fcn_000afe40 ();
0x000b0cf0 addiu v1, zero, -1 | v1 = -1;
0x000b0cf4 lw ra, 0x24(sp) | ra = *(var_24h);
| if (v0 == v1) {
0x000b0cf8 bne v0, v1, 0xb0d04 |
| label_1:
0x000b0cfc move v0, zero | v0 = 0;
0x000b0d00 lw ra, 0x24(sp) | ra = *(var_24h);
| }
0x000b0d04 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000b0d08 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000b0d0c lw s0, 0x18(sp) | s0 = *(var_18h);
0x000b0d10 addiu sp, sp, 0x28 |
0x000b0d14 jr ra | return v0;
0x000b0d18 lw t9, -0x7f34(gp) | t9 = *(gp);
0x000b0d1c bal 0xb35ac | sym_xmlGenericError ();
0x000b0d20 nop |
0x000b0d24 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0d28 lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x000b0d2c lw s2, (v0) | s2 = *(v0);
0x000b0d30 bal 0xb365c | sym_xmlGenericErrorContext ();
0x000b0d34 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0d38 lw a0, (v0) | a0 = *(v0);
0x000b0d3c move a2, s1 | a2 = s1;
0x000b0d40 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000b0d44 move t9, s2 | t9 = s2;
0x000b0d48 addiu a1, a1, 0x2d58 | a1 += 0x2d58;
0x000b0d4c jalr t9 | t9 ();
0x000b0d50 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b0d54 b 0xb0c90 |
| }
| label_0:
0x000b0d58 move v0, zero | v0 = 0;
0x000b0d5c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x22ba8 */
| #include <stdint.h>
|
; (fcn) sym.xmlAddEncodingAlias () | void xmlAddEncodingAlias () {
0x00022ba8 lui gp, 0x17 |
0x00022bac addiu gp, gp, -0x1538 |
0x00022bb0 addu gp, gp, t9 | gp += t9;
0x00022bb4 addiu sp, sp, -0xb0 |
0x00022bb8 sw s1, 0x8c(sp) | *(var_8ch_2) = s1;
0x00022bbc lw s1, -0x7000(gp) | s1 = *((gp - 7168));
0x00022bc0 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00022bc4 sw ra, 0xac(sp) | *(var_ach) = ra;
0x00022bc8 lw v0, (s1) | v0 = *(s1);
0x00022bcc sw fp, 0xa8(sp) | *(var_a8h) = fp;
0x00022bd0 sw s7, 0xa4(sp) | *(var_a4h) = s7;
0x00022bd4 sw s6, 0xa0(sp) | *(var_a0h) = s6;
0x00022bd8 sw s5, 0x9c(sp) | *(var_9ch) = s5;
0x00022bdc sw s4, 0x98(sp) | *(var_98h) = s4;
0x00022be0 sw s3, 0x94(sp) | *(var_94h_2) = s3;
0x00022be4 sw s2, 0x90(sp) | *(var_90h_2) = s2;
0x00022be8 sw s0, 0x88(sp) | *(var_88h_2) = s0;
0x00022bec sw v0, 0x84(sp) | *(var_84h_2) = v0;
0x00022bf0 addiu v1, zero, -1 | v1 = -1;
| if (a0 == 0) {
0x00022bf4 beqz a0, 0x22d58 | goto label_1;
| }
0x00022bf8 move s3, a1 | s3 = a1;
| if (a1 == 0) {
0x00022bfc beqz a1, 0x22dfc | goto label_2;
| }
0x00022c00 lw t9, -0x6f14(gp) | t9 = *((gp - 7109));
0x00022c04 move s2, a0 | s2 = a0;
0x00022c08 addiu s0, sp, 0x20 | s0 = sp + 0x20;
0x00022c0c jalr t9 | t9 ();
0x00022c10 lw a1, (v0) | a1 = *(v0);
0x00022c14 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00022c18 move a0, s0 | a0 = s0;
0x00022c1c move v1, zero | v1 = 0;
0x00022c20 addiu a2, zero, 0x63 | a2 = 0x63;
0x00022c24 b 0x22c34 |
| while (v0 != 0) {
0x00022c28 addiu v1, v1, 1 | v1++;
0x00022c2c addiu a0, a0, 1 | a0++;
| if (v1 == a2) {
0x00022c30 beq v1, a2, 0x22c50 | goto label_3;
| }
0x00022c34 addu v0, s3, v1 | v0 = s3 + v1;
0x00022c38 lb v0, (v0) | v0 = *(v0);
0x00022c3c sll v0, v0, 2 | v0 <<= 2;
0x00022c40 lwx v0, v0(a1) | __asm ("lwx v0, v0(a1)");
0x00022c44 seb v0, v0 | __asm ("seb v0, v0");
0x00022c48 sb v0, (a0) | *(a0) = v0;
0x00022c4c bnez v0, 0x22c28 |
| }
| label_3:
0x00022c50 lw s6, -0x7fe4(gp) | s6 = *((gp - 8185));
0x00022c54 addiu v0, sp, 0x88 | v0 = sp + 0x88;
0x00022c58 addu v1, v0, v1 | v1 = v0 + v1;
0x00022c5c lw s7, -0x56ec(s6) | s7 = *((s6 - 5563));
0x00022c60 sb zero, -0x68(v1) | *((v1 - 104)) = 0;
0x00022c64 lw fp, -0x7fe4(gp) | fp = *((gp - 8185));
| if (s7 == 0) {
0x00022c68 beqz s7, 0x22dc4 | goto label_4;
| }
0x00022c6c lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x00022c70 lw s5, -0x56f0(fp) | s5 = *(var_56f0h);
0x00022c74 lw a1, -0x56f4(v0) | a1 = *((v0 - 5565));
0x00022c78 slt v1, s5, a1 | v1 = (s5 < a1) ? 1 : 0;
0x00022c7c lw a2, -0x6e24(gp) | a2 = *(gp);
| if (v1 == 0) {
0x00022c80 beqz v1, 0x22d98 | goto label_5;
| }
| label_0:
0x00022c84 move s4, s7 | s4 = s7;
| if (s5 <= 0) {
0x00022c88 blez s5, 0x22d08 | goto label_6;
| }
0x00022c8c move s3, zero | s3 = 0;
0x00022c90 b 0x22ca0 |
| while (v1 != 0) {
0x00022c94 addiu s3, s3, 1 | s3++;
0x00022c98 addiu s4, s4, 8 | s4 += 8;
| if (s3 == s5) {
0x00022c9c beq s3, s5, 0x22d08 | goto label_6;
| }
0x00022ca0 lw t9, -0x7140(gp) | t9 = *(gp);
0x00022ca4 lw a0, 4(s4) | a0 = *((s4 + 1));
0x00022ca8 move a1, s0 | a1 = s0;
0x00022cac jalr t9 | t9 ();
0x00022cb0 move v1, v0 | v1 = v0;
0x00022cb4 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00022cb8 sll v0, s3, 3 | v0 = s3 << 3;
0x00022cbc bnez v1, 0x22c94 |
| }
0x00022cc0 lw a1, -0x7158(gp) | a1 = *(gp);
0x00022cc4 lw a0, (s4) | a0 = *(s4);
0x00022cc8 sw v1, 0x1c(sp) | *(var_1ch_2) = v1;
0x00022ccc lw t9, (a1) | t9 = *(a1);
0x00022cd0 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00022cd4 jalr t9 | t9 ();
0x00022cd8 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00022cdc lw s0, -0x56ec(s6) | s0 = *((s6 - 5563));
0x00022ce0 lw v0, 0x18(sp) | v0 = *(var_18h);
0x00022ce4 lw a1, -0x6e34(gp) | a1 = *(gp);
0x00022ce8 addu s0, s0, v0 | s0 += v0;
0x00022cec lw t9, (a1) | t9 = *(a1);
0x00022cf0 move a0, s2 | a0 = s2;
0x00022cf4 jalr t9 | t9 ();
0x00022cf8 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00022cfc sw v0, (s0) | *(s0) = v0;
0x00022d00 lw v1, 0x1c(sp) | v1 = *(var_1ch_2);
0x00022d04 b 0x22d58 | goto label_1;
| label_6:
0x00022d08 lw s3, -0x6e34(gp) | s3 = *(gp);
0x00022d0c move a0, s2 | a0 = s2;
0x00022d10 sll s5, s5, 3 | s5 <<= 3;
0x00022d14 lw t9, (s3) | t9 = *(s3);
0x00022d18 addu s5, s7, s5 | s5 = s7 + s5;
0x00022d1c jalr t9 | t9 ();
0x00022d20 lw a1, -0x56f0(fp) | a1 = *(var_56f0h);
0x00022d24 lw v1, -0x56ec(s6) | v1 = *((s6 - 5563));
0x00022d28 lw t9, (s3) | t9 = *(s3);
0x00022d2c sll a1, a1, 3 | a1 <<= 3;
0x00022d30 move a0, s0 | a0 = s0;
0x00022d34 sw v0, (s5) | *(s5) = v0;
0x00022d38 addu s0, v1, a1 | s0 = v1 + a1;
0x00022d3c jalr t9 | t9 ();
0x00022d40 lw v1, -0x56f0(fp) | v1 = *(var_56f0h);
0x00022d44 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00022d48 addiu v1, v1, 1 | v1++;
0x00022d4c sw v1, -0x56f0(fp) | *(fp) = v1;
0x00022d50 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x00022d54 move v1, zero | v1 = 0;
| do {
| label_1:
0x00022d58 lw a1, 0x84(sp) | a1 = *(var_84h_2);
0x00022d5c lw a0, (s1) | a0 = *(s1);
0x00022d60 move v0, v1 | v0 = v1;
| if (a1 != a0) {
0x00022d64 bne a1, a0, 0x22e04 | goto label_7;
| }
0x00022d68 lw ra, 0xac(sp) | ra = *(var_ach);
0x00022d6c lw fp, 0xa8(sp) | fp = *(var_a8h);
0x00022d70 lw s7, 0xa4(sp) | s7 = *(var_a4h);
0x00022d74 lw s6, 0xa0(sp) | s6 = *(var_a0h);
0x00022d78 lw s5, 0x9c(sp) | s5 = *(var_9ch);
0x00022d7c lw s4, 0x98(sp) | s4 = *(var_98h);
0x00022d80 lw s3, 0x94(sp) | s3 = *(var_94h_2);
0x00022d84 lw s2, 0x90(sp) | s2 = *(var_90h_2);
0x00022d88 lw s1, 0x8c(sp) | s1 = *(var_8ch_2);
0x00022d8c lw s0, 0x88(sp) | s0 = *(var_88h_2);
0x00022d90 addiu sp, sp, 0xb0 |
0x00022d94 jr ra | return v1;
| label_5:
0x00022d98 sll v1, a1, 1 | v1 = a1 << 1;
0x00022d9c move a0, s7 | a0 = s7;
0x00022da0 lw t9, (a2) | t9 = *(a2);
0x00022da4 sll a1, a1, 4 | a1 <<= 4;
0x00022da8 sw v1, -0x56f4(v0) | *((v0 - 5565)) = v1;
0x00022dac jalr t9 | t9 ();
0x00022db0 move s7, v0 | s7 = v0;
0x00022db4 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00022db8 lw s5, -0x56f0(fp) | s5 = *(var_56f0h);
0x00022dbc sw v0, -0x56ec(s6) | *((s6 - 5563)) = v0;
0x00022dc0 b 0x22c84 | goto label_0;
| label_4:
0x00022dc4 lw v0, -0x716c(gp) | v0 = *(gp);
0x00022dc8 addiu v1, zero, 0x14 | v1 = 0x14;
0x00022dcc addiu a0, zero, 0xa0 | a0 = 0xa0;
0x00022dd0 lw t9, (v0) | t9 = *(v0);
0x00022dd4 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x00022dd8 sw zero, -0x56f0(fp) | *(fp) = 0;
0x00022ddc sw v1, -0x56f4(v0) | *((v0 - 5565)) = v1;
0x00022de0 jalr t9 | t9 ();
0x00022de4 move s7, v0 | s7 = v0;
0x00022de8 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00022dec sw v0, -0x56ec(s6) | *((s6 - 5563)) = v0;
| if (v0 != 0) {
0x00022df0 beqz v0, 0x22dfc |
0x00022df4 lw s5, -0x56f0(fp) | s5 = *(var_56f0h);
0x00022df8 b 0x22c84 | goto label_0;
| }
| label_2:
0x00022dfc addiu v1, zero, -1 | v1 = -1;
0x00022e00 b 0x22d58 |
| } while (1);
| label_7:
0x00022e04 lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x00022e08 jalr t9 | t9 ();
0x00022e0c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xba684 */
| #include <stdint.h>
|
; (fcn) sym.xmlBufAddHead () | void xmlBufAddHead () {
0x000ba684 lui gp, 0xd |
0x000ba688 addiu gp, gp, 0x6fec |
0x000ba68c addu gp, gp, t9 | gp += t9;
0x000ba690 addiu sp, sp, -0x30 |
0x000ba694 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000ba698 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000ba69c sw s3, 0x28(sp) | *(var_28h) = s3;
0x000ba6a0 sw s2, 0x24(sp) | *(var_24h) = s2;
0x000ba6a4 sw s1, 0x20(sp) | *(var_20h) = s1;
0x000ba6a8 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000ba6ac addiu s2, zero, -1 | s2 = -1;
| if (a0 == 0) {
0x000ba6b0 beqz a0, 0xba800 | goto label_2;
| }
0x000ba6b4 lw s2, 0x20(a0) | s2 = *((a0 + 8));
0x000ba6b8 move s0, a0 | s0 = a0;
| if (s2 != 0) {
0x000ba6bc bnez s2, 0xba8e4 | goto label_3;
| }
0x000ba6c0 lw v1, 8(a0) | v1 = *((a0 + 2));
0x000ba6c4 lw v0, 0x18(a0) | v0 = *((a0 + 6));
0x000ba6c8 move s3, a1 | s3 = a1;
0x000ba6cc move s1, a2 | s1 = a2;
| if (v0 != v1) {
0x000ba6d0 beq v0, v1, 0xba6e8 |
0x000ba6d4 lui v0, 0x7fff | v0 = 0x7fffffff;
0x000ba6d8 ori v0, v0, 0xffff |
0x000ba6dc sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x000ba6e0 sw v1, 0x18(a0) | *((a0 + 6)) = v1;
| if (v0 == 0) {
0x000ba6e4 bnel v0, zero, 0xba6e8 | goto label_4;
| }
| }
| label_4:
0x000ba6e8 lw v1, 4(s0) | v1 = *((s0 + 1));
0x000ba6ec lw v0, 0x14(s0) | v0 = *((s0 + 5));
0x000ba6f0 lui v0, 0x7fff | v0 = 0x7fff0000;
| if (v0 != v1) {
0x000ba6f4 beq v0, v1, 0xba708 |
0x000ba6f8 ori v0, v0, 0xffff | v0 |= 0xffff;
0x000ba6fc sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x000ba700 sw v1, 0x14(s0) | *((s0 + 5)) = v1;
| if (v0 == 0) {
0x000ba704 bnel v0, zero, 0xba708 | goto label_5;
| }
| }
| label_5:
0x000ba708 lw v1, 0xc(s0) | v1 = *((s0 + 3));
0x000ba70c addiu v0, zero, 2 | v0 = 2;
| if (v1 == v0) {
0x000ba710 beql v1, v0, 0xba800 | goto label_2;
| }
0x000ba714 addiu s2, zero, -1 | s2 = -1;
0x000ba718 slti v0, s1, -1 | v0 = (s1 < -1) ? 1 : 0;
| if (s3 == 0) {
0x000ba71c beqz s3, 0xba8e4 | goto label_3;
| }
0x000ba720 addiu s2, zero, -1 | s2 = -1;
| if (v0 == 0) {
0x000ba724 bnel v0, zero, 0xba800 | goto label_2;
| }
0x000ba728 addiu v0, zero, -1 | v0 = -1;
| if (s1 == 0) {
0x000ba72c beqz s1, 0xba860 | goto label_6;
| }
0x000ba730 lw t9, -0x7fcc(gp) | t9 = *((gp - 8179));
| if (s1 == v0) {
0x000ba734 beq s1, v0, 0xba8b0 | goto label_7;
| }
| label_1:
0x000ba738 addiu v0, zero, 3 | v0 = 3;
| if (s1 <= 0) {
0x000ba73c blez s1, 0xba8e4 | goto label_3;
| }
0x000ba740 lw v1, 0xc(s0) | v1 = *((s0 + 3));
| if (v1 == v0) {
0x000ba744 beql v1, v0, 0xba820 | goto label_8;
| }
0x000ba748 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x000ba74c lw a2, 0x14(s0) | a2 = *((s0 + 5));
0x000ba750 lw v0, 0x18(s0) | v0 = *((s0 + 6));
0x000ba754 addiu a1, a2, 2 | a1 = a2 + 2;
0x000ba758 addu a1, a1, s1 | a1 += s1;
0x000ba75c sltu v0, v0, a1 | v0 = (v0 < a1) ? 1 : 0;
0x000ba760 addiu v0, zero, 5 | v0 = 5;
| if (v0 == 0) {
0x000ba764 beqz v0, 0xba798 | goto label_9;
| }
0x000ba768 lui v0, 0x98 | v0 = 0x980000;
| if (v1 == v0) {
0x000ba76c bne v1, v0, 0xba780 |
0x000ba770 ori v0, v0, 0x9680 | v0 |= aav.0x00009680;
0x000ba774 sltu v0, a1, v0 | v0 = (a1 < v0) ? 1 : 0;
| if (v0 == 0) {
0x000ba778 beql v0, zero, 0xba93c | goto label_10;
| }
0x000ba77c lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
| }
0x000ba780 lw t9, -0x6e4c(gp) | t9 = *(gp);
| do {
0x000ba784 move a0, s0 | a0 = s0;
0x000ba788 jalr t9 | t9 ();
0x000ba78c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000ba790 beqz v0, 0xba8c4 | goto label_11;
| }
0x000ba794 lw a2, 0x14(s0) | a2 = *((s0 + 5));
| label_9:
0x000ba798 lw a1, (s0) | a1 = *(s0);
| label_0:
0x000ba79c lw t9, -0x70b0(gp) | t9 = *((gp - 7212));
0x000ba7a0 addu a0, a1, s1 | a0 = a1 + s1;
0x000ba7a4 jalr t9 | t9 ();
0x000ba7a8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000ba7ac lw a0, (s0) | a0 = *(s0);
0x000ba7b0 move a2, s1 | a2 = s1;
0x000ba7b4 lw t9, -0x70b0(gp) | t9 = *((gp - 7212));
0x000ba7b8 move a1, s3 | a1 = s3;
0x000ba7bc jalr t9 | t9 ();
0x000ba7c0 lw v0, 0x14(s0) | v0 = *((s0 + 5));
0x000ba7c4 lw v1, (s0) | v1 = *(s0);
0x000ba7c8 addu s1, s1, v0 | s1 += v0;
0x000ba7cc addu v0, v1, s1 | v0 = v1 + s1;
0x000ba7d0 sw s1, 0x14(s0) | *((s0 + 5)) = s1;
0x000ba7d4 sb zero, (v0) | *(v0) = 0;
0x000ba7d8 lw v1, 0x18(s0) | v1 = *((s0 + 6));
0x000ba7dc lui v0, 0x7fff | v0 = 0x7fffffff;
0x000ba7e0 ori v0, v0, 0xffff |
0x000ba7e4 lw a0, 0x14(s0) | a0 = *((s0 + 5));
0x000ba7e8 sltu a1, v1, v0 | a1 = (v1 < v0) ? 1 : 0;
| if (a1 != 0) {
0x000ba7ec movz v1, v0, a1 | v1 = v0;
| }
0x000ba7f0 sltu v0, a0, v0 | v0 = (a0 < v0) ? 1 : 0;
0x000ba7f4 sw v1, 8(s0) | *((s0 + 2)) = v1;
| if (v0 == 0) {
0x000ba7f8 beqz v0, 0xba884 | goto label_12;
| }
0x000ba7fc sw a0, 4(s0) | *((s0 + 1)) = a0;
| label_2:
0x000ba800 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000ba804 move v0, s2 | v0 = s2;
0x000ba808 lw s3, 0x28(sp) | s3 = *(var_28h);
0x000ba80c lw s2, 0x24(sp) | s2 = *(var_24h);
0x000ba810 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000ba814 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000ba818 addiu sp, sp, 0x30 |
0x000ba81c jr ra | return v0;
| if (v0 != 0) {
| label_8:
0x000ba820 beql v0, zero, 0xba840 |
0x000ba824 lw a2, 0x14(s0) | a2 = *((s0 + 5));
0x000ba828 lw a0, (s0) | a0 = *(s0);
0x000ba82c subu v0, a0, v0 | __asm ("subu v0, a0, v0");
0x000ba830 sltu v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x000ba834 subu a0, a0, s1 | __asm ("subu a0, a0, s1");
| if (v0 != 0) {
0x000ba838 bnez v0, 0xba8ec | goto label_13;
| }
0x000ba83c lw a2, 0x14(s0) | a2 = *((s0 + 5));
| }
0x000ba840 lw v0, 0x18(s0) | v0 = *((s0 + 6));
0x000ba844 addiu a1, a2, 2 | a1 = a2 + 2;
0x000ba848 addu a1, a1, s1 | a1 += s1;
0x000ba84c sltu v0, v0, a1 | v0 = (v0 < a1) ? 1 : 0;
0x000ba850 lw t9, -0x6e4c(gp) | t9 = *(gp);
0x000ba854 bnez v0, 0xba784 |
| } while (v0 != 0);
0x000ba858 lw a1, (s0) | a1 = *(s0);
0x000ba85c b 0xba79c | goto label_0;
| label_6:
0x000ba860 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000ba864 move s2, zero | s2 = 0;
0x000ba868 move v0, s2 | v0 = s2;
0x000ba86c lw s3, 0x28(sp) | s3 = *(var_28h);
0x000ba870 lw s2, 0x24(sp) | s2 = *(var_24h);
0x000ba874 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000ba878 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000ba87c addiu sp, sp, 0x30 |
0x000ba880 jr ra | return v0;
| do {
| label_12:
0x000ba884 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000ba888 lui v0, 0x7fff | v0 = 0x7fffffff;
0x000ba88c ori v0, v0, 0xffff |
0x000ba890 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x000ba894 lw s3, 0x28(sp) | s3 = *(var_28h);
0x000ba898 move v0, s2 | v0 = s2;
0x000ba89c lw s1, 0x20(sp) | s1 = *(var_20h);
0x000ba8a0 lw s2, 0x24(sp) | s2 = *(var_24h);
0x000ba8a4 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000ba8a8 addiu sp, sp, 0x30 |
0x000ba8ac jr ra | return v0;
| label_7:
0x000ba8b0 move a0, s3 | a0 = s3;
0x000ba8b4 bal 0xb8358 | sym_xmlStrlen ();
0x000ba8b8 move s1, v0 | s1 = v0;
0x000ba8bc lw gp, 0x10(sp) | gp = *(var_10h);
0x000ba8c0 b 0xba738 | goto label_1;
| label_11:
0x000ba8c4 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000ba8c8 lw t9, -0x7614(gp) | t9 = *((gp - 7557));
0x000ba8cc addiu a1, a1, -0x670c | a1 += -0x670c;
0x000ba8d0 addiu t9, t9, -0x6e90 | t9 += -0x6e90;
0x000ba8d4 move a0, s0 | a0 = s0;
0x000ba8d8 bal 0xb9170 | fcn_000b9170 ();
0x000ba8dc addiu s2, zero, 2 | s2 = 2;
0x000ba8e0 b 0xba800 | goto label_2;
| label_3:
0x000ba8e4 addiu s2, zero, -1 | s2 = -1;
0x000ba8e8 b 0xba800 | goto label_2;
| label_13:
0x000ba8ec lw t9, -0x70b0(gp) | t9 = *((gp - 7212));
0x000ba8f0 sw a0, (s0) | *(s0) = a0;
0x000ba8f4 move a2, s1 | a2 = s1;
0x000ba8f8 move a1, s3 | a1 = s3;
0x000ba8fc jalr t9 | t9 ();
0x000ba900 lw v0, 0x18(s0) | v0 = *((s0 + 6));
0x000ba904 lw a0, 0x14(s0) | a0 = *((s0 + 5));
0x000ba908 lui v1, 0x7fff | v1 = 0x7fff0000;
0x000ba90c addu v0, s1, v0 | v0 = s1 + v0;
0x000ba910 ori v1, v1, 0xffff | v1 |= 0xffff;
0x000ba914 addu s1, s1, a0 | s1 += a0;
0x000ba918 sltu a1, v0, v1 | a1 = (v0 < v1) ? 1 : 0;
0x000ba91c sw v0, 0x18(s0) | *((s0 + 6)) = v0;
0x000ba920 sltu a0, s1, v1 | a0 = (s1 < v1) ? 1 : 0;
| if (a1 != 0) {
0x000ba924 movz v0, v1, a1 | v0 = v1;
| }
0x000ba928 sw s1, 0x14(s0) | *((s0 + 5)) = s1;
0x000ba92c sw v0, 8(s0) | *((s0 + 2)) = v0;
0x000ba930 beqz a0, 0xba884 |
| } while (a0 == 0);
0x000ba934 sw s1, 4(s0) | *((s0 + 1)) = s1;
0x000ba938 b 0xba800 | goto label_2;
| label_10:
0x000ba93c lw t9, -0x7614(gp) | t9 = *((gp - 7557));
0x000ba940 addiu a1, a1, 0x3920 | a1 += 0x3920;
0x000ba944 addiu t9, t9, -0x6e90 | t9 += -0x6e90;
0x000ba948 move a0, s0 | a0 = s0;
0x000ba94c bal 0xb9170 | fcn_000b9170 ();
0x000ba950 addiu s2, zero, -1 | s2 = -1;
0x000ba954 b 0xba800 | goto label_2;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb9d88 */
| #include <stdint.h>
|
; (fcn) sym.xmlBufEnd () | void xmlBufEnd () {
| if (a0 != 0) {
0x000b9d88 beqz a0, 0xb9e04 |
0x000b9d8c nop |
0x000b9d90 lw v0, 0x20(a0) | v0 = *((a0 + 8));
| if (v0 == 0) {
0x000b9d94 bnez v0, 0xb9dfc |
0x000b9d98 nop |
0x000b9d9c lw v1, 8(a0) | v1 = *((a0 + 2));
0x000b9da0 lw v0, 0x18(a0) | v0 = *((a0 + 6));
0x000b9da4 lui v0, 0x7fff | v0 = 0x7fff0000;
| if (v0 != v1) {
0x000b9da8 beq v0, v1, 0xb9dbc |
0x000b9dac ori v0, v0, 0xffff | v0 |= 0xffff;
0x000b9db0 sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x000b9db4 sw v1, 0x18(a0) | *((a0 + 6)) = v1;
| if (v0 == 0) {
0x000b9db8 bnel v0, zero, 0xb9dbc | goto label_0;
| }
| }
| label_0:
0x000b9dbc lw a1, 0x14(a0) | a1 = *((a0 + 5));
0x000b9dc0 lw v1, 4(a0) | v1 = *((a0 + 1));
| if (a1 != v1) {
0x000b9dc4 beql a1, v1, 0xb9de8 |
0x000b9dc8 lw v0, (a0) | v0 = *(a0);
0x000b9dcc lui v0, 0x7fff | v0 = 0x7fffffff;
0x000b9dd0 ori v0, v0, 0xffff |
0x000b9dd4 sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
| if (v0 == 0) {
0x000b9dd8 beql v0, zero, 0xb9df0 | goto label_1;
| }
0x000b9ddc lw v0, (a0) | v0 = *(a0);
0x000b9de0 sw v1, 0x14(a0) | *((a0 + 5)) = v1;
0x000b9de4 lw v0, (a0) | v0 = *(a0);
| }
0x000b9de8 addu v0, v0, v1 | v0 += v1;
0x000b9dec jr ra | return v0;
| label_1:
0x000b9df0 move v1, a1 | v1 = a1;
0x000b9df4 addu v0, v0, v1 | v0 += v1;
0x000b9df8 jr ra | return v0;
| }
0x000b9dfc move v0, zero | v0 = 0;
0x000b9e00 jr ra | return v0;
| }
0x000b9e04 move v0, zero | v0 = 0;
0x000b9e08 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb9ec0 */
| #include <stdint.h>
|
; (fcn) sym.xmlBufErase () | void xmlBufErase () {
| if (a0 != 0) {
0x000b9ec0 beqz a0, 0xb9f60 |
0x000b9ec4 nop |
0x000b9ec8 lw v0, 0x20(a0) | v0 = *((a0 + 8));
| if (v0 != 0) {
0x000b9ecc bnez v0, 0xb9f60 | goto label_0;
| }
0x000b9ed0 nop |
0x000b9ed4 lw v1, 8(a0) | v1 = *((a0 + 2));
0x000b9ed8 lw a2, 0x18(a0) | a2 = *((a0 + 6));
0x000b9edc lui a2, 0x7fff | a2 = 0x7fff0000;
| if (a2 != v1) {
0x000b9ee0 beq a2, v1, 0xb9ef4 |
0x000b9ee4 ori a2, a2, 0xffff | a2 |= 0xffff;
0x000b9ee8 sltu a2, v1, a2 | a2 = (v1 < a2) ? 1 : 0;
0x000b9eec sw v1, 0x18(a0) | *((a0 + 6)) = v1;
| if (a2 == 0) {
0x000b9ef0 bnel a2, zero, 0xb9ef4 | goto label_1;
| }
| }
| label_1:
0x000b9ef4 lw a3, 0x14(a0) | a3 = *((a0 + 5));
0x000b9ef8 lw v1, 4(a0) | v1 = *((a0 + 1));
0x000b9efc lui a2, 0x7fff | a2 = 0x7fff0000;
| if (a3 != v1) {
0x000b9f00 beq a3, v1, 0xb9f18 |
0x000b9f04 ori a2, a2, 0xffff | a2 |= 0xffff;
0x000b9f08 sltu a2, v1, a2 | a2 = (v1 < a2) ? 1 : 0;
| if (a2 == 0) {
0x000b9f0c beql a2, zero, 0xb9f18 | goto label_2;
| }
0x000b9f10 move v1, a3 | v1 = a3;
0x000b9f14 sw v1, 0x14(a0) | *((a0 + 5)) = v1;
| }
| label_2:
0x000b9f18 sltu a2, v1, a1 | a2 = (v1 < a1) ? 1 : 0;
0x000b9f1c subu v1, v1, a1 | __asm ("subu v1, v1, a1");
| if (a2 != 0) {
0x000b9f20 bnez a2, 0xb9f60 | goto label_0;
| }
0x000b9f24 lw a2, (a0) | a2 = *(a0);
0x000b9f28 addu a2, a2, v1 | a2 += v1;
0x000b9f2c sw v1, 0x14(a0) | *((a0 + 5)) = v1;
0x000b9f30 sb zero, (a2) | *(a2) = 0;
0x000b9f34 lw a1, 0x18(a0) | a1 = *((a0 + 6));
0x000b9f38 lw a3, 0x14(a0) | a3 = *((a0 + 5));
0x000b9f3c lui v1, 0x7fff | v1 = 0x7fffffff;
0x000b9f40 ori v1, v1, 0xffff |
0x000b9f44 sltu t0, a1, v1 | t0 = (a1 < v1) ? 1 : 0;
0x000b9f48 sltu a2, a3, v1 | a2 = (a3 < v1) ? 1 : 0;
| if (t0 != 0) {
0x000b9f4c movz a1, v1, t0 | a1 = v1;
| }
| if (a2 == 0) {
0x000b9f50 movn v1, a3, a2 | v1 = a3;
| }
0x000b9f54 sw a1, 8(a0) | *((a0 + 2)) = a1;
0x000b9f58 sw v1, 4(a0) | *((a0 + 1)) = v1;
0x000b9f5c jr ra | return v0;
| }
| label_0:
0x000b9f60 addiu v0, zero, -1 | v0 = -1;
0x000b9f64 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x58758 */
| #include <stdint.h>
|
; (fcn) sym.xmlBufferCCat () | void xmlBufferCCat () {
0x00058758 lui gp, 0x14 |
0x0005875c addiu gp, gp, -0x70e8 |
0x00058760 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00058764 beqz a0, 0x588a0 | goto label_1;
| }
0x00058768 nop |
0x0005876c addiu sp, sp, -0x30 |
0x00058770 lw v1, 0xc(a0) | v1 = *((a0 + 3));
0x00058774 addiu v0, zero, 2 | v0 = 2;
0x00058778 sw gp, 0x18(sp) | *(var_28h) = gp;
0x0005877c sw s0, 0x20(sp) | *(var_30h) = s0;
0x00058780 sw ra, 0x2c(sp) | *(var_3ch) = ra;
0x00058784 sw s2, 0x28(sp) | *(var_38h) = s2;
0x00058788 sw s1, 0x24(sp) | *(var_34h) = s1;
0x0005878c move s0, a0 | s0 = a0;
| if (v1 == v0) {
0x00058790 beq v1, v0, 0x58898 | goto label_2;
| }
0x00058794 move s1, a1 | s1 = a1;
| if (a1 == 0) {
0x00058798 beqz a1, 0x58898 | goto label_2;
| }
0x0005879c lb v0, (a1) | v0 = *(a1);
0x000587a0 lw s2, -0x7b3c(gp) | s2 = *((gp - 7887));
| if (v0 != 0) {
0x000587a4 bnez v0, 0x587d4 | goto label_3;
| }
0x000587a8 lw v1, (s0) | v1 = *(s0);
0x000587ac b 0x58830 | goto label_4;
| do {
0x000587b0 lb a0, (s1) | a0 = *(s1);
0x000587b4 addu v1, v1, v0 | v1 += v0;
0x000587b8 addiu s1, s1, 1 | s1++;
0x000587bc addiu v0, v0, 1 | v0++;
0x000587c0 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x000587c4 sb a0, (v1) | *(v1) = a0;
0x000587c8 lb v0, (s1) | v0 = *(s1);
| if (v0 == 0) {
0x000587cc beql v0, zero, 0x58830 | goto label_4;
| }
0x000587d0 lw v1, (s0) | v1 = *(s0);
| label_3:
0x000587d4 lw v0, 4(s0) | v0 = *((s0 + 1));
| label_0:
0x000587d8 lw v1, 8(s0) | v1 = *((s0 + 2));
0x000587dc addiu a1, v0, 0xa | a1 = v0 + 0xa;
0x000587e0 sltu v1, a1, v1 | v1 = (a1 < v1) ? 1 : 0;
0x000587e4 lw v1, (s0) | v1 = *(s0);
0x000587e8 bnel v1, zero, 0x587b0 |
| } while (v1 == 0);
0x000587ec move t9, s2 | t9 = s2;
0x000587f0 move a0, s0 | a0 = s0;
0x000587f4 bal 0x58118 | sym_xmlBufferResize ();
0x000587f8 lw gp, 0x18(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x000587fc beqz v0, 0x58858 | goto label_5;
| }
0x00058800 lw v0, 4(s0) | v0 = *((s0 + 1));
0x00058804 lw v1, (s0) | v1 = *(s0);
0x00058808 lb a0, (s1) | a0 = *(s1);
0x0005880c addu v1, v1, v0 | v1 += v0;
0x00058810 addiu s1, s1, 1 | s1++;
0x00058814 addiu v0, v0, 1 | v0++;
0x00058818 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x0005881c sb a0, (v1) | *(v1) = a0;
0x00058820 lb v0, (s1) | v0 = *(s1);
0x00058824 lw v0, 4(s0) | v0 = *((s0 + 1));
| if (v0 == 0) {
0x00058828 bnel v0, zero, 0x587d8 | goto label_0;
| }
0x0005882c lw v1, (s0) | v1 = *(s0);
| label_4:
0x00058830 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00058834 move v0, zero | v0 = 0;
0x00058838 addu v1, v1, a0 | v1 += a0;
0x0005883c sb zero, (v1) | *(v1) = 0;
| do {
0x00058840 lw ra, 0x2c(sp) | ra = *(var_3ch);
0x00058844 lw s2, 0x28(sp) | s2 = *(var_38h);
0x00058848 lw s1, 0x24(sp) | s1 = *(var_34h);
0x0005884c lw s0, 0x20(sp) | s0 = *(var_30h);
0x00058850 addiu sp, sp, 0x30 |
0x00058854 jr ra | return v0;
| label_5:
0x00058858 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x0005885c lw t9, -0x6db8(gp) | t9 = *((gp - 7022));
0x00058860 addiu v0, v0, -0x670c | v0 += -0x670c;
0x00058864 sw v0, 0x10(sp) | *(var_20h) = v0;
0x00058868 move a3, zero | a3 = 0;
0x0005886c move a2, zero | a2 = 0;
0x00058870 addiu a1, zero, 2 | a1 = 2;
0x00058874 addiu a0, zero, 2 | a0 = 2;
0x00058878 jalr t9 | t9 ();
0x0005887c lw ra, 0x2c(sp) | ra = *(var_3ch);
0x00058880 lw s2, 0x28(sp) | s2 = *(var_38h);
0x00058884 lw s1, 0x24(sp) | s1 = *(var_34h);
0x00058888 lw s0, 0x20(sp) | s0 = *(var_30h);
0x0005888c addiu v0, zero, 2 | v0 = 2;
0x00058890 addiu sp, sp, 0x30 |
0x00058894 jr ra | return v0;
| label_2:
0x00058898 addiu v0, zero, -1 | v0 = -1;
0x0005889c b 0x58840 |
| } while (1);
| label_1:
0x000588a0 addiu v0, zero, -1 | v0 = -1;
0x000588a4 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x580e8 */
| #include <stdint.h>
|
; (fcn) sym.xmlBufferContent () | void xmlBufferContent () {
| if (a0 != 0) {
0x000580e8 beqz a0, 0x580f8 |
0x000580ec nop |
0x000580f0 lw v0, (a0) | v0 = *(a0);
0x000580f4 jr ra | return v0;
| }
0x000580f8 move v0, zero | v0 = 0;
0x000580fc jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x58098 */
| #include <stdint.h>
|
; (fcn) sym.xmlBufferDump () | void xmlBufferDump () {
0x00058098 lui gp, 0x14 |
0x0005809c addiu gp, gp, -0x6a28 |
0x000580a0 addu gp, gp, t9 | gp += t9;
0x000580a4 move a3, a0 | a3 = a0;
| if (a1 != 0) {
0x000580a8 beqz a1, 0x580e0 |
0x000580ac lw a0, (a1) | a0 = *(a1);
| if (a0 == 0) {
0x000580b0 beqz a0, 0x580e0 | goto label_0;
| }
0x000580b4 nop |
0x000580b8 lw t9, -0x7048(gp) | t9 = *(gp);
| if (a3 != 0) {
0x000580bc beqz a3, 0x580cc |
0x000580c0 lw a2, 4(a1) | a2 = *((a1 + 1));
0x000580c4 addiu a1, zero, 1 | a1 = 1;
0x000580c8 jr t9 | t9 ();
| }
0x000580cc lw v0, -0x70d0(gp) | v0 = *((gp - 7220));
0x000580d0 lw a2, 4(a1) | a2 = *((a1 + 1));
0x000580d4 lw a3, (v0) | a3 = *(v0);
0x000580d8 addiu a1, zero, 1 | a1 = 1;
0x000580dc jr t9 | t9 ();
| }
| label_0:
0x000580e0 move v0, zero | v0 = 0;
0x000580e4 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x57d98 */
| #include <stdint.h>
|
; (fcn) sym.xmlBufferEmpty () | void xmlBufferEmpty () {
0x00057d98 lui gp, 0x14 |
0x00057d9c addiu gp, gp, -0x6728 |
0x00057da0 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00057da4 beqz a0, 0x57dd4 | goto label_0;
| }
0x00057da8 nop |
0x00057dac lw v0, (a0) | v0 = *(a0);
0x00057db0 addiu a1, zero, 2 | a1 = 2;
| if (v0 == 0) {
0x00057db4 beqz v0, 0x57dd4 | goto label_0;
| }
0x00057db8 lw v1, 0xc(a0) | v1 = *((a0 + 3));
0x00057dbc sw zero, 4(a0) | *((a0 + 1)) = 0;
| if (v1 == a1) {
0x00057dc0 beq v1, a1, 0x57ddc | goto label_1;
| }
0x00057dc4 addiu a1, zero, 3 | a1 = 3;
| if (v1 == a1) {
0x00057dc8 beql v1, a1, 0x57dec | goto label_2;
| }
0x00057dcc lw v1, 0x10(a0) | v1 = *((a0 + 4));
0x00057dd0 sb zero, (v0) | *(v0) = 0;
| do {
| label_0:
0x00057dd4 jr ra | return v1;
0x00057dd8 nop |
| label_1:
0x00057ddc lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x00057de0 addiu v0, v0, 0x2694 | v0 += 0x2694;
0x00057de4 sw v0, (a0) | *(a0) = v0;
0x00057de8 jr ra | return v1;
| label_2:
0x00057dec beql v1, zero, 0x57dd4 |
| } while (v1 == 0);
0x00057df0 sb zero, (v0) | *(v0) = 0;
0x00057df4 lw a1, 8(a0) | a1 = *((a0 + 2));
0x00057df8 subu v0, v0, v1 | __asm ("subu v0, v0, v1");
0x00057dfc addu v0, a1, v0 | v0 = a1 + v0;
0x00057e00 sw v0, 8(a0) | *((a0 + 2)) = v0;
0x00057e04 sw v1, (a0) | *(a0) = v1;
0x00057e08 sb zero, (v1) | *(v1) = 0;
0x00057e0c jr ra | return v1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x57f4c */
| #include <stdint.h>
|
; (fcn) sym.xmlBufferGrow () | void xmlBufferGrow () {
0x00057f4c lui gp, 0x14 |
0x00057f50 addiu gp, gp, -0x68dc |
0x00057f54 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00057f58 beqz a0, 0x58064 | goto label_3;
| }
0x00057f5c nop |
0x00057f60 lw v1, 0xc(a0) | v1 = *((a0 + 3));
0x00057f64 addiu v0, zero, 2 | v0 = 2;
| if (v1 == v0) {
0x00057f68 beq v1, v0, 0x5805c | goto label_4;
| }
0x00057f6c nop |
0x00057f70 addiu sp, sp, -0x30 |
0x00057f74 lw v0, 8(a0) | v0 = *((a0 + 2));
0x00057f78 sw s1, 0x24(sp) | *(var_24h) = s1;
0x00057f7c lw s1, 4(a0) | s1 = *((a0 + 1));
0x00057f80 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00057f84 addu s1, a1, s1 | s1 = a1 + s1;
0x00057f88 sltu a2, s1, v0 | a2 = (s1 < v0) ? 1 : 0;
0x00057f8c sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00057f90 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00057f94 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00057f98 sltu a1, a1, v0 | a1 = (a1 < v0) ? 1 : 0;
| if (a2 != 0) {
0x00057f9c bnez a2, 0x58040 | goto label_5;
| }
0x00057fa0 lw a1, -0x6e24(gp) | a1 = *(gp);
| if (a1 != 0) {
0x00057fa4 bnez a1, 0x57ff8 | goto label_6;
| }
0x00057fa8 addiu v0, zero, 3 | v0 = 3;
0x00057fac move s0, a0 | s0 = a0;
0x00057fb0 addiu s1, s1, 0x64 | s1 += 0x64;
0x00057fb4 lw a0, (a0) | a0 = *(a0);
0x00057fb8 lw t9, (a1) | t9 = *(a1);
| if (v1 == v0) {
0x00057fbc beq v1, v0, 0x58010 | goto label_7;
| }
| do {
| label_0:
0x00057fc0 move a1, s1 | a1 = s1;
0x00057fc4 jalr t9 | t9 ();
0x00057fc8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00057fcc beqz v0, 0x5806c | goto label_8;
| }
0x00057fd0 sw v0, (s0) | *(s0) = v0;
| label_1:
0x00057fd4 lw v0, 4(s0) | v0 = *((s0 + 1));
0x00057fd8 sw s1, 8(s0) | *((s0 + 2)) = s1;
0x00057fdc subu v0, s1, v0 | __asm ("subu v0, s1, v0");
| label_2:
0x00057fe0 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00057fe4 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00057fe8 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00057fec lw s0, 0x20(sp) | s0 = *(var_20h);
0x00057ff0 addiu sp, sp, 0x30 |
0x00057ff4 jr ra | return v0;
| label_6:
0x00057ff8 sll s1, v0, 1 | s1 = v0 << 1;
0x00057ffc addiu v0, zero, 3 | v0 = 3;
0x00058000 move s0, a0 | s0 = a0;
0x00058004 lw t9, (a1) | t9 = *(a1);
0x00058008 lw a0, (a0) | a0 = *(a0);
0x0005800c bne v1, v0, 0x57fc0 |
| } while (v1 != v0);
| label_7:
0x00058010 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x00058014 subu s2, a0, v0 | __asm ("subu s2, a0, v0");
| if (v0 == 0) {
0x00058018 beqz v0, 0x57fc0 | goto label_0;
| }
0x0005801c addu a1, s2, s1 | a1 = s2 + s1;
0x00058020 move a0, v0 | a0 = v0;
0x00058024 jalr t9 | t9 ();
0x00058028 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0005802c beqz v0, 0x5806c |
0x00058030 addu a0, v0, s2 | a0 = v0 + s2;
0x00058034 sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x00058038 sw a0, (s0) | *(s0) = a0;
0x0005803c b 0x57fd4 | goto label_1;
| label_5:
0x00058040 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00058044 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00058048 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0005804c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00058050 move v0, zero | v0 = 0;
0x00058054 addiu sp, sp, 0x30 |
0x00058058 jr ra | return v0;
| label_4:
0x0005805c move v0, zero | v0 = 0;
0x00058060 jr ra | return v0;
| label_3:
0x00058064 addiu v0, zero, -1 | v0 = -1;
0x00058068 jr ra | return v0;
| }
| label_8:
0x0005806c lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x00058070 lw t9, -0x6db8(gp) | t9 = *((gp - 7022));
0x00058074 addiu v0, v0, -0x670c | v0 += -0x670c;
0x00058078 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0005807c move a3, zero | a3 = 0;
0x00058080 move a2, zero | a2 = 0;
0x00058084 addiu a1, zero, 2 | a1 = 2;
0x00058088 addiu a0, zero, 2 | a0 = 2;
0x0005808c jalr t9 | t9 ();
0x00058090 addiu v0, zero, -1 | v0 = -1;
0x00058094 b 0x57fe0 | goto label_2;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x68804 */
| #include <stdint.h>
|
; (fcn) sym.xmlBuildRelativeURI () | void xmlBuildRelativeURI () {
0x00068804 lui gp, 0x13 |
0x00068808 addiu gp, gp, -0x7194 |
0x0006880c addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00068810 beqz a0, 0x68a14 | goto label_13;
| }
0x00068814 nop |
0x00068818 lbu v0, (a0) | v0 = *(a0);
| if (v0 == 0) {
0x0006881c beqz v0, 0x68a14 | goto label_13;
| }
0x00068820 nop |
0x00068824 addiu sp, sp, -0x48 |
0x00068828 sw s3, 0x30(sp) | *(var_30h) = s3;
0x0006882c lw s3, -0x7a54(gp) | s3 = *(gp);
0x00068830 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00068834 sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x00068838 sw s1, 0x28(sp) | *(var_28h) = s1;
0x0006883c sw s0, 0x24(sp) | *(var_24h) = s0;
0x00068840 sw ra, 0x44(sp) | *(var_44h) = ra;
0x00068844 sw s7, 0x40(sp) | *(var_40h) = s7;
0x00068848 sw s6, 0x3c(sp) | *(var_3ch) = s6;
0x0006884c sw s5, 0x38(sp) | *(var_38h) = s5;
0x00068850 sw s4, 0x34(sp) | *(var_34h) = s4;
0x00068854 move t9, s3 | t9 = s3;
0x00068858 move s1, a1 | s1 = a1;
0x0006885c move s0, a0 | s0 = a0;
0x00068860 bal 0x65080 | sym_xmlCreateURI ();
0x00068864 move s2, v0 | s2 = v0;
0x00068868 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0006886c beqz v0, 0x68990 | goto label_14;
| }
0x00068870 lbu v1, (s0) | v1 = *(s0);
0x00068874 addiu v0, zero, 0x2e | v0 = 0x2e;
0x00068878 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
| if (v1 == v0) {
0x0006887c beq v1, v0, 0x68978 | goto label_15;
| }
0x00068880 move a1, s0 | a1 = s0;
0x00068884 addiu t9, t9, 0x6f28 | t9 += aav.0x00006f28;
0x00068888 move a0, s2 | a0 = s2;
0x0006888c bal 0x66f28 | fcn_00066f28 ();
0x00068890 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00068894 bnez v0, 0x68a0c | goto label_16;
| }
| do {
0x00068898 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
| if (s1 == 0) {
0x0006889c beqz s1, 0x689c0 | goto label_17;
| }
0x000688a0 lbu v0, (s1) | v0 = *(s1);
| if (v0 == 0) {
0x000688a4 beqz v0, 0x689c0 | goto label_17;
| }
0x000688a8 nop |
0x000688ac move t9, s3 | t9 = s3;
0x000688b0 bal 0x65080 | sym_xmlCreateURI ();
0x000688b4 nop |
0x000688b8 move s3, v0 | s3 = v0;
0x000688bc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000688c0 beqz v0, 0x68a0c | goto label_16;
| }
0x000688c4 lbu v1, (s1) | v1 = *(s1);
0x000688c8 addiu v0, zero, 0x2e | v0 = 0x2e;
0x000688cc lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
| if (v1 == v0) {
0x000688d0 beq v1, v0, 0x68a1c | goto label_18;
| }
0x000688d4 move a1, s1 | a1 = s1;
0x000688d8 addiu t9, t9, 0x6f28 | t9 += aav.0x00006f28;
0x000688dc move a0, s3 | a0 = s3;
0x000688e0 bal 0x66f28 | fcn_00066f28 ();
0x000688e4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000688e8 bnez v0, 0x68bc4 | goto label_19;
| }
| label_0:
0x000688ec lw a1, (s2) | a1 = *(s2);
0x000688f0 lw t9, -0x7f90(gp) | t9 = *((gp - 8164));
| if (a1 == 0) {
0x000688f4 beqz a1, 0x68a50 | goto label_20;
| }
0x000688f8 lw a0, (s3) | a0 = *(s3);
0x000688fc lw s1, -0x7a4c(gp) | s1 = *((gp - 7827));
| if (a0 != 0) {
0x00068900 beqz a0, 0x68918 |
0x00068904 move t9, s1 | t9 = s1;
0x00068908 jalr t9 | t9 ();
0x0006890c nop |
0x00068910 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00068914 beqz v0, 0x68a34 | goto label_21;
| }
| }
| label_1:
0x00068918 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x0006891c move a0, s0 | a0 = s0;
0x00068920 jalr t9 | t9 ();
0x00068924 lw gp, 0x10(sp) | gp = *(var_10h);
| label_2:
0x00068928 lw s0, -0x7da8(gp) | s0 = *(gp);
| label_3:
0x0006892c sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00068930 move t9, s0 | t9 = s0;
0x00068934 move a0, s2 | a0 = s2;
0x00068938 bal 0x65ec4 | sym_xmlFreeURI ();
0x0006893c move t9, s0 | t9 = s0;
0x00068940 move a0, s3 | a0 = s3;
0x00068944 bal 0x65ec4 | sym_xmlFreeURI ();
0x00068948 lw ra, 0x44(sp) | ra = *(var_44h);
0x0006894c lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x00068950 lw s7, 0x40(sp) | s7 = *(var_40h);
0x00068954 lw s6, 0x3c(sp) | s6 = *(var_3ch);
0x00068958 lw s5, 0x38(sp) | s5 = *(var_38h);
0x0006895c lw s4, 0x34(sp) | s4 = *(var_34h);
0x00068960 lw s3, 0x30(sp) | s3 = *(var_30h);
0x00068964 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x00068968 lw s1, 0x28(sp) | s1 = *(var_28h);
0x0006896c lw s0, 0x24(sp) | s0 = *(var_24h);
0x00068970 addiu sp, sp, 0x48 |
0x00068974 jr ra | return v1;
| label_15:
0x00068978 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x0006897c move a0, s0 | a0 = s0;
0x00068980 jalr t9 | t9 ();
0x00068984 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068988 sw v0, 0x18(s2) | *((s2 + 6)) = v0;
0x0006898c b 0x68898 |
| } while (1);
| label_14:
0x00068990 lw ra, 0x44(sp) | ra = *(var_44h);
0x00068994 lw s7, 0x40(sp) | s7 = *(var_40h);
0x00068998 lw s6, 0x3c(sp) | s6 = *(var_3ch);
0x0006899c lw s5, 0x38(sp) | s5 = *(var_38h);
0x000689a0 lw s4, 0x34(sp) | s4 = *(var_34h);
0x000689a4 lw s3, 0x30(sp) | s3 = *(var_30h);
0x000689a8 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x000689ac lw s1, 0x28(sp) | s1 = *(var_28h);
0x000689b0 lw s0, 0x24(sp) | s0 = *(var_24h);
0x000689b4 move v0, zero | v0 = 0;
0x000689b8 addiu sp, sp, 0x48 |
0x000689bc jr ra | return v1;
| label_17:
0x000689c0 move a0, s0 | a0 = s0;
0x000689c4 jalr t9 | t9 ();
0x000689c8 lw gp, 0x10(sp) | gp = *(var_10h);
| do {
0x000689cc lw t9, -0x7da8(gp) | t9 = *(gp);
0x000689d0 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x000689d4 move a0, s2 | a0 = s2;
0x000689d8 bal 0x65ec4 | sym_xmlFreeURI ();
0x000689dc lw ra, 0x44(sp) | ra = *(var_44h);
0x000689e0 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x000689e4 lw s7, 0x40(sp) | s7 = *(var_40h);
0x000689e8 lw s6, 0x3c(sp) | s6 = *(var_3ch);
0x000689ec lw s5, 0x38(sp) | s5 = *(var_38h);
0x000689f0 lw s4, 0x34(sp) | s4 = *(var_34h);
0x000689f4 lw s3, 0x30(sp) | s3 = *(var_30h);
0x000689f8 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x000689fc lw s1, 0x28(sp) | s1 = *(var_28h);
0x00068a00 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00068a04 addiu sp, sp, 0x48 |
0x00068a08 jr ra | return v1;
| label_16:
0x00068a0c move v0, zero | v0 = 0;
0x00068a10 b 0x689cc |
| } while (1);
| label_13:
0x00068a14 move v0, zero | v0 = 0;
0x00068a18 jr ra | return v1;
| label_18:
0x00068a1c lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00068a20 move a0, s1 | a0 = s1;
0x00068a24 jalr t9 | t9 ();
0x00068a28 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068a2c sw v0, 0x18(s3) | *((s3 + 6)) = v0;
0x00068a30 b 0x688ec | goto label_0;
| label_21:
0x00068a34 lw a1, 0xc(s2) | a1 = *((s2 + 3));
0x00068a38 move t9, s1 | t9 = s1;
0x00068a3c lw a0, 0xc(s3) | a0 = *((s3 + 3));
0x00068a40 jalr t9 | t9 ();
0x00068a44 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00068a48 bnez v0, 0x68918 | goto label_1;
| }
0x00068a4c lw t9, -0x7f90(gp) | t9 = *((gp - 8164));
| label_20:
0x00068a50 lw a1, 0x18(s2) | a1 = *((s2 + 6));
0x00068a54 lw a0, 0x18(s3) | a0 = *((s3 + 6));
0x00068a58 jalr t9 | t9 ();
0x00068a5c move s4, v0 | s4 = v0;
0x00068a60 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00068a64 bnez v0, 0x68ba0 | goto label_22;
| }
0x00068a68 lw t2, 0x18(s3) | t2 = *((s3 + 6));
0x00068a6c lw s1, 0x18(s2) | s1 = *((s2 + 6));
| if (t2 == 0) {
0x00068a70 beqz t2, 0x68d54 | goto label_23;
| }
0x00068a74 addiu v1, zero, 0x2e | v1 = 0x2e;
| if (s1 == 0) {
0x00068a78 beqz s1, 0x68cf8 | goto label_24;
| }
0x00068a7c lbu v0, (s1) | v0 = *(s1);
0x00068a80 move s0, zero | s0 = 0;
| if (v0 == v1) {
0x00068a84 bne v0, v1, 0x68a98 |
0x00068a88 lbu a0, 1(s1) | a0 = *((s1 + 1));
0x00068a8c addiu v1, zero, 0x2f | v1 = 0x2f;
| if (a0 == v1) {
0x00068a90 beql a0, v1, 0x68bb8 | goto label_25;
| }
0x00068a94 lbu v0, 2(s1) | v0 = *((s1 + 2));
| }
| label_4:
0x00068a98 lbu v1, (t2) | v1 = *(t2);
0x00068a9c addiu a0, zero, 0x2e | a0 = 0x2e;
0x00068aa0 addiu a0, zero, 0x2f | a0 = 0x2f;
| if (v1 == a0) {
0x00068aa4 beq v1, a0, 0x68cc4 | goto label_26;
| }
| if (v1 == a0) {
0x00068aa8 beq v1, a0, 0x68ce4 | goto label_27;
| }
0x00068aac nop |
| label_11:
0x00068ab0 move a1, s1 | a1 = s1;
| if (v0 != v1) {
0x00068ab4 bne v0, v1, 0x68ca8 | goto label_28;
| }
| if (v0 == 0) {
0x00068ab8 beql v0, zero, 0x68d38 | goto label_29;
| }
0x00068abc lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x00068ac0 lbu a2, 1(t2) | a2 = *((t2 + 1));
| label_10:
0x00068ac4 addiu a0, s1, 1 | a0 = s1 + 1;
| label_8:
0x00068ac8 move v1, a2 | v1 = a2;
0x00068acc move a3, zero | a3 = 0;
0x00068ad0 b 0x68ae4 |
| while (t0 == v1) {
0x00068ad4 addiu a0, a0, 1 | a0++;
| if (v1 == 0) {
0x00068ad8 beqz v1, 0x68d34 | goto label_30;
| }
0x00068adc lbu v1, 1(t1) | v1 = *((t1 + 1));
0x00068ae0 move a3, v0 | a3 = v0;
0x00068ae4 lbu t0, (a0) | t0 = *(a0);
0x00068ae8 addiu v0, a3, 1 | v0 = a3 + 1;
0x00068aec addu t1, t2, v0 | t1 = t2 + v0;
0x00068af0 move a1, a0 | a1 = a0;
0x00068af4 beq t0, v1, 0x68ad4 |
| }
0x00068af8 lbux a3, a3(s1) | __asm ("lbux a3, a3(s1)");
0x00068afc addiu a0, zero, 0x2f | a0 = 0x2f;
0x00068b00 addiu v0, v0, -1 | v0 += -1;
| if (a3 == a0) {
0x00068b04 bnel a3, a0, 0x68b20 | goto label_31;
| }
0x00068b08 b 0x68cac | goto label_32;
0x00068b0c nop |
| do {
0x00068b10 lbu v1, -1(a1) | v1 = *((a1 - 1));
| if (v1 == a0) {
0x00068b14 beql v1, a0, 0x68cac | goto label_32;
| }
0x00068b18 lbux v1, v0(t2) | __asm ("lbux v1, v0(t2)");
0x00068b1c addiu v0, v0, -1 | v0 += -1;
| label_31:
0x00068b20 addu a1, s1, v0 | a1 = s1 + v0;
0x00068b24 bnez v0, 0x68b10 |
| } while (v0 != 0);
0x00068b28 lbu v1, (t2) | v1 = *(t2);
| label_7:
0x00068b2c addiu v0, v0, 2 | v0 += 2;
0x00068b30 addu v0, t2, v0 | v0 = t2 + v0;
0x00068b34 addiu a1, zero, 0x2f | a1 = 0x2f;
0x00068b38 b 0x68b48 |
| while (a2 == 0) {
0x00068b3c move v1, a2 | v1 = a2;
0x00068b40 addiu v0, v0, 1 | v0++;
0x00068b44 move a2, a0 | a2 = a0;
| if (v1 != a1) {
0x00068b48 beql v1, a1, 0x68b50 |
0x00068b4c addiu s4, s4, 1 | s4++;
| }
0x00068b50 lbu a0, (v0) | a0 = *(v0);
0x00068b54 bnel a2, zero, 0x68b3c |
| }
0x00068b58 lw t9, -0x7fcc(gp) | t9 = *((gp - 8179));
| if (s4 != 0) {
0x00068b5c bnez s4, 0x68bcc | goto label_33;
| }
| label_6:
0x00068b60 lbu v0, (s1) | v0 = *(s1);
0x00068b64 lw t9, -0x7fcc(gp) | t9 = *((gp - 8179));
| if (v0 == 0) {
0x00068b68 beqz v0, 0x68d1c | goto label_34;
| }
0x00068b6c move a0, s1 | a0 = s1;
0x00068b70 jalr t9 | t9 ();
0x00068b74 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068b78 move a0, s1 | a0 = s1;
0x00068b7c lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00068b80 lw t9, -0x7a50(gp) | t9 = *(gp);
0x00068b84 addiu a1, a1, -0x5804 | a1 += -0x5804;
0x00068b88 bal 0x6783c | sym_xmlURIEscapeStr ();
0x00068b8c lw gp, 0x10(sp) | gp = *(var_10h);
| label_5:
0x00068b90 sw zero, 0x18(s2) | *((s2 + 6)) = 0;
| if (s0 == 0) {
0x00068b94 bnel s0, zero, 0x68928 | goto label_2;
| }
0x00068b98 lw s0, -0x7da8(gp) | s0 = *(gp);
0x00068b9c b 0x6892c | goto label_3;
| label_22:
0x00068ba0 lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x00068ba4 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00068ba8 addiu a0, a0, 0x2694 | a0 += 0x2694;
0x00068bac jalr t9 | t9 ();
0x00068bb0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068bb4 b 0x68928 | goto label_2;
| label_25:
0x00068bb8 move s0, zero | s0 = 0;
0x00068bbc addiu s1, s1, 2 | s1 += 2;
0x00068bc0 b 0x68a98 | goto label_4;
| label_19:
0x00068bc4 move v0, zero | v0 = 0;
0x00068bc8 b 0x68928 | goto label_2;
| label_33:
0x00068bcc move a0, s1 | a0 = s1;
0x00068bd0 jalr t9 | t9 ();
0x00068bd4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068bd8 move s5, v0 | s5 = v0;
0x00068bdc sll v0, s4, 1 | v0 = s4 << 1;
0x00068be0 addu s4, v0, s4 | s4 = v0 + s4;
0x00068be4 lw v0, -0x716c(gp) | v0 = *(gp);
0x00068be8 addiu s7, s5, 1 | s7 = s5 + 1;
0x00068bec lw t9, (v0) | t9 = *(v0);
0x00068bf0 addu a0, s4, s7 | a0 = s4 + s7;
0x00068bf4 jalr t9 | t9 ();
0x00068bf8 move s6, v0 | s6 = v0;
0x00068bfc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00068c00 beqz v0, 0x68d68 | goto label_35;
| }
0x00068c04 addu s4, s6, s4 | s4 = s6 + s4;
0x00068c08 move v1, s6 | v1 = s6;
0x00068c0c addiu v0, zero, 0x2e | v0 = 0x2e;
0x00068c10 addiu a0, zero, 0x2f | a0 = 0x2f;
| do {
0x00068c14 sb v0, (v1) | *(v1) = v0;
0x00068c18 sb v0, 1(v1) | *((v1 + 1)) = v0;
0x00068c1c addiu v1, v1, 3 | v1 += 3;
0x00068c20 sb a0, -1(v1) | *((v1 - 1)) = a0;
0x00068c24 bne v1, s4, 0x68c14 |
| } while (v1 != s4);
| if (s1 == 0) {
0x00068c28 beql s1, zero, 0x68d14 | goto label_36;
| }
0x00068c2c addu v1, v1, s5 | v1 += s5;
0x00068c30 sltu v0, s6, v1 | v0 = (s6 < v1) ? 1 : 0;
0x00068c34 lw t9, -0x6fbc(gp) | t9 = *(gp);
| if (v0 != 0) {
0x00068c38 beqz v0, 0x68c54 |
0x00068c3c move a2, s7 | a2 = s7;
| if (s7 <= 0) {
0x00068c40 blez s7, 0x68c58 | goto label_37;
| }
0x00068c44 lbu a0, (s1) | a0 = *(s1);
0x00068c48 addiu v0, zero, 0x2f | v0 = 0x2f;
0x00068c4c move a0, v1 | a0 = v1;
| if (a0 == v0) {
0x00068c50 beq a0, v0, 0x68d88 | goto label_38;
| }
| }
0x00068c54 move a2, s7 | a2 = s7;
| label_37:
0x00068c58 move a1, s1 | a1 = s1;
0x00068c5c move a0, s4 | a0 = s4;
0x00068c60 jalr t9 | t9 ();
0x00068c64 addu v1, s4, s5 | v1 = s4 + s5;
0x00068c68 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068c6c sb zero, (v1) | *(v1) = 0;
| label_12:
0x00068c70 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00068c74 lw t9, -0x7a50(gp) | t9 = *(gp);
0x00068c78 addiu a1, a1, -0x5804 | a1 += -0x5804;
0x00068c7c move a0, s6 | a0 = s6;
0x00068c80 bal 0x6783c | sym_xmlURIEscapeStr ();
0x00068c84 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068c88 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00068c8c lw v1, -0x7158(gp) | v1 = *(gp);
0x00068c90 lw t9, (v1) | t9 = *(v1);
0x00068c94 move a0, s6 | a0 = s6;
0x00068c98 jalr t9 | t9 ();
0x00068c9c lw gp, 0x10(sp) | gp = *(var_10h);
0x00068ca0 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x00068ca4 b 0x68b90 | goto label_5;
| label_28:
0x00068ca8 move v0, zero | v0 = 0;
| if (v1 == 0) {
| label_32:
0x00068cac beql v1, zero, 0x68b60 | goto label_6;
| }
0x00068cb0 move s1, a1 | s1 = a1;
| label_9:
0x00068cb4 addu a0, t2, v0 | a0 = t2 + v0;
0x00068cb8 move s1, a1 | s1 = a1;
0x00068cbc lbu a2, 1(a0) | a2 = *((a0 + 1));
0x00068cc0 b 0x68b2c | goto label_7;
| label_26:
0x00068cc4 lbu a2, 1(t2) | a2 = *((t2 + 1));
| if (a2 == a0) {
0x00068cc8 beql a2, a0, 0x68d4c | goto label_39;
| }
0x00068ccc lbu v1, 2(t2) | v1 = *((t2 + 2));
| if (v0 == v1) {
0x00068cd0 beql v0, v1, 0x68ac8 | goto label_8;
| }
0x00068cd4 addiu a0, s1, 1 | a0 = s1 + 1;
0x00068cd8 move a1, s1 | a1 = s1;
0x00068cdc move v0, zero | v0 = 0;
0x00068ce0 b 0x68cb4 | goto label_9;
| label_27:
0x00068ce4 lbu a2, 1(t2) | a2 = *((t2 + 1));
| if (v0 == v1) {
0x00068ce8 beq v0, v1, 0x68ac4 | goto label_10;
| }
0x00068cec addiu t2, t2, 1 | t2++;
0x00068cf0 move v1, a2 | v1 = a2;
0x00068cf4 b 0x68ab0 | goto label_11;
| label_24:
0x00068cf8 lw s1, -0x7f94(gp) | s1 = *((gp - 8165));
0x00068cfc addiu v0, zero, 0x2f | v0 = 0x2f;
0x00068d00 addiu s1, s1, 0x2384 | s1 += aav.0x00002384;
0x00068d04 sw s1, 0x18(s2) | *((s2 + 6)) = s1;
0x00068d08 lw t2, 0x18(s3) | t2 = *((s3 + 6));
0x00068d0c addiu s0, zero, 1 | s0 = 1;
0x00068d10 b 0x68a98 | goto label_4;
| label_36:
0x00068d14 sb zero, (v1) | *(v1) = 0;
0x00068d18 b 0x68c70 | goto label_12;
| label_34:
0x00068d1c lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x00068d20 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00068d24 addiu a0, a0, -0x5820 | a0 += -0x5820;
0x00068d28 jalr t9 | t9 ();
0x00068d2c lw gp, 0x10(sp) | gp = *(var_10h);
0x00068d30 b 0x68b90 | goto label_5;
| label_30:
0x00068d34 lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
| label_29:
0x00068d38 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00068d3c addiu a0, a0, 0x2694 | a0 += 0x2694;
0x00068d40 jalr t9 | t9 ();
0x00068d44 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068d48 b 0x68b90 | goto label_5;
| label_39:
0x00068d4c addiu t2, t2, 2 | t2 += 2;
0x00068d50 b 0x68ab0 | goto label_11;
| label_23:
0x00068d54 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00068d58 move a0, s1 | a0 = s1;
0x00068d5c jalr t9 | t9 ();
0x00068d60 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068d64 b 0x68928 | goto label_2;
| label_35:
0x00068d68 lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x00068d6c lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
0x00068d70 addiu t9, t9, 0x4c70 | t9 += 0x4c70;
0x00068d74 addiu a0, a0, -0x581c | a0 += -0x581c;
0x00068d78 bal 0x64c70 | fcn_00064c70 ();
0x00068d7c lw gp, 0x10(sp) | gp = *(var_10h);
0x00068d80 move v0, zero | v0 = 0;
0x00068d84 b 0x68b90 | goto label_5;
| label_38:
0x00068d88 move a2, s5 | a2 = s5;
0x00068d8c addiu a1, s1, 1 | a1 = s1 + 1;
0x00068d90 jalr t9 | t9 ();
0x00068d94 addu v1, v0, s5 | v1 = v0 + s5;
0x00068d98 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068d9c sb zero, -1(v1) | *((v1 - 1)) = 0;
0x00068da0 b 0x68c70 | goto label_12;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x68058 */
| #include <stdint.h>
|
; (fcn) sym.xmlBuildURI () | void xmlBuildURI () {
0x00068058 lui gp, 0x13 |
0x0006805c addiu gp, gp, -0x69e8 |
0x00068060 addu gp, gp, t9 | gp += t9;
0x00068064 addiu sp, sp, -0x30 |
0x00068068 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0006806c sw ra, 0x2c(sp) | *(var_2ch_2) = ra;
0x00068070 sw s4, 0x28(sp) | *(var_28h) = s4;
0x00068074 sw s3, 0x24(sp) | *(var_24h) = s3;
0x00068078 sw s2, 0x20(sp) | *(var_20h) = s2;
0x0006807c sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x00068080 sw s0, 0x18(sp) | *(var_18h_2) = s0;
0x00068084 move s2, a1 | s2 = a1;
| if (a0 == 0) {
0x00068088 beqz a0, 0x68118 | goto label_24;
| }
0x0006808c lbu v0, (a0) | v0 = *(a0);
0x00068090 move s0, a0 | s0 = a0;
| if (v0 != 0) {
0x00068094 bnez v0, 0x68140 | goto label_25;
| }
0x00068098 lw t9, -0x7a54(gp) | t9 = *(gp);
| if (a1 == 0) {
0x0006809c beqz a1, 0x68118 | goto label_24;
| }
0x000680a0 bal 0x65080 | sym_xmlCreateURI ();
0x000680a4 nop |
0x000680a8 move s0, v0 | s0 = v0;
0x000680ac lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000680b0 beqz v0, 0x68118 | goto label_24;
| }
0x000680b4 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
0x000680b8 move a1, s2 | a1 = s2;
0x000680bc addiu t9, t9, 0x6f28 | t9 += aav.0x00006f28;
0x000680c0 move a0, v0 | a0 = v0;
0x000680c4 bal 0x66f28 | fcn_00066f28 ();
0x000680c8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000680cc bnez v0, 0x682c0 | goto label_26;
| }
0x000680d0 lw a0, 0x20(s0) | a0 = *((s0 + 8));
0x000680d4 lw t9, -0x7a58(gp) | t9 = *((gp - 7830));
| if (a0 != 0) {
0x000680d8 beqz a0, 0x680f8 |
0x000680dc lw v0, -0x7158(gp) | v0 = *(gp);
0x000680e0 lw t9, (v0) | t9 = *(v0);
0x000680e4 jalr t9 | t9 ();
0x000680e8 nop |
0x000680ec lw gp, 0x10(sp) | gp = *(var_10h);
0x000680f0 sw zero, 0x20(s0) | *((s0 + 8)) = 0;
0x000680f4 lw t9, -0x7a58(gp) | t9 = *((gp - 7830));
| }
0x000680f8 move a0, s0 | a0 = s0;
0x000680fc bal 0x650fc | sym_xmlSaveUri ();
0x00068100 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068104 move a0, s0 | a0 = s0;
0x00068108 b 0x68254 | goto label_27;
| label_0:
0x0006810c lw t9, -0x7da8(gp) | t9 = *(gp);
0x00068110 move a0, s1 | a0 = s1;
0x00068114 bal 0x65ec4 | sym_xmlFreeURI ();
| do {
| label_24:
0x00068118 move s2, zero | s2 = 0;
| label_2:
0x0006811c lw ra, 0x2c(sp) | ra = *(var_2ch_2);
| label_1:
0x00068120 move v0, s2 | v0 = s2;
0x00068124 lw s4, 0x28(sp) | s4 = *(var_28h);
0x00068128 lw s3, 0x24(sp) | s3 = *(var_24h);
0x0006812c lw s2, 0x20(sp) | s2 = *(var_20h);
0x00068130 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00068134 lw s0, 0x18(sp) | s0 = *(var_18h_2);
0x00068138 addiu sp, sp, 0x30 |
0x0006813c jr ra | return v0;
| label_25:
0x00068140 lw s4, -0x7a54(gp) | s4 = *(gp);
0x00068144 move t9, s4 | t9 = s4;
0x00068148 bal 0x65080 | sym_xmlCreateURI ();
0x0006814c nop |
0x00068150 move s1, v0 | s1 = v0;
0x00068154 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068158 beqz v0, 0x68118 |
| } while (v0 == 0);
0x0006815c lw s3, -0x7b38(gp) | s3 = *((gp - 7886));
0x00068160 move a1, s0 | a1 = s0;
0x00068164 addiu s3, s3, 0x6f28 | s3 += aav.0x00006f28;
0x00068168 move t9, s3 | t9 = s3;
0x0006816c move a0, v0 | a0 = v0;
0x00068170 bal 0x66f28 | fcn_00066f28 ();
0x00068174 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00068178 bnez v0, 0x683ac | goto label_28;
| }
0x0006817c lw v0, (s1) | v0 = *(s1);
0x00068180 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
| if (v0 != 0) {
0x00068184 bnez v0, 0x68240 | goto label_29;
| }
0x00068188 move a0, s1 | a0 = s1;
| if (s2 == 0) {
0x0006818c beqz s2, 0x682b8 | goto label_30;
| }
0x00068190 move t9, s4 | t9 = s4;
0x00068194 bal 0x65080 | sym_xmlCreateURI ();
0x00068198 nop |
0x0006819c move s0, v0 | s0 = v0;
0x000681a0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000681a4 beqz v0, 0x6810c | goto label_0;
| }
0x000681a8 move a1, s2 | a1 = s2;
0x000681ac move t9, s3 | t9 = s3;
0x000681b0 move a0, v0 | a0 = v0;
0x000681b4 bal 0x66f28 | fcn_00066f28 ();
0x000681b8 move s2, v0 | s2 = v0;
0x000681bc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000681c0 bnez v0, 0x68284 | goto label_31;
| }
0x000681c4 move t9, s4 | t9 = s4;
0x000681c8 bal 0x65080 | sym_xmlCreateURI ();
0x000681cc nop |
0x000681d0 move s3, v0 | s3 = v0;
0x000681d4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000681d8 beqz v0, 0x6868c | goto label_32;
| }
0x000681dc lw v0, (s1) | v0 = *(s1);
0x000681e0 lw s4, -0x7da8(gp) | s4 = *(gp);
| if (v0 == 0) {
0x000681e4 beqz v0, 0x682d4 | goto label_33;
| }
0x000681e8 lw t9, -0x7a58(gp) | t9 = *((gp - 7830));
0x000681ec move a0, s1 | a0 = s1;
0x000681f0 bal 0x650fc | sym_xmlSaveUri ();
0x000681f4 move a0, s1 | a0 = s1;
0x000681f8 move t9, s4 | t9 = s4;
0x000681fc move s2, v0 | s2 = v0;
0x00068200 bal 0x65ec4 | sym_xmlFreeURI ();
0x00068204 move t9, s4 | t9 = s4;
| label_3:
0x00068208 move a0, s0 | a0 = s0;
0x0006820c bal 0x65ec4 | sym_xmlFreeURI ();
0x00068210 move t9, s4 | t9 = s4;
0x00068214 move a0, s3 | a0 = s3;
0x00068218 bal 0x65ec4 | sym_xmlFreeURI ();
0x0006821c lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x00068220 move v0, s2 | v0 = s2;
0x00068224 lw s4, 0x28(sp) | s4 = *(var_28h);
0x00068228 lw s3, 0x24(sp) | s3 = *(var_24h);
0x0006822c lw s2, 0x20(sp) | s2 = *(var_20h);
0x00068230 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00068234 lw s0, 0x18(sp) | s0 = *(var_18h_2);
0x00068238 addiu sp, sp, 0x30 |
0x0006823c jr ra | return v0;
| label_29:
0x00068240 move a0, s0 | a0 = s0;
| do {
0x00068244 jalr t9 | t9 ();
0x00068248 nop |
0x0006824c lw gp, 0x10(sp) | gp = *(var_10h);
0x00068250 move a0, s1 | a0 = s1;
| label_27:
0x00068254 lw t9, -0x7da8(gp) | t9 = *(gp);
0x00068258 move s2, v0 | s2 = v0;
0x0006825c bal 0x65ec4 | sym_xmlFreeURI ();
0x00068260 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x00068264 move v0, s2 | v0 = s2;
0x00068268 lw s4, 0x28(sp) | s4 = *(var_28h);
0x0006826c lw s3, 0x24(sp) | s3 = *(var_24h);
0x00068270 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00068274 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00068278 lw s0, 0x18(sp) | s0 = *(var_18h_2);
0x0006827c addiu sp, sp, 0x30 |
0x00068280 jr ra | return v0;
| label_31:
0x00068284 lw s3, -0x7da8(gp) | s3 = *(gp);
0x00068288 lw t9, -0x7a58(gp) | t9 = *((gp - 7830));
0x0006828c move a0, s1 | a0 = s1;
0x00068290 bal 0x650fc | sym_xmlSaveUri ();
0x00068294 move a0, s1 | a0 = s1;
0x00068298 move t9, s3 | t9 = s3;
0x0006829c move s2, v0 | s2 = v0;
0x000682a0 bal 0x65ec4 | sym_xmlFreeURI ();
0x000682a4 move t9, s3 | t9 = s3;
0x000682a8 move a0, s0 | a0 = s0;
0x000682ac bal 0x65ec4 | sym_xmlFreeURI ();
0x000682b0 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x000682b4 b 0x68120 | goto label_1;
| label_30:
0x000682b8 lw t9, -0x7a58(gp) | t9 = *((gp - 7830));
0x000682bc b 0x68244 |
| } while (1);
| label_26:
0x000682c0 lw t9, -0x7da8(gp) | t9 = *(gp);
0x000682c4 move a0, s0 | a0 = s0;
0x000682c8 bal 0x65ec4 | sym_xmlFreeURI ();
0x000682cc move s2, zero | s2 = 0;
0x000682d0 b 0x6811c | goto label_2;
| label_33:
0x000682d4 lw v0, 0x18(s1) | v0 = *((s1 + 6));
0x000682d8 lw a0, (s0) | a0 = *(s0);
| if (v0 == 0) {
0x000682dc beqz v0, 0x685d0 | goto label_34;
| }
| label_9:
0x000682e0 lw v0, -0x6e34(gp) | v0 = *(gp);
| if (a0 != 0) {
0x000682e4 beqz a0, 0x682fc |
0x000682e8 lw t9, (v0) | t9 = *(v0);
0x000682ec jalr t9 | t9 ();
0x000682f0 nop |
0x000682f4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000682f8 sw v0, (s3) | *(s3) = v0;
| }
0x000682fc lw a0, 0x28(s1) | a0 = *((s1 + 10));
0x00068300 lw v0, -0x6e34(gp) | v0 = *(gp);
| if (a0 == 0) {
0x00068304 beqz a0, 0x68408 | goto label_35;
| }
0x00068308 lw t9, (v0) | t9 = *(v0);
0x0006830c jalr t9 | t9 ();
0x00068310 nop |
0x00068314 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068318 sw v0, 0x28(s3) | *((s3 + 10)) = v0;
| label_5:
0x0006831c lw a0, 0x20(s1) | a0 = *((s1 + 8));
| label_4:
0x00068320 lw v0, -0x6e34(gp) | v0 = *(gp);
| if (a0 != 0) {
0x00068324 beqz a0, 0x6833c |
0x00068328 lw t9, (v0) | t9 = *(v0);
0x0006832c jalr t9 | t9 ();
0x00068330 nop |
0x00068334 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068338 sw v0, 0x20(s3) | *((s3 + 8)) = v0;
| }
0x0006833c lw a0, 8(s1) | a0 = *((s1 + 2));
| if (a0 == 0) {
0x00068340 beql a0, zero, 0x683c0 | goto label_36;
| }
0x00068344 lw a0, 0xc(s1) | a0 = *((s1 + 3));
0x00068348 lw s2, -0x6e34(gp) | s2 = *(gp);
0x0006834c lw t9, (s2) | t9 = *(s2);
0x00068350 jalr t9 | t9 ();
0x00068354 nop |
0x00068358 lw gp, 0x10(sp) | gp = *(var_10h);
0x0006835c sw v0, 8(s3) | *((s3 + 2)) = v0;
| do {
0x00068360 lw a0, 0x18(s1) | a0 = *((s1 + 6));
| if (a0 != 0) {
0x00068364 beql a0, zero, 0x68384 |
0x00068368 lw t9, -0x7a58(gp) | t9 = *((gp - 7830));
0x0006836c lw t9, (s2) | t9 = *(s2);
0x00068370 jalr t9 | t9 ();
0x00068374 nop |
0x00068378 lw gp, 0x10(sp) | gp = *(var_10h);
0x0006837c sw v0, 0x18(s3) | *((s3 + 6)) = v0;
| label_8:
0x00068380 lw t9, -0x7a58(gp) | t9 = *((gp - 7830));
| }
| label_7:
0x00068384 move a0, s3 | a0 = s3;
0x00068388 bal 0x650fc | sym_xmlSaveUri ();
0x0006838c lw gp, 0x10(sp) | gp = *(var_10h);
0x00068390 move s2, v0 | s2 = v0;
| label_15:
0x00068394 lw s4, -0x7da8(gp) | s4 = *(gp);
0x00068398 move t9, s4 | t9 = s4;
0x0006839c move a0, s1 | a0 = s1;
0x000683a0 bal 0x65ec4 | sym_xmlFreeURI ();
0x000683a4 move t9, s4 | t9 = s4;
0x000683a8 b 0x68208 | goto label_3;
| label_28:
0x000683ac lw t9, -0x7da8(gp) | t9 = *(gp);
0x000683b0 move a0, s1 | a0 = s1;
0x000683b4 bal 0x65ec4 | sym_xmlFreeURI ();
0x000683b8 move s2, zero | s2 = 0;
0x000683bc b 0x6811c | goto label_2;
| if (a0 == 0) {
| label_36:
0x000683c0 beql a0, zero, 0x6842c | goto label_37;
| }
0x000683c4 lw a0, 8(s0) | a0 = *((s0 + 2));
0x000683c8 lw s2, -0x6e34(gp) | s2 = *(gp);
0x000683cc lw t9, (s2) | t9 = *(s2);
0x000683d0 jalr t9 | t9 ();
0x000683d4 nop |
0x000683d8 lw a0, 0x10(s1) | a0 = *((s1 + 4));
0x000683dc lw gp, 0x10(sp) | gp = *(var_10h);
0x000683e0 sw v0, 0xc(s3) | *((s3 + 3)) = v0;
| if (a0 != 0) {
0x000683e4 beqz a0, 0x683fc |
0x000683e8 lw t9, (s2) | t9 = *(s2);
0x000683ec jalr t9 | t9 ();
0x000683f0 nop |
0x000683f4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000683f8 sw v0, 0x10(s3) | *((s3 + 4)) = v0;
| }
0x000683fc lw v0, 0x14(s1) | v0 = *((s1 + 5));
0x00068400 sw v0, 0x14(s3) | *((s3 + 5)) = v0;
0x00068404 b 0x68360 |
| } while (1);
| label_35:
0x00068408 lw a0, 0x1c(s1) | a0 = *((s1 + 7));
| if (a0 == 0) {
0x0006840c beql a0, zero, 0x68320 | goto label_4;
| }
0x00068410 lw a0, 0x20(s1) | a0 = *((s1 + 8));
0x00068414 lw t9, (v0) | t9 = *(v0);
0x00068418 jalr t9 | t9 ();
0x0006841c nop |
0x00068420 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068424 sw v0, 0x1c(s3) | *((s3 + 7)) = v0;
0x00068428 b 0x6831c | goto label_5;
| label_37:
0x0006842c lw v0, -0x6e34(gp) | v0 = *(gp);
| if (a0 == 0) {
0x00068430 beqz a0, 0x686b4 | goto label_38;
| }
0x00068434 lw t9, (v0) | t9 = *(v0);
0x00068438 jalr t9 | t9 ();
0x0006843c nop |
0x00068440 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068444 sw v0, 8(s3) | *((s3 + 2)) = v0;
| label_10:
0x00068448 lw a0, 0x18(s1) | a0 = *((s1 + 6));
| label_13:
0x0006844c addiu v0, zero, 0x2f | v0 = 0x2f;
| if (a0 == 0) {
0x00068450 beqz a0, 0x68700 | goto label_39;
| }
0x00068454 lb v1, (a0) | v1 = *(a0);
0x00068458 lw v0, -0x6e34(gp) | v0 = *(gp);
| if (v1 == v0) {
0x0006845c beq v1, v0, 0x68710 | goto label_40;
| }
0x00068460 lw t9, -0x6fc0(gp) | t9 = *(gp);
0x00068464 jalr t9 | t9 ();
0x00068468 nop |
0x0006846c lw gp, 0x10(sp) | gp = *(var_10h);
0x00068470 addiu s4, v0, 2 | s4 = v0 + 2;
| label_11:
0x00068474 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x00068478 lw t9, -0x6fc0(gp) | t9 = *(gp);
| if (a0 != 0) {
0x0006847c beqz a0, 0x68490 |
0x00068480 jalr t9 | t9 ();
0x00068484 nop |
0x00068488 lw gp, 0x10(sp) | gp = *(var_10h);
0x0006848c addu s4, s4, v0 | s4 += v0;
| }
0x00068490 lw v0, -0x6ddc(gp) | v0 = *((gp - 7031));
0x00068494 lw t9, (v0) | t9 = *(v0);
0x00068498 move a0, s4 | a0 = s4;
0x0006849c jalr t9 | t9 ();
0x000684a0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000684a4 sw v0, 0x18(s3) | *((s3 + 6)) = v0;
| if (v0 == 0) {
0x000684a8 beqz v0, 0x6873c | goto label_41;
| }
0x000684ac sb zero, (v0) | *(v0) = 0;
0x000684b0 lw v0, 0x18(s0) | v0 = *((s0 + 6));
0x000684b4 move v1, zero | v1 = 0;
| if (v0 == 0) {
0x000684b8 beqz v0, 0x68708 | goto label_42;
| }
0x000684bc move a0, zero | a0 = 0;
0x000684c0 addiu a3, zero, 0x2f | a3 = 0x2f;
0x000684c4 addu a1, v0, a0 | a1 = v0 + a0;
| label_6:
0x000684c8 lb a1, (a1) | a1 = *(a1);
| if (a1 != 0) {
0x000684cc bnez a1, 0x684ec | goto label_43;
| }
0x000684d0 nop |
0x000684d4 move a1, v1 | a1 = v1;
0x000684d8 b 0x68528 | goto label_12;
| do {
0x000684dc addu a1, v0, a0 | a1 = v0 + a0;
0x000684e0 lb a1, (a1) | a1 = *(a1);
| if (a1 == 0) {
0x000684e4 beql a1, zero, 0x68528 | goto label_12;
| }
0x000684e8 move a1, v1 | a1 = v1;
| label_43:
0x000684ec addiu a0, a0, 1 | a0++;
0x000684f0 bne a1, a3, 0x684dc |
| } while (a1 != a3);
0x000684f4 slt a1, v1, a0 | a1 = (v1 < a0) ? 1 : 0;
0x000684f8 addu a1, v0, a0 | a1 = v0 + a0;
| if (a1 == 0) {
0x000684fc beqz a1, 0x684c8 | goto label_6;
| }
| do {
0x00068500 addu v0, v0, v1 | v0 += v1;
0x00068504 lw a1, 0x18(s3) | a1 = *((s3 + 6));
0x00068508 lb a2, (v0) | a2 = *(v0);
0x0006850c addu v0, a1, v1 | v0 = a1 + v1;
0x00068510 addiu v1, v1, 1 | v1++;
0x00068514 sb a2, (v0) | *(v0) = a2;
0x00068518 lw v0, 0x18(s0) | v0 = *((s0 + 6));
0x0006851c bne v1, a0, 0x68500 |
| } while (v1 != a0);
0x00068520 addu a1, v0, a0 | a1 = v0 + a0;
0x00068524 b 0x684c8 | goto label_6;
| label_12:
0x00068528 lw v0, 0x18(s3) | v0 = *((s3 + 6));
0x0006852c addu v0, v0, a1 | v0 += a1;
0x00068530 sb zero, (v0) | *(v0) = 0;
0x00068534 lw v0, 0x18(s1) | v0 = *((s1 + 6));
| if (v0 == 0) {
0x00068538 beql v0, zero, 0x685a4 | goto label_16;
| }
0x0006853c lw v0, 0x18(s3) | v0 = *((s3 + 6));
0x00068540 lb a0, (v0) | a0 = *(v0);
0x00068544 lw v0, 0x18(s3) | v0 = *((s3 + 6));
| if (a0 == 0) {
0x00068548 beqz a0, 0x685a4 | goto label_16;
| }
0x0006854c addu v0, v0, s2 | v0 += s2;
| if (v1 == 0) {
0x00068550 bnel v1, zero, 0x68580 | goto label_44;
| }
0x00068554 lw a1, 0xc(s0) | a1 = *((s0 + 3));
| if (a1 == 0) {
0x00068558 beql a1, zero, 0x68580 | goto label_44;
| }
0x0006855c addu v0, v0, s2 | v0 += s2;
0x00068560 addiu v1, zero, 0x2f | v1 = 0x2f;
0x00068564 sb v1, (v0) | *(v0) = v1;
0x00068568 lw v0, 0x18(s1) | v0 = *((s1 + 6));
0x0006856c lb a0, (v0) | a0 = *(v0);
0x00068570 lw v0, 0x18(s3) | v0 = *((s3 + 6));
| if (a0 == 0) {
0x00068574 beqz a0, 0x6875c | goto label_45;
| }
0x00068578 addiu v1, zero, 1 | v1 = 1;
| do {
0x0006857c addu v0, v0, s2 | v0 += s2;
| label_44:
0x00068580 addu v0, v0, v1 | v0 += v1;
0x00068584 addiu s2, s2, 1 | s2++;
0x00068588 sb a0, (v0) | *(v0) = a0;
0x0006858c lw v0, 0x18(s1) | v0 = *((s1 + 6));
0x00068590 addu a1, s2, v1 | a1 = s2 + v1;
0x00068594 addu v0, v0, s2 | v0 += s2;
0x00068598 lb a0, (v0) | a0 = *(v0);
0x0006859c lw v0, 0x18(s3) | v0 = *((s3 + 6));
0x000685a0 bnez a0, 0x6857c |
| } while (a0 != 0);
| label_16:
0x000685a4 addu v0, v0, a1 | v0 += a1;
0x000685a8 sb zero, (v0) | *(v0) = 0;
0x000685ac lw a0, 0x18(s3) | a0 = *((s3 + 6));
| if (a0 == 0) {
0x000685b0 beql a0, zero, 0x68384 | goto label_7;
| }
0x000685b4 lw t9, -0x7a58(gp) | t9 = *((gp - 7830));
0x000685b8 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
0x000685bc addiu t9, t9, 0x4d9c | t9 += 0x4d9c;
0x000685c0 bal 0x64d9c | fcn_00064d9c ();
0x000685c4 nop |
0x000685c8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000685cc b 0x68380 | goto label_8;
| label_34:
0x000685d0 lw v0, 8(s1) | v0 = *((s1 + 2));
| if (v0 != 0) {
0x000685d4 bnez v0, 0x682e0 | goto label_9;
| }
0x000685d8 nop |
0x000685dc lw v0, 0xc(s1) | v0 = *((s1 + 3));
| if (v0 != 0) {
0x000685e0 bnez v0, 0x682e0 | goto label_9;
| }
0x000685e4 nop |
0x000685e8 lw v0, -0x6e34(gp) | v0 = *(gp);
| if (a0 != 0) {
0x000685ec beqz a0, 0x68604 |
0x000685f0 lw t9, (v0) | t9 = *(v0);
0x000685f4 jalr t9 | t9 ();
0x000685f8 nop |
0x000685fc lw gp, 0x10(sp) | gp = *(var_10h);
0x00068600 sw v0, (s3) | *(s3) = v0;
| }
0x00068604 lw a0, 8(s0) | a0 = *((s0 + 2));
0x00068608 lw v0, -0x6e34(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0006860c beqz a0, 0x68764 | goto label_46;
| }
0x00068610 lw t9, (v0) | t9 = *(v0);
0x00068614 jalr t9 | t9 ();
0x00068618 nop |
0x0006861c lw gp, 0x10(sp) | gp = *(var_10h);
0x00068620 sw v0, 8(s3) | *((s3 + 2)) = v0;
| label_17:
0x00068624 lw a0, 0x18(s0) | a0 = *((s0 + 6));
| label_19:
0x00068628 lw v0, -0x6e34(gp) | v0 = *(gp);
| if (a0 != 0) {
0x0006862c beqz a0, 0x68644 |
0x00068630 lw t9, (v0) | t9 = *(v0);
0x00068634 jalr t9 | t9 ();
0x00068638 nop |
0x0006863c lw gp, 0x10(sp) | gp = *(var_10h);
0x00068640 sw v0, 0x18(s3) | *((s3 + 6)) = v0;
| }
0x00068644 lw a0, 0x28(s1) | a0 = *((s1 + 10));
| if (a0 == 0) {
0x00068648 beql a0, zero, 0x687b0 | goto label_47;
| }
0x0006864c lw a0, 0x1c(s1) | a0 = *((s1 + 7));
0x00068650 lw v0, -0x6e34(gp) | v0 = *(gp);
| label_21:
0x00068654 lw t9, (v0) | t9 = *(v0);
0x00068658 jalr t9 | t9 ();
0x0006865c nop |
0x00068660 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068664 sw v0, 0x28(s3) | *((s3 + 10)) = v0;
| label_18:
0x00068668 lw a0, 0x20(s1) | a0 = *((s1 + 8));
| label_23:
0x0006866c lw v0, -0x6e34(gp) | v0 = *(gp);
| if (a0 == 0) {
0x00068670 beqz a0, 0x68380 | goto label_8;
| }
0x00068674 lw t9, (v0) | t9 = *(v0);
0x00068678 jalr t9 | t9 ();
0x0006867c nop |
0x00068680 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068684 sw v0, 0x20(s3) | *((s3 + 8)) = v0;
0x00068688 b 0x68380 | goto label_8;
| label_32:
0x0006868c lw s3, -0x7da8(gp) | s3 = *(gp);
0x00068690 move t9, s3 | t9 = s3;
0x00068694 move a0, s1 | a0 = s1;
0x00068698 bal 0x65ec4 | sym_xmlFreeURI ();
0x0006869c move a0, s0 | a0 = s0;
0x000686a0 move t9, s3 | t9 = s3;
0x000686a4 move s2, zero | s2 = 0;
0x000686a8 bal 0x65ec4 | sym_xmlFreeURI ();
0x000686ac lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x000686b0 b 0x68120 | goto label_1;
| label_38:
0x000686b4 lw a0, 0xc(s0) | a0 = *((s0 + 3));
| if (a0 != 0) {
0x000686b8 beql a0, zero, 0x68728 |
0x000686bc lw v1, 0x14(s0) | v1 = *((s0 + 5));
0x000686c0 lw t9, (v0) | t9 = *(v0);
0x000686c4 jalr t9 | t9 ();
0x000686c8 nop |
0x000686cc lw gp, 0x10(sp) | gp = *(var_10h);
0x000686d0 sw v0, 0xc(s3) | *((s3 + 3)) = v0;
0x000686d4 lw a0, 0x10(s0) | a0 = *((s0 + 4));
| label_14:
0x000686d8 lw v0, -0x6e34(gp) | v0 = *(gp);
| if (a0 != 0) {
0x000686dc beqz a0, 0x686f4 |
0x000686e0 lw t9, (v0) | t9 = *(v0);
0x000686e4 jalr t9 | t9 ();
0x000686e8 nop |
0x000686ec lw gp, 0x10(sp) | gp = *(var_10h);
0x000686f0 sw v0, 0x10(s3) | *((s3 + 4)) = v0;
| }
0x000686f4 lw v0, 0x14(s0) | v0 = *((s0 + 5));
0x000686f8 sw v0, 0x14(s3) | *((s3 + 5)) = v0;
0x000686fc b 0x68448 | goto label_10;
| label_39:
0x00068700 addiu s4, zero, 2 | s4 = 2;
0x00068704 b 0x68474 | goto label_11;
| label_42:
0x00068708 move a1, zero | a1 = 0;
0x0006870c b 0x68528 | goto label_12;
| label_40:
0x00068710 lw t9, (v0) | t9 = *(v0);
0x00068714 jalr t9 | t9 ();
0x00068718 nop |
0x0006871c lw gp, 0x10(sp) | gp = *(var_10h);
0x00068720 sw v0, 0x18(s3) | *((s3 + 6)) = v0;
0x00068724 b 0x68380 | goto label_8;
| }
0x00068728 addiu v0, zero, -1 | v0 = -1;
0x0006872c lw a0, 0x18(s1) | a0 = *((s1 + 6));
| if (v1 == v0) {
0x00068730 bnel v1, v0, 0x6844c | goto label_13;
| }
0x00068734 lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x00068738 b 0x686d8 | goto label_14;
| label_41:
0x0006873c lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x00068740 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
0x00068744 addiu t9, t9, 0x4c70 | t9 += 0x4c70;
0x00068748 addiu a0, a0, -0x583c | a0 += -0x583c;
0x0006874c bal 0x64c70 | fcn_00064c70 ();
0x00068750 move s2, zero | s2 = 0;
0x00068754 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068758 b 0x68394 | goto label_15;
| label_45:
0x0006875c addiu a1, zero, 1 | a1 = 1;
0x00068760 b 0x685a4 | goto label_16;
| label_46:
0x00068764 lw a0, 0xc(s0) | a0 = *((s0 + 3));
| if (a0 != 0) {
0x00068768 beql a0, zero, 0x687d4 |
0x0006876c lw v1, 0x14(s0) | v1 = *((s0 + 5));
0x00068770 lw t9, (v0) | t9 = *(v0);
0x00068774 jalr t9 | t9 ();
0x00068778 nop |
0x0006877c lw gp, 0x10(sp) | gp = *(var_10h);
0x00068780 sw v0, 0xc(s3) | *((s3 + 3)) = v0;
0x00068784 lw a0, 0x10(s0) | a0 = *((s0 + 4));
| label_20:
0x00068788 lw v0, -0x6e34(gp) | v0 = *(gp);
| if (a0 != 0) {
0x0006878c beqz a0, 0x687a4 |
0x00068790 lw t9, (v0) | t9 = *(v0);
0x00068794 jalr t9 | t9 ();
0x00068798 nop |
0x0006879c lw gp, 0x10(sp) | gp = *(var_10h);
0x000687a0 sw v0, 0x10(s3) | *((s3 + 4)) = v0;
| }
0x000687a4 lw v0, 0x14(s0) | v0 = *((s0 + 5));
0x000687a8 sw v0, 0x14(s3) | *((s3 + 5)) = v0;
0x000687ac b 0x68624 | goto label_17;
| if (a0 == 0) {
| label_47:
0x000687b0 beql a0, zero, 0x687e8 | goto label_48;
| }
0x000687b4 lw a0, 0x28(s0) | a0 = *((s0 + 10));
0x000687b8 lw v0, -0x6e34(gp) | v0 = *(gp);
0x000687bc lw t9, (v0) | t9 = *(v0);
| label_22:
0x000687c0 jalr t9 | t9 ();
0x000687c4 nop |
0x000687c8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000687cc sw v0, 0x1c(s3) | *((s3 + 7)) = v0;
0x000687d0 b 0x68668 | goto label_18;
| }
0x000687d4 addiu v0, zero, -1 | v0 = -1;
0x000687d8 lw a0, 0x18(s0) | a0 = *((s0 + 6));
| if (v1 == v0) {
0x000687dc bnel v1, v0, 0x68628 | goto label_19;
| }
0x000687e0 lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x000687e4 b 0x68788 | goto label_20;
| label_48:
0x000687e8 lw v0, -0x6e34(gp) | v0 = *(gp);
| if (a0 != 0) {
0x000687ec bnez a0, 0x68654 | goto label_21;
| }
0x000687f0 lw a0, 0x1c(s0) | a0 = *((s0 + 7));
0x000687f4 lw t9, (v0) | t9 = *(v0);
| if (a0 == 0) {
0x000687f8 bnel a0, zero, 0x687c0 | goto label_22;
| }
0x000687fc lw a0, 0x20(s1) | a0 = *((s1 + 8));
0x00068800 b 0x6866c | goto label_23;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x68da4 */
| #include <stdint.h>
|
; (fcn) sym.xmlCanonicPath () | void xmlCanonicPath () {
0x00068da4 lui gp, 0x13 |
0x00068da8 addiu gp, gp, -0x7734 |
0x00068dac addu gp, gp, t9 | gp += t9;
0x00068db0 addiu sp, sp, -0x28 |
0x00068db4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00068db8 sw ra, 0x24(sp) | *(var_24h) = ra;
0x00068dbc sw s2, 0x20(sp) | *(var_20h) = s2;
0x00068dc0 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x00068dc4 sw s0, 0x18(sp) | *(var_18h) = s0;
0x00068dc8 addiu v1, zero, 0x2f | v1 = 0x2f;
| if (a0 == 0) {
0x00068dcc beqz a0, 0x68f04 | goto label_2;
| }
0x00068dd0 lbu v0, (a0) | v0 = *(a0);
0x00068dd4 move s0, a0 | s0 = a0;
| if (v0 == v1) {
0x00068dd8 beq v0, v1, 0x68ee4 | goto label_3;
| }
0x00068ddc lw s1, -0x7dac(gp) | s1 = *((gp - 8043));
| label_0:
0x00068de0 move t9, s1 | t9 = s1;
| label_1:
0x00068de4 move a0, s0 | a0 = s0;
0x00068de8 bal 0x676d4 | sym_xmlParseURI ();
0x00068dec lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00068df0 beqz v0, 0x68e24 |
0x00068df4 lw t9, -0x7da8(gp) | t9 = *(gp);
0x00068df8 move a0, v0 | a0 = v0;
0x00068dfc bal 0x65ec4 | sym_xmlFreeURI ();
0x00068e00 lw gp, 0x10(sp) | gp = *(var_10h);
0x00068e04 lw ra, 0x24(sp) | ra = *(var_24h);
0x00068e08 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00068e0c lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00068e10 move a0, s0 | a0 = s0;
0x00068e14 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00068e18 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00068e1c addiu sp, sp, 0x28 |
0x00068e20 jr t9 | t9 ();
| }
0x00068e24 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00068e28 lw t9, -0x7fb4(gp) | t9 = *((gp - 8173));
0x00068e2c addiu a1, a1, -0x6730 | a1 += -0x6730;
0x00068e30 move a0, s0 | a0 = s0;
0x00068e34 jalr t9 | t9 ();
0x00068e38 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00068e3c beqz v0, 0x68ec4 | goto label_4;
| }
0x00068e40 subu v0, v0, s0 | __asm ("subu v0, v0, s0");
0x00068e44 addiu v1, v0, -1 | v1 = v0 + -1;
0x00068e48 sltiu v1, v1, 0x14 | v1 = (v1 < 0x14) ? 1 : 0;
0x00068e4c move v1, s0 | v1 = s0;
| if (v1 == 0) {
0x00068e50 beqz v1, 0x68ec4 | goto label_4;
| }
0x00068e54 addu a0, v0, s0 | a0 = v0 + s0;
0x00068e58 addiu a1, zero, -0x21 | a1 = -0x21;
0x00068e5c lbu v0, (v1) | v0 = *(v1);
| do {
0x00068e60 and v0, v0, a1 | v0 &= a1;
0x00068e64 addiu v0, v0, -0x41 | v0 += -0x41;
0x00068e68 sltiu v0, v0, 0x1a | v0 = (v0 < 0x1a) ? 1 : 0;
0x00068e6c addiu v1, v1, 1 | v1++;
| if (v0 == 0) {
0x00068e70 beqz v0, 0x68ec4 | goto label_4;
| }
0x00068e74 lbu v0, (v1) | v0 = *(v1);
0x00068e78 bnel a0, v1, 0x68e60 |
| } while (a0 == v1);
0x00068e7c lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00068e80 lw t9, -0x7a50(gp) | t9 = *(gp);
0x00068e84 addiu a1, a1, -0x57fc | a1 += -0x57fc;
0x00068e88 move a0, s0 | a0 = s0;
0x00068e8c bal 0x6783c | sym_xmlURIEscapeStr ();
0x00068e90 move s2, v0 | s2 = v0;
0x00068e94 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00068e98 beqz v0, 0x68ec4 |
0x00068e9c move t9, s1 | t9 = s1;
0x00068ea0 move a0, v0 | a0 = v0;
0x00068ea4 bal 0x676d4 | sym_xmlParseURI ();
0x00068ea8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00068eac bnez v0, 0x68f24 | goto label_5;
| }
0x00068eb0 lw v0, -0x7158(gp) | v0 = *(gp);
0x00068eb4 lw t9, (v0) | t9 = *(v0);
0x00068eb8 move a0, s2 | a0 = s2;
0x00068ebc jalr t9 | t9 ();
0x00068ec0 lw gp, 0x10(sp) | gp = *(var_10h);
| }
| label_4:
0x00068ec4 lw ra, 0x24(sp) | ra = *(var_24h);
0x00068ec8 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00068ecc lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00068ed0 move a0, s0 | a0 = s0;
0x00068ed4 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00068ed8 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00068edc addiu sp, sp, 0x28 |
0x00068ee0 jr t9 | t9 ();
| label_3:
0x00068ee4 lbu v1, 1(a0) | v1 = *((a0 + 1));
0x00068ee8 lw s1, -0x7dac(gp) | s1 = *((gp - 8043));
| if (v1 != v0) {
0x00068eec bne v1, v0, 0x68de0 | goto label_0;
| }
0x00068ef0 lbu v0, 2(a0) | v0 = *((a0 + 2));
0x00068ef4 addiu s0, a0, 1 | s0 = a0 + 1;
| if (v0 == v1) {
0x00068ef8 bnel v0, v1, 0x68de0 | goto label_0;
| }
0x00068efc move t9, s1 | t9 = s1;
0x00068f00 b 0x68de4 | goto label_1;
| label_2:
0x00068f04 move s2, zero | s2 = 0;
0x00068f08 lw ra, 0x24(sp) | ra = *(var_24h);
| do {
0x00068f0c move v0, s2 | v0 = s2;
0x00068f10 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00068f14 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00068f18 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00068f1c addiu sp, sp, 0x28 |
0x00068f20 jr ra | return v0;
| label_5:
0x00068f24 lw t9, -0x7da8(gp) | t9 = *(gp);
0x00068f28 move a0, v0 | a0 = v0;
0x00068f2c bal 0x65ec4 | sym_xmlFreeURI ();
0x00068f30 lw ra, 0x24(sp) | ra = *(var_24h);
0x00068f34 b 0x68f0c |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x250e8 */
| #include <stdint.h>
|
; (fcn) sym.xmlCharEncCloseFunc () | void xmlCharEncCloseFunc () {
0x000250e8 lui gp, 0x17 |
0x000250ec addiu gp, gp, -0x3a78 |
0x000250f0 addu gp, gp, t9 | gp += t9;
0x000250f4 addiu sp, sp, -0x28 |
0x000250f8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000250fc sw ra, 0x24(sp) | *(var_24h) = ra;
0x00025100 sw s2, 0x20(sp) | *(var_20h) = s2;
0x00025104 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x00025108 sw s0, 0x18(sp) | *(var_18h) = s0;
| if (a0 == 0) {
0x0002510c beql a0, zero, 0x251c0 | goto label_1;
| }
0x00025110 addiu s1, zero, -1 | s1 = -1;
0x00025114 lw v0, (a0) | v0 = *(a0);
0x00025118 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
| if (v0 == 0) {
0x0002511c beqz v0, 0x25228 | goto label_2;
| }
0x00025120 lw v0, -0x56f8(v0) | v0 = *((v0 - 5566));
| if (v0 == 0) {
0x00025124 beql v0, zero, 0x2516c | goto label_3;
| }
0x00025128 move s0, a0 | s0 = a0;
0x0002512c lw v1, -0x7fe4(gp) | v1 = *((gp - 8185));
0x00025130 lw a2, -0x56fc(v1) | a2 = *((v1 - 5567));
| if (a2 <= 0) {
0x00025134 blezl a2, 0x2516c | goto label_3;
| }
0x00025138 move s0, a0 | s0 = a0;
0x0002513c lw v1, (v0) | v1 = *(v0);
0x00025140 addiu v0, v0, 4 | v0 += 4;
| if (a0 == v1) {
0x00025144 beq a0, v1, 0x251dc | goto label_4;
| }
0x00025148 move v1, zero | v1 = 0;
0x0002514c b 0x2515c |
| while (v1 != a2) {
0x00025150 lw a1, -4(v0) | a1 = *((v0 - 1));
0x00025154 lw ra, 0x24(sp) | ra = *(var_24h);
| if (a1 == a0) {
0x00025158 beq a1, a0, 0x251e0 | goto label_5;
| }
0x0002515c addiu v1, v1, 1 | v1++;
0x00025160 addiu v0, v0, 4 | v0 += 4;
0x00025164 bne v1, a2, 0x25150 |
| }
0x00025168 move s0, a0 | s0 = a0;
| label_3:
0x0002516c lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x00025170 lw t9, -0x7144(gp) | t9 = *(gp);
| if (a0 == 0) {
0x00025174 beqz a0, 0x251fc | goto label_6;
| }
0x00025178 jalr t9 | t9 ();
0x0002517c nop |
0x00025180 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x00025184 sltu v0, zero, v0 | v0 = (0 < v0) ? 1 : 0;
0x00025188 lw gp, 0x10(sp) | gp = *(var_10h);
0x0002518c negu s1, v0 | __asm ("negu s1, v0");
0x00025190 sw zero, 0x10(s0) | *((s0 + 4)) = 0;
| if (a0 != 0) {
0x00025194 bnez a0, 0x25208 | goto label_7;
| }
| label_0:
0x00025198 lw s2, -0x7158(gp) | s2 = *(gp);
0x0002519c lw a0, (s0) | a0 = *(s0);
0x000251a0 lw t9, (s2) | t9 = *(s2);
| if (a0 != 0) {
0x000251a4 beqz a0, 0x251b4 |
0x000251a8 jalr t9 | t9 ();
0x000251ac nop |
0x000251b0 lw t9, (s2) | t9 = *(s2);
| }
0x000251b4 sw zero, (s0) | *(s0) = 0;
0x000251b8 move a0, s0 | a0 = s0;
0x000251bc jalr t9 | t9 ();
| do {
| label_1:
0x000251c0 lw ra, 0x24(sp) | ra = *(var_24h);
0x000251c4 move v0, s1 | v0 = s1;
0x000251c8 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000251cc lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000251d0 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000251d4 addiu sp, sp, 0x28 |
0x000251d8 jr ra | return v1;
| label_4:
0x000251dc lw ra, 0x24(sp) | ra = *(var_24h);
| label_5:
0x000251e0 move s1, zero | s1 = 0;
0x000251e4 move v0, s1 | v0 = s1;
0x000251e8 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000251ec lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000251f0 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000251f4 addiu sp, sp, 0x28 |
0x000251f8 jr ra | return v1;
| label_6:
0x000251fc lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x00025200 move s1, zero | s1 = 0;
0x00025204 beqz a0, 0x251c0 |
| } while (a0 == 0);
| label_7:
0x00025208 lw t9, -0x7144(gp) | t9 = *(gp);
0x0002520c jalr t9 | t9 ();
0x00025210 nop |
0x00025214 addiu v1, zero, -1 | v1 = -1;
0x00025218 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0002521c movn s1, v1, v0 | s1 = v1;
| }
0x00025220 sw zero, 0xc(s0) | *((s0 + 3)) = 0;
0x00025224 b 0x25198 | goto label_0;
| label_2:
0x00025228 addiu s1, zero, -1 | s1 = -1;
0x0002522c b 0x251c0 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x246c4 */
| #include <stdint.h>
|
; (fcn) sym.xmlCharEncInFunc () | void xmlCharEncInFunc () {
0x000246c4 lui gp, 0x17 |
0x000246c8 addiu gp, gp, -0x3054 |
0x000246cc addu gp, gp, t9 | gp += t9;
0x000246d0 addiu sp, sp, -0x88 |
0x000246d4 sw s4, 0x80(sp) | *(var_80h) = s4;
0x000246d8 lw s4, -0x7000(gp) | s4 = *((gp - 7168));
0x000246dc sw gp, 0x28(sp) | *(var_28h) = gp;
0x000246e0 sw ra, 0x84(sp) | *(var_84h) = ra;
0x000246e4 lw v0, (s4) | v0 = *(s4);
0x000246e8 sw s3, 0x7c(sp) | *(var_7ch) = s3;
0x000246ec sw s2, 0x78(sp) | *(var_78h) = s2;
0x000246f0 sw s1, 0x74(sp) | *(var_74h) = s1;
0x000246f4 sw s0, 0x70(sp) | *(var_70h) = s0;
0x000246f8 sw v0, 0x6c(sp) | *(var_6ch) = v0;
| if (a0 == 0) {
0x000246fc beql a0, zero, 0x247d0 | goto label_1;
| }
0x00024700 addiu s0, zero, -1 | s0 = -1;
0x00024704 move s2, a1 | s2 = a1;
| if (a1 == 0) {
0x00024708 beqz a1, 0x248b8 | goto label_2;
| }
0x0002470c move s3, a2 | s3 = a2;
| if (a2 == 0) {
0x00024710 beqz a2, 0x248b8 | goto label_2;
| }
0x00024714 lw s0, 4(a2) | s0 = *((a2 + 1));
0x00024718 sw s0, 0x34(sp) | *(var_34h_3) = s0;
| if (s0 == 0) {
0x0002471c beqz s0, 0x247d0 | goto label_1;
| }
0x00024720 move s1, a0 | s1 = a0;
0x00024724 lw a0, 8(a1) | a0 = *((a1 + 2));
0x00024728 lw v1, 4(a1) | v1 = *((a1 + 1));
0x0002472c addiu v0, a0, -1 | v0 = a0 + -1;
0x00024730 subu v0, v0, v1 | __asm ("subu v0, v0, v1");
0x00024734 sll s0, s0, 1 | s0 <<= 1;
0x00024738 slt a1, s0, v0 | a1 = (s0 < v0) ? 1 : 0;
0x0002473c sw v0, 0x30(sp) | *(var_30h_3) = v0;
| if (a1 == 0) {
0x00024740 beqz a1, 0x24810 | goto label_3;
| }
| label_0:
0x00024744 lw a2, (s2) | a2 = *(s2);
0x00024748 lw v0, (s3) | v0 = *(s3);
0x0002474c lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00024750 lw a0, 4(s1) | a0 = *((s1 + 1));
0x00024754 addu a2, a2, v1 | a2 += v1;
0x00024758 addiu v1, sp, 0x34 | v1 = sp + 0x34;
0x0002475c sw v1, 0x14(sp) | *(var_14h_3) = v1;
0x00024760 addiu a3, sp, 0x30 | a3 = sp + 0x30;
0x00024764 addiu a1, s1, 0xc | a1 = s1 + 0xc;
0x00024768 addiu t9, t9, 0x26cc | t9 += aav.0x000026cc;
0x0002476c sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00024770 bal 0x226cc | fcn_000226cc ();
0x00024774 lw gp, 0x28(sp) | gp = *(var_28h);
0x00024778 lw a1, 0x34(sp) | a1 = *(var_34h_3);
0x0002477c move a0, s3 | a0 = s3;
0x00024780 lw t9, -0x7f50(gp) | t9 = *((gp - 8148));
0x00024784 move s0, v0 | s0 = v0;
0x00024788 jalr t9 | t9 ();
0x0002478c lw v0, 4(s2) | v0 = *((s2 + 1));
0x00024790 lw a0, 0x30(sp) | a0 = *(var_30h_3);
0x00024794 lw v1, (s2) | v1 = *(s2);
0x00024798 addu v0, v0, a0 | v0 += a0;
0x0002479c addu v1, v1, v0 | v1 += v0;
0x000247a0 addiu a0, zero, -1 | a0 = -1;
0x000247a4 lw gp, 0x28(sp) | gp = *(var_28h);
0x000247a8 sw v0, 4(s2) | *((s2 + 1)) = v0;
0x000247ac sb zero, (v1) | *(v1) = 0;
| if (s0 == a0) {
0x000247b0 beq s0, a0, 0x24800 | goto label_4;
| }
0x000247b4 addiu v0, zero, -2 | v0 = -2;
| if (s0 == v0) {
0x000247b8 beql s0, v0, 0x2483c | goto label_5;
| }
0x000247bc lw v0, (s3) | v0 = *(s3);
0x000247c0 addiu v0, zero, -3 | v0 = -3;
0x000247c4 lw v0, 0x30(sp) | v0 = *(var_30h_3);
| if (s0 == v0) {
0x000247c8 beq s0, v0, 0x24804 | goto label_6;
| }
0x000247cc movn s0, v0, v0 | s0 = v0;
| while (1) {
| label_1:
0x000247d0 lw a0, 0x6c(sp) | a0 = *(var_6ch);
0x000247d4 lw v1, (s4) | v1 = *(s4);
0x000247d8 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x000247dc bne a0, v1, 0x248c0 | goto label_7;
| }
0x000247e0 lw ra, 0x84(sp) | ra = *(var_84h);
0x000247e4 lw s4, 0x80(sp) | s4 = *(var_80h);
0x000247e8 lw s3, 0x7c(sp) | s3 = *(var_7ch);
0x000247ec lw s2, 0x78(sp) | s2 = *(var_78h);
0x000247f0 lw s1, 0x74(sp) | s1 = *(var_74h);
0x000247f4 lw s0, 0x70(sp) | s0 = *(var_70h);
0x000247f8 addiu sp, sp, 0x88 |
0x000247fc jr ra | return v0;
| label_4:
0x00024800 lw v0, 0x30(sp) | v0 = *(var_30h_3);
| label_6:
0x00024804 move s0, zero | s0 = 0;
| if (v0 == 0) {
0x00024808 movn s0, v0, v0 | s0 = v0;
| }
0x0002480c b 0x247d0 |
| }
| label_3:
0x00024810 lw t9, -0x7f54(gp) | t9 = *((gp - 8149));
0x00024814 addu a1, s0, a0 | a1 = s0 + a0;
0x00024818 move a0, s2 | a0 = s2;
0x0002481c jalr t9 | t9 ();
0x00024820 lw v0, 8(s2) | v0 = *((s2 + 2));
0x00024824 lw v1, 4(s2) | v1 = *((s2 + 1));
0x00024828 addiu v0, v0, -1 | v0 += -1;
0x0002482c subu v0, v0, v1 | __asm ("subu v0, v0, v1");
0x00024830 lw gp, 0x28(sp) | gp = *(var_28h);
0x00024834 sw v0, 0x30(sp) | *(var_30h_3) = v0;
0x00024838 b 0x24744 | goto label_0;
| label_5:
0x0002483c lw t9, -0x7108(gp) | t9 = *(gp);
0x00024840 addiu s1, sp, 0x38 | s1 = sp + 0x38;
0x00024844 lbu v1, 3(v0) | v1 = *((v0 + 3));
0x00024848 addiu a3, zero, 0x32 | a3 = 0x32;
0x0002484c sw v1, 0x20(sp) | *(var_20h_4) = v1;
0x00024850 lbu v1, 2(v0) | v1 = *((v0 + 2));
0x00024854 addiu a2, zero, 1 | a2 = 1;
0x00024858 sw v1, 0x1c(sp) | *(var_1ch_4) = v1;
0x0002485c lbu v1, 1(v0) | v1 = *((v0 + 1));
0x00024860 addiu a1, zero, 0x31 | a1 = 0x31;
0x00024864 sw v1, 0x18(sp) | *(var_18h_4) = v1;
0x00024868 lbu v0, (v0) | v0 = *(v0);
0x0002486c move a0, s1 | a0 = s1;
0x00024870 sw v0, 0x14(sp) | *(var_14h_3) = v0;
0x00024874 lw v0, -0x7fd4(gp) | v0 = *(gp);
0x00024878 addiu v0, v0, 0x641c | v0 += 0x641c;
0x0002487c sw v0, 0x10(sp) | *(var_10h_4) = v0;
0x00024880 jalr t9 | t9 ();
0x00024884 lw gp, 0x28(sp) | gp = *(var_28h);
0x00024888 move a2, s1 | a2 = s1;
0x0002488c addiu a0, zero, 0x1773 | a0 = 0x1773;
0x00024890 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00024894 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00024898 addiu a1, a1, 0x6438 | a1 += aav.0x00006438;
0x0002489c addiu t9, t9, 0x2408 | t9 += 0x2408;
0x000248a0 sb zero, 0x69(sp) | *(var_69h) = 0;
0x000248a4 bal 0x22408 | fcn_00022408 ();
0x000248a8 lw v0, 0x30(sp) | v0 = *(var_30h_3);
0x000248ac lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x000248b0 movn s0, v0, v0 | s0 = v0;
| }
0x000248b4 b 0x247d0 | goto label_1;
| label_2:
0x000248b8 addiu s0, zero, -1 | s0 = -1;
0x000248bc b 0x247d0 | goto label_1;
| label_7:
0x000248c0 lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x000248c4 jalr t9 | t9 ();
0x000248c8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb7db4 */
| #include <stdint.h>
|
; (fcn) sym.xmlCharStrdup () | void xmlCharStrdup () {
0x000b7db4 lui gp, 0xe |
0x000b7db8 addiu gp, gp, -0x6744 |
0x000b7dbc addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x000b7dc0 beqz a0, 0xb7dfc | goto label_0;
| }
0x000b7dc4 nop |
0x000b7dc8 lb v0, (a0) | v0 = *(a0);
0x000b7dcc move a1, a0 | a1 = a0;
| if (v0 == 0) {
0x000b7dd0 beqz v0, 0xb7df0 | goto label_1;
| }
0x000b7dd4 addiu a1, a1, 1 | a1++;
| do {
0x000b7dd8 lb v0, (a1) | v0 = *(a1);
0x000b7ddc addiu a1, a1, 1 | a1++;
0x000b7de0 bnel v0, zero, 0xb7dd8 |
| } while (v0 == 0);
0x000b7de4 lw t9, -0x76cc(gp) | t9 = *(gp);
0x000b7de8 subu a1, a1, a0 | __asm ("subu a1, a1, a0");
0x000b7dec b 0xb7ce0 | void (*0xb7ce0)() ();
| label_1:
0x000b7df0 lw t9, -0x76cc(gp) | t9 = *(gp);
0x000b7df4 move a1, zero | a1 = 0;
0x000b7df8 b 0xb7ce0 | void (*0xb7ce0)() ();
| label_0:
0x000b7dfc move v0, zero | v0 = 0;
0x000b7e00 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb7ce0 */
| #include <stdint.h>
|
; (fcn) sym.xmlCharStrndup () | void xmlCharStrndup () {
0x000b7ce0 lui gp, 0xe |
0x000b7ce4 addiu gp, gp, -0x6670 |
0x000b7ce8 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x000b7cec beqz a0, 0xb7d90 | goto label_0;
| }
0x000b7cf0 nop |
| if (a1 < 0) {
0x000b7cf4 bltz a1, 0xb7d88 | goto label_1;
| }
0x000b7cf8 nop |
0x000b7cfc lw v0, -0x6ddc(gp) | v0 = *((gp - 7031));
0x000b7d00 addiu sp, sp, -0x30 |
0x000b7d04 lw t9, (v0) | t9 = *(v0);
0x000b7d08 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000b7d0c sw s1, 0x28(sp) | *(var_28h) = s1;
0x000b7d10 sw s0, 0x24(sp) | *(var_24h) = s0;
0x000b7d14 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000b7d18 move s0, a0 | s0 = a0;
0x000b7d1c addiu a0, a1, 1 | a0 = a1 + 1;
0x000b7d20 move s1, a1 | s1 = a1;
0x000b7d24 jalr t9 | t9 ();
0x000b7d28 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000b7d2c beqz v0, 0xb7d98 | goto label_2;
| }
| if (s1 == 0) {
0x000b7d30 beql s1, zero, 0xb7d70 | goto label_3;
| }
0x000b7d34 addu s1, v0, s1 | s1 = v0 + s1;
0x000b7d38 lbu v1, (s0) | v1 = *(s0);
0x000b7d3c sb v1, (v0) | *(v0) = v1;
| if (v1 == 0) {
0x000b7d40 beqz v1, 0xb7d74 | goto label_4;
| }
0x000b7d44 addiu v1, s0, 1 | v1 = s0 + 1;
0x000b7d48 addiu a2, v0, 1 | a2 = v0 + 1;
0x000b7d4c addu a3, s0, s1 | a3 = s0 + s1;
0x000b7d50 b 0xb7d64 |
| while (v1 == a3) {
0x000b7d54 addiu a2, a2, 1 | a2++;
0x000b7d58 addiu v1, v1, 1 | v1++;
0x000b7d5c sb a0, -1(a2) | *((a2 - 1)) = a0;
| if (a0 == 0) {
0x000b7d60 beqz a0, 0xb7d74 | goto label_4;
| }
0x000b7d64 lbu a0, (v1) | a0 = *(v1);
0x000b7d68 bnel v1, a3, 0xb7d54 |
| }
0x000b7d6c addu s1, v0, s1 | s1 = v0 + s1;
| label_3:
0x000b7d70 sb zero, (s1) | *(s1) = 0;
| do {
| label_4:
0x000b7d74 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000b7d78 lw s1, 0x28(sp) | s1 = *(var_28h);
0x000b7d7c lw s0, 0x24(sp) | s0 = *(var_24h);
0x000b7d80 addiu sp, sp, 0x30 |
0x000b7d84 jr ra | return v0;
| label_1:
0x000b7d88 move v0, zero | v0 = 0;
0x000b7d8c jr ra | return v0;
| label_0:
0x000b7d90 move v0, zero | v0 = 0;
0x000b7d94 jr ra | return v0;
| label_2:
0x000b7d98 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x000b7d9c sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x000b7da0 move a1, zero | a1 = 0;
0x000b7da4 move a0, zero | a0 = 0;
0x000b7da8 jalr t9 | t9 ();
0x000b7dac lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x000b7db0 b 0xb7d74 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x26e60 */
| #include <stdint.h>
|
; (fcn) sym.xmlCopyError () | void xmlCopyError () {
0x00026e60 lui gp, 0x17 |
0x00026e64 addiu gp, gp, -0x57f0 |
0x00026e68 addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x00026e6c beqz a0, 0x2701c |
0x00026e70 nop |
| if (a1 != 0) {
0x00026e74 beqz a1, 0x27014 |
0x00026e78 nop |
0x00026e7c addiu sp, sp, -0x38 |
0x00026e80 sw s2, 0x20(sp) | *(var_20h) = s2;
0x00026e84 lw s2, -0x7fd8(gp) | s2 = *((gp - 8182));
0x00026e88 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x00026e8c move s1, a0 | s1 = a0;
0x00026e90 lw a0, 8(a0) | a0 = *((a0 + 2));
0x00026e94 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00026e98 sw ra, 0x34(sp) | *(var_34h) = ra;
0x00026e9c move t9, s2 | t9 = s2;
0x00026ea0 sw s6, 0x30(sp) | *(var_30h) = s6;
0x00026ea4 sw s5, 0x2c(sp) | *(var_2ch) = s5;
0x00026ea8 sw s4, 0x28(sp) | *(var_28h) = s4;
0x00026eac sw s3, 0x24(sp) | *(var_24h) = s3;
0x00026eb0 sw s0, 0x18(sp) | *(var_18h) = s0;
0x00026eb4 move s0, a1 | s0 = a1;
0x00026eb8 jalr t9 | t9 ();
0x00026ebc lw a0, 0x10(s1) | a0 = *((s1 + 4));
0x00026ec0 move t9, s2 | t9 = s2;
0x00026ec4 move s6, v0 | s6 = v0;
0x00026ec8 jalr t9 | t9 ();
0x00026ecc lw a0, 0x18(s1) | a0 = *((s1 + 6));
0x00026ed0 move t9, s2 | t9 = s2;
0x00026ed4 move s5, v0 | s5 = v0;
0x00026ed8 jalr t9 | t9 ();
0x00026edc lw a0, 0x1c(s1) | a0 = *((s1 + 7));
0x00026ee0 move t9, s2 | t9 = s2;
0x00026ee4 move s4, v0 | s4 = v0;
0x00026ee8 jalr t9 | t9 ();
0x00026eec lw a0, 0x20(s1) | a0 = *((s1 + 8));
0x00026ef0 move t9, s2 | t9 = s2;
0x00026ef4 move s3, v0 | s3 = v0;
0x00026ef8 jalr t9 | t9 ();
0x00026efc lw a0, 8(s0) | a0 = *((s0 + 2));
0x00026f00 lw gp, 0x10(sp) | gp = *(var_10h);
0x00026f04 move s2, v0 | s2 = v0;
| if (a0 != 0) {
0x00026f08 beqz a0, 0x26f20 |
0x00026f0c lw v0, -0x7158(gp) | v0 = *(gp);
0x00026f10 lw t9, (v0) | t9 = *(v0);
0x00026f14 jalr t9 | t9 ();
0x00026f18 nop |
0x00026f1c lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00026f20 lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x00026f24 lw v0, -0x7158(gp) | v0 = *(gp);
| if (a0 != 0) {
0x00026f28 beqz a0, 0x26f3c |
0x00026f2c lw t9, (v0) | t9 = *(v0);
0x00026f30 jalr t9 | t9 ();
0x00026f34 nop |
0x00026f38 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00026f3c lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x00026f40 lw v0, -0x7158(gp) | v0 = *(gp);
| if (a0 != 0) {
0x00026f44 beqz a0, 0x26f58 |
0x00026f48 lw t9, (v0) | t9 = *(v0);
0x00026f4c jalr t9 | t9 ();
0x00026f50 nop |
0x00026f54 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00026f58 lw a0, 0x1c(s0) | a0 = *((s0 + 7));
0x00026f5c lw v0, -0x7158(gp) | v0 = *(gp);
| if (a0 != 0) {
0x00026f60 beqz a0, 0x26f74 |
0x00026f64 lw t9, (v0) | t9 = *(v0);
0x00026f68 jalr t9 | t9 ();
0x00026f6c nop |
0x00026f70 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00026f74 lw a0, 0x20(s0) | a0 = *((s0 + 8));
0x00026f78 lw v0, -0x7158(gp) | v0 = *(gp);
| if (a0 != 0) {
0x00026f7c beqz a0, 0x26f8c |
0x00026f80 lw t9, (v0) | t9 = *(v0);
0x00026f84 jalr t9 | t9 ();
0x00026f88 nop |
| }
0x00026f8c lw v0, 0x30(s1) | v0 = *((s1 + 12));
0x00026f90 lw t1, (s1) | t1 = *(s1);
0x00026f94 lw t0, 4(s1) | t0 = *((s1 + 1));
0x00026f98 lw a3, 0xc(s1) | a3 = *((s1 + 3));
0x00026f9c lw a2, 0x14(s1) | a2 = *((s1 + 5));
0x00026fa0 sw v0, 0x30(s0) | *((s0 + 12)) = v0;
0x00026fa4 lw a1, 0x24(s1) | a1 = *((s1 + 9));
0x00026fa8 lw v0, 0x2c(s1) | v0 = *((s1 + 11));
0x00026fac lw a0, 0x28(s1) | a0 = *((s1 + 10));
0x00026fb0 lw v1, 0x30(s1) | v1 = *((s1 + 12));
0x00026fb4 lw ra, 0x34(sp) | ra = *(var_34h);
0x00026fb8 sw v0, 0x2c(s0) | *((s0 + 11)) = v0;
0x00026fbc sw s6, 8(s0) | *((s0 + 2)) = s6;
0x00026fc0 sw s5, 0x10(s0) | *((s0 + 4)) = s5;
0x00026fc4 sw s4, 0x18(s0) | *((s0 + 6)) = s4;
0x00026fc8 sw s3, 0x1c(s0) | *((s0 + 7)) = s3;
0x00026fcc sw s2, 0x20(s0) | *((s0 + 8)) = s2;
0x00026fd0 sw t1, (s0) | *(s0) = t1;
0x00026fd4 sw t0, 4(s0) | *((s0 + 1)) = t0;
0x00026fd8 sw a3, 0xc(s0) | *((s0 + 3)) = a3;
0x00026fdc sw a2, 0x14(s0) | *((s0 + 5)) = a2;
0x00026fe0 sw a1, 0x24(s0) | *((s0 + 9)) = a1;
0x00026fe4 sw a0, 0x28(s0) | *((s0 + 10)) = a0;
0x00026fe8 sw v1, 0x30(s0) | *((s0 + 12)) = v1;
0x00026fec lw s6, 0x30(sp) | s6 = *(var_30h);
0x00026ff0 lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x00026ff4 lw s4, 0x28(sp) | s4 = *(var_28h);
0x00026ff8 lw s3, 0x24(sp) | s3 = *(var_24h);
0x00026ffc lw s2, 0x20(sp) | s2 = *(var_20h);
0x00027000 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00027004 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00027008 move v0, zero | v0 = 0;
0x0002700c addiu sp, sp, 0x38 |
0x00027010 jr ra | return v0;
| }
0x00027014 addiu v0, zero, -1 | v0 = -1;
0x00027018 jr ra | return v0;
| }
0x0002701c addiu v0, zero, -1 | v0 = -1;
0x00027020 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x41d20 */
| #include <stdint.h>
|
; (fcn) sym.xmlCreateIOParserCtxt () | void xmlCreateIOParserCtxt () {
0x00041d20 lui gp, 0x15 |
0x00041d24 addiu gp, gp, -0x6b0 |
0x00041d28 addu gp, gp, t9 | gp += t9;
0x00041d2c addiu sp, sp, -0x30 |
0x00041d30 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00041d34 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00041d38 sw s4, 0x28(sp) | *(var_28h) = s4;
0x00041d3c sw s3, 0x24(sp) | *(var_24h) = s3;
0x00041d40 sw s2, 0x20(sp) | *(var_20h) = s2;
0x00041d44 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x00041d48 sw s0, 0x18(sp) | *(var_18h) = s0;
0x00041d4c move s1, a3 | s1 = a3;
| if (a2 == 0) {
0x00041d50 beqz a2, 0x41eb8 | goto label_1;
| }
0x00041d54 lw t9, -0x7d18(gp) | t9 = *((gp - 8006));
0x00041d58 move s0, a0 | s0 = a0;
0x00041d5c lw a3, 0x44(sp) | a3 = *(arg_44h);
0x00041d60 move a0, a2 | a0 = a2;
0x00041d64 lw a2, 0x40(sp) | a2 = *(arg_40h);
0x00041d68 move s2, a1 | s2 = a1;
0x00041d6c move a1, s1 | a1 = s1;
0x00041d70 bal 0x614a4 | sym_xmlParserInputBufferCreateIO ();
0x00041d74 move s3, v0 | s3 = v0;
0x00041d78 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00041d7c beqz v0, 0x41f3c | goto label_4;
| }
0x00041d80 lw t9, -0x7e44(gp) | t9 = *((gp - 8081));
0x00041d84 bal 0x2a8b8 | sym_xmlNewParserCtxt ();
0x00041d88 nop |
0x00041d8c move s1, v0 | s1 = v0;
0x00041d90 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00041d94 beqz v0, 0x41f94 | goto label_5;
| }
0x00041d98 lw t9, -0x70ec(gp) | t9 = *((gp - 7227));
| if (s0 == 0) {
0x00041d9c beqz s0, 0x41e68 | goto label_6;
| }
0x00041da0 lw s4, (v0) | s4 = *(v0);
0x00041da4 jalr t9 | t9 ();
0x00041da8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s4 != v0) {
0x00041dac beq s4, v0, 0x41dc4 |
0x00041db0 lw v0, -0x7158(gp) | v0 = *(gp);
0x00041db4 lw t9, (v0) | t9 = *(v0);
0x00041db8 lw a0, (s1) | a0 = *(s1);
0x00041dbc jalr t9 | t9 ();
0x00041dc0 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00041dc4 lw v0, -0x716c(gp) | v0 = *(gp);
0x00041dc8 lw t9, (v0) | t9 = *(v0);
0x00041dcc addiu a0, zero, 0x80 | a0 = 0x80;
0x00041dd0 jalr t9 | t9 ();
0x00041dd4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00041dd8 sw v0, (s1) | *(s1) = v0;
| if (v0 == 0) {
0x00041ddc beqz v0, 0x41f68 | goto label_7;
| }
0x00041de0 lw t9, -0x6ea4(gp) | t9 = *((gp - 7081));
0x00041de4 move a0, v0 | a0 = v0;
0x00041de8 addiu a2, zero, 0x80 | a2 = 0x80;
0x00041dec move a1, zero | a1 = 0;
0x00041df0 jalr t9 | t9 ();
0x00041df4 lui v0, 0xdeed | v0 = 0xdeed0000;
0x00041df8 lw v1, 0x6c(s0) | v1 = *((s0 + 27));
0x00041dfc ori v0, v0, 0xbeaf | v0 |= 0xbeaf;
0x00041e00 lw gp, 0x10(sp) | gp = *(var_10h);
0x00041e04 move a0, s0 | a0 = s0;
| if (v1 == v0) {
0x00041e08 beq v1, v0, 0x41ee0 | goto label_8;
| }
0x00041e0c lw v0, (s1) | v0 = *(s1);
0x00041e10 addiu t0, s0, 0x70 | t0 = s0 + 0x70;
| do {
0x00041e14 lwl a3, 3(a0) | __asm ("lwl a3, 3(a0)");
0x00041e18 lwl a2, 7(a0) | __asm ("lwl a2, 7(a0)");
0x00041e1c lwl a1, 0xb(a0) | __asm ("lwl a1, 0xb(a0)");
0x00041e20 lwl v1, 0xf(a0) | __asm ("lwl v1, 0xf(a0)");
0x00041e24 lwr a3, (a0) | __asm ("lwr a3, (a0)");
0x00041e28 lwr a2, 4(a0) | __asm ("lwr a2, 4(a0)");
0x00041e2c lwr v1, 0xc(a0) | __asm ("lwr v1, 0xc(a0)");
0x00041e30 lwr a1, 8(a0) | __asm ("lwr a1, 8(a0)");
0x00041e34 swl a3, 3(v0) | __asm ("swl a3, 3(v0)");
0x00041e38 swr a3, (v0) | __asm ("swr a3, (v0)");
0x00041e3c swl a2, 7(v0) | __asm ("swl a2, 7(v0)");
0x00041e40 swr a2, 4(v0) | __asm ("swr a2, 4(v0)");
0x00041e44 swl a1, 0xb(v0) | __asm ("swl a1, 0xb(v0)");
0x00041e48 swr a1, 8(v0) | __asm ("swr a1, 8(v0)");
0x00041e4c addiu a0, a0, 0x10 | a0 += 0x10;
0x00041e50 swl v1, 0xf(v0) | __asm ("swl v1, 0xf(v0)");
0x00041e54 swr v1, 0xc(v0) | __asm ("swr v1, 0xc(v0)");
0x00041e58 addiu v0, v0, 0x10 | v0 += 0x10;
0x00041e5c bne a0, t0, 0x41e14 |
| } while (a0 != t0);
| label_0:
0x00041e60 sw s2, 4(s1) | *((s1 + 1)) = s2;
| if (s2 != 0) {
0x00041e64 bnel s2, zero, 0x41e68 |
| }
| label_6:
0x00041e68 lw t9, -0x7d14(gp) | t9 = *(gp);
0x00041e6c lw a2, 0x44(sp) | a2 = *(arg_44h);
0x00041e70 move a1, s3 | a1 = s3;
0x00041e74 move a0, s1 | a0 = s1;
0x00041e78 bal 0x29d48 | sym_xmlNewIOInputStream ();
0x00041e7c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00041e80 beqz v0, 0x41f54 | goto label_9;
| }
0x00041e84 lw t9, -0x7e3c(gp) | t9 = *((gp - 8079));
0x00041e88 move a1, v0 | a1 = v0;
0x00041e8c move a0, s1 | a0 = s1;
0x00041e90 bal 0x2e410 | sym_inputPush ();
| label_2:
0x00041e94 lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_3:
0x00041e98 move v0, s1 | v0 = s1;
0x00041e9c lw s4, 0x28(sp) | s4 = *(var_28h);
0x00041ea0 lw s3, 0x24(sp) | s3 = *(var_24h);
0x00041ea4 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00041ea8 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00041eac lw s0, 0x18(sp) | s0 = *(var_18h);
0x00041eb0 addiu sp, sp, 0x30 |
0x00041eb4 jr ra | return v0;
| label_1:
0x00041eb8 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00041ebc move s1, zero | s1 = 0;
0x00041ec0 move v0, s1 | v0 = s1;
0x00041ec4 lw s4, 0x28(sp) | s4 = *(var_28h);
0x00041ec8 lw s3, 0x24(sp) | s3 = *(var_24h);
0x00041ecc lw s2, 0x20(sp) | s2 = *(var_20h);
0x00041ed0 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00041ed4 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00041ed8 addiu sp, sp, 0x30 |
0x00041edc jr ra | return v0;
| label_8:
0x00041ee0 lw v0, (s1) | v0 = *(s1);
0x00041ee4 addiu t0, s0, 0x80 | t0 = s0 + 0x80;
| do {
0x00041ee8 lwl a3, 3(a0) | __asm ("lwl a3, 3(a0)");
0x00041eec lwl a2, 7(a0) | __asm ("lwl a2, 7(a0)");
0x00041ef0 lwl a1, 0xb(a0) | __asm ("lwl a1, 0xb(a0)");
0x00041ef4 lwl v1, 0xf(a0) | __asm ("lwl v1, 0xf(a0)");
0x00041ef8 lwr a3, (a0) | __asm ("lwr a3, (a0)");
0x00041efc lwr a2, 4(a0) | __asm ("lwr a2, 4(a0)");
0x00041f00 lwr v1, 0xc(a0) | __asm ("lwr v1, 0xc(a0)");
0x00041f04 lwr a1, 8(a0) | __asm ("lwr a1, 8(a0)");
0x00041f08 swl a3, 3(v0) | __asm ("swl a3, 3(v0)");
0x00041f0c swr a3, (v0) | __asm ("swr a3, (v0)");
0x00041f10 swl a2, 7(v0) | __asm ("swl a2, 7(v0)");
0x00041f14 swr a2, 4(v0) | __asm ("swr a2, 4(v0)");
0x00041f18 swl a1, 0xb(v0) | __asm ("swl a1, 0xb(v0)");
0x00041f1c swr a1, 8(v0) | __asm ("swr a1, 8(v0)");
0x00041f20 addiu a0, a0, 0x10 | a0 += 0x10;
0x00041f24 swl v1, 0xf(v0) | __asm ("swl v1, 0xf(v0)");
0x00041f28 swr v1, 0xc(v0) | __asm ("swr v1, 0xc(v0)");
0x00041f2c addiu v0, v0, 0x10 | v0 += 0x10;
0x00041f30 bne a0, t0, 0x41ee8 |
| } while (a0 != t0);
0x00041f34 b 0x41e60 | goto label_0;
0x00041f38 nop |
| label_4:
0x00041f3c move t9, s1 | t9 = s1;
| if (s1 == 0) {
0x00041f40 beqz s1, 0x41eb8 | goto label_1;
| }
0x00041f44 lw a0, 0x40(sp) | a0 = *(arg_40h);
0x00041f48 jalr t9 | t9 ();
0x00041f4c move s1, zero | s1 = 0;
0x00041f50 b 0x41e94 | goto label_2;
| label_9:
0x00041f54 lw t9, -0x7e38(gp) | t9 = *((gp - 8078));
0x00041f58 move a0, s1 | a0 = s1;
0x00041f5c bal 0x2a890 | sym_xmlFreeParserCtxt ();
0x00041f60 move s1, zero | s1 = 0;
0x00041f64 b 0x41e94 | goto label_2;
| label_7:
0x00041f68 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x00041f6c move a0, s1 | a0 = s1;
0x00041f70 move a1, zero | a1 = 0;
0x00041f74 bal 0x2807c | sym_xmlErrMemory ();
0x00041f78 lw gp, 0x10(sp) | gp = *(var_10h);
0x00041f7c move a0, s1 | a0 = s1;
0x00041f80 lw t9, -0x7e38(gp) | t9 = *((gp - 8078));
0x00041f84 move s1, zero | s1 = 0;
0x00041f88 bal 0x2a890 | sym_xmlFreeParserCtxt ();
0x00041f8c lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00041f90 b 0x41e98 | goto label_3;
| label_5:
0x00041f94 lw t9, -0x7ee8(gp) | t9 = *(gp);
0x00041f98 move a0, s3 | a0 = s3;
0x00041f9c bal 0x60e48 | sym_xmlFreeParserInputBuffer ();
0x00041fa0 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00041fa4 b 0x41e98 | goto label_3;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x22878 */
| #include <stdint.h>
|
; (fcn) sym.xmlDetectCharEncoding () | void xmlDetectCharEncoding () {
| if (a0 == 0) {
0x00022878 beqz a0, 0x228c4 | goto label_0;
| }
0x0002287c nop |
0x00022880 slti v0, a1, 4 | v0 = (a1 < 4) ? 1 : 0;
0x00022884 addiu v0, zero, 3 | v0 = 3;
| if (v0 != 0) {
0x00022888 bnez v0, 0x228cc | goto label_2;
| }
0x0002288c lbu v0, (a0) | v0 = *(a0);
0x00022890 addiu v1, zero, 0x3c | v1 = 0x3c;
| if (v0 != 0) {
0x00022894 bnez v0, 0x228fc | goto label_3;
| }
0x00022898 lbu v0, 1(a0) | v0 = *((a0 + 1));
| if (v0 != 0) {
0x0002289c bnez v0, 0x22930 | goto label_4;
| }
0x000228a0 nop |
0x000228a4 lbu v0, 2(a0) | v0 = *((a0 + 2));
| if (v0 == 0) {
0x000228a8 bnez v0, 0x228bc |
0x000228ac nop |
0x000228b0 lbu a1, 3(a0) | a1 = *((a0 + 3));
| if (a1 == v1) {
0x000228b4 beq a1, v1, 0x22a44 | goto label_5;
| }
0x000228b8 nop |
| }
| if (v0 == v1) {
0x000228bc beql v0, v1, 0x22a2c | goto label_6;
| }
0x000228c0 lbu v0, 3(a0) | v0 = *((a0 + 3));
| do {
| label_0:
0x000228c4 move v0, zero | v0 = 0;
0x000228c8 jr ra | return v0;
| label_2:
0x000228cc addiu v0, zero, 2 | v0 = 2;
| if (a1 == v0) {
0x000228d0 beq a1, v0, 0x229d4 | goto label_7;
| }
0x000228d4 addiu v1, zero, 0xfe | v1 = 0xfe;
0x000228d8 bne a1, v0, 0x228c4 |
| } while (a1 != v0);
0x000228dc lbu v0, (a0) | v0 = *(a0);
| label_1:
0x000228e0 addiu v1, zero, 3 | v1 = 3;
| if (v0 != v1) {
0x000228e4 bne v0, v1, 0x229b4 | goto label_8;
| }
0x000228e8 lbu v0, 1(a0) | v0 = *((a0 + 1));
0x000228ec xori v0, v0, 0xff | v0 ^= 0xff;
| if (v0 == 0) {
0x000228f0 movn v1, zero, v0 | v1 = 0;
| }
0x000228f4 move v0, v1 | v0 = v1;
0x000228f8 jr ra | return v0;
| label_3:
0x000228fc addiu v1, zero, 0x4c | v1 = 0x4c;
| if (v0 == v1) {
0x00022900 bnel v0, v1, 0x22960 | goto label_9;
| }
0x00022904 lbu v0, 1(a0) | v0 = *((a0 + 1));
0x00022908 addiu v1, zero, 0x3f | v1 = 0x3f;
| if (v0 != 0) {
0x0002290c bnez v0, 0x22a04 | goto label_10;
| }
0x00022910 lbu v0, 2(a0) | v0 = *((a0 + 2));
| if (v0 != 0) {
0x00022914 bnez v0, 0x2299c | goto label_11;
| }
0x00022918 nop |
0x0002291c lbu v1, 3(a0) | v1 = *((a0 + 3));
0x00022920 addiu v1, zero, 0x3f | v1 = 0x3f;
| if (v1 != 0) {
0x00022924 bnez v1, 0x2299c | goto label_11;
| }
0x00022928 addiu v0, zero, 4 | v0 = 4;
0x0002292c jr ra | return v0;
| if (v0 != v1) {
| label_4:
0x00022930 bne v0, v1, 0x228c4 | goto label_0;
| }
0x00022934 nop |
0x00022938 lbu v0, 2(a0) | v0 = *((a0 + 2));
| if (v0 != 0) {
0x0002293c bnez v0, 0x22a3c | goto label_12;
| }
0x00022940 nop |
0x00022944 lbu v0, 3(a0) | v0 = *((a0 + 3));
0x00022948 addiu v1, zero, 3 | v1 = 3;
| if (v0 == 0) {
0x0002294c beqz v0, 0x22a4c | goto label_13;
| }
0x00022950 xori v0, v0, 0x3f | v0 ^= 0x3f;
| if (v0 == 0) {
0x00022954 movn v1, zero, v0 | v1 = 0;
| }
0x00022958 move v0, v1 | v0 = v1;
0x0002295c jr ra | return v0;
| label_9:
0x00022960 addiu v1, zero, 0xef | v1 = 0xef;
| if (v0 != v1) {
0x00022964 bne v0, v1, 0x229dc | goto label_14;
| }
0x00022968 lbu v1, 1(a0) | v1 = *((a0 + 1));
0x0002296c addiu v0, zero, 0x6f | v0 = 0x6f;
| if (v1 != v0) {
0x00022970 bne v1, v0, 0x228c4 | goto label_0;
| }
0x00022974 nop |
0x00022978 lbu v1, 2(a0) | v1 = *((a0 + 2));
0x0002297c addiu v0, zero, 0xa7 | v0 = 0xa7;
0x00022980 addiu v1, zero, 6 | v1 = 6;
| if (v1 != v0) {
0x00022984 bne v1, v0, 0x228c4 | goto label_0;
| }
0x00022988 lbu v0, 3(a0) | v0 = *((a0 + 3));
0x0002298c xori v0, v0, 0x94 | v0 ^= 0x94;
| if (v0 == 0) {
0x00022990 movn v1, zero, v0 | v1 = 0;
| }
0x00022994 move v0, v1 | v0 = v1;
0x00022998 jr ra | return v0;
| label_11:
0x0002299c addiu v1, zero, 2 | v1 = 2;
| if (v0 != v1) {
0x000229a0 bne v0, v1, 0x228c4 | goto label_0;
| }
0x000229a4 lbu v0, 3(a0) | v0 = *((a0 + 3));
| if (v0 == 0) {
0x000229a8 movn v1, zero, v0 | v1 = 0;
| }
0x000229ac move v0, v1 | v0 = v1;
0x000229b0 jr ra | return v0;
| label_8:
0x000229b4 addiu v1, zero, 0xff | v1 = 0xff;
0x000229b8 addiu v1, zero, 2 | v1 = 2;
| if (v0 != v1) {
0x000229bc bne v0, v1, 0x228c4 | goto label_0;
| }
0x000229c0 lbu v0, 1(a0) | v0 = *((a0 + 1));
0x000229c4 xori v0, v0, 0xfe | v0 ^= 0xfe;
| if (v0 == 0) {
0x000229c8 movn v1, zero, v0 | v1 = 0;
| }
0x000229cc move v0, v1 | v0 = v1;
0x000229d0 jr ra | return v0;
| label_7:
0x000229d4 lbu v0, (a0) | v0 = *(a0);
0x000229d8 addiu v1, zero, 0xef | v1 = 0xef;
| label_14:
0x000229dc addiu v1, zero, 0xfe | v1 = 0xfe;
| if (v0 != v1) {
0x000229e0 bne v0, v1, 0x228e0 | goto label_1;
| }
0x000229e4 lbu v1, 1(a0) | v1 = *((a0 + 1));
0x000229e8 addiu v0, zero, 0xbb | v0 = 0xbb;
| if (v1 != v0) {
0x000229ec bne v1, v0, 0x228c4 | goto label_0;
| }
0x000229f0 nop |
0x000229f4 lbu v0, 2(a0) | v0 = *((a0 + 2));
0x000229f8 xori v0, v0, 0xbf | v0 ^= 0xbf;
0x000229fc sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
0x00022a00 jr ra | return v0;
| if (v0 != v1) {
| label_10:
0x00022a04 bne v0, v1, 0x228c4 | goto label_0;
| }
0x00022a08 nop |
0x00022a0c lbu v1, 2(a0) | v1 = *((a0 + 2));
0x00022a10 addiu v0, zero, 0x78 | v0 = 0x78;
| if (v1 != v0) {
0x00022a14 bne v1, v0, 0x228c4 | goto label_0;
| }
0x00022a18 nop |
0x00022a1c lbu v0, 3(a0) | v0 = *((a0 + 3));
0x00022a20 xori v0, v0, 0x6d | v0 ^= 0x6d;
0x00022a24 sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
0x00022a28 jr ra | return v0;
| label_6:
0x00022a2c addiu v1, zero, 7 | v1 = 7;
| if (v0 == 0) {
0x00022a30 movn v1, zero, v0 | v1 = 0;
| }
0x00022a34 move v0, v1 | v0 = v1;
0x00022a38 jr ra | return v0;
| label_12:
0x00022a3c move v0, zero | v0 = 0;
0x00022a40 jr ra | return v0;
| label_5:
0x00022a44 addiu v0, zero, 5 | v0 = 5;
0x00022a48 jr ra | return v0;
| label_13:
0x00022a4c addiu v0, zero, 8 | v0 = 8;
0x00022a50 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xc86c8 */
| #include <stdint.h>
|
; (fcn) sym.xmlExpStringDerive () | void xmlExpStringDerive () {
0x000c86c8 lui gp, 0xd |
0x000c86cc addiu gp, gp, -0x7058 |
0x000c86d0 addu gp, gp, t9 | gp += t9;
| if (a1 != 0) {
0x000c86d4 beqz a1, 0xc8768 |
0x000c86d8 nop |
| if (a0 == 0) {
0x000c86dc beqz a0, 0xc8768 | goto label_0;
| }
0x000c86e0 nop |
0x000c86e4 lw t9, -0x757c(gp) | t9 = *((gp - 7519));
| if (a2 == 0) {
0x000c86e8 beqz a2, 0xc8770 | goto label_1;
| }
0x000c86ec addiu sp, sp, -0x28 |
0x000c86f0 move v0, a2 | v0 = a2;
0x000c86f4 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000c86f8 move s0, a0 | s0 = a0;
0x000c86fc lw a0, (a0) | a0 = *(a0);
0x000c8700 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000c8704 sw s1, 0x20(sp) | *(var_20h) = s1;
0x000c8708 sw ra, 0x24(sp) | *(var_24h) = ra;
0x000c870c move s1, a1 | s1 = a1;
0x000c8710 move a2, a3 | a2 = a3;
0x000c8714 move a1, v0 | a1 = v0;
0x000c8718 jalr t9 | t9 ();
0x000c871c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000c8720 beqz v0, 0xc874c |
0x000c8724 lw t9, -0x7614(gp) | t9 = *((gp - 7557));
0x000c8728 lw ra, 0x24(sp) | ra = *(var_24h);
0x000c872c move a1, s1 | a1 = s1;
0x000c8730 move a0, s0 | a0 = s0;
0x000c8734 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000c8738 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000c873c move a2, v0 | a2 = v0;
0x000c8740 addiu t9, t9, 0x6ba8 | t9 += 0x6ba8;
0x000c8744 addiu sp, sp, 0x28 |
0x000c8748 b 0xc6ba8 | void (*0xc6ba8)() ();
| }
0x000c874c lw v0, -0x6f6c(gp) | v0 = *(gp);
0x000c8750 lw ra, 0x24(sp) | ra = *(var_24h);
0x000c8754 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000c8758 lw v0, (v0) | v0 = *(v0);
0x000c875c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000c8760 addiu sp, sp, 0x28 |
0x000c8764 jr ra | return v0;
| }
| label_0:
0x000c8768 move v0, zero | v0 = 0;
0x000c876c jr ra | return v0;
| label_1:
0x000c8770 move v0, zero | v0 = 0;
0x000c8774 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x23a30 */
| #include <stdint.h>
|
; (fcn) sym.xmlFindCharEncodingHandler () | void xmlFindCharEncodingHandler () {
| label_3:
0x00023a30 lui gp, 0x17 |
0x00023a34 addiu gp, gp, -0x23c0 |
0x00023a38 addu gp, gp, t9 | gp += t9;
0x00023a3c addiu sp, sp, -0xa8 |
0x00023a40 sw s5, 0x94(sp) | *(var_94h) = s5;
0x00023a44 sw s4, 0x90(sp) | *(var_90h) = s4;
0x00023a48 lw s5, -0x7fe4(gp) | s5 = *((gp - 8185));
0x00023a4c lw s4, -0x7000(gp) | s4 = *((gp - 7168));
0x00023a50 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00023a54 lw v0, -0x56f8(s5) | v0 = *((s5 - 5566));
0x00023a58 lw v1, (s4) | v1 = *(s4);
0x00023a5c sw s3, 0x8c(sp) | *(var_8ch) = s3;
0x00023a60 sw ra, 0xa4(sp) | *(var_a4h) = ra;
0x00023a64 sw fp, 0xa0(sp) | *(var_a0h) = fp;
0x00023a68 sw s7, 0x9c(sp) | *(var_9ch) = s7;
0x00023a6c sw s6, 0x98(sp) | *(var_98h) = s6;
0x00023a70 sw s2, 0x88(sp) | *(var_88h) = s2;
0x00023a74 sw s1, 0x84(sp) | *(var_84h) = s1;
0x00023a78 sw s0, 0x80(sp) | *(var_80h) = s0;
0x00023a7c move s3, a0 | s3 = a0;
0x00023a80 sw v1, 0x7c(sp) | *(var_7ch) = v1;
0x00023a84 lw t9, -0x7f6c(gp) | t9 = *((gp - 8155));
| if (v0 == 0) {
0x00023a88 beqz v0, 0x23c4c | goto label_8;
| }
| label_2:
0x00023a8c lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
| if (s3 == 0) {
0x00023a90 beqz s3, 0x23b98 | goto label_9;
| }
0x00023a94 lb s0, (s3) | s0 = *(s3);
0x00023a98 lw t9, -0x7f70(gp) | t9 = *(gp);
| if (s0 == 0) {
0x00023a9c beqz s0, 0x23b98 | goto label_9;
| }
0x00023aa0 move a0, s3 | a0 = s3;
0x00023aa4 bal 0x22a84 | sym_xmlGetEncodingAlias ();
0x00023aa8 move s1, v0 | s1 = v0;
0x00023aac lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00023ab0 beqz v0, 0x23c44 | goto label_10;
| }
0x00023ab4 lb s0, (v0) | s0 = *(v0);
| label_1:
0x00023ab8 lw t9, -0x6f14(gp) | t9 = *((gp - 7109));
0x00023abc addiu s2, sp, 0x18 | s2 = sp + 0x18;
0x00023ac0 jalr t9 | t9 ();
0x00023ac4 lw a1, (v0) | a1 = *(v0);
0x00023ac8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023acc move a0, s2 | a0 = s2;
0x00023ad0 move v1, zero | v1 = 0;
0x00023ad4 addiu a2, zero, 0x63 | a2 = 0x63;
0x00023ad8 b 0x23af0 |
| while (v0 != 0) {
0x00023adc addiu v1, v1, 1 | v1++;
0x00023ae0 addiu a0, a0, 1 | a0++;
| if (v1 == a2) {
0x00023ae4 beq v1, a2, 0x23b04 | goto label_11;
| }
0x00023ae8 addu v0, s1, v1 | v0 = s1 + v1;
0x00023aec lb s0, (v0) | s0 = *(v0);
0x00023af0 sll v0, s0, 2 | v0 = s0 << 2;
0x00023af4 lwx v0, v0(a1) | __asm ("lwx v0, v0(a1)");
0x00023af8 seb v0, v0 | __asm ("seb v0, v0");
0x00023afc sb v0, (a0) | *(a0) = v0;
0x00023b00 bnez v0, 0x23adc |
| }
| label_11:
0x00023b04 addiu v0, sp, 0x80 | v0 = sp + 0x80;
0x00023b08 addu v1, v0, v1 | v1 = v0 + v1;
0x00023b0c lw s0, -0x56f8(s5) | s0 = *((s5 - 5566));
0x00023b10 sb zero, -0x68(v1) | *((v1 - 104)) = 0;
| if (s0 == 0) {
0x00023b14 beqz s0, 0x23ba0 | goto label_12;
| }
0x00023b18 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x00023b1c lw s7, -0x56fc(v0) | s7 = *((v0 - 5567));
| if (s7 <= 0) {
0x00023b20 blezl s7, 0x23ba4 | goto label_13;
| }
0x00023b24 lw s0, -0x7fd4(gp) | s0 = *(gp);
0x00023b28 move s5, zero | s5 = 0;
0x00023b2c b 0x23b3c |
| while (v0 != 0) {
0x00023b30 addiu s5, s5, 1 | s5++;
0x00023b34 addiu s0, s0, 4 | s0 += 4;
| if (s5 == s7) {
0x00023b38 beq s5, s7, 0x23ba0 | goto label_12;
| }
0x00023b3c lw s6, (s0) | s6 = *(s0);
0x00023b40 lw t9, -0x7140(gp) | t9 = *(gp);
0x00023b44 move a0, s2 | a0 = s2;
0x00023b48 lw a1, (s6) | a1 = *(s6);
0x00023b4c jalr t9 | t9 ();
0x00023b50 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023b54 bnez v0, 0x23b30 |
| }
| do {
| label_0:
0x00023b58 lw a0, 0x7c(sp) | a0 = *(var_7ch);
0x00023b5c lw v1, (s4) | v1 = *(s4);
0x00023b60 move v0, s6 | v0 = s6;
| if (a0 != v1) {
0x00023b64 bne a0, v1, 0x23d88 | goto label_14;
| }
0x00023b68 lw ra, 0xa4(sp) | ra = *(var_a4h);
0x00023b6c lw fp, 0xa0(sp) | fp = *(var_a0h);
0x00023b70 lw s7, 0x9c(sp) | s7 = *(var_9ch);
0x00023b74 lw s6, 0x98(sp) | s6 = *(var_98h);
0x00023b78 lw s5, 0x94(sp) | s5 = *(var_94h);
0x00023b7c lw s4, 0x90(sp) | s4 = *(var_90h);
0x00023b80 lw s3, 0x8c(sp) | s3 = *(var_8ch);
0x00023b84 lw s2, 0x88(sp) | s2 = *(var_88h);
0x00023b88 lw s1, 0x84(sp) | s1 = *(var_84h);
0x00023b8c lw s0, 0x80(sp) | s0 = *(var_80h);
0x00023b90 addiu sp, sp, 0xa8 |
0x00023b94 jr ra | return v0;
| label_9:
0x00023b98 lw s6, -0x5700(v0) | s6 = *((v0 - 5568));
0x00023b9c b 0x23b58 |
| } while (1);
| label_12:
0x00023ba0 lw s0, -0x7fd4(gp) | s0 = *(gp);
| label_13:
0x00023ba4 lw t9, -0x6f7c(gp) | t9 = *(gp);
0x00023ba8 move a1, s1 | a1 = s1;
0x00023bac addiu a0, s0, 0x6150 | a0 = s0 + 0x6150;
0x00023bb0 jalr t9 | t9 ();
0x00023bb4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023bb8 addiu a1, s0, 0x6150 | a1 = s0 + 0x6150;
0x00023bbc move a0, s1 | a0 = s1;
0x00023bc0 lw t9, -0x6f7c(gp) | t9 = *(gp);
0x00023bc4 move s7, v0 | s7 = v0;
0x00023bc8 addiu s5, zero, -1 | s5 = -1;
0x00023bcc jalr t9 | t9 ();
0x00023bd0 move fp, v0 | fp = v0;
0x00023bd4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s7 == s5) {
0x00023bd8 beq s7, s5, 0x23c5c | goto label_15;
| }
0x00023bdc lw t9, -0x6f7c(gp) | t9 = *(gp);
| if (v0 == s5) {
0x00023be0 beq v0, s5, 0x23d60 | goto label_16;
| }
0x00023be4 lw v0, -0x716c(gp) | v0 = *(gp);
| do {
| label_4:
0x00023be8 lw t9, (v0) | t9 = *(v0);
0x00023bec addiu a0, zero, 0x14 | a0 = 0x14;
0x00023bf0 jalr t9 | t9 ();
0x00023bf4 move s6, v0 | s6 = v0;
0x00023bf8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00023bfc beqz v0, 0x23d0c | goto label_17;
| }
0x00023c00 lw t9, -0x6ea4(gp) | t9 = *((gp - 7081));
0x00023c04 addiu a2, zero, 0x14 | a2 = 0x14;
0x00023c08 move a1, zero | a1 = 0;
0x00023c0c move a0, v0 | a0 = v0;
0x00023c10 jalr t9 | t9 ();
0x00023c14 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023c18 lw v0, -0x6e34(gp) | v0 = *(gp);
0x00023c1c lw t9, (v0) | t9 = *(v0);
0x00023c20 move a0, s1 | a0 = s1;
0x00023c24 jalr t9 | t9 ();
0x00023c28 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023c2c sw v0, (s6) | *(s6) = v0;
0x00023c30 sw zero, 4(s6) | *((s6 + 1)) = 0;
0x00023c34 sw zero, 8(s6) | *((s6 + 2)) = 0;
0x00023c38 sw s7, 0xc(s6) | *((s6 + 3)) = s7;
0x00023c3c sw fp, 0x10(s6) | *((s6 + 4)) = fp;
0x00023c40 b 0x23b58 | goto label_0;
| label_10:
0x00023c44 move s1, s3 | s1 = s3;
0x00023c48 b 0x23ab8 | goto label_1;
| label_8:
0x00023c4c bal 0x23870 | sym_xmlInitCharEncodingHandlers ();
0x00023c50 nop |
0x00023c54 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023c58 b 0x23a8c | goto label_2;
| label_15:
0x00023c5c lw t9, -0x6f7c(gp) | t9 = *(gp);
0x00023c60 move a1, s2 | a1 = s2;
0x00023c64 addiu a0, s0, 0x6150 | a0 = s0 + 0x6150;
0x00023c68 jalr t9 | t9 ();
0x00023c6c move s7, v0 | s7 = v0;
0x00023c70 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023c74 addiu s6, zero, -1 | s6 = -1;
| if (fp == s5) {
0x00023c78 beq fp, s5, 0x23d30 | goto label_18;
| }
0x00023c7c lw v0, -0x716c(gp) | v0 = *(gp);
0x00023c80 bne v0, s5, 0x23be8 |
| } while (v0 != s5);
0x00023c84 lw a1, -0x7fd4(gp) | a1 = *(gp);
| do {
| label_7:
0x00023c88 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00023c8c move a2, s1 | a2 = s1;
0x00023c90 addiu a1, a1, 0x63c0 | a1 += 0x63c0;
0x00023c94 addiu t9, t9, 0x2408 | t9 += 0x2408;
0x00023c98 addiu a0, zero, 1 | a0 = 1;
0x00023c9c bal 0x22408 | fcn_00022408 ();
0x00023ca0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023ca4 lw t9, -0x7f60(gp) | t9 = *((gp - 8152));
| label_6:
0x00023ca8 move a0, s3 | a0 = s3;
0x00023cac bal 0x22f58 | sym_xmlParseCharEncoding ();
0x00023cb0 addiu v1, zero, -1 | v1 = -1;
0x00023cb4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != v1) {
0x00023cb8 beq v0, v1, 0x23cec |
0x00023cbc lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00023cc0 move a0, v0 | a0 = v0;
0x00023cc4 bal 0x23394 | sym_xmlGetCharEncodingName ();
0x00023cc8 move s0, v0 | s0 = v0;
0x00023ccc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00023cd0 beqz v0, 0x23cec | goto label_19;
| }
0x00023cd4 lw t9, -0x7140(gp) | t9 = *(gp);
0x00023cd8 move a1, v0 | a1 = v0;
0x00023cdc move a0, s1 | a0 = s1;
0x00023ce0 jalr t9 | t9 ();
0x00023ce4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00023ce8 bnez v0, 0x23cf4 | goto label_20;
| }
| }
| label_19:
0x00023cec move s6, zero | s6 = 0;
0x00023cf0 b 0x23b58 | goto label_0;
| label_20:
0x00023cf4 lw t9, -0x7f58(gp) | t9 = *((gp - 8150));
0x00023cf8 move a0, s0 | a0 = s0;
0x00023cfc bal 0x23a30 | sym_xmlFindCharEncodingHandler ();
| goto label_3;
0x00023d00 move s6, v0 | s6 = v0;
0x00023d04 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023d08 b 0x23b58 | goto label_0;
| label_17:
0x00023d0c lw t9, -0x7144(gp) | t9 = *(gp);
0x00023d10 move a0, s7 | a0 = s7;
0x00023d14 jalr t9 | t9 ();
0x00023d18 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023d1c lw t9, -0x7144(gp) | t9 = *(gp);
0x00023d20 move a0, fp | a0 = fp;
0x00023d24 jalr t9 | t9 ();
0x00023d28 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023d2c b 0x23b58 | goto label_0;
| label_18:
0x00023d30 lw t9, -0x6f7c(gp) | t9 = *(gp);
0x00023d34 addiu a1, s0, 0x6150 | a1 = s0 + 0x6150;
0x00023d38 move a0, s2 | a0 = s2;
0x00023d3c jalr t9 | t9 ();
0x00023d40 move fp, v0 | fp = v0;
0x00023d44 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s7 == s6) {
0x00023d48 beq s7, s6, 0x23d78 | goto label_21;
| }
| label_5:
0x00023d4c addiu v0, zero, -1 | v0 = -1;
0x00023d50 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00023d54 beq fp, v0, 0x23c88 |
| } while (fp == v0);
0x00023d58 lw v0, -0x716c(gp) | v0 = *(gp);
0x00023d5c b 0x23be8 | goto label_4;
| label_16:
0x00023d60 addiu a1, s0, 0x6150 | a1 = s0 + 0x6150;
0x00023d64 move a0, s2 | a0 = s2;
0x00023d68 jalr t9 | t9 ();
0x00023d6c move fp, v0 | fp = v0;
0x00023d70 lw gp, 0x10(sp) | gp = *(var_10h);
0x00023d74 b 0x23d4c | goto label_5;
| label_21:
0x00023d78 lw t9, -0x7f60(gp) | t9 = *((gp - 8152));
| if (v0 == s7) {
0x00023d7c beq v0, s7, 0x23ca8 | goto label_6;
| }
0x00023d80 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00023d84 b 0x23c88 | goto label_7;
| label_14:
0x00023d88 lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x00023d8c jalr t9 | t9 ();
0x00023d90 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x6c5b8 */
| #include <stdint.h>
|
; (fcn) sym.xmlFreeDocElementContent () | void xmlFreeDocElementContent () {
| do {
0x0006c5b8 lui gp, 0x12 |
0x0006c5bc addiu gp, gp, 0x50b8 |
0x0006c5c0 addu gp, gp, t9 | gp += t9;
0x0006c5c4 addiu sp, sp, -0x38 |
0x0006c5c8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0006c5cc sw s4, 0x28(sp) | *(var_28h) = s4;
0x0006c5d0 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0006c5d4 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0006c5d8 sw s6, 0x30(sp) | *(var_30h) = s6;
0x0006c5dc sw s5, 0x2c(sp) | *(var_2ch) = s5;
0x0006c5e0 sw s3, 0x24(sp) | *(var_24h) = s3;
0x0006c5e4 sw s2, 0x20(sp) | *(var_20h) = s2;
0x0006c5e8 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x0006c5ec move s4, a0 | s4 = a0;
0x0006c5f0 move s0, a1 | s0 = a1;
| if (a0 == 0) {
0x0006c5f4 beqz a0, 0x6c764 | goto label_3;
| }
0x0006c5f8 lw s3, 0x50(a0) | s3 = *((a0 + 20));
| label_2:
0x0006c5fc lw ra, 0x34(sp) | ra = *(var_34h);
| if (s0 == 0) {
0x0006c600 beqz s0, 0x6c6fc | goto label_4;
| }
0x0006c604 lw v0, (s0) | v0 = *(s0);
0x0006c608 lw s1, 0x10(s0) | s1 = *((s0 + 4));
0x0006c60c addiu v0, v0, -1 | v0 += -1;
0x0006c610 sltiu v0, v0, 4 | v0 = (v0 < 4) ? 1 : 0;
0x0006c614 lw s2, -0x7158(gp) | s2 = *(gp);
| if (v0 == 0) {
0x0006c618 beqz v0, 0x6c720 | goto label_5;
| }
0x0006c61c lw s6, -0x7d68(gp) | s6 = *(gp);
0x0006c620 lw s5, -0x7fc4(gp) | s5 = *((gp - 8177));
| label_0:
0x0006c624 lw a1, 0xc(s0) | a1 = *((s0 + 3));
0x0006c628 move t9, s6 | t9 = s6;
| if (a1 == 0) {
0x0006c62c beqz a1, 0x6c638 | goto label_6;
| }
0x0006c630 move a0, s4 | a0 = s4;
0x0006c634 bal 0x6c5b8 | sym_xmlFreeDocElementContent ();
| } while (1);
| label_6:
0x0006c638 lw a1, 8(s0) | a1 = *((s0 + 2));
| if (s3 == 0) {
0x0006c63c beqz s3, 0x6c6bc | goto label_7;
| }
0x0006c640 move t9, s5 | t9 = s5;
| if (a1 != 0) {
0x0006c644 beqz a1, 0x6c664 |
0x0006c648 move a0, s3 | a0 = s3;
0x0006c64c jalr t9 | t9 ();
0x0006c650 lw a1, 0x18(s0) | a1 = *((s0 + 6));
| if (v0 == 0) {
0x0006c654 bnel v0, zero, 0x6c668 | goto label_8;
| }
0x0006c658 lw t9, (s2) | t9 = *(s2);
0x0006c65c lw a0, 8(s0) | a0 = *((s0 + 2));
0x0006c660 jalr t9 | t9 ();
| }
0x0006c664 lw a1, 0x18(s0) | a1 = *((s0 + 6));
| label_8:
0x0006c668 move t9, s5 | t9 = s5;
| if (a1 != 0) {
0x0006c66c beqz a1, 0x6c688 |
0x0006c670 move a0, s3 | a0 = s3;
0x0006c674 jalr t9 | t9 ();
0x0006c678 lw t9, (s2) | t9 = *(s2);
| if (v0 != 0) {
0x0006c67c bnez v0, 0x6c68c | goto label_9;
| }
0x0006c680 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x0006c684 jalr t9 | t9 ();
| }
0x0006c688 lw t9, (s2) | t9 = *(s2);
| do {
| label_9:
0x0006c68c move a0, s0 | a0 = s0;
0x0006c690 jalr t9 | t9 ();
0x0006c694 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s1 == 0) {
0x0006c698 beqz s1, 0x6c6f8 | goto label_10;
| }
| label_1:
0x0006c69c lw v0, (s1) | v0 = *(s1);
0x0006c6a0 lw v1, 0x10(s1) | v1 = *((s1 + 4));
0x0006c6a4 addiu v0, v0, -1 | v0 += -1;
0x0006c6a8 sltiu v0, v0, 4 | v0 = (v0 < 4) ? 1 : 0;
0x0006c6ac move s0, s1 | s0 = s1;
| if (v0 == 0) {
0x0006c6b0 beqz v0, 0x6c720 | goto label_5;
| }
0x0006c6b4 move s1, v1 | s1 = v1;
0x0006c6b8 b 0x6c624 | goto label_0;
| label_7:
0x0006c6bc lw t9, (s2) | t9 = *(s2);
| if (a1 != 0) {
0x0006c6c0 beqz a1, 0x6c6d0 |
0x0006c6c4 move a0, a1 | a0 = a1;
0x0006c6c8 jalr t9 | t9 ();
0x0006c6cc lw t9, (s2) | t9 = *(s2);
| }
0x0006c6d0 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x0006c6d4 beqz a0, 0x6c68c |
| } while (a0 == 0);
0x0006c6d8 nop |
0x0006c6dc jalr t9 | t9 ();
0x0006c6e0 nop |
0x0006c6e4 lw t9, (s2) | t9 = *(s2);
0x0006c6e8 move a0, s0 | a0 = s0;
0x0006c6ec jalr t9 | t9 ();
0x0006c6f0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s1 != 0) {
0x0006c6f4 bnez s1, 0x6c69c | goto label_1;
| }
| label_10:
0x0006c6f8 lw ra, 0x34(sp) | ra = *(var_34h);
| label_4:
0x0006c6fc lw s6, 0x30(sp) | s6 = *(var_30h);
0x0006c700 lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x0006c704 lw s4, 0x28(sp) | s4 = *(var_28h);
0x0006c708 lw s3, 0x24(sp) | s3 = *(var_24h);
0x0006c70c lw s2, 0x20(sp) | s2 = *(var_20h);
0x0006c710 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0006c714 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0006c718 addiu sp, sp, 0x38 |
0x0006c71c jr ra | return v0;
| label_5:
0x0006c720 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0006c724 lw t9, -0x7a48(gp) | t9 = *(gp);
0x0006c728 lw ra, 0x34(sp) | ra = *(var_34h);
0x0006c72c lw s6, 0x30(sp) | s6 = *(var_30h);
0x0006c730 lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x0006c734 lw s4, 0x28(sp) | s4 = *(var_28h);
0x0006c738 lw s3, 0x24(sp) | s3 = *(var_24h);
0x0006c73c lw s2, 0x20(sp) | s2 = *(var_20h);
0x0006c740 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0006c744 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0006c748 move a3, zero | a3 = 0;
0x0006c74c addiu a2, a2, -0x573c | a2 += -0x573c;
0x0006c750 addiu a1, zero, 1 | a1 = 1;
0x0006c754 move a0, zero | a0 = 0;
0x0006c758 addiu t9, t9, -0x6c74 | t9 += -0x6c74;
0x0006c75c addiu sp, sp, 0x38 |
0x0006c760 b 0x6938c | void (*0x6938c)() ();
| label_3:
0x0006c764 move s3, zero | s3 = 0;
0x0006c768 b 0x6c5fc | goto label_2;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x6dbec */
| #include <stdint.h>
|
; (fcn) sym.xmlFreeEnumeration () | void xmlFreeEnumeration () {
| do {
0x0006dbec lui gp, 0x12 |
0x0006dbf0 addiu gp, gp, 0x3a84 |
0x0006dbf4 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x0006dbf8 beqz a0, 0x6dc6c | goto label_0;
| }
0x0006dbfc nop |
0x0006dc00 addiu sp, sp, -0x28 |
0x0006dc04 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x0006dc08 move s0, a0 | s0 = a0;
0x0006dc0c lw a0, (a0) | a0 = *(a0);
0x0006dc10 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0006dc14 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0006dc18 sw s1, 0x20(sp) | *(var_20h) = s1;
0x0006dc1c lw s1, -0x7158(gp) | s1 = *(gp);
| if (a0 == 0) {
0x0006dc20 beqz a0, 0x6dc38 | goto label_1;
| }
0x0006dc24 lw t9, -0x7d90(gp) | t9 = *(gp);
0x0006dc28 bal 0x6dbec | sym_xmlFreeEnumeration ();
| } while (1);
0x0006dc2c nop |
0x0006dc30 lw gp, 0x10(sp) | gp = *(var_10h);
0x0006dc34 lw s1, -0x7158(gp) | s1 = *(gp);
| label_1:
0x0006dc38 lw a0, 4(s0) | a0 = *((s0 + 1));
0x0006dc3c lw t9, (s1) | t9 = *(s1);
| if (a0 != 0) {
0x0006dc40 beqz a0, 0x6dc54 |
0x0006dc44 jalr t9 | t9 ();
0x0006dc48 nop |
0x0006dc4c lw gp, 0x10(sp) | gp = *(var_10h);
0x0006dc50 lw t9, (s1) | t9 = *(s1);
| }
0x0006dc54 lw ra, 0x24(sp) | ra = *(var_24h);
0x0006dc58 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0006dc5c move a0, s0 | a0 = s0;
0x0006dc60 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0006dc64 addiu sp, sp, 0x28 |
0x0006dc68 jr t9 | t9 ();
| label_0:
0x0006dc6c jr ra | return;
0x0006dc70 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x60e48 */
| #include <stdint.h>
|
; (fcn) sym.xmlFreeParserInputBuffer () | void xmlFreeParserInputBuffer () {
0x00060e48 lui gp, 0x13 |
0x00060e4c addiu gp, gp, 0x828 |
0x00060e50 addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x00060e54 beqz a0, 0x60ef8 |
0x00060e58 nop |
0x00060e5c addiu sp, sp, -0x20 |
0x00060e60 sw s0, 0x18(sp) | *(var_18h) = s0;
0x00060e64 move s0, a0 | s0 = a0;
0x00060e68 lw a0, 0x14(a0) | a0 = *((a0 + 5));
0x00060e6c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00060e70 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x00060e74 lw t9, -0x70e8(gp) | t9 = *(gp);
| if (a0 != 0) {
0x00060e78 beqz a0, 0x60e8c |
0x00060e7c jalr t9 | t9 ();
0x00060e80 nop |
0x00060e84 lw gp, 0x10(sp) | gp = *(var_10h);
0x00060e88 sw zero, 0x14(s0) | *((s0 + 5)) = 0;
| }
0x00060e8c lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x00060e90 lw t9, -0x7f0c(gp) | t9 = *((gp - 8131));
| if (a0 != 0) {
0x00060e94 beqz a0, 0x60ea4 |
0x00060e98 jalr t9 | t9 ();
0x00060e9c nop |
0x00060ea0 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00060ea4 lw t9, 8(s0) | t9 = *((s0 + 2));
| if (t9 != 0) {
0x00060ea8 beql t9, zero, 0x60ec0 |
0x00060eac lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x00060eb0 lw a0, (s0) | a0 = *(s0);
0x00060eb4 jalr t9 | t9 ();
0x00060eb8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00060ebc lw a0, 0x10(s0) | a0 = *((s0 + 4));
| }
| if (a0 != 0) {
0x00060ec0 beql a0, zero, 0x60ee0 |
0x00060ec4 lw v0, -0x7158(gp) | v0 = *(gp);
0x00060ec8 lw t9, -0x70e8(gp) | t9 = *(gp);
0x00060ecc jalr t9 | t9 ();
0x00060ed0 nop |
0x00060ed4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00060ed8 sw zero, 0x10(s0) | *((s0 + 4)) = 0;
0x00060edc lw v0, -0x7158(gp) | v0 = *(gp);
| }
0x00060ee0 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x00060ee4 move a0, s0 | a0 = s0;
0x00060ee8 lw t9, (v0) | t9 = *(v0);
0x00060eec lw s0, 0x18(sp) | s0 = *(var_18h);
0x00060ef0 addiu sp, sp, 0x20 |
0x00060ef4 jr t9 | t9 ();
| }
0x00060ef8 jr ra | return v0;
0x00060efc nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x121a90 */
| #include <stdint.h>
|
; (fcn) sym.xmlFreeTextWriter () | void xmlFreeTextWriter () {
0x00121a90 lui gp, 7 |
0x00121a94 addiu gp, gp, -0x420 |
0x00121a98 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00121a9c beqz a0, 0x121ba4 | goto label_0;
| }
0x00121aa0 nop |
0x00121aa4 addiu sp, sp, -0x28 |
0x00121aa8 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00121aac move s0, a0 | s0 = a0;
0x00121ab0 lw a0, (a0) | a0 = *(a0);
0x00121ab4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00121ab8 sw ra, 0x24(sp) | *(var_24h) = ra;
0x00121abc sw s1, 0x20(sp) | *(var_20h) = s1;
0x00121ac0 lw t9, -0x7a9c(gp) | t9 = *((gp - 7847));
| if (a0 != 0) {
0x00121ac4 beqz a0, 0x121ad4 |
0x00121ac8 jalr t9 | t9 ();
0x00121acc nop |
0x00121ad0 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00121ad4 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00121ad8 lw t9, -0x7a38(gp) | t9 = *((gp - 7822));
| if (a0 != 0) {
0x00121adc beqz a0, 0x121aec |
0x00121ae0 jalr t9 | t9 ();
0x00121ae4 nop |
0x00121ae8 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00121aec lw a0, 8(s0) | a0 = *((s0 + 2));
0x00121af0 lw t9, -0x7a38(gp) | t9 = *((gp - 7822));
| if (a0 != 0) {
0x00121af4 beqz a0, 0x121b04 |
0x00121af8 jalr t9 | t9 ();
0x00121afc nop |
0x00121b00 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00121b04 lw a0, 0x20(s0) | a0 = *((s0 + 8));
| if (a0 == 0) {
0x00121b08 beql a0, zero, 0x121b3c | goto label_1;
| }
0x00121b0c lw a0, 0x28(s0) | a0 = *((s0 + 10));
0x00121b10 lw v0, 8(a0) | v0 = *((a0 + 2));
0x00121b14 lw t9, -0x7e38(gp) | t9 = *((gp - 8078));
| if (v0 == 0) {
0x00121b18 beqz v0, 0x121b2c | goto label_2;
| }
0x00121b1c lw v1, 0x24(s0) | v1 = *((s0 + 9));
0x00121b20 lw t9, -0x7d0c(gp) | t9 = *(gp);
0x00121b24 beqz v1, 0x121b8c |
| while (1) {
0x00121b28 lw t9, -0x7e38(gp) | t9 = *((gp - 8078));
| label_2:
0x00121b2c jalr t9 | t9 ();
0x00121b30 nop |
0x00121b34 lw gp, 0x10(sp) | gp = *(var_10h);
0x00121b38 lw a0, 0x28(s0) | a0 = *((s0 + 10));
| label_1:
0x00121b3c lw s1, -0x7158(gp) | s1 = *(gp);
| if (a0 != 0) {
0x00121b40 beqz a0, 0x121b58 |
0x00121b44 lw t9, -0x7d0c(gp) | t9 = *(gp);
0x00121b48 jalr t9 | t9 ();
0x00121b4c nop |
0x00121b50 lw gp, 0x10(sp) | gp = *(var_10h);
0x00121b54 lw s1, -0x7158(gp) | s1 = *(gp);
| }
0x00121b58 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x00121b5c lw t9, (s1) | t9 = *(s1);
| if (a0 != 0) {
0x00121b60 beqz a0, 0x121b74 |
0x00121b64 jalr t9 | t9 ();
0x00121b68 nop |
0x00121b6c lw gp, 0x10(sp) | gp = *(var_10h);
0x00121b70 lw t9, (s1) | t9 = *(s1);
| }
0x00121b74 lw ra, 0x24(sp) | ra = *(var_24h);
0x00121b78 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00121b7c move a0, s0 | a0 = s0;
0x00121b80 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00121b84 addiu sp, sp, 0x28 |
0x00121b88 jr t9 | t9 ();
0x00121b8c move a0, v0 | a0 = v0;
0x00121b90 jalr t9 | t9 ();
0x00121b94 lw a0, 0x20(s0) | a0 = *((s0 + 8));
0x00121b98 lw gp, 0x10(sp) | gp = *(var_10h);
0x00121b9c sw zero, 8(a0) | *((a0 + 2)) = 0;
0x00121ba0 b 0x121b28 |
| }
| label_0:
0x00121ba4 jr ra | return v1;
0x00121ba8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x22a84 */
| #include <stdint.h>
|
; (fcn) sym.xmlGetEncodingAlias () | void xmlGetEncodingAlias () {
0x00022a84 lui gp, 0x17 |
0x00022a88 addiu gp, gp, -0x1414 |
0x00022a8c addu gp, gp, t9 | gp += t9;
0x00022a90 addiu sp, sp, -0x98 |
0x00022a94 sw s0, 0x80(sp) | *(var_80h) = s0;
0x00022a98 lw s0, -0x7000(gp) | s0 = *((gp - 7168));
0x00022a9c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00022aa0 sw ra, 0x94(sp) | *(var_94h) = ra;
0x00022aa4 lw v0, (s0) | v0 = *(s0);
0x00022aa8 sw s4, 0x90(sp) | *(var_90h) = s4;
0x00022aac sw s3, 0x8c(sp) | *(var_8ch) = s3;
0x00022ab0 sw s2, 0x88(sp) | *(var_88h) = s2;
0x00022ab4 sw s1, 0x84(sp) | *(var_84h) = s1;
0x00022ab8 sw v0, 0x7c(sp) | *(var_7ch) = v0;
0x00022abc lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
| if (a0 == 0) {
0x00022ac0 beqz a0, 0x22b6c | goto label_0;
| }
0x00022ac4 lw s1, -0x56ec(v0) | s1 = *((v0 - 5563));
0x00022ac8 lw t9, -0x6f14(gp) | t9 = *((gp - 7109));
| if (s1 == 0) {
0x00022acc beqz s1, 0x22b6c | goto label_0;
| }
0x00022ad0 move s2, a0 | s2 = a0;
0x00022ad4 addiu s3, sp, 0x18 | s3 = sp + 0x18;
0x00022ad8 jalr t9 | t9 ();
0x00022adc lw a0, (v0) | a0 = *(v0);
0x00022ae0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00022ae4 move a1, s3 | a1 = s3;
0x00022ae8 move v1, zero | v1 = 0;
0x00022aec addiu a2, zero, 0x63 | a2 = 0x63;
0x00022af0 b 0x22b00 |
| while (v0 != 0) {
0x00022af4 addiu v1, v1, 1 | v1++;
0x00022af8 addiu a1, a1, 1 | a1++;
| if (v1 == a2) {
0x00022afc beq v1, a2, 0x22b1c | goto label_1;
| }
0x00022b00 addu v0, s2, v1 | v0 = s2 + v1;
0x00022b04 lb v0, (v0) | v0 = *(v0);
0x00022b08 sll v0, v0, 2 | v0 <<= 2;
0x00022b0c lwx v0, v0(a0) | __asm ("lwx v0, v0(a0)");
0x00022b10 seb v0, v0 | __asm ("seb v0, v0");
0x00022b14 sb v0, (a1) | *(a1) = v0;
0x00022b18 bnez v0, 0x22af4 |
| }
| label_1:
0x00022b1c addiu v0, sp, 0x80 | v0 = sp + 0x80;
0x00022b20 addu v1, v0, v1 | v1 = v0 + v1;
0x00022b24 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x00022b28 sb zero, -0x68(v1) | *((v1 - 104)) = 0;
0x00022b2c lw s4, -0x56f0(v0) | s4 = *(v0);
0x00022b30 move s2, zero | s2 = 0;
| if (s4 <= 0) {
0x00022b34 blez s4, 0x22b6c | goto label_0;
| }
0x00022b38 lw t9, -0x7140(gp) | t9 = *(gp);
0x00022b3c b 0x22b50 |
| while (v0 != 0) {
0x00022b40 addiu s2, s2, 1 | s2++;
0x00022b44 addiu s1, s1, 8 | s1 += 8;
| if (s2 == s4) {
0x00022b48 beq s2, s4, 0x22b6c | goto label_0;
| }
0x00022b4c lw t9, -0x7140(gp) | t9 = *(gp);
0x00022b50 lw a0, 4(s1) | a0 = *((s1 + 1));
0x00022b54 move a1, s3 | a1 = s3;
0x00022b58 jalr t9 | t9 ();
0x00022b5c lw gp, 0x10(sp) | gp = *(var_10h);
0x00022b60 bnez v0, 0x22b40 |
| }
0x00022b64 lw v0, (s1) | v0 = *(s1);
0x00022b68 b 0x22b70 | goto label_2;
| label_0:
0x00022b6c move v0, zero | v0 = 0;
| label_2:
0x00022b70 lw a0, 0x7c(sp) | a0 = *(var_7ch);
0x00022b74 lw v1, (s0) | v1 = *(s0);
0x00022b78 lw ra, 0x94(sp) | ra = *(var_94h);
| if (a0 == v1) {
0x00022b7c bne a0, v1, 0x22b9c |
0x00022b80 lw s4, 0x90(sp) | s4 = *(var_90h);
0x00022b84 lw s3, 0x8c(sp) | s3 = *(var_8ch);
0x00022b88 lw s2, 0x88(sp) | s2 = *(var_88h);
0x00022b8c lw s1, 0x84(sp) | s1 = *(var_84h);
0x00022b90 lw s0, 0x80(sp) | s0 = *(var_80h);
0x00022b94 addiu sp, sp, 0x98 |
0x00022b98 jr ra | return v1;
| }
0x00022b9c lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x00022ba0 jalr t9 | t9 ();
0x00022ba4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb89b4 */
| #include <stdint.h>
|
; (fcn) sym.xmlGetUTF8Char () | void xmlGetUTF8Char () {
| if (a0 != 0) {
0x000b89b4 beqz a0, 0xb89ec |
0x000b89b8 nop |
| if (a1 == 0) {
0x000b89bc beqz a1, 0xb8a50 | goto label_2;
| }
0x000b89c0 nop |
0x000b89c4 lw v1, (a1) | v1 = *(a1);
| if (v1 <= 0) {
0x000b89c8 blezl v1, 0xb89f8 | goto label_0;
| }
0x000b89cc sw zero, (a1) | *(a1) = 0;
0x000b89d0 lbu v0, (a0) | v0 = *(a0);
0x000b89d4 seb a2, v0 | __asm ("seb a2, v0");
| if (a2 < 0) {
0x000b89d8 bltzl a2, 0xb8a00 | goto label_3;
| }
0x000b89dc addiu a2, zero, 1 | a2 = 1;
0x000b89e0 addiu v1, zero, 1 | v1 = 1;
0x000b89e4 sw v1, (a1) | *(a1) = v1;
0x000b89e8 jr ra | return v0;
| }
| if (a1 == 0) {
0x000b89ec beqz a1, 0xb8a58 | goto label_4;
| }
0x000b89f0 nop |
| do {
| label_1:
0x000b89f4 sw zero, (a1) | *(a1) = 0;
| label_0:
0x000b89f8 addiu v0, zero, -1 | v0 = -1;
0x000b89fc jr ra | return v0;
| label_3:
0x000b8a00 addiu a3, zero, -0x40 | a3 = -0x40;
0x000b8a04 beq v1, a2, 0xb89f4 |
| } while (v1 == a2);
0x000b8a08 lbu a2, 1(a0) | a2 = *((a0 + 1));
0x000b8a0c and a2, a3, a2 | a2 = a3 & a2;
0x000b8a10 addiu t0, zero, 0x80 | t0 = 0x80;
0x000b8a14 sw zero, (a1) | *(a1) = 0;
| if (a2 == t0) {
0x000b8a18 bnel a2, t0, 0xb89f8 | goto label_0;
| }
0x000b8a1c andi t0, v0, 0xe0 | t0 = v0 & 0xe0;
0x000b8a20 addiu t1, zero, 0xe0 | t1 = 0xe0;
| if (t0 == t1) {
0x000b8a24 beql t0, t1, 0xb8a60 | goto label_5;
| }
0x000b8a28 addiu t0, zero, 2 | t0 = 2;
0x000b8a2c addiu v0, zero, 2 | v0 = 2;
0x000b8a30 sw v0, (a1) | *(a1) = v0;
0x000b8a34 lbu v1, (a0) | v1 = *(a0);
0x000b8a38 lbu v0, 1(a0) | v0 = *((a0 + 1));
0x000b8a3c sll v1, v1, 6 | v1 <<= 6;
0x000b8a40 andi v1, v1, 0x7c0 | v1 &= 0x7c0;
0x000b8a44 andi v0, v0, 0x3f | v0 &= 0x3f;
0x000b8a48 or v0, v0, v1 | v0 |= v1;
0x000b8a4c jr ra | return v0;
| label_2:
0x000b8a50 addiu v0, zero, -1 | v0 = -1;
0x000b8a54 jr ra | return v0;
| label_4:
0x000b8a58 addiu v0, zero, -1 | v0 = -1;
0x000b8a5c jr ra | return v0;
| if (v1 == t0) {
| label_5:
0x000b8a60 beql v1, t0, 0xb89f8 | goto label_0;
| }
0x000b8a64 sw zero, (a1) | *(a1) = 0;
0x000b8a68 lbu t0, 2(a0) | t0 = *((a0 + 2));
0x000b8a6c and a3, a3, t0 | a3 &= t0;
0x000b8a70 sw zero, (a1) | *(a1) = 0;
| if (a3 == a2) {
0x000b8a74 bnel a3, a2, 0xb89f8 | goto label_0;
| }
0x000b8a78 andi a2, v0, 0xf0 | a2 = v0 & 0xf0;
0x000b8a7c addiu a3, zero, 0xf0 | a3 = 0xf0;
| if (a2 != a3) {
0x000b8a80 beql a2, a3, 0xb8abc |
0x000b8a84 addiu a2, zero, 3 | a2 = 3;
0x000b8a88 addiu v0, zero, 3 | v0 = 3;
0x000b8a8c sw v0, (a1) | *(a1) = v0;
0x000b8a90 lbu a1, (a0) | a1 = *(a0);
0x000b8a94 lbu v1, 1(a0) | v1 = *((a0 + 1));
0x000b8a98 lbu v0, 2(a0) | v0 = *((a0 + 2));
0x000b8a9c sll a1, a1, 0xc | a1 <<= 0xc;
0x000b8aa0 sll v1, v1, 6 | v1 <<= 6;
0x000b8aa4 andi a1, a1, 0xffff | a1 &= 0xffff;
0x000b8aa8 andi v1, v1, 0xfc0 | v1 &= 0xfc0;
0x000b8aac or v1, v1, a1 | v1 |= a1;
0x000b8ab0 andi v0, v0, 0x3f | v0 &= 0x3f;
0x000b8ab4 or v0, v0, v1 | v0 |= v1;
0x000b8ab8 jr ra | return v0;
| }
0x000b8abc addiu v1, zero, 0xf0 | v1 = 0xf0;
| if (v1 == a2) {
0x000b8ac0 beq v1, a2, 0xb89f4 | goto label_1;
| }
0x000b8ac4 andi v0, v0, 0xf8 | v0 &= 0xf8;
0x000b8ac8 sw zero, (a1) | *(a1) = 0;
| if (v0 == v1) {
0x000b8acc bnel v0, v1, 0xb89f8 | goto label_0;
| }
0x000b8ad0 lbu v0, 3(a0) | v0 = *((a0 + 3));
0x000b8ad4 addiu v1, zero, 0x80 | v1 = 0x80;
0x000b8ad8 andi v0, v0, 0xc0 | v0 &= 0xc0;
0x000b8adc sw zero, (a1) | *(a1) = 0;
| if (v0 == v1) {
0x000b8ae0 bnel v0, v1, 0xb89f8 | goto label_0;
| }
0x000b8ae4 addiu v0, zero, 4 | v0 = 4;
0x000b8ae8 sw v0, (a1) | *(a1) = v0;
0x000b8aec lbu v1, 1(a0) | v1 = *((a0 + 1));
0x000b8af0 lbu a1, (a0) | a1 = *(a0);
0x000b8af4 lbu a2, 3(a0) | a2 = *((a0 + 3));
0x000b8af8 lbu v0, 2(a0) | v0 = *((a0 + 2));
0x000b8afc lui a0, 3 | a0 = 0x3f000;
0x000b8b00 ori a0, a0, 0xf000 |
0x000b8b04 sll v1, v1, 0xc | v1 <<= 0xc;
0x000b8b08 and v1, v1, a0 | v1 &= a0;
0x000b8b0c sll a1, a1, 0x12 | a1 <<= 0x12;
0x000b8b10 lui a0, 0x1c | a0 = 0x1c0000;
0x000b8b14 and a1, a1, a0 | a1 &= a0;
0x000b8b18 or v1, v1, a1 | v1 |= a1;
0x000b8b1c andi a2, a2, 0x3f | a2 &= 0x3f;
0x000b8b20 sll v0, v0, 6 | v0 <<= 6;
0x000b8b24 or v1, v1, a2 | v1 |= a2;
0x000b8b28 andi v0, v0, 0xfc0 | v0 &= 0xfc0;
0x000b8b2c or v0, v0, v1 | v0 |= v1;
0x000b8b30 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x5ba1c */
| #include <stdint.h>
|
; (fcn) sym.xmlHashAddEntry3 () | void xmlHashAddEntry3 () {
0x0005ba1c lui gp, 0x13 |
0x0005ba20 addiu gp, gp, 0x5c54 |
0x0005ba24 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x0005ba28 beqz a0, 0x5c0a0 | goto label_18;
| }
0x0005ba2c nop |
0x0005ba30 addiu sp, sp, -0x48 |
0x0005ba34 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0005ba38 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x0005ba3c sw ra, 0x44(sp) | *(var_44h) = ra;
0x0005ba40 sw fp, 0x40(sp) | *(var_40h) = fp;
0x0005ba44 sw s7, 0x3c(sp) | *(var_3ch) = s7;
0x0005ba48 sw s6, 0x38(sp) | *(var_38h) = s6;
0x0005ba4c sw s5, 0x34(sp) | *(var_34h) = s5;
0x0005ba50 sw s4, 0x30(sp) | *(var_30h) = s4;
0x0005ba54 sw s2, 0x28(sp) | *(var_28h) = s2;
0x0005ba58 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0005ba5c sw s0, 0x20(sp) | *(var_20h) = s0;
0x0005ba60 move s3, a1 | s3 = a1;
| if (a1 == 0) {
0x0005ba64 beqz a1, 0x5bbe8 | goto label_5;
| }
0x0005ba68 move s6, a0 | s6 = a0;
0x0005ba6c lw a0, 0xc(a0) | a0 = *((a0 + 3));
0x0005ba70 move s4, a2 | s4 = a2;
0x0005ba74 move s5, a3 | s5 = a3;
| if (a0 == 0) {
0x0005ba78 beqz a0, 0x5bec8 | goto label_19;
| }
0x0005ba7c lw s0, -0x7fc4(gp) | s0 = *((gp - 8177));
0x0005ba80 move t9, s0 | t9 = s0;
0x0005ba84 jalr t9 | t9 ();
0x0005ba88 nop |
0x0005ba8c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005ba90 beqz v0, 0x5be64 | goto label_20;
| }
0x0005ba94 lw t2, 0xc(s6) | t2 = *((s6 + 3));
| if (s4 != 0) {
0x0005ba98 beqz s4, 0x5bab8 |
| label_6:
0x0005ba9c move a1, s4 | a1 = s4;
0x0005baa0 move t9, s0 | t9 = s0;
0x0005baa4 move a0, t2 | a0 = t2;
0x0005baa8 jalr t9 | t9 ();
0x0005baac lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005bab0 beqz v0, 0x5c044 | goto label_21;
| }
0x0005bab4 lw t2, 0xc(s6) | t2 = *((s6 + 3));
| }
| label_7:
0x0005bab8 move a1, s5 | a1 = s5;
| if (s5 != 0) {
0x0005babc beqz s5, 0x5bad8 |
0x0005bac0 move t9, s0 | t9 = s0;
0x0005bac4 move a0, t2 | a0 = t2;
0x0005bac8 jalr t9 | t9 ();
0x0005bacc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005bad0 beqz v0, 0x5c01c | goto label_22;
| }
0x0005bad4 lw t2, 0xc(s6) | t2 = *((s6 + 3));
| }
| label_13:
0x0005bad8 lw s1, -0x7b38(gp) | s1 = *((gp - 7886));
0x0005badc lw a1, 0x10(s6) | a1 = *((s6 + 4));
0x0005bae0 lw a0, 4(s6) | a0 = *((s6 + 1));
0x0005bae4 addiu s1, s1, -0x4ca4 | s1 += -0x4ca4;
0x0005bae8 sw s5, 0x10(sp) | *(var_10h) = s5;
0x0005baec move a3, s4 | a3 = s4;
0x0005baf0 move t9, s1 | t9 = s1;
0x0005baf4 move a2, s3 | a2 = s3;
0x0005baf8 bal 0x5b35c | fcn_0005b35c ();
0x0005bafc sll s2, v0, 1 | s2 = v0 << 1;
0x0005bb00 addu v0, s2, v0 | v0 = s2 + v0;
0x0005bb04 lw s2, (s6) | s2 = *(s6);
0x0005bb08 sll v0, v0, 3 | v0 <<= 3;
0x0005bb0c addu s2, s2, v0 | s2 += v0;
0x0005bb10 lw v0, 0x14(s2) | v0 = *((s2 + 5));
0x0005bb14 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005bb18 bnez v0, 0x5bb9c |
0x0005bb1c move s0, zero | s0 = 0;
0x0005bb20 move s7, zero | s7 = 0;
| label_8:
0x0005bb24 lw fp, -0x7fd8(gp) | fp = *((gp - 8182));
| if (t2 == 0) {
0x0005bb28 beqz t2, 0x5bf18 | goto label_23;
| }
0x0005bb2c sw s3, 4(s2) | *((s2 + 1)) = s3;
0x0005bb30 sw s4, 8(s2) | *((s2 + 2)) = s4;
0x0005bb34 sw s5, 0xc(s2) | *((s2 + 3)) = s5;
| label_9:
0x0005bb38 lw v0, 0x58(sp) | v0 = *(arg_58h);
0x0005bb3c sw zero, (s2) | *(s2) = 0;
0x0005bb40 sw v0, 0x10(s2) | *((s2 + 4)) = v0;
0x0005bb44 addiu v0, zero, 1 | v0 = 1;
0x0005bb48 sw v0, 0x14(s2) | *((s2 + 5)) = v0;
| if (s0 != 0) {
0x0005bb4c beqz s0, 0x5bb54 |
0x0005bb50 sw s2, (s0) | *(s0) = s2;
| }
0x0005bb54 lw v0, 8(s6) | v0 = *((s6 + 2));
0x0005bb58 sltiu s7, s7, 9 | s7 = (s7 < 9) ? 1 : 0;
0x0005bb5c addiu v0, v0, 1 | v0++;
0x0005bb60 sw v0, 8(s6) | *((s6 + 2)) = v0;
| if (s7 == 0) {
0x0005bb64 beqz s7, 0x5bbf0 | goto label_24;
| }
| label_2:
0x0005bb68 move v0, zero | v0 = 0;
| label_1:
0x0005bb6c lw ra, 0x44(sp) | ra = *(var_44h);
0x0005bb70 lw fp, 0x40(sp) | fp = *(var_40h);
0x0005bb74 lw s7, 0x3c(sp) | s7 = *(var_3ch);
0x0005bb78 lw s6, 0x38(sp) | s6 = *(var_38h);
0x0005bb7c lw s5, 0x34(sp) | s5 = *(var_34h);
0x0005bb80 lw s4, 0x30(sp) | s4 = *(var_30h);
0x0005bb84 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0005bb88 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0005bb8c lw s1, 0x24(sp) | s1 = *(var_24h);
0x0005bb90 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0005bb94 addiu sp, sp, 0x48 |
0x0005bb98 jr ra | return v0;
| }
0x0005bb9c lw s0, (s2) | s0 = *(s2);
| if (t2 == 0) {
0x0005bba0 beqz t2, 0x5c0a8 | goto label_25;
| }
0x0005bba4 move s7, zero | s7 = 0;
| if (s0 == 0) {
0x0005bba8 beqz s0, 0x5be94 | goto label_26;
| }
0x0005bbac lw v0, 4(s2) | v0 = *((s2 + 1));
0x0005bbb0 b 0x5bbc8 |
| while (v0 != s3) {
0x0005bbb4 lw v0, (s0) | v0 = *(s0);
| label_0:
0x0005bbb8 move s2, s0 | s2 = s0;
| if (v0 == 0) {
0x0005bbbc beqz v0, 0x5be98 | goto label_27;
| }
0x0005bbc0 move s0, v0 | s0 = v0;
0x0005bbc4 lw v0, 4(s2) | v0 = *((s2 + 1));
0x0005bbc8 addiu s7, s7, 1 | s7++;
0x0005bbcc bne v0, s3, 0x5bbb4 |
| }
0x0005bbd0 lw v0, 8(s2) | v0 = *((s2 + 2));
0x0005bbd4 lw v0, (s0) | v0 = *(s0);
| if (v0 == s4) {
0x0005bbd8 bnel v0, s4, 0x5bbb8 | goto label_0;
| }
0x0005bbdc lw v0, 0xc(s2) | v0 = *((s2 + 3));
0x0005bbe0 lw v0, (s0) | v0 = *(s0);
| if (v0 == s5) {
0x0005bbe4 bnel v0, s5, 0x5bbb8 | goto label_0;
| }
| label_5:
0x0005bbe8 addiu v0, zero, -1 | v0 = -1;
0x0005bbec b 0x5bb6c | goto label_1;
| label_24:
0x0005bbf0 lw s2, 4(s6) | s2 = *((s6 + 1));
0x0005bbf4 sll s3, s2, 3 | s3 = s2 << 3;
0x0005bbf8 addiu v0, s3, -8 | v0 = s3 + -8;
0x0005bbfc sltiu v0, v0, 0x3ff9 | v0 = (v0 < 0x3ff9) ? 1 : 0;
0x0005bc00 move v0, zero | v0 = 0;
| if (v0 == 0) {
0x0005bc04 beqz v0, 0x5bb6c | goto label_1;
| }
0x0005bc08 lw s4, (s6) | s4 = *(s6);
0x0005bc0c lw v0, -0x716c(gp) | v0 = *(gp);
| if (s4 == 0) {
0x0005bc10 beqz s4, 0x5bb68 | goto label_2;
| }
0x0005bc14 sll s0, s2, 4 | s0 = s2 << 4;
0x0005bc18 addu s0, s0, s3 | s0 += s3;
0x0005bc1c sll s0, s0, 3 | s0 <<= 3;
0x0005bc20 lw t9, (v0) | t9 = *(v0);
0x0005bc24 move a0, s0 | a0 = s0;
0x0005bc28 jalr t9 | t9 ();
0x0005bc2c lw gp, 0x18(sp) | gp = *(var_18h);
0x0005bc30 sw v0, (s6) | *(s6) = v0;
| if (v0 == 0) {
0x0005bc34 beqz v0, 0x5c098 | goto label_28;
| }
0x0005bc38 lw t9, -0x6ea4(gp) | t9 = *((gp - 7081));
0x0005bc3c move a2, s0 | a2 = s0;
0x0005bc40 move a1, zero | a1 = 0;
0x0005bc44 move a0, v0 | a0 = v0;
0x0005bc48 jalr t9 | t9 ();
0x0005bc4c lw gp, 0x18(sp) | gp = *(var_18h);
0x0005bc50 sw s3, 4(s6) | *((s6 + 1)) = s3;
| if (s2 <= 0) {
0x0005bc54 blez s2, 0x5c088 | goto label_29;
| }
0x0005bc58 sll s3, s2, 1 | s3 = s2 << 1;
0x0005bc5c addu s3, s3, s2 | s3 += s2;
0x0005bc60 sll s3, s3, 3 | s3 <<= 3;
0x0005bc64 move s2, s4 | s2 = s4;
0x0005bc68 addu s3, s3, s4 | s3 += s4;
0x0005bc6c move t2, s4 | t2 = s4;
0x0005bc70 lw v0, 0x14(t2) | v0 = *((t2 + 5));
| do {
| if (v0 != 0) {
0x0005bc74 beql v0, zero, 0x5bd24 |
0x0005bc78 addiu t2, t2, 0x18 | t2 += 0x18;
0x0005bc7c lw v0, 0xc(t2) | v0 = *((t2 + 3));
0x0005bc80 lw a3, 8(t2) | a3 = *((t2 + 2));
0x0005bc84 lw a2, 4(t2) | a2 = *((t2 + 1));
0x0005bc88 lw a1, 0x10(s6) | a1 = *((s6 + 4));
0x0005bc8c lw a0, 4(s6) | a0 = *((s6 + 1));
0x0005bc90 move t9, s1 | t9 = s1;
0x0005bc94 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0005bc98 bal 0x5b35c | fcn_0005b35c ();
0x0005bc9c lwl t1, 3(t2) | __asm ("lwl t1, 3(t2)");
0x0005bca0 sll a0, v0, 1 | a0 = v0 << 1;
0x0005bca4 lw v1, (s6) | v1 = *(s6);
0x0005bca8 addu v0, a0, v0 | v0 = a0 + v0;
0x0005bcac lwl t0, 7(t2) | __asm ("lwl t0, 7(t2)");
0x0005bcb0 lwl a3, 0xb(t2) | __asm ("lwl a3, 0xb(t2)");
0x0005bcb4 lwl a2, 0xf(t2) | __asm ("lwl a2, 0xf(t2)");
0x0005bcb8 lwl a1, 0x13(t2) | __asm ("lwl a1, 0x13(t2)");
0x0005bcbc lwl a0, 0x17(t2) | __asm ("lwl a0, 0x17(t2)");
0x0005bcc0 sll v0, v0, 3 | v0 <<= 3;
0x0005bcc4 addu v1, v1, v0 | v1 += v0;
0x0005bcc8 lwr t1, (t2) | __asm ("lwr t1, (t2)");
0x0005bccc lwr a3, 8(t2) | __asm ("lwr a3, 8(t2)");
0x0005bcd0 lwr a2, 0xc(t2) | __asm ("lwr a2, 0xc(t2)");
0x0005bcd4 lwr a1, 0x10(t2) | __asm ("lwr a1, 0x10(t2)");
0x0005bcd8 lwr a0, 0x14(t2) | __asm ("lwr a0, 0x14(t2)");
0x0005bcdc lwr t0, 4(t2) | __asm ("lwr t0, 4(t2)");
0x0005bce0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005bce4 swl t1, 3(v1) | __asm ("swl t1, 3(v1)");
0x0005bce8 swr t1, (v1) | __asm ("swr t1, (v1)");
0x0005bcec swl t0, 7(v1) | __asm ("swl t0, 7(v1)");
0x0005bcf0 swr t0, 4(v1) | __asm ("swr t0, 4(v1)");
0x0005bcf4 swl a3, 0xb(v1) | __asm ("swl a3, 0xb(v1)");
0x0005bcf8 swr a3, 8(v1) | __asm ("swr a3, 8(v1)");
0x0005bcfc swl a2, 0xf(v1) | __asm ("swl a2, 0xf(v1)");
0x0005bd00 swr a2, 0xc(v1) | __asm ("swr a2, 0xc(v1)");
0x0005bd04 swl a1, 0x13(v1) | __asm ("swl a1, 0x13(v1)");
0x0005bd08 swr a1, 0x10(v1) | __asm ("swr a1, 0x10(v1)");
0x0005bd0c swl a0, 0x17(v1) | __asm ("swl a0, 0x17(v1)");
0x0005bd10 swr a0, 0x14(v1) | __asm ("swr a0, 0x14(v1)");
0x0005bd14 lw v1, (s6) | v1 = *(s6);
0x0005bd18 addu v0, v1, v0 | v0 = v1 + v0;
0x0005bd1c sw zero, (v0) | *(v0) = 0;
0x0005bd20 addiu t2, t2, 0x18 | t2 += 0x18;
| }
0x0005bd24 lw v0, 0x14(t2) | v0 = *((t2 + 5));
0x0005bd28 bnel t2, s3, 0x5bc74 |
| } while (t2 == s3);
0x0005bd2c lw s5, -0x7158(gp) | s5 = *(gp);
0x0005bd30 lw t2, (s2) | t2 = *(s2);
| label_4:
0x0005bd34 lw v0, 0xc(t2) | v0 = *((t2 + 3));
| if (t2 == 0) {
0x0005bd38 bnel t2, zero, 0x5bd58 | goto label_30;
| }
0x0005bd3c addiu s2, s2, 0x18 | s2 += 0x18;
0x0005bd40 b 0x5be1c | goto label_31;
| do {
0x0005bd44 sw v0, (t2) | *(t2) = v0;
0x0005bd48 sw t2, (v1) | *(v1) = t2;
0x0005bd4c move t2, s0 | t2 = s0;
| if (s0 == 0) {
0x0005bd50 beqz s0, 0x5be18 | goto label_32;
| }
| label_3:
0x0005bd54 lw v0, 0xc(t2) | v0 = *((t2 + 3));
| label_30:
0x0005bd58 lw a0, 4(s6) | a0 = *((s6 + 1));
0x0005bd5c lw a1, 0x10(s6) | a1 = *((s6 + 4));
0x0005bd60 lw a3, 8(t2) | a3 = *((t2 + 2));
0x0005bd64 lw a2, 4(t2) | a2 = *((t2 + 1));
0x0005bd68 lw s0, (t2) | s0 = *(t2);
0x0005bd6c move t9, s1 | t9 = s1;
0x0005bd70 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0005bd74 bal 0x5b35c | fcn_0005b35c ();
0x0005bd78 sll a0, v0, 1 | a0 = v0 << 1;
0x0005bd7c addu v0, a0, v0 | v0 = a0 + v0;
0x0005bd80 lw v1, (s6) | v1 = *(s6);
0x0005bd84 sll v0, v0, 3 | v0 <<= 3;
0x0005bd88 addu v1, v1, v0 | v1 += v0;
0x0005bd8c lw a0, 0x14(v1) | a0 = *((v1 + 5));
0x0005bd90 lw v0, (v1) | v0 = *(v1);
0x0005bd94 bnel a0, zero, 0x5bd44 |
| } while (a0 == 0);
0x0005bd98 lwl t1, 3(t2) | __asm ("lwl t1, 3(t2)");
0x0005bd9c lwl t0, 7(t2) | __asm ("lwl t0, 7(t2)");
0x0005bda0 lwl a3, 0xb(t2) | __asm ("lwl a3, 0xb(t2)");
0x0005bda4 lwl a2, 0xf(t2) | __asm ("lwl a2, 0xf(t2)");
0x0005bda8 lwl a1, 0x13(t2) | __asm ("lwl a1, 0x13(t2)");
0x0005bdac lwl a0, 0x17(t2) | __asm ("lwl a0, 0x17(t2)");
0x0005bdb0 lwr t1, (t2) | __asm ("lwr t1, (t2)");
0x0005bdb4 lwr a3, 8(t2) | __asm ("lwr a3, 8(t2)");
0x0005bdb8 lwr a0, 0x14(t2) | __asm ("lwr a0, 0x14(t2)");
0x0005bdbc lwr a2, 0xc(t2) | __asm ("lwr a2, 0xc(t2)");
0x0005bdc0 lwr a1, 0x10(t2) | __asm ("lwr a1, 0x10(t2)");
0x0005bdc4 lwr t0, 4(t2) | __asm ("lwr t0, 4(t2)");
0x0005bdc8 swl t1, 3(v1) | __asm ("swl t1, 3(v1)");
0x0005bdcc swr t1, (v1) | __asm ("swr t1, (v1)");
0x0005bdd0 swl t0, 7(v1) | __asm ("swl t0, 7(v1)");
0x0005bdd4 swr t0, 4(v1) | __asm ("swr t0, 4(v1)");
0x0005bdd8 swl a3, 0xb(v1) | __asm ("swl a3, 0xb(v1)");
0x0005bddc swr a3, 8(v1) | __asm ("swr a3, 8(v1)");
0x0005bde0 swl a2, 0xf(v1) | __asm ("swl a2, 0xf(v1)");
0x0005bde4 swr a2, 0xc(v1) | __asm ("swr a2, 0xc(v1)");
0x0005bde8 swl a1, 0x13(v1) | __asm ("swl a1, 0x13(v1)");
0x0005bdec swr a1, 0x10(v1) | __asm ("swr a1, 0x10(v1)");
0x0005bdf0 swl a0, 0x17(v1) | __asm ("swl a0, 0x17(v1)");
0x0005bdf4 swr a0, 0x14(v1) | __asm ("swr a0, 0x14(v1)");
0x0005bdf8 lw v1, (s6) | v1 = *(s6);
0x0005bdfc lw t9, (s5) | t9 = *(s5);
0x0005be00 addu v0, v1, v0 | v0 = v1 + v0;
0x0005be04 move a0, t2 | a0 = t2;
0x0005be08 sw zero, (v0) | *(v0) = 0;
0x0005be0c jalr t9 | t9 ();
0x0005be10 move t2, s0 | t2 = s0;
| if (s0 != 0) {
0x0005be14 bnez s0, 0x5bd54 | goto label_3;
| }
| label_32:
0x0005be18 addiu s2, s2, 0x18 | s2 += 0x18;
| label_31:
0x0005be1c lw t2, (s2) | t2 = *(s2);
| if (s2 == s3) {
0x0005be20 bnel s2, s3, 0x5bd34 | goto label_4;
| }
| label_15:
0x0005be24 lw t9, (s5) | t9 = *(s5);
0x0005be28 move a0, s4 | a0 = s4;
0x0005be2c jalr t9 | t9 ();
0x0005be30 lw ra, 0x44(sp) | ra = *(var_44h);
0x0005be34 lw fp, 0x40(sp) | fp = *(var_40h);
0x0005be38 lw s7, 0x3c(sp) | s7 = *(var_3ch);
0x0005be3c lw s6, 0x38(sp) | s6 = *(var_38h);
0x0005be40 lw s5, 0x34(sp) | s5 = *(var_34h);
0x0005be44 lw s4, 0x30(sp) | s4 = *(var_30h);
0x0005be48 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0005be4c lw s2, 0x28(sp) | s2 = *(var_28h);
0x0005be50 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0005be54 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0005be58 move v0, zero | v0 = 0;
0x0005be5c addiu sp, sp, 0x48 |
0x0005be60 jr ra | return v0;
| label_20:
0x0005be64 lw t9, -0x7fd0(gp) | t9 = *(gp);
0x0005be68 lw a0, 0xc(s6) | a0 = *((s6 + 3));
0x0005be6c move a1, s3 | a1 = s3;
0x0005be70 addiu a2, zero, -1 | a2 = -1;
0x0005be74 jalr t9 | t9 ();
0x0005be78 move s3, v0 | s3 = v0;
0x0005be7c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005be80 beqz v0, 0x5bbe8 | goto label_5;
| }
0x0005be84 lw t2, 0xc(s6) | t2 = *((s6 + 3));
| if (s4 != 0) {
0x0005be88 bnez s4, 0x5ba9c | goto label_6;
| }
0x0005be8c b 0x5bab8 | goto label_7;
0x0005be90 nop |
| label_26:
0x0005be94 move s0, s2 | s0 = s2;
| label_27:
0x0005be98 lw v0, 4(s0) | v0 = *((s0 + 1));
| if (v0 == s3) {
0x0005be9c beql v0, s3, 0x5c06c | goto label_33;
| }
0x0005bea0 lw v0, 8(s0) | v0 = *((s0 + 2));
| label_12:
0x0005bea4 lw v0, -0x716c(gp) | v0 = *(gp);
| label_14:
0x0005bea8 lw t9, (v0) | t9 = *(v0);
0x0005beac addiu a0, zero, 0x18 | a0 = 0x18;
0x0005beb0 jalr t9 | t9 ();
0x0005beb4 move s2, v0 | s2 = v0;
0x0005beb8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005bebc beqz v0, 0x5bbe8 | goto label_5;
| }
0x0005bec0 lw t2, 0xc(s6) | t2 = *((s6 + 3));
0x0005bec4 b 0x5bb24 | goto label_8;
| label_19:
0x0005bec8 lw s1, -0x7b38(gp) | s1 = *((gp - 7886));
0x0005becc lw a1, 0x10(s6) | a1 = *((s6 + 4));
0x0005bed0 lw a0, 4(s6) | a0 = *((s6 + 1));
0x0005bed4 addiu s1, s1, -0x4ca4 | s1 += -0x4ca4;
0x0005bed8 sw a3, 0x10(sp) | *(var_10h) = a3;
0x0005bedc move t9, s1 | t9 = s1;
0x0005bee0 move a3, a2 | a3 = a2;
0x0005bee4 move a2, s3 | a2 = s3;
0x0005bee8 bal 0x5b35c | fcn_0005b35c ();
0x0005beec sll v1, v0, 1 | v1 = v0 << 1;
0x0005bef0 addu v0, v1, v0 | v0 = v1 + v0;
0x0005bef4 lw s2, (s6) | s2 = *(s6);
0x0005bef8 sll v0, v0, 3 | v0 <<= 3;
0x0005befc addu s2, s2, v0 | s2 += v0;
0x0005bf00 lw v0, 0x14(s2) | v0 = *((s2 + 5));
0x0005bf04 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005bf08 bnez v0, 0x5bf50 |
0x0005bf0c move s0, zero | s0 = 0;
0x0005bf10 move s7, zero | s7 = 0;
0x0005bf14 lw fp, -0x7fd8(gp) | fp = *((gp - 8182));
| label_23:
0x0005bf18 move t9, fp | t9 = fp;
0x0005bf1c move a0, s3 | a0 = s3;
0x0005bf20 jalr t9 | t9 ();
0x0005bf24 sw v0, 4(s2) | *((s2 + 1)) = v0;
0x0005bf28 move t9, fp | t9 = fp;
0x0005bf2c move a0, s4 | a0 = s4;
0x0005bf30 jalr t9 | t9 ();
0x0005bf34 sw v0, 8(s2) | *((s2 + 2)) = v0;
0x0005bf38 move t9, fp | t9 = fp;
0x0005bf3c move a0, s5 | a0 = s5;
0x0005bf40 jalr t9 | t9 ();
0x0005bf44 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005bf48 sw v0, 0xc(s2) | *((s2 + 3)) = v0;
0x0005bf4c b 0x5bb38 | goto label_9;
| }
0x0005bf50 lw v0, (s2) | v0 = *(s2);
0x0005bf54 move s0, s2 | s0 = s2;
| label_17:
0x0005bf58 move s7, zero | s7 = 0;
| if (v0 == 0) {
0x0005bf5c beqz v0, 0x5c090 | goto label_34;
| }
0x0005bf60 lw s2, -0x7f90(gp) | s2 = *((gp - 8164));
0x0005bf64 b 0x5bf74 |
| while (v0 == 0) {
| label_10:
0x0005bf68 lw v0, (s0) | v0 = *(s0);
0x0005bf6c addiu s7, s7, 1 | s7++;
| if (v0 == 0) {
0x0005bf70 beqz v0, 0x5bfcc | goto label_16;
| }
| label_11:
0x0005bf74 lw a0, 4(s0) | a0 = *((s0 + 1));
0x0005bf78 move t9, s2 | t9 = s2;
0x0005bf7c move a1, s3 | a1 = s3;
0x0005bf80 jalr t9 | t9 ();
0x0005bf84 beql v0, zero, 0x5bf68 |
| }
0x0005bf88 lw s0, (s0) | s0 = *(s0);
0x0005bf8c lw a0, 8(s0) | a0 = *((s0 + 2));
0x0005bf90 move t9, s2 | t9 = s2;
0x0005bf94 move a1, s4 | a1 = s4;
0x0005bf98 jalr t9 | t9 ();
| if (v0 == 0) {
0x0005bf9c beql v0, zero, 0x5bf68 | goto label_10;
| }
0x0005bfa0 lw s0, (s0) | s0 = *(s0);
0x0005bfa4 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x0005bfa8 move t9, s2 | t9 = s2;
0x0005bfac move a1, s5 | a1 = s5;
0x0005bfb0 jalr t9 | t9 ();
0x0005bfb4 addiu v0, zero, -1 | v0 = -1;
| if (v0 != 0) {
0x0005bfb8 bnez v0, 0x5bb6c | goto label_1;
| }
0x0005bfbc lw s0, (s0) | s0 = *(s0);
0x0005bfc0 lw v0, (s0) | v0 = *(s0);
0x0005bfc4 addiu s7, s7, 1 | s7++;
| if (v0 != 0) {
0x0005bfc8 bnez v0, 0x5bf74 | goto label_11;
| }
| label_16:
0x0005bfcc lw a0, 4(s0) | a0 = *((s0 + 1));
0x0005bfd0 move t9, s2 | t9 = s2;
0x0005bfd4 move a1, s3 | a1 = s3;
0x0005bfd8 jalr t9 | t9 ();
0x0005bfdc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005bfe0 beqz v0, 0x5bea4 | goto label_12;
| }
0x0005bfe4 lw a0, 8(s0) | a0 = *((s0 + 2));
0x0005bfe8 move t9, s2 | t9 = s2;
0x0005bfec move a1, s4 | a1 = s4;
0x0005bff0 jalr t9 | t9 ();
0x0005bff4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005bff8 beqz v0, 0x5bea4 | goto label_12;
| }
0x0005bffc lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x0005c000 move t9, s2 | t9 = s2;
0x0005c004 move a1, s5 | a1 = s5;
0x0005c008 jalr t9 | t9 ();
0x0005c00c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005c010 beqz v0, 0x5bea4 | goto label_12;
| }
0x0005c014 addiu v0, zero, -1 | v0 = -1;
0x0005c018 b 0x5bb6c | goto label_1;
| label_22:
0x0005c01c lw t9, -0x7fd0(gp) | t9 = *(gp);
0x0005c020 lw a0, 0xc(s6) | a0 = *((s6 + 3));
0x0005c024 move a1, s5 | a1 = s5;
0x0005c028 addiu a2, zero, -1 | a2 = -1;
0x0005c02c jalr t9 | t9 ();
0x0005c030 move s5, v0 | s5 = v0;
0x0005c034 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005c038 beqz v0, 0x5bbe8 | goto label_5;
| }
0x0005c03c lw t2, 0xc(s6) | t2 = *((s6 + 3));
0x0005c040 b 0x5bad8 | goto label_13;
| label_21:
0x0005c044 lw t9, -0x7fd0(gp) | t9 = *(gp);
0x0005c048 lw a0, 0xc(s6) | a0 = *((s6 + 3));
0x0005c04c move a1, s4 | a1 = s4;
0x0005c050 addiu a2, zero, -1 | a2 = -1;
0x0005c054 jalr t9 | t9 ();
0x0005c058 move s4, v0 | s4 = v0;
0x0005c05c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005c060 beqz v0, 0x5bbe8 | goto label_5;
| }
0x0005c064 lw t2, 0xc(s6) | t2 = *((s6 + 3));
0x0005c068 b 0x5bab8 | goto label_7;
| label_33:
0x0005c06c lw v0, -0x716c(gp) | v0 = *(gp);
| if (v0 != s4) {
0x0005c070 bne v0, s4, 0x5bea8 | goto label_14;
| }
0x0005c074 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0005c078 lw v0, -0x716c(gp) | v0 = *(gp);
| if (v0 == s5) {
0x0005c07c bnel v0, s5, 0x5bea8 | goto label_14;
| }
0x0005c080 addiu v0, zero, -1 | v0 = -1;
0x0005c084 b 0x5bb6c | goto label_1;
| label_29:
0x0005c088 lw s5, -0x7158(gp) | s5 = *(gp);
0x0005c08c b 0x5be24 | goto label_15;
| label_34:
0x0005c090 lw s2, -0x7f90(gp) | s2 = *((gp - 8164));
0x0005c094 b 0x5bfcc | goto label_16;
| label_28:
0x0005c098 sw s4, (s6) | *(s6) = s4;
0x0005c09c b 0x5bb6c | goto label_1;
| label_18:
0x0005c0a0 addiu v0, zero, -1 | v0 = -1;
0x0005c0a4 jr ra | return v0;
| label_25:
0x0005c0a8 move v0, s0 | v0 = s0;
0x0005c0ac move s0, s2 | s0 = s2;
0x0005c0b0 b 0x5bf58 | goto label_17;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x5d904 */
| #include <stdint.h>
|
; (fcn) sym.xmlListClear () | void xmlListClear () {
0x0005d904 lui gp, 0x13 |
0x0005d908 addiu gp, gp, 0x3d6c |
0x0005d90c addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x0005d910 beqz a0, 0x5d9a0 | goto label_0;
| }
0x0005d914 nop |
0x0005d918 lw v0, (a0) | v0 = *(a0);
0x0005d91c addiu sp, sp, -0x30 |
0x0005d920 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x0005d924 lw s0, (v0) | s0 = *(v0);
0x0005d928 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0005d92c sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0005d930 sw s3, 0x28(sp) | *(var_28h) = s3;
0x0005d934 sw s2, 0x24(sp) | *(var_24h) = s2;
0x0005d938 sw s1, 0x20(sp) | *(var_20h) = s1;
0x0005d93c lw s3, -0x7158(gp) | s3 = *(gp);
| if (v0 == s0) {
0x0005d940 beq v0, s0, 0x5d984 | goto label_1;
| }
0x0005d944 move s2, a0 | s2 = a0;
| do {
0x0005d948 lw s1, (s0) | s1 = *(s0);
0x0005d94c lw v0, 4(s0) | v0 = *((s0 + 1));
0x0005d950 lw t9, 4(s2) | t9 = *((s2 + 1));
0x0005d954 move a0, s0 | a0 = s0;
0x0005d958 sw s1, (v0) | *(v0) = s1;
0x0005d95c sw v0, 4(s1) | *((s1 + 1)) = v0;
| if (t9 != 0) {
0x0005d960 beqz t9, 0x5d96c |
0x0005d964 jalr t9 | t9 ();
0x0005d968 nop |
| }
0x0005d96c lw t9, (s3) | t9 = *(s3);
0x0005d970 move a0, s0 | a0 = s0;
0x0005d974 jalr t9 | t9 ();
0x0005d978 lw v0, (s2) | v0 = *(s2);
0x0005d97c move s0, s1 | s0 = s1;
0x0005d980 bne v0, s1, 0x5d948 |
| } while (v0 != s1);
| label_1:
0x0005d984 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0005d988 lw s3, 0x28(sp) | s3 = *(var_28h);
0x0005d98c lw s2, 0x24(sp) | s2 = *(var_24h);
0x0005d990 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0005d994 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0005d998 addiu sp, sp, 0x30 |
0x0005d99c jr ra | return v0;
| label_0:
0x0005d9a0 jr ra | return v0;
0x0005d9a4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x5dae8 */
| #include <stdint.h>
|
; (fcn) sym.xmlListEmpty () | void xmlListEmpty () {
| if (a0 != 0) {
0x0005dae8 beqz a0, 0x5db04 |
0x0005daec nop |
0x0005daf0 lw v0, (a0) | v0 = *(a0);
0x0005daf4 lw v1, (v0) | v1 = *(v0);
0x0005daf8 xor v0, v0, v1 | v0 ^= v1;
0x0005dafc sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
0x0005db00 jr ra | return v0;
| }
0x0005db04 addiu v0, zero, -1 | v0 = -1;
0x0005db08 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x5db0c */
| #include <stdint.h>
|
; (fcn) sym.xmlListFront () | void xmlListFront () {
| if (a0 != 0) {
0x0005db0c beqz a0, 0x5db20 |
0x0005db10 nop |
0x0005db14 lw v0, (a0) | v0 = *(a0);
0x0005db18 lw v0, (v0) | v0 = *(v0);
0x0005db1c jr ra | return v0;
| }
0x0005db20 move v0, zero | v0 = 0;
0x0005db24 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x5d5bc */
| #include <stdint.h>
|
; (fcn) sym.xmlListInsert () | void xmlListInsert () {
0x0005d5bc lui gp, 0x13 |
0x0005d5c0 addiu gp, gp, 0x40b4 |
0x0005d5c4 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x0005d5c8 beqz a0, 0x5d684 | goto label_0;
| }
0x0005d5cc nop |
0x0005d5d0 lw v0, (a0) | v0 = *(a0);
0x0005d5d4 addiu sp, sp, -0x28 |
0x0005d5d8 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0005d5dc lw s0, (v0) | s0 = *(v0);
0x0005d5e0 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0005d5e4 sw s2, 0x20(sp) | *(var_20h) = s2;
0x0005d5e8 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x0005d5ec sw ra, 0x24(sp) | *(var_24h) = ra;
0x0005d5f0 move s2, a1 | s2 = a1;
0x0005d5f4 move s1, a0 | s1 = a0;
| if (v0 != s0) {
0x0005d5f8 bne v0, s0, 0x5d614 | goto label_1;
| }
0x0005d5fc lw v0, -0x716c(gp) | v0 = *(gp);
0x0005d600 b 0x5d630 | goto label_2;
| do {
0x0005d604 lw s0, (s0) | s0 = *(s0);
0x0005d608 lw v0, (s1) | v0 = *(s1);
0x0005d60c lw v0, -0x716c(gp) | v0 = *(gp);
| if (s0 == v0) {
0x0005d610 beq s0, v0, 0x5d630 | goto label_2;
| }
| label_1:
0x0005d614 lw a0, 8(s0) | a0 = *((s0 + 2));
0x0005d618 lw t9, 8(s1) | t9 = *((s1 + 2));
0x0005d61c move a1, s2 | a1 = s2;
0x0005d620 jalr t9 | t9 ();
0x0005d624 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005d628 bltz v0, 0x5d604 |
| } while (v0 < 0);
0x0005d62c lw v0, -0x716c(gp) | v0 = *(gp);
| label_2:
0x0005d630 lw t9, (v0) | t9 = *(v0);
0x0005d634 addiu a0, zero, 0xc | a0 = 0xc;
0x0005d638 jalr t9 | t9 ();
0x0005d63c move v1, v0 | v1 = v0;
0x0005d640 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x0005d644 beqz v0, 0x5d68c |
0x0005d648 lw a0, 4(s0) | a0 = *((s0 + 1));
0x0005d64c sw s2, 8(v0) | *((v0 + 2)) = s2;
0x0005d650 lw ra, 0x24(sp) | ra = *(var_24h);
0x0005d654 lw a1, (a0) | a1 = *(a0);
0x0005d658 lw s2, 0x20(sp) | s2 = *(var_20h);
0x0005d65c sw a1, (v1) | *(v1) = a1;
0x0005d660 lw a1, (a0) | a1 = *(a0);
0x0005d664 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0005d668 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0005d66c sw v1, 4(a1) | *((a1 + 1)) = v1;
0x0005d670 move v0, zero | v0 = 0;
0x0005d674 sw v1, (a0) | *(a0) = v1;
0x0005d678 sw a0, 4(v1) | *((v1 + 1)) = a0;
0x0005d67c addiu sp, sp, 0x28 |
0x0005d680 jr ra | return v0;
| label_0:
0x0005d684 addiu v0, zero, 1 | v0 = 1;
0x0005d688 jr ra | return v0;
| }
0x0005d68c lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
0x0005d690 lw ra, 0x24(sp) | ra = *(var_24h);
0x0005d694 lw s2, 0x20(sp) | s2 = *(var_20h);
0x0005d698 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0005d69c lw s0, 0x18(sp) | s0 = *(var_18h);
0x0005d6a0 addiu t9, t9, -0x2ddc | t9 += -0x2ddc;
0x0005d6a4 addiu sp, sp, 0x28 |
0x0005d6a8 b 0x5d224 | return void (*0x5d224)() ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x5db78 */
| #include <stdint.h>
|
; (fcn) sym.xmlListPopFront () | void xmlListPopFront () {
0x0005db78 lui gp, 0x13 |
0x0005db7c addiu gp, gp, 0x3af8 |
0x0005db80 addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x0005db84 beqz a0, 0x5dbf8 |
0x0005db88 nop |
0x0005db8c lw v0, (a0) | v0 = *(a0);
0x0005db90 addiu sp, sp, -0x20 |
0x0005db94 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0005db98 lw s0, (v0) | s0 = *(v0);
0x0005db9c sw gp, 0x10(sp) | *(var_10h) = gp;
0x0005dba0 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x0005dba4 lw ra, 0x1c(sp) | ra = *(var_1ch);
| if (v0 != s0) {
0x0005dba8 beq v0, s0, 0x5dbec |
0x0005dbac lw v1, 4(s0) | v1 = *((s0 + 1));
0x0005dbb0 lw v0, (s0) | v0 = *(s0);
0x0005dbb4 lw t9, 4(a0) | t9 = *((a0 + 1));
0x0005dbb8 sw v0, (v1) | *(v1) = v0;
0x0005dbbc sw v1, 4(v0) | *((v0 + 1)) = v1;
| if (t9 != 0) {
0x0005dbc0 beqz t9, 0x5dbd0 |
0x0005dbc4 move a0, s0 | a0 = s0;
0x0005dbc8 jalr t9 | t9 ();
0x0005dbcc lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x0005dbd0 lw v0, -0x7158(gp) | v0 = *(gp);
0x0005dbd4 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x0005dbd8 move a0, s0 | a0 = s0;
0x0005dbdc lw t9, (v0) | t9 = *(v0);
0x0005dbe0 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0005dbe4 addiu sp, sp, 0x20 |
0x0005dbe8 jr t9 | t9 ();
| }
0x0005dbec lw s0, 0x18(sp) | s0 = *(var_18h);
0x0005dbf0 addiu sp, sp, 0x20 |
0x0005dbf4 jr ra | return v0;
| }
0x0005dbf8 jr ra | return v0;
0x0005dbfc nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x5dd28 */
| #include <stdint.h>
|
; (fcn) sym.xmlListPushBack () | void xmlListPushBack () {
0x0005dd28 lui gp, 0x13 |
0x0005dd2c addiu gp, gp, 0x3948 |
0x0005dd30 addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x0005dd34 beqz a0, 0x5ddac |
0x0005dd38 nop |
0x0005dd3c lw v1, -0x716c(gp) | v1 = *(gp);
0x0005dd40 addiu sp, sp, -0x28 |
0x0005dd44 lw v0, (a0) | v0 = *(a0);
0x0005dd48 lw t9, (v1) | t9 = *(v1);
0x0005dd4c addiu a0, zero, 0xc | a0 = 0xc;
0x0005dd50 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0005dd54 sw s1, 0x20(sp) | *(var_20h) = s1;
0x0005dd58 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x0005dd5c sw ra, 0x24(sp) | *(var_24h) = ra;
0x0005dd60 move s1, a1 | s1 = a1;
0x0005dd64 lw s0, 4(v0) | s0 = *((v0 + 1));
0x0005dd68 jalr t9 | t9 ();
0x0005dd6c move v1, v0 | v1 = v0;
0x0005dd70 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0005dd74 beqz v0, 0x5ddb4 | goto label_0;
| }
0x0005dd78 lw v0, (s0) | v0 = *(s0);
0x0005dd7c lw ra, 0x24(sp) | ra = *(var_24h);
0x0005dd80 sw v0, (v1) | *(v1) = v0;
0x0005dd84 lw a0, (s0) | a0 = *(s0);
0x0005dd88 sw s1, 8(v1) | *((v1 + 2)) = s1;
0x0005dd8c addiu v0, zero, 1 | v0 = 1;
0x0005dd90 sw v1, 4(a0) | *((a0 + 1)) = v1;
0x0005dd94 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0005dd98 sw v1, (s0) | *(s0) = v1;
0x0005dd9c sw s0, 4(v1) | *((v1 + 1)) = s0;
0x0005dda0 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0005dda4 addiu sp, sp, 0x28 |
0x0005dda8 jr ra | return v0;
| }
0x0005ddac move v0, zero | v0 = 0;
0x0005ddb0 jr ra | return v0;
| label_0:
0x0005ddb4 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
0x0005ddb8 lw ra, 0x24(sp) | ra = *(var_24h);
0x0005ddbc lw s1, 0x20(sp) | s1 = *(var_20h);
0x0005ddc0 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0005ddc4 addiu t9, t9, -0x2cdc | t9 += -0x2cdc;
0x0005ddc8 addiu sp, sp, 0x28 |
0x0005ddcc b 0x5d324 | return void (*0x5d324)() ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x5d568 */
| #include <stdint.h>
|
; (fcn) sym.xmlListReverseSearch () | void xmlListReverseSearch () {
0x0005d568 lui gp, 0x13 |
0x0005d56c addiu gp, gp, 0x4108 |
0x0005d570 addu gp, gp, t9 | gp += t9;
0x0005d574 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
| if (a0 != 0) {
0x0005d578 beqz a0, 0x5d5b4 |
0x0005d57c addiu sp, sp, -0x20 |
0x0005d580 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0005d584 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x0005d588 addiu t9, t9, -0x2e90 | t9 += -0x2e90;
0x0005d58c bal 0x5d170 | fcn_0005d170 ();
0x0005d590 nop |
0x0005d594 lw ra, 0x1c(sp) | ra = *(var_1ch);
| if (v0 != 0) {
0x0005d598 beqz v0, 0x5d5a8 |
0x0005d59c lw v0, 8(v0) | v0 = *((v0 + 2));
0x0005d5a0 addiu sp, sp, 0x20 |
0x0005d5a4 jr ra | return v0;
| }
0x0005d5a8 move v0, zero | v0 = 0;
0x0005d5ac addiu sp, sp, 0x20 |
0x0005d5b0 jr ra | return v0;
| }
0x0005d5b4 move v0, zero | v0 = 0;
0x0005d5b8 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x5dde8 */
| #include <stdint.h>
|
; (fcn) sym.xmlListReverse () | void xmlListReverse () {
| if (a0 == 0) {
0x0005dde8 beqz a0, 0x5de30 | goto label_0;
| }
0x0005ddec nop |
0x0005ddf0 lw a1, (a0) | a1 = *(a0);
0x0005ddf4 lw v0, (a1) | v0 = *(a1);
0x0005ddf8 move v1, a1 | v1 = a1;
| if (a1 == v0) {
0x0005ddfc beq a1, v0, 0x5de38 | goto label_1;
| }
0x0005de00 lw a0, 4(v1) | a0 = *((v1 + 1));
0x0005de04 b 0x5de10 |
| while (a1 != a0) {
0x0005de08 move v0, a0 | v0 = a0;
0x0005de0c lw a0, 4(v1) | a0 = *((v1 + 1));
0x0005de10 sw v0, 4(v1) | *((v1 + 1)) = v0;
0x0005de14 sw a0, (v1) | *(v1) = a0;
0x0005de18 lw a0, (v0) | a0 = *(v0);
0x0005de1c move v1, v0 | v1 = v0;
0x0005de20 bne a1, a0, 0x5de08 |
| }
| do {
0x0005de24 lw v1, 4(v0) | v1 = *((v0 + 1));
0x0005de28 sw a0, 4(v0) | *((v0 + 1)) = a0;
0x0005de2c sw v1, (v0) | *(v0) = v1;
| label_0:
0x0005de30 jr ra | return v1;
0x0005de34 nop |
| label_1:
0x0005de38 move a0, v0 | a0 = v0;
0x0005de3c b 0x5de24 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x5ded0 */
| #include <stdint.h>
|
; (fcn) sym.xmlListReverseWalk () | void xmlListReverseWalk () {
| if (a0 == 0) {
0x0005ded0 beqz a0, 0x5df58 | goto label_0;
| }
0x0005ded4 nop |
| if (a1 == 0) {
0x0005ded8 beqz a1, 0x5df58 | goto label_0;
| }
0x0005dedc nop |
0x0005dee0 lw v0, (a0) | v0 = *(a0);
0x0005dee4 addiu sp, sp, -0x30 |
0x0005dee8 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x0005deec lw s0, 4(v0) | s0 = *((v0 + 1));
0x0005def0 sw s3, 0x28(sp) | *(var_28h) = s3;
0x0005def4 sw s2, 0x24(sp) | *(var_24h) = s2;
0x0005def8 sw s1, 0x20(sp) | *(var_20h) = s1;
0x0005defc sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0005df00 move s3, a2 | s3 = a2;
0x0005df04 move s2, a1 | s2 = a1;
0x0005df08 move s1, a0 | s1 = a0;
| if (v0 != s0) {
0x0005df0c bne v0, s0, 0x5df24 | goto label_1;
| }
0x0005df10 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0005df14 b 0x5df40 | goto label_2;
| do {
0x0005df18 lw v0, (s1) | v0 = *(s1);
0x0005df1c lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (s0 == v0) {
0x0005df20 beq s0, v0, 0x5df40 | goto label_2;
| }
| label_1:
0x0005df24 lw a0, 8(s0) | a0 = *((s0 + 2));
0x0005df28 move t9, s2 | t9 = s2;
0x0005df2c move a1, s3 | a1 = s3;
0x0005df30 jalr t9 | t9 ();
0x0005df34 lw s0, 4(s0) | s0 = *((s0 + 1));
0x0005df38 bnel v0, zero, 0x5df18 |
| } while (v0 == 0);
0x0005df3c lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_2:
0x0005df40 lw s3, 0x28(sp) | s3 = *(var_28h);
0x0005df44 lw s2, 0x24(sp) | s2 = *(var_24h);
0x0005df48 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0005df4c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0005df50 addiu sp, sp, 0x30 |
0x0005df54 jr ra | return v0;
| label_0:
0x0005df58 jr ra | return v0;
0x0005df5c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x5ded0 */
| #include <stdint.h>
|
; (fcn) sym.xmlListReverseWalk () | void xmlListReverseWalk () {
| if (a0 == 0) {
0x0005ded0 beqz a0, 0x5df58 | goto label_0;
| }
0x0005ded4 nop |
| if (a1 == 0) {
0x0005ded8 beqz a1, 0x5df58 | goto label_0;
| }
0x0005dedc nop |
0x0005dee0 lw v0, (a0) | v0 = *(a0);
0x0005dee4 addiu sp, sp, -0x30 |
0x0005dee8 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x0005deec lw s0, 4(v0) | s0 = *((v0 + 1));
0x0005def0 sw s3, 0x28(sp) | *(var_28h) = s3;
0x0005def4 sw s2, 0x24(sp) | *(var_24h) = s2;
0x0005def8 sw s1, 0x20(sp) | *(var_20h) = s1;
0x0005defc sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0005df00 move s3, a2 | s3 = a2;
0x0005df04 move s2, a1 | s2 = a1;
0x0005df08 move s1, a0 | s1 = a0;
| if (v0 != s0) {
0x0005df0c bne v0, s0, 0x5df24 | goto label_1;
| }
0x0005df10 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0005df14 b 0x5df40 | goto label_2;
| do {
0x0005df18 lw v0, (s1) | v0 = *(s1);
0x0005df1c lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (s0 == v0) {
0x0005df20 beq s0, v0, 0x5df40 | goto label_2;
| }
| label_1:
0x0005df24 lw a0, 8(s0) | a0 = *((s0 + 2));
0x0005df28 move t9, s2 | t9 = s2;
0x0005df2c move a1, s3 | a1 = s3;
0x0005df30 jalr t9 | t9 ();
0x0005df34 lw s0, 4(s0) | s0 = *((s0 + 1));
0x0005df38 bnel v0, zero, 0x5df18 |
| } while (v0 == 0);
0x0005df3c lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_2:
0x0005df40 lw s3, 0x28(sp) | s3 = *(var_28h);
0x0005df44 lw s2, 0x24(sp) | s2 = *(var_24h);
0x0005df48 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0005df4c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0005df50 addiu sp, sp, 0x30 |
0x0005df54 jr ra | return v0;
| label_0:
0x0005df58 jr ra | return v0;
0x0005df5c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x5e044 */
| #include <stdint.h>
|
; (fcn) sym.xmlListSort () | void xmlListSort () {
0x0005e044 lui gp, 0x13 |
0x0005e048 addiu gp, gp, 0x362c |
0x0005e04c addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x0005e050 beqz a0, 0x5e0ec | goto label_0;
| }
0x0005e054 nop |
0x0005e058 lw v1, (a0) | v1 = *(a0);
0x0005e05c addiu sp, sp, -0x28 |
0x0005e060 lw a1, (v1) | a1 = *(v1);
0x0005e064 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0005e068 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x0005e06c sw ra, 0x24(sp) | *(var_24h) = ra;
0x0005e070 sw s1, 0x20(sp) | *(var_20h) = s1;
0x0005e074 move s0, a0 | s0 = a0;
0x0005e078 bne v1, a1, 0x5e090 |
| while (v0 == 0) {
0x0005e07c lw ra, 0x24(sp) | ra = *(var_24h);
0x0005e080 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0005e084 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0005e088 addiu sp, sp, 0x28 |
0x0005e08c jr ra | return v0;
0x0005e090 lw t9, -0x7b0c(gp) | t9 = *(gp);
0x0005e094 bal 0x5dfb4 | sym_xmlListDup ();
0x0005e098 nop |
0x0005e09c move s1, v0 | s1 = v0;
0x0005e0a0 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005e0a4 beqz v0, 0x5e07c |
| }
0x0005e0a8 lw t9, -0x7b18(gp) | t9 = *(gp);
0x0005e0ac move a0, s0 | a0 = s0;
0x0005e0b0 bal 0x5d904 | sym_xmlListClear ();
0x0005e0b4 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005e0b8 move a0, s0 | a0 = s0;
0x0005e0bc lw t9, -0x7b08(gp) | t9 = *((gp - 7874));
0x0005e0c0 move a1, s1 | a1 = s1;
0x0005e0c4 bal 0x5df60 | sym_xmlListMerge ();
0x0005e0c8 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005e0cc lw ra, 0x24(sp) | ra = *(var_24h);
0x0005e0d0 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0005e0d4 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
0x0005e0d8 move a0, s1 | a0 = s1;
0x0005e0dc lw s1, 0x20(sp) | s1 = *(var_20h);
0x0005e0e0 addiu t9, t9, -0x2658 | t9 += -0x2658;
0x0005e0e4 addiu sp, sp, 0x28 |
0x0005e0e8 b 0x5d9a8 | void (*0x5d9a8)() ();
| label_0:
0x0005e0ec jr ra | return v0;
0x0005e0f0 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x23674 */
| #include <stdint.h>
|
; (fcn) sym.xmlNewCharEncodingHandler () | void xmlNewCharEncodingHandler () {
0x00023674 lui gp, 0x17 |
0x00023678 addiu gp, gp, -0x2004 |
0x0002367c addu gp, gp, t9 | gp += t9;
0x00023680 addiu sp, sp, -0x238 |
0x00023684 lw t9, -0x7f70(gp) | t9 = *(gp);
0x00023688 sw s0, 0x220(sp) | *(var_18h) = s0;
0x0002368c lw s0, -0x7000(gp) | s0 = *((gp - 7168));
0x00023690 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00023694 sw s4, 0x230(sp) | *(var_28h) = s4;
0x00023698 lw v0, (s0) | v0 = *(s0);
0x0002369c sw s2, 0x228(sp) | *(var_20h) = s2;
0x000236a0 sw s1, 0x224(sp) | *(var_224h) = s1;
0x000236a4 sw ra, 0x234(sp) | *(var_2ch) = ra;
0x000236a8 sw s3, 0x22c(sp) | *(var_24h) = s3;
0x000236ac sw v0, 0x21c(sp) | *(var_21ch) = v0;
0x000236b0 move s4, a0 | s4 = a0;
0x000236b4 move s1, a1 | s1 = a1;
0x000236b8 move s2, a2 | s2 = a2;
0x000236bc bal 0x22a84 | sym_xmlGetEncodingAlias ();
0x000236c0 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x000236c4 beqz v0, 0x237b4 | goto label_2;
| }
0x000236c8 move s3, v0 | s3 = v0;
0x000236cc lw t9, -0x6f14(gp) | t9 = *((gp - 7109));
| label_0:
0x000236d0 jalr t9 | t9 ();
0x000236d4 nop |
0x000236d8 addiu a0, sp, 0x28 | a0 = sp + 0x28;
0x000236dc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000236e0 lw a2, (v0) | a2 = *(v0);
0x000236e4 move a1, a0 | a1 = a0;
0x000236e8 move v1, zero | v1 = 0;
0x000236ec addiu a3, zero, 0x1f3 | a3 = 0x1f3;
0x000236f0 b 0x23700 |
| while (v0 != 0) {
0x000236f4 addiu v1, v1, 1 | v1++;
0x000236f8 addiu a1, a1, 1 | a1++;
| if (v1 == a3) {
0x000236fc beq v1, a3, 0x2371c | goto label_3;
| }
0x00023700 addu v0, s3, v1 | v0 = s3 + v1;
0x00023704 lb v0, (v0) | v0 = *(v0);
0x00023708 sll v0, v0, 2 | v0 <<= 2;
0x0002370c lwx v0, v0(a2) | __asm ("lwx v0, v0(a2)");
0x00023710 seb v0, v0 | __asm ("seb v0, v0");
0x00023714 sb v0, (a1) | *(a1) = v0;
0x00023718 bnez v0, 0x236f4 |
| }
| label_3:
0x0002371c addiu v0, sp, 0x220 | v0 = sp + aav.0x00000220;
0x00023720 addu v1, v0, v1 | v1 = v0 + v1;
0x00023724 lw v0, -0x6e34(gp) | v0 = *(gp);
0x00023728 sb zero, -0x1f8(v1) | *(v1) = 0;
0x0002372c lw t9, (v0) | t9 = *(v0);
0x00023730 jalr t9 | t9 ();
0x00023734 nop |
0x00023738 move s3, v0 | s3 = v0;
0x0002373c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00023740 beqz v0, 0x23834 | goto label_4;
| }
0x00023744 lw v0, -0x716c(gp) | v0 = *(gp);
0x00023748 lw t9, (v0) | t9 = *(v0);
0x0002374c addiu a0, zero, 0x14 | a0 = 0x14;
0x00023750 jalr t9 | t9 ();
0x00023754 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00023758 beqz v0, 0x237c4 | goto label_5;
| }
0x0002375c lw t9, -0x7f68(gp) | t9 = *((gp - 8154));
0x00023760 sw s1, 4(v0) | *((v0 + 1)) = s1;
0x00023764 sw s2, 8(v0) | *((v0 + 2)) = s2;
0x00023768 sw s3, (v0) | *(v0) = s3;
0x0002376c sw zero, 0xc(v0) | *((v0 + 3)) = 0;
0x00023770 sw zero, 0x10(v0) | *((v0 + 4)) = 0;
0x00023774 move a0, v0 | a0 = v0;
0x00023778 sw v0, 0x24(sp) | *(var_24h_3) = v0;
0x0002377c bal 0x23598 | sym_xmlRegisterCharEncodingHandler ();
0x00023780 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00023784 lw v0, 0x24(sp) | v0 = *(var_24h_3);
| do {
| label_1:
0x00023788 lw a0, 0x21c(sp) | a0 = *(var_21ch);
0x0002378c lw v1, (s0) | v1 = *(s0);
0x00023790 lw ra, 0x234(sp) | ra = *(var_2ch);
| if (a0 != v1) {
0x00023794 bne a0, v1, 0x23864 | goto label_6;
| }
0x00023798 lw s4, 0x230(sp) | s4 = *(var_28h);
0x0002379c lw s3, 0x22c(sp) | s3 = *(var_24h);
0x000237a0 lw s2, 0x228(sp) | s2 = *(var_20h);
0x000237a4 lw s1, 0x224(sp) | s1 = *(var_224h);
0x000237a8 lw s0, 0x220(sp) | s0 = *(var_18h);
0x000237ac addiu sp, sp, 0x238 |
0x000237b0 jr ra | return v0;
| label_2:
0x000237b4 move s3, s4 | s3 = s4;
| if (s4 == 0) {
0x000237b8 beqz s4, 0x2380c | goto label_7;
| }
0x000237bc lw t9, -0x6f14(gp) | t9 = *((gp - 7109));
0x000237c0 b 0x236d0 | goto label_0;
| label_5:
0x000237c4 lw v1, -0x7158(gp) | v1 = *(gp);
0x000237c8 sw v0, 0x24(sp) | *(var_24h_3) = v0;
0x000237cc lw t9, (v1) | t9 = *(v1);
0x000237d0 move a0, s3 | a0 = s3;
0x000237d4 jalr t9 | t9 ();
0x000237d8 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000237dc move a3, zero | a3 = 0;
0x000237e0 move a2, zero | a2 = 0;
0x000237e4 lw v1, -0x7fd4(gp) | v1 = *(gp);
0x000237e8 lw t9, -0x6db8(gp) | t9 = *((gp - 7022));
0x000237ec addiu v1, v1, 0x632c | v1 += 0x632c;
0x000237f0 sw v1, 0x10(sp) | *(var_10h_2) = v1;
0x000237f4 addiu a1, zero, 2 | a1 = 2;
0x000237f8 addiu a0, zero, 0x1b | a0 = 0x1b;
0x000237fc jalr t9 | t9 ();
0x00023800 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00023804 lw v0, 0x24(sp) | v0 = *(var_24h_3);
0x00023808 b 0x23788 |
| } while (1);
| label_7:
0x0002380c lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00023810 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00023814 move a2, zero | a2 = 0;
0x00023818 addiu a1, a1, 0x6304 | a1 += 0x6304;
0x0002381c addiu t9, t9, 0x2408 | t9 += 0x2408;
0x00023820 addiu a0, zero, 0x1770 | a0 = aav.0x00001770;
0x00023824 bal 0x22408 | fcn_00022408 ();
0x00023828 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0002382c move v0, zero | v0 = 0;
0x00023830 b 0x23788 | goto label_1;
| label_4:
0x00023834 lw v0, -0x7fd4(gp) | v0 = *(gp);
0x00023838 lw t9, -0x6db8(gp) | t9 = *((gp - 7022));
0x0002383c addiu v0, v0, 0x632c | v0 += 0x632c;
0x00023840 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00023844 move a3, zero | a3 = 0;
0x00023848 move a2, zero | a2 = 0;
0x0002384c addiu a1, zero, 2 | a1 = 2;
0x00023850 addiu a0, zero, 0x1b | a0 = 0x1b;
0x00023854 jalr t9 | t9 ();
0x00023858 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0002385c move v0, zero | v0 = 0;
0x00023860 b 0x23788 | goto label_1;
| label_6:
0x00023864 lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x00023868 jalr t9 | t9 ();
0x0002386c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x61f7c */
| #include <stdint.h>
|
; (fcn) sym.xmlOutputBufferFlush () | void xmlOutputBufferFlush () {
0x00061f7c lui gp, 0x13 |
0x00061f80 addiu gp, gp, -0x90c |
0x00061f84 addu gp, gp, t9 | gp += t9;
0x00061f88 addiu sp, sp, -0x30 |
0x00061f8c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00061f90 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00061f94 sw s3, 0x28(sp) | *(var_28h) = s3;
0x00061f98 sw s2, 0x24(sp) | *(var_24h) = s2;
0x00061f9c sw s1, 0x20(sp) | *(var_20h) = s1;
0x00061fa0 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00061fa4 addiu s1, zero, -1 | s1 = -1;
| if (a0 != 0) {
0x00061fa8 beqz a0, 0x62038 |
0x00061fac lw s1, 0x1c(a0) | s1 = *((a0 + 7));
0x00061fb0 addiu s1, zero, -1 | s1 = -1;
| if (s1 == 0) {
0x00061fb4 bnel s1, zero, 0x62038 | goto label_2;
| }
0x00061fb8 lw v0, 0x14(a0) | v0 = *((a0 + 5));
0x00061fbc move s0, a0 | s0 = a0;
| if (v0 != 0) {
0x00061fc0 beqz v0, 0x61fd0 |
0x00061fc4 lw v0, 0xc(a0) | v0 = *((a0 + 3));
0x00061fc8 lw t9, -0x6e20(gp) | t9 = *((gp - 7048));
| if (v0 != 0) {
0x00061fcc bnez v0, 0x62060 | goto label_4;
| }
| }
0x00061fd0 lw s2, 4(s0) | s2 = *((s0 + 1));
| label_0:
0x00061fd4 lw t9, -0x7f48(gp) | t9 = *(gp);
| if (s2 != 0) {
0x00061fd8 beqz s2, 0x6202c |
0x00061fdc lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x00061fe0 lw s1, (s0) | s1 = *(s0);
0x00061fe4 jalr t9 | t9 ();
0x00061fe8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00061fec lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x00061ff0 lw t9, -0x7f4c(gp) | t9 = *((gp - 8147));
0x00061ff4 move s3, v0 | s3 = v0;
0x00061ff8 jalr t9 | t9 ();
0x00061ffc move a2, v0 | a2 = v0;
0x00062000 move a0, s1 | a0 = s1;
0x00062004 move t9, s2 | t9 = s2;
0x00062008 move a1, s3 | a1 = s3;
0x0006200c jalr t9 | t9 ();
0x00062010 move s1, v0 | s1 = v0;
0x00062014 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00062018 bltz v0, 0x62110 | goto label_5;
| }
0x0006201c lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x00062020 lw t9, -0x7f40(gp) | t9 = *(gp);
0x00062024 move a1, v0 | a1 = v0;
0x00062028 jalr t9 | t9 ();
| }
| label_1:
0x0006202c lw v0, 0x18(s0) | v0 = *((s0 + 6));
| label_3:
0x00062030 addu v0, v0, s1 | v0 += s1;
0x00062034 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
| }
| label_2:
0x00062038 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0006203c move v0, s1 | v0 = s1;
0x00062040 lw s3, 0x28(sp) | s3 = *(var_28h);
0x00062044 lw s2, 0x24(sp) | s2 = *(var_24h);
0x00062048 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0006204c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00062050 addiu sp, sp, 0x30 |
0x00062054 jr ra | return v0;
| do {
0x00062058 lw t9, -0x6e20(gp) | t9 = *((gp - 7048));
| if (v0 == 0) {
0x0006205c beqz v0, 0x620b4 | goto label_6;
| }
| label_4:
0x00062060 move a1, zero | a1 = 0;
0x00062064 move a0, s0 | a0 = s0;
0x00062068 jalr t9 | t9 ();
0x0006206c lw gp, 0x10(sp) | gp = *(var_10h);
0x00062070 bgez v0, 0x62058 |
| } while (v0 >= 0);
0x00062074 lw t9, -0x7100(gp) | t9 = *((gp - 7232));
0x00062078 move a2, zero | a2 = 0;
0x0006207c addiu a1, zero, 0x608 | a1 = aav.0x00000608;
0x00062080 addiu a0, zero, 8 | a0 = 8;
0x00062084 jalr t9 | t9 ();
0x00062088 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0006208c addiu v0, zero, 0x608 | v0 = aav.0x00000608;
0x00062090 addiu s1, zero, -1 | s1 = -1;
0x00062094 sw v0, 0x1c(s0) | *((s0 + 7)) = v0;
0x00062098 lw s3, 0x28(sp) | s3 = *(var_28h);
0x0006209c move v0, s1 | v0 = s1;
0x000620a0 lw s2, 0x24(sp) | s2 = *(var_24h);
0x000620a4 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000620a8 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000620ac addiu sp, sp, 0x30 |
0x000620b0 jr ra | return v0;
| label_6:
0x000620b4 lw a0, 0x14(s0) | a0 = *((s0 + 5));
0x000620b8 lw s2, 4(s0) | s2 = *((s0 + 1));
| if (a0 == 0) {
0x000620bc beqz a0, 0x61fd4 | goto label_0;
| }
0x000620c0 lw v0, 0xc(s0) | v0 = *((s0 + 3));
| if (v0 == 0) {
0x000620c4 beqz v0, 0x61fd4 | goto label_0;
| }
0x000620c8 nop |
0x000620cc lw t9, -0x7f48(gp) | t9 = *(gp);
| if (s2 == 0) {
0x000620d0 beqz s2, 0x6202c | goto label_1;
| }
0x000620d4 lw s1, (s0) | s1 = *(s0);
0x000620d8 jalr t9 | t9 ();
0x000620dc lw gp, 0x10(sp) | gp = *(var_10h);
0x000620e0 lw a0, 0x14(s0) | a0 = *((s0 + 5));
0x000620e4 lw t9, -0x7f4c(gp) | t9 = *((gp - 8147));
0x000620e8 move s3, v0 | s3 = v0;
0x000620ec jalr t9 | t9 ();
0x000620f0 move a2, v0 | a2 = v0;
0x000620f4 move a0, s1 | a0 = s1;
0x000620f8 move t9, s2 | t9 = s2;
0x000620fc move a1, s3 | a1 = s3;
0x00062100 jalr t9 | t9 ();
0x00062104 move s1, v0 | s1 = v0;
0x00062108 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x0006210c bgez v0, 0x62130 |
| label_5:
0x00062110 lw t9, -0x7100(gp) | t9 = *((gp - 7232));
0x00062114 move a2, zero | a2 = 0;
0x00062118 addiu a1, zero, 0x609 | a1 = 0x609;
0x0006211c addiu a0, zero, 8 | a0 = 8;
0x00062120 jalr t9 | t9 ();
0x00062124 addiu v0, zero, 0x609 | v0 = 0x609;
0x00062128 sw v0, 0x1c(s0) | *((s0 + 7)) = v0;
0x0006212c b 0x62038 | goto label_2;
| }
0x00062130 lw a0, 0x14(s0) | a0 = *((s0 + 5));
0x00062134 lw t9, -0x7f40(gp) | t9 = *(gp);
0x00062138 move a1, v0 | a1 = v0;
0x0006213c jalr t9 | t9 ();
0x00062140 lw v0, 0x18(s0) | v0 = *((s0 + 6));
0x00062144 b 0x62030 | goto label_3;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x3b228 */
| #include <stdint.h>
|
; (fcn) sym.xmlParseAttributeListDecl () | void xmlParseAttributeListDecl () {
0x0003b228 lui gp, 0x15 |
0x0003b22c addiu gp, gp, 0x6448 |
0x0003b230 addu gp, gp, t9 | gp += t9;
0x0003b234 addiu sp, sp, -0x88 |
0x0003b238 addiu a1, zero, 0x3c | a1 = 0x3c;
0x0003b23c sw s4, 0x70(sp) | *(var_70h) = s4;
0x0003b240 move s4, a0 | s4 = a0;
0x0003b244 lw a0, 0x24(a0) | a0 = *((a0 + 9));
0x0003b248 sw fp, 0x80(sp) | *(var_80h) = fp;
0x0003b24c lw fp, -0x7000(gp) | fp = *((gp - 7168));
0x0003b250 lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x0003b254 sw gp, 0x20(sp) | *(var_20h) = gp;
0x0003b258 lw a2, (fp) | a2 = *(fp);
0x0003b25c sw ra, 0x84(sp) | *(var_84h) = ra;
0x0003b260 sw s7, 0x7c(sp) | *(var_7ch) = s7;
0x0003b264 sw s6, 0x78(sp) | *(var_78h) = s6;
0x0003b268 sw s5, 0x74(sp) | *(var_74h) = s5;
0x0003b26c sw s3, 0x6c(sp) | *(var_6ch) = s3;
0x0003b270 sw s2, 0x68(sp) | *(var_68h) = s2;
0x0003b274 sw s1, 0x64(sp) | *(var_64h) = s1;
0x0003b278 sw s0, 0x60(sp) | *(var_60h) = s0;
0x0003b27c sw a2, 0x5c(sp) | *(var_5ch) = a2;
0x0003b280 lbu a2, (v0) | a2 = *(v0);
| if (a2 == a1) {
0x0003b284 beql a2, a1, 0x3b2c8 | goto label_24;
| }
0x0003b288 lbu a2, 1(v0) | a2 = *((v0 + 1));
| do {
| label_0:
0x0003b28c lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x0003b290 lw v0, (fp) | v0 = *(fp);
0x0003b294 lw ra, 0x84(sp) | ra = *(var_84h);
| if (a0 != v0) {
0x0003b298 bne a0, v0, 0x3b610 | goto label_25;
| }
0x0003b29c lw fp, 0x80(sp) | fp = *(var_80h);
0x0003b2a0 lw s7, 0x7c(sp) | s7 = *(var_7ch);
0x0003b2a4 lw s6, 0x78(sp) | s6 = *(var_78h);
0x0003b2a8 lw s5, 0x74(sp) | s5 = *(var_74h);
0x0003b2ac lw s4, 0x70(sp) | s4 = *(var_70h);
0x0003b2b0 lw s3, 0x6c(sp) | s3 = *(var_6ch);
0x0003b2b4 lw s2, 0x68(sp) | s2 = *(var_68h);
0x0003b2b8 lw s1, 0x64(sp) | s1 = *(var_64h);
0x0003b2bc lw s0, 0x60(sp) | s0 = *(var_60h);
0x0003b2c0 addiu sp, sp, 0x88 |
0x0003b2c4 jr ra | return v0;
| label_24:
0x0003b2c8 addiu a1, zero, 0x21 | a1 = 0x21;
0x0003b2cc addiu a1, zero, 0x41 | a1 = 0x41;
0x0003b2d0 bne a2, a1, 0x3b28c |
| } while (a2 != a1);
0x0003b2d4 lbu a2, 2(v0) | a2 = *((v0 + 2));
0x0003b2d8 addiu a2, zero, 0x54 | a2 = 0x54;
| if (a2 != a1) {
0x0003b2dc bne a2, a1, 0x3b28c | goto label_0;
| }
0x0003b2e0 lbu a1, 3(v0) | a1 = *((v0 + 3));
| if (a1 != a2) {
0x0003b2e4 bne a1, a2, 0x3b28c | goto label_0;
| }
0x0003b2e8 nop |
0x0003b2ec lbu a2, 4(v0) | a2 = *((v0 + 4));
0x0003b2f0 addiu a1, zero, 0x4c | a1 = 0x4c;
| if (a2 != a1) {
0x0003b2f4 bne a2, a1, 0x3b28c | goto label_0;
| }
0x0003b2f8 lbu a3, 5(v0) | a3 = *((v0 + 5));
0x0003b2fc addiu a1, zero, 0x49 | a1 = 0x49;
| if (a3 != a1) {
0x0003b300 bne a3, a1, 0x3b28c | goto label_0;
| }
0x0003b304 lbu a3, 6(v0) | a3 = *((v0 + 6));
0x0003b308 addiu a1, zero, 0x53 | a1 = 0x53;
| if (a3 != a1) {
0x0003b30c bne a3, a1, 0x3b28c | goto label_0;
| }
0x0003b310 lbu a3, 7(v0) | a3 = *((v0 + 7));
| if (a3 != a1) {
0x0003b314 bne a3, a1, 0x3b28c | goto label_0;
| }
0x0003b318 nop |
0x0003b31c lbu a1, 8(v0) | a1 = *((v0 + 8));
0x0003b320 addiu a3, v0, 9 | a3 = v0 + 9;
| if (a1 != a2) {
0x0003b324 bne a1, a2, 0x3b28c | goto label_0;
| }
0x0003b328 lw a2, 0xc8(s4) | a2 = *((s4 + 50));
0x0003b32c lw a1, 0x20(a0) | a1 = *((a0 + 8));
0x0003b330 addiu a2, a2, 9 | a2 += 9;
0x0003b334 addiu a1, a1, 9 | a1 += 9;
0x0003b338 lw v1, 0x38(a0) | v1 = *((a0 + 14));
0x0003b33c sw a2, 0xc8(s4) | *((s4 + 50)) = a2;
0x0003b340 sw a3, 0x10(a0) | *((a0 + 4)) = a3;
0x0003b344 sw a1, 0x20(a0) | *((a0 + 8)) = a1;
0x0003b348 lbu v0, 9(v0) | v0 = *((v0 + 9));
0x0003b34c sw v1, 0x38(sp) | *(var_38h) = v1;
| if (v0 == 0) {
0x0003b350 beqz v0, 0x3bb44 | goto label_26;
| }
| label_23:
0x0003b354 lw t9, -0x7df4(gp) | t9 = *((gp - 8061));
0x0003b358 move a0, s4 | a0 = s4;
0x0003b35c sw t9, 0x30(sp) | *(var_30h) = t9;
0x0003b360 bal 0x38628 | sym_xmlSkipBlankChars ();
0x0003b364 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003b368 beqz v0, 0x3bb20 | goto label_27;
| }
| label_22:
0x0003b36c lw t9, -0x7e10(gp) | t9 = *(gp);
0x0003b370 move a0, s4 | a0 = s4;
0x0003b374 sw t9, 0x3c(sp) | *(var_3ch) = t9;
0x0003b378 bal 0x31e4c | sym_xmlParseName ();
0x0003b37c move s0, v0 | s0 = v0;
0x0003b380 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003b384 beqz v0, 0x3bafc | goto label_28;
| }
0x0003b388 lw t9, 0x30(sp) | t9 = *(var_30h);
0x0003b38c move a0, s4 | a0 = s4;
0x0003b390 jalr t9 | t9 ();
0x0003b394 lw v0, 0x124(s4) | v0 = *(s4);
0x0003b398 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003b39c beqz v0, 0x3bac4 | goto label_29;
| }
0x0003b3a0 lw v0, 0x24(s4) | v0 = *((s4 + 9));
| label_21:
0x0003b3a4 lw a0, -0x7ea0(gp) | a0 = *((gp - 8104));
| label_20:
0x0003b3a8 addiu v1, a0, -0x17dc | v1 = a0 + -0x17dc;
0x0003b3ac lw a0, -0x7ea0(gp) | a0 = *((gp - 8104));
0x0003b3b0 sw v1, 0x2c(sp) | *(var_2ch) = v1;
0x0003b3b4 addiu v1, a0, -0x3aec | v1 = a0 + -0x3aec;
0x0003b3b8 sw v1, 0x48(sp) | *(var_48h) = v1;
0x0003b3bc lw v1, -0x7f94(gp) | v1 = *((gp - 8165));
0x0003b3c0 sw v1, 0x4c(sp) | *(var_4ch) = v1;
| label_1:
0x0003b3c4 lw a1, 0x10(v0) | a1 = *((v0 + 4));
0x0003b3c8 addiu a2, zero, 0x3e | a2 = 0x3e;
| label_2:
0x0003b3cc lbu a3, (a1) | a3 = *(a1);
0x0003b3d0 move a0, v0 | a0 = v0;
| if (a3 == a2) {
0x0003b3d4 beq a3, a2, 0x3b9d4 | goto label_30;
| }
0x0003b3d8 lw a2, 0xac(s4) | a2 = *((s4 + 43));
0x0003b3dc addiu a0, zero, -1 | a0 = -1;
| if (a2 == a0) {
0x0003b3e0 beq a2, a0, 0x3b28c | goto label_0;
| }
0x0003b3e4 nop |
0x0003b3e8 lw a0, 0x124(s4) | a0 = *(s4);
0x0003b3ec sw zero, 0x54(sp) | *(var_54h) = 0;
| if (a0 == 0) {
0x0003b3f0 bnez a0, 0x3b408 |
0x0003b3f4 lw v0, 0x14(v0) | v0 = *((v0 + 5));
0x0003b3f8 subu v0, v0, a1 | __asm ("subu v0, v0, a1");
0x0003b3fc slti v0, v0, 0xfa | v0 = (v0 < 0xfa) ? 1 : 0;
0x0003b400 lw t9, 0x2c(sp) | t9 = *(var_2ch);
| if (v0 != 0) {
0x0003b404 bnez v0, 0x3b664 | goto label_31;
| }
| }
0x0003b408 lw t9, 0x3c(sp) | t9 = *(var_3ch);
| label_6:
0x0003b40c move a0, s4 | a0 = s4;
0x0003b410 sw zero, 0x50(sp) | *(var_50h) = 0;
0x0003b414 jalr t9 | t9 ();
0x0003b418 move s1, v0 | s1 = v0;
0x0003b41c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003b420 beqz v0, 0x3ba4c | goto label_32;
| }
0x0003b424 lw v0, 0x124(s4) | v0 = *(s4);
0x0003b428 lw t9, 0x30(sp) | t9 = *(var_30h);
| if (v0 == 0) {
0x0003b42c bnez v0, 0x3b44c |
0x0003b430 lw a0, 0x24(s4) | a0 = *((s4 + 9));
0x0003b434 lw v0, 0x14(a0) | v0 = *((a0 + 5));
0x0003b438 lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x0003b43c subu v0, v0, a0 | __asm ("subu v0, v0, a0");
0x0003b440 slti v0, v0, 0xfa | v0 = (v0 < 0xfa) ? 1 : 0;
0x0003b444 lw t9, 0x2c(sp) | t9 = *(var_2ch);
| if (v0 == 0) {
0x0003b448 bnel v0, zero, 0x3b6c8 | goto label_33;
| }
| }
| label_9:
0x0003b44c move a0, s4 | a0 = s4;
0x0003b450 jalr t9 | t9 ();
0x0003b454 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003b458 beqz v0, 0x3ba70 | goto label_34;
| }
0x0003b45c lw t9, -0x7d80(gp) | t9 = *((gp - 8032));
0x0003b460 addiu a1, sp, 0x50 | a1 = sp + 0x50;
0x0003b464 move a0, s4 | a0 = s4;
0x0003b468 bal 0x3ad8c | sym_xmlParseAttributeType ();
0x0003b46c move s5, v0 | s5 = v0;
0x0003b470 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 <= 0) {
0x0003b474 blez v0, 0x3b9bc | goto label_15;
| }
0x0003b478 lw v0, 0x124(s4) | v0 = *(s4);
0x0003b47c lw t9, 0x30(sp) | t9 = *(var_30h);
| if (v0 == 0) {
0x0003b480 bnez v0, 0x3b4a0 |
0x0003b484 lw a0, 0x24(s4) | a0 = *((s4 + 9));
0x0003b488 lw v0, 0x14(a0) | v0 = *((a0 + 5));
0x0003b48c lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x0003b490 subu v0, v0, a0 | __asm ("subu v0, v0, a0");
0x0003b494 slti v0, v0, 0xfa | v0 = (v0 < 0xfa) ? 1 : 0;
0x0003b498 lw t9, 0x2c(sp) | t9 = *(var_2ch);
| if (v0 == 0) {
0x0003b49c bnel v0, zero, 0x3b674 | goto label_35;
| }
| }
| label_7:
0x0003b4a0 move a0, s4 | a0 = s4;
0x0003b4a4 jalr t9 | t9 ();
0x0003b4a8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003b4ac beqz v0, 0x3ba94 | goto label_36;
| }
0x0003b4b0 lw t9, -0x7d7c(gp) | t9 = *(gp);
0x0003b4b4 addiu a1, sp, 0x54 | a1 = sp + 0x54;
0x0003b4b8 move a0, s4 | a0 = s4;
0x0003b4bc bal 0x3a310 | sym_xmlParseDefaultDecl ();
0x0003b4c0 move s2, v0 | s2 = v0;
0x0003b4c4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 <= 0) {
0x0003b4c8 blez v0, 0x3ba80 | goto label_37;
| }
0x0003b4cc addiu v0, zero, 1 | v0 = 1;
0x0003b4d0 lw a1, 0x54(sp) | a1 = *(var_54h);
| if (s5 != v0) {
0x0003b4d4 beq s5, v0, 0x3b4ec |
0x0003b4d8 lw t9, 0x48(sp) | t9 = *(var_48h);
| if (a1 == 0) {
0x0003b4dc beqz a1, 0x3b4ec | goto label_38;
| }
0x0003b4e0 move a0, a1 | a0 = a1;
0x0003b4e4 jalr t9 | t9 ();
0x0003b4e8 lw gp, 0x20(sp) | gp = *(var_20h);
| }
| label_38:
0x0003b4ec lw v0, 0x124(s4) | v0 = *(s4);
0x0003b4f0 lw v0, 0x24(s4) | v0 = *((s4 + 9));
| if (v0 == 0) {
0x0003b4f4 beqz v0, 0x3b634 | goto label_39;
| }
| label_5:
0x0003b4f8 lw a0, 0x10(v0) | a0 = *((v0 + 4));
| label_4:
0x0003b4fc addiu v0, zero, 0x3e | v0 = 0x3e;
0x0003b500 lbu a0, (a0) | a0 = *(a0);
| if (a0 != v0) {
0x0003b504 beql a0, v0, 0x3b524 |
0x0003b508 lw a0, (s4) | a0 = *(s4);
0x0003b50c lw t9, 0x30(sp) | t9 = *(var_30h);
0x0003b510 move a0, s4 | a0 = s4;
0x0003b514 jalr t9 | t9 ();
0x0003b518 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003b51c beqz v0, 0x3b964 | goto label_40;
| }
0x0003b520 lw a0, (s4) | a0 = *(s4);
| }
0x0003b524 lw v0, 0x50(sp) | v0 = *(var_50h);
| if (a0 == 0) {
0x0003b528 beqz a0, 0x3b61c | goto label_41;
| }
0x0003b52c lw a1, 0xd4(s4) | a1 = *((s4 + 53));
| if (a1 != 0) {
0x0003b530 bnez a1, 0x3b61c | goto label_41;
| }
0x0003b534 nop |
0x0003b538 lw t9, 0x20(a0) | t9 = *((a0 + 8));
0x0003b53c move a3, s5 | a3 = s5;
| if (t9 == 0) {
0x0003b540 beqz t9, 0x3b61c | goto label_41;
| }
0x0003b544 lw a0, 4(s4) | a0 = *((s4 + 1));
0x0003b548 sw v0, 0x18(sp) | *(var_18h) = v0;
0x0003b54c lw v0, 0x54(sp) | v0 = *(var_54h);
0x0003b550 sw s2, 0x10(sp) | *(var_10h) = s2;
0x0003b554 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0003b558 move a2, s1 | a2 = s1;
0x0003b55c move a1, s0 | a1 = s0;
0x0003b560 jalr t9 | t9 ();
0x0003b564 lw gp, 0x20(sp) | gp = *(var_20h);
| label_3:
0x0003b568 lw v0, 0x144(s4) | v0 = *(s4);
0x0003b56c lw a0, 0x54(sp) | a0 = *(var_54h);
| if (v0 != 0) {
0x0003b570 beqz v0, 0x3b5bc |
0x0003b574 lw v0, 0x54(sp) | v0 = *(var_54h);
0x0003b578 sw v0, 0x34(sp) | *(var_34h) = v0;
| if (v0 == 0) {
0x0003b57c beqz v0, 0x3b684 | goto label_42;
| }
0x0003b580 addiu v0, s2, -2 | v0 = s2 + -2;
0x0003b584 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x0003b588 lw a0, 0x160(s4) | a0 = *(s4);
| if (v0 != 0) {
0x0003b58c bnez v0, 0x3b688 | goto label_43;
| }
0x0003b590 lw t9, -0x7d78(gp) | t9 = *((gp - 8030));
| if (a0 == 0) {
0x0003b594 beqz a0, 0x3b6d8 | goto label_44;
| }
0x0003b598 move a2, s1 | a2 = s1;
0x0003b59c move a1, s0 | a1 = s0;
0x0003b5a0 jalr t9 | t9 ();
0x0003b5a4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003b5a8 beqz v0, 0x3b6d8 | goto label_44;
| }
| label_10:
0x0003b5ac lw v0, 0x144(s4) | v0 = *(s4);
0x0003b5b0 lw a0, 0x160(s4) | a0 = *(s4);
| if (v0 == 0) {
0x0003b5b4 bnel v0, zero, 0x3b688 | goto label_43;
| }
| label_8:
0x0003b5b8 lw a0, 0x54(sp) | a0 = *(var_54h);
| }
0x0003b5bc lw v0, -0x7158(gp) | v0 = *(gp);
| if (a0 != 0) {
0x0003b5c0 beqz a0, 0x3b5d4 |
0x0003b5c4 lw t9, (v0) | t9 = *(v0);
0x0003b5c8 jalr t9 | t9 ();
0x0003b5cc nop |
0x0003b5d0 lw gp, 0x20(sp) | gp = *(var_20h);
| }
0x0003b5d4 lw v0, 0x124(s4) | v0 = *(s4);
0x0003b5d8 lw v0, 0x24(s4) | v0 = *((s4 + 9));
| if (v0 != 0) {
0x0003b5dc bnez v0, 0x3b3c4 | goto label_1;
| }
0x0003b5e0 lw a0, 0x14(v0) | a0 = *((v0 + 5));
0x0003b5e4 lw a1, 0x10(v0) | a1 = *((v0 + 4));
0x0003b5e8 subu a0, a0, a1 | __asm ("subu a0, a0, a1");
0x0003b5ec slti a0, a0, 0xfa | a0 = (a0 < 0xfa) ? 1 : 0;
0x0003b5f0 addiu a2, zero, 0x3e | a2 = 0x3e;
| if (a0 == 0) {
0x0003b5f4 beqz a0, 0x3b3cc | goto label_2;
| }
0x0003b5f8 lw t9, 0x2c(sp) | t9 = *(var_2ch);
0x0003b5fc move a0, s4 | a0 = s4;
0x0003b600 jalr t9 | t9 ();
0x0003b604 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003b608 lw v0, 0x24(s4) | v0 = *((s4 + 9));
0x0003b60c b 0x3b3c4 | goto label_1;
| label_25:
0x0003b610 lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x0003b614 jalr t9 | t9 ();
0x0003b618 nop |
| label_41:
0x0003b61c lw t9, -0x7d90(gp) | t9 = *(gp);
| if (v0 == 0) {
0x0003b620 beqz v0, 0x3b568 | goto label_3;
| }
0x0003b624 move a0, v0 | a0 = v0;
0x0003b628 jalr t9 | t9 ();
0x0003b62c lw gp, 0x20(sp) | gp = *(var_20h);
0x0003b630 b 0x3b568 | goto label_3;
| label_39:
0x0003b634 lw a0, 0x14(v0) | a0 = *((v0 + 5));
0x0003b638 lw a1, 0x10(v0) | a1 = *((v0 + 4));
0x0003b63c subu a0, a0, a1 | __asm ("subu a0, a0, a1");
0x0003b640 slti a0, a0, 0xfa | a0 = (a0 < 0xfa) ? 1 : 0;
| if (a0 == 0) {
0x0003b644 beql a0, zero, 0x3b4fc | goto label_4;
| }
0x0003b648 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x0003b64c lw t9, 0x2c(sp) | t9 = *(var_2ch);
0x0003b650 move a0, s4 | a0 = s4;
0x0003b654 jalr t9 | t9 ();
0x0003b658 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003b65c lw v0, 0x24(s4) | v0 = *((s4 + 9));
0x0003b660 b 0x3b4f8 | goto label_5;
| label_31:
0x0003b664 move a0, s4 | a0 = s4;
0x0003b668 jalr t9 | t9 ();
0x0003b66c lw t9, 0x3c(sp) | t9 = *(var_3ch);
0x0003b670 b 0x3b40c | goto label_6;
| label_35:
0x0003b674 move a0, s4 | a0 = s4;
0x0003b678 jalr t9 | t9 ();
0x0003b67c lw t9, 0x30(sp) | t9 = *(var_30h);
0x0003b680 b 0x3b4a0 | goto label_7;
| label_42:
0x0003b684 lw a0, 0x160(s4) | a0 = *(s4);
| label_43:
0x0003b688 lw t9, -0x7fbc(gp) | t9 = *((gp - 8175));
| if (a0 == 0) {
0x0003b68c beqz a0, 0x3ba18 | goto label_45;
| }
| label_14:
0x0003b690 lw t9, -0x7d78(gp) | t9 = *((gp - 8030));
0x0003b694 move a2, s1 | a2 = s1;
0x0003b698 move a1, s0 | a1 = s0;
0x0003b69c jalr t9 | t9 ();
0x0003b6a0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0003b6a4 bnez v0, 0x3b5b8 | goto label_8;
| }
0x0003b6a8 lw t9, -0x7d74(gp) | t9 = *(gp);
0x0003b6ac lw a0, 0x160(s4) | a0 = *(s4);
0x0003b6b0 move a3, s5 | a3 = s5;
0x0003b6b4 move a2, s1 | a2 = s1;
0x0003b6b8 move a1, s0 | a1 = s0;
0x0003b6bc jalr t9 | t9 ();
0x0003b6c0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003b6c4 b 0x3b5b8 | goto label_8;
| label_33:
0x0003b6c8 move a0, s4 | a0 = s4;
0x0003b6cc jalr t9 | t9 ();
0x0003b6d0 lw t9, 0x30(sp) | t9 = *(var_30h);
0x0003b6d4 b 0x3b44c | goto label_9;
| label_44:
0x0003b6d8 lw v0, 0x15c(s4) | v0 = *(s4);
0x0003b6dc lw t9, -0x7fbc(gp) | t9 = *((gp - 8175));
| if (v0 == 0) {
0x0003b6e0 beqz v0, 0x3b91c | goto label_46;
| }
| label_13:
0x0003b6e4 lw t9, -0x7d70(gp) | t9 = *(gp);
0x0003b6e8 addiu a1, sp, 0x58 | a1 = sp + 0x58;
0x0003b6ec sw a1, 0x40(sp) | *(var_40h) = a1;
0x0003b6f0 sw t9, 0x44(sp) | *(var_44h) = t9;
0x0003b6f4 move a0, s0 | a0 = s0;
0x0003b6f8 bal 0x4be3c | sym_xmlSplitQName3 ();
0x0003b6fc move s3, v0 | s3 = v0;
0x0003b700 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003b704 beqz v0, 0x3b8f8 | goto label_47;
| }
0x0003b708 lw s2, -0x7fd0(gp) | s2 = *(gp);
0x0003b70c lw a0, 0x128(s4) | a0 = *(s4);
0x0003b710 move a1, v0 | a1 = v0;
0x0003b714 move t9, s2 | t9 = s2;
0x0003b718 addiu a2, zero, -1 | a2 = -1;
0x0003b71c jalr t9 | t9 ();
0x0003b720 lw a2, 0x58(sp) | a2 = *(var_58h);
0x0003b724 lw a0, 0x128(s4) | a0 = *(s4);
0x0003b728 move a1, s0 | a1 = s0;
0x0003b72c move t9, s2 | t9 = s2;
0x0003b730 move s6, v0 | s6 = v0;
0x0003b734 jalr t9 | t9 ();
0x0003b738 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003b73c move s3, v0 | s3 = v0;
| label_12:
0x0003b740 lw t9, -0x7d78(gp) | t9 = *((gp - 8030));
0x0003b744 lw a0, 0x15c(s4) | a0 = *(s4);
0x0003b748 move a2, s3 | a2 = s3;
0x0003b74c move a1, s6 | a1 = s6;
0x0003b750 jalr t9 | t9 ();
0x0003b754 move s7, v0 | s7 = v0;
0x0003b758 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003b75c beqz v0, 0x3b8a0 | goto label_48;
| }
0x0003b760 lw v0, 4(v0) | v0 = *((v0 + 1));
0x0003b764 lw a0, (s7) | a0 = *(s7);
0x0003b768 slt a0, a0, v0 | a0 = (a0 < v0) ? 1 : 0;
0x0003b76c lw a1, 0x40(sp) | a1 = *(var_40h);
| if (a0 == 0) {
0x0003b770 bnel a0, zero, 0x3b7d0 | goto label_49;
| }
0x0003b774 addiu a0, zero, 0x28 | a0 = 0x28;
0x0003b778 mul v0, v0, a0 | __asm ("mul v0, v0, a0");
0x0003b77c lw a1, -0x6e24(gp) | a1 = *(gp);
0x0003b780 move a0, s7 | a0 = s7;
0x0003b784 lw t9, (a1) | t9 = *(a1);
0x0003b788 addiu a1, v0, 8 | a1 = v0 + 8;
0x0003b78c jalr t9 | t9 ();
0x0003b790 move s7, v0 | s7 = v0;
0x0003b794 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003b798 beqz v0, 0x3b934 | goto label_50;
| }
0x0003b79c lw v0, 4(v0) | v0 = *((v0 + 1));
0x0003b7a0 lw a0, 0x15c(s4) | a0 = *(s4);
0x0003b7a4 sll v0, v0, 1 | v0 <<= 1;
| do {
0x0003b7a8 lw t9, -0x7d6c(gp) | t9 = *((gp - 8027));
0x0003b7ac sw v0, 4(s7) | *((s7 + 1)) = v0;
0x0003b7b0 move a3, s7 | a3 = s7;
0x0003b7b4 sw zero, 0x10(sp) | *(var_10h) = 0;
0x0003b7b8 move a2, s3 | a2 = s3;
0x0003b7bc move a1, s6 | a1 = s6;
0x0003b7c0 jalr t9 | t9 ();
0x0003b7c4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x0003b7c8 bltz v0, 0x3b94c | goto label_51;
| }
0x0003b7cc lw a1, 0x40(sp) | a1 = *(var_40h);
| label_49:
0x0003b7d0 lw t9, 0x44(sp) | t9 = *(var_44h);
0x0003b7d4 move a0, s1 | a0 = s1;
0x0003b7d8 jalr t9 | t9 ();
0x0003b7dc move s3, v0 | s3 = v0;
0x0003b7e0 lw a0, 0x128(s4) | a0 = *(s4);
| if (v0 == 0) {
0x0003b7e4 beqz v0, 0x3b8dc | goto label_52;
| }
0x0003b7e8 move a1, v0 | a1 = v0;
0x0003b7ec move t9, s2 | t9 = s2;
0x0003b7f0 addiu a2, zero, -1 | a2 = -1;
0x0003b7f4 jalr t9 | t9 ();
0x0003b7f8 lw a2, 0x58(sp) | a2 = *(var_58h);
0x0003b7fc lw a0, 0x128(s4) | a0 = *(s4);
0x0003b800 move a1, s1 | a1 = s1;
0x0003b804 move t9, s2 | t9 = s2;
0x0003b808 move s6, v0 | s6 = v0;
0x0003b80c jalr t9 | t9 ();
0x0003b810 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003b814 move s3, v0 | s3 = v0;
| label_11:
0x0003b818 lw a0, (s7) | a0 = *(s7);
0x0003b81c lw t9, -0x7fcc(gp) | t9 = *((gp - 8179));
0x0003b820 sll v0, a0, 2 | v0 = a0 << 2;
0x0003b824 addu v0, v0, a0 | v0 += a0;
0x0003b828 sll v0, v0, 2 | v0 <<= 2;
0x0003b82c addu v0, s7, v0 | v0 = s7 + v0;
0x0003b830 lw a0, 0x34(sp) | a0 = *(var_34h);
0x0003b834 sw s6, 8(v0) | *((v0 + 2)) = s6;
0x0003b838 sw s3, 0xc(v0) | *((v0 + 3)) = s3;
0x0003b83c jalr t9 | t9 ();
0x0003b840 lw a0, 0x128(s4) | a0 = *(s4);
0x0003b844 lw a1, 0x34(sp) | a1 = *(var_34h);
0x0003b848 move a2, v0 | a2 = v0;
0x0003b84c move t9, s2 | t9 = s2;
0x0003b850 sw v0, 0x58(sp) | *(var_58h) = v0;
0x0003b854 jalr t9 | t9 ();
0x0003b858 lw a1, (s7) | a1 = *(s7);
0x0003b85c lw a2, 0x58(sp) | a2 = *(var_58h);
0x0003b860 sll a0, a1, 2 | a0 = a1 << 2;
0x0003b864 addu a0, a0, a1 | a0 += a1;
0x0003b868 sll a0, a0, 2 | a0 <<= 2;
0x0003b86c addu a0, s7, a0 | a0 = s7 + a0;
0x0003b870 lw a3, 0x60(s4) | a3 = *((s4 + 24));
0x0003b874 addu a2, v0, a2 | a2 = v0 + a2;
0x0003b878 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003b87c sw v0, 0x10(a0) | *((a0 + 4)) = v0;
0x0003b880 sw a2, 0x14(a0) | *((a0 + 5)) = a2;
| if (a3 == 0) {
0x0003b884 beqz a3, 0x3b8cc | goto label_53;
| }
0x0003b888 lw v0, 0x4c(sp) | v0 = *(var_4ch);
0x0003b88c addiu a1, a1, 1 | a1++;
0x0003b890 addiu v0, v0, -0x7ba0 | v0 += -0x7ba0;
0x0003b894 sw v0, 0x18(a0) | *((a0 + 6)) = v0;
0x0003b898 sw a1, (s7) | *(s7) = a1;
0x0003b89c b 0x3b5ac | goto label_10;
| label_48:
0x0003b8a0 lw v0, -0x716c(gp) | v0 = *(gp);
0x0003b8a4 lw t9, (v0) | t9 = *(v0);
0x0003b8a8 addiu a0, zero, 0x58 | a0 = 0x58;
0x0003b8ac jalr t9 | t9 ();
0x0003b8b0 move s7, v0 | s7 = v0;
0x0003b8b4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0003b8b8 beqz v0, 0x3b934 | goto label_50;
| }
0x0003b8bc lw a0, 0x15c(s4) | a0 = *(s4);
0x0003b8c0 sw zero, (v0) | *(v0) = 0;
0x0003b8c4 addiu v0, zero, 4 | v0 = 4;
0x0003b8c8 b 0x3b7a8 |
| } while (1);
| label_53:
0x0003b8cc addiu a1, a1, 1 | a1++;
0x0003b8d0 sw zero, 0x18(a0) | *((a0 + 6)) = 0;
0x0003b8d4 sw a1, (s7) | *(s7) = a1;
0x0003b8d8 b 0x3b5ac | goto label_10;
| label_52:
0x0003b8dc addiu a2, zero, -1 | a2 = -1;
0x0003b8e0 move t9, s2 | t9 = s2;
0x0003b8e4 move a1, s1 | a1 = s1;
0x0003b8e8 jalr t9 | t9 ();
0x0003b8ec move s6, v0 | s6 = v0;
0x0003b8f0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003b8f4 b 0x3b818 | goto label_11;
| label_47:
0x0003b8f8 lw s2, -0x7fd0(gp) | s2 = *(gp);
0x0003b8fc lw a0, 0x128(s4) | a0 = *(s4);
0x0003b900 addiu a2, zero, -1 | a2 = -1;
0x0003b904 move t9, s2 | t9 = s2;
0x0003b908 move a1, s0 | a1 = s0;
0x0003b90c jalr t9 | t9 ();
0x0003b910 move s6, v0 | s6 = v0;
0x0003b914 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003b918 b 0x3b740 | goto label_12;
| label_46:
0x0003b91c lw a1, 0x128(s4) | a1 = *(s4);
0x0003b920 addiu a0, zero, 0xa | a0 = 0xa;
0x0003b924 bal 0x5b7d0 | sym_xmlHashCreateDict ();
0x0003b928 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003b92c sw v0, 0x15c(s4) | *(s4) = v0;
| if (v0 != 0) {
0x0003b930 bnez v0, 0x3b6e4 | goto label_13;
| }
| do {
| label_50:
0x0003b934 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x0003b938 move a1, zero | a1 = 0;
0x0003b93c move a0, s4 | a0 = s4;
0x0003b940 bal 0x2807c | sym_xmlErrMemory ();
0x0003b944 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003b948 b 0x3b5ac | goto label_10;
| label_51:
0x0003b94c lw v0, -0x7158(gp) | v0 = *(gp);
0x0003b950 lw t9, (v0) | t9 = *(v0);
0x0003b954 move a0, s7 | a0 = s7;
0x0003b958 jalr t9 | t9 ();
0x0003b95c lw gp, 0x20(sp) | gp = *(var_20h);
0x0003b960 b 0x3b934 |
| } while (1);
| label_40:
0x0003b964 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0003b968 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x0003b96c move a0, s4 | a0 = s4;
0x0003b970 addiu a2, a2, -0x7bd4 | a2 += -0x7bd4;
0x0003b974 addiu t9, t9, -0x345c | t9 += -0x345c;
0x0003b978 addiu a1, zero, 0x41 | a1 = 0x41;
0x0003b97c bal 0x2cba4 | fcn_0002cba4 ();
0x0003b980 lw a0, 0x54(sp) | a0 = *(var_54h);
0x0003b984 lw gp, 0x20(sp) | gp = *(var_20h);
| if (a0 != 0) {
0x0003b988 beqz a0, 0x3b9a0 |
0x0003b98c lw v0, -0x7158(gp) | v0 = *(gp);
| label_16:
0x0003b990 lw t9, (v0) | t9 = *(v0);
0x0003b994 jalr t9 | t9 ();
0x0003b998 nop |
0x0003b99c lw gp, 0x20(sp) | gp = *(var_20h);
| }
0x0003b9a0 lw a0, 0x50(sp) | a0 = *(var_50h);
| if (a0 != 0) {
| label_17:
0x0003b9a4 beql a0, zero, 0x3b9c0 |
0x0003b9a8 lw a0, 0x24(s4) | a0 = *((s4 + 9));
| label_18:
0x0003b9ac lw t9, -0x7d90(gp) | t9 = *(gp);
0x0003b9b0 jalr t9 | t9 ();
0x0003b9b4 nop |
0x0003b9b8 lw gp, 0x20(sp) | gp = *(var_20h);
| label_15:
0x0003b9bc lw a0, 0x24(s4) | a0 = *((s4 + 9));
| }
| label_19:
0x0003b9c0 addiu v0, zero, 0x3e | v0 = 0x3e;
0x0003b9c4 lw a1, 0x10(a0) | a1 = *((a0 + 4));
0x0003b9c8 lbu a1, (a1) | a1 = *(a1);
| if (a1 != v0) {
0x0003b9cc bne a1, v0, 0x3b28c | goto label_0;
| }
0x0003b9d0 nop |
| label_30:
0x0003b9d4 lw v0, 0x38(a0) | v0 = *((a0 + 14));
0x0003b9d8 lw v1, 0x38(sp) | v1 = *(var_38h);
0x0003b9dc lw t9, -0x7e30(gp) | t9 = *((gp - 8076));
| if (v0 != v1) {
0x0003b9e0 beq v0, v1, 0x3ba08 |
0x0003b9e4 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0003b9e8 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x0003b9ec addiu a2, a2, -0x7b94 | a2 += -0x7b94;
0x0003b9f0 addiu a1, zero, 0x5a | a1 = 0x5a;
0x0003b9f4 addiu t9, t9, -0x345c | t9 += -0x345c;
0x0003b9f8 move a0, s4 | a0 = s4;
0x0003b9fc bal 0x2cba4 | fcn_0002cba4 ();
0x0003ba00 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ba04 lw t9, -0x7e30(gp) | t9 = *((gp - 8076));
| }
0x0003ba08 move a0, s4 | a0 = s4;
0x0003ba0c bal 0x28648 | sym_xmlNextChar ();
0x0003ba10 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ba14 b 0x3b28c | goto label_0;
| label_45:
0x0003ba18 lw a1, 0x128(s4) | a1 = *(s4);
0x0003ba1c addiu a0, zero, 0xa | a0 = 0xa;
0x0003ba20 bal 0x5b7d0 | sym_xmlHashCreateDict ();
0x0003ba24 move a0, v0 | a0 = v0;
0x0003ba28 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ba2c sw v0, 0x160(s4) | *(s4) = v0;
| if (v0 != 0) {
0x0003ba30 bnez v0, 0x3b690 | goto label_14;
| }
0x0003ba34 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x0003ba38 move a1, zero | a1 = 0;
0x0003ba3c move a0, s4 | a0 = s4;
0x0003ba40 bal 0x2807c | sym_xmlErrMemory ();
0x0003ba44 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ba48 b 0x3b5b8 | goto label_8;
| label_32:
0x0003ba4c lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0003ba50 addiu a1, zero, 0x44 | a1 = 0x44;
0x0003ba54 addiu a2, a2, -0x7c4c | a2 += -aav.0x00007c4c;
| do {
0x0003ba58 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x0003ba5c addiu t9, t9, -0x345c | t9 += -0x345c;
0x0003ba60 move a0, s4 | a0 = s4;
0x0003ba64 bal 0x2cba4 | fcn_0002cba4 ();
0x0003ba68 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003ba6c b 0x3b9bc | goto label_15;
| label_34:
0x0003ba70 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0003ba74 addiu a1, zero, 0x41 | a1 = 0x41;
0x0003ba78 addiu a2, a2, -0x7c2c | a2 += -aav.0x00007c2c;
0x0003ba7c b 0x3ba58 |
| } while (1);
| label_37:
0x0003ba80 lw a0, 0x54(sp) | a0 = *(var_54h);
0x0003ba84 lw v0, -0x7158(gp) | v0 = *(gp);
| if (a0 != 0) {
0x0003ba88 bnez a0, 0x3b990 | goto label_16;
| }
0x0003ba8c lw a0, 0x50(sp) | a0 = *(var_50h);
0x0003ba90 b 0x3b9a4 | goto label_17;
| label_36:
0x0003ba94 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0003ba98 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x0003ba9c move a0, s4 | a0 = s4;
0x0003baa0 addiu a2, a2, -0x7c00 | a2 += -0x7c00;
0x0003baa4 addiu t9, t9, -0x345c | t9 += -0x345c;
0x0003baa8 addiu a1, zero, 0x41 | a1 = 0x41;
0x0003baac bal 0x2cba4 | fcn_0002cba4 ();
0x0003bab0 lw a0, 0x50(sp) | a0 = *(var_50h);
0x0003bab4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (a0 != 0) {
0x0003bab8 bnez a0, 0x3b9ac | goto label_18;
| }
0x0003babc lw a0, 0x24(s4) | a0 = *((s4 + 9));
0x0003bac0 b 0x3b9c0 | goto label_19;
| label_29:
0x0003bac4 lw v0, 0x24(s4) | v0 = *((s4 + 9));
0x0003bac8 lw a0, 0x14(v0) | a0 = *((v0 + 5));
0x0003bacc lw a1, 0x10(v0) | a1 = *((v0 + 4));
0x0003bad0 subu a0, a0, a1 | __asm ("subu a0, a0, a1");
0x0003bad4 slti a0, a0, 0xfa | a0 = (a0 < 0xfa) ? 1 : 0;
| if (a0 == 0) {
0x0003bad8 beql a0, zero, 0x3b3a8 | goto label_20;
| }
0x0003badc lw a0, -0x7ea0(gp) | a0 = *((gp - 8104));
0x0003bae0 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x0003bae4 addiu t9, t9, -0x17dc | t9 += -0x17dc;
0x0003bae8 move a0, s4 | a0 = s4;
0x0003baec bal 0x2e824 | fcn_0002e824 ();
0x0003baf0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003baf4 lw v0, 0x24(s4) | v0 = *((s4 + 9));
0x0003baf8 b 0x3b3a4 | goto label_21;
| label_28:
0x0003bafc lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0003bb00 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x0003bb04 addiu a2, a2, -0x7c6c | a2 += -aav.0x00007c6c;
0x0003bb08 addiu a1, zero, 0x44 | a1 = 0x44;
0x0003bb0c addiu t9, t9, -0x345c | t9 += -0x345c;
0x0003bb10 move a0, s4 | a0 = s4;
0x0003bb14 bal 0x2cba4 | fcn_0002cba4 ();
0x0003bb18 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003bb1c b 0x3b28c | goto label_0;
| label_27:
0x0003bb20 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0003bb24 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x0003bb28 addiu a2, a2, -0x7c90 | a2 += -0x7c90;
0x0003bb2c addiu a1, zero, 0x41 | a1 = 0x41;
0x0003bb30 addiu t9, t9, -0x345c | t9 += -0x345c;
0x0003bb34 move a0, s4 | a0 = s4;
0x0003bb38 bal 0x2cba4 | fcn_0002cba4 ();
0x0003bb3c lw gp, 0x20(sp) | gp = *(var_20h);
0x0003bb40 b 0x3b36c | goto label_22;
| label_26:
0x0003bb44 lw t9, -0x7ef8(gp) | t9 = *((gp - 8126));
0x0003bb48 addiu a1, zero, 0xfa | a1 = 0xfa;
0x0003bb4c bal 0x28398 | sym_xmlParserInputGrow ();
0x0003bb50 lw gp, 0x20(sp) | gp = *(var_20h);
0x0003bb54 b 0x3b354 | goto label_23;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x47d6c */
| #include <stdint.h>
|
; (fcn) sym.xmlParseChunk () | void xmlParseChunk () {
0x00047d6c lui gp, 0x15 |
0x00047d70 addiu gp, gp, -0x66fc |
0x00047d74 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00047d78 beqz a0, 0x4835c | goto label_28;
| }
0x00047d7c nop |
0x00047d80 addiu sp, sp, -0x60 |
0x00047d84 lw v0, 0x54(a0) | v0 = *((a0 + 21));
0x00047d88 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00047d8c sw fp, 0x58(sp) | *(var_58h) = fp;
0x00047d90 sw s7, 0x54(sp) | *(var_54h) = s7;
0x00047d94 sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x00047d98 sw s0, 0x38(sp) | *(var_38h) = s0;
0x00047d9c sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x00047da0 sw s6, 0x50(sp) | *(var_50h) = s6;
0x00047da4 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x00047da8 sw s4, 0x48(sp) | *(var_48h) = s4;
0x00047dac sw s3, 0x44(sp) | *(var_44h) = s3;
0x00047db0 sw s2, 0x40(sp) | *(var_40h) = s2;
0x00047db4 move s7, a0 | s7 = a0;
0x00047db8 move s0, a1 | s0 = a1;
0x00047dbc move fp, a2 | fp = a2;
0x00047dc0 move s1, a3 | s1 = a3;
| if (v0 != 0) {
0x00047dc4 bnez v0, 0x480e8 | goto label_29;
| }
0x00047dc8 lw v0, 0xac(s7) | v0 = *((s7 + 43));
| label_4:
0x00047dcc addiu a0, zero, -1 | a0 = -1;
| if (v0 != a0) {
0x00047dd0 beql v0, a0, 0x47ee0 |
0x00047dd4 addiu v0, zero, -1 | v0 = -1;
0x00047dd8 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
| if (v0 == 0) {
0x00047ddc beqz v0, 0x482f4 | goto label_30;
| }
| if (fp > 0) {
0x00047de0 blezl fp, 0x47dfc |
0x00047de4 sw zero, 0x2c(sp) | *(var_2ch) = 0;
| if (s0 == 0) {
| label_12:
0x00047de8 beql s0, zero, 0x47dfc | goto label_13;
| }
0x00047dec sw zero, 0x2c(sp) | *(var_2ch) = 0;
0x00047df0 addu a0, s0, fp | a0 = s0 + fp;
| if (s1 == 0) {
0x00047df4 beqz s1, 0x48314 | goto label_31;
| }
0x00047df8 sw zero, 0x2c(sp) | *(var_2ch) = 0;
| }
| label_13:
0x00047dfc lw v1, -0x7fd4(gp) | v1 = *(gp);
0x00047e00 lw a0, -0x7ea0(gp) | a0 = *((gp - 8104));
0x00047e04 sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x00047e08 lw v1, -0x7fd4(gp) | v1 = *(gp);
0x00047e0c lw s3, -0x7dd0(gp) | s3 = *((gp - 8052));
0x00047e10 sw v1, 0x30(sp) | *(var_30h) = v1;
0x00047e14 addiu v1, a0, -0x4cc8 | v1 = a0 + -aav.0x00004cc8;
0x00047e18 lw a0, -0x7ea0(gp) | a0 = *((gp - 8104));
0x00047e1c sw v1, 0x20(sp) | *(var_20h) = v1;
0x00047e20 addiu v1, a0, -0x18d8 | v1 = a0 + -0x18d8;
0x00047e24 move s5, zero | s5 = 0;
0x00047e28 move s4, zero | s4 = 0;
0x00047e2c sw v1, 0x24(sp) | *(var_24h) = v1;
0x00047e30 addiu s3, s3, 0x6084 | s3 += 0x6084;
| label_0:
0x00047e34 lw a1, 0x24(s7) | a1 = *((s7 + 9));
| if (fp <= 0) {
0x00047e38 blez fp, 0x47f10 | goto label_32;
| }
0x00047e3c addiu a0, zero, -1 | a0 = -1;
| if (s0 == 0) {
0x00047e40 beqz s0, 0x47f14 | goto label_33;
| }
| if (a1 == 0) {
0x00047e44 beqz a1, 0x47fd8 | goto label_2;
| }
0x00047e48 nop |
0x00047e4c lw a0, (a1) | a0 = *(a1);
0x00047e50 addiu a2, zero, -1 | a2 = -1;
| if (a0 == 0) {
0x00047e54 beqz a0, 0x480c8 | goto label_34;
| }
| if (v0 == a2) {
0x00047e58 beql v0, a2, 0x47fbc | goto label_35;
| }
0x00047e5c lw s2, (a1) | s2 = *(a1);
0x00047e60 lw t9, -0x6f30(gp) | t9 = *(gp);
0x00047e64 lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x00047e68 jalr t9 | t9 ();
0x00047e6c lw a0, 0x24(s7) | a0 = *((s7 + 9));
0x00047e70 lw gp, 0x10(sp) | gp = *(var_10h);
0x00047e74 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00047e78 lw a1, (a0) | a1 = *(a0);
0x00047e7c lw s6, 0x10(a0) | s6 = *((a0 + 4));
0x00047e80 lw v0, 0xc(a0) | v0 = *((a0 + 3));
0x00047e84 lw t9, -0x7f4c(gp) | t9 = *((gp - 8147));
0x00047e88 lw a0, 0x10(a1) | a0 = *((a1 + 4));
0x00047e8c subu s6, s6, v0 | __asm ("subu s6, s6, v0");
0x00047e90 jalr t9 | t9 ();
0x00047e94 lw a0, 0xac(s7) | a0 = *((s7 + 43));
0x00047e98 move s4, v0 | s4 = v0;
0x00047e9c lw gp, 0x10(sp) | gp = *(var_10h);
0x00047ea0 lw v0, 0x24(s7) | v0 = *((s7 + 9));
| if (a0 == 0) {
0x00047ea4 beqz a0, 0x481f4 | goto label_36;
| }
0x00047ea8 lw a0, (v0) | a0 = *(v0);
0x00047eac lw t9, -0x7d1c(gp) | t9 = *((gp - 8007));
| label_9:
0x00047eb0 move a2, s0 | a2 = s0;
0x00047eb4 move a1, fp | a1 = fp;
0x00047eb8 bal 0x6165c | sym_xmlParserInputBufferPush ();
0x00047ebc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 >= 0) {
0x00047ec0 bgez v0, 0x48594 | goto label_37;
| }
| label_10:
0x00047ec4 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x00047ec8 addiu v0, zero, -1 | v0 = -1;
0x00047ecc sw v0, 0x54(s7) | *((s7 + 21)) = v0;
0x00047ed0 addiu t9, t9, -0x18d8 | t9 += -0x18d8;
0x00047ed4 move a0, s7 | a0 = s7;
0x00047ed8 bal 0x2e728 | fcn_0002e728 ();
0x00047edc addiu v0, zero, -1 | v0 = -1;
| }
0x00047ee0 lw ra, 0x5c(sp) | ra = *(var_5ch);
| do {
| label_5:
0x00047ee4 lw fp, 0x58(sp) | fp = *(var_58h);
0x00047ee8 lw s7, 0x54(sp) | s7 = *(var_54h);
0x00047eec lw s6, 0x50(sp) | s6 = *(var_50h);
0x00047ef0 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x00047ef4 lw s4, 0x48(sp) | s4 = *(var_48h);
0x00047ef8 lw s3, 0x44(sp) | s3 = *(var_44h);
0x00047efc lw s2, 0x40(sp) | s2 = *(var_40h);
0x00047f00 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x00047f04 lw s0, 0x38(sp) | s0 = *(var_38h);
0x00047f08 addiu sp, sp, 0x60 |
0x00047f0c jr ra | return v0;
| label_32:
0x00047f10 addiu a0, zero, -1 | a0 = -1;
| if (v0 != a0) {
| label_33:
0x00047f14 beq v0, a0, 0x47fb0 |
0x00047f18 nop |
| if (a1 == 0) {
0x00047f1c beqz a1, 0x47fd8 | goto label_2;
| }
0x00047f20 nop |
0x00047f24 lw s2, (a1) | s2 = *(a1);
| if (s2 == 0) {
0x00047f28 beqz s2, 0x47fd8 | goto label_2;
| }
0x00047f2c nop |
0x00047f30 lw v0, 0xc(s2) | v0 = *((s2 + 3));
0x00047f34 lw t9, -0x7f4c(gp) | t9 = *((gp - 8147));
| if (v0 == 0) {
0x00047f38 beqz v0, 0x47fc8 | goto label_3;
| }
0x00047f3c lw a0, 0x10(s2) | a0 = *((s2 + 4));
| if (a0 == 0) {
0x00047f40 beqz a0, 0x47fc8 | goto label_3;
| }
0x00047f44 nop |
0x00047f48 lw v0, 0x14(s2) | v0 = *((s2 + 5));
0x00047f4c lw t9, -0x6f30(gp) | t9 = *(gp);
| if (v0 == 0) {
0x00047f50 beqz v0, 0x47fc4 | goto label_38;
| }
0x00047f54 jalr t9 | t9 ();
0x00047f58 nop |
0x00047f5c lw a3, 0x24(s7) | a3 = *((s7 + 9));
0x00047f60 lw gp, 0x10(sp) | gp = *(var_10h);
0x00047f64 sw v0, 0x34(sp) | *(var_34h) = v0;
0x00047f68 lw v0, 0xc(a3) | v0 = *((a3 + 3));
0x00047f6c lw t9, -0x6fec(gp) | t9 = *((gp - 7163));
0x00047f70 move a1, s1 | a1 = s1;
0x00047f74 move a0, s2 | a0 = s2;
0x00047f78 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00047f7c lw s6, 0x10(a3) | s6 = *((a3 + 4));
0x00047f80 jalr t9 | t9 ();
0x00047f84 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00047f88 bltz v0, 0x48100 | goto label_39;
| }
0x00047f8c lw v0, 0x28(sp) | v0 = *(var_28h);
0x00047f90 lw t9, -0x6e14(gp) | t9 = *((gp - 7045));
0x00047f94 lw a1, 0x24(s7) | a1 = *((s7 + 9));
0x00047f98 lw a0, 0x10(s2) | a0 = *((s2 + 4));
0x00047f9c lw a2, 0x34(sp) | a2 = *(var_34h);
0x00047fa0 subu a3, s6, v0 | __asm ("subu a3, s6, v0");
0x00047fa4 jalr t9 | t9 ();
0x00047fa8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00047fac lw a1, 0x24(s7) | a1 = *((s7 + 9));
| }
| if (a1 != 0) {
| label_27:
0x00047fb0 beqz a1, 0x47fd8 |
0x00047fb4 nop |
0x00047fb8 lw s2, (a1) | s2 = *(a1);
| if (s2 == 0) {
| label_35:
0x00047fbc beqz s2, 0x47fd8 | goto label_2;
| }
0x00047fc0 nop |
| label_38:
0x00047fc4 lw t9, -0x7f4c(gp) | t9 = *((gp - 8147));
| label_3:
0x00047fc8 lw a0, 0x10(s2) | a0 = *((s2 + 4));
0x00047fcc jalr t9 | t9 ();
0x00047fd0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00047fd4 move s5, v0 | s5 = v0;
| }
| label_2:
0x00047fd8 move a0, s7 | a0 = s7;
| if (s1 == 0) {
0x00047fdc bnez s1, 0x48004 |
0x00047fe0 move t9, s3 | t9 = s3;
| if (s4 == 0) {
0x00047fe4 beqz s4, 0x48008 | goto label_40;
| }
0x00047fe8 lui a0, 0x98 | a0 = 0x980000;
0x00047fec addiu v0, s5, -1 | v0 = s5 + -1;
0x00047ff0 ori a0, a0, 0x9680 | a0 |= aav.0x00009680;
0x00047ff4 sltu v0, v0, a0 | v0 = (v0 < a0) ? 1 : 0;
0x00047ff8 lw s6, 0x24(s7) | s6 = *((s7 + 9));
| if (v0 == 0) {
0x00047ffc bnel v0, zero, 0x4817c | goto label_41;
| }
| label_6:
0x00048000 nop |
| }
| label_7:
0x00048004 nop |
| label_40:
0x00048008 move a1, s1 | a1 = s1;
0x0004800c bal 0x46084 | fcn_00046084 ();
0x00048010 lw a0, 0xac(s7) | a0 = *((s7 + 43));
0x00048014 addiu v0, zero, -1 | v0 = -1;
0x00048018 move s2, fp | s2 = fp;
0x0004801c lw gp, 0x10(sp) | gp = *(var_10h);
0x00048020 move fp, zero | fp = 0;
| if (a0 == v0) {
0x00048024 beq a0, v0, 0x482c0 | goto label_14;
| }
| label_11:
0x00048028 lw s6, 0x24(s7) | s6 = *((s7 + 9));
| if (s6 != 0) {
0x0004802c beql s6, zero, 0x4807c |
0x00048030 lw v0, 0x54(s7) | v0 = *((s7 + 21));
| label_8:
0x00048034 lw a1, 0x10(s6) | a1 = *((s6 + 4));
0x00048038 lw v0, 0x14(s6) | v0 = *((s6 + 5));
0x0004803c lui a0, 0x98 | a0 = 0x980000;
0x00048040 subu v0, v0, a1 | __asm ("subu v0, v0, a1");
0x00048044 ori a0, a0, 0x9681 | a0 |= 0x9681;
0x00048048 slt v0, v0, a0 | v0 = (v0 < a0) ? 1 : 0;
| if (v0 != 0) {
0x0004804c beql v0, zero, 0x4806c |
0x00048050 lw v0, 0x168(s7) | v0 = *(s7);
0x00048054 lw v0, 0xc(s6) | v0 = *((s6 + 3));
0x00048058 subu a1, a1, v0 | __asm ("subu a1, a1, v0");
0x0004805c slt a0, a1, a0 | a0 = (a1 < a0) ? 1 : 0;
0x00048060 lw v0, 0x54(s7) | v0 = *((s7 + 21));
| if (a0 == 0) {
0x00048064 bnel a0, zero, 0x4807c | goto label_42;
| }
0x00048068 lw v0, 0x168(s7) | v0 = *(s7);
| }
0x0004806c ext v0, v0, 0x13, 1 | __asm ("ext v0, v0, 0x13, 1");
0x00048070 lw v0, 0x1c(sp) | v0 = *(var_1ch);
| if (v0 == 0) {
0x00048074 beqz v0, 0x480a0 | goto label_43;
| }
| label_1:
0x00048078 lw v0, 0x54(s7) | v0 = *((s7 + 21));
| }
| label_42:
0x0004807c addiu a0, zero, 1 | a0 = 1;
| if (v0 == 0) {
0x00048080 beqz v0, 0x48090 | goto label_44;
| }
0x00048084 lw a1, 0xd4(s7) | a1 = *((s7 + 53));
0x00048088 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x0004808c beq a1, a0, 0x47ee4 |
| } while (a1 == a0);
| label_44:
0x00048090 addu s0, s0, s2 | s0 += s2;
| if (fp == 0) {
0x00048094 beqz fp, 0x48364 | goto label_45;
| }
0x00048098 lw v0, 0xac(s7) | v0 = *((s7 + 43));
0x0004809c b 0x47e34 | goto label_0;
| label_43:
0x000480a0 lw t9, 0x20(sp) | t9 = *(var_20h);
0x000480a4 addiu a2, v0, 0x761c | a2 = v0 + aav.0x0000761c;
0x000480a8 addiu a1, zero, 1 | a1 = 1;
0x000480ac move a0, s7 | a0 = s7;
0x000480b0 jalr t9 | t9 ();
0x000480b4 lw t9, 0x24(sp) | t9 = *(var_24h);
0x000480b8 move a0, s7 | a0 = s7;
0x000480bc jalr t9 | t9 ();
0x000480c0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000480c4 b 0x48078 | goto label_1;
| label_34:
0x000480c8 addiu a0, zero, -1 | a0 = -1;
| if (v0 != a0) {
0x000480cc bne v0, a0, 0x47fd8 | goto label_2;
| }
0x000480d0 nop |
0x000480d4 lw s2, (a1) | s2 = *(a1);
0x000480d8 lw t9, -0x7f4c(gp) | t9 = *((gp - 8147));
| if (s2 == 0) {
0x000480dc beqz s2, 0x47fd8 | goto label_2;
| }
0x000480e0 b 0x47fc8 | goto label_3;
0x000480e4 nop |
| label_29:
0x000480e8 lw a1, 0xd4(a0) | a1 = *((a0 + 53));
0x000480ec addiu a0, zero, 1 | a0 = 1;
0x000480f0 lw v0, 0xac(s7) | v0 = *((s7 + 43));
| if (a1 == a0) {
0x000480f4 bnel a1, a0, 0x47dcc | goto label_4;
| }
0x000480f8 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x000480fc b 0x47ee4 | goto label_5;
| label_39:
0x00048100 lw t9, -0x7f34(gp) | t9 = *(gp);
0x00048104 jalr t9 | t9 ();
0x00048108 nop |
0x0004810c lw gp, 0x10(sp) | gp = *(var_10h);
0x00048110 lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x00048114 lw s0, (v0) | s0 = *(v0);
0x00048118 jalr t9 | t9 ();
0x0004811c lw gp, 0x10(sp) | gp = *(var_10h);
0x00048120 lw a0, (v0) | a0 = *(v0);
0x00048124 move t9, s0 | t9 = s0;
0x00048128 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x0004812c addiu a1, a1, -0x6fb0 | a1 += -0x6fb0;
0x00048130 jalr t9 | t9 ();
0x00048134 lw gp, 0x10(sp) | gp = *(var_10h);
0x00048138 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x0004813c addiu t9, t9, -0x18d8 | t9 += -0x18d8;
0x00048140 move a0, s7 | a0 = s7;
0x00048144 bal 0x2e728 | fcn_0002e728 ();
0x00048148 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x0004814c lw fp, 0x58(sp) | fp = *(var_58h);
0x00048150 lw s7, 0x54(sp) | s7 = *(var_54h);
0x00048154 lw s6, 0x50(sp) | s6 = *(var_50h);
0x00048158 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x0004815c lw s4, 0x48(sp) | s4 = *(var_48h);
0x00048160 lw s3, 0x44(sp) | s3 = *(var_44h);
0x00048164 lw s2, 0x40(sp) | s2 = *(var_40h);
0x00048168 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0004816c lw s0, 0x38(sp) | s0 = *(var_38h);
0x00048170 addiu v0, zero, 0x51 | v0 = 0x51;
0x00048174 addiu sp, sp, 0x60 |
0x00048178 jr ra | return v0;
| label_41:
0x0004817c lw a0, 0xc(s6) | a0 = *((s6 + 3));
0x00048180 addu a0, a0, s4 | a0 += s4;
0x00048184 subu a2, s5, s4 | __asm ("subu a2, s5, s4");
| if (a0 == 0) {
0x00048188 beqz a0, 0x48000 | goto label_6;
| }
0x0004818c addiu v0, zero, 6 | v0 = 6;
| if (a2 < 0) {
0x00048190 bltz a2, 0x48000 | goto label_6;
| }
0x00048194 lw s2, 0xac(s7) | s2 = *((s7 + 43));
0x00048198 addiu a1, zero, 5 | a1 = 5;
| if (s2 == v0) {
0x0004819c beq s2, v0, 0x481d4 | goto label_46;
| }
0x000481a0 lw v0, 0x124(s7) | v0 = *(s7);
0x000481a4 addiu a1, zero, 8 | a1 = 8;
| if (v0 == a1) {
0x000481a8 beq v0, a1, 0x48334 | goto label_47;
| }
0x000481ac addiu a1, zero, 2 | a1 = 2;
| if (s2 == a1) {
0x000481b0 beq s2, a1, 0x481d4 | goto label_46;
| }
0x000481b4 addiu a1, zero, 9 | a1 = 9;
| if (v0 == a1) {
0x000481b8 beq v0, a1, 0x48334 | goto label_47;
| }
0x000481bc addiu a1, zero, 3 | a1 = 3;
| if (s2 == a1) {
0x000481c0 beq s2, a1, 0x481d4 | goto label_46;
| }
0x000481c4 lw t9, -0x70f4(gp) | t9 = *(gp);
| if (v0 == a1) {
0x000481c8 beq v0, a1, 0x48338 | goto label_48;
| }
0x000481cc move a0, s7 | a0 = s7;
| if (s2 == a1) {
0x000481d0 bnel s2, a1, 0x48004 | goto label_7;
| }
| label_46:
0x000481d4 lw t9, -0x70f4(gp) | t9 = *(gp);
0x000481d8 addiu a1, zero, 0x3e | a1 = 0x3e;
0x000481dc jalr t9 | t9 ();
0x000481e0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000481e4 bnez v0, 0x48000 | goto label_6;
| }
0x000481e8 move s2, fp | s2 = fp;
0x000481ec move fp, zero | fp = 0;
0x000481f0 b 0x48034 | goto label_8;
| label_36:
0x000481f4 lw a0, (v0) | a0 = *(v0);
0x000481f8 lw t9, -0x7d1c(gp) | t9 = *((gp - 8007));
| if (a0 == 0) {
0x000481fc beqz a0, 0x47eb0 | goto label_9;
| }
0x00048200 lw v0, 0xc(a0) | v0 = *((a0 + 3));
0x00048204 lw s2, -0x7c8c(gp) | s2 = *(gp);
| if (v0 == 0) {
0x00048208 beqz v0, 0x47eb0 | goto label_9;
| }
0x0004820c lw a0, (v0) | a0 = *(v0);
0x00048210 lw v0, 0x30(sp) | v0 = *(var_30h);
0x00048214 move t9, s2 | t9 = s2;
0x00048218 addiu a1, v0, 0x6160 | a1 = v0 + 0x6160;
0x0004821c jalr t9 | t9 ();
0x00048220 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00048224 beqz v0, 0x4840c | goto label_49;
| }
| label_16:
0x00048228 addiu v0, zero, 0x5a | v0 = 0x5a;
0x0004822c sw v0, 0x34(sp) | *(var_34h) = v0;
| label_17:
0x00048230 lw v0, 0x24(s7) | v0 = *((s7 + 9));
0x00048234 lw v1, 0x34(sp) | v1 = *(var_34h);
0x00048238 lw a0, (v0) | a0 = *(v0);
0x0004823c lw v0, 0x20(a0) | v0 = *((a0 + 8));
0x00048240 sltu a1, v0, v1 | a1 = (v0 < v1) ? 1 : 0;
0x00048244 lw s2, 0x34(sp) | s2 = *(var_34h);
| if (a1 != 0) {
0x00048248 beqz a1, 0x48258 |
0x0004824c subu v0, v1, v0 | __asm ("subu v0, v1, v0");
0x00048250 sw v0, 0x34(sp) | *(var_34h) = v0;
0x00048254 lw s2, 0x34(sp) | s2 = *(var_34h);
| }
0x00048258 sltu v0, s2, fp | v0 = (s2 < fp) ? 1 : 0;
0x0004825c lw t9, -0x7d1c(gp) | t9 = *((gp - 8007));
| if (v0 == 0) {
0x00048260 beqz v0, 0x47eb0 | goto label_9;
| }
0x00048264 move a2, s0 | a2 = s0;
0x00048268 move a1, s2 | a1 = s2;
0x0004826c bal 0x6165c | sym_xmlParserInputBufferPush ();
0x00048270 subu fp, fp, s2 | __asm ("subu fp, fp, s2");
0x00048274 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00048278 bltz v0, 0x47ec4 | goto label_10;
| }
0x0004827c lw a1, 0x24(s7) | a1 = *((s7 + 9));
0x00048280 lw t9, -0x6e14(gp) | t9 = *((gp - 7045));
0x00048284 lw a2, 0x28(sp) | a2 = *(var_28h);
0x00048288 lw v0, (a1) | v0 = *(a1);
0x0004828c move a3, s6 | a3 = s6;
0x00048290 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x00048294 jalr t9 | t9 ();
0x00048298 lw gp, 0x10(sp) | gp = *(var_10h);
| if (fp == 0) {
0x0004829c beqz fp, 0x485bc | goto label_50;
| }
0x000482a0 move a0, s7 | a0 = s7;
0x000482a4 move t9, s3 | t9 = s3;
0x000482a8 move a1, zero | a1 = 0;
0x000482ac bal 0x46084 | fcn_00046084 ();
0x000482b0 lw a0, 0xac(s7) | a0 = *((s7 + 43));
0x000482b4 addiu v0, zero, -1 | v0 = -1;
0x000482b8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (a0 != v0) {
0x000482bc bne a0, v0, 0x48028 | goto label_11;
| }
| label_14:
0x000482c0 lw ra, 0x5c(sp) | ra = *(var_5ch);
| label_15:
0x000482c4 lw v0, 0x54(s7) | v0 = *((s7 + 21));
0x000482c8 lw fp, 0x58(sp) | fp = *(var_58h);
0x000482cc lw s7, 0x54(sp) | s7 = *(var_54h);
0x000482d0 lw s6, 0x50(sp) | s6 = *(var_50h);
0x000482d4 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x000482d8 lw s4, 0x48(sp) | s4 = *(var_48h);
0x000482dc lw s3, 0x44(sp) | s3 = *(var_44h);
0x000482e0 lw s2, 0x40(sp) | s2 = *(var_40h);
0x000482e4 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x000482e8 lw s0, 0x38(sp) | s0 = *(var_38h);
0x000482ec addiu sp, sp, 0x60 |
0x000482f0 jr ra | return v0;
| label_30:
0x000482f4 addiu t9, t9, -0x3fc4 | t9 += -0x3fc4;
0x000482f8 move a0, s7 | a0 = s7;
0x000482fc bal 0x2c03c | fcn_0002c03c ();
0x00048300 lw gp, 0x10(sp) | gp = *(var_10h);
0x00048304 lw v0, 0xac(s7) | v0 = *((s7 + 43));
| if (fp > 0) {
0x00048308 bgtz fp, 0x47de8 | goto label_12;
| }
0x0004830c sw zero, 0x2c(sp) | *(var_2ch) = 0;
0x00048310 b 0x47dfc | goto label_13;
| label_31:
0x00048314 addiu a1, zero, 0xd | a1 = 0xd;
0x00048318 lb a0, -1(a0) | a0 = *((a0 - 1));
0x0004831c sw zero, 0x2c(sp) | *(var_2ch) = 0;
| if (a0 == a1) {
0x00048320 bnel a0, a1, 0x47dfc | goto label_13;
| }
0x00048324 addiu v1, zero, 1 | v1 = 1;
0x00048328 addiu fp, fp, -1 | fp += -1;
0x0004832c sw v1, 0x2c(sp) | *(var_2ch) = v1;
0x00048330 b 0x47dfc | goto label_13;
| label_47:
0x00048334 lw t9, -0x70f4(gp) | t9 = *(gp);
| label_48:
0x00048338 addiu a1, zero, 0x3e | a1 = 0x3e;
0x0004833c jalr t9 | t9 ();
0x00048340 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00048344 bnez v0, 0x48000 | goto label_6;
| }
0x00048348 addiu v0, zero, -1 | v0 = -1;
0x0004834c move s2, fp | s2 = fp;
| if (s2 == v0) {
0x00048350 beq s2, v0, 0x482c0 | goto label_14;
| }
0x00048354 move fp, zero | fp = 0;
0x00048358 b 0x48034 | goto label_8;
| label_28:
0x0004835c addiu v0, zero, 1 | v0 = 1;
0x00048360 jr ra | return v0;
| label_45:
0x00048364 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x00048368 lw a1, 0x24(s7) | a1 = *((s7 + 9));
| if (v0 == 0) {
0x0004836c bnel v0, zero, 0x484ac | goto label_51;
| }
| if (s1 != 0) {
| label_22:
0x00048370 beql s1, zero, 0x483fc |
0x00048374 lw v0, 0xc(s7) | v0 = *((s7 + 3));
0x00048378 lw a1, 0x24(s7) | a1 = *((s7 + 9));
0x0004837c move s0, zero | s0 = 0;
| if (a1 != 0) {
0x00048380 beqz a1, 0x483b0 |
0x00048384 lw v0, (a1) | v0 = *(a1);
0x00048388 lw t9, -0x7f4c(gp) | t9 = *((gp - 8147));
| if (v0 == 0) {
0x0004838c beqz v0, 0x48528 | goto label_52;
| }
0x00048390 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x00048394 jalr t9 | t9 ();
0x00048398 lw a0, 0x24(s7) | a0 = *((s7 + 9));
0x0004839c lw gp, 0x10(sp) | gp = *(var_10h);
0x000483a0 lw s0, 0x10(a0) | s0 = *((a0 + 4));
0x000483a4 lw a0, 0xc(a0) | a0 = *((a0 + 3));
0x000483a8 subu s0, s0, a0 | __asm ("subu s0, s0, a0");
0x000483ac subu s0, v0, s0 | __asm ("subu s0, v0, s0");
| }
| label_19:
0x000483b0 lw v0, 0xac(s7) | v0 = *((s7 + 43));
0x000483b4 addiu a0, zero, -1 | a0 = -1;
0x000483b8 addiu s1, zero, 0xe | s1 = 0xe;
| if (v0 != a0) {
0x000483bc beq v0, a0, 0x483f0 |
0x000483c0 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
| if (v0 != s1) {
0x000483c4 bne v0, s1, 0x48540 | goto label_53;
| }
| label_23:
0x000483c8 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
| if (s0 > 0) {
0x000483cc bgtz s0, 0x48578 | goto label_54;
| }
0x000483d0 lw v0, (s7) | v0 = *(s7);
| if (v0 == 0) {
| label_24:
0x000483d4 beql v0, zero, 0x483f4 | goto label_55;
| }
0x000483d8 addiu v0, zero, -1 | v0 = -1;
0x000483dc lw t9, 0x34(v0) | t9 = *((v0 + 13));
0x000483e0 addiu v0, zero, -1 | v0 = -1;
| if (t9 == 0) {
0x000483e4 beqz t9, 0x483f4 | goto label_55;
| }
0x000483e8 lw a0, 4(s7) | a0 = *((s7 + 1));
0x000483ec jalr t9 | t9 ();
| }
0x000483f0 addiu v0, zero, -1 | v0 = -1;
| label_55:
0x000483f4 sw v0, 0xac(s7) | *((s7 + 43)) = v0;
| label_25:
0x000483f8 lw v0, 0xc(s7) | v0 = *((s7 + 3));
| }
| label_18:
0x000483fc lw ra, 0x5c(sp) | ra = *(var_5ch);
| if (v0 == 0) {
0x00048400 beqz v0, 0x482c4 | goto label_15;
| }
0x00048404 move v0, zero | v0 = 0;
0x00048408 b 0x47ee4 | goto label_5;
| label_49:
0x0004840c lw v0, 0x24(s7) | v0 = *((s7 + 9));
0x00048410 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00048414 move t9, s2 | t9 = s2;
0x00048418 lw v0, (v0) | v0 = *(v0);
0x0004841c addiu a1, a1, 0x6168 | a1 += 0x6168;
0x00048420 lw v0, 0xc(v0) | v0 = *((v0 + 3));
0x00048424 lw a0, (v0) | a0 = *(v0);
0x00048428 jalr t9 | t9 ();
0x0004842c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00048430 bnez v0, 0x48228 | goto label_16;
| }
0x00048434 lw v0, 0x24(s7) | v0 = *((s7 + 9));
0x00048438 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x0004843c move t9, s2 | t9 = s2;
0x00048440 lw v0, (v0) | v0 = *(v0);
0x00048444 addiu a1, a1, 0x61a0 | a1 += 0x61a0;
0x00048448 lw v0, 0xc(v0) | v0 = *((v0 + 3));
0x0004844c lw a0, (v0) | a0 = *(v0);
0x00048450 jalr t9 | t9 ();
0x00048454 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00048458 beqz v0, 0x48478 | goto label_56;
| }
| label_20:
0x0004845c addiu v0, zero, 0xb4 | v0 = 0xb4;
0x00048460 sw v0, 0x34(sp) | *(var_34h) = v0;
0x00048464 b 0x48230 | goto label_17;
| if (s1 == 0) {
| label_21:
0x00048468 beql s1, zero, 0x483fc | goto label_18;
| }
0x0004846c lw v0, 0xc(s7) | v0 = *((s7 + 3));
0x00048470 move s0, zero | s0 = 0;
0x00048474 b 0x483b0 | goto label_19;
| label_56:
0x00048478 lw v0, 0x24(s7) | v0 = *((s7 + 9));
0x0004847c lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00048480 move t9, s2 | t9 = s2;
0x00048484 lw v0, (v0) | v0 = *(v0);
0x00048488 addiu a1, a1, 0x61a8 | a1 += 0x61a8;
0x0004848c lw v0, 0xc(v0) | v0 = *((v0 + 3));
0x00048490 lw a0, (v0) | a0 = *(v0);
0x00048494 jalr t9 | t9 ();
0x00048498 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x0004849c bnez v0, 0x4845c | goto label_20;
| }
0x000484a0 addiu v0, zero, 0x2d | v0 = 0x2d;
0x000484a4 sw v0, 0x34(sp) | *(var_34h) = v0;
0x000484a8 b 0x48230 | goto label_17;
| if (a1 == 0) {
| label_51:
0x000484ac beqz a1, 0x48468 | goto label_21;
| }
0x000484b0 nop |
0x000484b4 lw v0, (a1) | v0 = *(a1);
0x000484b8 lw t9, -0x6f30(gp) | t9 = *(gp);
| if (v0 == 0) {
0x000484bc beqz v0, 0x48520 | goto label_57;
| }
0x000484c0 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x000484c4 jalr t9 | t9 ();
0x000484c8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000484cc lw a0, 0x24(s7) | a0 = *((s7 + 9));
0x000484d0 addiu a1, zero, 1 | a1 = 1;
0x000484d4 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x000484d8 lw a3, 0xc(a0) | a3 = *((a0 + 3));
0x000484dc lw s0, 0x10(a0) | s0 = *((a0 + 4));
0x000484e0 lw t9, -0x7d1c(gp) | t9 = *((gp - 8007));
0x000484e4 lw a0, (a0) | a0 = *(a0);
0x000484e8 addiu a2, a2, -0x6f90 | a2 += -0x6f90;
0x000484ec move s2, v0 | s2 = v0;
0x000484f0 subu s0, s0, a3 | __asm ("subu s0, s0, a3");
0x000484f4 bal 0x6165c | sym_xmlParserInputBufferPush ();
0x000484f8 lw a1, 0x24(s7) | a1 = *((s7 + 9));
0x000484fc lw gp, 0x10(sp) | gp = *(var_10h);
0x00048500 move a3, s0 | a3 = s0;
0x00048504 lw v0, (a1) | v0 = *(a1);
0x00048508 lw t9, -0x6e14(gp) | t9 = *((gp - 7045));
0x0004850c move a2, s2 | a2 = s2;
0x00048510 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x00048514 jalr t9 | t9 ();
0x00048518 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004851c b 0x48370 | goto label_22;
| if (s1 == 0) {
| label_57:
0x00048520 beql s1, zero, 0x483fc | goto label_18;
| }
0x00048524 lw v0, 0xc(s7) | v0 = *((s7 + 3));
| label_52:
0x00048528 lw v0, 0x10(a1) | v0 = *((a1 + 4));
0x0004852c lw a0, 0xc(a1) | a0 = *((a1 + 3));
0x00048530 lw s0, 0x18(a1) | s0 = *((a1 + 6));
0x00048534 subu v0, v0, a0 | __asm ("subu v0, v0, a0");
0x00048538 subu s0, s0, v0 | __asm ("subu s0, s0, v0");
0x0004853c b 0x483b0 | goto label_19;
| label_53:
0x00048540 move a2, zero | a2 = 0;
0x00048544 addiu a1, zero, 5 | a1 = 5;
0x00048548 addiu t9, t9, -0x4cc8 | t9 += -aav.0x00004cc8;
0x0004854c move a0, s7 | a0 = s7;
0x00048550 bal 0x2b338 | fcn_0002b338 ();
0x00048554 lw v0, 0xac(s7) | v0 = *((s7 + 43));
0x00048558 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == s1) {
0x0004855c beq v0, s1, 0x483c8 | goto label_23;
| }
| label_26:
0x00048560 addiu a0, zero, -1 | a0 = -1;
0x00048564 lw v0, (s7) | v0 = *(s7);
| if (v0 == a0) {
0x00048568 bnel v0, a0, 0x483d4 | goto label_24;
| }
0x0004856c addiu v0, zero, -1 | v0 = -1;
0x00048570 sw v0, 0xac(s7) | *((s7 + 43)) = v0;
0x00048574 b 0x483f8 | goto label_25;
| label_54:
0x00048578 move a2, zero | a2 = 0;
0x0004857c addiu a1, zero, 5 | a1 = 5;
0x00048580 addiu t9, t9, -0x4cc8 | t9 += -aav.0x00004cc8;
0x00048584 move a0, s7 | a0 = s7;
0x00048588 bal 0x2b338 | fcn_0002b338 ();
0x0004858c lw v0, 0xac(s7) | v0 = *((s7 + 43));
0x00048590 b 0x48560 | goto label_26;
| label_37:
0x00048594 lw a1, 0x24(s7) | a1 = *((s7 + 9));
0x00048598 lw t9, -0x6e14(gp) | t9 = *((gp - 7045));
0x0004859c lw a2, 0x28(sp) | a2 = *(var_28h);
0x000485a0 lw v0, (a1) | v0 = *(a1);
0x000485a4 move a3, s6 | a3 = s6;
0x000485a8 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x000485ac jalr t9 | t9 ();
0x000485b0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000485b4 lw a1, 0x24(s7) | a1 = *((s7 + 9));
0x000485b8 b 0x47fb0 | goto label_27;
| label_50:
0x000485bc lw a1, 0x24(s7) | a1 = *((s7 + 9));
0x000485c0 lw fp, 0x34(sp) | fp = *(var_34h);
0x000485c4 b 0x47fb0 | goto label_27;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x347a0 */
| #include <stdint.h>
|
; (fcn) sym.xmlParseComment () | void xmlParseComment () {
0x000347a0 lui gp, 0x16 |
0x000347a4 addiu gp, gp, -0x3130 |
0x000347a8 addu gp, gp, t9 | gp += t9;
0x000347ac addiu sp, sp, -0x70 |
0x000347b0 addiu v1, zero, 0x3c | v1 = 0x3c;
0x000347b4 sw s6, 0x60(sp) | *(var_60h) = s6;
0x000347b8 move s6, a0 | s6 = a0;
0x000347bc lw a0, 0x24(a0) | a0 = *((a0 + 9));
0x000347c0 sw s2, 0x50(sp) | *(var_50h) = s2;
0x000347c4 lw s2, -0x7000(gp) | s2 = *((gp - 7168));
0x000347c8 lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x000347cc sw gp, 0x10(sp) | *(var_10h) = gp;
0x000347d0 lw a1, (s2) | a1 = *(s2);
0x000347d4 sw ra, 0x6c(sp) | *(var_6ch) = ra;
0x000347d8 sw fp, 0x68(sp) | *(var_68h) = fp;
0x000347dc sw s7, 0x64(sp) | *(var_64h) = s7;
0x000347e0 sw s5, 0x5c(sp) | *(var_5ch) = s5;
0x000347e4 sw s4, 0x58(sp) | *(var_58h) = s4;
0x000347e8 sw s3, 0x54(sp) | *(var_54h) = s3;
0x000347ec sw s1, 0x4c(sp) | *(var_4ch) = s1;
0x000347f0 sw s0, 0x48(sp) | *(var_48h) = s0;
0x000347f4 sw a1, 0x44(sp) | *(var_44h) = a1;
0x000347f8 lbu a1, (v0) | a1 = *(v0);
0x000347fc addiu v1, zero, 0x21 | v1 = 0x21;
| if (a1 != v1) {
0x00034800 bne a1, v1, 0x34810 | goto label_0;
| }
0x00034804 lbu a1, 1(v0) | a1 = *((v0 + 1));
| if (a1 == v1) {
0x00034808 beql a1, v1, 0x3484c | goto label_34;
| }
0x0003480c lbu v1, 2(v0) | v1 = *((v0 + 2));
| do {
| label_0:
0x00034810 lw v1, 0x44(sp) | v1 = *(var_44h);
0x00034814 lw v0, (s2) | v0 = *(s2);
0x00034818 lw ra, 0x6c(sp) | ra = *(var_6ch);
| if (v1 != v0) {
0x0003481c bne v1, v0, 0x350e4 | goto label_35;
| }
0x00034820 lw fp, 0x68(sp) | fp = *(var_68h);
0x00034824 lw s7, 0x64(sp) | s7 = *(var_64h);
0x00034828 lw s6, 0x60(sp) | s6 = *(var_60h);
0x0003482c lw s5, 0x5c(sp) | s5 = *(var_5ch);
0x00034830 lw s4, 0x58(sp) | s4 = *(var_58h);
0x00034834 lw s3, 0x54(sp) | s3 = *(var_54h);
0x00034838 lw s2, 0x50(sp) | s2 = *(var_50h);
0x0003483c lw s1, 0x4c(sp) | s1 = *(var_4ch);
0x00034840 lw s0, 0x48(sp) | s0 = *(var_48h);
0x00034844 addiu sp, sp, 0x70 |
0x00034848 jr ra | return v0;
| label_34:
0x0003484c addiu a1, zero, 0x2d | a1 = 0x2d;
0x00034850 bne v1, a1, 0x34810 |
| } while (v1 != a1);
0x00034854 nop |
0x00034858 lbu a1, 3(v0) | a1 = *((v0 + 3));
0x0003485c addiu v1, v0, 4 | v1 = v0 + 4;
| if (a1 != v1) {
0x00034860 bne a1, v1, 0x34810 | goto label_0;
| }
0x00034864 lw a3, 0xac(s6) | a3 = *((s6 + 43));
0x00034868 lw a2, 0xc8(s6) | a2 = *((s6 + 50));
0x0003486c lw a1, 0x20(a0) | a1 = *((a0 + 8));
0x00034870 sw a3, 0x1c(sp) | *(var_1ch) = a3;
0x00034874 lw a3, 0x38(a0) | a3 = *((a0 + 14));
0x00034878 addiu a2, a2, 4 | a2 += 4;
0x0003487c addiu a1, a1, 4 | a1 += 4;
0x00034880 sw a3, 0x2c(sp) | *(var_2ch) = a3;
0x00034884 addiu a3, zero, 5 | a3 = 5;
0x00034888 sw a3, 0xac(s6) | *((s6 + 43)) = a3;
0x0003488c sw a2, 0xc8(s6) | *((s6 + 50)) = a2;
0x00034890 sw v1, 0x10(a0) | *((a0 + 4)) = v1;
0x00034894 sw a1, 0x20(a0) | *((a0 + 8)) = a1;
0x00034898 lbu v0, 4(v0) | v0 = *((v0 + 4));
0x0003489c lw t9, -0x7ef8(gp) | t9 = *((gp - 8126));
| if (v0 == 0) {
0x000348a0 beqz v0, 0x34cc8 | goto label_36;
| }
| label_10:
0x000348a4 lw v0, 0x124(s6) | v0 = *(s6);
0x000348a8 lw s7, -0x7ea0(gp) | s7 = *((gp - 8104));
| if (v0 == 0) {
0x000348ac bnez v0, 0x3492c |
0x000348b0 lw a1, 0xc(a0) | a1 = *((a0 + 3));
0x000348b4 lw v0, 0x14(a0) | v0 = *((a0 + 5));
0x000348b8 subu a1, v1, a1 | __asm ("subu a1, v1, a1");
0x000348bc slti a1, a1, 0x1f5 | a1 = (a1 < 0x1f5) ? 1 : 0;
0x000348c0 subu v0, v0, v1 | __asm ("subu v0, v0, v1");
| if (a1 == 0) {
0x000348c4 bnez a1, 0x34900 |
0x000348c8 slti v0, v0, 0x1f4 | v0 = (v0 < aav.0x000001f4) ? 1 : 0;
0x000348cc lw s4, -0x7ea0(gp) | s4 = *((gp - 8104));
| if (v0 == 0) {
0x000348d0 beqz v0, 0x34930 | goto label_37;
| }
0x000348d4 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x000348d8 addiu t9, t9, -0x267c | t9 += -0x267c;
0x000348dc addiu a0, s6, 0x24 | a0 = s6 + 0x24;
0x000348e0 bal 0x2d984 | fcn_0002d984 ();
0x000348e4 lw a0, 0x24(s6) | a0 = *((s6 + 9));
0x000348e8 lw v0, 0x124(s6) | v0 = *(s6);
0x000348ec lw gp, 0x10(sp) | gp = *(var_10h);
0x000348f0 lw v1, 0x10(a0) | v1 = *((a0 + 4));
| if (v0 != 0) {
0x000348f4 bnez v0, 0x34928 | goto label_38;
| }
0x000348f8 lw v0, 0x14(a0) | v0 = *((a0 + 5));
0x000348fc subu v0, v0, v1 | __asm ("subu v0, v0, v1");
| }
0x00034900 slti v0, v0, 0xfa | v0 = (v0 < 0xfa) ? 1 : 0;
0x00034904 lw s7, -0x7ea0(gp) | s7 = *((gp - 8104));
| if (v0 == 0) {
0x00034908 beqz v0, 0x3492c | goto label_39;
| }
0x0003490c lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x00034910 addiu t9, t9, -0x17dc | t9 += -0x17dc;
0x00034914 move a0, s6 | a0 = s6;
0x00034918 bal 0x2e824 | fcn_0002e824 ();
0x0003491c lw a0, 0x24(s6) | a0 = *((s6 + 9));
0x00034920 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034924 lw v1, 0x10(a0) | v1 = *((a0 + 4));
| label_38:
0x00034928 lw s7, -0x7ea0(gp) | s7 = *((gp - 8104));
| }
| label_39:
0x0003492c lw s4, -0x7ea0(gp) | s4 = *((gp - 8104));
| label_37:
0x00034930 addiu v0, s7, -0x17dc | v0 = s7 + -0x17dc;
0x00034934 sw v0, 0x20(sp) | *(var_20h) = v0;
0x00034938 lw v0, -0x7ea0(gp) | v0 = *((gp - 8104));
0x0003493c lbu a2, (v1) | a2 = *(v1);
0x00034940 addiu v0, v0, -0x267c | v0 += -0x267c;
0x00034944 move a1, v1 | a1 = v1;
0x00034948 move s1, zero | s1 = 0;
0x0003494c addiu s3, zero, 0x64 | s3 = 0x64;
0x00034950 move s0, zero | s0 = 0;
0x00034954 addiu s4, s4, -0x357c | s4 += -0x357c;
0x00034958 sw v0, 0x30(sp) | *(var_30h) = v0;
| label_3:
0x0003495c addiu v0, zero, 0xa | v0 = 0xa;
| if (a2 == v0) {
0x00034960 beql a2, v0, 0x34cf8 | goto label_40;
| }
0x00034964 lw v0, 0x1c(a0) | v0 = *((a0 + 7));
0x00034968 lw a3, 0x20(a0) | a3 = *((a0 + 8));
| label_11:
0x0003496c lw fp, -0x7fd4(gp) | fp = *(gp);
0x00034970 lw s5, -0x7fd4(gp) | s5 = *(gp);
| label_1:
0x00034974 move s7, v1 | s7 = v1;
0x00034978 subu a3, a3, v1 | __asm ("subu a3, a3, v1");
0x0003497c addiu t2, zero, 9 | t2 = 9;
| do {
0x00034980 addiu v0, a2, -0x2e | v0 = a2 + -0x2e;
0x00034984 sltiu v0, v0, 0x52 | v0 = (v0 < 0x52) ? 1 : 0;
0x00034988 addu t1, s7, a3 | t1 = s7 + a3;
| if (v0 == 0) {
0x0003498c bnez v0, 0x349a8 |
0x00034990 addiu v0, a2, -0x20 | v0 = a2 + -0x20;
0x00034994 sltiu v0, v0, 0xd | v0 = (v0 < 0xd) ? 1 : 0;
0x00034998 addiu s7, s7, 1 | s7++;
| if (v0 == 0) {
0x0003499c bnel v0, zero, 0x349ac | goto label_41;
| }
0x000349a0 sw t1, 0x20(a0) | *((a0 + 8)) = t1;
| if (a2 == t2) {
0x000349a4 bnel a2, t2, 0x349b4 | goto label_42;
| }
| }
0x000349a8 addiu s7, s7, 1 | s7++;
| label_41:
0x000349ac lbu a2, (s7) | a2 = *(s7);
0x000349b0 b 0x34980 |
| } while (1);
| label_42:
0x000349b4 lbu v0, (s7) | v0 = *(s7);
0x000349b8 addiu a2, zero, 0xa | a2 = 0xa;
0x000349bc subu a2, s7, a1 | __asm ("subu a2, s7, a1");
| if (v0 == a2) {
0x000349c0 beq v0, a2, 0x34bec | goto label_43;
| }
| if (a2 != 0) {
0x000349c4 beql a2, zero, 0x34a20 |
0x000349c8 lui v0, 0x98 | v0 = 0x980000;
0x000349cc lw a0, (s6) | a0 = *(s6);
| if (a0 == 0) {
0x000349d0 beql a0, zero, 0x34a20 | goto label_44;
| }
0x000349d4 lui v0, 0x98 | v0 = 0x980000;
0x000349d8 lw a0, 0x50(a0) | a0 = *((a0 + 20));
| if (a0 == 0) {
0x000349dc beql a0, zero, 0x34a20 | goto label_44;
| }
0x000349e0 lui v0, 0x98 | v0 = 0x980000;
0x000349e4 addu a3, s1, a2 | a3 = s1 + a2;
| if (s0 == 0) {
0x000349e8 beqz s0, 0x34c70 | goto label_45;
| }
0x000349ec addiu v0, a3, 1 | v0 = a3 + 1;
0x000349f0 sltu v0, v0, s3 | v0 = (v0 < s3) ? 1 : 0;
0x000349f4 lw v0, -0x6e24(gp) | v0 = *(gp);
| if (v0 == 0) {
0x000349f8 beqz v0, 0x34c28 | goto label_46;
| }
0x000349fc addu a0, s0, s1 | a0 = s0 + s1;
0x00034a00 move s1, a3 | s1 = a3;
| label_8:
0x00034a04 lw t9, -0x6fbc(gp) | t9 = *(gp);
0x00034a08 jalr t9 | t9 ();
0x00034a0c nop |
0x00034a10 addu v0, s0, s1 | v0 = s0 + s1;
0x00034a14 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034a18 sb zero, (v0) | *(v0) = 0;
0x00034a1c lui v0, 0x98 | v0 = 0x989681;
| }
| label_44:
0x00034a20 ori v0, v0, 0x9681 |
0x00034a24 sltu v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x00034a28 lw a0, 0x24(s6) | a0 = *((s6 + 9));
| if (v0 != 0) {
0x00034a2c bnel v0, zero, 0x34a44 |
0x00034a30 lw v0, 0x168(s6) | v0 = *(s6);
0x00034a34 ext v0, v0, 0x13, 1 | __asm ("ext v0, v0, 0x13, 1");
0x00034a38 lw a2, -0x7fd4(gp) | a2 = *(gp);
| if (v0 == 0) {
0x00034a3c beqz v0, 0x34d2c | goto label_47;
| }
0x00034a40 lw a0, 0x24(s6) | a0 = *((s6 + 9));
| }
0x00034a44 addiu a1, zero, 0xa | a1 = 0xa;
0x00034a48 sw s7, 0x10(a0) | *((a0 + 4)) = s7;
0x00034a4c lbu v0, (s7) | v0 = *(s7);
| if (v0 == a1) {
0x00034a50 beql v0, a1, 0x34b84 | goto label_48;
| }
0x00034a54 lw v0, 0x1c(a0) | v0 = *((a0 + 7));
0x00034a58 move a2, s7 | a2 = s7;
| label_4:
0x00034a5c addiu a1, zero, 0xd | a1 = 0xd;
| if (v0 == a1) {
0x00034a60 beql v0, a1, 0x34b30 | goto label_49;
| }
0x00034a64 lbu a1, 1(a2) | a1 = *((a2 + 1));
0x00034a68 lw v0, 0x124(s6) | v0 = *(s6);
| label_2:
0x00034a6c lw v1, 0xac(s6) | v1 = *((s6 + 43));
| if (v0 != 0) {
0x00034a70 bnel v0, zero, 0x34a9c |
0x00034a74 lw a1, 0xc(a0) | a1 = *((a0 + 3));
0x00034a78 lw v0, 0x14(a0) | v0 = *((a0 + 5));
0x00034a7c subu a0, s7, a1 | __asm ("subu a0, s7, a1");
0x00034a80 slti a0, a0, 0x1f5 | a0 = (a0 < 0x1f5) ? 1 : 0;
0x00034a84 subu v1, v0, s7 | __asm ("subu v1, v0, s7");
| if (a0 != 0) {
0x00034a88 bnez a0, 0x34bc4 | goto label_50;
| }
0x00034a8c slti v1, v1, 0x1f4 | v1 = (v1 < aav.0x000001f4) ? 1 : 0;
0x00034a90 lw t9, 0x30(sp) | t9 = *(var_30h);
| if (v1 != 0) {
0x00034a94 bnez v1, 0x34ba0 | goto label_51;
| }
| label_5:
0x00034a98 lw v1, 0xac(s6) | v1 = *((s6 + 43));
| }
| label_6:
0x00034a9c addiu v0, zero, -1 | v0 = -1;
0x00034aa0 addiu v1, zero, 0x2d | v1 = 0x2d;
| if (v1 == v0) {
0x00034aa4 beq v1, v0, 0x34ce0 | goto label_52;
| }
0x00034aa8 lw a0, 0x24(s6) | a0 = *((s6 + 9));
0x00034aac lw s7, 0x10(a0) | s7 = *((a0 + 4));
0x00034ab0 lbu a2, (s7) | a2 = *(s7);
0x00034ab4 move v1, s7 | v1 = s7;
| if (a2 != v1) {
0x00034ab8 bne a2, v1, 0x34b60 | goto label_53;
| }
0x00034abc lbu v1, 1(s7) | v1 = *((s7 + 1));
| if (v1 == a2) {
0x00034ac0 beql v1, a2, 0x34ae4 | goto label_54;
| }
0x00034ac4 lbu a1, 2(s7) | a1 = *((s7 + 2));
0x00034ac8 lw a3, 0x20(a0) | a3 = *((a0 + 8));
0x00034acc move a1, s7 | a1 = s7;
| do {
0x00034ad0 addiu a3, a3, 1 | a3++;
0x00034ad4 sw a3, 0x20(a0) | *((a0 + 8)) = a3;
0x00034ad8 addiu v1, s7, 1 | v1 = s7 + 1;
0x00034adc lbu a2, 1(s7) | a2 = *((s7 + 1));
0x00034ae0 b 0x34974 | goto label_1;
| label_54:
0x00034ae4 addiu v1, zero, 0x3e | v1 = 0x3e;
| if (a1 == v1) {
0x00034ae8 beql a1, v1, 0x34d64 | goto label_55;
| }
0x00034aec lw v1, 0x38(a0) | v1 = *((a0 + 14));
| if (s0 == 0) {
0x00034af0 beql s0, zero, 0x34be4 | goto label_56;
| }
0x00034af4 move a3, zero | a3 = 0;
0x00034af8 move a3, s0 | a3 = s0;
0x00034afc addiu a2, s5, 0x7b74 | a2 = s5 + 0x7b74;
| label_7:
0x00034b00 addiu a1, zero, 0x50 | a1 = 0x50;
0x00034b04 move t9, s4 | t9 = s4;
0x00034b08 move a0, s6 | a0 = s6;
0x00034b0c bal 0x2ca84 | fcn_0002ca84 ();
0x00034b10 lw a0, 0x24(s6) | a0 = *((s6 + 9));
0x00034b14 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034b18 addiu s7, s7, 1 | s7++;
0x00034b1c lw a3, 0x20(a0) | a3 = *((a0 + 8));
0x00034b20 lw a1, 0x10(a0) | a1 = *((a0 + 4));
0x00034b24 addiu a3, a3, 1 | a3++;
0x00034b28 sw a3, 0x20(a0) | *((a0 + 8)) = a3;
0x00034b2c b 0x34ad0 |
| } while (1);
| label_49:
0x00034b30 addiu v0, zero, 0xa | v0 = 0xa;
0x00034b34 lw v0, 0x124(s6) | v0 = *(s6);
| if (a1 == v0) {
0x00034b38 bnel a1, v0, 0x34a6c | goto label_2;
| }
0x00034b3c lw v0, 0x1c(a0) | v0 = *((a0 + 7));
0x00034b40 addiu v1, a2, 1 | v1 = a2 + 1;
0x00034b44 addiu v0, v0, 1 | v0++;
0x00034b48 sw v0, 0x1c(a0) | *((a0 + 7)) = v0;
0x00034b4c addiu v0, zero, 1 | v0 = 1;
0x00034b50 sw v1, 0x10(a0) | *((a0 + 4)) = v1;
0x00034b54 sw v0, 0x20(a0) | *((a0 + 8)) = v0;
0x00034b58 addiu v1, a2, 2 | v1 = a2 + 2;
0x00034b5c lbu a2, 2(a2) | a2 = *((a2 + 2));
| label_53:
0x00034b60 addiu v0, a2, -0x20 | v0 = a2 + -0x20;
0x00034b64 sltiu v0, v0, 0x60 | v0 = (v0 < 0x60) ? 1 : 0;
0x00034b68 lw a1, 0x10(a0) | a1 = *((a0 + 4));
| if (v0 == 0) {
0x00034b6c bnel v0, zero, 0x3495c | goto label_3;
| }
0x00034b70 addiu v0, zero, 9 | v0 = 9;
0x00034b74 lw v0, 0x38(a0) | v0 = *((a0 + 14));
| if (a2 == v0) {
0x00034b78 bnel a2, v0, 0x34e94 | goto label_57;
| }
0x00034b7c lw a1, 0x10(a0) | a1 = *((a0 + 4));
0x00034b80 b 0x3495c | goto label_3;
| label_48:
0x00034b84 addiu a2, s7, 1 | a2 = s7 + 1;
0x00034b88 addiu v0, v0, 1 | v0++;
0x00034b8c sw v0, 0x1c(a0) | *((a0 + 7)) = v0;
0x00034b90 addiu v0, zero, 1 | v0 = 1;
0x00034b94 sw v0, 0x20(a0) | *((a0 + 8)) = v0;
0x00034b98 lbu v0, 1(s7) | v0 = *((s7 + 1));
0x00034b9c b 0x34a5c | goto label_4;
| label_51:
0x00034ba0 addiu a0, s6, 0x24 | a0 = s6 + 0x24;
0x00034ba4 jalr t9 | t9 ();
0x00034ba8 lw v0, 0x124(s6) | v0 = *(s6);
0x00034bac lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00034bb0 bnez v0, 0x34a98 | goto label_5;
| }
0x00034bb4 lw v0, 0x24(s6) | v0 = *((s6 + 9));
0x00034bb8 lw v1, 0x14(v0) | v1 = *((v0 + 5));
0x00034bbc lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00034bc0 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
| label_50:
0x00034bc4 slti v1, v1, 0xfa | v1 = (v1 < 0xfa) ? 1 : 0;
| if (v1 == 0) {
0x00034bc8 beql v1, zero, 0x34a9c | goto label_6;
| }
0x00034bcc lw v1, 0xac(s6) | v1 = *((s6 + 43));
0x00034bd0 lw t9, 0x20(sp) | t9 = *(var_20h);
0x00034bd4 move a0, s6 | a0 = s6;
0x00034bd8 jalr t9 | t9 ();
0x00034bdc lw gp, 0x10(sp) | gp = *(var_10h);
0x00034be0 b 0x34a98 | goto label_5;
| label_56:
0x00034be4 addiu a2, fp, 0x7ba0 | a2 = fp + 0x7ba0;
0x00034be8 b 0x34b00 | goto label_7;
| label_43:
0x00034bec lw a3, 0x1c(a0) | a3 = *((a0 + 7));
0x00034bf0 move v1, s7 | v1 = s7;
0x00034bf4 addiu a3, a3, 1 | a3++;
0x00034bf8 subu a3, a3, s7 | __asm ("subu a3, a3, s7");
0x00034bfc addiu t2, zero, 1 | t2 = 1;
0x00034c00 addiu t1, zero, 0xa | t1 = 0xa;
0x00034c04 addu v0, v1, a3 | v0 = v1 + a3;
| do {
0x00034c08 addiu v1, v1, 1 | v1++;
0x00034c0c sw v0, 0x1c(a0) | *((a0 + 7)) = v0;
0x00034c10 sw t2, 0x20(a0) | *((a0 + 8)) = t2;
0x00034c14 lbu a2, (v1) | a2 = *(v1);
0x00034c18 addu v0, v1, a3 | v0 = v1 + a3;
0x00034c1c beq a2, t1, 0x34c08 |
| } while (a2 == t1);
0x00034c20 addiu a3, zero, 1 | a3 = 1;
0x00034c24 b 0x34974 | goto label_1;
| label_46:
0x00034c28 addiu s3, s3, 0x64 | s3 += 0x64;
0x00034c2c addu s3, a3, s3 | s3 = a3 + s3;
0x00034c30 lw t9, (v0) | t9 = *(v0);
0x00034c34 sw a2, 0x28(sp) | *(var_28h) = a2;
0x00034c38 sw a3, 0x24(sp) | *(var_24h) = a3;
0x00034c3c move a1, s3 | a1 = s3;
0x00034c40 move a0, s0 | a0 = s0;
0x00034c44 jalr t9 | t9 ();
0x00034c48 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00034c4c beqz v0, 0x34e5c | goto label_58;
| }
0x00034c50 lw a1, 0x24(s6) | a1 = *((s6 + 9));
0x00034c54 lw a3, 0x24(sp) | a3 = *(var_24h);
0x00034c58 addu a0, v0, s1 | a0 = v0 + s1;
0x00034c5c move s0, v0 | s0 = v0;
0x00034c60 lw a1, 0x10(a1) | a1 = *((a1 + 4));
0x00034c64 move s1, a3 | s1 = a3;
0x00034c68 lw a2, 0x28(sp) | a2 = *(var_28h);
0x00034c6c b 0x34a04 | goto label_8;
| label_45:
0x00034c70 addiu a0, zero, 0x2d | a0 = 0x2d;
| if (v0 == a0) {
0x00034c74 beql v0, a0, 0x34cb8 | goto label_59;
| }
0x00034c78 lbu a0, 1(s7) | a0 = *((s7 + 1));
0x00034c7c addiu s3, a2, 0x64 | s3 = a2 + 0x64;
| do {
| label_9:
0x00034c80 lw v0, -0x6ddc(gp) | v0 = *((gp - 7031));
0x00034c84 sw a2, 0x24(sp) | *(var_24h) = a2;
0x00034c88 lw t9, (v0) | t9 = *(v0);
0x00034c8c move a0, s3 | a0 = s3;
0x00034c90 jalr t9 | t9 ();
0x00034c94 move s0, v0 | s0 = v0;
0x00034c98 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034c9c lw a2, 0x24(sp) | a2 = *(var_24h);
| if (v0 == 0) {
0x00034ca0 beqz v0, 0x350f0 | goto label_60;
| }
0x00034ca4 lw v0, 0x24(s6) | v0 = *((s6 + 9));
0x00034ca8 move s1, a2 | s1 = a2;
0x00034cac move a0, s0 | a0 = s0;
0x00034cb0 lw a1, 0x10(v0) | a1 = *((v0 + 4));
0x00034cb4 b 0x34a04 | goto label_8;
| label_59:
0x00034cb8 addiu s3, a2, 0x64 | s3 = a2 + 0x64;
0x00034cbc bnel a0, v0, 0x34c80 |
| } while (a0 == v0);
0x00034cc0 addiu s3, a2, 1 | s3 = a2 + 1;
0x00034cc4 b 0x34c80 | goto label_9;
| label_36:
0x00034cc8 addiu a1, zero, 0xfa | a1 = 0xfa;
0x00034ccc bal 0x28398 | sym_xmlParserInputGrow ();
0x00034cd0 lw a0, 0x24(s6) | a0 = *((s6 + 9));
0x00034cd4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034cd8 lw v1, 0x10(a0) | v1 = *((a0 + 4));
0x00034cdc b 0x348a4 | goto label_10;
| label_52:
0x00034ce0 lw v0, -0x7158(gp) | v0 = *(gp);
0x00034ce4 lw t9, (v0) | t9 = *(v0);
0x00034ce8 move a0, s0 | a0 = s0;
0x00034cec jalr t9 | t9 ();
0x00034cf0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034cf4 b 0x34810 | goto label_0;
| label_40:
0x00034cf8 addiu t1, zero, 1 | t1 = 1;
0x00034cfc subu v0, v0, v1 | __asm ("subu v0, v0, v1");
0x00034d00 addiu v0, v0, 1 | v0++;
0x00034d04 addiu a3, zero, 0xa | a3 = 0xa;
0x00034d08 addu a2, v1, v0 | a2 = v1 + v0;
| do {
0x00034d0c addiu v1, v1, 1 | v1++;
0x00034d10 sw a2, 0x1c(a0) | *((a0 + 7)) = a2;
0x00034d14 sw t1, 0x20(a0) | *((a0 + 8)) = t1;
0x00034d18 lbu a2, (v1) | a2 = *(v1);
0x00034d1c beql a2, a3, 0x34d0c |
| } while (a2 == a3);
0x00034d20 addu a2, v1, v0 | a2 = v1 + v0;
0x00034d24 addiu a3, zero, 1 | a3 = 1;
0x00034d28 b 0x3496c | goto label_11;
| label_47:
0x00034d2c lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x00034d30 move a3, zero | a3 = 0;
0x00034d34 addiu a2, a2, 0x7b28 | a2 += 0x7b28;
0x00034d38 addiu a1, zero, 0x2d | a1 = 0x2d;
0x00034d3c addiu t9, t9, -0x357c | t9 += -0x357c;
0x00034d40 move a0, s6 | a0 = s6;
0x00034d44 bal 0x2ca84 | fcn_0002ca84 ();
0x00034d48 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034d4c lw v0, -0x7158(gp) | v0 = *(gp);
0x00034d50 lw t9, (v0) | t9 = *(v0);
0x00034d54 move a0, s0 | a0 = s0;
0x00034d58 jalr t9 | t9 ();
0x00034d5c lw gp, 0x10(sp) | gp = *(var_10h);
0x00034d60 b 0x34810 | goto label_0;
| label_55:
0x00034d64 lw v0, 0x2c(sp) | v0 = *(var_2ch);
| if (v1 != v0) {
0x00034d68 beql v1, v0, 0x34d9c |
0x00034d6c lw a1, 0xc8(s6) | a1 = *((s6 + 50));
0x00034d70 lw a2, -0x7fd4(gp) | a2 = *(gp);
0x00034d74 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x00034d78 move a0, s6 | a0 = s6;
0x00034d7c addiu a2, a2, 0x7b40 | a2 += 0x7b40;
0x00034d80 addiu t9, t9, -0x345c | t9 += -0x345c;
0x00034d84 addiu a1, zero, 0x5a | a1 = 0x5a;
0x00034d88 bal 0x2cba4 | fcn_0002cba4 ();
0x00034d8c lw a0, 0x24(s6) | a0 = *((s6 + 9));
0x00034d90 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034d94 lw s7, 0x10(a0) | s7 = *((a0 + 4));
0x00034d98 lw a1, 0xc8(s6) | a1 = *((s6 + 50));
| }
0x00034d9c lw v1, 0x20(a0) | v1 = *((a0 + 8));
0x00034da0 addiu a1, a1, 3 | a1 += 3;
0x00034da4 addiu a2, s7, 3 | a2 = s7 + 3;
0x00034da8 addiu v1, v1, 3 | v1 += 3;
0x00034dac sw a1, 0xc8(s6) | *((s6 + 50)) = a1;
0x00034db0 sw a2, 0x10(a0) | *((a0 + 4)) = a2;
0x00034db4 sw v1, 0x20(a0) | *((a0 + 8)) = v1;
0x00034db8 lbu v0, 3(s7) | v0 = *((s7 + 3));
0x00034dbc lw t9, -0x7ef8(gp) | t9 = *((gp - 8126));
| if (v0 == 0) {
0x00034dc0 beqz v0, 0x34e38 | goto label_61;
| }
| label_14:
0x00034dc4 lw v0, (s6) | v0 = *(s6);
| if (v0 == 0) {
0x00034dc8 beqz v0, 0x34e28 | goto label_62;
| }
0x00034dcc nop |
0x00034dd0 lw t9, 0x50(v0) | t9 = *((v0 + 20));
| if (t9 == 0) {
0x00034dd4 beqz t9, 0x34e28 | goto label_62;
| }
0x00034dd8 nop |
0x00034ddc lw v0, 0xd4(s6) | v0 = *((s6 + 53));
| if (v0 != 0) {
0x00034de0 bnez v0, 0x34e28 | goto label_62;
| }
0x00034de4 nop |
0x00034de8 lw a0, 4(s6) | a0 = *((s6 + 1));
| if (s0 == 0) {
0x00034dec beqz s0, 0x34e48 | goto label_63;
| }
0x00034df0 move a1, s0 | a1 = s0;
0x00034df4 jalr t9 | t9 ();
0x00034df8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034dfc lw v0, -0x7158(gp) | v0 = *(gp);
| label_12:
0x00034e00 lw t9, (v0) | t9 = *(v0);
0x00034e04 move a0, s0 | a0 = s0;
0x00034e08 jalr t9 | t9 ();
0x00034e0c lw gp, 0x10(sp) | gp = *(var_10h);
| label_15:
0x00034e10 lw v1, 0xac(s6) | v1 = *((s6 + 43));
| label_13:
0x00034e14 addiu v0, zero, -1 | v0 = -1;
0x00034e18 lw v0, 0x1c(sp) | v0 = *(var_1ch);
| if (v1 == v0) {
0x00034e1c beq v1, v0, 0x34810 | goto label_0;
| }
0x00034e20 sw v0, 0xac(s6) | *((s6 + 43)) = v0;
0x00034e24 b 0x34810 | goto label_0;
| label_62:
0x00034e28 lw v0, -0x7158(gp) | v0 = *(gp);
| if (s0 != 0) {
0x00034e2c bnez s0, 0x34e00 | goto label_12;
| }
0x00034e30 lw v1, 0xac(s6) | v1 = *((s6 + 43));
0x00034e34 b 0x34e14 | goto label_13;
| label_61:
0x00034e38 addiu a1, zero, 0xfa | a1 = 0xfa;
0x00034e3c bal 0x28398 | sym_xmlParserInputGrow ();
0x00034e40 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034e44 b 0x34dc4 | goto label_14;
| label_63:
0x00034e48 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00034e4c addiu a1, a1, 0x2694 | a1 += 0x2694;
0x00034e50 jalr t9 | t9 ();
0x00034e54 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034e58 b 0x34e10 | goto label_15;
| label_58:
0x00034e5c lw v0, -0x7158(gp) | v0 = *(gp);
0x00034e60 lw t9, (v0) | t9 = *(v0);
0x00034e64 move a0, s0 | a0 = s0;
0x00034e68 jalr t9 | t9 ();
0x00034e6c lw gp, 0x10(sp) | gp = *(var_10h);
0x00034e70 move a1, zero | a1 = 0;
0x00034e74 move a0, s6 | a0 = s6;
| label_17:
0x00034e78 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x00034e7c bal 0x2807c | sym_xmlErrMemory ();
0x00034e80 nop |
0x00034e84 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x00034e88 lw gp, 0x10(sp) | gp = *(var_10h);
0x00034e8c sw v0, 0xac(s6) | *((s6 + 43)) = v0;
0x00034e90 b 0x34810 | goto label_0;
| label_57:
0x00034e94 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00034e98 beqz s0, 0x35088 |
| while (1) {
0x00034e9c lw v0, 0x124(s6) | v0 = *(s6);
0x00034ea0 lw t9, -0x7e34(gp) | t9 = *((gp - 8077));
| if (v0 == 0) {
0x00034ea4 bnez v0, 0x34ec8 |
0x00034ea8 lw v1, 0x24(s6) | v1 = *((s6 + 9));
0x00034eac lw v0, 0x14(v1) | v0 = *((v1 + 5));
0x00034eb0 lw v1, 0x10(v1) | v1 = *((v1 + 4));
0x00034eb4 subu v0, v0, v1 | __asm ("subu v0, v0, v1");
0x00034eb8 slti v0, v0, 0xfa | v0 = (v0 < 0xfa) ? 1 : 0;
0x00034ebc lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
| if (v0 != 0) {
0x00034ec0 bnez v0, 0x350b0 | goto label_64;
| }
| label_16:
0x00034ec4 lw t9, -0x7e34(gp) | t9 = *((gp - 8077));
| }
0x00034ec8 addiu a1, sp, 0x38 | a1 = sp + 0x38;
0x00034ecc sw t9, 0x20(sp) | *(var_20h) = t9;
0x00034ed0 move a0, s6 | a0 = s6;
0x00034ed4 bal 0x28af0 | sym_xmlCurrentChar ();
0x00034ed8 move fp, v0 | fp = v0;
0x00034edc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00034ee0 beqz v0, 0x354a0 | goto label_65;
| }
0x00034ee4 slti v0, v0, 0x100 | v0 = (v0 < aav.0x00000100) ? 1 : 0;
0x00034ee8 addiu v0, fp, -0x100 | v0 = fp + -aav.0x00000100;
| if (v0 == 0) {
0x00034eec beqz v0, 0x35464 | goto label_66;
| }
0x00034ef0 addiu v0, fp, -9 | v0 = fp + -9;
0x00034ef4 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x00034ef8 move v0, zero | v0 = 0;
| if (v0 == 0) {
0x00034efc bnez v0, 0x34f10 |
0x00034f00 addiu v0, zero, 0xd | v0 = 0xd;
0x00034f04 move v0, zero | v0 = 0;
| if (fp == v0) {
0x00034f08 beq fp, v0, 0x34f10 | goto label_25;
| }
0x00034f0c slti v0, fp, 0x20 | v0 = (fp < 0x20) ? 1 : 0;
| }
| label_25:
0x00034f10 lw a2, -0x7fd4(gp) | a2 = *(gp);
| if (v0 != 0) {
0x00034f14 bnez v0, 0x35420 | goto label_67;
| }
0x00034f18 lw v0, 0x24(s6) | v0 = *((s6 + 9));
0x00034f1c addiu a0, zero, 0xa | a0 = 0xa;
0x00034f20 lw v1, 0x10(v0) | v1 = *((v0 + 4));
0x00034f24 lbu a1, (v1) | a1 = *(v1);
| if (a1 == a0) {
0x00034f28 beql a1, a0, 0x3540c | goto label_68;
| }
0x00034f2c lw a0, 0x1c(v0) | a0 = *((v0 + 7));
0x00034f30 lw a0, 0x20(v0) | a0 = *((v0 + 8));
0x00034f34 addiu a0, a0, 1 | a0++;
0x00034f38 sw a0, 0x20(v0) | *((v0 + 8)) = a0;
| label_24:
0x00034f3c lw a0, 0x38(sp) | a0 = *(var_38h);
0x00034f40 lw t9, 0x20(sp) | t9 = *(var_20h);
0x00034f44 addu v1, v1, a0 | v1 += a0;
0x00034f48 addiu a1, sp, 0x3c | a1 = sp + 0x3c;
0x00034f4c sw v1, 0x10(v0) | *((v0 + 4)) = v1;
0x00034f50 move a0, s6 | a0 = s6;
0x00034f54 jalr t9 | t9 ();
0x00034f58 move s4, v0 | s4 = v0;
0x00034f5c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00034f60 beqz v0, 0x354a0 | goto label_65;
| }
0x00034f64 slti v0, v0, 0x100 | v0 = (v0 < aav.0x00000100) ? 1 : 0;
0x00034f68 addiu v0, s4, -0x100 | v0 = s4 + -aav.0x00000100;
| if (v0 == 0) {
0x00034f6c beqz v0, 0x353d0 | goto label_69;
| }
0x00034f70 addiu v0, s4, -9 | v0 = s4 + -9;
0x00034f74 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x00034f78 move v0, zero | v0 = 0;
| if (v0 == 0) {
0x00034f7c bnez v0, 0x34f90 |
0x00034f80 addiu v0, zero, 0xd | v0 = 0xd;
0x00034f84 move v0, zero | v0 = 0;
| if (s4 == v0) {
0x00034f88 beq s4, v0, 0x34f90 | goto label_23;
| }
0x00034f8c slti v0, s4, 0x20 | v0 = (s4 < 0x20) ? 1 : 0;
| }
| label_23:
0x00034f90 lw a2, -0x7fd4(gp) | a2 = *(gp);
| if (v0 != 0) {
0x00034f94 bnez v0, 0x35420 | goto label_67;
| }
0x00034f98 lw v0, 0x24(s6) | v0 = *((s6 + 9));
0x00034f9c addiu a0, zero, 0xa | a0 = 0xa;
0x00034fa0 lw v1, 0x10(v0) | v1 = *((v0 + 4));
0x00034fa4 lbu a1, (v1) | a1 = *(v1);
| if (a1 == a0) {
0x00034fa8 beql a1, a0, 0x353bc | goto label_70;
| }
0x00034fac lw a0, 0x1c(v0) | a0 = *((v0 + 7));
0x00034fb0 lw a0, 0x20(v0) | a0 = *((v0 + 8));
0x00034fb4 addiu a0, a0, 1 | a0++;
0x00034fb8 sw a0, 0x20(v0) | *((v0 + 8)) = a0;
| label_22:
0x00034fbc lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x00034fc0 addiu a1, sp, 0x40 | a1 = sp + 0x40;
0x00034fc4 addu v1, v1, a0 | v1 += a0;
0x00034fc8 lw t9, 0x20(sp) | t9 = *(var_20h);
0x00034fcc sw a1, 0x24(sp) | *(var_24h) = a1;
0x00034fd0 sw v1, 0x10(v0) | *((v0 + 4)) = v1;
0x00034fd4 move a0, s6 | a0 = s6;
0x00034fd8 jalr t9 | t9 ();
0x00034fdc move s5, v0 | s5 = v0;
0x00034fe0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00034fe4 beqz v0, 0x354a0 | goto label_65;
| }
0x00034fe8 lw v0, -0x7ea0(gp) | v0 = *((gp - 8104));
0x00034fec move s7, zero | s7 = 0;
0x00034ff0 addiu v0, v0, -0x4cc8 | v0 += -aav.0x00004cc8;
0x00034ff4 sw v0, 0x30(sp) | *(var_30h) = v0;
0x00034ff8 lw v0, -0x7ea0(gp) | v0 = *((gp - 8104));
0x00034ffc addiu v0, v0, -0x17dc | v0 += -0x17dc;
0x00035000 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00035004 lw v0, -0x7ea0(gp) | v0 = *((gp - 8104));
0x00035008 sw v0, 0x34(sp) | *(var_34h) = v0;
| label_20:
0x0003500c slti v0, s5, 0x100 | v0 = (s5 < aav.0x00000100) ? 1 : 0;
0x00035010 addiu v0, s5, -0x100 | v0 = s5 + -aav.0x00000100;
| if (v0 == 0) {
0x00035014 beqz v0, 0x351a0 | goto label_71;
| }
0x00035018 addiu v0, s5, -9 | v0 = s5 + -9;
0x0003501c sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x00035020 addiu v0, zero, 0xd | v0 = 0xd;
| if (v0 != 0) {
0x00035024 bnez v0, 0x350fc | goto label_72;
| }
0x00035028 slti v0, s5, 0x20 | v0 = (s5 < 0x20) ? 1 : 0;
| if (s5 == v0) {
0x0003502c beq s5, v0, 0x3520c | goto label_73;
| }
| if (v0 == 0) {
0x00035030 beql v0, zero, 0x35100 | goto label_74;
| }
0x00035034 addiu v0, zero, 0x3e | v0 = 0x3e;
0x00035038 addu s1, s0, s1 | s1 = s0 + s1;
0x0003503c sb zero, (s1) | *(s1) = 0;
| if (s5 != 0) {
0x00035040 bnez s5, 0x35124 | goto label_75;
| }
0x00035044 lw a2, -0x7fd4(gp) | a2 = *(gp);
0x00035048 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x0003504c move a3, s0 | a3 = s0;
0x00035050 addiu a2, a2, 0x7bec | a2 += 0x7bec;
0x00035054 addiu a1, zero, 0x2d | a1 = 0x2d;
0x00035058 addiu t9, t9, -0x357c | t9 += -0x357c;
0x0003505c move a0, s6 | a0 = s6;
0x00035060 bal 0x2ca84 | fcn_0002ca84 ();
0x00035064 lw gp, 0x10(sp) | gp = *(var_10h);
| label_18:
0x00035068 lw v0, -0x7158(gp) | v0 = *(gp);
| label_19:
0x0003506c lw t9, (v0) | t9 = *(v0);
0x00035070 move a0, s0 | a0 = s0;
0x00035074 jalr t9 | t9 ();
0x00035078 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x0003507c lw gp, 0x10(sp) | gp = *(var_10h);
0x00035080 sw v0, 0xac(s6) | *((s6 + 43)) = v0;
0x00035084 b 0x34810 | goto label_0;
0x00035088 lw v0, -0x6ddc(gp) | v0 = *((gp - 7031));
0x0003508c lw t9, (v0) | t9 = *(v0);
0x00035090 addiu a0, zero, 0x64 | a0 = 0x64;
0x00035094 jalr t9 | t9 ();
0x00035098 move s0, v0 | s0 = v0;
0x0003509c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000350a0 beqz v0, 0x350c4 | goto label_76;
| }
0x000350a4 addiu s3, zero, 0x64 | s3 = 0x64;
0x000350a8 move s1, zero | s1 = 0;
0x000350ac b 0x34e9c |
| }
| label_64:
0x000350b0 addiu t9, t9, -0x17dc | t9 += -0x17dc;
0x000350b4 move a0, s6 | a0 = s6;
0x000350b8 bal 0x2e824 | fcn_0002e824 ();
0x000350bc lw gp, 0x10(sp) | gp = *(var_10h);
0x000350c0 b 0x34ec4 | goto label_16;
| label_76:
0x000350c4 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x000350c8 move a1, zero | a1 = 0;
0x000350cc move a0, s6 | a0 = s6;
0x000350d0 bal 0x2807c | sym_xmlErrMemory ();
0x000350d4 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x000350d8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000350dc sw v0, 0xac(s6) | *((s6 + 43)) = v0;
0x000350e0 b 0x34810 | goto label_0;
| label_35:
0x000350e4 lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x000350e8 jalr t9 | t9 ();
0x000350ec nop |
| label_60:
0x000350f0 move a1, zero | a1 = 0;
0x000350f4 move a0, s6 | a0 = s6;
0x000350f8 b 0x34e78 | goto label_17;
| label_72:
0x000350fc addiu v0, zero, 0x3e | v0 = 0x3e;
| label_74:
0x00035100 addiu v0, zero, 0x2d | v0 = 0x2d;
| if (s5 != v0) {
0x00035104 bne s5, v0, 0x3520c | goto label_73;
| }
0x00035108 lui v0, 0x98 | v0 = 0x980000;
| if (s4 != v0) {
0x0003510c bne s4, v0, 0x3521c | goto label_27;
| }
0x00035110 ori v0, v0, 0x9681 | v0 |= 0x9681;
| if (fp != s4) {
0x00035114 bne fp, s4, 0x35220 | goto label_77;
| }
0x00035118 addu s1, s0, s1 | s1 = s0 + s1;
0x0003511c move v0, zero | v0 = 0;
0x00035120 sb zero, (s1) | *(s1) = 0;
| label_75:
0x00035124 lw v1, 0x2c(sp) | v1 = *(var_2ch);
| if (v0 != 0) {
0x00035128 bnez v0, 0x351e4 | goto label_78;
| }
0x0003512c lw v0, 0x24(s6) | v0 = *((s6 + 9));
0x00035130 lw v0, 0x38(v0) | v0 = *((v0 + 14));
0x00035134 lw t9, -0x7e30(gp) | t9 = *((gp - 8076));
| if (v1 != v0) {
0x00035138 beq v1, v0, 0x35160 |
0x0003513c lw a2, -0x7fd4(gp) | a2 = *(gp);
0x00035140 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x00035144 addiu a2, a2, 0x7c10 | a2 += 0x7c10;
0x00035148 addiu a1, zero, 0x5a | a1 = 0x5a;
0x0003514c addiu t9, t9, -0x345c | t9 += -0x345c;
0x00035150 move a0, s6 | a0 = s6;
0x00035154 bal 0x2cba4 | fcn_0002cba4 ();
0x00035158 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003515c lw t9, -0x7e30(gp) | t9 = *((gp - 8076));
| }
0x00035160 move a0, s6 | a0 = s6;
0x00035164 bal 0x28648 | sym_xmlNextChar ();
0x00035168 lw v0, (s6) | v0 = *(s6);
0x0003516c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00035170 beqz v0, 0x35068 | goto label_18;
| }
0x00035174 lw t9, 0x50(v0) | t9 = *((v0 + 20));
0x00035178 lw v0, -0x7158(gp) | v0 = *(gp);
| if (t9 == 0) {
0x0003517c beqz t9, 0x3506c | goto label_19;
| }
0x00035180 lw v0, 0xd4(s6) | v0 = *((s6 + 53));
0x00035184 lw v0, -0x7158(gp) | v0 = *(gp);
| if (v0 != 0) {
0x00035188 bnez v0, 0x3506c | goto label_19;
| }
0x0003518c lw a0, 4(s6) | a0 = *((s6 + 1));
0x00035190 move a1, s0 | a1 = s0;
0x00035194 jalr t9 | t9 ();
0x00035198 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003519c b 0x35068 | goto label_18;
| label_71:
0x000351a0 ori v1, zero, 0xd700 | v1 = 0xd700;
0x000351a4 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x000351a8 addiu v0, zero, 0x2d | v0 = 0x2d;
| if (v0 == 0) {
0x000351ac bnez v0, 0x35210 |
0x000351b0 lui v0, 0xffff | v0 = 0xffff0000;
0x000351b4 addiu v1, v0, 0x2000 | v1 = v0 + 0x2000;
0x000351b8 addu v1, s5, v1 | v1 = s5 + v1;
0x000351bc sltiu v1, v1, 0x1ffe | v1 = (v1 < 0x1ffe) ? 1 : 0;
0x000351c0 addiu v0, zero, 0x2d | v0 = 0x2d;
| if (v1 == 0) {
0x000351c4 bnel v1, zero, 0x35210 | goto label_79;
| }
0x000351c8 addu v0, s5, v0 | v0 = s5 + v0;
0x000351cc lui v1, 0x10 | v1 = 0x100000;
0x000351d0 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x000351d4 addiu v0, zero, 0x2d | v0 = 0x2d;
| if (v0 != 0) {
0x000351d8 bnez v0, 0x35210 | goto label_79;
| }
0x000351dc addu s1, s0, s1 | s1 = s0 + s1;
0x000351e0 sb zero, (s1) | *(s1) = 0;
| label_78:
0x000351e4 lw a2, -0x7fd4(gp) | a2 = *(gp);
0x000351e8 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x000351ec move a3, s5 | a3 = s5;
0x000351f0 addiu a2, a2, 0x7bc0 | a2 += aav.0x00007bc0;
0x000351f4 addiu a1, zero, 9 | a1 = 9;
0x000351f8 addiu t9, t9, -0x369c | t9 += -0x369c;
0x000351fc move a0, s6 | a0 = s6;
0x00035200 bal 0x2c964 | fcn_0002c964 ();
0x00035204 lw gp, 0x10(sp) | gp = *(var_10h);
0x00035208 b 0x35068 | goto label_18;
| label_73:
0x0003520c addiu v0, zero, 0x2d | v0 = 0x2d;
| }
| if (s4 == v0) {
| label_79:
0x00035210 beq s4, v0, 0x354c0 | goto label_80;
| }
0x00035214 nop |
| label_28:
0x00035218 lui v0, 0x98 | v0 = 0x989681;
| label_27:
0x0003521c ori v0, v0, 0x9681 |
| label_77:
0x00035220 sltu v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x00035224 addiu v0, s1, 5 | v0 = s1 + 5;
| if (v0 == 0) {
0x00035228 bnez v0, 0x3523c |
0x0003522c lw v0, 0x168(s6) | v0 = *(s6);
0x00035230 ext v0, v0, 0x13, 1 | __asm ("ext v0, v0, 0x13, 1");
0x00035234 addiu v0, s1, 5 | v0 = s1 + 5;
| if (v0 == 0) {
0x00035238 beqz v0, 0x354e4 | goto label_81;
| }
| }
0x0003523c sltu v0, v0, s3 | v0 = (v0 < s3) ? 1 : 0;
0x00035240 lw v1, 0x38(sp) | v1 = *(var_38h);
| if (v0 == 0) {
0x00035244 bnez v0, 0x35270 |
0x00035248 lw v0, -0x6e24(gp) | v0 = *(gp);
0x0003524c sll s3, s3, 1 | s3 <<= 1;
0x00035250 move a1, s3 | a1 = s3;
0x00035254 lw t9, (v0) | t9 = *(v0);
0x00035258 move a0, s0 | a0 = s0;
0x0003525c jalr t9 | t9 ();
0x00035260 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00035264 beqz v0, 0x354f4 | goto label_82;
| }
0x00035268 move s0, v0 | s0 = v0;
0x0003526c lw v1, 0x38(sp) | v1 = *(var_38h);
| }
0x00035270 addiu v0, zero, 1 | v0 = 1;
0x00035274 addu a0, s0, s1 | a0 = s0 + s1;
| if (v1 != v0) {
0x00035278 bne v1, v0, 0x35538 | goto label_83;
| }
0x0003527c addiu s1, s1, 1 | s1++;
0x00035280 sb fp, (a0) | *(a0) = fp;
| label_31:
0x00035284 lw v1, 0x3c(sp) | v1 = *(var_3ch);
0x00035288 lw a0, 0x40(sp) | a0 = *(var_40h);
0x0003528c addiu s7, s7, 1 | s7++;
0x00035290 sltiu v0, s7, 0x33 | v0 = (s7 < 0x33) ? 1 : 0;
0x00035294 sw v1, 0x38(sp) | *(var_38h) = v1;
0x00035298 sw a0, 0x3c(sp) | *(var_3ch) = a0;
| if (v0 != 0) {
0x0003529c bnez v0, 0x352e0 | goto label_84;
| }
0x000352a0 lw v0, 0x124(s6) | v0 = *(s6);
0x000352a4 lw v1, 0xac(s6) | v1 = *((s6 + 43));
| if (v0 != 0) {
0x000352a8 bnel v0, zero, 0x352cc |
0x000352ac lw v1, 0x24(s6) | v1 = *((s6 + 9));
0x000352b0 lw v0, 0x14(v1) | v0 = *((v1 + 5));
0x000352b4 lw v1, 0x10(v1) | v1 = *((v1 + 4));
0x000352b8 subu v0, v0, v1 | __asm ("subu v0, v0, v1");
0x000352bc slti v0, v0, 0xfa | v0 = (v0 < 0xfa) ? 1 : 0;
0x000352c0 lw t9, 0x28(sp) | t9 = *(var_28h);
| if (v0 != 0) {
0x000352c4 bnez v0, 0x35528 | goto label_85;
| }
| label_30:
0x000352c8 lw v1, 0xac(s6) | v1 = *((s6 + 43));
| }
0x000352cc addiu v0, zero, -1 | v0 = -1;
0x000352d0 lw v0, -0x7158(gp) | v0 = *(gp);
| if (v1 == v0) {
0x000352d4 beq v1, v0, 0x3506c | goto label_19;
| }
0x000352d8 lw a0, 0x40(sp) | a0 = *(var_40h);
0x000352dc move s7, zero | s7 = 0;
| label_84:
0x000352e0 lw v0, 0x24(s6) | v0 = *((s6 + 9));
0x000352e4 addiu a1, zero, 0xa | a1 = 0xa;
0x000352e8 lw v1, 0x10(v0) | v1 = *((v0 + 4));
0x000352ec lbu a2, (v1) | a2 = *(v1);
| if (a2 == a1) {
0x000352f0 beql a2, a1, 0x353a8 | goto label_86;
| }
0x000352f4 lw a1, 0x1c(v0) | a1 = *((v0 + 7));
0x000352f8 lw a1, 0x20(v0) | a1 = *((v0 + 8));
0x000352fc addiu a1, a1, 1 | a1++;
0x00035300 sw a1, 0x20(v0) | *((v0 + 8)) = a1;
| label_21:
0x00035304 addu v1, v1, a0 | v1 += a0;
0x00035308 lw a1, 0x24(sp) | a1 = *(var_24h);
0x0003530c lw t9, 0x20(sp) | t9 = *(var_20h);
0x00035310 sw v1, 0x10(v0) | *((v0 + 4)) = v1;
0x00035314 move a0, s6 | a0 = s6;
0x00035318 jalr t9 | t9 ();
0x0003531c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00035320 bnez v0, 0x35388 | goto label_87;
| }
0x00035324 lw v0, 0x124(s6) | v0 = *(s6);
0x00035328 lw a1, 0x24(sp) | a1 = *(var_24h);
| if (v0 != 0) {
0x0003532c bnez v0, 0x35378 | goto label_32;
| }
0x00035330 lw v0, 0x24(s6) | v0 = *((s6 + 9));
0x00035334 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x00035338 lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x0003533c subu v1, a0, v1 | __asm ("subu v1, a0, v1");
0x00035340 slti v1, v1, 0x1f5 | v1 = (v1 < 0x1f5) ? 1 : 0;
0x00035344 lw v1, 0x14(v0) | v1 = *((v0 + 5));
| if (v1 == 0) {
0x00035348 bnez v1, 0x35360 |
0x0003534c subu v1, v1, a0 | __asm ("subu v1, v1, a0");
0x00035350 slti v1, v1, 0x1f4 | v1 = (v1 < aav.0x000001f4) ? 1 : 0;
0x00035354 lw v0, 0x34(sp) | v0 = *(var_34h);
| if (v1 == 0) {
0x00035358 bnel v1, zero, 0x35550 | goto label_88;
| }
| label_33:
0x0003535c lw v1, 0x14(v0) | v1 = *((v0 + 5));
| }
0x00035360 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00035364 subu v0, v1, v0 | __asm ("subu v0, v1, v0");
0x00035368 slti v0, v0, 0xfa | v0 = (v0 < 0xfa) ? 1 : 0;
0x0003536c lw t9, 0x28(sp) | t9 = *(var_28h);
| if (v0 != 0) {
0x00035370 bnez v0, 0x35398 | goto label_89;
| }
0x00035374 lw a1, 0x24(sp) | a1 = *(var_24h);
| do {
| label_32:
0x00035378 lw t9, 0x20(sp) | t9 = *(var_20h);
0x0003537c move a0, s6 | a0 = s6;
0x00035380 jalr t9 | t9 ();
0x00035384 lw gp, 0x10(sp) | gp = *(var_10h);
| label_87:
0x00035388 move fp, s4 | fp = s4;
0x0003538c move s4, s5 | s4 = s5;
0x00035390 move s5, v0 | s5 = v0;
0x00035394 b 0x3500c | goto label_20;
| label_89:
0x00035398 move a0, s6 | a0 = s6;
0x0003539c jalr t9 | t9 ();
0x000353a0 lw a1, 0x24(sp) | a1 = *(var_24h);
0x000353a4 b 0x35378 |
| } while (1);
| label_86:
0x000353a8 addiu a1, a1, 1 | a1++;
0x000353ac sw a1, 0x1c(v0) | *((v0 + 7)) = a1;
0x000353b0 addiu a1, zero, 1 | a1 = 1;
0x000353b4 sw a1, 0x20(v0) | *((v0 + 8)) = a1;
0x000353b8 b 0x35304 | goto label_21;
| label_70:
0x000353bc addiu a0, a0, 1 | a0++;
0x000353c0 sw a0, 0x1c(v0) | *((v0 + 7)) = a0;
0x000353c4 addiu a0, zero, 1 | a0 = 1;
0x000353c8 sw a0, 0x20(v0) | *((v0 + 8)) = a0;
0x000353cc b 0x34fbc | goto label_22;
| label_69:
0x000353d0 ori v1, zero, 0xd700 | v1 = 0xd700;
0x000353d4 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x000353d8 move v0, zero | v0 = 0;
| if (v0 != 0) {
0x000353dc bnez v0, 0x34f90 | goto label_23;
| }
0x000353e0 lui v0, 0xffff | v0 = 0xffff0000;
0x000353e4 addiu v1, v0, 0x2000 | v1 = v0 + 0x2000;
0x000353e8 addu v1, s4, v1 | v1 = s4 + v1;
0x000353ec sltiu v1, v1, 0x1ffe | v1 = (v1 < 0x1ffe) ? 1 : 0;
0x000353f0 move v0, zero | v0 = 0;
| if (v1 == 0) {
0x000353f4 bnel v1, zero, 0x34f90 | goto label_23;
| }
0x000353f8 addu v0, s4, v0 | v0 = s4 + v0;
0x000353fc lui v1, 0x10 | v1 = 0x100000;
0x00035400 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x00035404 xori v0, v0, 1 | v0 ^= 1;
0x00035408 b 0x34f90 | goto label_23;
| label_68:
0x0003540c addiu a0, a0, 1 | a0++;
0x00035410 sw a0, 0x1c(v0) | *((v0 + 7)) = a0;
0x00035414 addiu a0, zero, 1 | a0 = 1;
0x00035418 sw a0, 0x20(v0) | *((v0 + 8)) = a0;
0x0003541c b 0x34f3c | goto label_24;
| label_67:
0x00035420 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x00035424 move a3, fp | a3 = fp;
0x00035428 addiu a2, a2, 0x7bc0 | a2 += aav.0x00007bc0;
0x0003542c addiu a1, zero, 9 | a1 = 9;
0x00035430 move a0, s6 | a0 = s6;
0x00035434 addiu t9, t9, -0x369c | t9 += -0x369c;
| label_26:
0x00035438 jalr t9 | t9 ();
0x0003543c nop |
0x00035440 lw gp, 0x10(sp) | gp = *(var_10h);
0x00035444 lw v0, -0x7158(gp) | v0 = *(gp);
0x00035448 lw t9, (v0) | t9 = *(v0);
0x0003544c move a0, s0 | a0 = s0;
0x00035450 jalr t9 | t9 ();
0x00035454 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x00035458 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003545c sw v0, 0xac(s6) | *((s6 + 43)) = v0;
0x00035460 b 0x34810 | goto label_0;
| label_66:
0x00035464 ori v1, zero, 0xd700 | v1 = 0xd700;
0x00035468 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x0003546c move v0, zero | v0 = 0;
| if (v0 != 0) {
0x00035470 bnez v0, 0x34f10 | goto label_25;
| }
0x00035474 lui v0, 0xffff | v0 = 0xffff0000;
0x00035478 addiu v1, v0, 0x2000 | v1 = v0 + 0x2000;
0x0003547c addu v1, fp, v1 | v1 = fp + v1;
0x00035480 sltiu v1, v1, 0x1ffe | v1 = (v1 < 0x1ffe) ? 1 : 0;
0x00035484 move v0, zero | v0 = 0;
| if (v1 == 0) {
0x00035488 bnel v1, zero, 0x34f10 | goto label_25;
| }
0x0003548c addu v0, fp, v0 | v0 = fp + v0;
0x00035490 lui v1, 0x10 | v1 = 0x100000;
0x00035494 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x00035498 xori v0, v0, 1 | v0 ^= 1;
0x0003549c b 0x34f10 | goto label_25;
| label_65:
0x000354a0 lw a2, -0x7fd4(gp) | a2 = *(gp);
0x000354a4 move a3, zero | a3 = 0;
0x000354a8 addiu a2, a2, 0x7c44 | a2 += aav.0x00007c44;
| label_29:
0x000354ac lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x000354b0 addiu a1, zero, 0x2d | a1 = 0x2d;
0x000354b4 move a0, s6 | a0 = s6;
0x000354b8 addiu t9, t9, -0x357c | t9 += -0x357c;
0x000354bc b 0x35438 | goto label_26;
| label_80:
0x000354c0 lui v0, 0x98 | v0 = 0x980000;
| if (fp != s4) {
0x000354c4 bne fp, s4, 0x3521c | goto label_27;
| }
0x000354c8 lw t9, 0x30(sp) | t9 = *(var_30h);
0x000354cc move a2, zero | a2 = 0;
0x000354d0 addiu a1, zero, 0x50 | a1 = 0x50;
0x000354d4 move a0, s6 | a0 = s6;
0x000354d8 jalr t9 | t9 ();
0x000354dc lw gp, 0x10(sp) | gp = *(var_10h);
0x000354e0 b 0x35218 | goto label_28;
| label_81:
0x000354e4 lw a2, -0x7fd4(gp) | a2 = *(gp);
0x000354e8 move a3, zero | a3 = 0;
0x000354ec addiu a2, a2, 0x7b28 | a2 += 0x7b28;
0x000354f0 b 0x354ac | goto label_29;
| label_82:
0x000354f4 lw v0, -0x7158(gp) | v0 = *(gp);
0x000354f8 lw t9, (v0) | t9 = *(v0);
0x000354fc move a0, s0 | a0 = s0;
0x00035500 jalr t9 | t9 ();
0x00035504 lw gp, 0x10(sp) | gp = *(var_10h);
0x00035508 move a1, zero | a1 = 0;
0x0003550c lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x00035510 move a0, s6 | a0 = s6;
0x00035514 bal 0x2807c | sym_xmlErrMemory ();
0x00035518 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x0003551c lw gp, 0x10(sp) | gp = *(var_10h);
0x00035520 sw v0, 0xac(s6) | *((s6 + 43)) = v0;
0x00035524 b 0x34810 | goto label_0;
| label_85:
0x00035528 move a0, s6 | a0 = s6;
0x0003552c jalr t9 | t9 ();
0x00035530 lw gp, 0x10(sp) | gp = *(var_10h);
0x00035534 b 0x352c8 | goto label_30;
| label_83:
0x00035538 lw t9, -0x7ef0(gp) | t9 = *(gp);
0x0003553c move a1, fp | a1 = fp;
0x00035540 bal 0x29264 | sym_xmlCopyCharMultiByte ();
0x00035544 addu s1, s1, v0 | s1 += v0;
0x00035548 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003554c b 0x35284 | goto label_31;
| label_88:
0x00035550 addiu t9, v0, -0x267c | t9 = v0 + -0x267c;
0x00035554 addiu a0, s6, 0x24 | a0 = s6 + 0x24;
0x00035558 bal 0x2d984 | fcn_0002d984 ();
0x0003555c lw v0, 0x124(s6) | v0 = *(s6);
0x00035560 lw a1, 0x24(sp) | a1 = *(var_24h);
| if (v0 != 0) {
0x00035564 bnez v0, 0x35378 | goto label_32;
| }
0x00035568 lw v0, 0x24(s6) | v0 = *((s6 + 9));
0x0003556c b 0x3535c | goto label_33;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x3cc0c */
| #include <stdint.h>
|
; (fcn) sym.xmlParseElementDecl () | void xmlParseElementDecl () {
0x0003cc0c lui gp, 0x15 |
0x0003cc10 addiu gp, gp, 0x4a64 |
0x0003cc14 addu gp, gp, t9 | gp += t9;
0x0003cc18 addiu sp, sp, -0x40 |
0x0003cc1c addiu v1, zero, 0x3c | v1 = 0x3c;
0x0003cc20 sw s0, 0x24(sp) | *(var_24h) = s0;
0x0003cc24 move s0, a0 | s0 = a0;
0x0003cc28 lw a0, 0x24(a0) | a0 = *((a0 + 9));
0x0003cc2c sw s1, 0x28(sp) | *(var_28h) = s1;
0x0003cc30 lw s1, -0x7000(gp) | s1 = *((gp - 7168));
0x0003cc34 lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x0003cc38 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0003cc3c lw a1, (s1) | a1 = *(s1);
0x0003cc40 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x0003cc44 sw s5, 0x38(sp) | *(var_38h) = s5;
0x0003cc48 sw s4, 0x34(sp) | *(var_34h) = s4;
0x0003cc4c sw s3, 0x30(sp) | *(var_30h) = s3;
0x0003cc50 sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x0003cc54 sw zero, 0x18(sp) | *(var_18h) = 0;
0x0003cc58 sw a1, 0x1c(sp) | *(var_1ch) = a1;
0x0003cc5c lbu a1, (v0) | a1 = *(v0);
0x0003cc60 addiu v1, zero, 0x21 | v1 = 0x21;
| if (a1 != v1) {
0x0003cc64 bne a1, v1, 0x3cf74 | goto label_9;
| }
0x0003cc68 lbu a1, 1(v0) | a1 = *((v0 + 1));
0x0003cc6c addiu a1, zero, 0x45 | a1 = 0x45;
| if (a1 != v1) {
0x0003cc70 bne a1, v1, 0x3cf74 | goto label_9;
| }
0x0003cc74 lbu v1, 2(v0) | v1 = *((v0 + 2));
0x0003cc78 addiu a1, zero, 0x4c | a1 = 0x4c;
| if (v1 != a1) {
0x0003cc7c bne v1, a1, 0x3cf74 | goto label_9;
| }
0x0003cc80 lbu a2, 3(v0) | a2 = *((v0 + 3));
0x0003cc84 addiu s5, zero, -1 | s5 = -1;
| if (a2 == a1) {
0x0003cc88 bnel a2, a1, 0x3ceb4 | goto label_2;
| }
0x0003cc8c lbu a1, 4(v0) | a1 = *((v0 + 4));
0x0003cc90 addiu v1, zero, 0x4d | v1 = 0x4d;
| if (a1 != v1) {
0x0003cc94 bne a1, v1, 0x3cf74 | goto label_9;
| }
0x0003cc98 lbu a2, 5(v0) | a2 = *((v0 + 5));
0x0003cc9c addiu s5, zero, -1 | s5 = -1;
| if (a2 == v1) {
0x0003cca0 bnel a2, v1, 0x3ceb4 | goto label_2;
| }
0x0003cca4 lbu v1, 6(v0) | v1 = *((v0 + 6));
0x0003cca8 addiu v1, zero, 0x4e | v1 = 0x4e;
| if (v1 != a1) {
0x0003ccac bne v1, a1, 0x3cf74 | goto label_9;
| }
0x0003ccb0 lbu a1, 7(v0) | a1 = *((v0 + 7));
0x0003ccb4 addiu v1, zero, 0x54 | v1 = 0x54;
| if (a1 != v1) {
0x0003ccb8 bne a1, v1, 0x3cf74 | goto label_9;
| }
0x0003ccbc lbu a1, 8(v0) | a1 = *((v0 + 8));
0x0003ccc0 addiu a2, v0, 9 | a2 = v0 + 9;
| if (a1 != v1) {
0x0003ccc4 bne a1, v1, 0x3cf74 | goto label_9;
| }
0x0003ccc8 lw a1, 0xc8(s0) | a1 = *((s0 + 50));
0x0003cccc lw v1, 0x20(a0) | v1 = *((a0 + 8));
0x0003ccd0 addiu a1, a1, 9 | a1 += 9;
0x0003ccd4 addiu v1, v1, 9 | v1 += 9;
0x0003ccd8 lw s3, 0x38(a0) | s3 = *((a0 + 14));
0x0003ccdc sw a1, 0xc8(s0) | *((s0 + 50)) = a1;
0x0003cce0 sw a2, 0x10(a0) | *((a0 + 4)) = a2;
0x0003cce4 sw v1, 0x20(a0) | *((a0 + 8)) = v1;
0x0003cce8 lbu v0, 9(v0) | v0 = *((v0 + 9));
0x0003ccec lw t9, -0x7ef8(gp) | t9 = *((gp - 8126));
0x0003ccf0 beqz v0, 0x3cdf4 |
| while (1) {
0x0003ccf4 lw s2, -0x7df4(gp) | s2 = *((gp - 8061));
0x0003ccf8 move t9, s2 | t9 = s2;
0x0003ccfc move a0, s0 | a0 = s0;
0x0003cd00 bal 0x38628 | sym_xmlSkipBlankChars ();
0x0003cd04 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0003cd08 beqz v0, 0x3d034 | goto label_10;
| }
0x0003cd0c lw t9, -0x7e10(gp) | t9 = *(gp);
0x0003cd10 move a0, s0 | a0 = s0;
0x0003cd14 bal 0x31e4c | sym_xmlParseName ();
0x0003cd18 move s4, v0 | s4 = v0;
0x0003cd1c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0003cd20 beqz v0, 0x3d044 | goto label_11;
| }
0x0003cd24 move t9, s2 | t9 = s2;
0x0003cd28 move a0, s0 | a0 = s0;
0x0003cd2c bal 0x38628 | sym_xmlSkipBlankChars ();
0x0003cd30 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0003cd34 beqz v0, 0x3ce04 | goto label_12;
| }
0x0003cd38 lw a0, 0x24(s0) | a0 = *((s0 + 9));
0x0003cd3c addiu a1, zero, 0x45 | a1 = 0x45;
0x0003cd40 lw v1, 0x10(a0) | v1 = *((a0 + 4));
0x0003cd44 lbu v0, (v1) | v0 = *(v1);
| if (v0 != a1) {
0x0003cd48 beql v0, a1, 0x3cdb0 |
0x0003cd4c lbu a1, 1(v1) | a1 = *((v1 + 1));
| label_0:
0x0003cd50 addiu a1, zero, 0x41 | a1 = 0x41;
0x0003cd54 addiu v1, zero, 0x28 | v1 = 0x28;
| if (v0 == a1) {
0x0003cd58 bnel v0, a1, 0x3ce40 | goto label_13;
| }
0x0003cd5c lbu a1, 1(v1) | a1 = *((v1 + 1));
0x0003cd60 addiu v0, zero, 0x4e | v0 = 0x4e;
0x0003cd64 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
| if (a1 != v0) {
0x0003cd68 bne a1, v0, 0x3cdd0 | goto label_5;
| }
0x0003cd6c lbu a1, 2(v1) | a1 = *((v1 + 2));
0x0003cd70 addiu v0, zero, 0x59 | v0 = 0x59;
0x0003cd74 addiu a1, zero, 0x36 | a1 = 0x36;
| if (a1 != v0) {
0x0003cd78 bne a1, v0, 0x3cdd4 | goto label_6;
| }
0x0003cd7c lw a1, 0xc8(s0) | a1 = *((s0 + 50));
0x0003cd80 lw v0, 0x20(a0) | v0 = *((a0 + 8));
0x0003cd84 addiu a1, a1, 3 | a1 += 3;
0x0003cd88 addiu v0, v0, 3 | v0 += 3;
0x0003cd8c addiu a2, v1, 3 | a2 = v1 + 3;
0x0003cd90 sw a1, 0xc8(s0) | *((s0 + 50)) = a1;
0x0003cd94 sw a2, 0x10(a0) | *((a0 + 4)) = a2;
0x0003cd98 sw v0, 0x20(a0) | *((a0 + 8)) = v0;
0x0003cd9c lbu v0, 3(v1) | v0 = *((v1 + 3));
0x0003cda0 lw t9, -0x7ef8(gp) | t9 = *((gp - 8126));
| if (v0 == 0) {
0x0003cda4 beqz v0, 0x3d024 | goto label_14;
| }
0x0003cda8 addiu s5, zero, 2 | s5 = 2;
0x0003cdac b 0x3ce5c | goto label_7;
| }
| label_1:
0x0003cdb0 addiu v0, zero, 0x4d | v0 = 0x4d;
0x0003cdb4 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
| if (a1 == v0) {
0x0003cdb8 bne a1, v0, 0x3cdd0 |
0x0003cdbc lbu a1, 2(v1) | a1 = *((v1 + 2));
0x0003cdc0 addiu v0, zero, 0x50 | v0 = 0x50;
| if (a1 == v0) {
0x0003cdc4 beql a1, v0, 0x3cf9c | goto label_15;
| }
0x0003cdc8 lbu a1, 3(v1) | a1 = *((v1 + 3));
0x0003cdcc lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
| }
| label_5:
0x0003cdd0 addiu a1, zero, 0x36 | a1 = 0x36;
| label_6:
0x0003cdd4 addiu a2, a2, -0x796c | a2 += -0x796c;
| label_8:
0x0003cdd8 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x0003cddc addiu t9, t9, -0x345c | t9 += -0x345c;
0x0003cde0 move a0, s0 | a0 = s0;
0x0003cde4 bal 0x2cba4 | fcn_0002cba4 ();
0x0003cde8 addiu s5, zero, -1 | s5 = -1;
0x0003cdec lw gp, 0x10(sp) | gp = *(var_10h);
0x0003cdf0 b 0x3ceb4 | goto label_2;
0x0003cdf4 addiu a1, zero, 0xfa | a1 = 0xfa;
0x0003cdf8 bal 0x28398 | sym_xmlParserInputGrow ();
0x0003cdfc lw gp, 0x10(sp) | gp = *(var_10h);
0x0003ce00 b 0x3ccf4 |
| }
| label_12:
0x0003ce04 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0003ce08 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x0003ce0c addiu a1, zero, 0x41 | a1 = 0x41;
0x0003ce10 move a0, s0 | a0 = s0;
0x0003ce14 addiu t9, t9, -0x345c | t9 += -0x345c;
0x0003ce18 addiu a2, a2, -0x79d4 | a2 += -0x79d4;
0x0003ce1c bal 0x2cba4 | fcn_0002cba4 ();
0x0003ce20 lw a0, 0x24(s0) | a0 = *((s0 + 9));
0x0003ce24 addiu a1, zero, 0x45 | a1 = 0x45;
0x0003ce28 lw v1, 0x10(a0) | v1 = *((a0 + 4));
0x0003ce2c lbu v0, (v1) | v0 = *(v1);
0x0003ce30 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != a1) {
0x0003ce34 bne v0, a1, 0x3cd50 | goto label_0;
| }
0x0003ce38 lbu a1, 1(v1) | a1 = *((v1 + 1));
0x0003ce3c b 0x3cdb0 | goto label_1;
| label_13:
0x0003ce40 lw t9, -0x7d5c(gp) | t9 = *((gp - 8023));
| if (v0 != v1) {
0x0003ce44 bne v0, v1, 0x3cfec | goto label_16;
| }
0x0003ce48 addiu a2, sp, 0x18 | a2 = sp + 0x18;
0x0003ce4c move a1, s4 | a1 = s4;
0x0003ce50 move a0, s0 | a0 = s0;
0x0003ce54 bal 0x3ca4c | sym_xmlParseElementContentDecl ();
0x0003ce58 move s5, v0 | s5 = v0;
| label_7:
0x0003ce5c move t9, s2 | t9 = s2;
0x0003ce60 move a0, s0 | a0 = s0;
0x0003ce64 bal 0x38628 | sym_xmlSkipBlankChars ();
0x0003ce68 lw v0, 0x24(s0) | v0 = *((s0 + 9));
0x0003ce6c addiu v1, zero, 0x3e | v1 = 0x3e;
0x0003ce70 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x0003ce74 lbu a0, (a0) | a0 = *(a0);
0x0003ce78 lw gp, 0x10(sp) | gp = *(var_10h);
| if (a0 == v1) {
0x0003ce7c beq a0, v1, 0x3cee8 | goto label_17;
| }
0x0003ce80 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x0003ce84 addiu a1, zero, 0x49 | a1 = 0x49;
0x0003ce88 move a2, zero | a2 = 0;
0x0003ce8c addiu t9, t9, -0x4cc8 | t9 += -aav.0x00004cc8;
0x0003ce90 move a0, s0 | a0 = s0;
0x0003ce94 bal 0x2b338 | fcn_0002b338 ();
0x0003ce98 lw a1, 0x18(sp) | a1 = *(var_18h);
0x0003ce9c lw gp, 0x10(sp) | gp = *(var_10h);
| if (a1 == 0) {
0x0003cea0 beqz a1, 0x3ceb4 | goto label_2;
| }
0x0003cea4 lw t9, -0x7d68(gp) | t9 = *(gp);
| label_3:
0x0003cea8 lw a0, 8(s0) | a0 = *((s0 + 2));
0x0003ceac jalr t9 | t9 ();
0x0003ceb0 lw gp, 0x10(sp) | gp = *(var_10h);
| do {
| label_2:
0x0003ceb4 lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x0003ceb8 lw v1, (s1) | v1 = *(s1);
0x0003cebc move v0, s5 | v0 = s5;
| if (a0 != v1) {
0x0003cec0 bne a0, v1, 0x3d064 | goto label_18;
| }
0x0003cec4 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x0003cec8 lw s5, 0x38(sp) | s5 = *(var_38h);
0x0003cecc lw s4, 0x34(sp) | s4 = *(var_34h);
0x0003ced0 lw s3, 0x30(sp) | s3 = *(var_30h);
0x0003ced4 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x0003ced8 lw s1, 0x28(sp) | s1 = *(var_28h);
0x0003cedc lw s0, 0x24(sp) | s0 = *(var_24h);
0x0003cee0 addiu sp, sp, 0x40 |
0x0003cee4 jr ra | return v1;
| label_17:
0x0003cee8 lw v0, 0x38(v0) | v0 = *((v0 + 14));
0x0003ceec lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
| if (v0 != s3) {
0x0003cef0 bne v0, s3, 0x3cf7c | goto label_19;
| }
| label_4:
0x0003cef4 lw t9, -0x7e30(gp) | t9 = *((gp - 8076));
0x0003cef8 move a0, s0 | a0 = s0;
0x0003cefc bal 0x28648 | sym_xmlNextChar ();
0x0003cf00 lw v0, (s0) | v0 = *(s0);
0x0003cf04 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0003cf08 beqz v0, 0x3cf60 | goto label_20;
| }
0x0003cf0c lw v1, 0xd4(s0) | v1 = *((s0 + 53));
0x0003cf10 lw a1, 0x18(sp) | a1 = *(var_18h);
| if (v1 != 0) {
0x0003cf14 bnez v1, 0x3cf64 | goto label_21;
| }
0x0003cf18 lw t9, 0x24(v0) | t9 = *((v0 + 9));
| if (t9 == 0) {
0x0003cf1c beqz t9, 0x3cf64 | goto label_21;
| }
0x0003cf20 nop |
0x0003cf24 sw zero, 0x14(a1) | *((a1 + 5)) = 0;
| if (a1 != 0) {
0x0003cf28 bnel a1, zero, 0x3cf2c |
| }
0x0003cf2c lw a0, 4(s0) | a0 = *((s0 + 1));
0x0003cf30 move a3, a1 | a3 = a1;
0x0003cf34 move a2, s5 | a2 = s5;
0x0003cf38 move a1, s4 | a1 = s4;
0x0003cf3c jalr t9 | t9 ();
0x0003cf40 lw a1, 0x18(sp) | a1 = *(var_18h);
0x0003cf44 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003cf48 beqz a1, 0x3ceb4 |
| } while (a1 == 0);
0x0003cf4c lw v0, 0x14(a1) | v0 = *((a1 + 5));
0x0003cf50 lw t9, -0x7d68(gp) | t9 = *(gp);
| if (v0 != 0) {
0x0003cf54 bnez v0, 0x3ceb4 | goto label_2;
| }
0x0003cf58 b 0x3cea8 | goto label_3;
0x0003cf5c nop |
| label_20:
0x0003cf60 lw a1, 0x18(sp) | a1 = *(var_18h);
| label_21:
0x0003cf64 lw t9, -0x7d68(gp) | t9 = *(gp);
| if (a1 != 0) {
0x0003cf68 bnez a1, 0x3cea8 | goto label_3;
| }
0x0003cf6c b 0x3ceb4 | goto label_2;
0x0003cf70 nop |
| label_9:
0x0003cf74 addiu s5, zero, -1 | s5 = -1;
0x0003cf78 b 0x3ceb4 | goto label_2;
| label_19:
0x0003cf7c lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x0003cf80 addiu a2, a2, -0x7934 | a2 += -0x7934;
0x0003cf84 addiu a1, zero, 0x5a | a1 = 0x5a;
0x0003cf88 addiu t9, t9, -0x345c | t9 += -0x345c;
0x0003cf8c move a0, s0 | a0 = s0;
0x0003cf90 bal 0x2cba4 | fcn_0002cba4 ();
0x0003cf94 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003cf98 b 0x3cef4 | goto label_4;
| label_15:
0x0003cf9c addiu v0, zero, 0x54 | v0 = 0x54;
0x0003cfa0 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
| if (a1 != v0) {
0x0003cfa4 bne a1, v0, 0x3cdd0 | goto label_5;
| }
0x0003cfa8 lbu a1, 4(v1) | a1 = *((v1 + 4));
0x0003cfac addiu v0, zero, 0x59 | v0 = 0x59;
0x0003cfb0 addiu a1, zero, 0x36 | a1 = 0x36;
| if (a1 != v0) {
0x0003cfb4 bne a1, v0, 0x3cdd4 | goto label_6;
| }
0x0003cfb8 lw a1, 0xc8(s0) | a1 = *((s0 + 50));
0x0003cfbc lw v0, 0x20(a0) | v0 = *((a0 + 8));
0x0003cfc0 addiu a1, a1, 5 | a1 += 5;
0x0003cfc4 addiu v0, v0, 5 | v0 += 5;
0x0003cfc8 addiu a2, v1, 5 | a2 = v1 + 5;
0x0003cfcc sw a1, 0xc8(s0) | *((s0 + 50)) = a1;
0x0003cfd0 sw a2, 0x10(a0) | *((a0 + 4)) = a2;
0x0003cfd4 sw v0, 0x20(a0) | *((a0 + 8)) = v0;
0x0003cfd8 lbu v0, 5(v1) | v0 = *((v1 + 5));
0x0003cfdc lw t9, -0x7ef8(gp) | t9 = *((gp - 8126));
| if (v0 == 0) {
0x0003cfe0 beqz v0, 0x3d054 | goto label_22;
| }
0x0003cfe4 addiu s5, zero, 1 | s5 = 1;
0x0003cfe8 b 0x3ce5c | goto label_7;
| label_16:
0x0003cfec addiu v1, zero, 0x25 | v1 = 0x25;
0x0003cff0 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
| if (v0 != v1) {
0x0003cff4 bne v0, v1, 0x3cdd0 | goto label_5;
| }
0x0003cff8 lw v0, 0x60(s0) | v0 = *((s0 + 24));
0x0003cffc addiu a1, zero, 0x36 | a1 = 0x36;
| if (v0 != 0) {
0x0003d000 bnez v0, 0x3cdd4 | goto label_6;
| }
0x0003d004 lw v1, 0x28(s0) | v1 = *((s0 + 10));
0x0003d008 addiu v0, zero, 1 | v0 = 1;
0x0003d00c addiu a2, a2, -0x796c | a2 += -0x796c;
| if (v1 == v0) {
0x0003d010 bnel v1, v0, 0x3cdd8 | goto label_8;
| }
0x0003d014 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0003d018 addiu a1, zero, 0x15 | a1 = 0x15;
0x0003d01c addiu a2, a2, -0x79ac | a2 += -0x79ac;
0x0003d020 b 0x3cdd8 | goto label_8;
| label_14:
0x0003d024 addiu a1, zero, 0xfa | a1 = 0xfa;
0x0003d028 bal 0x28398 | sym_xmlParserInputGrow ();
0x0003d02c addiu s5, zero, 2 | s5 = 2;
0x0003d030 b 0x3ce5c | goto label_7;
| label_10:
0x0003d034 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0003d038 addiu a1, zero, 0x41 | a1 = 0x41;
0x0003d03c addiu a2, a2, -0x7a20 | a2 += -0x7a20;
0x0003d040 b 0x3cdd8 | goto label_8;
| label_11:
0x0003d044 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0003d048 addiu a1, zero, 0x44 | a1 = 0x44;
0x0003d04c addiu a2, a2, -0x7a00 | a2 += -0x7a00;
0x0003d050 b 0x3cdd8 | goto label_8;
| label_22:
0x0003d054 addiu a1, zero, 0xfa | a1 = 0xfa;
0x0003d058 bal 0x28398 | sym_xmlParserInputGrow ();
0x0003d05c addiu s5, zero, 1 | s5 = 1;
0x0003d060 b 0x3ce5c | goto label_7;
| label_18:
0x0003d064 lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x0003d068 jalr t9 | t9 ();
0x0003d06c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x394c4 */
| #include <stdint.h>
|
; (fcn) sym.xmlParseNotationDecl () | void xmlParseNotationDecl () {
0x000394c4 lui gp, 0x16 |
0x000394c8 addiu gp, gp, -0x7e54 |
0x000394cc addu gp, gp, t9 | gp += t9;
0x000394d0 addiu sp, sp, -0x48 |
0x000394d4 addiu v1, zero, 0x3c | v1 = 0x3c;
0x000394d8 sw s1, 0x30(sp) | *(var_30h) = s1;
0x000394dc move s1, a0 | s1 = a0;
0x000394e0 lw a0, 0x24(a0) | a0 = *((a0 + 9));
0x000394e4 sw s0, 0x2c(sp) | *(var_2ch) = s0;
0x000394e8 lw s0, -0x7000(gp) | s0 = *((gp - 7168));
0x000394ec lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x000394f0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000394f4 lw a1, (s0) | a1 = *(s0);
0x000394f8 sw ra, 0x44(sp) | *(var_44h) = ra;
0x000394fc sw s5, 0x40(sp) | *(var_40h) = s5;
0x00039500 sw s4, 0x3c(sp) | *(var_3ch) = s4;
0x00039504 sw s3, 0x38(sp) | *(var_38h) = s3;
0x00039508 sw s2, 0x34(sp) | *(var_34h) = s2;
0x0003950c sw a1, 0x24(sp) | *(var_24h) = a1;
0x00039510 lbu a1, (v0) | a1 = *(v0);
| if (a1 == v1) {
0x00039514 beql a1, v1, 0x3954c | goto label_4;
| }
0x00039518 lbu a1, 1(v0) | a1 = *((v0 + 1));
| do {
| label_0:
0x0003951c lw v1, 0x24(sp) | v1 = *(var_24h);
0x00039520 lw v0, (s0) | v0 = *(s0);
0x00039524 lw ra, 0x44(sp) | ra = *(var_44h);
| if (v1 != v0) {
0x00039528 bne v1, v0, 0x39784 | goto label_5;
| }
0x0003952c lw s5, 0x40(sp) | s5 = *(var_40h);
0x00039530 lw s4, 0x3c(sp) | s4 = *(var_3ch);
0x00039534 lw s3, 0x38(sp) | s3 = *(var_38h);
0x00039538 lw s2, 0x34(sp) | s2 = *(var_34h);
0x0003953c lw s1, 0x30(sp) | s1 = *(var_30h);
0x00039540 lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x00039544 addiu sp, sp, 0x48 |
0x00039548 jr ra | return v0;
| label_4:
0x0003954c addiu v1, zero, 0x21 | v1 = 0x21;
0x00039550 addiu a1, zero, 0x4e | a1 = 0x4e;
0x00039554 bne a1, v1, 0x3951c |
| } while (a1 != v1);
0x00039558 lbu v1, 2(v0) | v1 = *((v0 + 2));
0x0003955c addiu a2, zero, 0x4f | a2 = 0x4f;
| if (v1 != a1) {
0x00039560 bne v1, a1, 0x3951c | goto label_0;
| }
0x00039564 lbu a1, 3(v0) | a1 = *((v0 + 3));
0x00039568 addiu a3, zero, 0x54 | a3 = 0x54;
| if (a1 != a2) {
0x0003956c bne a1, a2, 0x3951c | goto label_0;
| }
0x00039570 lbu a2, 4(v0) | a2 = *((v0 + 4));
0x00039574 addiu a3, zero, 0x41 | a3 = 0x41;
| if (a2 != a3) {
0x00039578 bne a2, a3, 0x3951c | goto label_0;
| }
0x0003957c lbu t0, 5(v0) | t0 = *((v0 + 5));
| if (t0 != a3) {
0x00039580 bne t0, a3, 0x3951c | goto label_0;
| }
0x00039584 nop |
0x00039588 lbu a3, 6(v0) | a3 = *((v0 + 6));
0x0003958c addiu a2, zero, 0x49 | a2 = 0x49;
| if (a3 != a2) {
0x00039590 bne a3, a2, 0x3951c | goto label_0;
| }
0x00039594 lbu a3, 7(v0) | a3 = *((v0 + 7));
| if (a3 != a2) {
0x00039598 bne a3, a2, 0x3951c | goto label_0;
| }
0x0003959c nop |
0x000395a0 lbu a2, 8(v0) | a2 = *((v0 + 8));
| if (a2 != a1) {
0x000395a4 bne a2, a1, 0x3951c | goto label_0;
| }
0x000395a8 nop |
0x000395ac lbu a1, 9(v0) | a1 = *((v0 + 9));
| if (a1 != v1) {
0x000395b0 bne a1, v1, 0x3951c | goto label_0;
| }
0x000395b4 nop |
0x000395b8 lw v1, 0x124(s1) | v1 = *(s1);
0x000395bc lw s2, 0x38(a0) | s2 = *((a0 + 14));
| if (v1 == 0) {
0x000395c0 bnez v1, 0x395ec |
0x000395c4 lw v1, 0xc(a0) | v1 = *((a0 + 3));
0x000395c8 subu v1, v0, v1 | __asm ("subu v1, v0, v1");
0x000395cc slti v1, v1, 0x1f5 | v1 = (v1 < 0x1f5) ? 1 : 0;
0x000395d0 lw v1, 0xc8(s1) | v1 = *((s1 + 50));
| if (v1 == 0) {
0x000395d4 bnel v1, zero, 0x395f0 | goto label_6;
| }
0x000395d8 lw v1, 0x14(a0) | v1 = *((a0 + 5));
0x000395dc subu v0, v1, v0 | __asm ("subu v0, v1, v0");
0x000395e0 slti v0, v0, 0x1f4 | v0 = (v0 < aav.0x000001f4) ? 1 : 0;
0x000395e4 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
| if (v0 != 0) {
0x000395e8 bnez v0, 0x397f4 | goto label_7;
| }
| }
| label_2:
0x000395ec lw v1, 0xc8(s1) | v1 = *((s1 + 50));
| label_6:
0x000395f0 lw a1, 0x10(a0) | a1 = *((a0 + 4));
0x000395f4 lw v0, 0x20(a0) | v0 = *((a0 + 8));
0x000395f8 addiu v1, v1, 0xa | v1 += 0xa;
0x000395fc addiu v0, v0, 0xa | v0 += 0xa;
0x00039600 addiu a2, a1, 0xa | a2 = a1 + 0xa;
0x00039604 sw v1, 0xc8(s1) | *((s1 + 50)) = v1;
0x00039608 sw a2, 0x10(a0) | *((a0 + 4)) = a2;
0x0003960c sw v0, 0x20(a0) | *((a0 + 8)) = v0;
0x00039610 lbu v0, 0xa(a1) | v0 = *((a1 + 10));
0x00039614 lw t9, -0x7ef8(gp) | t9 = *((gp - 8126));
| if (v0 == 0) {
0x00039618 beqz v0, 0x39818 | goto label_8;
| }
| label_3:
0x0003961c lw s5, -0x7df4(gp) | s5 = *((gp - 8061));
0x00039620 move t9, s5 | t9 = s5;
0x00039624 move a0, s1 | a0 = s1;
0x00039628 bal 0x38628 | sym_xmlSkipBlankChars ();
0x0003962c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00039630 beqz v0, 0x3980c | goto label_9;
| }
0x00039634 lw t9, -0x7e10(gp) | t9 = *(gp);
0x00039638 move a0, s1 | a0 = s1;
0x0003963c bal 0x31e4c | sym_xmlParseName ();
0x00039640 move s3, v0 | s3 = v0;
0x00039644 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00039648 beqz v0, 0x397b4 | goto label_10;
| }
0x0003964c lw t9, -0x7fac(gp) | t9 = *((gp - 8171));
0x00039650 addiu a1, zero, 0x3a | a1 = 0x3a;
0x00039654 move a0, v0 | a0 = v0;
0x00039658 jalr t9 | t9 ();
0x0003965c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00039660 beqz v0, 0x3968c |
0x00039664 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x00039668 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x0003966c sw zero, 0x14(sp) | *(var_14h) = 0;
0x00039670 sw zero, 0x10(sp) | *(var_10h) = 0;
0x00039674 move a3, s3 | a3 = s3;
0x00039678 addiu a2, a2, -0x7ff4 | a2 += -aav.0x00007ff4;
0x0003967c addiu a1, zero, 0xcd | a1 = 0xcd;
0x00039680 addiu t9, t9, -0x436c | t9 += -0x436c;
0x00039684 move a0, s1 | a0 = s1;
0x00039688 bal 0x2bc94 | fcn_0002bc94 ();
| }
0x0003968c move t9, s5 | t9 = s5;
0x00039690 move a0, s1 | a0 = s1;
0x00039694 bal 0x38628 | sym_xmlSkipBlankChars ();
0x00039698 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0003969c beqz v0, 0x39790 | goto label_11;
| }
0x000396a0 lw t9, -0x7db4(gp) | t9 = *((gp - 8045));
0x000396a4 move a2, zero | a2 = 0;
0x000396a8 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x000396ac move a0, s1 | a0 = s1;
0x000396b0 bal 0x38818 | sym_xmlParseExternalID ();
0x000396b4 move a0, s1 | a0 = s1;
0x000396b8 move t9, s5 | t9 = s5;
0x000396bc move s4, v0 | s4 = v0;
0x000396c0 bal 0x38628 | sym_xmlSkipBlankChars ();
0x000396c4 lw v0, 0x24(s1) | v0 = *((s1 + 9));
0x000396c8 addiu v1, zero, 0x3e | v1 = 0x3e;
0x000396cc lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x000396d0 lbu a0, (a0) | a0 = *(a0);
0x000396d4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 != v1) {
0x000396d8 bne a0, v1, 0x397d4 | goto label_12;
| }
0x000396dc lw v0, 0x38(v0) | v0 = *((v0 + 14));
0x000396e0 lw t9, -0x7e30(gp) | t9 = *((gp - 8076));
| if (v0 != s2) {
0x000396e4 beq v0, s2, 0x3970c |
0x000396e8 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x000396ec lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x000396f0 addiu a2, a2, -0x7f98 | a2 += -0x7f98;
0x000396f4 addiu a1, zero, 0x5a | a1 = 0x5a;
0x000396f8 addiu t9, t9, -0x345c | t9 += -0x345c;
0x000396fc move a0, s1 | a0 = s1;
0x00039700 bal 0x2cba4 | fcn_0002cba4 ();
0x00039704 lw gp, 0x18(sp) | gp = *(var_18h);
0x00039708 lw t9, -0x7e30(gp) | t9 = *((gp - 8076));
| }
0x0003970c move a0, s1 | a0 = s1;
0x00039710 bal 0x28648 | sym_xmlNextChar ();
0x00039714 lw v0, (s1) | v0 = *(s1);
0x00039718 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0003971c beqz v0, 0x3974c |
0x00039720 lw v1, 0xd4(s1) | v1 = *((s1 + 53));
| if (v1 != 0) {
0x00039724 bnez v1, 0x3974c | goto label_1;
| }
0x00039728 nop |
0x0003972c lw t9, 0x1c(v0) | t9 = *((v0 + 7));
0x00039730 lw a2, 0x20(sp) | a2 = *(var_20h);
| if (t9 == 0) {
0x00039734 beqz t9, 0x3974c | goto label_1;
| }
0x00039738 lw a0, 4(s1) | a0 = *((s1 + 1));
0x0003973c move a3, s4 | a3 = s4;
0x00039740 move a1, s3 | a1 = s3;
0x00039744 jalr t9 | t9 ();
0x00039748 lw gp, 0x18(sp) | gp = *(var_18h);
| }
| label_1:
0x0003974c lw v0, -0x7158(gp) | v0 = *(gp);
| if (s4 != 0) {
0x00039750 beqz s4, 0x39764 |
0x00039754 lw t9, (v0) | t9 = *(v0);
0x00039758 move a0, s4 | a0 = s4;
0x0003975c jalr t9 | t9 ();
0x00039760 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00039764 lw a0, 0x20(sp) | a0 = *(var_20h);
0x00039768 lw v0, -0x7158(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0003976c beqz a0, 0x3951c | goto label_0;
| }
0x00039770 lw t9, (v0) | t9 = *(v0);
0x00039774 jalr t9 | t9 ();
0x00039778 nop |
0x0003977c lw gp, 0x18(sp) | gp = *(var_18h);
0x00039780 b 0x3951c | goto label_0;
| label_5:
0x00039784 lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x00039788 jalr t9 | t9 ();
0x0003978c nop |
| label_11:
0x00039790 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x00039794 addiu a2, a2, -0x7fc4 | a2 += -0x7fc4;
| do {
0x00039798 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x0003979c addiu a1, zero, 0x41 | a1 = 0x41;
0x000397a0 addiu t9, t9, -0x345c | t9 += -0x345c;
0x000397a4 move a0, s1 | a0 = s1;
0x000397a8 bal 0x2cba4 | fcn_0002cba4 ();
0x000397ac lw gp, 0x18(sp) | gp = *(var_18h);
0x000397b0 b 0x3951c | goto label_0;
| label_10:
0x000397b4 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x000397b8 move a2, zero | a2 = 0;
0x000397bc addiu a1, zero, 0x30 | a1 = 0x30;
0x000397c0 addiu t9, t9, -0x4cc8 | t9 += -aav.0x00004cc8;
0x000397c4 move a0, s1 | a0 = s1;
0x000397c8 bal 0x2b338 | fcn_0002b338 ();
0x000397cc lw gp, 0x18(sp) | gp = *(var_18h);
0x000397d0 b 0x3951c | goto label_0;
| label_12:
0x000397d4 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x000397d8 move a2, zero | a2 = 0;
0x000397dc addiu a1, zero, 0x31 | a1 = 0x31;
0x000397e0 addiu t9, t9, -0x4cc8 | t9 += -aav.0x00004cc8;
0x000397e4 move a0, s1 | a0 = s1;
0x000397e8 bal 0x2b338 | fcn_0002b338 ();
0x000397ec lw gp, 0x18(sp) | gp = *(var_18h);
0x000397f0 b 0x3974c | goto label_1;
| label_7:
0x000397f4 addiu t9, t9, -0x267c | t9 += -0x267c;
0x000397f8 addiu a0, s1, 0x24 | a0 = s1 + 0x24;
0x000397fc bal 0x2d984 | fcn_0002d984 ();
0x00039800 lw gp, 0x18(sp) | gp = *(var_18h);
0x00039804 lw a0, 0x24(s1) | a0 = *((s1 + 9));
0x00039808 b 0x395ec | goto label_2;
| label_9:
0x0003980c lw a2, -0x7fd4(gp) | a2 = *(gp);
0x00039810 addiu a2, a2, 0x7fe8 | a2 += 0x7fe8;
0x00039814 b 0x39798 |
| } while (1);
| label_8:
0x00039818 addiu a1, zero, 0xfa | a1 = 0xfa;
0x0003981c bal 0x28398 | sym_xmlParserInputGrow ();
0x00039820 lw gp, 0x18(sp) | gp = *(var_18h);
0x00039824 b 0x3961c | goto label_3;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x2abbc */
| #include <stdint.h>
|
; (fcn) sym.xmlParserAddNodeInfo () | void xmlParserAddNodeInfo () {
0x0002abbc lui gp, 0x16 |
0x0002abc0 addiu gp, gp, 0x6ab4 |
0x0002abc4 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x0002abc8 beqz a0, 0x2ad98 | goto label_7;
| }
0x0002abcc nop |
| if (a1 == 0) {
0x0002abd0 beqz a1, 0x2ad98 | goto label_7;
| }
0x0002abd4 nop |
0x0002abd8 addiu sp, sp, -0x28 |
0x0002abdc lw t1, (a1) | t1 = *(a1);
0x0002abe0 lw t9, -0x7e94(gp) | t9 = *(gp);
0x0002abe4 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0002abe8 move s0, a0 | s0 = a0;
0x0002abec sw gp, 0x10(sp) | *(var_10h) = gp;
0x0002abf0 sw s2, 0x20(sp) | *(var_20h) = s2;
0x0002abf4 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x0002abf8 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0002abfc move s1, a1 | s1 = a1;
0x0002ac00 addiu a0, a0, 0x48 | a0 += 0x48;
0x0002ac04 move a1, t1 | a1 = t1;
0x0002ac08 bal 0x2aa58 | sym_xmlParserFindNodeInfoIndex ();
0x0002ac0c lw t0, 0x4c(s0) | t0 = *((s0 + 19));
0x0002ac10 move s2, v0 | s2 = v0;
0x0002ac14 sltu v1, v0, t0 | v1 = (v0 < t0) ? 1 : 0;
0x0002ac18 lw gp, 0x10(sp) | gp = *(var_10h);
0x0002ac1c lw v0, 0x50(s0) | v0 = *((s0 + 20));
| if (v1 == 0) {
0x0002ac20 beqz v1, 0x2ace4 | goto label_8;
| }
0x0002ac24 sll a3, s2, 2 | a3 = s2 << 2;
| if (v0 == 0) {
0x0002ac28 beqz v0, 0x2ad10 | goto label_9;
| }
0x0002ac2c addu a2, a3, s2 | a2 = a3 + s2;
0x0002ac30 sll a2, a2, 2 | a2 <<= 2;
0x0002ac34 addu a2, v0, a2 | a2 = v0 + a2;
0x0002ac38 lw v1, (a2) | v1 = *(a2);
0x0002ac3c addiu t3, t0, 1 | t3 = t0 + 1;
| if (t1 == v1) {
0x0002ac40 beq t1, v1, 0x2add8 | goto label_10;
| }
0x0002ac44 lw a1, 0x48(s0) | a1 = *((s0 + 18));
0x0002ac48 sltu v1, a1, t3 | v1 = (a1 < t3) ? 1 : 0;
0x0002ac4c sll v1, t0, 2 | v1 = t0 << 2;
| if (v1 != 0) {
0x0002ac50 bnez v1, 0x2ad24 | goto label_11;
| }
| label_1:
0x0002ac54 addu v1, v1, t0 | v1 += t0;
0x0002ac58 addu a3, a3, s2 | a3 += s2;
0x0002ac5c sll v1, v1, 2 | v1 <<= 2;
0x0002ac60 sll a3, a3, 2 | a3 <<= 2;
0x0002ac64 addu v1, v0, v1 | v1 = v0 + v1;
0x0002ac68 addu v0, v0, a3 | v0 += a3;
0x0002ac6c lw t2, -0x14(v1) | t2 = *((v1 - 5));
| do {
0x0002ac70 lw t1, -0x10(v1) | t1 = *((v1 - 4));
0x0002ac74 lw t0, -0xc(v1) | t0 = *((v1 - 3));
0x0002ac78 lw a3, -8(v1) | a3 = *((v1 - 2));
0x0002ac7c lw a0, -4(v1) | a0 = *((v1 - 1));
0x0002ac80 sw t2, (v1) | *(v1) = t2;
0x0002ac84 sw t1, 4(v1) | *((v1 + 1)) = t1;
0x0002ac88 sw t0, 8(v1) | *((v1 + 2)) = t0;
0x0002ac8c sw a3, 0xc(v1) | *((v1 + 3)) = a3;
0x0002ac90 sw a0, 0x10(v1) | *((v1 + 4)) = a0;
0x0002ac94 addiu v1, v1, -0x14 | v1 += -0x14;
0x0002ac98 lw t2, -0x14(v1) | t2 = *((v1 - 5));
0x0002ac9c bnel v0, v1, 0x2ac70 |
| } while (v0 == v1);
| do {
| label_0:
0x0002aca0 lw a3, (s1) | a3 = *(s1);
| label_2:
0x0002aca4 lw a1, 4(s1) | a1 = *((s1 + 1));
0x0002aca8 lw a0, 8(s1) | a0 = *((s1 + 2));
0x0002acac lw v1, 0xc(s1) | v1 = *((s1 + 3));
0x0002acb0 lw v0, 0x10(s1) | v0 = *((s1 + 4));
0x0002acb4 sw a3, (a2) | *(a2) = a3;
0x0002acb8 sw a1, 4(a2) | *((a2 + 1)) = a1;
0x0002acbc sw a0, 8(a2) | *((a2 + 2)) = a0;
0x0002acc0 sw v1, 0xc(a2) | *((a2 + 3)) = v1;
0x0002acc4 sw v0, 0x10(a2) | *((a2 + 4)) = v0;
0x0002acc8 sw t3, 0x4c(s0) | *((s0 + 19)) = t3;
| label_6:
0x0002accc lw ra, 0x24(sp) | ra = *(var_24h);
0x0002acd0 lw s2, 0x20(sp) | s2 = *(var_20h);
0x0002acd4 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0002acd8 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0002acdc addiu sp, sp, 0x28 |
0x0002ace0 jr ra | return v0;
| label_8:
0x0002ace4 lw a1, 0x48(s0) | a1 = *((s0 + 18));
0x0002ace8 addiu t3, t0, 1 | t3 = t0 + 1;
0x0002acec sltu v1, a1, t3 | v1 = (a1 < t3) ? 1 : 0;
| if (v1 != 0) {
0x0002acf0 bnez v1, 0x2ad24 | goto label_11;
| }
0x0002acf4 nop |
0x0002acf8 sll a2, s2, 2 | a2 = s2 << 2;
| if (v0 == 0) {
0x0002acfc beqz v0, 0x2adac | goto label_12;
| }
0x0002ad00 addu a2, a2, s2 | a2 += s2;
0x0002ad04 sll a2, a2, 2 | a2 <<= 2;
0x0002ad08 addu a2, v0, a2 | a2 = v0 + a2;
0x0002ad0c b 0x2aca0 |
| } while (1);
| label_9:
0x0002ad10 lw a1, 0x48(s0) | a1 = *((s0 + 18));
0x0002ad14 addiu v1, t0, 1 | v1 = t0 + 1;
0x0002ad18 sltu v1, a1, v1 | v1 = (a1 < v1) ? 1 : 0;
| if (v1 == 0) {
0x0002ad1c beqz v1, 0x2adac | goto label_12;
| }
0x0002ad20 nop |
| label_11:
0x0002ad24 sll v1, a1, 2 | v1 = a1 << 2;
| if (a1 != 0) {
0x0002ad28 bnez a1, 0x2ada0 | goto label_13;
| }
0x0002ad2c addiu v1, zero, 2 | v1 = 2;
| label_4:
0x0002ad30 sw v1, 0x48(s0) | *((s0 + 18)) = v1;
0x0002ad34 addiu a1, zero, 0x50 | a1 = 0x50;
| label_3:
0x0002ad38 move a0, v0 | a0 = v0;
| if (v0 == 0) {
0x0002ad3c beqz v0, 0x2adc0 | goto label_14;
| }
0x0002ad40 lw v0, -0x6e24(gp) | v0 = *(gp);
0x0002ad44 lw t9, (v0) | t9 = *(v0);
0x0002ad48 jalr t9 | t9 ();
0x0002ad4c nop |
0x0002ad50 lw gp, 0x10(sp) | gp = *(var_10h);
| label_5:
0x0002ad54 sll a3, s2, 2 | a3 = s2 << 2;
| if (v0 == 0) {
0x0002ad58 beqz v0, 0x2adfc | goto label_15;
| }
0x0002ad5c lw v1, 0x48(s0) | v1 = *((s0 + 18));
0x0002ad60 lw t0, 0x4c(s0) | t0 = *((s0 + 19));
0x0002ad64 addu a2, a3, s2 | a2 = a3 + s2;
0x0002ad68 sll v1, v1, 1 | v1 <<= 1;
0x0002ad6c sll a2, a2, 2 | a2 <<= 2;
0x0002ad70 sw v0, 0x50(s0) | *((s0 + 20)) = v0;
0x0002ad74 sw v1, 0x48(s0) | *((s0 + 18)) = v1;
0x0002ad78 addu a2, v0, a2 | a2 = v0 + a2;
0x0002ad7c addiu t3, t0, 1 | t3 = t0 + 1;
| if (s2 == t0) {
0x0002ad80 beq s2, t0, 0x2aca0 | goto label_0;
| }
0x0002ad84 sltu v1, s2, t0 | v1 = (s2 < t0) ? 1 : 0;
0x0002ad88 sll v1, t0, 2 | v1 = t0 << 2;
| if (v1 != 0) {
0x0002ad8c bnez v1, 0x2ac54 | goto label_1;
| }
0x0002ad90 lw a3, (s1) | a3 = *(s1);
0x0002ad94 b 0x2aca4 | goto label_2;
| label_7:
0x0002ad98 jr ra | return v0;
0x0002ad9c nop |
| label_13:
0x0002ada0 addu a1, v1, a1 | a1 = v1 + a1;
0x0002ada4 sll a1, a1, 3 | a1 <<= 3;
0x0002ada8 b 0x2ad38 | goto label_3;
| label_12:
0x0002adac addiu v1, zero, 2 | v1 = 2;
| if (a1 == 0) {
0x0002adb0 beqz a1, 0x2ad30 | goto label_4;
| }
0x0002adb4 sll v0, a1, 2 | v0 = a1 << 2;
0x0002adb8 addu a1, v0, a1 | a1 = v0 + a1;
0x0002adbc sll a1, a1, 3 | a1 <<= 3;
| label_14:
0x0002adc0 lw v0, -0x716c(gp) | v0 = *(gp);
0x0002adc4 lw t9, (v0) | t9 = *(v0);
0x0002adc8 move a0, a1 | a0 = a1;
0x0002adcc jalr t9 | t9 ();
0x0002add0 lw gp, 0x10(sp) | gp = *(var_10h);
0x0002add4 b 0x2ad54 | goto label_5;
| label_10:
0x0002add8 lw a1, 4(s1) | a1 = *((s1 + 1));
0x0002addc lw a0, 8(s1) | a0 = *((s1 + 2));
0x0002ade0 lw v1, 0xc(s1) | v1 = *((s1 + 3));
0x0002ade4 lw v0, 0x10(s1) | v0 = *((s1 + 4));
0x0002ade8 sw a1, 4(a2) | *((a2 + 1)) = a1;
0x0002adec sw a0, 8(a2) | *((a2 + 2)) = a0;
0x0002adf0 sw v1, 0xc(a2) | *((a2 + 3)) = v1;
0x0002adf4 sw v0, 0x10(a2) | *((a2 + 4)) = v0;
0x0002adf8 b 0x2accc | goto label_6;
| label_15:
0x0002adfc lw a1, -0x7fd4(gp) | a1 = *(gp);
0x0002ae00 lw ra, 0x24(sp) | ra = *(var_24h);
0x0002ae04 lw s2, 0x20(sp) | s2 = *(var_20h);
0x0002ae08 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0002ae0c move a0, s0 | a0 = s0;
0x0002ae10 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x0002ae14 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0002ae18 addiu a1, a1, 0x6cb4 | a1 += aav.0x00006cb4;
0x0002ae1c addiu sp, sp, 0x28 |
0x0002ae20 b 0x2807c | return void (*0x2807c)() ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x284d4 */
| #include <stdint.h>
|
; (fcn) sym.xmlParserInputShrink () | void xmlParserInputShrink () {
0x000284d4 lui gp, 0x17 |
0x000284d8 addiu gp, gp, -0x6e64 |
0x000284dc addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x000284e0 beqz a0, 0x285f0 | goto label_0;
| }
0x000284e4 nop |
0x000284e8 lw v0, (a0) | v0 = *(a0);
| if (v0 == 0) {
0x000284ec beqz v0, 0x285f0 | goto label_0;
| }
0x000284f0 nop |
0x000284f4 lw v1, 0xc(a0) | v1 = *((a0 + 3));
| if (v1 == 0) {
0x000284f8 beqz v1, 0x285f0 | goto label_0;
| }
0x000284fc nop |
0x00028500 addiu sp, sp, -0x28 |
0x00028504 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x00028508 lw s1, 0x10(a0) | s1 = *((a0 + 4));
0x0002850c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00028510 sw ra, 0x24(sp) | *(var_24h) = ra;
0x00028514 sw s2, 0x20(sp) | *(var_20h) = s2;
0x00028518 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0002851c lw ra, 0x24(sp) | ra = *(var_24h);
| if (s1 == 0) {
0x00028520 beqz s1, 0x28570 | goto label_1;
| }
0x00028524 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00028528 lw s2, -0x7f48(gp) | s2 = *(gp);
| if (v0 == 0) {
0x0002852c beqz v0, 0x28570 | goto label_1;
| }
0x00028530 move s0, a0 | s0 = a0;
0x00028534 move t9, s2 | t9 = s2;
0x00028538 move a0, v0 | a0 = v0;
0x0002853c jalr t9 | t9 ();
0x00028540 subu v0, s1, v0 | __asm ("subu v0, s1, v0");
0x00028544 sltiu v1, v0, 0xfb | v1 = (v0 < 0xfb) ? 1 : 0;
0x00028548 lw gp, 0x10(sp) | gp = *(var_10h);
0x0002854c beqz v1, 0x285f8 |
| while (1) {
0x00028550 lw v0, (s0) | v0 = *(s0);
0x00028554 lw t9, -0x7f4c(gp) | t9 = *((gp - 8147));
0x00028558 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x0002855c jalr t9 | t9 ();
0x00028560 sltiu v0, v0, 0xfb | v0 = (v0 < 0xfb) ? 1 : 0;
0x00028564 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00028568 bnez v0, 0x28584 |
0x0002856c lw ra, 0x24(sp) | ra = *(var_24h);
| label_1:
0x00028570 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00028574 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00028578 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0002857c addiu sp, sp, 0x28 |
0x00028580 jr ra | return v0;
| }
0x00028584 lw t9, -0x7efc(gp) | t9 = *((gp - 8127));
0x00028588 lw a0, (s0) | a0 = *(s0);
0x0002858c addiu a1, zero, 0x1f4 | a1 = aav.0x000001f4;
0x00028590 jalr t9 | t9 ();
0x00028594 lw v0, (s0) | v0 = *(s0);
0x00028598 move t9, s2 | t9 = s2;
0x0002859c lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x000285a0 jalr t9 | t9 ();
0x000285a4 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x000285a8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (a0 != v0) {
0x000285ac beq a0, v0, 0x285c4 |
0x000285b0 lw v1, 0x10(s0) | v1 = *((s0 + 4));
0x000285b4 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
0x000285b8 subu v1, v1, a0 | __asm ("subu v1, v1, a0");
0x000285bc addu v0, v0, v1 | v0 += v1;
0x000285c0 sw v0, 0x10(s0) | *((s0 + 4)) = v0;
| }
0x000285c4 lw v0, (s0) | v0 = *(s0);
0x000285c8 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x000285cc lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x000285d0 jalr t9 | t9 ();
0x000285d4 lw ra, 0x24(sp) | ra = *(var_24h);
0x000285d8 sw v0, 0x14(s0) | *((s0 + 5)) = v0;
0x000285dc lw s2, 0x20(sp) | s2 = *(var_20h);
0x000285e0 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000285e4 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000285e8 addiu sp, sp, 0x28 |
0x000285ec jr ra | return v0;
| label_0:
0x000285f0 jr ra | return v0;
0x000285f4 nop |
0x000285f8 lw v1, (s0) | v1 = *(s0);
0x000285fc lw t9, -0x7f40(gp) | t9 = *(gp);
0x00028600 addiu a1, v0, -0x50 | a1 = v0 + -0x50;
0x00028604 lw a0, 0x10(v1) | a0 = *((v1 + 4));
0x00028608 jalr t9 | t9 ();
0x0002860c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00028610 beqz v0, 0x2862c |
0x00028614 lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x00028618 lw v1, 0x24(s0) | v1 = *((s0 + 9));
0x0002861c subu a0, a0, v0 | __asm ("subu a0, a0, v0");
0x00028620 addu v0, v1, v0 | v0 = v1 + v0;
0x00028624 sw a0, 0x10(s0) | *((s0 + 4)) = a0;
0x00028628 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
| }
0x0002862c lw v0, (s0) | v0 = *(s0);
0x00028630 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x00028634 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x00028638 jalr t9 | t9 ();
0x0002863c lw gp, 0x10(sp) | gp = *(var_10h);
0x00028640 sw v0, 0x14(s0) | *((s0 + 5)) = v0;
0x00028644 b 0x28550 |
| }
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x12969c */
| #include <stdint.h>
|
; (fcn) sym.xmlPatterncompile () | void xmlPatterncompile () {
0x0012969c lui gp, 6 |
0x001296a0 addiu gp, gp, 0x7fd4 |
0x001296a4 addu gp, gp, t9 | gp += t9;
0x001296a8 addiu sp, sp, -0x60 |
0x001296ac sw gp, 0x18(sp) | *(var_18h) = gp;
0x001296b0 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x001296b4 sw fp, 0x58(sp) | *(var_58h) = fp;
0x001296b8 sw s7, 0x54(sp) | *(var_54h) = s7;
0x001296bc sw s6, 0x50(sp) | *(var_50h) = s6;
0x001296c0 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x001296c4 sw s4, 0x48(sp) | *(var_48h) = s4;
0x001296c8 sw s3, 0x44(sp) | *(var_44h) = s3;
0x001296cc sw s2, 0x40(sp) | *(var_40h) = s2;
0x001296d0 sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x001296d4 sw s0, 0x38(sp) | *(var_38h) = s0;
0x001296d8 sw a1, 0x64(sp) | *(arg_64h) = a1;
0x001296dc sw a2, 0x68(sp) | *(arg_68h) = a2;
0x001296e0 sw a3, 0x6c(sp) | *(arg_6ch) = a3;
| if (a0 == 0) {
0x001296e4 beqz a0, 0x12a404 | goto label_39;
| }
0x001296e8 lw v0, -0x7398(gp) | v0 = *((gp - 7398));
0x001296ec lw s1, -0x7fb0(gp) | s1 = *((gp - 8172));
0x001296f0 addiu v0, v0, 0x74e8 | v0 += 0x74e8;
0x001296f4 sw v0, 0x30(sp) | *(var_30h) = v0;
0x001296f8 lw v0, -0x7398(gp) | v0 = *((gp - 7398));
0x001296fc move s4, a0 | s4 = a0;
0x00129700 addiu v0, v0, 0x76e4 | v0 += 0x76e4;
0x00129704 addiu s5, zero, 1 | s5 = 1;
0x00129708 sw zero, 0x2c(sp) | *(var_2ch) = 0;
0x0012970c move s7, zero | s7 = 0;
0x00129710 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00129714 addiu s1, s1, 0x4070 | s1 += 0x4070;
| label_3:
0x00129718 lbu v0, (s4) | v0 = *(s4);
| if (v0 == 0) {
0x0012971c beqz v0, 0x129dc4 | goto label_40;
| }
0x00129720 nop |
| label_4:
0x00129724 addiu a0, zero, 0x7c | a0 = 0x7c;
0x00129728 move s0, s4 | s0 = s4;
0x0012972c addiu v1, zero, 0x7c | v1 = 0x7c;
0x00129730 move a1, zero | a1 = 0;
| if (v0 != a0) {
0x00129734 bne v0, a0, 0x129748 | goto label_41;
| }
0x00129738 lw t9, -0x7fc8(gp) | t9 = *(gp);
0x0012973c b 0x129ef4 | goto label_42;
| do {
0x00129740 subu a1, s0, s4 | __asm ("subu a1, s0, s4");
| if (v0 == v1) {
0x00129744 beq v0, v1, 0x129ef0 | goto label_43;
| }
| label_41:
0x00129748 addiu s0, s0, 1 | s0++;
0x0012974c lbu v0, (s0) | v0 = *(s0);
0x00129750 lw a2, 0x6c(sp) | a2 = *(arg_6ch);
0x00129754 bnez v0, 0x129740 |
| } while (v0 != 0);
0x00129758 lw a1, 0x64(sp) | a1 = *(arg_64h);
0x0012975c lw t9, 0x30(sp) | t9 = *(var_30h);
0x00129760 move a0, s4 | a0 = s4;
0x00129764 jalr t9 | t9 ();
0x00129768 lw gp, 0x18(sp) | gp = *(var_18h);
0x0012976c move fp, v0 | fp = v0;
0x00129770 move s4, s0 | s4 = s0;
0x00129774 move s6, zero | s6 = 0;
| if (fp == 0) {
| label_6:
0x00129778 beqz fp, 0x129a24 | goto label_44;
| }
0x0012977c nop |
0x00129780 lw s2, -0x716c(gp) | s2 = *(gp);
0x00129784 lw t9, (s2) | t9 = *(s2);
0x00129788 addiu a0, zero, 0x24 | a0 = 0x24;
0x0012978c jalr t9 | t9 ();
0x00129790 move s0, v0 | s0 = v0;
0x00129794 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00129798 beqz v0, 0x129a10 | goto label_9;
| }
0x0012979c lw t9, -0x6ea4(gp) | t9 = *((gp - 7081));
0x001297a0 addiu a2, zero, 0x24 | a2 = 0x24;
0x001297a4 move a1, zero | a1 = 0;
0x001297a8 move a0, v0 | a0 = v0;
0x001297ac jalr t9 | t9 ();
0x001297b0 addiu v0, zero, 0xa | v0 = 0xa;
0x001297b4 lw t9, (s2) | t9 = *(s2);
0x001297b8 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
0x001297bc addiu a0, zero, 0x78 | a0 = 0x78;
0x001297c0 jalr t9 | t9 ();
0x001297c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x001297c8 sw v0, 0x1c(s0) | *((s0 + 7)) = v0;
| if (v0 == 0) {
0x001297cc beqz v0, 0x12a49c | goto label_45;
| }
0x001297d0 lw v0, 0x64(sp) | v0 = *(arg_64h);
0x001297d4 lw t9, -0x7cdc(gp) | t9 = *((gp - 7991));
| if (v0 != 0) {
0x001297d8 beqz v0, 0x1297ec |
0x001297dc sw v0, 4(s0) | *((s0 + 1)) = v0;
0x001297e0 move a0, v0 | a0 = v0;
0x001297e4 bal 0x11a9e8 | sym_xmlDictReference ();
0x001297e8 lw gp, 0x18(sp) | gp = *(var_18h);
| }
| if (s7 != 0) {
0x001297ec beql s7, zero, 0x129800 |
0x001297f0 move s7, s0 | s7 = s0;
0x001297f4 lw v0, 8(s7) | v0 = *((s7 + 2));
0x001297f8 sw v0, 8(s0) | *((s0 + 2)) = v0;
0x001297fc sw s0, 8(s7) | *((s7 + 2)) = s0;
| }
0x00129800 lw v0, 0x68(sp) | v0 = *(arg_68h);
0x00129804 lw v1, 0x68(sp) | v1 = *(arg_68h);
0x00129808 andi v0, v0, 6 | v0 &= 6;
0x0012980c sw v1, 0x10(s0) | *((s0 + 4)) = v1;
0x00129810 lw a0, (fp) | a0 = *(fp);
0x00129814 sw s0, 0x10(fp) | *(arg_10h) = s0;
0x00129818 addiu a3, zero, 0x20 | a3 = 0x20;
0x0012981c addiu a2, zero, 0xd | a2 = 0xd;
| if (v0 == 0) {
0x00129820 beqz v0, 0x12985c | goto label_46;
| }
| do {
0x00129824 lbu a1, (a0) | a1 = *(a0);
0x00129828 addiu v0, a1, -9 | v0 = a1 + -9;
0x0012982c andi v0, v0, 0xff | v0 &= 0xff;
| if (a1 != a3) {
0x00129830 beq a1, a3, 0x129848 |
0x00129834 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x00129838 addiu a0, a0, 1 | a0++;
| if (v0 == 0) {
0x0012983c bnel v0, zero, 0x12984c | goto label_47;
| }
0x00129840 addiu v0, zero, 0x2f | v0 = 0x2f;
| if (a1 == a2) {
0x00129844 bnel a1, a2, 0x129904 | goto label_48;
| }
| }
0x00129848 addiu a0, a0, 1 | a0++;
| label_47:
0x0012984c sw a0, (fp) | *(fp) = a0;
0x00129850 b 0x129824 |
| } while (1);
| do {
0x00129854 addiu a0, a0, 1 | a0++;
| label_0:
0x00129858 sw a0, (fp) | *(fp) = a0;
| label_46:
0x0012985c lbu a1, (a0) | a1 = *(a0);
0x00129860 addiu v0, a1, -9 | v0 = a1 + -9;
0x00129864 andi v0, v0, 0xff | v0 &= 0xff;
0x00129868 beq a1, a3, 0x129854 |
| } while (a1 == a3);
0x0012986c sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x00129870 addiu a0, a0, 1 | a0++;
| if (v0 == 0) {
0x00129874 bnel v0, zero, 0x129858 | goto label_0;
| }
| if (a1 == a2) {
0x00129878 beql a1, a2, 0x129858 | goto label_0;
| }
0x0012987c addiu a0, a0, 1 | a0++;
0x00129880 addiu v0, zero, 0x2f | v0 = 0x2f;
0x00129884 addiu v0, zero, 0x2e | v0 = 0x2e;
| if (a1 == v0) {
0x00129888 beq a1, v0, 0x12a2c4 | goto label_49;
| }
0x0012988c lw v0, 0x68(sp) | v0 = *(arg_68h);
| if (a1 == v0) {
0x00129890 beq a1, v0, 0x12a188 | goto label_50;
| }
0x00129894 andi v0, v0, 7 | v0 &= 7;
0x00129898 lw v0, 0x68(sp) | v0 = *(arg_68h);
| if (v0 != 0) {
0x0012989c bnez v0, 0x12a188 | goto label_50;
| }
| label_26:
0x001298a0 addiu v0, zero, 0x40 | v0 = 0x40;
0x001298a4 lw v0, -0x7fd4(gp) | v0 = *(gp);
| if (a1 == v0) {
0x001298a8 bnel a1, v0, 0x129f90 | goto label_19;
| }
0x001298ac lw t9, -0x7fd4(gp) | t9 = *(gp);
| label_8:
0x001298b0 addiu a0, a0, 1 | a0++;
0x001298b4 sw a0, (fp) | *(fp) = a0;
0x001298b8 addiu t9, t9, -0x7984 | t9 += -0x7984;
0x001298bc move a0, fp | a0 = fp;
0x001298c0 bal 0x12867c | fcn_0012867c ();
0x001298c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x001298c8 lw a2, (fp) | a2 = *(fp);
0x001298cc addiu a3, zero, 0x20 | a3 = 0x20;
0x001298d0 addiu a1, zero, 0xd | a1 = 0xd;
| do {
0x001298d4 lbu a0, (a2) | a0 = *(a2);
0x001298d8 addiu v0, a0, -9 | v0 = a0 + -9;
0x001298dc andi v0, v0, 0xff | v0 &= 0xff;
| if (a0 != a3) {
0x001298e0 beq a0, a3, 0x1298f8 |
0x001298e4 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x001298e8 addiu a2, a2, 1 | a2++;
| if (v0 == 0) {
0x001298ec bnel v0, zero, 0x1298fc | goto label_51;
| }
| if (a0 != a1) {
0x001298f0 bne a0, a1, 0x129a88 | goto label_52;
| }
0x001298f4 nop |
| }
0x001298f8 addiu a2, a2, 1 | a2++;
| label_51:
0x001298fc sw a2, (fp) | *(fp) = a2;
0x00129900 b 0x1298d4 |
| } while (1);
| label_48:
0x00129904 lw v0, 0x68(sp) | v0 = *(arg_68h);
| if (a1 == v0) {
0x00129908 beq a1, v0, 0x129a08 | goto label_30;
| }
0x0012990c ori v0, v0, 0x200 | v0 |= aav.0x00000200;
0x00129910 sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x00129914 lbu a1, (a0) | a1 = *(a0);
0x00129918 addiu v0, zero, 0x2e | v0 = 0x2e;
0x0012991c addiu a0, a0, 1 | a0++;
| if (a1 == v0) {
0x00129920 beq a1, v0, 0x12a368 | goto label_53;
| }
0x00129924 lw v0, -0x7fd4(gp) | v0 = *(gp);
| label_27:
0x00129928 addiu s2, zero, 0x20 | s2 = 0x20;
0x0012992c addiu v0, v0, -0x752c | v0 += -aav.0x0000752c;
0x00129930 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00129934 addiu s3, zero, 0xd | s3 = 0xd;
0x00129938 lw t9, 0x24(sp) | t9 = *(var_24h);
| label_1:
0x0012993c move a0, fp | a0 = fp;
0x00129940 jalr t9 | t9 ();
0x00129944 lw v0, 8(fp) | v0 = *(arg_68h);
0x00129948 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0012994c bnez v0, 0x129a08 | goto label_30;
| }
0x00129950 lw a1, (fp) | a1 = *(fp);
| do {
0x00129954 lbu a0, (a1) | a0 = *(a1);
0x00129958 addiu v0, a0, -9 | v0 = a0 + -9;
0x0012995c andi v0, v0, 0xff | v0 &= 0xff;
| if (a0 != s2) {
0x00129960 beq a0, s2, 0x129978 |
0x00129964 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x00129968 addiu a1, a1, 1 | a1++;
| if (v0 == 0) {
0x0012996c bnel v0, zero, 0x12997c | goto label_54;
| }
0x00129970 addiu v0, zero, 0x2f | v0 = 0x2f;
| if (a0 == s3) {
0x00129974 bnel a0, s3, 0x129984 | goto label_55;
| }
| }
0x00129978 addiu a1, a1, 1 | a1++;
| label_54:
0x0012997c sw a1, (fp) | *(fp) = a1;
0x00129980 b 0x129954 |
| } while (1);
| label_55:
0x00129984 lw t9, 0x28(sp) | t9 = *(var_28h);
| if (a0 != v0) {
0x00129988 bne a0, v0, 0x12a0b0 | goto label_56;
| }
0x0012998c lw a0, 0x10(fp) | a0 = *(arg_10h);
0x00129990 move a3, zero | a3 = 0;
0x00129994 move a2, zero | a2 = 0;
0x00129998 addiu a1, zero, 5 | a1 = 5;
0x0012999c jalr t9 | t9 ();
0x001299a0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x001299a4 bnez v0, 0x129a08 | goto label_30;
| }
0x001299a8 lw a1, (fp) | a1 = *(fp);
0x001299ac lbu a0, (a1) | a0 = *(a1);
| if (a0 == 0) {
0x001299b0 beql a0, zero, 0x1299cc | goto label_57;
| }
0x001299b4 addiu v0, a0, -9 | v0 = a0 + -9;
0x001299b8 addiu v0, a1, 1 | v0 = a1 + 1;
0x001299bc sw v0, (fp) | *(fp) = v0;
0x001299c0 lbu a0, 1(a1) | a0 = *((a1 + 1));
0x001299c4 move a1, v0 | a1 = v0;
| do {
0x001299c8 addiu v0, a0, -9 | v0 = a0 + -9;
| label_57:
0x001299cc addiu a1, a1, 1 | a1++;
0x001299d0 andi v0, v0, 0xff | v0 &= 0xff;
| if (a0 != s2) {
0x001299d4 beq a0, s2, 0x1299ec |
0x001299d8 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x001299dc sw a1, (fp) | *(fp) = a1;
| if (v0 == 0) {
0x001299e0 bnel v0, zero, 0x1299f0 | goto label_58;
| }
0x001299e4 addiu v0, zero, 0x2f | v0 = 0x2f;
| if (a0 == s3) {
0x001299e8 bnel a0, s3, 0x1299f8 | goto label_59;
| }
| }
0x001299ec sw a1, (fp) | *(fp) = a1;
| label_58:
0x001299f0 lbu a0, (a1) | a0 = *(a1);
0x001299f4 b 0x1299c8 |
| } while (1);
| label_59:
0x001299f8 addiu v0, zero, 1 | v0 = 1;
| if (a0 == v0) {
0x001299fc beq a0, v0, 0x129a0c | goto label_11;
| }
0x00129a00 lw t9, 0x24(sp) | t9 = *(var_24h);
| if (a0 != 0) {
0x00129a04 bnez a0, 0x12993c | goto label_1;
| }
| label_30:
0x00129a08 addiu v0, zero, 1 | v0 = 1;
| label_11:
0x00129a0c sw v0, 8(fp) | *(arg_68h) = v0;
| do {
| label_9:
0x00129a10 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00129a14 addiu t9, t9, 0x76a0 | t9 += 0x76a0;
0x00129a18 move a0, fp | a0 = fp;
0x00129a1c bal 0x1276a0 | fcn_001276a0 ();
0x00129a20 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s7 != 0) {
| label_44:
0x00129a24 beqz s7, 0x129a3c |
0x00129a28 nop |
| label_2:
0x00129a2c lw t9, -0x791c(gp) | t9 = *((gp - 7751));
0x00129a30 move a0, s7 | a0 = s7;
0x00129a34 bal 0x1292d8 | sym_xmlFreePattern ();
0x00129a38 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00129a3c lw v0, -0x7158(gp) | v0 = *(gp);
| if (s6 == 0) {
0x00129a40 beqz s6, 0x12a404 | goto label_39;
| }
0x00129a44 move a0, s6 | a0 = s6;
0x00129a48 lw t9, (v0) | t9 = *(v0);
0x00129a4c move s7, zero | s7 = 0;
0x00129a50 jalr t9 | t9 ();
0x00129a54 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x00129a58 move v0, s7 | v0 = s7;
0x00129a5c lw fp, 0x58(sp) | fp = *(var_58h);
0x00129a60 lw s7, 0x54(sp) | s7 = *(var_54h);
0x00129a64 lw s6, 0x50(sp) | s6 = *(var_50h);
0x00129a68 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x00129a6c lw s4, 0x48(sp) | s4 = *(var_48h);
0x00129a70 lw s3, 0x44(sp) | s3 = *(var_44h);
0x00129a74 lw s2, 0x40(sp) | s2 = *(var_40h);
0x00129a78 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x00129a7c lw s0, 0x38(sp) | s0 = *(var_38h);
0x00129a80 addiu sp, sp, 0x60 |
0x00129a84 jr ra | return v0;
| label_52:
0x00129a88 lw v0, -0x7fd4(gp) | v0 = *(gp);
| if (a0 != 0) {
0x00129a8c bnez a0, 0x12a558 | goto label_60;
| }
| label_7:
0x00129a90 lw v0, 8(fp) | v0 = *(arg_68h);
| label_31:
0x00129a94 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00129a98 bnez v0, 0x129a10 |
| } while (v0 != 0);
| label_13:
0x00129a9c addiu t9, t9, 0x76a0 | t9 += 0x76a0;
0x00129aa0 move a0, fp | a0 = fp;
0x00129aa4 bal 0x1276a0 | fcn_001276a0 ();
0x00129aa8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s5 == 0) {
0x00129aac beqz s5, 0x129cbc | goto label_61;
| }
0x00129ab0 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x00129ab4 lw a0, 0x1c(s0) | a0 = *((s0 + 7));
0x00129ab8 lw t3, 0x14(s0) | t3 = *((s0 + 5));
| if (v0 != 0) {
0x00129abc bnez v0, 0x12a158 | goto label_62;
| }
0x00129ac0 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x00129ac4 andi v0, v0, 0x300 | v0 &= aav.0x00000300;
0x00129ac8 sw v0, 0x2c(sp) | *(var_2ch) = v0;
| label_17:
0x00129acc addiu v0, zero, 1 | v0 = 1;
| if (a0 == 0) {
0x00129ad0 beqz a0, 0x129cc4 | goto label_18;
| }
0x00129ad4 addiu v0, zero, 2 | v0 = 2;
| if (t3 == v0) {
0x00129ad8 bne t3, v0, 0x129ae8 |
0x00129adc lw v1, (a0) | v1 = *(a0);
| if (v1 == v0) {
0x00129ae0 beql v1, v0, 0x12a4e4 | goto label_63;
| }
0x00129ae4 lw v0, 4(a0) | v0 = *((a0 + 1));
| }
0x00129ae8 srl a0, t3, 0x1f | a0 = t3 >> 0x1f;
| label_29:
0x00129aec lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00129af0 addu a0, a0, t3 | a0 += t3;
0x00129af4 sra a0, a0, 1 | a0 >>= 1;
0x00129af8 addiu t9, t9, 0x75e0 | t9 += aav.0x000075e0;
0x00129afc addiu a0, a0, 1 | a0++;
0x00129b00 bal 0x1275e0 | fcn_001275e0 ();
0x00129b04 move s2, v0 | s2 = v0;
0x00129b08 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00129b0c beqz v0, 0x129cbc | goto label_61;
| }
0x00129b10 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00129b14 lw t9, -0x7cdc(gp) | t9 = *((gp - 7991));
| if (a0 != 0) {
0x00129b18 beqz a0, 0x129b28 |
0x00129b1c sw a0, (v0) | *(v0) = a0;
0x00129b20 bal 0x11a9e8 | sym_xmlDictReference ();
0x00129b24 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00129b28 lw v1, 0x10(s0) | v1 = *((s0 + 4));
0x00129b2c andi v0, v1, 0x100 | v0 = v1 & aav.0x00000100;
| if (v0 != 0) {
0x00129b30 beql v0, zero, 0x129b48 |
0x00129b34 lw a3, 0x14(s0) | a3 = *((s0 + 5));
0x00129b38 lw v0, 0x10(s2) | v0 = *((s2 + 4));
0x00129b3c ori v0, v0, 0x8000 | v0 |= 0x8000;
0x00129b40 sw v0, 0x10(s2) | *((s2 + 4)) = v0;
0x00129b44 lw a3, 0x14(s0) | a3 = *((s0 + 5));
| }
| if (a3 <= 0) {
0x00129b48 blezl a3, 0x12a664 | goto label_64;
| }
0x00129b4c lw a0, 4(s2) | a0 = *((s2 + 1));
0x00129b50 lw s3, -0x7398(gp) | s3 = *((gp - 7398));
0x00129b54 sw zero, 0x24(sp) | *(var_24h) = 0;
0x00129b58 move v0, zero | v0 = 0;
0x00129b5c addiu t1, zero, -1 | t1 = -1;
0x00129b60 move t2, zero | t2 = 0;
0x00129b64 move fp, zero | fp = 0;
0x00129b68 addiu s3, s3, 0x7430 | s3 += 0x7430;
| do {
0x00129b6c sll v1, fp, 1 | v1 = fp << 1;
0x00129b70 addu v1, v1, fp | v1 += fp;
0x00129b74 lw a0, 0x1c(s0) | a0 = *((s0 + 7));
0x00129b78 sll v1, v1, 2 | v1 <<= 2;
0x00129b7c addu a0, a0, v1 | a0 += v1;
0x00129b80 lw v1, (a0) | v1 = *(a0);
0x00129b84 lw a1, 4(a0) | a1 = *((a0 + 1));
0x00129b88 sltiu t3, v1, 9 | t3 = (v1 < 9) ? 1 : 0;
0x00129b8c lw a2, 8(a0) | a2 = *((a0 + 2));
| if (t3 == 0) {
0x00129b90 beqz t3, 0x129e78 | goto label_65;
| }
0x00129b94 sll v1, v1, 2 | v1 <<= 2;
0x00129b98 lwx v1, v1(s1) | __asm ("lwx v1, v1(s1)");
0x00129b9c addu v1, v1, gp | v1 += gp;
0x00129ba0 jr v1 | v1 ();
0x00129ba4 nop |
| label_5:
0x00129be4 slt v1, fp, a3 | v1 = (fp < a3) ? 1 : 0;
0x00129be8 move t3, a3 | t3 = a3;
0x00129bec bnez v1, 0x129b6c |
| } while (v1 != 0);
0x00129bf0 lw v1, 0x24(sp) | v1 = *(var_24h);
0x00129bf4 lw a0, 4(s2) | a0 = *((s2 + 1));
| if (v1 != 0) {
0x00129bf8 bnez v1, 0x12a44c | goto label_66;
| }
0x00129bfc lw v1, 0x10(s0) | v1 = *((s0 + 4));
| label_38:
0x00129c00 andi v1, v1, 7 | v1 &= 7;
0x00129c04 slt a0, v0, a0 | a0 = (v0 < a0) ? 1 : 0;
| if (v1 != 0) {
0x00129c08 bnel v1, zero, 0x129c44 |
0x00129c0c lw v1, 0x10(s2) | v1 = *((s2 + 4));
0x00129c10 lui a1, 1 | a1 = 0x10000;
0x00129c14 and a2, v1, a1 | a2 = v1 & a1;
| if (a2 == 0) {
0x00129c18 beql a2, zero, 0x12a588 | goto label_67;
| }
0x00129c1c or v1, v1, a1 | v1 |= a1;
| label_32:
0x00129c20 slt a0, v0, a0 | a0 = (v0 < a0) ? 1 : 0;
| if (a0 <= 0) {
0x00129c24 blez a0, 0x129c44 | goto label_68;
| }
0x00129c28 lw a1, 0xc(s2) | a1 = *((s2 + 3));
0x00129c2c lw v1, (a1) | v1 = *(a1);
0x00129c30 andi a2, v1, 1 | a2 = v1 & 1;
| if (a2 != 0) {
0x00129c34 bnez a2, 0x129c44 | goto label_68;
| }
0x00129c38 nop |
0x00129c3c ori v1, v1, 1 | v1 |= 1;
0x00129c40 sw v1, (a1) | *(a1) = v1;
| }
| label_68:
0x00129c44 sll v0, v0, 4 | v0 <<= 4;
| if (a0 != 0) {
0x00129c48 beqz a0, 0x129ca8 |
0x00129c4c lw v1, 0xc(s2) | v1 = *((s2 + 3));
| /* aav.0x00030000 */
0x00129c50 addu v0, v1, v0 | v0 = v1 + v0;
0x00129c54 move t3, a3 | t3 = a3;
0x00129c58 lw v1, (v0) | v1 = *(v0);
0x00129c5c lw a0, 0x1c(s0) | a0 = *((s0 + 7));
0x00129c60 ori v1, v1, 2 | v1 |= 2;
0x00129c64 sw v1, (v0) | *(v0) = v1;
0x00129c68 sw s2, 0x20(s0) | *((s0 + 8)) = s2;
0x00129c6c b 0x129cc4 |
| } else {
| label_25:
0x00129ca8 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00129cac addiu t9, t9, 0x78c0 | t9 += 0x78c0;
0x00129cb0 move a0, s2 | a0 = s2;
0x00129cb4 bal 0x1278c0 | fcn_001278c0 ();
0x00129cb8 lw gp, 0x18(sp) | gp = *(var_18h);
| label_61:
0x00129cbc lw a0, 0x1c(s0) | a0 = *((s0 + 7));
0x00129cc0 lw t3, 0x14(s0) | t3 = *((s0 + 5));
| }
| label_18:
0x00129cc4 addiu v0, zero, 6 | v0 = 6;
| if (t3 > 0) {
0x00129cc8 blez t3, 0x129cd8 |
0x00129ccc lw v1, (a0) | v1 = *(a0);
0x00129cd0 addiu v0, zero, 1 | v0 = 1;
| if (v1 == v0) {
0x00129cd4 beq v1, v0, 0x12a274 | goto label_69;
| }
| }
| label_21:
0x00129cd8 lw a1, 0x18(s0) | a1 = *((s0 + 6));
0x00129cdc slt v0, t3, a1 | v0 = (t3 < a1) ? 1 : 0;
0x00129ce0 addiu a2, t3, -1 | a2 = t3 + -1;
| if (v0 != 0) {
0x00129ce4 bnez v0, 0x129d24 | goto label_70;
| }
0x00129ce8 sll v0, a1, 1 | v0 = a1 << 1;
0x00129cec addu a1, v0, a1 | a1 = v0 + a1;
0x00129cf0 lw v0, -0x6e24(gp) | v0 = *(gp);
0x00129cf4 lw t9, (v0) | t9 = *(v0);
0x00129cf8 sll a1, a1, 3 | a1 <<= 3;
0x00129cfc jalr t9 | t9 ();
0x00129d00 move a0, v0 | a0 = v0;
0x00129d04 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00129d08 beqz v0, 0x129a2c | goto label_2;
| }
0x00129d0c lw v0, 0x18(s0) | v0 = *((s0 + 6));
0x00129d10 lw t3, 0x14(s0) | t3 = *((s0 + 5));
0x00129d14 sll v0, v0, 1 | v0 <<= 1;
0x00129d18 sw a0, 0x1c(s0) | *((s0 + 7)) = a0;
0x00129d1c sw v0, 0x18(s0) | *((s0 + 6)) = v0;
0x00129d20 addiu a2, t3, -1 | a2 = t3 + -1;
| label_70:
0x00129d24 sll v0, t3, 1 | v0 = t3 << 1;
| if (a2 <= 0) {
0x00129d28 blez a2, 0x129d84 | goto label_71;
| }
0x00129d2c addu v1, v0, t3 | v1 = v0 + t3;
0x00129d30 sll v1, v1, 2 | v1 <<= 2;
0x00129d34 move a1, a0 | a1 = a0;
0x00129d38 addu v1, a0, v1 | v1 = a0 + v1;
| do {
0x00129d3c lw t1, -8(v1) | t1 = *((v1 - 2));
0x00129d40 lw a3, 4(a1) | a3 = *((a1 + 1));
0x00129d44 sw t1, 4(a1) | *((a1 + 1)) = t1;
0x00129d48 lw t4, -4(v1) | t4 = *((v1 - 1));
0x00129d4c lw t0, (a1) | t0 = *(a1);
0x00129d50 sw a3, -8(v1) | *((v1 - 2)) = a3;
0x00129d54 lw t2, 8(a1) | t2 = *((a1 + 2));
0x00129d58 lw t1, -0xc(v1) | t1 = *((v1 - 3));
0x00129d5c subu a3, t3, a2 | __asm ("subu a3, t3, a2");
0x00129d60 sw t4, 8(a1) | *((a1 + 2)) = t4;
0x00129d64 addiu v1, v1, -0xc | v1 += -0xc;
0x00129d68 addiu a2, a2, -1 | a2 += -1;
0x00129d6c addiu a1, a1, 0xc | a1 += 0xc;
0x00129d70 slt a3, a3, a2 | a3 = (a3 < a2) ? 1 : 0;
0x00129d74 sw t2, 8(v1) | *((v1 + 2)) = t2;
0x00129d78 sw t1, -0xc(a1) | *((a1 - 3)) = t1;
0x00129d7c sw t0, (v1) | *(v1) = t0;
0x00129d80 bnez a3, 0x129d3c |
| } while (a3 != 0);
| label_71:
0x00129d84 addu v0, v0, t3 | v0 += t3;
0x00129d88 sll v0, v0, 2 | v0 <<= 2;
0x00129d8c addu v0, a0, v0 | v0 = a0 + v0;
0x00129d90 addiu t3, t3, 1 | t3++;
0x00129d94 sw zero, 4(v0) | *((v0 + 1)) = 0;
0x00129d98 sw zero, 8(v0) | *((v0 + 2)) = 0;
0x00129d9c sw t3, 0x14(s0) | *((s0 + 5)) = t3;
0x00129da0 sw zero, (v0) | *(v0) = 0;
| if (s6 == 0) {
0x00129da4 beqz s6, 0x129718 | goto label_3;
| }
0x00129da8 lw v0, -0x7158(gp) | v0 = *(gp);
0x00129dac lw t9, (v0) | t9 = *(v0);
0x00129db0 move a0, s6 | a0 = s6;
0x00129db4 jalr t9 | t9 ();
0x00129db8 lbu v0, (s4) | v0 = *(s4);
0x00129dbc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00129dc0 bnez v0, 0x129724 | goto label_4;
| }
| label_40:
0x00129dc4 lw ra, 0x5c(sp) | ra = *(var_5ch);
| if (s5 != 0) {
0x00129dc8 bnez s5, 0x12a40c | goto label_72;
| }
0x00129dcc lw s1, -0x7398(gp) | s1 = *((gp - 7398));
| if (s7 == 0) {
0x00129dd0 beqz s7, 0x12a404 | goto label_39;
| }
0x00129dd4 move s0, s7 | s0 = s7;
0x00129dd8 addiu s1, s1, 0x78c0 | s1 += 0x78c0;
0x00129ddc lw a0, 0x20(s0) | a0 = *((s0 + 8));
| do {
0x00129de0 move t9, s1 | t9 = s1;
| if (a0 != 0) {
0x00129de4 beqz a0, 0x129df4 |
0x00129de8 bal 0x1278c0 | fcn_001278c0 ();
0x00129dec nop |
0x00129df0 sw zero, 0x20(s0) | *((s0 + 8)) = 0;
| }
0x00129df4 lw s0, 8(s0) | s0 = *((s0 + 2));
0x00129df8 lw a0, 0x20(s0) | a0 = *((s0 + 8));
0x00129dfc bnel s0, zero, 0x129de0 |
| } while (s0 == 0);
0x00129e00 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x00129e04 b 0x12a40c | goto label_72;
| label_65:
0x00129e78 addiu fp, fp, 1 | fp++;
0x00129e7c b 0x129be4 | goto label_5;
| label_43:
0x00129ef0 lw t9, -0x7fc8(gp) | t9 = *(gp);
| label_42:
0x00129ef4 move a0, s4 | a0 = s4;
0x00129ef8 jalr t9 | t9 ();
0x00129efc move s6, v0 | s6 = v0;
0x00129f00 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00129f04 beqz v0, 0x12a3f4 | goto label_73;
| }
0x00129f08 lw a2, 0x6c(sp) | a2 = *(arg_6ch);
0x00129f0c lw a1, 0x64(sp) | a1 = *(arg_64h);
0x00129f10 lw t9, 0x30(sp) | t9 = *(var_30h);
0x00129f14 move a0, s6 | a0 = s6;
0x00129f18 jalr t9 | t9 ();
0x00129f1c move fp, v0 | fp = v0;
0x00129f20 lw gp, 0x18(sp) | gp = *(var_18h);
0x00129f24 addiu s4, s0, 1 | s4 = s0 + 1;
0x00129f28 b 0x129778 | goto label_6;
| label_23:
0x00129f2c move a3, zero | a3 = 0;
0x00129f30 move a2, zero | a2 = 0;
0x00129f34 addiu a1, zero, 6 | a1 = 6;
0x00129f38 move a0, s0 | a0 = s0;
0x00129f3c jalr t9 | t9 ();
0x00129f40 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00129f44 bnez v0, 0x129a90 | goto label_7;
| }
0x00129f48 lw v0, (fp) | v0 = *(fp);
0x00129f4c lbu a0, (v0) | a0 = *(v0);
| if (a0 == 0) {
0x00129f50 beql a0, zero, 0x129f90 | goto label_19;
| }
0x00129f54 lw v0, -0x7fd4(gp) | v0 = *(gp);
0x00129f58 addiu a0, v0, 1 | a0 = v0 + 1;
0x00129f5c sw a0, (fp) | *(fp) = a0;
0x00129f60 lbu a0, 1(v0) | a0 = *((v0 + 1));
0x00129f64 addiu a0, v0, 2 | a0 = v0 + 2;
| if (a0 == 0) {
0x00129f68 beqz a0, 0x129f8c | goto label_74;
| }
0x00129f6c sw a0, (fp) | *(fp) = a0;
0x00129f70 lbu a1, 2(v0) | a1 = *((v0 + 2));
0x00129f74 addiu v0, zero, 0x40 | v0 = 0x40;
| label_37:
0x00129f78 lw t9, -0x7fd4(gp) | t9 = *(gp);
| if (a1 == v0) {
0x00129f7c beq a1, v0, 0x1298b0 | goto label_8;
| }
0x00129f80 addiu v0, zero, 0x2f | v0 = 0x2f;
| if (a1 == v0) {
0x00129f84 beql a1, v0, 0x12a2f0 | goto label_75;
| }
0x00129f88 lw a0, 0x10(fp) | a0 = *(arg_10h);
| label_74:
0x00129f8c lw v0, -0x7fd4(gp) | v0 = *(gp);
| label_19:
0x00129f90 move a0, fp | a0 = fp;
0x00129f94 addiu t9, v0, -0x752c | t9 = v0 + -aav.0x0000752c;
0x00129f98 sw t9, 0x24(sp) | *(var_24h) = t9;
0x00129f9c bal 0x128ad4 | fcn_00128ad4 ();
0x00129fa0 lw v0, 8(fp) | v0 = *(arg_68h);
0x00129fa4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00129fa8 bnez v0, 0x129a10 | goto label_9;
| }
0x00129fac lw a1, (fp) | a1 = *(fp);
0x00129fb0 addiu a3, zero, 0x20 | a3 = 0x20;
0x00129fb4 addiu a2, zero, 0xd | a2 = 0xd;
| do {
0x00129fb8 lbu a0, (a1) | a0 = *(a1);
0x00129fbc addiu v0, a0, -9 | v0 = a0 + -9;
0x00129fc0 andi v0, v0, 0xff | v0 &= 0xff;
| if (a0 != a3) {
0x00129fc4 beq a0, a3, 0x129fdc |
0x00129fc8 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x00129fcc addiu a1, a1, 1 | a1++;
| if (v0 == 0) {
0x00129fd0 bnel v0, zero, 0x129fe0 | goto label_76;
| }
0x00129fd4 addiu s3, zero, 0x2f | s3 = 0x2f;
| if (a0 != a2) {
0x00129fd8 bne a0, a2, 0x129fe8 | goto label_77;
| }
| }
0x00129fdc addiu a1, a1, 1 | a1++;
| label_76:
0x00129fe0 sw a1, (fp) | *(fp) = a1;
0x00129fe4 b 0x129fb8 |
| } while (1);
| label_77:
0x00129fe8 addiu s2, zero, 0xd | s2 = 0xd;
| if (a0 != s3) {
0x00129fec bne a0, s3, 0x12a0b0 | goto label_56;
| }
0x00129ff0 lbu v0, 1(a1) | v0 = *((a1 + 1));
| label_12:
0x00129ff4 lw a0, 0x10(fp) | a0 = *(arg_10h);
0x00129ff8 move a3, zero | a3 = 0;
0x00129ffc move a2, zero | a2 = 0;
| if (v0 == s3) {
0x0012a000 beq v0, s3, 0x12a0c0 | goto label_78;
| }
0x0012a004 lw t9, 0x28(sp) | t9 = *(var_28h);
0x0012a008 addiu a1, zero, 5 | a1 = 5;
0x0012a00c jalr t9 | t9 ();
0x0012a010 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0012a014 bnez v0, 0x129a90 | goto label_7;
| }
0x0012a018 lw a1, (fp) | a1 = *(fp);
0x0012a01c lbu a0, (a1) | a0 = *(a1);
| if (a0 != 0) {
0x0012a020 beql a0, zero, 0x12a03c |
0x0012a024 addiu v0, a0, -9 | v0 = a0 + -9;
0x0012a028 addiu v0, a1, 1 | v0 = a1 + 1;
0x0012a02c sw v0, (fp) | *(fp) = v0;
0x0012a030 lbu a0, 1(a1) | a0 = *((a1 + 1));
0x0012a034 move a1, v0 | a1 = v0;
0x0012a038 addiu v0, a0, -9 | v0 = a0 + -9;
| }
0x0012a03c addiu a2, zero, 0x20 | a2 = 0x20;
0x0012a040 addiu a1, a1, 1 | a1++;
0x0012a044 andi v0, v0, 0xff | v0 &= 0xff;
0x0012a048 beq a0, a2, 0x12a060 |
| while (a0 != a2) {
0x0012a04c sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x0012a050 sw a1, (fp) | *(fp) = a1;
| if (v0 != 0) {
0x0012a054 bnel v0, zero, 0x12a064 |
| if (a0 != s2) {
0x0012a058 bne a0, s2, 0x12a080 | goto label_79;
| }
0x0012a05c nop |
0x0012a060 sw a1, (fp) | *(fp) = a1;
| }
| label_10:
0x0012a064 lbu a0, (a1) | a0 = *(a1);
0x0012a068 addiu a1, a1, 1 | a1++;
0x0012a06c addiu v0, a0, -9 | v0 = a0 + -9;
0x0012a070 andi v0, v0, 0xff | v0 &= 0xff;
0x0012a074 bne a0, a2, 0x12a04c |
| }
0x0012a078 sw a1, (fp) | *(fp) = a1;
0x0012a07c b 0x12a064 | goto label_10;
| label_79:
0x0012a080 addiu v0, zero, 1 | v0 = 1;
| if (a0 == 0) {
0x0012a084 beqz a0, 0x129a0c | goto label_11;
| }
0x0012a088 lw t9, 0x24(sp) | t9 = *(var_24h);
| label_14:
0x0012a08c move a0, fp | a0 = fp;
0x0012a090 jalr t9 | t9 ();
0x0012a094 lw v0, 8(fp) | v0 = *(arg_68h);
0x0012a098 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0012a09c bnez v0, 0x129a10 | goto label_9;
| }
0x0012a0a0 lw a1, (fp) | a1 = *(fp);
0x0012a0a4 lbu a0, (a1) | a0 = *(a1);
| if (a0 == s3) {
0x0012a0a8 beql a0, s3, 0x129ff4 | goto label_12;
| }
0x0012a0ac lbu v0, 1(a1) | v0 = *((a1 + 1));
| label_56:
0x0012a0b0 addiu v0, zero, 1 | v0 = 1;
| if (a0 != 0) {
0x0012a0b4 bnez a0, 0x129a0c | goto label_11;
| }
0x0012a0b8 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x0012a0bc b 0x129a9c | goto label_13;
| label_78:
0x0012a0c0 lw t9, 0x28(sp) | t9 = *(var_28h);
0x0012a0c4 addiu a1, zero, 6 | a1 = 6;
0x0012a0c8 jalr t9 | t9 ();
0x0012a0cc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0012a0d0 bnez v0, 0x129a90 | goto label_7;
| }
0x0012a0d4 lw a1, (fp) | a1 = *(fp);
0x0012a0d8 lbu a0, (a1) | a0 = *(a1);
0x0012a0dc addiu v0, a0, -9 | v0 = a0 + -9;
| if (a0 != 0) {
0x0012a0e0 beqz a0, 0x12a10c |
0x0012a0e4 addiu v0, a1, 1 | v0 = a1 + 1;
0x0012a0e8 sw v0, (fp) | *(fp) = v0;
0x0012a0ec lbu a0, 1(a1) | a0 = *((a1 + 1));
| if (a0 != 0) {
0x0012a0f0 beql a0, zero, 0x12a108 |
0x0012a0f4 move a1, v0 | a1 = v0;
0x0012a0f8 addiu v0, a1, 2 | v0 = a1 + 2;
0x0012a0fc sw v0, (fp) | *(fp) = v0;
0x0012a100 lbu a0, 2(a1) | a0 = *((a1 + 2));
0x0012a104 move a1, v0 | a1 = v0;
| }
0x0012a108 addiu v0, a0, -9 | v0 = a0 + -9;
| }
0x0012a10c addiu a2, zero, 0x20 | a2 = 0x20;
0x0012a110 addiu a1, a1, 1 | a1++;
0x0012a114 andi v0, v0, 0xff | v0 &= 0xff;
| if (a0 == a2) {
0x0012a118 beq a0, a2, 0x12a130 | goto label_80;
| }
| label_15:
0x0012a11c sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x0012a120 sw a1, (fp) | *(fp) = a1;
| if (v0 == 0) {
0x0012a124 bnel v0, zero, 0x12a134 | goto label_16;
| }
0x0012a128 lw t9, 0x24(sp) | t9 = *(var_24h);
| if (a0 != s2) {
0x0012a12c bne a0, s2, 0x12a08c | goto label_14;
| }
| label_80:
0x0012a130 sw a1, (fp) | *(fp) = a1;
| label_16:
0x0012a134 lbu a0, (a1) | a0 = *(a1);
0x0012a138 addiu a1, a1, 1 | a1++;
0x0012a13c addiu v0, a0, -9 | v0 = a0 + -9;
0x0012a140 andi v0, v0, 0xff | v0 &= 0xff;
| if (a0 != a2) {
0x0012a144 bne a0, a2, 0x12a11c | goto label_15;
| }
0x0012a148 sw a1, (fp) | *(fp) = a1;
0x0012a14c b 0x12a134 | goto label_16;
| label_62:
0x0012a158 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x0012a15c addiu v0, zero, 0x100 | v0 = aav.0x00000100;
0x0012a160 addiu v0, zero, 0x200 | v0 = aav.0x00000200;
| if (v1 == v0) {
0x0012a164 beq v1, v0, 0x12a484 | goto label_81;
| }
| if (v1 != v0) {
0x0012a168 bne v1, v0, 0x129acc | goto label_17;
| }
0x0012a16c nop |
0x0012a170 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x0012a174 andi v0, v0, 0x100 | v0 &= aav.0x00000100;
| if (v0 == 0) {
0x0012a178 beqz v0, 0x129acc | goto label_17;
| }
0x0012a17c nop |
0x0012a180 move s5, zero | s5 = 0;
0x0012a184 b 0x129cc4 | goto label_18;
| label_50:
0x0012a188 addiu a1, zero, 0x2f | a1 = 0x2f;
0x0012a18c ori v0, v0, 0x200 | v0 |= aav.0x00000200;
0x0012a190 sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x0012a194 lbu v0, (a0) | v0 = *(a0);
| if (v0 == a1) {
0x0012a198 beql v0, a1, 0x12a2e4 | goto label_82;
| }
0x0012a19c lbu a0, 1(a0) | a0 = *((a0 + 1));
0x0012a1a0 addiu a2, zero, 0x2e | a2 = 0x2e;
| label_22:
0x0012a1a4 lw a0, (fp) | a0 = *(fp);
| if (v0 == a2) {
0x0012a1a8 bnel v0, a2, 0x12a4b4 | goto label_83;
| }
0x0012a1ac lbu v0, 1(a0) | v0 = *((a0 + 1));
0x0012a1b0 lw v0, -0x7fd4(gp) | v0 = *(gp);
| if (v0 == a1) {
0x0012a1b4 bnel v0, a1, 0x129f90 | goto label_19;
| }
0x0012a1b8 lbu a0, 2(a0) | a0 = *((a0 + 2));
0x0012a1bc lw v0, -0x7fd4(gp) | v0 = *(gp);
| if (a0 != v0) {
0x0012a1c0 bne a0, v0, 0x129f90 | goto label_19;
| }
0x0012a1c4 lw t9, 0x28(sp) | t9 = *(var_28h);
0x0012a1c8 move a3, zero | a3 = 0;
0x0012a1cc move a2, zero | a2 = 0;
0x0012a1d0 addiu a1, zero, 6 | a1 = 6;
0x0012a1d4 move a0, s0 | a0 = s0;
0x0012a1d8 jalr t9 | t9 ();
0x0012a1dc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0012a1e0 bnez v0, 0x129a90 | goto label_7;
| }
0x0012a1e4 lw a0, (fp) | a0 = *(fp);
0x0012a1e8 lbu v0, (a0) | v0 = *(a0);
0x0012a1ec move a1, zero | a1 = 0;
| if (v0 != 0) {
0x0012a1f0 beqz v0, 0x12a22c |
0x0012a1f4 addiu v0, a0, 1 | v0 = a0 + 1;
0x0012a1f8 sw v0, (fp) | *(fp) = v0;
0x0012a1fc lbu a1, 1(a0) | a1 = *((a0 + 1));
| if (a1 == 0) {
0x0012a200 beql a1, zero, 0x12a64c | goto label_84;
| }
0x0012a204 move a0, v0 | a0 = v0;
0x0012a208 addiu v0, a0, 2 | v0 = a0 + 2;
0x0012a20c sw v0, (fp) | *(fp) = v0;
0x0012a210 lbu a1, 2(a0) | a1 = *((a0 + 2));
| if (a1 == 0) {
0x0012a214 beql a1, zero, 0x12a22c | goto label_36;
| }
0x0012a218 move a0, v0 | a0 = v0;
0x0012a21c addiu v0, a0, 3 | v0 = a0 + 3;
0x0012a220 sw v0, (fp) | *(fp) = v0;
0x0012a224 lbu a1, 3(a0) | a1 = *((a0 + 3));
0x0012a228 move a0, v0 | a0 = v0;
| }
| label_36:
0x0012a22c addiu v0, a1, -9 | v0 = a1 + -9;
0x0012a230 addiu a3, zero, 0x20 | a3 = 0x20;
0x0012a234 addiu a2, zero, 0xd | a2 = 0xd;
0x0012a238 andi v0, v0, 0xff | v0 &= 0xff;
0x0012a23c beq a1, a3, 0x12a254 |
| while (a1 != a3) {
0x0012a240 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x0012a244 addiu a0, a0, 1 | a0++;
| if (v0 != 0) {
0x0012a248 bnel v0, zero, 0x12a258 |
| if (a1 != a2) {
0x0012a24c bne a1, a2, 0x12a654 | goto label_85;
| }
0x0012a250 nop |
0x0012a254 addiu a0, a0, 1 | a0++;
| }
| label_20:
0x0012a258 sw a0, (fp) | *(fp) = a0;
0x0012a25c lbu a1, (a0) | a1 = *(a0);
0x0012a260 addiu v0, a1, -9 | v0 = a1 + -9;
0x0012a264 andi v0, v0, 0xff | v0 &= 0xff;
0x0012a268 bne a1, a3, 0x12a240 |
| }
0x0012a26c addiu a0, a0, 1 | a0++;
0x0012a270 b 0x12a258 | goto label_20;
| if (t3 == v0) {
| label_69:
0x0012a274 beql t3, v0, 0x12a2bc | goto label_86;
| }
0x0012a278 addiu t3, t3, -1 | t3 += -1;
0x0012a27c sll a3, t3, 1 | a3 = t3 << 1;
0x0012a280 addu a3, a3, t3 | a3 += t3;
0x0012a284 sll v0, a3, 2 | v0 = a3 << 2;
0x0012a288 addiu a3, a0, -0xc | a3 = a0 + -0xc;
0x0012a28c move v1, a0 | v1 = a0;
0x0012a290 addu a3, v0, a3 | a3 = v0 + a3;
0x0012a294 lw a2, 0x10(v1) | a2 = *((v1 + 4));
| do {
0x0012a298 lw a1, 0x14(v1) | a1 = *((v1 + 5));
0x0012a29c lw v0, 0xc(v1) | v0 = *((v1 + 3));
0x0012a2a0 sw a2, 4(v1) | *((v1 + 1)) = a2;
0x0012a2a4 sw a1, 8(v1) | *((v1 + 2)) = a1;
0x0012a2a8 sw v0, (v1) | *(v1) = v0;
0x0012a2ac addiu v1, v1, 0xc | v1 += 0xc;
0x0012a2b0 lw a2, 0x10(v1) | a2 = *((v1 + 4));
0x0012a2b4 bnel v1, a3, 0x12a298 |
| } while (v1 == a3);
0x0012a2b8 addiu t3, t3, -1 | t3 += -1;
| label_86:
0x0012a2bc sw t3, 0x14(s0) | *((s0 + 5)) = t3;
0x0012a2c0 b 0x129cd8 | goto label_21;
| label_49:
0x0012a2c4 lw v0, 0x68(sp) | v0 = *(arg_68h);
0x0012a2c8 addiu a1, zero, 0x2f | a1 = 0x2f;
0x0012a2cc ori v0, v0, 0x100 | v0 |= aav.0x00000100;
0x0012a2d0 sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x0012a2d4 lbu v0, (a0) | v0 = *(a0);
0x0012a2d8 addiu a2, zero, 0x2e | a2 = 0x2e;
| if (v0 != a1) {
0x0012a2dc bne v0, a1, 0x12a1a4 | goto label_22;
| }
0x0012a2e0 lbu a0, 1(a0) | a0 = *((a0 + 1));
| label_82:
0x0012a2e4 lw t9, 0x28(sp) | t9 = *(var_28h);
| if (a0 == v0) {
0x0012a2e8 beq a0, v0, 0x129f2c | goto label_23;
| }
0x0012a2ec lw a0, 0x10(fp) | a0 = *(arg_10h);
| label_75:
0x0012a2f0 lw t9, 0x28(sp) | t9 = *(var_28h);
0x0012a2f4 move a3, zero | a3 = 0;
0x0012a2f8 move a2, zero | a2 = 0;
0x0012a2fc addiu a1, zero, 1 | a1 = 1;
0x0012a300 jalr t9 | t9 ();
0x0012a304 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0012a308 bnez v0, 0x129a90 | goto label_7;
| }
0x0012a30c lw a2, (fp) | a2 = *(fp);
0x0012a310 lbu a0, (a2) | a0 = *(a2);
0x0012a314 addiu v0, a2, 1 | v0 = a2 + 1;
| if (a0 == 0) {
0x0012a318 bnel a0, zero, 0x12a4d4 | goto label_87;
| }
| label_28:
0x0012a31c addiu v0, a0, -9 | v0 = a0 + -9;
0x0012a320 addiu a3, zero, 0x20 | a3 = 0x20;
0x0012a324 addiu a2, a2, 1 | a2++;
0x0012a328 addiu a1, zero, 0xd | a1 = 0xd;
0x0012a32c andi v0, v0, 0xff | v0 &= 0xff;
0x0012a330 beq a0, a3, 0x12a348 |
| while (a0 != a3) {
0x0012a334 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x0012a338 sw a2, (fp) | *(fp) = a2;
| if (v0 != 0) {
0x0012a33c bnel v0, zero, 0x12a34c |
| if (a0 != a1) {
0x0012a340 bne a0, a1, 0x12a43c | goto label_88;
| }
0x0012a344 nop |
0x0012a348 sw a2, (fp) | *(fp) = a2;
| }
| label_24:
0x0012a34c lbu a0, (a2) | a0 = *(a2);
0x0012a350 addiu a2, a2, 1 | a2++;
0x0012a354 addiu v0, a0, -9 | v0 = a0 + -9;
0x0012a358 andi v0, v0, 0xff | v0 &= 0xff;
0x0012a35c bne a0, a3, 0x12a334 |
| }
0x0012a360 sw a2, (fp) | *(fp) = a2;
0x0012a364 b 0x12a34c | goto label_24;
| label_53:
0x0012a368 sw a0, (fp) | *(fp) = a0;
0x0012a36c addiu a3, zero, 0x20 | a3 = 0x20;
0x0012a370 addiu a2, zero, 0xd | a2 = 0xd;
| do {
0x0012a374 lbu a1, (a0) | a1 = *(a0);
0x0012a378 addiu v0, a1, -9 | v0 = a1 + -9;
0x0012a37c andi v0, v0, 0xff | v0 &= 0xff;
| if (a1 != a3) {
0x0012a380 beq a1, a3, 0x12a398 |
0x0012a384 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x0012a388 addiu a0, a0, 1 | a0++;
| if (v0 == 0) {
0x0012a38c bnel v0, zero, 0x12a39c | goto label_89;
| }
| if (a1 != a2) {
0x0012a390 bne a1, a2, 0x12a3a4 | goto label_90;
| }
0x0012a394 nop |
| }
0x0012a398 addiu a0, a0, 1 | a0++;
| label_89:
0x0012a39c sw a0, (fp) | *(fp) = a0;
0x0012a3a0 b 0x12a374 |
| } while (1);
| label_90:
0x0012a3a4 addiu v0, zero, 0x2f | v0 = 0x2f;
| if (a1 == 0) {
0x0012a3a8 beqz a1, 0x12a530 | goto label_91;
| }
0x0012a3ac addiu v0, zero, 1 | v0 = 1;
| if (a1 == v0) {
0x0012a3b0 bnel a1, v0, 0x129a0c | goto label_11;
| }
0x0012a3b4 addiu a0, a0, 1 | a0++;
0x0012a3b8 sw a0, (fp) | *(fp) = a0;
0x0012a3bc addiu a3, zero, 0x20 | a3 = 0x20;
0x0012a3c0 addiu a2, zero, 0xd | a2 = 0xd;
| do {
0x0012a3c4 lbu a1, (a0) | a1 = *(a0);
0x0012a3c8 addiu v0, a1, -9 | v0 = a1 + -9;
0x0012a3cc andi v0, v0, 0xff | v0 &= 0xff;
| if (a1 != a3) {
0x0012a3d0 beq a1, a3, 0x12a3e8 |
0x0012a3d4 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x0012a3d8 addiu a0, a0, 1 | a0++;
| if (v0 == 0) {
0x0012a3dc bnel v0, zero, 0x12a3ec | goto label_92;
| }
0x0012a3e0 addiu v0, zero, 0x2f | v0 = 0x2f;
| if (a1 == a2) {
0x0012a3e4 bnel a1, a2, 0x12a4bc | goto label_93;
| }
| }
0x0012a3e8 addiu a0, a0, 1 | a0++;
| label_92:
0x0012a3ec sw a0, (fp) | *(fp) = a0;
0x0012a3f0 b 0x12a3c4 |
| } while (1);
| label_73:
0x0012a3f4 lw t9, -0x791c(gp) | t9 = *((gp - 7751));
| if (s7 != 0) {
0x0012a3f8 beqz s7, 0x12a404 |
0x0012a3fc move a0, s7 | a0 = s7;
0x0012a400 bal 0x1292d8 | sym_xmlFreePattern ();
| }
| label_39:
0x0012a404 move s7, zero | s7 = 0;
0x0012a408 lw ra, 0x5c(sp) | ra = *(var_5ch);
| label_72:
0x0012a40c move v0, s7 | v0 = s7;
0x0012a410 lw fp, 0x58(sp) | fp = *(var_58h);
0x0012a414 lw s7, 0x54(sp) | s7 = *(var_54h);
0x0012a418 lw s6, 0x50(sp) | s6 = *(var_50h);
0x0012a41c lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x0012a420 lw s4, 0x48(sp) | s4 = *(var_48h);
0x0012a424 lw s3, 0x44(sp) | s3 = *(var_44h);
0x0012a428 lw s2, 0x40(sp) | s2 = *(var_40h);
0x0012a42c lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0012a430 lw s0, 0x38(sp) | s0 = *(var_38h);
0x0012a434 addiu sp, sp, 0x60 |
0x0012a438 jr ra | return v0;
| label_88:
0x0012a43c lw v0, -0x7fd4(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0012a440 bnel a0, zero, 0x129f90 | goto label_19;
| }
0x0012a444 addiu v0, zero, 1 | v0 = 1;
0x0012a448 b 0x129a0c | goto label_11;
| label_66:
0x0012a44c slt a0, v0, a0 | a0 = (v0 < a0) ? 1 : 0;
0x0012a450 sll v0, v0, 4 | v0 <<= 4;
| if (a0 == 0) {
0x0012a454 beqz a0, 0x129ca8 | goto label_25;
| }
0x0012a458 lw v1, 0xc(s2) | v1 = *((s2 + 3));
| /* aav.0x00030000 */
0x0012a45c addu v0, v1, v0 | v0 = v1 + v0;
0x0012a460 lw a0, (v0) | a0 = *(v0);
0x0012a464 ori a0, a0, 2 | a0 |= 2;
0x0012a468 sw a0, (v0) | *(v0) = a0;
0x0012a46c lw v0, (v1) | v0 = *(v1);
0x0012a470 lw a0, 0x1c(s0) | a0 = *((s0 + 7));
0x0012a474 ori v0, v0, 4 | v0 |= 4;
0x0012a478 sw v0, (v1) | *(v1) = v0;
0x0012a47c sw s2, 0x20(s0) | *((s0 + 8)) = s2;
0x0012a480 b 0x129cc4 | goto label_18;
| label_81:
0x0012a484 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x0012a488 andi v0, v0, 0x200 | v0 &= aav.0x00000200;
| if (v0 == 0) {
0x0012a48c beqz v0, 0x129acc | goto label_17;
| }
0x0012a490 nop |
0x0012a494 move s5, zero | s5 = 0;
0x0012a498 b 0x129cc4 | goto label_18;
| label_45:
0x0012a49c lw v0, -0x7158(gp) | v0 = *(gp);
0x0012a4a0 lw t9, (v0) | t9 = *(v0);
0x0012a4a4 move a0, s0 | a0 = s0;
0x0012a4a8 jalr t9 | t9 ();
0x0012a4ac lw gp, 0x18(sp) | gp = *(var_18h);
0x0012a4b0 b 0x129a10 | goto label_9;
| label_83:
0x0012a4b4 lbu a1, (a0) | a1 = *(a0);
0x0012a4b8 b 0x1298a0 | goto label_26;
| if (a1 == v0) {
| label_93:
0x0012a4bc beql a1, v0, 0x12a598 | goto label_94;
| }
0x0012a4c0 lbu v0, -1(a0) | v0 = *((a0 - 1));
| label_33:
0x0012a4c4 lw v0, -0x7fd4(gp) | v0 = *(gp);
| if (a1 == 0) {
0x0012a4c8 bnel a1, zero, 0x129928 | goto label_27;
| }
0x0012a4cc addiu v0, zero, 1 | v0 = 1;
0x0012a4d0 b 0x129a0c | goto label_11;
| label_87:
0x0012a4d4 sw v0, (fp) | *(fp) = v0;
0x0012a4d8 lbu a0, 1(a2) | a0 = *((a2 + 1));
0x0012a4dc move a2, v0 | a2 = v0;
0x0012a4e0 b 0x12a31c | goto label_28;
| label_63:
0x0012a4e4 srl a0, t3, 0x1f | a0 = t3 >> 0x1f;
| if (v0 == 0) {
0x0012a4e8 bnel v0, zero, 0x129aec | goto label_29;
| }
0x0012a4ec lw v0, 8(a0) | v0 = *((a0 + 2));
0x0012a4f0 srl a0, t3, 0x1f | a0 = t3 >> 0x1f;
| if (v0 != 0) {
0x0012a4f4 bnez v0, 0x129aec | goto label_29;
| }
0x0012a4f8 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x0012a4fc addiu t9, t9, 0x75e0 | t9 += aav.0x000075e0;
0x0012a500 move a0, zero | a0 = 0;
0x0012a504 bal 0x1275e0 | fcn_001275e0 ();
0x0012a508 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0012a50c beqz v0, 0x12a66c | goto label_95;
| }
0x0012a510 lw v1, 0x10(v0) | v1 = *((v0 + 4));
0x0012a514 lw a0, 0x1c(s0) | a0 = *((s0 + 7));
0x0012a518 ori v1, v1, 0x4000 | v1 |= aav.0x00004000;
0x0012a51c sw v1, 0x10(v0) | *((v0 + 4)) = v1;
0x0012a520 addiu s5, zero, 1 | s5 = 1;
0x0012a524 sw v0, 0x20(s0) | *((s0 + 8)) = v0;
0x0012a528 lw t3, 0x14(s0) | t3 = *((s0 + 5));
0x0012a52c b 0x129cc4 | goto label_18;
| label_91:
0x0012a530 lw t9, 0x28(sp) | t9 = *(var_28h);
0x0012a534 move a3, zero | a3 = 0;
0x0012a538 move a2, zero | a2 = 0;
0x0012a53c addiu a1, zero, 2 | a1 = 2;
0x0012a540 move a0, s0 | a0 = s0;
0x0012a544 jalr t9 | t9 ();
0x0012a548 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0012a54c bnez v0, 0x129a08 | goto label_30;
| }
0x0012a550 lw v0, 8(fp) | v0 = *(arg_68h);
0x0012a554 b 0x129a94 | goto label_31;
| label_60:
0x0012a558 addiu t9, v0, -0x752c | t9 = v0 + -aav.0x0000752c;
0x0012a55c move a0, fp | a0 = fp;
0x0012a560 bal 0x128ad4 | fcn_00128ad4 ();
0x0012a564 lw v0, 8(fp) | v0 = *(arg_68h);
0x0012a568 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0012a56c bnez v0, 0x129a10 | goto label_9;
| }
0x0012a570 lw v0, (fp) | v0 = *(fp);
0x0012a574 lbu v0, (v0) | v0 = *(v0);
0x0012a578 addiu v0, zero, 1 | v0 = 1;
| if (v0 != 0) {
0x0012a57c bnez v0, 0x129a0c | goto label_11;
| }
0x0012a580 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x0012a584 b 0x129a9c | goto label_13;
| label_67:
0x0012a588 sw v1, 0x10(s2) | *((s2 + 4)) = v1;
0x0012a58c b 0x129c20 | goto label_32;
| label_94:
0x0012a598 addiu v0, v0, -9 | v0 += -9;
0x0012a59c andi a0, v0, 0xff | a0 = v0 & 0xff;
0x0012a5a0 sltiu v0, a0, 0x18 | v0 = (a0 < 0x18) ? 1 : 0;
0x0012a5a4 lw t9, 0x28(sp) | t9 = *(var_28h);
| if (v0 == 0) {
0x0012a5a8 beqz v0, 0x12a5c8 | goto label_96;
| }
0x0012a5ac lui v0, 0x80 | v0 = 0x800013;
0x0012a5b0 addiu v0, v0, 0x13 |
0x0012a5b4 srlv v0, v0, a0 | v0 >>= a0;
0x0012a5b8 ext v0, v0, 0, 1 | __asm ("ext v0, v0, 0, 1");
0x0012a5bc addiu v0, zero, 1 | v0 = 1;
| if (v0 != 0) {
0x0012a5c0 bnez v0, 0x129a0c | goto label_11;
| }
0x0012a5c4 lw t9, 0x28(sp) | t9 = *(var_28h);
| label_96:
0x0012a5c8 move a3, zero | a3 = 0;
0x0012a5cc move a2, zero | a2 = 0;
0x0012a5d0 addiu a1, zero, 6 | a1 = 6;
0x0012a5d4 move a0, s0 | a0 = s0;
0x0012a5d8 jalr t9 | t9 ();
0x0012a5dc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0012a5e0 bnez v0, 0x129a08 | goto label_30;
| }
0x0012a5e4 lw v0, (fp) | v0 = *(fp);
0x0012a5e8 lbu a1, (v0) | a1 = *(v0);
0x0012a5ec addiu a0, v0, 1 | a0 = v0 + 1;
| if (a1 != 0) {
0x0012a5f0 beqz a1, 0x12a604 |
0x0012a5f4 sw a0, (fp) | *(fp) = a0;
0x0012a5f8 lbu a1, 1(v0) | a1 = *((v0 + 1));
0x0012a5fc move v0, a0 | v0 = a0;
0x0012a600 addiu a0, v0, 1 | a0 = v0 + 1;
| }
0x0012a604 addiu a3, zero, 0x20 | a3 = 0x20;
0x0012a608 addiu v0, a1, -9 | v0 = a1 + -9;
0x0012a60c addiu a2, zero, 0xd | a2 = 0xd;
0x0012a610 andi v0, v0, 0xff | v0 &= 0xff;
| if (a1 == a3) {
0x0012a614 beq a1, a3, 0x12a62c | goto label_97;
| }
| label_34:
0x0012a618 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x0012a61c sw a0, (fp) | *(fp) = a0;
| if (v0 == 0) {
0x0012a620 bnel v0, zero, 0x12a630 | goto label_35;
| }
| if (a1 != a2) {
0x0012a624 bne a1, a2, 0x12a4c4 | goto label_33;
| }
0x0012a628 nop |
| label_97:
0x0012a62c sw a0, (fp) | *(fp) = a0;
| label_35:
0x0012a630 lbu a1, (a0) | a1 = *(a0);
0x0012a634 addiu a0, a0, 1 | a0++;
0x0012a638 addiu v0, a1, -9 | v0 = a1 + -9;
0x0012a63c andi v0, v0, 0xff | v0 &= 0xff;
| if (a1 != a3) {
0x0012a640 bne a1, a3, 0x12a618 | goto label_34;
| }
0x0012a644 sw a0, (fp) | *(fp) = a0;
0x0012a648 b 0x12a630 | goto label_35;
| label_84:
0x0012a64c move a1, zero | a1 = 0;
0x0012a650 b 0x12a22c | goto label_36;
| label_85:
0x0012a654 addiu v0, zero, 0x40 | v0 = 0x40;
| if (a1 == 0) {
0x0012a658 bnel a1, zero, 0x129f78 | goto label_37;
| }
0x0012a65c addiu v0, zero, 1 | v0 = 1;
0x0012a660 b 0x129a0c | goto label_11;
| label_64:
0x0012a664 move v0, zero | v0 = 0;
0x0012a668 b 0x129c00 | goto label_38;
| label_95:
0x0012a66c lw a0, 0x1c(s0) | a0 = *((s0 + 7));
0x0012a670 addiu s5, zero, 1 | s5 = 1;
0x0012a674 lw t3, 0x14(s0) | t3 = *((s0 + 5));
0x0012a678 b 0x129cc4 | goto label_18;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x1063ec */
| #include <stdint.h>
|
; (fcn) sym.xmlReaderForIO () | void xmlReaderForIO () {
0x001063ec lui gp, 9 |
0x001063f0 addiu gp, gp, -0x4d7c |
0x001063f4 addu gp, gp, t9 | gp += t9;
0x001063f8 addiu sp, sp, -0x38 |
0x001063fc sw gp, 0x18(sp) | *(var_18h) = gp;
0x00106400 sw ra, 0x34(sp) | *(var_34h) = ra;
0x00106404 sw s3, 0x30(sp) | *(var_30h) = s3;
0x00106408 sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x0010640c sw s1, 0x28(sp) | *(var_28h) = s1;
0x00106410 sw s0, 0x24(sp) | *(var_24h) = s0;
0x00106414 lw t9, -0x7d18(gp) | t9 = *((gp - 8006));
| if (a0 == 0) {
0x00106418 beqz a0, 0x1064a4 | goto label_2;
| }
0x0010641c move s1, a3 | s1 = a3;
0x00106420 move a3, zero | a3 = 0;
0x00106424 move s0, a1 | s0 = a1;
0x00106428 move s2, a2 | s2 = a2;
0x0010642c jalr t9 | t9 ();
0x00106430 move s3, v0 | s3 = v0;
0x00106434 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00106438 beqz v0, 0x1064c8 | goto label_3;
| }
0x0010643c lw t9, -0x73f8(gp) | t9 = *(gp);
0x00106440 move a1, s1 | a1 = s1;
0x00106444 move a0, v0 | a0 = v0;
0x00106448 bal 0x1016c4 | sym_xmlNewTextReader ();
0x0010644c move s0, v0 | s0 = v0;
0x00106450 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00106454 beqz v0, 0x1064e0 | goto label_4;
| }
0x00106458 lw v0, 0xc(v0) | v0 = *((v0 + 3));
0x0010645c lw a3, 0x48(sp) | a3 = *(arg_48h);
0x00106460 ori v0, v0, 1 | v0 |= 1;
0x00106464 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
0x00106468 lw v0, 0x4c(sp) | v0 = *(arg_4ch);
0x0010646c lw t9, -0x73c0(gp) | t9 = *((gp - 7408));
0x00106470 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00106474 move a2, s1 | a2 = s1;
0x00106478 move a1, zero | a1 = 0;
0x0010647c move a0, s0 | a0 = s0;
0x00106480 bal 0x105a2c | sym_xmlTextReaderSetup ();
| label_0:
0x00106484 lw ra, 0x34(sp) | ra = *(var_34h);
| label_1:
0x00106488 move v0, s0 | v0 = s0;
0x0010648c lw s3, 0x30(sp) | s3 = *(var_30h);
0x00106490 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x00106494 lw s1, 0x28(sp) | s1 = *(var_28h);
0x00106498 lw s0, 0x24(sp) | s0 = *(var_24h);
0x0010649c addiu sp, sp, 0x38 |
0x001064a0 jr ra | return v0;
| do {
| label_2:
0x001064a4 lw ra, 0x34(sp) | ra = *(var_34h);
0x001064a8 move s0, zero | s0 = 0;
0x001064ac move v0, s0 | v0 = s0;
0x001064b0 lw s3, 0x30(sp) | s3 = *(var_30h);
0x001064b4 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x001064b8 lw s1, 0x28(sp) | s1 = *(var_28h);
0x001064bc lw s0, 0x24(sp) | s0 = *(var_24h);
0x001064c0 addiu sp, sp, 0x38 |
0x001064c4 jr ra | return v0;
| label_3:
0x001064c8 move t9, s0 | t9 = s0;
0x001064cc beqz s0, 0x1064a4 |
| } while (s0 == 0);
0x001064d0 move a0, s2 | a0 = s2;
0x001064d4 jalr t9 | t9 ();
0x001064d8 move s0, zero | s0 = 0;
0x001064dc b 0x106484 | goto label_0;
| label_4:
0x001064e0 lw t9, -0x7ee8(gp) | t9 = *(gp);
0x001064e4 move a0, s3 | a0 = s3;
0x001064e8 jalr t9 | t9 ();
0x001064ec lw ra, 0x34(sp) | ra = *(var_34h);
0x001064f0 b 0x106488 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xc3ec0 */
| #include <stdint.h>
|
; (fcn) sym.xmlRegFreeRegexp () | void xmlRegFreeRegexp () {
0x000c3ec0 lui gp, 0xd |
0x000c3ec4 addiu gp, gp, -0x2850 |
0x000c3ec8 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x000c3ecc beqz a0, 0xc4094 | goto label_0;
| }
0x000c3ed0 nop |
0x000c3ed4 addiu sp, sp, -0x30 |
0x000c3ed8 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000c3edc move s0, a0 | s0 = a0;
0x000c3ee0 lw a0, (a0) | a0 = *(a0);
0x000c3ee4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000c3ee8 sw s2, 0x24(sp) | *(var_24h) = s2;
0x000c3eec sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000c3ef0 sw s3, 0x28(sp) | *(var_28h) = s3;
0x000c3ef4 sw s1, 0x20(sp) | *(var_20h) = s1;
0x000c3ef8 lw s2, -0x7158(gp) | s2 = *(gp);
| if (a0 != 0) {
0x000c3efc beqz a0, 0xc3f10 |
0x000c3f00 lw t9, (s2) | t9 = *(s2);
0x000c3f04 jalr t9 | t9 ();
0x000c3f08 nop |
0x000c3f0c lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000c3f10 lw a0, 8(s0) | a0 = *((s0 + 2));
| if (a0 == 0) {
0x000c3f14 beql a0, zero, 0xc3f6c | goto label_1;
| }
0x000c3f18 lw v1, 0x10(s0) | v1 = *((s0 + 4));
0x000c3f1c lw v0, 4(s0) | v0 = *((s0 + 1));
| if (v0 <= 0) {
0x000c3f20 blezl v0, 0xc3f5c | goto label_2;
| }
0x000c3f24 lw t9, (s2) | t9 = *(s2);
0x000c3f28 lw s3, -0x7614(gp) | s3 = *((gp - 7557));
0x000c3f2c move s1, zero | s1 = 0;
0x000c3f30 addiu s3, s3, -0x4c00 | s3 += -0x4c00;
| do {
0x000c3f34 sll v0, s1, 2 | v0 = s1 << 2;
0x000c3f38 move t9, s3 | t9 = s3;
0x000c3f3c lwx a0, v0(a0) | __asm ("lwx a0, v0(a0)");
0x000c3f40 addiu s1, s1, 1 | s1++;
0x000c3f44 bal 0xbb400 | fcn_000bb400 ();
0x000c3f48 lw v0, 4(s0) | v0 = *((s0 + 1));
0x000c3f4c slt v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x000c3f50 lw a0, 8(s0) | a0 = *((s0 + 2));
0x000c3f54 bnez v0, 0xc3f34 |
| } while (v0 != 0);
0x000c3f58 lw t9, (s2) | t9 = *(s2);
| label_2:
0x000c3f5c jalr t9 | t9 ();
0x000c3f60 nop |
0x000c3f64 lw gp, 0x10(sp) | gp = *(var_10h);
0x000c3f68 lw v1, 0x10(s0) | v1 = *((s0 + 4));
| if (v1 == 0) {
| label_1:
0x000c3f6c beql v1, zero, 0xc3fd4 | goto label_3;
| }
0x000c3f70 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x000c3f74 lw a1, 0xc(s0) | a1 = *((s0 + 3));
| if (a1 <= 0) {
0x000c3f78 blezl a1, 0xc3fc4 | goto label_4;
| }
0x000c3f7c lw t9, (s2) | t9 = *(s2);
0x000c3f80 lw s3, -0x7614(gp) | s3 = *((gp - 7557));
0x000c3f84 move s1, zero | s1 = 0;
0x000c3f88 addiu s3, s3, -0x27c4 | s3 += -0x27c4;
0x000c3f8c sll v0, s1, 2 | v0 = s1 << 2;
| do {
0x000c3f90 addiu s1, s1, 1 | s1++;
0x000c3f94 lwx v0, v0(v1) | __asm ("lwx v0, v0(v1)");
0x000c3f98 move a0, v0 | a0 = v0;
| if (v0 != 0) {
0x000c3f9c beqz v0, 0xc3fb4 |
0x000c3fa0 move t9, s3 | t9 = s3;
0x000c3fa4 bal 0xbd83c | fcn_000bd83c ();
0x000c3fa8 nop |
0x000c3fac lw a1, 0xc(s0) | a1 = *((s0 + 3));
0x000c3fb0 lw v1, 0x10(s0) | v1 = *((s0 + 4));
| }
0x000c3fb4 slt v0, s1, a1 | v0 = (s1 < a1) ? 1 : 0;
0x000c3fb8 sll v0, s1, 2 | v0 = s1 << 2;
0x000c3fbc bnez v0, 0xc3f90 |
| } while (v0 != 0);
0x000c3fc0 lw t9, (s2) | t9 = *(s2);
| label_4:
0x000c3fc4 move a0, v1 | a0 = v1;
0x000c3fc8 jalr t9 | t9 ();
0x000c3fcc lw gp, 0x10(sp) | gp = *(var_10h);
0x000c3fd0 lw a0, 0x18(s0) | a0 = *((s0 + 6));
| label_3:
0x000c3fd4 lw t9, (s2) | t9 = *(s2);
| if (a0 != 0) {
0x000c3fd8 beqz a0, 0xc3fec |
0x000c3fdc jalr t9 | t9 ();
0x000c3fe0 nop |
0x000c3fe4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000c3fe8 lw t9, (s2) | t9 = *(s2);
| }
0x000c3fec lw a0, 0x28(s0) | a0 = *((s0 + 10));
| if (a0 != 0) {
0x000c3ff0 beql a0, zero, 0xc400c |
0x000c3ff4 lw a0, 0x2c(s0) | a0 = *((s0 + 11));
0x000c3ff8 jalr t9 | t9 ();
0x000c3ffc nop |
0x000c4000 lw gp, 0x10(sp) | gp = *(var_10h);
0x000c4004 lw t9, (s2) | t9 = *(s2);
0x000c4008 lw a0, 0x2c(s0) | a0 = *((s0 + 11));
| }
| if (a0 != 0) {
0x000c400c beql a0, zero, 0xc4028 |
0x000c4010 lw a0, 0x34(s0) | a0 = *((s0 + 13));
0x000c4014 jalr t9 | t9 ();
0x000c4018 nop |
0x000c401c lw gp, 0x10(sp) | gp = *(var_10h);
0x000c4020 lw t9, (s2) | t9 = *(s2);
0x000c4024 lw a0, 0x34(s0) | a0 = *((s0 + 13));
| }
0x000c4028 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (a0 == 0) {
0x000c402c beqz a0, 0xc4078 | goto label_5;
| }
0x000c4030 lw v0, 0x30(s0) | v0 = *((s0 + 12));
| if (v0 <= 0) {
0x000c4034 blez v0, 0xc4064 | goto label_6;
| }
0x000c4038 nop |
0x000c403c move s1, zero | s1 = 0;
| do {
0x000c4040 sll v0, s1, 2 | v0 = s1 << 2;
0x000c4044 addiu s1, s1, 1 | s1++;
0x000c4048 lwx a0, v0(a0) | __asm ("lwx a0, v0(a0)");
0x000c404c jalr t9 | t9 ();
0x000c4050 lw v0, 0x30(s0) | v0 = *((s0 + 12));
0x000c4054 lw t9, (s2) | t9 = *(s2);
0x000c4058 slt v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x000c405c lw a0, 0x34(s0) | a0 = *((s0 + 13));
0x000c4060 bnez v0, 0xc4040 |
| } while (v0 != 0);
| label_6:
0x000c4064 jalr t9 | t9 ();
0x000c4068 nop |
0x000c406c lw gp, 0x10(sp) | gp = *(var_10h);
0x000c4070 lw t9, (s2) | t9 = *(s2);
0x000c4074 lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_5:
0x000c4078 lw s3, 0x28(sp) | s3 = *(var_28h);
0x000c407c lw s2, 0x24(sp) | s2 = *(var_24h);
0x000c4080 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000c4084 move a0, s0 | a0 = s0;
0x000c4088 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000c408c addiu sp, sp, 0x30 |
0x000c4090 jr t9 | t9 ();
| label_0:
0x000c4094 jr ra | return v0;
0x000c4098 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xc2ca4 */
| #include <stdint.h>
|
; (fcn) sym.xmlRegexpPrint () | void xmlRegexpPrint () {
0x000c2ca4 lui gp, 0xd |
0x000c2ca8 addiu gp, gp, -0x1634 |
0x000c2cac addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x000c2cb0 beqz a0, 0xc35e0 | goto label_5;
| }
0x000c2cb4 nop |
0x000c2cb8 addiu sp, sp, -0x60 |
0x000c2cbc move a3, a0 | a3 = a0;
0x000c2cc0 sw s0, 0x38(sp) | *(var_38h) = s0;
0x000c2cc4 move s0, a0 | s0 = a0;
0x000c2cc8 lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x000c2ccc lw t9, -0x7048(gp) | t9 = *(gp);
0x000c2cd0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000c2cd4 sw s3, 0x44(sp) | *(var_44h) = s3;
0x000c2cd8 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x000c2cdc sw fp, 0x58(sp) | *(var_58h) = fp;
0x000c2ce0 sw s7, 0x54(sp) | *(var_54h) = s7;
0x000c2ce4 sw s6, 0x50(sp) | *(var_50h) = s6;
0x000c2ce8 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x000c2cec sw s4, 0x48(sp) | *(var_48h) = s4;
0x000c2cf0 sw s2, 0x40(sp) | *(var_40h) = s2;
0x000c2cf4 sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x000c2cf8 move s3, a1 | s3 = a1;
0x000c2cfc addiu a2, zero, 9 | a2 = 9;
0x000c2d00 addiu a1, zero, 1 | a1 = 1;
0x000c2d04 addiu a0, a0, 0x4d3c | a0 += 0x4d3c;
0x000c2d08 jalr t9 | t9 ();
0x000c2d0c lw gp, 0x18(sp) | gp = *(var_18h);
| if (s3 == 0) {
0x000c2d10 beqz s3, 0xc35e8 | goto label_6;
| }
0x000c2d14 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x000c2d18 lw t9, -0x6e30(gp) | t9 = *((gp - 7052));
0x000c2d1c lw a3, (s3) | a3 = *(s3);
0x000c2d20 addiu a2, v0, 0x5788 | a2 = v0 + 0x5788;
0x000c2d24 addiu a1, zero, 1 | a1 = 1;
0x000c2d28 move a0, s0 | a0 = s0;
0x000c2d2c sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000c2d30 jalr t9 | t9 ();
0x000c2d34 lw gp, 0x18(sp) | gp = *(var_18h);
0x000c2d38 move a1, s0 | a1 = s0;
0x000c2d3c lw t9, -0x7088(gp) | t9 = *(gp);
0x000c2d40 addiu a0, zero, 0xa | a0 = 0xa;
0x000c2d44 jalr t9 | t9 ();
0x000c2d48 lw gp, 0x18(sp) | gp = *(var_18h);
0x000c2d4c lw a3, 0xc(s3) | a3 = *((s3 + 3));
0x000c2d50 addiu a1, zero, 1 | a1 = 1;
0x000c2d54 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x000c2d58 lw t9, -0x6e30(gp) | t9 = *((gp - 7052));
0x000c2d5c addiu a2, a2, 0x4d50 | a2 += 0x4d50;
0x000c2d60 move a0, s0 | a0 = s0;
0x000c2d64 jalr t9 | t9 ();
0x000c2d68 lw v0, 0xc(s3) | v0 = *((s3 + 3));
0x000c2d6c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 <= 0) {
0x000c2d70 blez v0, 0xc2ef4 | goto label_7;
| }
0x000c2d74 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x000c2d78 lw s4, -0x7614(gp) | s4 = *((gp - 7557));
0x000c2d7c sw v0, 0x20(sp) | *(var_20h) = v0;
0x000c2d80 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x000c2d84 lw s6, -0x7f94(gp) | s6 = *((gp - 8165));
0x000c2d88 sw v0, 0x24(sp) | *(var_24h) = v0;
0x000c2d8c lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x000c2d90 move s1, zero | s1 = 0;
0x000c2d94 sw v0, 0x30(sp) | *(var_30h) = v0;
0x000c2d98 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x000c2d9c addiu s4, s4, -0x38a8 | s4 += -aav.0x000038a8;
0x000c2da0 sw v0, 0x34(sp) | *(var_34h) = v0;
0x000c2da4 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x000c2da8 addiu s6, s6, 0x4dd0 | s6 += aav.0x00004dd0;
0x000c2dac addiu v0, v0, 0x4ddc | v0 += 0x4ddc;
0x000c2db0 sw v0, 0x28(sp) | *(var_28h) = v0;
0x000c2db4 lw v0, 0x20(sp) | v0 = *(var_20h);
| do {
0x000c2db8 lw t9, -0x6e30(gp) | t9 = *((gp - 7052));
0x000c2dbc move a3, s1 | a3 = s1;
0x000c2dc0 addiu a2, v0, 0x4d68 | a2 = v0 + 0x4d68;
0x000c2dc4 addiu a1, zero, 1 | a1 = 1;
0x000c2dc8 move a0, s0 | a0 = s0;
0x000c2dcc jalr t9 | t9 ();
0x000c2dd0 lw v0, 0x10(s3) | v0 = *((s3 + 4));
0x000c2dd4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000c2dd8 sll v1, s1, 2 | v1 = s1 << 2;
0x000c2ddc move a3, s0 | a3 = s0;
0x000c2de0 lwx s7, v1(v0) | __asm ("lwx s7, v1(v0)");
0x000c2de4 lw v0, 0x24(sp) | v0 = *(var_24h);
0x000c2de8 lw t9, -0x7048(gp) | t9 = *(gp);
0x000c2dec addiu a2, zero, 7 | a2 = 7;
0x000c2df0 addiu a1, zero, 1 | a1 = 1;
0x000c2df4 addiu a0, v0, 0x4d70 | a0 = v0 + 0x4d70;
0x000c2df8 jalr t9 | t9 ();
0x000c2dfc lw gp, 0x18(sp) | gp = *(var_18h);
| if (s7 == 0) {
0x000c2e00 beqz s7, 0xc3584 | goto label_8;
| }
0x000c2e04 lw v0, 0x1c(s7) | v0 = *((s7 + 7));
0x000c2e08 lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
| if (v0 != 0) {
0x000c2e0c bnez v0, 0xc32a8 | goto label_9;
| }
0x000c2e10 lw a1, 4(s7) | a1 = *((s7 + 1));
| label_0:
0x000c2e14 move t9, s4 | t9 = s4;
0x000c2e18 move a0, s0 | a0 = s0;
0x000c2e1c bal 0xbc758 | fcn_000bc758 ();
0x000c2e20 lw v0, 8(s7) | v0 = *((s7 + 2));
0x000c2e24 sltiu a0, v0, 9 | a0 = (v0 < 9) ? 1 : 0;
0x000c2e28 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 != 0) {
0x000c2e2c beqz a0, 0xc2ea4 |
0x000c2e30 sll a0, v0, 2 | a0 = v0 << 2;
0x000c2e34 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x000c2e38 addiu v0, v0, 0x4578 | v0 += aav.0x00004578;
0x000c2e3c lwx v0, a0(v0) | __asm ("lwx v0, a0(v0)");
0x000c2e40 addu v0, v0, gp | v0 += gp;
0x000c2e44 jr v0 | v0 ();
0x000c2e48 nop |
| }
0x000c2ea4 lw v0, 4(s7) | v0 = *((s7 + 1));
0x000c2ea8 addiu a0, zero, 5 | a0 = 5;
0x000c2eac addiu a0, zero, 2 | a0 = 2;
| if (v0 == a0) {
0x000c2eb0 beq v0, a0, 0xc334c | goto label_10;
| }
0x000c2eb4 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
| if (v0 == a0) {
0x000c2eb8 beq v0, a0, 0xc337c | goto label_11;
| }
| label_2:
0x000c2ebc addiu a0, zero, 3 | a0 = 3;
0x000c2ec0 addiu a0, zero, 4 | a0 = 4;
| if (v0 == a0) {
0x000c2ec4 beq v0, a0, 0xc339c | goto label_12;
| }
0x000c2ec8 lw t9, -0x7088(gp) | t9 = *(gp);
| if (v0 == a0) {
0x000c2ecc beq v0, a0, 0xc32c8 | goto label_13;
| }
0x000c2ed0 move a1, s0 | a1 = s0;
0x000c2ed4 addiu a0, zero, 0xa | a0 = 0xa;
0x000c2ed8 jalr t9 | t9 ();
0x000c2edc lw gp, 0x18(sp) | gp = *(var_18h);
| label_1:
0x000c2ee0 lw v0, 0xc(s3) | v0 = *((s3 + 3));
0x000c2ee4 addiu s1, s1, 1 | s1++;
0x000c2ee8 slt v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x000c2eec lw v0, 0x20(sp) | v0 = *(var_20h);
0x000c2ef0 bnez v0, 0xc2db8 |
| } while (v0 != 0);
| label_7:
0x000c2ef4 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x000c2ef8 lw t9, -0x6e30(gp) | t9 = *((gp - 7052));
0x000c2efc lw a3, 4(s3) | a3 = *((s3 + 1));
0x000c2f00 addiu a2, a2, 0x4d5c | a2 += 0x4d5c;
0x000c2f04 addiu a1, zero, 1 | a1 = 1;
0x000c2f08 move a0, s0 | a0 = s0;
0x000c2f0c jalr t9 | t9 ();
0x000c2f10 lw gp, 0x18(sp) | gp = *(var_18h);
0x000c2f14 move a1, s0 | a1 = s0;
0x000c2f18 lw t9, -0x7088(gp) | t9 = *(gp);
0x000c2f1c addiu a0, zero, 0xa | a0 = 0xa;
0x000c2f20 jalr t9 | t9 ();
0x000c2f24 lw v0, 4(s3) | v0 = *((s3 + 1));
0x000c2f28 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 <= 0) {
0x000c2f2c blez v0, 0xc317c | void (*0xc317c)() ();
| }
0x000c2f30 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x000c2f34 move s6, zero | s6 = 0;
0x000c2f38 sw v0, 0x30(sp) | *(var_30h) = v0;
0x000c2f3c lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x000c2f40 sw v0, 0x34(sp) | *(var_34h) = v0;
0x000c2f44 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x000c2f48 sw v0, 0x20(sp) | *(var_20h) = v0;
0x000c2f4c lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x000c2f50 addiu v0, v0, 0x4ee4 | v0 += 0x4ee4;
0x000c2f54 sw v0, 0x24(sp) | *(var_24h) = v0;
0x000c2f58 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x000c2f5c addiu v0, v0, 0x4ed8 | v0 += 0x4ed8;
0x000c2f60 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000c2f64 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x000c2f68 addiu v0, v0, 0x4eb4 | v0 += 0x4eb4;
0x000c2f6c sw v0, 0x28(sp) | *(var_28h) = v0;
| label_9:
0x000c32a8 lw t9, -0x7048(gp) | t9 = *(gp);
0x000c32ac move a3, s0 | a3 = s0;
0x000c32b0 addiu a2, zero, 4 | a2 = 4;
0x000c32b4 addiu a1, zero, 1 | a1 = 1;
0x000c32b8 addiu a0, a0, 0x4d78 | a0 += 0x4d78;
0x000c32bc jalr t9 | t9 ();
0x000c32c0 lw a1, 4(s7) | a1 = *((s7 + 1));
0x000c32c4 b 0xc2e14 | goto label_0;
| label_13:
0x000c32c8 lw v0, 0x2c(s7) | v0 = *((s7 + 11));
0x000c32cc lw a0, 0x24(s7) | a0 = *((s7 + 9));
0x000c32d0 lw t9, -0x6e30(gp) | t9 = *((gp - 7052));
0x000c32d4 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x000c32d8 lw a3, 0x10(a0) | a3 = *((a0 + 4));
0x000c32dc sw v0, 0x10(sp) | *(var_10h) = v0;
0x000c32e0 lw v0, 0x30(sp) | v0 = *(var_30h);
0x000c32e4 addiu a1, zero, 1 | a1 = 1;
0x000c32e8 addiu a2, v0, 0x4df4 | a2 = v0 + aav.0x00004df4;
0x000c32ec move a0, s0 | a0 = s0;
0x000c32f0 jalr t9 | t9 ();
0x000c32f4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000c32f8 b 0xc2ee0 | goto label_1;
| label_10:
0x000c334c lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x000c3350 lw t9, -0x6e30(gp) | t9 = *((gp - 7052));
0x000c3354 lw a3, 0x14(s7) | a3 = *((s7 + 5));
0x000c3358 move a0, s0 | a0 = s0;
0x000c335c addiu a2, v0, 0x5788 | a2 = v0 + 0x5788;
0x000c3360 addiu a1, zero, 1 | a1 = 1;
0x000c3364 jalr t9 | t9 ();
0x000c3368 lw v0, 4(s7) | v0 = *((s7 + 1));
0x000c336c addiu a0, zero, 2 | a0 = 2;
0x000c3370 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != a0) {
0x000c3374 bne v0, a0, 0xc2ebc | goto label_2;
| }
0x000c3378 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
| label_11:
0x000c337c lw t9, -0x6e30(gp) | t9 = *((gp - 7052));
0x000c3380 lw a3, 0x20(s7) | a3 = *((s7 + 8));
0x000c3384 addiu a2, a2, 0x4db8 | a2 += 0x4db8;
0x000c3388 addiu a1, zero, 1 | a1 = 1;
0x000c338c move a0, s0 | a0 = s0;
0x000c3390 jalr t9 | t9 ();
0x000c3394 lw gp, 0x18(sp) | gp = *(var_18h);
0x000c3398 b 0xc2ee0 | goto label_1;
| label_12:
0x000c339c lw v0, 0x34(sp) | v0 = *(var_34h);
0x000c33a0 lw t9, -0x6e30(gp) | t9 = *((gp - 7052));
0x000c33a4 lw a3, 0x34(s7) | a3 = *((s7 + 13));
0x000c33a8 addiu a2, v0, 0x4dc4 | a2 = v0 + 0x4dc4;
0x000c33ac addiu a1, zero, 1 | a1 = 1;
0x000c33b0 move a0, s0 | a0 = s0;
0x000c33b4 jalr t9 | t9 ();
0x000c33b8 lw v0, 0x34(s7) | v0 = *((s7 + 13));
0x000c33bc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 <= 0) {
0x000c33c0 blez v0, 0xc2ee0 | goto label_1;
| }
0x000c33c4 lw s5, -0x7f94(gp) | s5 = *((gp - 8165));
0x000c33c8 move s2, zero | s2 = 0;
0x000c33cc addiu s5, s5, 0x4de8 | s5 += 0x4de8;
0x000c33d0 b 0xc341c | goto label_14;
| label_3:
0x000c33d4 lw a1, 4(fp) | a1 = *(arg_4h);
| label_4:
0x000c33d8 move t9, s4 | t9 = s4;
0x000c33dc move a0, s0 | a0 = s0;
0x000c33e0 bal 0xbc758 | fcn_000bc758 ();
0x000c33e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000c33e8 lw v0, 0xc(fp) | v0 = *(arg_ch);
0x000c33ec lw a3, 8(fp) | a3 = *(arg_8h);
0x000c33f0 lw t9, -0x6e30(gp) | t9 = *((gp - 7052));
0x000c33f4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000c33f8 move a2, s5 | a2 = s5;
0x000c33fc addiu a1, zero, 1 | a1 = 1;
0x000c3400 move a0, s0 | a0 = s0;
0x000c3404 jalr t9 | t9 ();
0x000c3408 lw v0, 0x34(s7) | v0 = *((s7 + 13));
0x000c340c addiu s2, s2, 1 | s2++;
0x000c3410 slt v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
0x000c3414 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000c3418 beqz v0, 0xc2ee0 | goto label_1;
| }
| label_14:
0x000c341c lw v0, 0x38(s7) | v0 = *((s7 + 14));
0x000c3420 sll t0, s2, 2 | t0 = s2 << 2;
0x000c3424 lw t9, -0x7048(gp) | t9 = *(gp);
0x000c3428 lwx fp, t0(v0) | __asm ("lwx fp, t0(v0)");
0x000c342c move a3, s0 | a3 = s0;
0x000c3430 addiu a2, zero, 9 | a2 = 9;
0x000c3434 addiu a1, zero, 1 | a1 = 1;
0x000c3438 move a0, s6 | a0 = s6;
0x000c343c jalr t9 | t9 ();
0x000c3440 lw v0, (fp) | v0 = *(fp);
0x000c3444 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000c3448 beqz v0, 0xc33d4 | goto label_3;
| }
0x000c344c lw t9, -0x7048(gp) | t9 = *(gp);
0x000c3450 lw a0, 0x28(sp) | a0 = *(var_28h);
0x000c3454 move a3, s0 | a3 = s0;
0x000c3458 addiu a2, zero, 9 | a2 = 9;
0x000c345c addiu a1, zero, 1 | a1 = 1;
0x000c3460 jalr t9 | t9 ();
0x000c3464 lw a1, 4(fp) | a1 = *(arg_4h);
0x000c3468 b 0xc33d8 | goto label_4;
| label_8:
0x000c3584 lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x000c3588 lw t9, -0x7048(gp) | t9 = *(gp);
0x000c358c move a3, s0 | a3 = s0;
0x000c3590 addiu a2, zero, 5 | a2 = 5;
0x000c3594 addiu a1, zero, 1 | a1 = 1;
0x000c3598 addiu a0, a0, 0x4d48 | a0 += 0x4d48;
0x000c359c jalr t9 | t9 ();
0x000c35a0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000c35a4 b 0xc2ee0 | goto label_1;
| label_5:
0x000c35e0 jr ra | return v0;
0x000c35e4 nop |
| label_6:
0x000c35e8 lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x000c35ec lw ra, 0x5c(sp) | ra = *(var_5ch);
0x000c35f0 lw fp, 0x58(sp) | fp = *(var_58h);
0x000c35f4 lw s7, 0x54(sp) | s7 = *(var_54h);
0x000c35f8 lw s6, 0x50(sp) | s6 = *(var_50h);
0x000c35fc lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x000c3600 lw s4, 0x48(sp) | s4 = *(var_48h);
0x000c3604 lw s3, 0x44(sp) | s3 = *(var_44h);
0x000c3608 lw s2, 0x40(sp) | s2 = *(var_40h);
0x000c360c lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x000c3610 move a3, s0 | a3 = s0;
0x000c3614 lw t9, -0x7048(gp) | t9 = *(gp);
0x000c3618 lw s0, 0x38(sp) | s0 = *(var_38h);
0x000c361c addiu a2, zero, 5 | a2 = 5;
0x000c3620 addiu a1, zero, 1 | a1 = 1;
0x000c3624 addiu a0, a0, 0x4d48 | a0 += 0x4d48;
0x000c3628 addiu sp, sp, 0x60 |
0x000c362c jr t9 | return t9 ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x118d20 */
| #include <stdint.h>
|
; (fcn) sym.xmlRelaxNGGetParserErrors () | void xmlRelaxNGGetParserErrors () {
| if (a0 != 0) {
0x00118d20 beqz a0, 0x118d68 |
0x00118d24 nop |
| if (a1 != 0) {
0x00118d28 beqz a1, 0x118d38 |
0x00118d2c nop |
0x00118d30 lw v0, 4(a0) | v0 = *((a0 + 1));
0x00118d34 sw v0, (a1) | *(a1) = v0;
| }
| if (a2 != 0) {
0x00118d38 beqz a2, 0x118d48 |
0x00118d3c nop |
0x00118d40 lw v0, 8(a0) | v0 = *((a0 + 2));
0x00118d44 sw v0, (a2) | *(a2) = v0;
| }
| if (a3 != 0) {
0x00118d48 beqz a3, 0x118d60 |
0x00118d4c nop |
0x00118d50 lw v1, (a0) | v1 = *(a0);
0x00118d54 move v0, zero | v0 = 0;
0x00118d58 sw v1, (a3) | *(a3) = v1;
0x00118d5c jr ra | return v0;
| }
0x00118d60 move v0, zero | v0 = 0;
0x00118d64 jr ra | return v0;
| }
0x00118d68 addiu v0, zero, -1 | v0 = -1;
0x00118d6c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x119870 */
| #include <stdint.h>
|
; (fcn) sym.xmlRelaxNGGetValidErrors () | void xmlRelaxNGGetValidErrors () {
| if (a0 != 0) {
0x00119870 beqz a0, 0x1198b8 |
0x00119874 nop |
| if (a1 != 0) {
0x00119878 beqz a1, 0x119888 |
0x0011987c nop |
0x00119880 lw v0, 4(a0) | v0 = *((a0 + 1));
0x00119884 sw v0, (a1) | *(a1) = v0;
| }
| if (a2 != 0) {
0x00119888 beqz a2, 0x119898 |
0x0011988c nop |
0x00119890 lw v0, 8(a0) | v0 = *((a0 + 2));
0x00119894 sw v0, (a2) | *(a2) = v0;
| }
| if (a3 != 0) {
0x00119898 beqz a3, 0x1198b0 |
0x0011989c nop |
0x001198a0 lw v1, (a0) | v1 = *(a0);
0x001198a4 move v0, zero | v0 = 0;
0x001198a8 sw v1, (a3) | *(a3) = v1;
0x001198ac jr ra | return v0;
| }
0x001198b0 move v0, zero | v0 = 0;
0x001198b4 jr ra | return v0;
| }
0x001198b8 addiu v0, zero, -1 | v0 = -1;
0x001198bc jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x119240 */
| #include <stdint.h>
|
; (fcn) sym.xmlRelaxNGValidatePushCData () | void xmlRelaxNGValidatePushCData () {
0x00119240 lui gp, 8 |
0x00119244 addiu gp, gp, -0x7bd0 |
0x00119248 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x0011924c beqz a0, 0x119300 | goto label_2;
| }
0x00119250 nop |
0x00119254 addiu sp, sp, -0x28 |
0x00119258 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0011925c move s0, a0 | s0 = a0;
0x00119260 lw a0, 0x54(a0) | a0 = *((a0 + 21));
0x00119264 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00119268 sw ra, 0x24(sp) | *(var_24h) = ra;
| if (a0 == 0) {
0x0011926c beql a0, zero, 0x1192f0 | goto label_3;
| }
0x00119270 lw ra, 0x24(sp) | ra = *(var_24h);
| if (a1 == 0) {
0x00119274 beql a1, zero, 0x1192f0 | goto label_3;
| }
0x00119278 lw ra, 0x24(sp) | ra = *(var_24h);
0x0011927c lbu v0, (a1) | v0 = *(a1);
0x00119280 lui a2, 0x80 | a2 = 0x800000;
| if (v0 == 0) {
0x00119284 beqz v0, 0x1192c0 | goto label_4;
| }
0x00119288 addiu a2, a2, 0x13 | a2 += 0x13;
0x0011928c addiu v0, v0, -9 | v0 += -9;
| label_0:
0x00119290 andi v0, v0, 0xff | v0 &= 0xff;
0x00119294 srlv v1, a2, v0 | v1 = a2 >> v0;
0x00119298 sltiu v0, v0, 0x18 | v0 = (v0 < 0x18) ? 1 : 0;
0x0011929c ext v1, v1, 0, 1 | __asm ("ext v1, v1, 0, 1");
0x001192a0 bnez v0, 0x1192d4 |
| while (v1 == 0) {
0x001192a4 lw a1, -0x7fb0(gp) | a1 = *((gp - 8172));
0x001192a8 lw t9, -0x79f8(gp) | t9 = *(gp);
0x001192ac move a2, s0 | a2 = s0;
0x001192b0 addiu a1, a1, 0x2f4 | a1 += aav.0x000002f4;
0x001192b4 jalr t9 | t9 ();
0x001192b8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x001192bc bltz v0, 0x119308 | goto label_5;
| }
| label_4:
0x001192c0 addiu v0, zero, 1 | v0 = 1;
| label_1:
0x001192c4 lw ra, 0x24(sp) | ra = *(var_24h);
0x001192c8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x001192cc addiu sp, sp, 0x28 |
0x001192d0 jr ra | return v0;
0x001192d4 addiu a1, a1, 1 | a1++;
0x001192d8 beqz v1, 0x1192a4 |
| }
0x001192dc lbu v0, (a1) | v0 = *(a1);
0x001192e0 addiu v0, v0, -9 | v0 += -9;
| if (v0 == 0) {
0x001192e4 bnel v0, zero, 0x119290 | goto label_0;
| }
0x001192e8 addiu v0, zero, 1 | v0 = 1;
0x001192ec b 0x1192c4 | goto label_1;
| label_3:
0x001192f0 lw s0, 0x20(sp) | s0 = *(var_20h);
0x001192f4 addiu v0, zero, -1 | v0 = -1;
0x001192f8 addiu sp, sp, 0x28 |
0x001192fc jr ra | return v0;
| label_2:
0x00119300 addiu v0, zero, -1 | v0 = -1;
0x00119304 jr ra | return v0;
| label_5:
0x00119308 lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x0011930c lw t9, -0x73ac(gp) | t9 = *(gp);
0x00119310 sw zero, 0x10(sp) | *(var_10h) = 0;
0x00119314 move a3, zero | a3 = 0;
0x00119318 addiu a2, a2, 0x2a38 | a2 += 0x2a38;
0x0011931c addiu a1, zero, 0x27 | a1 = 0x27;
0x00119320 addiu t9, t9, -0x5038 | t9 += -0x5038;
0x00119324 move a0, s0 | a0 = s0;
0x00119328 bal 0x10afc8 | fcn_0010afc8 ();
0x0011932c addiu v0, zero, -1 | v0 = -1;
0x00119330 b 0x1192c4 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x120104 */
| #include <stdint.h>
|
; (fcn) sym.xmlSAX2EntityDecl () | void xmlSAX2EntityDecl () {
0x00120104 lui gp, 7 |
0x00120108 addiu gp, gp, 0x156c |
0x0012010c addu gp, gp, t9 | gp += t9;
0x00120110 addiu sp, sp, -0x68 |
0x00120114 sw gp, 0x48(sp) | *(var_48h) = gp;
0x00120118 sw s2, 0x5c(sp) | *(var_5ch) = s2;
0x0012011c sw ra, 0x64(sp) | *(var_64h) = ra;
0x00120120 sw s3, 0x60(sp) | *(var_60h) = s3;
0x00120124 sw s1, 0x58(sp) | *(var_58h) = s1;
0x00120128 sw s0, 0x54(sp) | *(var_54h) = s0;
0x0012012c lw s2, 0x78(sp) | s2 = *(arg_78h);
0x00120130 lw t0, 0x7c(sp) | t0 = *(arg_7ch);
| if (a0 != 0) {
0x00120134 beqz a0, 0x120230 |
0x00120138 lw v0, 0xd8(a0) | v0 = *((a0 + 54));
0x0012013c addiu v1, zero, 1 | v1 = 1;
0x00120140 move s0, a0 | s0 = a0;
0x00120144 move s1, a1 | s1 = a1;
| if (v0 != v1) {
0x00120148 beq v0, v1, 0x12018c |
0x0012014c addiu v1, zero, 2 | v1 = 2;
0x00120150 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
| if (v0 == v1) {
0x00120154 beq v0, v1, 0x12024c | goto label_3;
| }
0x00120158 lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x0012015c lw ra, 0x64(sp) | ra = *(var_64h);
0x00120160 lw s3, 0x60(sp) | s3 = *(var_60h);
0x00120164 lw s2, 0x5c(sp) | s2 = *(var_5ch);
0x00120168 lw s1, 0x58(sp) | s1 = *(var_58h);
0x0012016c lw s0, 0x54(sp) | s0 = *(var_54h);
0x00120170 sw zero, 0x78(sp) | *(arg_78h) = 0;
0x00120174 move a3, a1 | a3 = a1;
0x00120178 addiu a2, a2, 0x2f8c | a2 += 0x2f8c;
0x0012017c addiu a1, zero, 0x68 | a1 = 0x68;
0x00120180 addiu t9, t9, -0x6c8 | t9 += -aav.0x000006c8;
0x00120184 addiu sp, sp, 0x68 |
0x00120188 b 0x11f938 | void (*0x11f938)() ();
| }
0x0012018c lw a0, 8(a0) | a0 = *((a0 + 2));
0x00120190 lw t9, -0x7f8c(gp) | t9 = *(gp);
0x00120194 sw t0, 0x14(sp) | *(var_14h) = t0;
0x00120198 sw s2, 0x10(sp) | *(var_10h) = s2;
0x0012019c jalr t9 | t9 ();
0x001201a0 move s3, v0 | s3 = v0;
0x001201a4 lw gp, 0x48(sp) | gp = *(var_48h);
| if (v0 != 0) {
0x001201a8 bnez v0, 0x12026c | goto label_4;
| }
0x001201ac lw v0, 0x10c(s0) | v0 = *(s0);
0x001201b0 lw ra, 0x64(sp) | ra = *(var_64h);
| if (v0 == 0) {
0x001201b4 beqz v0, 0x120234 | goto label_2;
| }
0x001201b8 lw v0, 0xd4(s0) | v0 = *((s0 + 53));
0x001201bc lw v0, -0x7fb0(gp) | v0 = *((gp - 8172));
| if (v0 != 0) {
0x001201c0 beqz v0, 0x1201d4 |
0x001201c4 lw v1, 0xac(s0) | v1 = *((s0 + 43));
0x001201c8 addiu v0, zero, -1 | v0 = -1;
0x001201cc lw v0, -0x7fb0(gp) | v0 = *((gp - 8172));
| if (v1 == v0) {
0x001201d0 beq v1, v0, 0x120234 | goto label_2;
| }
| }
0x001201d4 addiu a0, zero, 0x6b | a0 = 0x6b;
0x001201d8 addiu v1, zero, 1 | v1 = 1;
0x001201dc lw t9, -0x6f3c(gp) | t9 = *(gp);
0x001201e0 addiu v0, v0, 0x2ee4 | v0 += 0x2ee4;
0x001201e4 sw a0, 0x54(s0) | *((s0 + 21)) = a0;
0x001201e8 move a3, s0 | a3 = s0;
0x001201ec sw a0, 0x18(sp) | *(var_18h) = a0;
0x001201f0 sw s1, 0x40(sp) | *(var_40h) = s1;
0x001201f4 sw v0, 0x3c(sp) | *(var_3ch) = v0;
0x001201f8 sw zero, 0x38(sp) | *(var_38h) = 0;
0x001201fc sw zero, 0x34(sp) | *(var_34h) = 0;
0x00120200 sw zero, 0x30(sp) | *(var_30h) = 0;
0x00120204 sw zero, 0x2c(sp) | *(var_2ch) = 0;
0x00120208 sw s1, 0x28(sp) | *(var_28h) = s1;
0x0012020c sw zero, 0x24(sp) | *(var_24h) = 0;
0x00120210 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00120214 sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x00120218 sw v1, 0x14(sp) | *(var_14h) = v1;
0x0012021c sw zero, 0x10(sp) | *(var_10h) = 0;
0x00120220 move a2, zero | a2 = 0;
0x00120224 move a1, zero | a1 = 0;
0x00120228 move a0, zero | a0 = 0;
0x0012022c jalr t9 | t9 ();
| }
| label_1:
0x00120230 lw ra, 0x64(sp) | ra = *(var_64h);
| do {
| label_2:
0x00120234 lw s3, 0x60(sp) | s3 = *(var_60h);
| label_0:
0x00120238 lw s2, 0x5c(sp) | s2 = *(var_5ch);
0x0012023c lw s1, 0x58(sp) | s1 = *(var_58h);
0x00120240 lw s0, 0x54(sp) | s0 = *(var_54h);
0x00120244 addiu sp, sp, 0x68 |
0x00120248 jr ra | return v0;
| label_3:
0x0012024c lw a0, 8(a0) | a0 = *((a0 + 2));
0x00120250 lw t9, -0x7338(gp) | t9 = *((gp - 7374));
0x00120254 sw t0, 0x14(sp) | *(var_14h) = t0;
0x00120258 sw s2, 0x10(sp) | *(var_10h) = s2;
0x0012025c jalr t9 | t9 ();
0x00120260 move s3, v0 | s3 = v0;
0x00120264 lw gp, 0x48(sp) | gp = *(var_48h);
| if (v0 == 0) {
0x00120268 beqz v0, 0x1202ac | goto label_5;
| }
| label_4:
0x0012026c lw v0, 0x40(s3) | v0 = *((s3 + 16));
0x00120270 lw ra, 0x64(sp) | ra = *(var_64h);
0x00120274 bnez v0, 0x120234 |
| } while (v0 != 0);
| if (s2 == 0) {
0x00120278 beql s2, zero, 0x120238 | goto label_0;
| }
0x0012027c lw s3, 0x60(sp) | s3 = *(var_60h);
0x00120280 lw v0, 0x24(s0) | v0 = *((s0 + 9));
| if (v0 != 0) {
0x00120284 beql v0, zero, 0x120298 |
0x00120288 lw a1, 0xb4(s0) | a1 = *((s0 + 45));
0x0012028c lw a1, 4(v0) | a1 = *((v0 + 1));
| if (a1 == 0) {
0x00120290 beql a1, zero, 0x120298 | goto label_6;
| }
0x00120294 lw a1, 0xb4(s0) | a1 = *((s0 + 45));
| }
| label_6:
0x00120298 lw t9, -0x7e40(gp) | t9 = *((gp - 8080));
0x0012029c move a0, s2 | a0 = s2;
0x001202a0 jalr t9 | t9 ();
0x001202a4 sw v0, 0x40(s3) | *((s3 + 16)) = v0;
0x001202a8 b 0x120230 | goto label_1;
| label_5:
0x001202ac lw v0, 0x10c(s0) | v0 = *(s0);
0x001202b0 lw ra, 0x64(sp) | ra = *(var_64h);
| if (v0 == 0) {
0x001202b4 beqz v0, 0x120234 | goto label_2;
| }
0x001202b8 lw v0, (s0) | v0 = *(s0);
0x001202bc lw s3, 0x60(sp) | s3 = *(var_60h);
| if (v0 == 0) {
0x001202c0 beqz v0, 0x120238 | goto label_0;
| }
0x001202c4 lw t9, 0x54(v0) | t9 = *((v0 + 21));
0x001202c8 lw a1, -0x7fb0(gp) | a1 = *((gp - 8172));
| if (t9 == 0) {
0x001202cc beqz t9, 0x120234 | goto label_2;
| }
0x001202d0 lw a0, 4(s0) | a0 = *((s0 + 1));
0x001202d4 lw ra, 0x64(sp) | ra = *(var_64h);
0x001202d8 lw s3, 0x60(sp) | s3 = *(var_60h);
0x001202dc lw s2, 0x5c(sp) | s2 = *(var_5ch);
0x001202e0 lw s0, 0x54(sp) | s0 = *(var_54h);
0x001202e4 move a2, s1 | a2 = s1;
0x001202e8 lw s1, 0x58(sp) | s1 = *(var_58h);
0x001202ec addiu a1, a1, 0x2f18 | a1 += 0x2f18;
0x001202f0 addiu sp, sp, 0x68 |
0x001202f4 jr t9 | t9 ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x11f304 */
| #include <stdint.h>
|
; (fcn) sym.xmlSAX2ExternalSubset () | void xmlSAX2ExternalSubset () {
0x0011f304 lui gp, 7 |
0x0011f308 addiu gp, gp, 0x236c |
0x0011f30c addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x0011f310 beqz a0, 0x11f56c | goto label_5;
| }
0x0011f314 nop |
| if (a2 == 0) {
0x0011f318 beqz a2, 0x11f564 | goto label_6;
| }
0x0011f31c nop |
0x0011f320 lw v0, 0x68(a0) | v0 = *((a0 + 26));
| if (v0 == 0) {
| label_1:
0x0011f324 beql v0, zero, 0x11f554 | goto label_7;
| }
0x0011f328 lw v0, 0x114(a0) | v0 = *(a0);
0x0011f32c lw v0, 0xc(a0) | v0 = *((a0 + 3));
| if (v0 == 0) {
| label_0:
0x0011f330 beqz v0, 0x11f56c | goto label_5;
| }
0x0011f334 nop |
0x0011f338 lw v0, 8(a0) | v0 = *((a0 + 2));
| if (v0 == 0) {
0x0011f33c beqz v0, 0x11f56c | goto label_5;
| }
0x0011f340 nop |
0x0011f344 lw v0, (a0) | v0 = *(a0);
| if (v0 == 0) {
0x0011f348 beqz v0, 0x11f56c | goto label_5;
| }
0x0011f34c nop |
0x0011f350 lw t9, 0x10(v0) | t9 = *((v0 + 4));
| if (t9 == 0) {
0x0011f354 beqz t9, 0x11f56c | goto label_5;
| }
0x0011f358 nop |
0x0011f35c addiu sp, sp, -0x48 |
0x0011f360 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0011f364 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0011f368 move s1, a2 | s1 = a2;
0x0011f36c move s0, a0 | s0 = a0;
0x0011f370 lw a0, 4(a0) | a0 = *((a0 + 1));
0x0011f374 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0011f378 sw s4, 0x30(sp) | *(var_30h) = s4;
0x0011f37c sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x0011f380 sw s2, 0x28(sp) | *(var_28h) = s2;
0x0011f384 sw ra, 0x44(sp) | *(var_44h) = ra;
0x0011f388 sw fp, 0x40(sp) | *(var_40h) = fp;
0x0011f38c sw s7, 0x3c(sp) | *(var_3ch) = s7;
0x0011f390 sw s6, 0x38(sp) | *(var_38h) = s6;
0x0011f394 sw s5, 0x34(sp) | *(var_34h) = s5;
0x0011f398 move s3, a1 | s3 = a1;
0x0011f39c move a2, a3 | a2 = a3;
0x0011f3a0 move a1, s1 | a1 = s1;
0x0011f3a4 move s2, a3 | s2 = a3;
0x0011f3a8 jalr t9 | t9 ();
0x0011f3ac move s4, v0 | s4 = v0;
0x0011f3b0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0011f3b4 beqz v0, 0x11f524 | goto label_3;
| }
0x0011f3b8 lw t9, -0x7d9c(gp) | t9 = *(gp);
0x0011f3bc lw a0, 8(s0) | a0 = *((s0 + 2));
0x0011f3c0 move a1, s3 | a1 = s3;
0x0011f3c4 move a3, s2 | a3 = s2;
0x0011f3c8 move a2, s1 | a2 = s1;
0x0011f3cc jalr t9 | t9 ();
0x0011f3d0 lw gp, 0x10(sp) | gp = *(var_10h);
0x0011f3d4 lw s3, 0x18(s0) | s3 = *((s0 + 6));
0x0011f3d8 addiu a0, zero, 0x14 | a0 = 0x14;
0x0011f3dc lw v0, -0x716c(gp) | v0 = *(gp);
0x0011f3e0 sw zero, 0x18(s0) | *((s0 + 6)) = 0;
0x0011f3e4 lw s5, 0x28(s0) | s5 = *((s0 + 10));
0x0011f3e8 lw t9, (v0) | t9 = *(v0);
0x0011f3ec lw v0, 0x24(s0) | v0 = *((s0 + 9));
0x0011f3f0 lw s6, 0x2c(s0) | s6 = *((s0 + 11));
0x0011f3f4 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x0011f3f8 lw s7, 0x30(s0) | s7 = *((s0 + 12));
0x0011f3fc lw fp, 0x100(s0) | fp = *(s0);
0x0011f400 jalr t9 | t9 ();
0x0011f404 lw gp, 0x10(sp) | gp = *(var_10h);
0x0011f408 sw v0, 0x30(s0) | *((s0 + 12)) = v0;
| if (v0 == 0) {
0x0011f40c beqz v0, 0x11f5a0 | goto label_8;
| }
0x0011f410 addiu v0, zero, 5 | v0 = 5;
0x0011f414 lw t9, -0x7e1c(gp) | t9 = *(gp);
0x0011f418 move a0, s0 | a0 = s0;
0x0011f41c sw zero, 0x28(s0) | *((s0 + 10)) = 0;
0x0011f420 sw v0, 0x2c(s0) | *((s0 + 11)) = v0;
0x0011f424 sw zero, 0x24(s0) | *((s0 + 9)) = 0;
0x0011f428 move a1, s4 | a1 = s4;
0x0011f42c jalr t9 | t9 ();
0x0011f430 lw a0, 0x24(s0) | a0 = *((s0 + 9));
0x0011f434 lw v0, 0x18(a0) | v0 = *((a0 + 6));
0x0011f438 slti v0, v0, 4 | v0 = (v0 < 4) ? 1 : 0;
0x0011f43c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0011f440 beqz v0, 0x11f574 | goto label_9;
| }
| label_2:
0x0011f444 lw v0, 4(s4) | v0 = *((s4 + 1));
0x0011f448 lw t9, -0x7eb8(gp) | t9 = *((gp - 8110));
| if (v0 == 0) {
0x0011f44c beqz v0, 0x11f5d8 | goto label_10;
| }
| label_4:
0x0011f450 lw v0, 0x24(s0) | v0 = *((s0 + 9));
0x0011f454 addiu a0, zero, 1 | a0 = 1;
0x0011f458 lw t9, -0x7d10(gp) | t9 = *((gp - 8004));
0x0011f45c lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x0011f460 move a1, s1 | a1 = s1;
0x0011f464 sw a0, 0x1c(s4) | *((s4 + 7)) = a0;
0x0011f468 sw a0, 0x20(s4) | *((s4 + 8)) = a0;
0x0011f46c sw v0, 0xc(s4) | *((s4 + 3)) = v0;
0x0011f470 sw v0, 0x10(s4) | *((s4 + 4)) = v0;
0x0011f474 sw zero, 0x28(s4) | *((s4 + 10)) = 0;
0x0011f478 move a2, s2 | a2 = s2;
0x0011f47c move a0, s0 | a0 = s0;
0x0011f480 jalr t9 | t9 ();
0x0011f484 lw gp, 0x10(sp) | gp = *(var_10h);
0x0011f488 lw v0, 0x28(s0) | v0 = *((s0 + 10));
0x0011f48c slti v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x0011f490 lw s1, -0x735c(gp) | s1 = *(gp);
| if (v0 != 0) {
0x0011f494 bnez v0, 0x11f4b4 | goto label_11;
| }
| do {
0x0011f498 move t9, s1 | t9 = s1;
0x0011f49c move a0, s0 | a0 = s0;
0x0011f4a0 jalr t9 | t9 ();
0x0011f4a4 lw v0, 0x28(s0) | v0 = *((s0 + 10));
0x0011f4a8 slti v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x0011f4ac lw gp, 0x10(sp) | gp = *(var_10h);
0x0011f4b0 beqz v0, 0x11f498 |
| } while (v0 == 0);
| label_11:
0x0011f4b4 lw s1, -0x7158(gp) | s1 = *(gp);
0x0011f4b8 lw t9, -0x7ee0(gp) | t9 = *((gp - 8120));
0x0011f4bc lw a0, 0x24(s0) | a0 = *((s0 + 9));
0x0011f4c0 jalr t9 | t9 ();
0x0011f4c4 lw t9, (s1) | t9 = *(s1);
0x0011f4c8 lw a0, 0x30(s0) | a0 = *((s0 + 12));
0x0011f4cc jalr t9 | t9 ();
0x0011f4d0 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x0011f4d4 lw a1, 0x18(s0) | a1 = *((s0 + 6));
0x0011f4d8 lw gp, 0x10(sp) | gp = *(var_10h);
0x0011f4dc sw v0, 0x24(s0) | *((s0 + 9)) = v0;
0x0011f4e0 sw s5, 0x28(s0) | *((s0 + 10)) = s5;
0x0011f4e4 sw s6, 0x2c(s0) | *((s0 + 11)) = s6;
0x0011f4e8 sw s7, 0x30(s0) | *((s0 + 12)) = s7;
0x0011f4ec sw fp, 0x100(s0) | *(s0) = fp;
| if (a1 != 0) {
0x0011f4f0 beqz a1, 0x11f520 |
0x0011f4f4 lw a0, 0x128(s0) | a0 = *(s0);
0x0011f4f8 lw t9, -0x7fc4(gp) | t9 = *((gp - 8177));
| if (a0 != 0) {
0x0011f4fc beqz a0, 0x11f514 |
0x0011f500 bal 0x11bab4 | sym_xmlDictOwns ();
0x0011f504 nop |
0x0011f508 sw s3, 0x18(s0) | *((s0 + 6)) = s3;
| if (v0 == 0) {
0x0011f50c bnel v0, zero, 0x11f524 | goto label_3;
| }
0x0011f510 lw a1, 0x18(s0) | a1 = *((s0 + 6));
| }
0x0011f514 lw t9, (s1) | t9 = *(s1);
0x0011f518 move a0, a1 | a0 = a1;
0x0011f51c jalr t9 | t9 ();
| }
0x0011f520 sw s3, 0x18(s0) | *((s0 + 6)) = s3;
| label_3:
0x0011f524 lw ra, 0x44(sp) | ra = *(var_44h);
0x0011f528 lw fp, 0x40(sp) | fp = *(var_40h);
0x0011f52c lw s7, 0x3c(sp) | s7 = *(var_3ch);
0x0011f530 lw s6, 0x38(sp) | s6 = *(var_38h);
0x0011f534 lw s5, 0x34(sp) | s5 = *(var_34h);
0x0011f538 lw s4, 0x30(sp) | s4 = *(var_30h);
0x0011f53c lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0011f540 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0011f544 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0011f548 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0011f54c addiu sp, sp, 0x48 |
0x0011f550 jr ra | return v0;
| label_7:
0x0011f554 lw v0, 0xc(a0) | v0 = *((a0 + 3));
| if (v0 == 0) {
0x0011f558 bnel v0, zero, 0x11f330 | goto label_0;
| }
0x0011f55c jr ra | return v0;
0x0011f560 nop |
| label_6:
0x0011f564 lw v0, 0x68(a0) | v0 = *((a0 + 26));
| if (a3 == 0) {
0x0011f568 bnel a3, zero, 0x11f324 | goto label_1;
| }
| label_5:
0x0011f56c jr ra | return v0;
0x0011f570 nop |
| label_9:
0x0011f574 lw t9, -0x7dd4(gp) | t9 = *((gp - 8053));
0x0011f578 lw a0, 0x10(a0) | a0 = *((a0 + 4));
0x0011f57c addiu a1, zero, 4 | a1 = 4;
0x0011f580 jalr t9 | t9 ();
0x0011f584 lw gp, 0x10(sp) | gp = *(var_10h);
0x0011f588 move a1, v0 | a1 = v0;
0x0011f58c lw t9, -0x7ecc(gp) | t9 = *((gp - 8115));
0x0011f590 move a0, s0 | a0 = s0;
0x0011f594 jalr t9 | t9 ();
0x0011f598 lw gp, 0x10(sp) | gp = *(var_10h);
0x0011f59c b 0x11f444 | goto label_2;
| label_8:
0x0011f5a0 lw a1, -0x7fb0(gp) | a1 = *((gp - 8172));
0x0011f5a4 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x0011f5a8 addiu a1, a1, 0x2dbc | a1 += 0x2dbc;
0x0011f5ac addiu t9, t9, -0x3c0c | t9 += -0x3c0c;
0x0011f5b0 move a0, s0 | a0 = s0;
0x0011f5b4 bal 0x11c3f4 | fcn_0011c3f4 ();
0x0011f5b8 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x0011f5bc sw s5, 0x28(s0) | *((s0 + 10)) = s5;
0x0011f5c0 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
0x0011f5c4 sw s6, 0x2c(s0) | *((s0 + 11)) = s6;
0x0011f5c8 sw s7, 0x30(s0) | *((s0 + 12)) = s7;
0x0011f5cc sw fp, 0x100(s0) | *(s0) = fp;
0x0011f5d0 sw s3, 0x18(s0) | *((s0 + 6)) = s3;
0x0011f5d4 b 0x11f524 | goto label_3;
| label_10:
0x0011f5d8 move a0, s2 | a0 = s2;
0x0011f5dc jalr t9 | t9 ();
0x0011f5e0 lw gp, 0x10(sp) | gp = *(var_10h);
0x0011f5e4 sw v0, 4(s4) | *((s4 + 1)) = v0;
0x0011f5e8 b 0x11f450 | goto label_4;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x4594c */
| #include <stdint.h>
|
; (fcn) sym.xmlSAXParseEntity () | void xmlSAXParseEntity () {
0x0004594c lui gp, 0x15 |
0x00045950 addiu gp, gp, -0x42dc |
0x00045954 addu gp, gp, t9 | gp += t9;
0x00045958 addiu sp, sp, -0x28 |
0x0004595c move v0, a1 | v0 = a1;
0x00045960 lw t9, -0x7d04(gp) | t9 = *((gp - 8001));
0x00045964 move a1, zero | a1 = 0;
0x00045968 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0004596c sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x00045970 sw ra, 0x24(sp) | *(var_24h) = ra;
0x00045974 sw s2, 0x20(sp) | *(var_20h) = s2;
0x00045978 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0004597c move s1, a0 | s1 = a0;
0x00045980 move a0, v0 | a0 = v0;
0x00045984 bal 0x426ac | sym_xmlCreateURLParserCtxt ();
0x00045988 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0004598c beqz v0, 0x45a24 | goto label_1;
| }
0x00045990 move s0, v0 | s0 = v0;
| if (s1 != 0) {
0x00045994 beqz s1, 0x459bc |
0x00045998 lw a0, (v0) | a0 = *(v0);
0x0004599c lw v0, -0x7158(gp) | v0 = *(gp);
| if (a0 != 0) {
0x000459a0 beqz a0, 0x459b4 |
0x000459a4 lw t9, (v0) | t9 = *(v0);
0x000459a8 jalr t9 | t9 ();
0x000459ac nop |
0x000459b0 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000459b4 sw s1, (s0) | *(s0) = s1;
0x000459b8 sw zero, 4(s0) | *((s0 + 1)) = 0;
| }
0x000459bc lw t9, -0x7c94(gp) | t9 = *(gp);
0x000459c0 move a0, s0 | a0 = s0;
0x000459c4 bal 0x4559c | sym_xmlParseExtParsedEnt ();
0x000459c8 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x000459cc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000459d0 beqz v0, 0x45a08 | goto label_2;
| }
0x000459d4 lw s2, 8(s0) | s2 = *((s0 + 2));
| do {
0x000459d8 sw zero, (s0) | *(s0) = 0;
| if (s1 != 0) {
0x000459dc bnel s1, zero, 0x459e0 |
| }
0x000459e0 lw t9, -0x7e38(gp) | t9 = *((gp - 8078));
0x000459e4 move a0, s0 | a0 = s0;
0x000459e8 bal 0x2a890 | sym_xmlFreeParserCtxt ();
| label_0:
0x000459ec lw ra, 0x24(sp) | ra = *(var_24h);
0x000459f0 move v0, s2 | v0 = s2;
0x000459f4 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000459f8 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000459fc lw s0, 0x18(sp) | s0 = *(var_18h);
0x00045a00 addiu sp, sp, 0x28 |
0x00045a04 jr ra | return v0;
| label_2:
0x00045a08 lw t9, -0x7d0c(gp) | t9 = *(gp);
0x00045a0c lw a0, 8(s0) | a0 = *((s0 + 2));
0x00045a10 move s2, zero | s2 = 0;
0x00045a14 bal 0x50640 | sym_xmlFreeDoc ();
0x00045a18 lw gp, 0x10(sp) | gp = *(var_10h);
0x00045a1c sw zero, 8(s0) | *((s0 + 2)) = 0;
0x00045a20 b 0x459d8 |
| } while (1);
| label_1:
0x00045a24 move s2, zero | s2 = 0;
0x00045a28 b 0x459ec | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x650fc */
| #include <stdint.h>
|
; (fcn) sym.xmlSaveUri () | void xmlSaveUri () {
0x000650fc lui gp, 0x13 |
0x00065100 addiu gp, gp, -0x3a8c |
0x00065104 addu gp, gp, t9 | gp += t9;
0x00065108 addiu sp, sp, -0x50 |
0x0006510c sw s3, 0x34(sp) | *(var_34h) = s3;
0x00065110 lw s3, -0x7000(gp) | s3 = *((gp - 7168));
0x00065114 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00065118 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x0006511c lw v0, (s3) | v0 = *(s3);
0x00065120 sw fp, 0x48(sp) | *(var_48h) = fp;
0x00065124 sw s7, 0x44(sp) | *(var_44h) = s7;
0x00065128 sw s6, 0x40(sp) | *(var_40h) = s6;
0x0006512c sw s5, 0x3c(sp) | *(var_3ch) = s5;
0x00065130 sw s4, 0x38(sp) | *(var_38h) = s4;
0x00065134 sw s2, 0x30(sp) | *(var_30h) = s2;
0x00065138 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x0006513c sw s0, 0x28(sp) | *(var_28h) = s0;
0x00065140 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00065144 move s2, a0 | s2 = a0;
| if (a0 == 0) {
0x00065148 beqz a0, 0x65a44 | goto label_42;
| }
0x0006514c addiu v0, zero, 0x50 | v0 = 0x50;
0x00065150 sw v0, 0x20(sp) | *(var_20h_2) = v0;
0x00065154 lw v0, -0x6ddc(gp) | v0 = *((gp - 7031));
0x00065158 lw t9, (v0) | t9 = *(v0);
0x0006515c addiu a0, zero, 0x51 | a0 = 0x51;
0x00065160 jalr t9 | t9 ();
0x00065164 move s7, v0 | s7 = v0;
0x00065168 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006516c beqz v0, 0x65b70 | goto label_43;
| }
0x00065170 lw s1, (s2) | s1 = *(s2);
| if (s1 == 0) {
0x00065174 beql s1, zero, 0x65494 | goto label_44;
| }
0x00065178 lw s6, 4(s2) | s6 = *((s2 + 1));
0x0006517c lb v0, (s1) | v0 = *(s1);
0x00065180 move s0, zero | s0 = 0;
| if (v0 == 0) {
0x00065184 beqz v0, 0x651f8 | goto label_45;
| }
0x00065188 lw s4, -0x7b38(gp) | s4 = *((gp - 7886));
0x0006518c addiu s5, sp, 0x20 | s5 = sp + 0x20;
0x00065190 addiu s4, s4, 0x4cf4 | s4 += 0x4cf4;
0x00065194 b 0x651b0 |
| while (v0 == 0) {
0x00065198 addu v0, s7, s0 | v0 = s7 + s0;
0x0006519c lbu v1, -1(s1) | v1 = *((s1 - 1));
0x000651a0 sb v1, (v0) | *(v0) = v1;
0x000651a4 lb v0, (s1) | v0 = *(s1);
0x000651a8 addiu s0, s0, 1 | s0++;
| if (v0 == 0) {
0x000651ac beqz v0, 0x651f8 | goto label_45;
| }
| label_0:
0x000651b0 lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x000651b4 slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x000651b8 addiu s1, s1, 1 | s1++;
0x000651bc bnel v0, zero, 0x65198 |
| }
0x000651c0 move a1, s5 | a1 = s5;
0x000651c4 move t9, s4 | t9 = s4;
0x000651c8 move a0, s7 | a0 = s7;
0x000651cc bal 0x64cf4 | fcn_00064cf4 ();
0x000651d0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000651d4 beqz v0, 0x652fc | goto label_3;
| }
0x000651d8 addiu s1, s1, 1 | s1++;
0x000651dc move s7, v0 | s7 = v0;
0x000651e0 addu v0, s7, s0 | v0 = s7 + s0;
0x000651e4 lbu v1, -1(s1) | v1 = *((s1 - 1));
0x000651e8 sb v1, (v0) | *(v0) = v1;
0x000651ec lb v0, (s1) | v0 = *(s1);
0x000651f0 addiu s0, s0, 1 | s0++;
| if (v0 != 0) {
0x000651f4 bnez v0, 0x651b0 | goto label_0;
| }
| label_45:
0x000651f8 lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x000651fc slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x00065200 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
| if (v0 == 0) {
0x00065204 beqz v0, 0x656b4 | goto label_46;
| }
| label_11:
0x00065208 addu v0, s7, s0 | v0 = s7 + s0;
0x0006520c addiu v1, zero, 0x3a | v1 = 0x3a;
0x00065210 sb v1, (v0) | *(v0) = v1;
0x00065214 lw s6, 4(s2) | s6 = *((s2 + 1));
0x00065218 addiu s0, s0, 1 | s0++;
0x0006521c lw v0, 0x20(sp) | v0 = *(var_20h_2);
| if (s6 == 0) {
0x00065220 beqz s6, 0x654a0 | goto label_47;
| }
| label_6:
0x00065224 addiu s6, s6, 1 | s6++;
0x00065228 lw s4, -0x7b38(gp) | s4 = *((gp - 7886));
0x0006522c lb v1, -1(s6) | v1 = *((s6 - 1));
0x00065230 lui s5, 0x1ff | s5 = 0x1ff0000;
0x00065234 addiu fp, sp, 0x20 | fp = sp + 0x20;
0x00065238 addiu s4, s4, 0x4cf4 | s4 += 0x4cf4;
0x0006523c ori s5, s5, 0xb3c1 | s5 |= 0xb3c1;
| if (v1 == 0) {
0x00065240 beqz v1, 0x6538c | goto label_22;
| }
| label_1:
0x00065244 addiu s1, s0, 3 | s1 = s0 + 3;
0x00065248 slt v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x0006524c move a1, fp | a1 = fp;
| if (v0 == 0) {
0x00065250 beqz v0, 0x65454 | goto label_48;
| }
| label_4:
0x00065254 andi a0, v1, 0xff | a0 = v1 & 0xff;
0x00065258 addiu v0, a0, -0x24 | v0 = a0 + -0x24;
0x0006525c andi v0, v0, 0xff | v0 &= 0xff;
0x00065260 sltiu a1, v0, 0x1d | a1 = (v0 < 0x1d) ? 1 : 0;
| if (a1 == 0) {
0x00065264 beql a1, zero, 0x65354 | goto label_49;
| }
0x00065268 addiu v0, zero, -5 | v0 = -5;
0x0006526c lui a1, 0x1ac0 | a1 = 0x1ac00985;
0x00065270 addiu a1, a1, 0x985 |
0x00065274 srlv v0, a1, v0 | v0 = a1 >> v0;
0x00065278 ext v0, v0, 0, 1 | __asm ("ext v0, v0, 0, 1");
0x0006527c addu v0, s7, s0 | v0 = s7 + s0;
| if (v0 != 0) {
0x00065280 bnez v0, 0x65370 | goto label_39;
| }
0x00065284 andi v0, a0, 0xdf | v0 = a0 & 0xdf;
| do {
0x00065288 addiu v0, v0, -0x41 | v0 += -0x41;
0x0006528c sltiu v0, v0, 0x1a | v0 = (v0 < 0x1a) ? 1 : 0;
0x00065290 addu v0, s7, s0 | v0 = s7 + s0;
| if (v0 != 0) {
0x00065294 bnez v0, 0x65370 | goto label_39;
| }
0x00065298 addiu v0, a0, -0x21 | v0 = a0 + -0x21;
0x0006529c andi v0, v0, 0xff | v0 &= 0xff;
0x000652a0 sltiu a1, v0, 0x19 | a1 = (v0 < 0x19) ? 1 : 0;
0x000652a4 srlv v0, s5, v0 | v0 = s5 >> v0;
| if (a1 != 0) {
0x000652a8 bnez a1, 0x65df4 | goto label_50;
| }
0x000652ac addiu v0, zero, 0x7e | v0 = 0x7e;
0x000652b0 addu v1, s7, s0 | v1 = s7 + s0;
| if (v1 == v0) {
0x000652b4 beq v1, v0, 0x6536c | goto label_51;
| }
0x000652b8 addiu a1, zero, 0x25 | a1 = 0x25;
0x000652bc sltiu v0, a0, 0xa0 | v0 = (a0 < 0xa0) ? 1 : 0;
0x000652c0 sb a1, (v1) | *(v1) = a1;
0x000652c4 addiu a1, zero, 0x37 | a1 = 0x37;
| if (v0 != 0) {
0x000652c8 bnez v0, 0x65e0c | goto label_52;
| }
| label_40:
0x000652cc andi a2, a0, 0xf | a2 = a0 & 0xf;
0x000652d0 sltiu v0, a2, 0xa | v0 = (a2 < 0xa) ? 1 : 0;
0x000652d4 addiu t0, zero, 0x37 | t0 = 0x37;
0x000652d8 addiu a3, zero, 0x30 | a3 = 0x30;
0x000652dc sra a0, a0, 4 | a0 >>= 4;
| if (v0 != 0) {
0x000652e0 movz a3, t0, v0 | a3 = t0;
| }
0x000652e4 addu s0, s7, s0 | s0 = s7 + s0;
0x000652e8 addu a1, a1, a0 | a1 += a0;
0x000652ec addu v0, a3, a2 | v0 = a3 + a2;
0x000652f0 sb a1, 1(v1) | *((v1 + 1)) = a1;
0x000652f4 sb v0, 2(s0) | *((s0 + 2)) = v0;
0x000652f8 b 0x65378 | goto label_53;
| label_3:
0x000652fc lw v0, -0x7158(gp) | v0 = *(gp);
0x00065300 move a0, s7 | a0 = s7;
0x00065304 lw t9, (v0) | t9 = *(v0);
0x00065308 move s7, zero | s7 = 0;
0x0006530c jalr t9 | t9 ();
0x00065310 lw gp, 0x18(sp) | gp = *(var_18h);
| label_2:
0x00065314 lw a0, 0x24(sp) | a0 = *(var_24h);
0x00065318 lw v1, (s3) | v1 = *(s3);
0x0006531c move v0, s7 | v0 = s7;
| if (a0 != v1) {
0x00065320 bne a0, v1, 0x65e34 | goto label_54;
| }
0x00065324 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x00065328 lw fp, 0x48(sp) | fp = *(var_48h);
0x0006532c lw s7, 0x44(sp) | s7 = *(var_44h);
0x00065330 lw s6, 0x40(sp) | s6 = *(var_40h);
0x00065334 lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x00065338 lw s4, 0x38(sp) | s4 = *(var_38h);
0x0006533c lw s3, 0x34(sp) | s3 = *(var_34h);
0x00065340 lw s2, 0x30(sp) | s2 = *(var_30h);
0x00065344 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00065348 lw s0, 0x28(sp) | s0 = *(var_28h);
0x0006534c addiu sp, sp, 0x50 |
0x00065350 jr ra | return v0;
| label_49:
0x00065354 and v0, v1, v0 | v0 = v1 & v0;
0x00065358 addiu a1, zero, 0x5b | a1 = 0x5b;
0x0006535c addiu v0, zero, 0x5d | v0 = 0x5d;
| if (v0 == a1) {
0x00065360 beq v0, a1, 0x6536c | goto label_51;
| }
0x00065364 andi v0, a0, 0xdf | v0 = a0 & 0xdf;
0x00065368 bne v1, v0, 0x65288 |
| } while (v1 != v0);
| label_51:
0x0006536c addu v0, s7, s0 | v0 = s7 + s0;
| label_39:
0x00065370 addiu s1, s0, 1 | s1 = s0 + 1;
0x00065374 sb a0, (v0) | *(v0) = a0;
| label_53:
0x00065378 addiu s6, s6, 1 | s6++;
0x0006537c lb v1, -1(s6) | v1 = *((s6 - 1));
0x00065380 lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x00065384 move s0, s1 | s0 = s1;
| if (v1 != 0) {
0x00065388 bnez v1, 0x65244 | goto label_1;
| }
| label_22:
0x0006538c lw v1, 0x20(s2) | v1 = *((s2 + 8));
0x00065390 addiu v1, s0, 3 | v1 = s0 + 3;
| if (v1 == 0) {
0x00065394 beqz v1, 0x6543c | goto label_55;
| }
0x00065398 slt v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x0006539c lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
| if (v0 == 0) {
0x000653a0 beqz v0, 0x65a24 | goto label_56;
| }
| label_21:
0x000653a4 addu v0, s7, s0 | v0 = s7 + s0;
0x000653a8 addiu v1, zero, 0x23 | v1 = 0x23;
0x000653ac sb v1, (v0) | *(v0) = v1;
0x000653b0 lw s4, 0x20(s2) | s4 = *((s2 + 8));
0x000653b4 lw s1, -0x7b38(gp) | s1 = *((gp - 7886));
0x000653b8 lui s2, 0x17ff | s2 = 0x17ff0000;
0x000653bc lb a0, (s4) | a0 = *(s4);
0x000653c0 addiu s0, s0, 1 | s0++;
0x000653c4 addiu s6, sp, 0x20 | s6 = sp + 0x20;
0x000653c8 addiu s1, s1, 0x4cf4 | s1 += 0x4cf4;
0x000653cc ori s2, s2, 0xffe9 | s2 |= 0xffe9;
0x000653d0 lw v0, 0x20(sp) | v0 = *(var_20h_2);
| if (a0 == 0) {
0x000653d4 beqz a0, 0x6543c | goto label_55;
| }
| do {
0x000653d8 addiu s5, s0, 3 | s5 = s0 + 3;
0x000653dc slt v0, s5, v0 | v0 = (s5 < v0) ? 1 : 0;
| if (v0 == 0) {
0x000653e0 beql v0, zero, 0x65474 | goto label_57;
| }
0x000653e4 move a1, s6 | a1 = s6;
| label_5:
0x000653e8 andi v1, a0, 0xff | v1 = a0 & 0xff;
0x000653ec addiu v0, v1, -0x61 | v0 = v1 + -0x61;
0x000653f0 sltiu v0, v0, 0x1a | v0 = (v0 < 0x1a) ? 1 : 0;
0x000653f4 addu a2, s7, s0 | a2 = s7 + s0;
0x000653f8 addiu s4, s4, 1 | s4++;
0x000653fc addiu a1, s0, 1 | a1 = s0 + 1;
| if (v0 == 0) {
0x00065400 bnez v0, 0x65428 |
0x00065404 addiu v0, v1, -0x21 | v0 = v1 + -0x21;
0x00065408 andi v0, v0, 0xff | v0 &= 0xff;
0x0006540c sltiu a3, v0, 0x1d | a3 = (v0 < 0x1d) ? 1 : 0;
| if (a3 == 0) {
0x00065410 beql a3, zero, 0x656d4 | goto label_58;
| }
0x00065414 addiu v0, zero, 0x7e | v0 = 0x7e;
0x00065418 srlv v0, s2, v0 | v0 = s2 >> v0;
0x0006541c ext v0, v0, 0, 1 | __asm ("ext v0, v0, 0, 1");
| if (v0 == 0) {
0x00065420 beql v0, zero, 0x656e0 | goto label_59;
| }
0x00065424 addiu v0, v1, -0x3f | v0 = v1 + -0x3f;
| }
| label_13:
0x00065428 sb v1, (a2) | *(a2) = v1;
| label_12:
0x0006542c move s0, a1 | s0 = a1;
| label_14:
0x00065430 lb a0, (s4) | a0 = *(s4);
0x00065434 lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x00065438 bnez a0, 0x653d8 |
| } while (a0 != 0);
| label_55:
0x0006543c slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x00065440 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
| if (v0 == 0) {
0x00065444 beqz v0, 0x655a0 | goto label_60;
| }
0x00065448 addu s0, s7, s0 | s0 = s7 + s0;
0x0006544c sb zero, (s0) | *(s0) = 0;
0x00065450 b 0x65314 | goto label_2;
| label_48:
0x00065454 move t9, s4 | t9 = s4;
0x00065458 move a0, s7 | a0 = s7;
0x0006545c bal 0x64cf4 | fcn_00064cf4 ();
0x00065460 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00065464 beqz v0, 0x652fc | goto label_3;
| }
0x00065468 lb v1, -1(s6) | v1 = *((s6 - 1));
0x0006546c move s7, v0 | s7 = v0;
0x00065470 b 0x65254 | goto label_4;
| label_57:
0x00065474 move t9, s1 | t9 = s1;
0x00065478 move a0, s7 | a0 = s7;
0x0006547c bal 0x64cf4 | fcn_00064cf4 ();
0x00065480 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00065484 beqz v0, 0x652fc | goto label_3;
| }
0x00065488 lb a0, (s4) | a0 = *(s4);
0x0006548c move s7, v0 | s7 = v0;
0x00065490 b 0x653e8 | goto label_5;
| label_44:
0x00065494 move s0, zero | s0 = 0;
0x00065498 lw v0, 0x20(sp) | v0 = *(var_20h_2);
| if (s6 != 0) {
0x0006549c bnez s6, 0x65224 | goto label_6;
| }
| label_47:
0x000654a0 lw v1, 0xc(s2) | v1 = *((s2 + 3));
| if (v1 == 0) {
0x000654a4 beql v1, zero, 0x655c8 | goto label_61;
| }
0x000654a8 lw a0, 0x14(s2) | a0 = *((s2 + 5));
0x000654ac addiu v1, s0, 3 | v1 = s0 + 3;
| label_7:
0x000654b0 slt v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x000654b4 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
| if (v0 == 0) {
0x000654b8 beqz v0, 0x65a54 | goto label_62;
| }
| label_23:
0x000654bc addu v0, s7, s0 | v0 = s7 + s0;
0x000654c0 addiu v1, zero, 0x2f | v1 = 0x2f;
0x000654c4 sb v1, (v0) | *(v0) = v1;
0x000654c8 sb v1, 1(v0) | *((v0 + 1)) = v1;
0x000654cc lw s5, 0x10(s2) | s5 = *((s2 + 4));
0x000654d0 addiu s0, s0, 2 | s0 += 2;
| if (s5 == 0) {
0x000654d4 beqz s5, 0x65764 | goto label_63;
| }
0x000654d8 lw s1, -0x7b38(gp) | s1 = *((gp - 7886));
0x000654dc lui s4, 0x17ff | s4 = 0x17ff0000;
0x000654e0 addiu fp, sp, 0x20 | fp = sp + 0x20;
0x000654e4 addiu s1, s1, 0x4cf4 | s1 += 0x4cf4;
0x000654e8 ori s4, s4, 0xbfe9 | s4 |= 0xbfe9;
| do {
| label_9:
0x000654ec lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x000654f0 lb v1, (s5) | v1 = *(s5);
0x000654f4 addiu s6, s0, 3 | s6 = s0 + 3;
0x000654f8 slt v0, s6, v0 | v0 = (s6 < v0) ? 1 : 0;
| if (v1 == 0) {
0x000654fc beqz v1, 0x6574c | goto label_64;
| }
| if (v0 == 0) {
0x00065500 beql v0, zero, 0x65694 | goto label_65;
| }
0x00065504 move a1, fp | a1 = fp;
| label_10:
0x00065508 andi a0, v1, 0xff | a0 = v1 & 0xff;
0x0006550c andi v0, a0, 0xdf | v0 = a0 & 0xdf;
0x00065510 addiu v0, v0, -0x41 | v0 += -0x41;
0x00065514 sltiu v0, v0, 0x1a | v0 = (v0 < 0x1a) ? 1 : 0;
0x00065518 addu a2, s7, s0 | a2 = s7 + s0;
0x0006551c addiu s5, s5, 1 | s5++;
0x00065520 addiu a1, s0, 1 | a1 = s0 + 1;
| if (v0 != 0) {
0x00065524 bnez v0, 0x65688 | goto label_66;
| }
0x00065528 addiu v0, zero, 0x5f | v0 = 0x5f;
| if (v1 == v0) {
0x0006552c beql v1, v0, 0x6568c | goto label_67;
| }
0x00065530 sb a0, (a2) | *(a2) = a0;
0x00065534 addiu v0, a0, -0x21 | v0 = a0 + -0x21;
0x00065538 andi v0, v0, 0xff | v0 &= 0xff;
0x0006553c sltiu a3, v0, 0x1d | a3 = (v0 < 0x1d) ? 1 : 0;
0x00065540 srlv v0, s4, v0 | v0 = s4 >> v0;
| if (a3 != 0) {
0x00065544 bnez a3, 0x6567c | goto label_68;
| }
0x00065548 addiu v0, zero, 0x7e | v0 = 0x7e;
| if (v1 == v0) {
0x0006554c beql v1, v0, 0x6568c | goto label_67;
| }
0x00065550 sb a0, (a2) | *(a2) = a0;
0x00065554 andi a3, a0, 0xf | a3 = a0 & 0xf;
| label_8:
0x00065558 addiu t1, zero, 0x37 | t1 = 0x37;
0x0006555c sltiu v1, a0, 0xa0 | v1 = (a0 < 0xa0) ? 1 : 0;
0x00065560 addiu t0, zero, 0x30 | t0 = 0x30;
0x00065564 sltiu v0, a3, 0xa | v0 = (a3 < 0xa) ? 1 : 0;
0x00065568 move t3, t1 | t3 = t1;
0x0006556c addu t2, s7, s0 | t2 = s7 + s0;
| if (v1 == 0) {
0x00065570 movn t3, t0, v1 | t3 = t0;
| }
0x00065574 sra a0, a0, 4 | a0 >>= 4;
0x00065578 addu a1, s7, a1 | a1 = s7 + a1;
| if (v0 != 0) {
0x0006557c movz t0, t1, v0 | t0 = t1;
| }
0x00065580 addu v1, t3, a0 | v1 = t3 + a0;
0x00065584 addu v0, t0, a3 | v0 = t0 + a3;
0x00065588 addiu a0, zero, 0x25 | a0 = 0x25;
0x0006558c sb a0, (a2) | *(a2) = a0;
0x00065590 move s0, s6 | s0 = s6;
0x00065594 sb v1, (a1) | *(a1) = v1;
0x00065598 sb v0, 2(t2) | *((t2 + 2)) = v0;
0x0006559c b 0x654ec |
| } while (1);
| label_60:
0x000655a0 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x000655a4 addiu t9, t9, 0x4cf4 | t9 += 0x4cf4;
0x000655a8 move a0, s7 | a0 = s7;
0x000655ac bal 0x64cf4 | fcn_00064cf4 ();
0x000655b0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000655b4 beqz v0, 0x652fc | goto label_3;
| }
0x000655b8 move s7, v0 | s7 = v0;
0x000655bc addu s0, s7, s0 | s0 = s7 + s0;
0x000655c0 sb zero, (s0) | *(s0) = 0;
0x000655c4 b 0x65314 | goto label_2;
| label_61:
0x000655c8 addiu v1, zero, -1 | v1 = -1;
0x000655cc addiu v1, s0, 3 | v1 = s0 + 3;
| if (a0 == v1) {
0x000655d0 beq a0, v1, 0x654b0 | goto label_7;
| }
0x000655d4 lw v1, 8(s2) | v1 = *((s2 + 2));
0x000655d8 addiu v1, s0, 3 | v1 = s0 + 3;
| if (v1 == 0) {
0x000655dc beqz v1, 0x65d0c | goto label_69;
| }
0x000655e0 slt v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x000655e4 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
| if (v0 == 0) {
0x000655e8 beqz v0, 0x65d34 | goto label_70;
| }
| label_36:
0x000655ec addu v0, s7, s0 | v0 = s7 + s0;
0x000655f0 addiu v1, zero, 0x2f | v1 = 0x2f;
0x000655f4 sb v1, (v0) | *(v0) = v1;
0x000655f8 sb v1, 1(v0) | *((v0 + 1)) = v1;
0x000655fc lw s1, -0x7b38(gp) | s1 = *((gp - 7886));
0x00065600 lui s4, 0x8fff | s4 = 0x8fff0000;
0x00065604 lw s6, 8(s2) | s6 = *((s2 + 2));
0x00065608 addiu s0, s0, 2 | s0 += 2;
0x0006560c addiu fp, sp, 0x20 | fp = sp + 0x20;
0x00065610 addiu s1, s1, 0x4cf4 | s1 += 0x4cf4;
0x00065614 ori s4, s4, 0xfffd | s4 |= 0xfffd;
| do {
| label_29:
0x00065618 lb v1, (s6) | v1 = *(s6);
0x0006561c lw v0, 0x20(sp) | v0 = *(var_20h_2);
| if (v1 == 0) {
0x00065620 beqz v1, 0x65848 | goto label_38;
| }
0x00065624 addiu s5, s0, 3 | s5 = s0 + 3;
0x00065628 slt v0, s5, v0 | v0 = (s5 < v0) ? 1 : 0;
0x0006562c andi v1, v1, 0xff | v1 &= 0xff;
| if (v0 == 0) {
0x00065630 beqz v0, 0x65ab8 | goto label_71;
| }
0x00065634 addiu v0, v1, -0x5f | v0 = v1 + -0x5f;
0x00065638 andi v0, v0, 0xff | v0 &= 0xff;
0x0006563c sltiu a0, v0, 0x20 | a0 = (v0 < 0x20) ? 1 : 0;
| if (a0 == 0) {
0x00065640 beql a0, zero, 0x65af4 | goto label_72;
| }
0x00065644 addiu v0, v1, -0x21 | v0 = v1 + -0x21;
0x00065648 srlv v0, s4, v0 | v0 = s4 >> v0;
| label_26:
0x0006564c ext v0, v0, 0, 1 | __asm ("ext v0, v0, 0, 1");
0x00065650 addu a0, s7, s0 | a0 = s7 + s0;
0x00065654 addiu s6, s6, 1 | s6++;
0x00065658 addiu a1, s0, 1 | a1 = s0 + 1;
| if (v0 == 0) {
0x0006565c bnez v0, 0x65670 |
| label_27:
0x00065660 addiu v0, v1, -0x40 | v0 = v1 + -0x40;
0x00065664 sltiu v0, v0, 0x1b | v0 = (v0 < 0x1b) ? 1 : 0;
0x00065668 andi a3, v1, 0xf | a3 = v1 & 0xf;
| if (v0 == 0) {
0x0006566c beqz v0, 0x65b28 | goto label_73;
| }
| }
0x00065670 move s0, a1 | s0 = a1;
| label_28:
0x00065674 sb v1, (a0) | *(a0) = v1;
0x00065678 b 0x65618 |
| } while (1);
| label_68:
0x0006567c ext v0, v0, 0, 1 | __asm ("ext v0, v0, 0, 1");
0x00065680 andi a3, a0, 0xf | a3 = a0 & 0xf;
| if (v0 == 0) {
0x00065684 beqz v0, 0x65558 | goto label_8;
| }
| label_66:
0x00065688 sb a0, (a2) | *(a2) = a0;
| label_67:
0x0006568c move s0, a1 | s0 = a1;
0x00065690 b 0x654ec | goto label_9;
| label_65:
0x00065694 move t9, s1 | t9 = s1;
0x00065698 move a0, s7 | a0 = s7;
0x0006569c bal 0x64cf4 | fcn_00064cf4 ();
0x000656a0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000656a4 beqz v0, 0x652fc | goto label_3;
| }
0x000656a8 lb v1, (s5) | v1 = *(s5);
0x000656ac move s7, v0 | s7 = v0;
0x000656b0 b 0x65508 | goto label_10;
| label_46:
0x000656b4 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x000656b8 addiu t9, t9, 0x4cf4 | t9 += 0x4cf4;
0x000656bc move a0, s7 | a0 = s7;
0x000656c0 bal 0x64cf4 | fcn_00064cf4 ();
0x000656c4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000656c8 beqz v0, 0x652fc | goto label_3;
| }
0x000656cc move s7, v0 | s7 = v0;
0x000656d0 b 0x65208 | goto label_11;
| if (a0 == v0) {
| label_58:
0x000656d4 beql a0, v0, 0x6542c | goto label_12;
| }
0x000656d8 sb v1, (a2) | *(a2) = v1;
0x000656dc addiu v0, v1, -0x3f | v0 = v1 + -0x3f;
| label_59:
0x000656e0 sltiu v0, v0, 0x1d | v0 = (v0 < 0x1d) ? 1 : 0;
0x000656e4 sb v1, (a2) | *(a2) = v1;
| if (v0 == 0) {
0x000656e8 bnel v0, zero, 0x6542c | goto label_12;
| }
0x000656ec addiu v0, zero, -3 | v0 = -3;
0x000656f0 and a0, a0, v0 | a0 &= v0;
0x000656f4 addiu v0, zero, 0x5d | v0 = 0x5d;
0x000656f8 andi a3, v1, 0xf | a3 = v1 & 0xf;
| if (a0 == v0) {
0x000656fc beq a0, v0, 0x65428 | goto label_13;
| }
0x00065700 addiu t0, zero, 0x30 | t0 = 0x30;
0x00065704 sltiu a0, v1, 0xa0 | a0 = (v1 < 0xa0) ? 1 : 0;
0x00065708 addiu t1, zero, 0x37 | t1 = 0x37;
0x0006570c sltiu v0, a3, 0xa | v0 = (a3 < 0xa) ? 1 : 0;
0x00065710 addu t2, s7, a1 | t2 = s7 + a1;
0x00065714 move a1, t0 | a1 = t0;
| if (a0 != 0) {
0x00065718 movz a1, t1, a0 | a1 = t1;
| }
0x0006571c addu s0, s7, s0 | s0 = s7 + s0;
0x00065720 sra v1, v1, 4 | v1 >>= 4;
| if (v0 != 0) {
0x00065724 movz t0, t1, v0 | t0 = t1;
| }
0x00065728 addu v1, a1, v1 | v1 = a1 + v1;
0x0006572c addu v0, t0, a3 | v0 = t0 + a3;
0x00065730 addiu a0, zero, 0x25 | a0 = 0x25;
0x00065734 move a1, s5 | a1 = s5;
0x00065738 sb a0, (a2) | *(a2) = a0;
0x0006573c sb v1, (t2) | *(t2) = v1;
0x00065740 sb v0, 2(s0) | *((s0 + 2)) = v0;
0x00065744 move s0, a1 | s0 = a1;
0x00065748 b 0x65430 | goto label_14;
| label_64:
0x0006574c lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
| if (v0 == 0) {
0x00065750 beqz v0, 0x65ccc | goto label_74;
| }
| label_32:
0x00065754 addu v0, s7, s0 | v0 = s7 + s0;
0x00065758 addiu v1, zero, 0x40 | v1 = 0x40;
0x0006575c sb v1, (v0) | *(v0) = v1;
0x00065760 addiu s0, s0, 1 | s0++;
| label_63:
0x00065764 lw s1, 0xc(s2) | s1 = *((s2 + 3));
| if (s1 == 0) {
0x00065768 beql s1, zero, 0x6584c | goto label_75;
| }
0x0006576c lw s6, 0x18(s2) | s6 = *((s2 + 6));
0x00065770 lb v0, (s1) | v0 = *(s1);
0x00065774 lw s4, -0x7b38(gp) | s4 = *((gp - 7886));
| if (v0 == 0) {
0x00065778 beqz v0, 0x657d4 | goto label_76;
| }
0x0006577c addiu s5, sp, 0x20 | s5 = sp + 0x20;
0x00065780 addiu s4, s4, 0x4cf4 | s4 += 0x4cf4;
0x00065784 b 0x657a4 | goto label_77;
| label_15:
0x00065788 addiu s1, s1, 1 | s1++;
| do {
0x0006578c addu v0, s7, s0 | v0 = s7 + s0;
0x00065790 lbu v1, -1(s1) | v1 = *((s1 - 1));
0x00065794 sb v1, (v0) | *(v0) = v1;
0x00065798 lb v0, (s1) | v0 = *(s1);
0x0006579c addiu s0, s0, 1 | s0++;
| if (v0 == 0) {
0x000657a0 beqz v0, 0x657d4 | goto label_76;
| }
| label_77:
0x000657a4 lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x000657a8 slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x000657ac addiu s1, s1, 1 | s1++;
0x000657b0 bnel v0, zero, 0x6578c |
| } while (v0 == 0);
0x000657b4 move a1, s5 | a1 = s5;
0x000657b8 move t9, s4 | t9 = s4;
0x000657bc move a0, s7 | a0 = s7;
0x000657c0 bal 0x64cf4 | fcn_00064cf4 ();
0x000657c4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000657c8 beqz v0, 0x652fc | goto label_3;
| }
0x000657cc move s7, v0 | s7 = v0;
0x000657d0 b 0x65788 | goto label_15;
| label_76:
0x000657d4 lw v1, 0x14(s2) | v1 = *((s2 + 5));
0x000657d8 lw a1, 0x20(sp) | a1 = *(var_20h_2);
| if (v1 <= 0) {
0x000657dc blez v1, 0x65848 | goto label_38;
| }
0x000657e0 addiu v0, s0, 0xa | v0 = s0 + 0xa;
0x000657e4 slt v0, v0, a1 | v0 = (v0 < a1) ? 1 : 0;
0x000657e8 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
| if (v0 != 0) {
0x000657ec bnez v0, 0x6581c | goto label_78;
| }
0x000657f0 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
0x000657f4 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x000657f8 addiu t9, t9, 0x4cf4 | t9 += 0x4cf4;
0x000657fc move a0, s7 | a0 = s7;
0x00065800 bal 0x64cf4 | fcn_00064cf4 ();
0x00065804 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00065808 beqz v0, 0x652fc | goto label_3;
| }
0x0006580c lw a1, 0x20(sp) | a1 = *(var_20h_2);
0x00065810 lw v1, 0x14(s2) | v1 = *((s2 + 5));
0x00065814 move s7, v0 | s7 = v0;
0x00065818 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
| label_78:
0x0006581c lw t9, -0x7108(gp) | t9 = *(gp);
0x00065820 addiu v0, v0, -0x58a0 | v0 += -0x58a0;
0x00065824 subu a1, a1, s0 | __asm ("subu a1, a1, s0");
0x00065828 addu a0, s7, s0 | a0 = s7 + s0;
0x0006582c sw v1, 0x14(sp) | *(var_14h) = v1;
0x00065830 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00065834 addiu a3, zero, -1 | a3 = -1;
0x00065838 addiu a2, zero, 1 | a2 = 1;
0x0006583c jalr t9 | t9 ();
0x00065840 lw gp, 0x18(sp) | gp = *(var_18h);
0x00065844 addu s0, v0, s0 | s0 = v0 + s0;
| label_38:
0x00065848 lw s6, 0x18(s2) | s6 = *((s2 + 6));
| label_75:
0x0006584c lw v0, 0x20(sp) | v0 = *(var_20h_2);
| if (s6 == 0) {
0x00065850 beqz s6, 0x65990 | goto label_79;
| }
0x00065854 lw a0, (s2) | a0 = *(s2);
0x00065858 lb v1, (s6) | v1 = *(s6);
| if (a0 != 0) {
0x0006585c beqz a0, 0x65870 |
| label_35:
0x00065860 addiu v0, zero, 0x2f | v0 = 0x2f;
| if (v1 == v0) {
0x00065864 beql v1, v0, 0x65a74 | goto label_80;
| }
0x00065868 lbu v0, 1(s6) | v0 = *((s6 + 1));
| label_25:
0x0006586c lw v0, 0x20(sp) | v0 = *(var_20h_2);
| }
| label_24:
0x00065870 lw s1, -0x7b38(gp) | s1 = *((gp - 7886));
0x00065874 lui s4, 0x8fff | s4 = 0x8fff0000;
0x00065878 addiu fp, sp, 0x20 | fp = sp + 0x20;
0x0006587c addiu s1, s1, 0x4cf4 | s1 += 0x4cf4;
0x00065880 ori s4, s4, 0xfffd | s4 |= 0xfffd;
| do {
| label_18:
0x00065884 addiu s5, s0, 3 | s5 = s0 + 3;
| if (v1 == 0) {
0x00065888 beqz v1, 0x65990 | goto label_79;
| }
0x0006588c slt v0, s5, v0 | v0 = (s5 < v0) ? 1 : 0;
0x00065890 move a1, fp | a1 = fp;
| if (v0 == 0) {
0x00065894 beqz v0, 0x65970 | goto label_81;
| }
| label_19:
0x00065898 andi v1, v1, 0xff | v1 &= 0xff;
0x0006589c addiu v0, v1, -0x5f | v0 = v1 + -0x5f;
0x000658a0 andi v0, v0, 0xff | v0 &= 0xff;
0x000658a4 sltiu a0, v0, 0x20 | a0 = (v0 < 0x20) ? 1 : 0;
| if (a0 == 0) {
0x000658a8 beql a0, zero, 0x6592c | goto label_82;
| }
0x000658ac addiu v0, v1, -0x21 | v0 = v1 + -0x21;
0x000658b0 srlv v0, s4, v0 | v0 = s4 >> v0;
0x000658b4 ext v0, v0, 0, 1 | __asm ("ext v0, v0, 0, 1");
0x000658b8 addu a0, s7, s0 | a0 = s7 + s0;
0x000658bc addiu s6, s6, 1 | s6++;
0x000658c0 addiu a1, s0, 1 | a1 = s0 + 1;
| if (v0 != 0) {
0x000658c4 bnez v0, 0x6595c | goto label_83;
| }
| label_16:
0x000658c8 addiu v0, v1, -0x40 | v0 = v1 + -0x40;
0x000658cc sltiu v0, v0, 0x1b | v0 = (v0 < 0x1b) ? 1 : 0;
0x000658d0 sb v1, (a0) | *(a0) = v1;
| if (v0 == 0) {
0x000658d4 bnel v0, zero, 0x65960 | goto label_84;
| }
0x000658d8 andi a3, v1, 0xf | a3 = v1 & 0xf;
| label_17:
0x000658dc addiu t1, zero, 0x37 | t1 = 0x37;
0x000658e0 sltiu a2, v1, 0xa0 | a2 = (v1 < 0xa0) ? 1 : 0;
0x000658e4 addiu t0, zero, 0x30 | t0 = 0x30;
0x000658e8 sltiu v0, a3, 0xa | v0 = (a3 < 0xa) ? 1 : 0;
0x000658ec move t3, t1 | t3 = t1;
| if (a2 == 0) {
0x000658f0 movn t3, t0, a2 | t3 = t0;
| }
0x000658f4 addu t2, s7, s0 | t2 = s7 + s0;
0x000658f8 addu a1, s7, a1 | a1 = s7 + a1;
0x000658fc sra v1, v1, 4 | v1 >>= 4;
| if (v0 != 0) {
0x00065900 movz t0, t1, v0 | t0 = t1;
| }
0x00065904 addu v1, t3, v1 | v1 = t3 + v1;
0x00065908 addu v0, t0, a3 | v0 = t0 + a3;
0x0006590c addiu a2, zero, 0x25 | a2 = 0x25;
0x00065910 sb a2, (a0) | *(a0) = a2;
0x00065914 sb v1, (a1) | *(a1) = v1;
0x00065918 sb v0, 2(t2) | *((t2 + 2)) = v0;
0x0006591c move s0, s5 | s0 = s5;
0x00065920 lb v1, (s6) | v1 = *(s6);
0x00065924 lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x00065928 b 0x65884 |
| } while (1);
| label_82:
0x0006592c andi v0, v0, 0xff | v0 &= 0xff;
0x00065930 sltiu a2, v0, 0x1d | a2 = (v0 < 0x1d) ? 1 : 0;
0x00065934 addu a0, s7, s0 | a0 = s7 + s0;
0x00065938 addiu s6, s6, 1 | s6++;
0x0006593c addiu a1, s0, 1 | a1 = s0 + 1;
| if (a2 == 0) {
0x00065940 beqz a2, 0x658c8 | goto label_16;
| }
0x00065944 lui a2, 0x15ff | a2 = 0x15ffffe9;
0x00065948 ori a2, a2, 0xffe9 |
0x0006594c srlv v0, a2, v0 | v0 = a2 >> v0;
0x00065950 ext v0, v0, 0, 1 | __asm ("ext v0, v0, 0, 1");
0x00065954 andi a3, v1, 0xf | a3 = v1 & 0xf;
| if (v0 == 0) {
0x00065958 beqz v0, 0x658dc | goto label_17;
| }
| label_83:
0x0006595c sb v1, (a0) | *(a0) = v1;
| label_84:
0x00065960 move s0, a1 | s0 = a1;
0x00065964 lb v1, (s6) | v1 = *(s6);
0x00065968 lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x0006596c b 0x65884 | goto label_18;
| label_81:
0x00065970 move t9, s1 | t9 = s1;
0x00065974 move a0, s7 | a0 = s7;
0x00065978 bal 0x64cf4 | fcn_00064cf4 ();
0x0006597c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00065980 beqz v0, 0x652fc | goto label_3;
| }
0x00065984 lb v1, (s6) | v1 = *(s6);
0x00065988 move s7, v0 | s7 = v0;
0x0006598c b 0x65898 | goto label_19;
| label_79:
0x00065990 lw v1, 0x28(s2) | v1 = *((s2 + 10));
| label_34:
0x00065994 addiu s4, s0, 1 | s4 = s0 + 1;
| if (v1 == 0) {
0x00065998 beqz v1, 0x65b8c | goto label_85;
| }
0x0006599c slt v0, s4, v0 | v0 = (s4 < v0) ? 1 : 0;
0x000659a0 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
| if (v0 == 0) {
0x000659a4 beqz v0, 0x65cec | goto label_86;
| }
| label_33:
0x000659a8 addu s0, s7, s0 | s0 = s7 + s0;
0x000659ac addiu v0, zero, 0x3f | v0 = 0x3f;
0x000659b0 sb v0, (s0) | *(s0) = v0;
0x000659b4 lw s1, 0x28(s2) | s1 = *((s2 + 10));
0x000659b8 lb v0, (s1) | v0 = *(s1);
0x000659bc lw v0, 0x20(sp) | v0 = *(var_20h_2);
| if (v0 == 0) {
0x000659c0 beqz v0, 0x65d74 | goto label_87;
| }
0x000659c4 lw s5, -0x7b38(gp) | s5 = *((gp - 7886));
0x000659c8 addiu s6, sp, 0x20 | s6 = sp + 0x20;
0x000659cc addiu s5, s5, 0x4cf4 | s5 += 0x4cf4;
0x000659d0 b 0x659f4 | goto label_88;
| label_20:
0x000659d4 addiu s1, s1, 1 | s1++;
| do {
0x000659d8 addu v0, s7, s4 | v0 = s7 + s4;
0x000659dc lbu v1, -1(s1) | v1 = *((s1 - 1));
0x000659e0 sb v1, (v0) | *(v0) = v1;
0x000659e4 lb v0, (s1) | v0 = *(s1);
0x000659e8 move s4, s0 | s4 = s0;
| if (v0 == 0) {
0x000659ec beqz v0, 0x65a4c | goto label_89;
| }
0x000659f0 lw v0, 0x20(sp) | v0 = *(var_20h_2);
| label_88:
0x000659f4 addiu s0, s4, 1 | s0 = s4 + 1;
0x000659f8 slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x000659fc addiu s1, s1, 1 | s1++;
0x00065a00 bnel v0, zero, 0x659d8 |
| } while (v0 == 0);
0x00065a04 move a1, s6 | a1 = s6;
0x00065a08 move t9, s5 | t9 = s5;
0x00065a0c move a0, s7 | a0 = s7;
0x00065a10 bal 0x64cf4 | fcn_00064cf4 ();
0x00065a14 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00065a18 beqz v0, 0x652fc | goto label_3;
| }
0x00065a1c move s7, v0 | s7 = v0;
0x00065a20 b 0x659d4 | goto label_20;
| label_56:
0x00065a24 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x00065a28 addiu t9, t9, 0x4cf4 | t9 += 0x4cf4;
0x00065a2c move a0, s7 | a0 = s7;
0x00065a30 bal 0x64cf4 | fcn_00064cf4 ();
0x00065a34 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00065a38 beqz v0, 0x652fc | goto label_3;
| }
0x00065a3c move s7, v0 | s7 = v0;
0x00065a40 b 0x653a4 | goto label_21;
| label_42:
0x00065a44 move s7, zero | s7 = 0;
0x00065a48 b 0x65314 | goto label_2;
| label_89:
0x00065a4c lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x00065a50 b 0x6538c | goto label_22;
| label_62:
0x00065a54 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x00065a58 addiu t9, t9, 0x4cf4 | t9 += 0x4cf4;
0x00065a5c move a0, s7 | a0 = s7;
0x00065a60 bal 0x64cf4 | fcn_00064cf4 ();
0x00065a64 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00065a68 beqz v0, 0x652fc | goto label_3;
| }
0x00065a6c move s7, v0 | s7 = v0;
0x00065a70 b 0x654bc | goto label_23;
| label_80:
0x00065a74 andi v0, v0, 0xdf | v0 &= 0xdf;
0x00065a78 addiu v0, v0, -0x41 | v0 += -0x41;
0x00065a7c sltiu v0, v0, 0x1a | v0 = (v0 < 0x1a) ? 1 : 0;
0x00065a80 lw v0, 0x20(sp) | v0 = *(var_20h_2);
| if (v0 == 0) {
0x00065a84 beqz v0, 0x65870 | goto label_24;
| }
0x00065a88 lb a1, 2(s6) | a1 = *((s6 + 2));
0x00065a8c addiu v0, zero, 0x3a | v0 = 0x3a;
0x00065a90 lw v0, 0x20(sp) | v0 = *(var_20h_2);
| if (a1 != v0) {
0x00065a94 bne a1, v0, 0x65870 | goto label_24;
| }
0x00065a98 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00065a9c lw t9, -0x7f90(gp) | t9 = *((gp - 8164));
0x00065aa0 addiu a1, a1, -0x5d64 | a1 += -aav.0x00005d64;
0x00065aa4 jalr t9 | t9 ();
0x00065aa8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00065aac bnez v0, 0x65db0 | goto label_90;
| }
0x00065ab0 lb v1, (s6) | v1 = *(s6);
0x00065ab4 b 0x6586c | goto label_25;
| label_71:
0x00065ab8 move a1, fp | a1 = fp;
0x00065abc move t9, s1 | t9 = s1;
0x00065ac0 move a0, s7 | a0 = s7;
0x00065ac4 bal 0x64cf4 | fcn_00064cf4 ();
0x00065ac8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00065acc beqz v0, 0x652fc | goto label_3;
| }
0x00065ad0 lb v1, (s6) | v1 = *(s6);
0x00065ad4 move s7, v0 | s7 = v0;
0x00065ad8 andi v1, v1, 0xff | v1 &= 0xff;
0x00065adc addiu v0, v1, -0x5f | v0 = v1 + -0x5f;
0x00065ae0 andi v0, v0, 0xff | v0 &= 0xff;
0x00065ae4 sltiu a0, v0, 0x20 | a0 = (v0 < 0x20) ? 1 : 0;
0x00065ae8 srlv v0, s4, v0 | v0 = s4 >> v0;
| if (a0 != 0) {
0x00065aec bnez a0, 0x6564c | goto label_26;
| }
0x00065af0 addiu v0, v1, -0x21 | v0 = v1 + -0x21;
| label_72:
0x00065af4 andi v0, v0, 0xff | v0 &= 0xff;
0x00065af8 sltiu a2, v0, 0x1d | a2 = (v0 < 0x1d) ? 1 : 0;
0x00065afc addu a0, s7, s0 | a0 = s7 + s0;
0x00065b00 addiu s6, s6, 1 | s6++;
0x00065b04 addiu a1, s0, 1 | a1 = s0 + 1;
| if (a2 == 0) {
0x00065b08 beqz a2, 0x65660 | goto label_27;
| }
0x00065b0c lui a2, 0x17ff | a2 = 0x17ffbfe9;
0x00065b10 ori a2, a2, 0xbfe9 |
0x00065b14 srlv v0, a2, v0 | v0 = a2 >> v0;
0x00065b18 ext v0, v0, 0, 1 | __asm ("ext v0, v0, 0, 1");
0x00065b1c move s0, a1 | s0 = a1;
| if (v0 == 0) {
0x00065b20 bnel v0, zero, 0x65674 | goto label_28;
| }
0x00065b24 andi a3, v1, 0xf | a3 = v1 & 0xf;
| label_73:
0x00065b28 addiu t1, zero, 0x37 | t1 = 0x37;
0x00065b2c sltiu a2, v1, 0xa0 | a2 = (v1 < 0xa0) ? 1 : 0;
0x00065b30 addiu t0, zero, 0x30 | t0 = 0x30;
0x00065b34 sltiu v0, a3, 0xa | v0 = (a3 < 0xa) ? 1 : 0;
0x00065b38 move t3, t1 | t3 = t1;
| if (a2 == 0) {
0x00065b3c movn t3, t0, a2 | t3 = t0;
| }
0x00065b40 addu t2, s7, s0 | t2 = s7 + s0;
0x00065b44 addu a1, s7, a1 | a1 = s7 + a1;
0x00065b48 sra v1, v1, 4 | v1 >>= 4;
| if (v0 != 0) {
0x00065b4c movz t0, t1, v0 | t0 = t1;
| }
0x00065b50 addu v1, t3, v1 | v1 = t3 + v1;
0x00065b54 addu v0, t0, a3 | v0 = t0 + a3;
0x00065b58 addiu a2, zero, 0x25 | a2 = 0x25;
0x00065b5c sb a2, (a0) | *(a0) = a2;
0x00065b60 move s0, s5 | s0 = s5;
0x00065b64 sb v1, (a1) | *(a1) = v1;
0x00065b68 sb v0, 2(t2) | *((t2 + 2)) = v0;
0x00065b6c b 0x65618 | goto label_29;
| label_43:
0x00065b70 lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x00065b74 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
0x00065b78 addiu t9, t9, 0x4c70 | t9 += 0x4c70;
0x00065b7c addiu a0, a0, -0x58c4 | a0 += -0x58c4;
0x00065b80 bal 0x64c70 | fcn_00064c70 ();
0x00065b84 lw gp, 0x18(sp) | gp = *(var_18h);
0x00065b88 b 0x65314 | goto label_2;
| label_85:
0x00065b8c lw v1, 0x1c(s2) | v1 = *((s2 + 7));
0x00065b90 addiu v1, s0, 3 | v1 = s0 + 3;
| if (v1 == 0) {
0x00065b94 beqz v1, 0x6538c | goto label_22;
| }
0x00065b98 slt v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x00065b9c lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
| if (v0 == 0) {
0x00065ba0 beqz v0, 0x65d54 | goto label_91;
| }
| label_37:
0x00065ba4 addu v0, s7, s0 | v0 = s7 + s0;
0x00065ba8 addiu v1, zero, 0x3f | v1 = 0x3f;
0x00065bac sb v1, (v0) | *(v0) = v1;
0x00065bb0 lw s1, -0x7b38(gp) | s1 = *((gp - 7886));
0x00065bb4 lui s4, 0x17ff | s4 = 0x17ff0000;
0x00065bb8 lw s5, 0x1c(s2) | s5 = *((s2 + 7));
0x00065bbc addiu s0, s0, 1 | s0++;
0x00065bc0 addiu fp, sp, 0x20 | fp = sp + 0x20;
0x00065bc4 addiu s1, s1, 0x4cf4 | s1 += 0x4cf4;
0x00065bc8 ori s4, s4, 0xffe9 | s4 |= 0xffe9;
| label_30:
0x00065bcc lb a0, (s5) | a0 = *(s5);
0x00065bd0 lw v0, 0x20(sp) | v0 = *(var_20h_2);
| if (a0 == 0) {
0x00065bd4 beqz a0, 0x6538c | goto label_22;
| }
0x00065bd8 addiu s6, s0, 3 | s6 = s0 + 3;
0x00065bdc slt v0, s6, v0 | v0 = (s6 < v0) ? 1 : 0;
| if (v0 == 0) {
0x00065be0 beql v0, zero, 0x65cac | goto label_92;
| }
0x00065be4 move a1, fp | a1 = fp;
| label_31:
0x00065be8 andi v1, a0, 0xff | v1 = a0 & 0xff;
0x00065bec addiu v0, v1, -0x61 | v0 = v1 + -0x61;
0x00065bf0 sltiu v0, v0, 0x1a | v0 = (v0 < 0x1a) ? 1 : 0;
0x00065bf4 addu a2, s7, s0 | a2 = s7 + s0;
0x00065bf8 addiu s5, s5, 1 | s5++;
0x00065bfc addiu a1, s0, 1 | a1 = s0 + 1;
| if (v0 != 0) {
0x00065c00 bnez v0, 0x65ca0 | goto label_93;
| }
0x00065c04 addiu v0, v1, -0x21 | v0 = v1 + -0x21;
0x00065c08 andi v0, v0, 0xff | v0 &= 0xff;
0x00065c0c sltiu a3, v0, 0x1d | a3 = (v0 < 0x1d) ? 1 : 0;
| if (a3 == 0) {
0x00065c10 beql a3, zero, 0x65c98 | goto label_94;
| }
0x00065c14 addiu v0, zero, 0x7e | v0 = 0x7e;
0x00065c18 srlv v0, s4, v0 | v0 = s4 >> v0;
0x00065c1c ext v0, v0, 0, 1 | __asm ("ext v0, v0, 0, 1");
0x00065c20 sb v1, (a2) | *(a2) = v1;
| if (v0 == 0) {
0x00065c24 bnel v0, zero, 0x65ca4 | goto label_95;
| }
0x00065c28 addiu v0, v1, -0x3f | v0 = v1 + -0x3f;
| do {
0x00065c2c sltiu v0, v0, 0x1d | v0 = (v0 < 0x1d) ? 1 : 0;
0x00065c30 sb v1, (a2) | *(a2) = v1;
| if (v0 == 0) {
0x00065c34 bnel v0, zero, 0x65ca4 | goto label_95;
| }
0x00065c38 addiu v0, zero, -3 | v0 = -3;
0x00065c3c and a0, a0, v0 | a0 &= v0;
0x00065c40 addiu v0, zero, 0x5d | v0 = 0x5d;
0x00065c44 andi a3, v1, 0xf | a3 = v1 & 0xf;
| if (a0 == v0) {
0x00065c48 beq a0, v0, 0x65ca0 | goto label_93;
| }
0x00065c4c addiu t0, zero, 0x30 | t0 = 0x30;
0x00065c50 sltiu a0, v1, 0xa0 | a0 = (v1 < 0xa0) ? 1 : 0;
0x00065c54 addiu t1, zero, 0x37 | t1 = 0x37;
0x00065c58 sltiu v0, a3, 0xa | v0 = (a3 < 0xa) ? 1 : 0;
0x00065c5c addu t2, s7, a1 | t2 = s7 + a1;
0x00065c60 move a1, t0 | a1 = t0;
| if (a0 != 0) {
0x00065c64 movz a1, t1, a0 | a1 = t1;
| }
0x00065c68 addu s0, s7, s0 | s0 = s7 + s0;
0x00065c6c sra v1, v1, 4 | v1 >>= 4;
| if (v0 != 0) {
0x00065c70 movz t0, t1, v0 | t0 = t1;
| }
0x00065c74 addu v1, a1, v1 | v1 = a1 + v1;
0x00065c78 addu v0, t0, a3 | v0 = t0 + a3;
0x00065c7c addiu a0, zero, 0x25 | a0 = 0x25;
0x00065c80 move a1, s6 | a1 = s6;
0x00065c84 sb a0, (a2) | *(a2) = a0;
0x00065c88 sb v1, (t2) | *(t2) = v1;
0x00065c8c sb v0, 2(s0) | *((s0 + 2)) = v0;
0x00065c90 move s0, a1 | s0 = a1;
0x00065c94 b 0x65bcc | goto label_30;
| label_94:
0x00065c98 addiu v0, v1, -0x3f | v0 = v1 + -0x3f;
0x00065c9c bnel a0, v0, 0x65c2c |
| } while (a0 == v0);
| label_93:
0x00065ca0 sb v1, (a2) | *(a2) = v1;
| label_95:
0x00065ca4 move s0, a1 | s0 = a1;
0x00065ca8 b 0x65bcc | goto label_30;
| label_92:
0x00065cac move t9, s1 | t9 = s1;
0x00065cb0 move a0, s7 | a0 = s7;
0x00065cb4 bal 0x64cf4 | fcn_00064cf4 ();
0x00065cb8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00065cbc beqz v0, 0x652fc | goto label_3;
| }
0x00065cc0 lb a0, (s5) | a0 = *(s5);
0x00065cc4 move s7, v0 | s7 = v0;
0x00065cc8 b 0x65be8 | goto label_31;
| label_74:
0x00065ccc addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x00065cd0 addiu t9, t9, 0x4cf4 | t9 += 0x4cf4;
0x00065cd4 move a0, s7 | a0 = s7;
0x00065cd8 bal 0x64cf4 | fcn_00064cf4 ();
0x00065cdc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00065ce0 beqz v0, 0x652fc | goto label_3;
| }
0x00065ce4 move s7, v0 | s7 = v0;
0x00065ce8 b 0x65754 | goto label_32;
| label_86:
0x00065cec addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x00065cf0 addiu t9, t9, 0x4cf4 | t9 += 0x4cf4;
0x00065cf4 move a0, s7 | a0 = s7;
0x00065cf8 bal 0x64cf4 | fcn_00064cf4 ();
0x00065cfc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00065d00 beqz v0, 0x652fc | goto label_3;
| }
0x00065d04 move s7, v0 | s7 = v0;
0x00065d08 b 0x659a8 | goto label_33;
| label_69:
0x00065d0c lw a0, (s2) | a0 = *(s2);
0x00065d10 slt v1, v1, v0 | v1 = (v1 < v0) ? 1 : 0;
| if (a0 == 0) {
0x00065d14 beqz a0, 0x65d7c | goto label_96;
| }
0x00065d18 lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
| if (v1 == 0) {
0x00065d1c beqz v1, 0x65d90 | goto label_97;
| }
0x00065d20 lw s6, 0x18(s2) | s6 = *((s2 + 6));
| if (s6 == 0) {
0x00065d24 beql s6, zero, 0x65994 | goto label_34;
| }
0x00065d28 lw v1, 0x28(s2) | v1 = *((s2 + 10));
0x00065d2c lb v1, (s6) | v1 = *(s6);
0x00065d30 b 0x65860 | goto label_35;
| label_70:
0x00065d34 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x00065d38 addiu t9, t9, 0x4cf4 | t9 += 0x4cf4;
0x00065d3c move a0, s7 | a0 = s7;
0x00065d40 bal 0x64cf4 | fcn_00064cf4 ();
0x00065d44 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00065d48 beqz v0, 0x652fc | goto label_3;
| }
0x00065d4c move s7, v0 | s7 = v0;
0x00065d50 b 0x655ec | goto label_36;
| label_91:
0x00065d54 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x00065d58 addiu t9, t9, 0x4cf4 | t9 += 0x4cf4;
0x00065d5c move a0, s7 | a0 = s7;
0x00065d60 bal 0x64cf4 | fcn_00064cf4 ();
0x00065d64 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00065d68 beqz v0, 0x652fc | goto label_3;
| }
0x00065d6c move s7, v0 | s7 = v0;
0x00065d70 b 0x65ba4 | goto label_37;
| label_87:
0x00065d74 move s0, s4 | s0 = s4;
0x00065d78 b 0x6538c | goto label_22;
| label_96:
0x00065d7c lw s6, 0x18(s2) | s6 = *((s2 + 6));
| if (s6 == 0) {
0x00065d80 beql s6, zero, 0x65994 | goto label_34;
| }
0x00065d84 lw v1, 0x28(s2) | v1 = *((s2 + 10));
0x00065d88 lb v1, (s6) | v1 = *(s6);
0x00065d8c b 0x65870 | goto label_24;
| label_97:
0x00065d90 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x00065d94 addiu t9, t9, 0x4cf4 | t9 += 0x4cf4;
0x00065d98 move a0, s7 | a0 = s7;
0x00065d9c bal 0x64cf4 | fcn_00064cf4 ();
0x00065da0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00065da4 beqz v0, 0x652fc | goto label_3;
| }
0x00065da8 move s7, v0 | s7 = v0;
0x00065dac b 0x65848 | goto label_38;
| label_90:
0x00065db0 lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x00065db4 addiu s1, s0, 3 | s1 = s0 + 3;
0x00065db8 slt v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x00065dbc lw t9, -0x7b38(gp) | t9 = *((gp - 7886));
| if (v0 == 0) {
0x00065dc0 beqz v0, 0x65e14 | goto label_98;
| }
| label_41:
0x00065dc4 lbu v1, (s6) | v1 = *(s6);
0x00065dc8 addu v0, s7, s0 | v0 = s7 + s0;
0x00065dcc addiu s6, s6, 3 | s6 += 3;
0x00065dd0 sb v1, (v0) | *(v0) = v1;
0x00065dd4 lbu v1, -2(s6) | v1 = *((s6 - 2));
0x00065dd8 move s0, s1 | s0 = s1;
0x00065ddc sb v1, 1(v0) | *((v0 + 1)) = v1;
0x00065de0 lbu v1, -1(s6) | v1 = *((s6 - 1));
0x00065de4 sb v1, 2(v0) | *((v0 + 2)) = v1;
0x00065de8 lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x00065dec lb v1, (s6) | v1 = *(s6);
0x00065df0 b 0x65870 | goto label_24;
| label_50:
0x00065df4 ext v0, v0, 0, 1 | __asm ("ext v0, v0, 0, 1");
0x00065df8 addu v0, s7, s0 | v0 = s7 + s0;
| if (v0 != 0) {
0x00065dfc bnez v0, 0x65370 | goto label_39;
| }
0x00065e00 addu v1, s7, s0 | v1 = s7 + s0;
0x00065e04 addiu v0, zero, 0x25 | v0 = 0x25;
0x00065e08 sb v0, (v1) | *(v1) = v0;
| label_52:
0x00065e0c addiu a1, zero, 0x30 | a1 = 0x30;
0x00065e10 b 0x652cc | goto label_40;
| label_98:
0x00065e14 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x00065e18 addiu t9, t9, 0x4cf4 | t9 += 0x4cf4;
0x00065e1c move a0, s7 | a0 = s7;
0x00065e20 bal 0x64cf4 | fcn_00064cf4 ();
0x00065e24 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00065e28 beqz v0, 0x652fc | goto label_3;
| }
0x00065e2c move s7, v0 | s7 = v0;
0x00065e30 b 0x65dc4 | goto label_41;
| label_54:
0x00065e34 lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x00065e38 jalr t9 | t9 ();
0x00065e3c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xfd164 */
| #include <stdint.h>
|
; (fcn) sym.xmlSchemaCopyValue () | void xmlSchemaCopyValue () {
0x000fd164 lui gp, 9 |
0x000fd168 addiu gp, gp, 0x450c |
0x000fd16c addu gp, gp, t9 | gp += t9;
0x000fd170 addiu sp, sp, -0x38 |
0x000fd174 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000fd178 sw ra, 0x34(sp) | *(var_34h) = ra;
0x000fd17c sw s6, 0x30(sp) | *(var_30h) = s6;
0x000fd180 sw s5, 0x2c(sp) | *(var_2ch) = s5;
0x000fd184 sw s4, 0x28(sp) | *(var_28h) = s4;
0x000fd188 sw s3, 0x24(sp) | *(var_24h) = s3;
0x000fd18c sw s2, 0x20(sp) | *(var_20h) = s2;
0x000fd190 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x000fd194 sw s0, 0x18(sp) | *(var_18h) = s0;
0x000fd198 move s5, a0 | s5 = a0;
| if (a0 == 0) {
0x000fd19c beqz a0, 0xfd2e0 | goto label_2;
| }
0x000fd1a0 lw s3, -0x74b0(gp) | s3 = *((gp - 7468));
0x000fd1a4 lw v0, (s5) | v0 = *(s5);
0x000fd1a8 lw s2, -0x7fb0(gp) | s2 = *((gp - 8172));
0x000fd1ac sltiu v1, v0, 0x2f | v1 = (v0 < 0x2f) ? 1 : 0;
0x000fd1b0 lw s4, -0x7fd8(gp) | s4 = *((gp - 8182));
0x000fd1b4 move s1, zero | s1 = 0;
0x000fd1b8 move s0, zero | s0 = 0;
0x000fd1bc addiu s3, s3, 0x50cc | s3 += aav.0x000050cc;
0x000fd1c0 addiu s2, s2, -0x33d4 | s2 += -0x33d4;
| if (v1 == 0) {
0x000fd1c4 beqz v1, 0xfd234 | goto label_3;
| }
0x000fd1c8 sll v0, v0, 2 | v0 <<= 2;
| do {
0x000fd1cc lwx v0, v0(s2) | __asm ("lwx v0, v0(s2)");
0x000fd1d0 addu v0, v0, gp | v0 += gp;
0x000fd1d4 jr v0 | v0 ();
0x000fd1d8 nop |
| label_0:
0x000fd214 sw s6, 4(s1) | *((s1 + 1)) = s6;
| label_1:
0x000fd218 lw s5, 4(s5) | s5 = *((s5 + 1));
0x000fd21c move s1, s6 | s1 = s6;
| if (s5 == 0) {
0x000fd220 beqz s5, 0xfd2b4 | goto label_4;
| }
0x000fd224 lw v0, (s5) | v0 = *(s5);
0x000fd228 sltiu v1, v0, 0x2f | v1 = (v0 < 0x2f) ? 1 : 0;
0x000fd22c sll v0, v0, 2 | v0 <<= 2;
0x000fd230 bnez v1, 0xfd1cc |
| } while (v1 != 0);
| label_3:
0x000fd234 move t9, s3 | t9 = s3;
0x000fd238 move a0, s5 | a0 = s5;
0x000fd23c bal 0xf50cc | fcn_000f50cc ();
0x000fd240 move s6, v0 | s6 = v0;
0x000fd244 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s0 != 0) {
0x000fd248 bnez s0, 0xfd214 | goto label_0;
| }
0x000fd24c move s0, s6 | s0 = s6;
0x000fd250 b 0xfd218 | goto label_1;
| do {
| label_4:
0x000fd2b4 lw ra, 0x34(sp) | ra = *(var_34h);
0x000fd2b8 move v0, s0 | v0 = s0;
0x000fd2bc lw s6, 0x30(sp) | s6 = *(var_30h);
0x000fd2c0 lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x000fd2c4 lw s4, 0x28(sp) | s4 = *(var_28h);
0x000fd2c8 lw s3, 0x24(sp) | s3 = *(var_24h);
0x000fd2cc lw s2, 0x20(sp) | s2 = *(var_20h);
0x000fd2d0 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000fd2d4 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000fd2d8 addiu sp, sp, 0x38 |
0x000fd2dc jr ra | return v0;
| label_2:
0x000fd2e0 move s0, zero | s0 = 0;
0x000fd2e4 b 0xfd2b4 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xe5ed8 */
| #include <stdint.h>
|
; (fcn) sym.xmlSchemaDump () | void xmlSchemaDump () {
0x000e5ed8 lui gp, 0xb |
0x000e5edc addiu gp, gp, -0x4868 |
0x000e5ee0 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x000e5ee4 beqz a0, 0xe6028 | goto label_1;
| }
0x000e5ee8 nop |
0x000e5eec addiu sp, sp, -0x28 |
0x000e5ef0 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000e5ef4 sw ra, 0x24(sp) | *(var_24h) = ra;
0x000e5ef8 sw s1, 0x20(sp) | *(var_20h) = s1;
0x000e5efc sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000e5f00 move a3, a0 | a3 = a0;
| if (a1 == 0) {
0x000e5f04 beqz a1, 0xe6030 | goto label_2;
| }
0x000e5f08 move s0, a0 | s0 = a0;
0x000e5f0c lw a0, -0x7fb0(gp) | a0 = *((gp - 8172));
0x000e5f10 lw t9, -0x7048(gp) | t9 = *(gp);
0x000e5f14 move s1, a1 | s1 = a1;
0x000e5f18 addiu a2, zero, 9 | a2 = 9;
0x000e5f1c addiu a1, zero, 1 | a1 = 1;
0x000e5f20 addiu a0, a0, -0x74f8 | a0 += -0x74f8;
0x000e5f24 jalr t9 | t9 ();
0x000e5f28 lw a3, (s1) | a3 = *(s1);
0x000e5f2c lw gp, 0x10(sp) | gp = *(var_10h);
| if (a3 == 0) {
0x000e5f30 beqz a3, 0xe5fdc | goto label_3;
| }
0x000e5f34 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x000e5f38 lw t9, -0x6e30(gp) | t9 = *((gp - 7052));
0x000e5f3c move a0, s0 | a0 = s0;
0x000e5f40 addiu a2, a2, 0x603c | a2 += aav.0x0000603c;
0x000e5f44 addiu a1, zero, 1 | a1 = 1;
0x000e5f48 jalr t9 | t9 ();
0x000e5f4c lw a0, 4(s1) | a0 = *((s1 + 1));
0x000e5f50 lw gp, 0x10(sp) | gp = *(var_10h);
| if (a0 == 0) {
0x000e5f54 beqz a0, 0xe6004 | goto label_4;
| }
| do {
0x000e5f58 lw t9, -0x6da4(gp) | t9 = *((gp - 7017));
0x000e5f5c move a1, s0 | a1 = s0;
0x000e5f60 jalr t9 | t9 ();
0x000e5f64 lw gp, 0x10(sp) | gp = *(var_10h);
| label_0:
0x000e5f68 lw t9, -0x7088(gp) | t9 = *(gp);
0x000e5f6c move a1, s0 | a1 = s0;
0x000e5f70 addiu a0, zero, 0xa | a0 = 0xa;
0x000e5f74 jalr t9 | t9 ();
0x000e5f78 lw a1, 0x14(s1) | a1 = *((s1 + 5));
0x000e5f7c lw gp, 0x10(sp) | gp = *(var_10h);
| if (a1 != 0) {
0x000e5f80 beqz a1, 0xe5f98 |
0x000e5f84 lw t9, -0x7578(gp) | t9 = *((gp - 7518));
0x000e5f88 addiu t9, t9, -0x25e8 | t9 += -0x25e8;
0x000e5f8c move a0, s0 | a0 = s0;
0x000e5f90 bal 0xcda18 | fcn_000cda18 ();
0x000e5f94 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000e5f98 lw a1, -0x7578(gp) | a1 = *((gp - 7518));
0x000e5f9c lw a0, 0x1c(s1) | a0 = *((s1 + 7));
0x000e5fa0 lw t9, -0x7f74(gp) | t9 = *((gp - 8157));
0x000e5fa4 move a2, s0 | a2 = s0;
0x000e5fa8 addiu a1, a1, -0x1efc | a1 += -0x1efc;
0x000e5fac jalr t9 | t9 ();
0x000e5fb0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000e5fb4 lw a0, 0x28(s1) | a0 = *((s1 + 10));
0x000e5fb8 lw ra, 0x24(sp) | ra = *(var_24h);
0x000e5fbc lw a1, -0x7578(gp) | a1 = *((gp - 7518));
0x000e5fc0 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000e5fc4 move a2, s0 | a2 = s0;
0x000e5fc8 lw t9, -0x7e74(gp) | t9 = *(gp);
0x000e5fcc lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000e5fd0 addiu a1, a1, -0x1ee0 | a1 += -0x1ee0;
0x000e5fd4 addiu sp, sp, 0x28 |
0x000e5fd8 jr t9 | t9 ();
| label_3:
0x000e5fdc lw a0, -0x7fb0(gp) | a0 = *((gp - 8172));
0x000e5fe0 lw t9, -0x7048(gp) | t9 = *(gp);
0x000e5fe4 addiu a0, a0, -0x74ec | a0 += -0x74ec;
0x000e5fe8 move a3, s0 | a3 = s0;
0x000e5fec addiu a2, zero, 9 | a2 = 9;
0x000e5ff0 addiu a1, zero, 1 | a1 = 1;
0x000e5ff4 jalr t9 | t9 ();
0x000e5ff8 lw a0, 4(s1) | a0 = *((s1 + 1));
0x000e5ffc lw gp, 0x10(sp) | gp = *(var_10h);
0x000e6000 bnez a0, 0xe5f58 |
| } while (a0 != 0);
| label_4:
0x000e6004 lw a0, -0x7fb0(gp) | a0 = *((gp - 8172));
0x000e6008 lw t9, -0x7048(gp) | t9 = *(gp);
0x000e600c move a3, s0 | a3 = s0;
0x000e6010 addiu a2, zero, 0x13 | a2 = 0x13;
0x000e6014 addiu a1, zero, 1 | a1 = 1;
0x000e6018 addiu a0, a0, -0x74e0 | a0 += -0x74e0;
0x000e601c jalr t9 | t9 ();
0x000e6020 lw gp, 0x10(sp) | gp = *(var_10h);
0x000e6024 b 0xe5f68 | goto label_0;
| label_1:
0x000e6028 jr ra | return;
0x000e602c nop |
| label_2:
0x000e6030 lw a0, -0x7fb0(gp) | a0 = *((gp - 8172));
0x000e6034 lw ra, 0x24(sp) | ra = *(var_24h);
0x000e6038 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000e603c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000e6040 lw t9, -0x7048(gp) | t9 = *(gp);
0x000e6044 addiu a2, zero, 0xe | a2 = 0xe;
0x000e6048 addiu a1, zero, 1 | a1 = 1;
0x000e604c addiu a0, a0, -0x7508 | a0 += -0x7508;
0x000e6050 addiu sp, sp, 0x28 |
0x000e6054 jr t9 | return t9 ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xf6ba8 */
| #include <stdint.h>
|
; (fcn) sym.xmlSchemaFreeValue () | void xmlSchemaFreeValue () {
0x000f6ba8 lui gp, 0xa |
0x000f6bac addiu gp, gp, -0x5538 |
0x000f6bb0 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x000f6bb4 beqz a0, 0xf6ca0 | goto label_0;
| }
0x000f6bb8 nop |
0x000f6bbc addiu sp, sp, -0x30 |
0x000f6bc0 sw s3, 0x28(sp) | *(var_28h) = s3;
0x000f6bc4 lw s3, -0x7fb0(gp) | s3 = *((gp - 8172));
0x000f6bc8 sw s2, 0x24(sp) | *(var_24h) = s2;
0x000f6bcc lw s2, -0x7158(gp) | s2 = *(gp);
0x000f6bd0 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000f6bd4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000f6bd8 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000f6bdc sw s1, 0x20(sp) | *(var_20h) = s1;
0x000f6be0 move s0, a0 | s0 = a0;
0x000f6be4 addiu s3, s3, -0x3870 | s3 += -0x3870;
| do {
0x000f6be8 lw v0, (s0) | v0 = *(s0);
0x000f6bec sltiu v1, v0, 0x2f | v1 = (v0 < 0x2f) ? 1 : 0;
0x000f6bf0 lw t9, (s2) | t9 = *(s2);
| if (v1 != 0) {
0x000f6bf4 beqz v1, 0xf6c3c |
0x000f6bf8 sll v0, v0, 2 | v0 <<= 2;
0x000f6bfc lwx v0, v0(s3) | __asm ("lwx v0, v0(s3)");
0x000f6c00 addu v0, v0, gp | v0 += gp;
0x000f6c04 jr v0 | v0 ();
0x000f6c08 nop |
| }
0x000f6c3c lw s1, 4(s0) | s1 = *((s0 + 1));
0x000f6c40 move a0, s0 | a0 = s0;
0x000f6c44 jalr t9 | t9 ();
0x000f6c48 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s1 == 0) {
0x000f6c4c beqz s1, 0xf6c84 | goto label_1;
| }
0x000f6c50 move s0, s1 | s0 = s1;
0x000f6c54 b 0xf6be8 |
| } while (1);
| label_1:
0x000f6c84 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000f6c88 lw s3, 0x28(sp) | s3 = *(var_28h);
0x000f6c8c lw s2, 0x24(sp) | s2 = *(var_24h);
0x000f6c90 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000f6c94 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000f6c98 addiu sp, sp, 0x30 |
0x000f6c9c jr ra | return v0;
| label_0:
0x000f6ca0 jr ra | return v0;
0x000f6ca4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xfdc18 */
| #include <stdint.h>
|
; (fcn) sym.xmlSchemaGetValType () | void xmlSchemaGetValType () {
| if (a0 != 0) {
0x000fdc18 beqz a0, 0xfdc28 |
0x000fdc1c nop |
0x000fdc20 lw v0, (a0) | v0 = *(a0);
0x000fdc24 jr ra | return v0;
| }
0x000fdc28 move v0, zero | v0 = 0;
0x000fdc2c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xf6624 */
| #include <stdint.h>
|
; (fcn) sym.xmlSchemaIsBuiltInTypeFacet () | void xmlSchemaIsBuiltInTypeFacet () {
0x000f6624 lui gp, 0xa |
0x000f6628 addiu gp, gp, -0x4fb4 |
0x000f662c addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x000f6630 beqz a0, 0xf6670 |
0x000f6634 nop |
0x000f6638 lw v1, (a0) | v1 = *(a0);
0x000f663c addiu v0, zero, 1 | v0 = 1;
| if (v1 != v0) {
0x000f6640 bne v1, v0, 0xf6670 | goto label_0;
| }
0x000f6644 nop |
0x000f6648 lw v0, 0x58(a0) | v0 = *((a0 + 22));
0x000f664c sltiu v1, v0, 0x2d | v1 = (v0 < 0x2d) ? 1 : 0;
0x000f6650 sll v1, v0, 2 | v1 = v0 << 2;
| if (v1 == 0) {
0x000f6654 beqz v1, 0xf66c4 | goto label_1;
| }
0x000f6658 lw v0, -0x7fb0(gp) | v0 = *((gp - 8172));
0x000f665c addiu v0, v0, -0x3a9c | v0 += -0x3a9c;
0x000f6660 lwx v0, v1(v0) | __asm ("lwx v0, v1(v0)");
0x000f6664 addu v0, v0, gp | v0 += gp;
0x000f6668 jr v0 | v0 ();
0x000f666c nop |
| }
| label_0:
0x000f6670 addiu v0, zero, -1 | v0 = -1;
0x000f6674 jr ra | return v0;
| label_1:
0x000f66c4 move v0, zero | v0 = 0;
0x000f66c8 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xf39c8 */
| #include <stdint.h>
|
; (fcn) sym.xmlSchemaSAXPlug () | void xmlSchemaSAXPlug () {
0x000f39c8 lui gp, 0xa |
0x000f39cc addiu gp, gp, -0x2358 |
0x000f39d0 addu gp, gp, t9 | gp += t9;
0x000f39d4 addiu sp, sp, -0x30 |
0x000f39d8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000f39dc sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000f39e0 sw s4, 0x28(sp) | *(var_28h) = s4;
0x000f39e4 sw s3, 0x24(sp) | *(var_24h) = s3;
0x000f39e8 sw s2, 0x20(sp) | *(var_20h) = s2;
0x000f39ec sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x000f39f0 sw s0, 0x18(sp) | *(var_18h) = s0;
| if (a0 == 0) {
0x000f39f4 beql a0, zero, 0xf3d14 | goto label_2;
| }
0x000f39f8 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (a1 == 0) {
0x000f39fc beql a1, zero, 0xf3d14 | goto label_2;
| }
0x000f3a00 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000f3a04 move s4, a2 | s4 = a2;
| if (a2 == 0) {
0x000f3a08 beqz a2, 0xf3d10 | goto label_3;
| }
0x000f3a0c lw s1, (a1) | s1 = *(a1);
0x000f3a10 move s3, a1 | s3 = a1;
0x000f3a14 move s2, a0 | s2 = a0;
| if (s1 == 0) {
0x000f3a18 beqz s1, 0xf3d38 | goto label_4;
| }
0x000f3a1c lui v0, 0xdeed | v0 = 0xdeed0000;
0x000f3a20 lw v1, 0x6c(s1) | v1 = *((s1 + 27));
0x000f3a24 ori v0, v0, 0xbeaf | v0 |= 0xbeaf;
0x000f3a28 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (v1 != v0) {
0x000f3a2c bne v1, v0, 0xf3d14 | goto label_2;
| }
0x000f3a30 lw v0, 0x74(s1) | v0 = *((s1 + 29));
| if (v0 == 0) {
0x000f3a34 beql v0, zero, 0xf3cf0 | goto label_5;
| }
0x000f3a38 lw v0, 0x78(s1) | v0 = *((s1 + 30));
0x000f3a3c lw v0, -0x716c(gp) | v0 = *(gp);
| do {
| label_0:
0x000f3a40 lw t9, (v0) | t9 = *(v0);
0x000f3a44 addiu a0, zero, 0x98 | a0 = 0x98;
0x000f3a48 jalr t9 | t9 ();
0x000f3a4c move s0, v0 | s0 = v0;
0x000f3a50 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000f3a54 beqz v0, 0xf3d10 | goto label_3;
| }
0x000f3a58 lw t9, -0x6ea4(gp) | t9 = *((gp - 7081));
0x000f3a5c addiu a2, zero, 0x88 | a2 = 0x88;
0x000f3a60 move a1, zero | a1 = 0;
0x000f3a64 addiu a0, s0, 0xc | a0 = s0 + 0xc;
0x000f3a68 jalr t9 | t9 ();
0x000f3a6c lui v0, 0xdc43 | v0 = 0xdc43ba21;
0x000f3a70 ori v0, v0, 0xba21 |
0x000f3a74 lw gp, 0x10(sp) | gp = *(var_10h);
0x000f3a78 lw v1, (s1) | v1 = *(s1);
0x000f3a7c sw v0, (s0) | *(s0) = v0;
0x000f3a80 lui v0, 0xdeed | v0 = 0xdeedbeaf;
0x000f3a84 ori v0, v0, 0xbeaf |
0x000f3a88 sw v0, 0x80(s0) | *((s0 + 32)) = v0;
0x000f3a8c sw s2, 0x94(s0) | *((s0 + 37)) = s2;
0x000f3a90 sw s3, 4(s0) | *((s0 + 1)) = s3;
0x000f3a94 sw s1, 8(s0) | *((s0 + 2)) = s1;
| if (v1 != 0) {
0x000f3a98 beqz v1, 0xf3aa8 |
0x000f3a9c lw v0, -0x7578(gp) | v0 = *((gp - 7518));
0x000f3aa0 addiu v0, v0, -0x6d4c | v0 += -aav.0x00006d4c;
0x000f3aa4 sw v0, 0x14(s0) | *((s0 + 5)) = v0;
| }
0x000f3aa8 lw v0, 4(s1) | v0 = *((s1 + 1));
0x000f3aac lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3ab0 beqz v0, 0xf3abc |
0x000f3ab4 addiu v0, v0, -0x6d1c | v0 += -0x6d1c;
0x000f3ab8 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
| }
0x000f3abc lw v0, 8(s1) | v0 = *((s1 + 2));
0x000f3ac0 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3ac4 beqz v0, 0xf3ad0 |
0x000f3ac8 addiu v0, v0, -0x6cec | v0 += -0x6cec;
0x000f3acc sw v0, 0x1c(s0) | *((s0 + 7)) = v0;
| }
0x000f3ad0 lw v0, 0xc(s1) | v0 = *((s1 + 3));
0x000f3ad4 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3ad8 beqz v0, 0xf3ae4 |
0x000f3adc addiu v0, v0, -0x6cbc | v0 += -0x6cbc;
0x000f3ae0 sw v0, 0x20(s0) | *((s0 + 8)) = v0;
| }
0x000f3ae4 lw v0, 0x10(s1) | v0 = *((s1 + 4));
0x000f3ae8 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3aec beqz v0, 0xf3af8 |
0x000f3af0 addiu v0, v0, -0x6c5c | v0 += -aav.0x00006c5c;
0x000f3af4 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
| }
0x000f3af8 lw v0, 0x14(s1) | v0 = *((s1 + 5));
0x000f3afc lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3b00 beqz v0, 0xf3b0c |
0x000f3b04 addiu v0, v0, -0x6c2c | v0 += -aav.0x00006c2c;
0x000f3b08 sw v0, 0x28(s0) | *((s0 + 10)) = v0;
| }
0x000f3b0c lw v0, 0x18(s1) | v0 = *((s1 + 6));
0x000f3b10 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3b14 beqz v0, 0xf3b20 |
0x000f3b18 addiu v0, v0, -0x6bcc | v0 += -0x6bcc;
0x000f3b1c sw v0, 0x2c(s0) | *((s0 + 11)) = v0;
| }
0x000f3b20 lw v0, 0x1c(s1) | v0 = *((s1 + 7));
0x000f3b24 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3b28 beqz v0, 0xf3b34 |
0x000f3b2c addiu v0, v0, -0x6b6c | v0 += -0x6b6c;
0x000f3b30 sw v0, 0x30(s0) | *((s0 + 12)) = v0;
| }
0x000f3b34 lw v0, 0x20(s1) | v0 = *((s1 + 8));
0x000f3b38 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3b3c beqz v0, 0xf3b48 |
0x000f3b40 addiu v0, v0, -0x450c | v0 += -0x450c;
0x000f3b44 sw v0, 0x34(s0) | *((s0 + 13)) = v0;
| }
0x000f3b48 lw v0, 0x24(s1) | v0 = *((s1 + 9));
0x000f3b4c lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3b50 beqz v0, 0xf3b5c |
0x000f3b54 addiu v0, v0, -0x6b9c | v0 += -0x6b9c;
0x000f3b58 sw v0, 0x38(s0) | *((s0 + 14)) = v0;
| }
0x000f3b5c lw v0, 0x28(s1) | v0 = *((s1 + 10));
0x000f3b60 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3b64 beqz v0, 0xf3b70 |
0x000f3b68 addiu v0, v0, -0x6b3c | v0 += -0x6b3c;
0x000f3b6c sw v0, 0x3c(s0) | *((s0 + 15)) = v0;
| }
0x000f3b70 lw v0, 0x2c(s1) | v0 = *((s1 + 11));
0x000f3b74 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3b78 beqz v0, 0xf3b84 |
0x000f3b7c addiu v0, v0, -0x6b0c | v0 += -0x6b0c;
0x000f3b80 sw v0, 0x40(s0) | *((s0 + 16)) = v0;
| }
0x000f3b84 lw v0, 0x30(s1) | v0 = *((s1 + 12));
0x000f3b88 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3b8c beqz v0, 0xf3b98 |
0x000f3b90 addiu v0, v0, -0x6adc | v0 += -0x6adc;
0x000f3b94 sw v0, 0x44(s0) | *((s0 + 17)) = v0;
| }
0x000f3b98 lw v0, 0x34(s1) | v0 = *((s1 + 13));
0x000f3b9c lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3ba0 beqz v0, 0xf3bac |
0x000f3ba4 addiu v0, v0, -0x6aac | v0 += -aav.0x00006aac;
0x000f3ba8 sw v0, 0x48(s0) | *((s0 + 18)) = v0;
| }
0x000f3bac lw v0, 0x4c(s1) | v0 = *((s1 + 19));
0x000f3bb0 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3bb4 beqz v0, 0xf3bc0 |
0x000f3bb8 addiu v0, v0, -0x6a7c | v0 += -0x6a7c;
0x000f3bbc sw v0, 0x60(s0) | *((s0 + 24)) = v0;
| }
0x000f3bc0 lw v0, 0x50(s1) | v0 = *((s1 + 20));
0x000f3bc4 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3bc8 beqz v0, 0xf3bd4 |
0x000f3bcc addiu v0, v0, -0x6a4c | v0 += -0x6a4c;
0x000f3bd0 sw v0, 0x64(s0) | *((s0 + 25)) = v0;
| }
0x000f3bd4 lw v0, 0x54(s1) | v0 = *((s1 + 21));
0x000f3bd8 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3bdc beqz v0, 0xf3be8 |
0x000f3be0 addiu v0, v0, -0x3a3c | v0 += -0x3a3c;
0x000f3be4 sw v0, 0x68(s0) | *((s0 + 26)) = v0;
| }
0x000f3be8 lw v0, 0x58(s1) | v0 = *((s1 + 22));
0x000f3bec lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3bf0 beqz v0, 0xf3bfc |
0x000f3bf4 addiu v0, v0, -0x3ac8 | v0 += -0x3ac8;
0x000f3bf8 sw v0, 0x6c(s0) | *((s0 + 27)) = v0;
| }
0x000f3bfc lw v0, 0x5c(s1) | v0 = *((s1 + 23));
0x000f3c00 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3c04 beqz v0, 0xf3c10 |
0x000f3c08 addiu v0, v0, -0x3b54 | v0 += -0x3b54;
0x000f3c0c sw v0, 0x70(s0) | *((s0 + 28)) = v0;
| }
0x000f3c10 lw v0, 0x60(s1) | v0 = *((s1 + 24));
0x000f3c14 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3c18 beqz v0, 0xf3c24 |
0x000f3c1c addiu v0, v0, -0x6bfc | v0 += -0x6bfc;
0x000f3c20 sw v0, 0x74(s0) | *((s0 + 29)) = v0;
| }
0x000f3c24 lw v0, 0x68(s1) | v0 = *((s1 + 26));
0x000f3c28 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
| if (v0 != 0) {
0x000f3c2c beqz v0, 0xf3c38 |
0x000f3c30 addiu v0, v0, -0x6c8c | v0 += -0x6c8c;
0x000f3c34 sw v0, 0x7c(s0) | *((s0 + 31)) = v0;
| }
0x000f3c38 lw v0, -0x74f4(gp) | v0 = *(gp);
0x000f3c3c lw v1, 0x48(s1) | v1 = *((s1 + 18));
0x000f3c40 addiu v0, v0, -0x3544 | v0 += -aav.0x00003544;
0x000f3c44 sw v0, 0x58(s0) | *((s0 + 22)) = v0;
| if (v1 != 0) {
0x000f3c48 beqz v1, 0xf3c60 |
0x000f3c4c lw a0, 0x44(s1) | a0 = *((s1 + 17));
| if (v1 == a0) {
0x000f3c50 beql v1, a0, 0xf3c64 | goto label_6;
| }
0x000f3c54 sw v0, 0x5c(s0) | *((s0 + 23)) = v0;
0x000f3c58 lw v0, -0x74f4(gp) | v0 = *(gp);
0x000f3c5c addiu v0, v0, -0x35ec | v0 += -0x35ec;
| }
0x000f3c60 sw v0, 0x5c(s0) | *((s0 + 23)) = v0;
| label_6:
0x000f3c64 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
0x000f3c68 sw s4, 0xc(s0) | *((s0 + 3)) = s4;
0x000f3c6c addiu v0, v0, 0x7b24 | v0 += 0x7b24;
0x000f3c70 sw v0, 0x78(s0) | *((s0 + 30)) = v0;
0x000f3c74 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
0x000f3c78 addiu v0, v0, -0x3900 | v0 += -0x3900;
0x000f3c7c sw v0, 0x54(s0) | *((s0 + 21)) = v0;
0x000f3c80 lw v0, -0x74b0(gp) | v0 = *((gp - 7468));
0x000f3c84 addiu v0, v0, 0x3620 | v0 += 0x3620;
0x000f3c88 sw v0, 0x88(s0) | *((s0 + 34)) = v0;
0x000f3c8c lw v0, -0x74f4(gp) | v0 = *(gp);
0x000f3c90 addiu v0, v0, -0x5728 | v0 += -0x5728;
0x000f3c94 sw v0, 0x8c(s0) | *((s0 + 35)) = v0;
0x000f3c98 lw v0, (s4) | v0 = *(s4);
0x000f3c9c sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x000f3ca0 sw s0, (s4) | *(s4) = s0;
| label_1:
0x000f3ca4 lw v1, 0x98(s2) | v1 = *((s2 + 38));
0x000f3ca8 lw t9, -0x74f4(gp) | t9 = *(gp);
0x000f3cac addiu v0, s0, 0x14 | v0 = s0 + 0x14;
0x000f3cb0 ori v1, v1, 1 | v1 |= 1;
0x000f3cb4 sw v0, (s3) | *(s3) = v0;
0x000f3cb8 move a0, s2 | a0 = s2;
0x000f3cbc sw v1, 0x98(s2) | *((s2 + 38)) = v1;
0x000f3cc0 addiu t9, t9, 0x60f8 | t9 += aav.0x000060f8;
0x000f3cc4 sw v0, 0x24(s2) | *((s2 + 9)) = v0;
0x000f3cc8 bal 0xe60f8 | fcn_000e60f8 ();
0x000f3ccc lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000f3cd0 move v0, s0 | v0 = s0;
0x000f3cd4 lw s4, 0x28(sp) | s4 = *(var_28h);
0x000f3cd8 lw s3, 0x24(sp) | s3 = *(var_24h);
0x000f3cdc lw s2, 0x20(sp) | s2 = *(var_20h);
0x000f3ce0 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000f3ce4 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000f3ce8 addiu sp, sp, 0x30 |
0x000f3cec jr ra | return v0;
| label_5:
0x000f3cf0 lw v0, -0x716c(gp) | v0 = *(gp);
0x000f3cf4 bnez v0, 0xf3a40 |
| } while (v0 != 0);
0x000f3cf8 lw v0, 0x38(s1) | v0 = *((s1 + 14));
0x000f3cfc lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (v0 != 0) {
0x000f3d00 bnez v0, 0xf3d14 | goto label_2;
| }
0x000f3d04 lw v0, 0x3c(s1) | v0 = *((s1 + 15));
0x000f3d08 lw v0, -0x716c(gp) | v0 = *(gp);
| if (v0 == 0) {
0x000f3d0c beqz v0, 0xf3a40 | goto label_0;
| }
| do {
| label_3:
0x000f3d10 lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_2:
0x000f3d14 move s0, zero | s0 = 0;
0x000f3d18 move v0, s0 | v0 = s0;
0x000f3d1c lw s4, 0x28(sp) | s4 = *(var_28h);
0x000f3d20 lw s3, 0x24(sp) | s3 = *(var_24h);
0x000f3d24 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000f3d28 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000f3d2c lw s0, 0x18(sp) | s0 = *(var_18h);
0x000f3d30 addiu sp, sp, 0x30 |
0x000f3d34 jr ra | return v0;
| label_4:
0x000f3d38 lw v0, -0x716c(gp) | v0 = *(gp);
0x000f3d3c lw t9, (v0) | t9 = *(v0);
0x000f3d40 addiu a0, zero, 0x98 | a0 = 0x98;
0x000f3d44 jalr t9 | t9 ();
0x000f3d48 move s0, v0 | s0 = v0;
0x000f3d4c lw gp, 0x10(sp) | gp = *(var_10h);
0x000f3d50 beqz v0, 0xf3d10 |
| } while (v0 == 0);
0x000f3d54 lw t9, -0x6ea4(gp) | t9 = *((gp - 7081));
0x000f3d58 addiu a2, zero, 0x88 | a2 = 0x88;
0x000f3d5c move a1, zero | a1 = 0;
0x000f3d60 addiu a0, s0, 0xc | a0 = s0 + 0xc;
0x000f3d64 jalr t9 | t9 ();
0x000f3d68 lw gp, 0x10(sp) | gp = *(var_10h);
0x000f3d6c lui v1, 0xdc43 | v1 = 0xdc43ba21;
0x000f3d70 ori v1, v1, 0xba21 |
0x000f3d74 lw v0, -0x74f4(gp) | v0 = *(gp);
0x000f3d78 sw v1, (s0) | *(s0) = v1;
0x000f3d7c lui v1, 0xdeed | v1 = 0xdeed0000;
0x000f3d80 addiu v0, v0, -0x36d4 | v0 += -0x36d4;
0x000f3d84 ori v1, v1, 0xbeaf | v1 |= 0xbeaf;
0x000f3d88 sw v1, 0x80(s0) | *((s0 + 32)) = v1;
0x000f3d8c sw v0, 0x5c(s0) | *((s0 + 23)) = v0;
0x000f3d90 sw v0, 0x58(s0) | *((s0 + 22)) = v0;
0x000f3d94 lw v1, -0x74b0(gp) | v1 = *((gp - 7468));
0x000f3d98 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
0x000f3d9c addiu v1, v1, 0x31a8 | v1 += aav.0x000031a8;
0x000f3da0 addiu v0, v0, 0x7a3c | v0 += 0x7a3c;
0x000f3da4 sw v1, 0x88(s0) | *((s0 + 34)) = v1;
0x000f3da8 sw v0, 0x78(s0) | *((s0 + 30)) = v0;
0x000f3dac lw v1, -0x74f4(gp) | v1 = *(gp);
0x000f3db0 lw v0, -0x7578(gp) | v0 = *((gp - 7518));
0x000f3db4 addiu v1, v1, -0x5860 | v1 += -0x5860;
0x000f3db8 addiu v0, v0, -0x3948 | v0 += -0x3948;
0x000f3dbc sw s2, 0x94(s0) | *((s0 + 37)) = s2;
0x000f3dc0 sw s3, 4(s0) | *((s0 + 1)) = s3;
0x000f3dc4 sw zero, 8(s0) | *((s0 + 2)) = 0;
0x000f3dc8 sw v1, 0x8c(s0) | *((s0 + 35)) = v1;
0x000f3dcc sw v0, 0x54(s0) | *((s0 + 21)) = v0;
0x000f3dd0 sw s2, 0x10(s0) | *((s0 + 4)) = s2;
0x000f3dd4 sw s2, (s4) | *(s4) = s2;
0x000f3dd8 b 0xf3ca4 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xf69c0 */
| #include <stdint.h>
|
; (fcn) sym.xmlSchemaValueGetAsString () | void xmlSchemaValueGetAsString () {
0x000f69c0 lui gp, 0xa |
0x000f69c4 addiu gp, gp, -0x5350 |
0x000f69c8 addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x000f69cc beqz a0, 0xf6a0c |
0x000f69d0 nop |
0x000f69d4 lw v0, (a0) | v0 = *(a0);
0x000f69d8 sltiu v1, v0, 0x2f | v1 = (v0 < 0x2f) ? 1 : 0;
0x000f69dc sll v1, v0, 2 | v1 = v0 << 2;
| if (v1 != 0) {
0x000f69e0 beqz v1, 0xf6a04 |
0x000f69e4 lw v0, -0x7fb0(gp) | v0 = *((gp - 8172));
0x000f69e8 addiu v0, v0, -0x392c | v0 += -0x392c;
0x000f69ec lwx v0, v1(v0) | __asm ("lwx v0, v1(v0)");
0x000f69f0 addu v0, v0, gp | v0 += gp;
0x000f69f4 jr v0 | v0 ();
0x000f69f8 nop |
| }
0x000f6a04 move v0, zero | v0 = 0;
0x000f6a08 jr ra | return v0;
| }
0x000f6a0c move v0, zero | v0 = 0;
0x000f6a10 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x57668 */
| #include <stdint.h>
|
; (fcn) sym.xmlSetProp () | void xmlSetProp () {
0x00057668 lui gp, 0x14 |
0x0005766c addiu gp, gp, -0x5ff8 |
0x00057670 addu gp, gp, t9 | gp += t9;
0x00057674 addiu sp, sp, -0x40 |
0x00057678 sw s2, 0x28(sp) | *(var_28h) = s2;
0x0005767c lw s2, -0x7000(gp) | s2 = *((gp - 7168));
0x00057680 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00057684 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00057688 lw v0, (s2) | v0 = *(s2);
0x0005768c sw s6, 0x38(sp) | *(var_38h) = s6;
0x00057690 sw s5, 0x34(sp) | *(var_34h) = s5;
0x00057694 sw s4, 0x30(sp) | *(var_30h) = s4;
0x00057698 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x0005769c sw s1, 0x24(sp) | *(var_24h) = s1;
0x000576a0 sw s0, 0x20(sp) | *(var_20h) = s0;
0x000576a4 sw v0, 0x1c(sp) | *(var_1ch) = v0;
| if (a0 == 0) {
0x000576a8 beql a0, zero, 0x57764 | goto label_0;
| }
0x000576ac move v0, zero | v0 = 0;
0x000576b0 move s1, a1 | s1 = a1;
| if (a1 == 0) {
0x000576b4 beqz a1, 0x57798 | goto label_1;
| }
0x000576b8 lw v1, 4(a0) | v1 = *((a0 + 1));
0x000576bc addiu v0, zero, 1 | v0 = 1;
0x000576c0 move s0, a0 | s0 = a0;
| if (v1 != v0) {
0x000576c4 bne v1, v0, 0x57798 | goto label_1;
| }
0x000576c8 lbu v1, (a1) | v1 = *(a1);
0x000576cc addiu v0, zero, 0x3a | v0 = 0x3a;
0x000576d0 move s3, a2 | s3 = a2;
| if (v1 != v0) {
0x000576d4 beq v1, v0, 0x57748 |
0x000576d8 lw t9, -0x7c2c(gp) | t9 = *(gp);
0x000576dc addiu a1, sp, 0x18 | a1 = sp + 0x18;
0x000576e0 addiu t9, t9, -0x4d48 | t9 += -0x4d48;
0x000576e4 move a0, s1 | a0 = s1;
0x000576e8 bal 0x4b2b8 | fcn_0004b2b8 ();
0x000576ec move s4, v0 | s4 = v0;
0x000576f0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000576f4 beqz v0, 0x57748 | goto label_2;
| }
0x000576f8 lw t9, -0x7fc8(gp) | t9 = *(gp);
0x000576fc lw a1, 0x18(sp) | a1 = *(var_18h);
0x00057700 jalr t9 | t9 ();
0x00057704 lw gp, 0x10(sp) | gp = *(var_10h);
0x00057708 lw a0, 0x20(s0) | a0 = *((s0 + 8));
0x0005770c move a2, v0 | a2 = v0;
0x00057710 lw t9, -0x7bb8(gp) | t9 = *(gp);
0x00057714 move a1, s0 | a1 = s0;
0x00057718 move s5, v0 | s5 = v0;
0x0005771c bal 0x5278c | sym_xmlSearchNs ();
0x00057720 move s6, v0 | s6 = v0;
0x00057724 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s5 != 0) {
0x00057728 beqz s5, 0x57740 |
0x0005772c lw v0, -0x7158(gp) | v0 = *(gp);
0x00057730 lw t9, (v0) | t9 = *(v0);
0x00057734 move a0, s5 | a0 = s5;
0x00057738 jalr t9 | t9 ();
0x0005773c lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00057740 lw t9, -0x7b44(gp) | t9 = *((gp - 7889));
| if (s6 != 0) {
0x00057744 bnez s6, 0x577a0 | goto label_3;
| }
| }
| label_2:
0x00057748 lw t9, -0x7b44(gp) | t9 = *((gp - 7889));
0x0005774c move a3, s3 | a3 = s3;
0x00057750 move a2, s1 | a2 = s1;
0x00057754 move a1, zero | a1 = 0;
0x00057758 move a0, s0 | a0 = s0;
0x0005775c bal 0x57158 | sym_xmlSetNsProp ();
0x00057760 lw gp, 0x10(sp) | gp = *(var_10h);
| do {
| label_0:
0x00057764 lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x00057768 lw v1, (s2) | v1 = *(s2);
0x0005776c lw ra, 0x3c(sp) | ra = *(var_3ch);
| if (a0 != v1) {
0x00057770 bne a0, v1, 0x577bc | goto label_4;
| }
0x00057774 lw s6, 0x38(sp) | s6 = *(var_38h);
0x00057778 lw s5, 0x34(sp) | s5 = *(var_34h);
0x0005777c lw s4, 0x30(sp) | s4 = *(var_30h);
0x00057780 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00057784 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00057788 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0005778c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00057790 addiu sp, sp, 0x40 |
0x00057794 jr ra | return v0;
| label_1:
0x00057798 move v0, zero | v0 = 0;
0x0005779c b 0x57764 |
| } while (1);
| label_3:
0x000577a0 move a3, s3 | a3 = s3;
0x000577a4 move a2, s4 | a2 = s4;
0x000577a8 move a1, s6 | a1 = s6;
0x000577ac move a0, s0 | a0 = s0;
0x000577b0 bal 0x57158 | sym_xmlSetNsProp ();
0x000577b4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000577b8 b 0x57764 | goto label_0;
| label_4:
0x000577bc lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x000577c0 jalr t9 | t9 ();
0x000577c4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x31780 */
| #include <stdint.h>
|
; (fcn) sym.xmlSplitQName () | void xmlSplitQName () {
0x00031780 lui gp, 0x16 |
0x00031784 addiu gp, gp, -0x110 |
0x00031788 addu gp, gp, t9 | gp += t9;
0x0003178c lw v0, -0x7000(gp) | v0 = *((gp - 7168));
0x00031790 addiu sp, sp, -0xc8 |
0x00031794 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00031798 lw v0, (v0) | v0 = *(v0);
0x0003179c sw gp, 0x10(sp) | *(var_10h) = gp;
0x000317a0 sw ra, 0xc4(sp) | *(var_c4h) = ra;
0x000317a4 sw fp, 0xc0(sp) | *(var_c0h) = fp;
0x000317a8 sw s7, 0xbc(sp) | *(var_bch) = s7;
0x000317ac sw s6, 0xb8(sp) | *(var_b8h) = s6;
0x000317b0 sw s5, 0xb4(sp) | *(var_b4h) = s5;
0x000317b4 sw s4, 0xb0(sp) | *(var_b0h) = s4;
0x000317b8 sw s3, 0xac(sp) | *(var_ach) = s3;
0x000317bc sw s2, 0xa8(sp) | *(var_a8h) = s2;
0x000317c0 sw s1, 0xa4(sp) | *(var_a4h) = s1;
0x000317c4 sw s0, 0xa0(sp) | *(var_a0h) = s0;
0x000317c8 sw a2, 0x18(sp) | *(var_18h) = a2;
0x000317cc sw a0, 0x20(sp) | *(var_20h) = a0;
0x000317d0 sw v0, 0x9c(sp) | *(var_9ch) = v0;
| if (a2 == 0) {
0x000317d4 beql a2, zero, 0x31868 | goto label_1;
| }
0x000317d8 move fp, zero | fp = 0;
0x000317dc lw v0, 0x18(sp) | v0 = *(var_18h);
0x000317e0 move s0, a1 | s0 = a1;
0x000317e4 sw zero, (v0) | *(v0) = 0;
| if (a1 == 0) {
0x000317e8 beqz a1, 0x31adc | goto label_11;
| }
0x000317ec lbu v0, (a1) | v0 = *(a1);
0x000317f0 addiu v1, zero, 0x3a | v1 = 0x3a;
0x000317f4 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
| if (v0 == v1) {
0x000317f8 beq v0, v1, 0x31ac8 | goto label_12;
| }
0x000317fc addiu s6, a1, 1 | s6 = a1 + 1;
0x00031800 move s5, v0 | s5 = v0;
| if (v0 == 0) {
0x00031804 beqz v0, 0x31d40 | goto label_13;
| }
0x00031808 addiu s7, sp, 0x30 | s7 = sp + 0x30;
| if (v0 == v1) {
0x0003180c beq v0, v1, 0x31d5c | goto label_14;
| }
0x00031810 move a1, zero | a1 = 0;
0x00031814 addiu v1, zero, 0x3a | v1 = 0x3a;
0x00031818 addiu a0, zero, 0x64 | a0 = 0x64;
0x0003181c b 0x31830 |
| while (s5 != 0) {
| if (s5 == v1) {
0x00031820 beq s5, v1, 0x318ac | goto label_15;
| }
0x00031824 nop |
0x00031828 lw v0, -0x6ddc(gp) | v0 = *((gp - 7031));
| if (a1 == a0) {
0x0003182c beq a1, a0, 0x31ae4 | goto label_16;
| }
0x00031830 addiu a1, a1, 1 | a1++;
0x00031834 addu v0, s7, a1 | v0 = s7 + a1;
0x00031838 addiu s6, s6, 1 | s6++;
0x0003183c sb s5, -1(v0) | *((v0 - 1)) = s5;
0x00031840 lbu s5, -1(s6) | s5 = *((s6 - 1));
0x00031844 addiu v0, zero, 0x64 | v0 = 0x64;
0x00031848 bnez s5, 0x31820 |
| }
| if (a1 == v0) {
0x0003184c beql a1, v0, 0x319f8 | goto label_17;
| }
0x00031850 lw v0, -0x6ddc(gp) | v0 = *((gp - 7031));
| label_0:
0x00031854 lw t9, -0x7fc8(gp) | t9 = *(gp);
0x00031858 move a0, s7 | a0 = s7;
0x0003185c jalr t9 | t9 ();
0x00031860 lw gp, 0x10(sp) | gp = *(var_10h);
0x00031864 move fp, v0 | fp = v0;
| label_1:
0x00031868 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x0003186c lw a0, 0x9c(sp) | a0 = *(var_9ch);
0x00031870 lw v1, (v0) | v1 = *(v0);
0x00031874 move v0, fp | v0 = fp;
| if (a0 != v1) {
0x00031878 bne a0, v1, 0x31e40 | goto label_18;
| }
0x0003187c lw ra, 0xc4(sp) | ra = *(var_c4h);
0x00031880 lw fp, 0xc0(sp) | fp = *(var_c0h);
0x00031884 lw s7, 0xbc(sp) | s7 = *(var_bch);
0x00031888 lw s6, 0xb8(sp) | s6 = *(var_b8h);
0x0003188c lw s5, 0xb4(sp) | s5 = *(var_b4h);
0x00031890 lw s4, 0xb0(sp) | s4 = *(var_b0h);
0x00031894 lw s3, 0xac(sp) | s3 = *(var_ach);
0x00031898 lw s2, 0xa8(sp) | s2 = *(var_a8h);
0x0003189c lw s1, 0xa4(sp) | s1 = *(var_a4h);
0x000318a0 lw s0, 0xa0(sp) | s0 = *(var_a0h);
0x000318a4 addiu sp, sp, 0xc8 |
0x000318a8 jr ra | return v0;
| label_15:
0x000318ac lw v0, -0x6ddc(gp) | v0 = *((gp - 7031));
| if (a1 == v0) {
0x000318b0 beq a1, v0, 0x31a2c | goto label_19;
| }
0x000318b4 lbu v0, (s6) | v0 = *(s6);
0x000318b8 lw v0, 0x18(sp) | v0 = *(var_18h);
| if (v0 == 0) {
0x000318bc beqz v0, 0x31ac0 | goto label_20;
| }
| label_7:
0x000318c0 lw t9, -0x7fc8(gp) | t9 = *(gp);
0x000318c4 move a0, s7 | a0 = s7;
0x000318c8 jalr t9 | t9 ();
0x000318cc lw gp, 0x10(sp) | gp = *(var_10h);
0x000318d0 move fp, v0 | fp = v0;
0x000318d4 lw v0, 0x18(sp) | v0 = *(var_18h);
| label_2:
0x000318d8 lbu s5, (s6) | s5 = *(s6);
0x000318dc sw fp, (v0) | *(v0) = fp;
| if (s5 == 0) {
0x000318e0 beqz s5, 0x31d20 | goto label_21;
| }
0x000318e4 addiu s1, zero, -0x21 | s1 = -0x21;
0x000318e8 and v0, s5, s1 | v0 = s5 & s1;
0x000318ec addiu v0, v0, -0x41 | v0 += -0x41;
0x000318f0 sltiu v0, v0, 0x1a | v0 = (v0 < 0x1a) ? 1 : 0;
0x000318f4 lbu s1, 1(s6) | s1 = *((s6 + 1));
| if (v0 != 0) {
0x000318f8 bnel v0, zero, 0x319a4 |
0x000318fc addiu fp, zero, 0x5f | fp = 0x5f;
0x00031900 addiu v0, zero, 0x3a | v0 = 0x3a;
| if (s5 != fp) {
0x00031904 beq s5, fp, 0x319a0 |
| if (s5 == v0) {
0x00031908 beql s5, v0, 0x319a4 | goto label_9;
| }
0x0003190c lbu s1, 1(s6) | s1 = *((s6 + 1));
0x00031910 lw t9, -0x7e88(gp) | t9 = *(gp);
0x00031914 lw a0, 0x20(sp) | a0 = *(var_20h);
0x00031918 addiu a2, sp, 0x2c | a2 = sp + 0x2c;
0x0003191c move a1, s6 | a1 = s6;
0x00031920 bal 0x28f68 | sym_xmlStringCurrentChar ();
0x00031924 move s4, v0 | s4 = v0;
0x00031928 slti v0, v0, 0x100 | v0 = (v0 < aav.0x00000100) ? 1 : 0;
0x0003192c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00031930 beqz v0, 0x31df8 | goto label_22;
| }
0x00031934 and v0, s4, s1 | v0 = s4 & s1;
0x00031938 addiu v0, v0, -0x41 | v0 += -0x41;
0x0003193c sltiu v0, v0, 0x1a | v0 = (v0 < 0x1a) ? 1 : 0;
0x00031940 lbu s1, 1(s6) | s1 = *((s6 + 1));
| if (v0 == 0) {
0x00031944 bnel v0, zero, 0x319a4 | goto label_9;
| }
0x00031948 addiu v0, s4, -0xc0 | v0 = s4 + -0xc0;
0x0003194c sltiu v0, v0, 0x17 | v0 = (v0 < 0x17) ? 1 : 0;
0x00031950 lbu s1, 1(s6) | s1 = *((s6 + 1));
| if (v0 == 0) {
0x00031954 bnel v0, zero, 0x319a4 | goto label_9;
| }
0x00031958 addiu v0, s4, -0xd8 | v0 = s4 + -0xd8;
0x0003195c sltiu v0, v0, 0x1f | v0 = (v0 < 0x1f) ? 1 : 0;
0x00031960 lbu s1, 1(s6) | s1 = *((s6 + 1));
| if (v0 == 0) {
0x00031964 bnel v0, zero, 0x319a4 | goto label_9;
| }
0x00031968 slti v0, s4, 0xf8 | v0 = (s4 < 0xf8) ? 1 : 0;
| if (v0 == 0) {
0x0003196c beql v0, zero, 0x319a4 | goto label_9;
| }
0x00031970 lbu s1, 1(s6) | s1 = *((s6 + 1));
| if (s4 == fp) {
0x00031974 beql s4, fp, 0x319a4 | goto label_9;
| }
0x00031978 lbu s1, 1(s6) | s1 = *((s6 + 1));
0x0003197c lw a2, -0x7fd4(gp) | a2 = *(gp);
| label_10:
0x00031980 lw t9, -0x7ea0(gp) | t9 = *((gp - 8104));
0x00031984 lw a0, 0x20(sp) | a0 = *(var_20h);
0x00031988 move a3, s0 | a3 = s0;
0x0003198c addiu a2, a2, 0x7a18 | a2 += aav.0x00007a18;
0x00031990 addiu t9, t9, -0x357c | t9 += -0x357c;
0x00031994 addiu a1, zero, 0xca | a1 = 0xca;
0x00031998 bal 0x2ca84 | fcn_0002ca84 ();
0x0003199c lw gp, 0x10(sp) | gp = *(var_10h);
| }
| label_8:
0x000319a0 lbu s1, 1(s6) | s1 = *((s6 + 1));
| }
| label_9:
0x000319a4 sb s5, 0x30(sp) | *(var_30h_2) = s5;
0x000319a8 addiu s6, s6, 2 | s6 += 2;
0x000319ac addiu s0, zero, 1 | s0 = 1;
| if (s1 == 0) {
0x000319b0 beqz s1, 0x319f0 | goto label_23;
| }
0x000319b4 addiu a0, zero, 0x64 | a0 = 0x64;
0x000319b8 b 0x319c8 |
| while (s1 != 0) {
| if (s0 == a0) {
0x000319bc beql s0, a0, 0x31bd8 | goto label_24;
| }
0x000319c0 lw v0, -0x6ddc(gp) | v0 = *((gp - 7031));
0x000319c4 move s6, v0 | s6 = v0;
0x000319c8 addiu s0, s0, 1 | s0++;
0x000319cc addu v1, s7, s0 | v1 = s7 + s0;
0x000319d0 addiu v0, s6, 1 | v0 = s6 + 1;
0x000319d4 sb s1, -1(v1) | *((v1 - 1)) = s1;
0x000319d8 lbu s1, -1(v0) | s1 = *((v0 - 1));
0x000319dc move s5, s0 | s5 = s0;
0x000319e0 bnez s1, 0x319bc |
| }
0x000319e4 slti v0, s0, 0x64 | v0 = (s0 < 0x64) ? 1 : 0;
| if (v0 == 0) {
0x000319e8 beql v0, zero, 0x31cc8 | goto label_25;
| }
0x000319ec lw v0, -0x6ddc(gp) | v0 = *((gp - 7031));
| label_23:
0x000319f0 move a1, s0 | a1 = s0;
0x000319f4 b 0x31854 | goto label_0;
| label_17:
0x000319f8 lw t9, (v0) | t9 = *(v0);
0x000319fc addiu a0, zero, 0xc8 | a0 = 0xc8;
0x00031a00 jalr t9 | t9 ();
0x00031a04 move fp, v0 | fp = v0;
0x00031a08 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00031a0c bnez v0, 0x31da0 | goto label_26;
| }
| do {
| label_3:
0x00031a10 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x00031a14 lw a0, 0x20(sp) | a0 = *(var_20h);
0x00031a18 move a1, zero | a1 = 0;
0x00031a1c bal 0x2807c | sym_xmlErrMemory ();
0x00031a20 move fp, zero | fp = 0;
0x00031a24 lw gp, 0x10(sp) | gp = *(var_10h);
0x00031a28 b 0x31868 | goto label_1;
| label_19:
0x00031a2c lw t9, (v0) | t9 = *(v0);
0x00031a30 addiu a0, zero, 0xc8 | a0 = 0xc8;
0x00031a34 jalr t9 | t9 ();
0x00031a38 move fp, v0 | fp = v0;
0x00031a3c lw gp, 0x10(sp) | gp = *(var_10h);
0x00031a40 beqz v0, 0x31a10 |
| } while (v0 == 0);
0x00031a44 move v1, s7 | v1 = s7;
0x00031a48 move v0, fp | v0 = fp;
0x00031a4c addiu t0, sp, 0x90 | t0 = sp + 0x90;
| do {
0x00031a50 lw a3, (v1) | a3 = *(v1);
0x00031a54 lw a2, 4(v1) | a2 = *((v1 + 1));
0x00031a58 lw a1, 8(v1) | a1 = *((v1 + 2));
0x00031a5c lw a0, 0xc(v1) | a0 = *((v1 + 3));
0x00031a60 swl a3, 3(v0) | __asm ("swl a3, 3(v0)");
0x00031a64 swr a3, (v0) | __asm ("swr a3, (v0)");
0x00031a68 swl a2, 7(v0) | __asm ("swl a2, 7(v0)");
0x00031a6c swr a2, 4(v0) | __asm ("swr a2, 4(v0)");
0x00031a70 swl a1, 0xb(v0) | __asm ("swl a1, 0xb(v0)");
0x00031a74 swr a1, 8(v0) | __asm ("swr a1, 8(v0)");
0x00031a78 swl a0, 0xf(v0) | __asm ("swl a0, 0xf(v0)");
0x00031a7c addiu v1, v1, 0x10 | v1 += 0x10;
0x00031a80 swr a0, 0xc(v0) | __asm ("swr a0, 0xc(v0)");
0x00031a84 addiu v0, v0, 0x10 | v0 += 0x10;
0x00031a88 bne v1, t0, 0x31a50 |
| } while (v1 != t0);
0x00031a8c lw v1, (v1) | v1 = *(v1);
0x00031a90 swl v1, 3(v0) | __asm ("swl v1, 3(v0)");
0x00031a94 swr v1, (v0) | __asm ("swr v1, (v0)");
0x00031a98 sb zero, 0x64(fp) | *(arg_64h) = 0;
0x00031a9c lbu v0, (s6) | v0 = *(s6);
0x00031aa0 lw v0, 0x18(sp) | v0 = *(var_18h);
| if (v0 == 0) {
0x00031aa4 bnel v0, zero, 0x318d8 | goto label_2;
| }
0x00031aa8 lw v0, -0x7158(gp) | v0 = *(gp);
| label_5:
0x00031aac lw t9, (v0) | t9 = *(v0);
0x00031ab0 move a0, fp | a0 = fp;
0x00031ab4 jalr t9 | t9 ();
0x00031ab8 lw gp, 0x10(sp) | gp = *(var_10h);
| label_6:
0x00031abc lw v0, 0x18(sp) | v0 = *(var_18h);
| label_20:
0x00031ac0 sw zero, (v0) | *(v0) = 0;
0x00031ac4 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
| label_12:
0x00031ac8 move a0, s0 | a0 = s0;
0x00031acc jalr t9 | t9 ();
0x00031ad0 move fp, v0 | fp = v0;
0x00031ad4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00031ad8 b 0x31868 | goto label_1;
| label_11:
0x00031adc move fp, zero | fp = 0;
0x00031ae0 b 0x31868 | goto label_1;
| label_16:
0x00031ae4 sw a1, 0x24(sp) | *(var_24h_2) = a1;
0x00031ae8 lw t9, (v0) | t9 = *(v0);
0x00031aec addiu a0, zero, 0xc8 | a0 = 0xc8;
0x00031af0 jalr t9 | t9 ();
0x00031af4 move fp, v0 | fp = v0;
0x00031af8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00031afc lw a1, 0x24(sp) | a1 = *(var_24h_2);
| if (v0 == 0) {
0x00031b00 beqz v0, 0x31a10 | goto label_3;
| }
0x00031b04 move v1, s7 | v1 = s7;
0x00031b08 move v0, fp | v0 = fp;
0x00031b0c addiu t1, sp, 0x90 | t1 = sp + 0x90;
| do {
0x00031b10 lw t0, (v1) | t0 = *(v1);
0x00031b14 lw a3, 4(v1) | a3 = *((v1 + 1));
0x00031b18 lw a2, 8(v1) | a2 = *((v1 + 2));
0x00031b1c lw a0, 0xc(v1) | a0 = *((v1 + 3));
0x00031b20 swl t0, 3(v0) | __asm ("swl t0, 3(v0)");
0x00031b24 swr t0, (v0) | __asm ("swr t0, (v0)");
0x00031b28 swl a3, 7(v0) | __asm ("swl a3, 7(v0)");
0x00031b2c swr a3, 4(v0) | __asm ("swr a3, 4(v0)");
0x00031b30 swl a2, 0xb(v0) | __asm ("swl a2, 0xb(v0)");
0x00031b34 swr a2, 8(v0) | __asm ("swr a2, 8(v0)");
0x00031b38 swl a0, 0xf(v0) | __asm ("swl a0, 0xf(v0)");
0x00031b3c addiu v1, v1, 0x10 | v1 += 0x10;
0x00031b40 swr a0, 0xc(v0) | __asm ("swr a0, 0xc(v0)");
0x00031b44 addiu v0, v0, 0x10 | v0 += 0x10;
0x00031b48 bne v1, t1, 0x31b10 |
| } while (v1 != t1);
0x00031b4c lw a0, (v1) | a0 = *(v1);
0x00031b50 addiu s6, s6, 1 | s6++;
0x00031b54 swl a0, 3(v0) | __asm ("swl a0, 3(v0)");
0x00031b58 swr a0, (v0) | __asm ("swr a0, (v0)");
0x00031b5c addu v0, fp, a1 | v0 = fp + a1;
0x00031b60 addiu s4, zero, 0xc8 | s4 = 0xc8;
0x00031b64 sb s5, (v0) | *(v0) = s5;
0x00031b68 lbu s5, -1(s6) | s5 = *((s6 - 1));
0x00031b6c addiu s1, zero, 0x3a | s1 = 0x3a;
0x00031b70 lw s2, -0x6e24(gp) | s2 = *(gp);
0x00031b74 addiu s3, a1, 1 | s3 = a1 + 1;
| if (s5 == 0) {
0x00031b78 beqz s5, 0x31bcc | goto label_27;
| }
| do {
0x00031b7c addiu a1, a1, 0xa | a1 += 0xa;
| if (s5 == s1) {
0x00031b80 beq s5, s1, 0x31d04 | goto label_28;
| }
0x00031b84 slt a1, a1, s4 | a1 = (a1 < s4) ? 1 : 0;
0x00031b88 move a1, s3 | a1 = s3;
| if (a1 == 0) {
0x00031b8c bnez a1, 0x31bb4 |
0x00031b90 sll s4, s4, 1 | s4 <<= 1;
0x00031b94 lw t9, (s2) | t9 = *(s2);
0x00031b98 move a1, s4 | a1 = s4;
0x00031b9c move a0, fp | a0 = fp;
0x00031ba0 jalr t9 | t9 ();
0x00031ba4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00031ba8 beqz v0, 0x31c98 | goto label_29;
| }
0x00031bac move fp, v0 | fp = v0;
0x00031bb0 move a1, s3 | a1 = s3;
| }
0x00031bb4 addu v0, fp, a1 | v0 = fp + a1;
0x00031bb8 addiu s6, s6, 1 | s6++;
0x00031bbc sb s5, (v0) | *(v0) = s5;
0x00031bc0 lbu s5, -1(s6) | s5 = *((s6 - 1));
0x00031bc4 addiu s3, a1, 1 | s3 = a1 + 1;
0x00031bc8 bnez s5, 0x31b7c |
| } while (s5 != 0);
| label_27:
0x00031bcc addu a2, fp, s3 | a2 = fp + s3;
0x00031bd0 sb zero, (a2) | *(a2) = 0;
0x00031bd4 b 0x31868 | goto label_1;
| label_24:
0x00031bd8 lw t9, (v0) | t9 = *(v0);
0x00031bdc addiu a0, zero, 0xc8 | a0 = 0xc8;
0x00031be0 jalr t9 | t9 ();
0x00031be4 move fp, v0 | fp = v0;
0x00031be8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00031bec beqz v0, 0x31a10 | goto label_3;
| }
0x00031bf0 addiu a3, sp, 0x90 | a3 = sp + 0x90;
| do {
0x00031bf4 lw a2, (s7) | a2 = *(s7);
0x00031bf8 lw a1, 4(s7) | a1 = *((s7 + 1));
0x00031bfc lw a0, 8(s7) | a0 = *((s7 + 2));
0x00031c00 lw v1, 0xc(s7) | v1 = *((s7 + 3));
0x00031c04 swl a2, 3(v0) | __asm ("swl a2, 3(v0)");
0x00031c08 swr a2, (v0) | __asm ("swr a2, (v0)");
0x00031c0c swl a1, 7(v0) | __asm ("swl a1, 7(v0)");
0x00031c10 swr a1, 4(v0) | __asm ("swr a1, 4(v0)");
0x00031c14 swl a0, 0xb(v0) | __asm ("swl a0, 0xb(v0)");
0x00031c18 swr a0, 8(v0) | __asm ("swr a0, 8(v0)");
0x00031c1c swl v1, 0xf(v0) | __asm ("swl v1, 0xf(v0)");
0x00031c20 addiu s7, s7, 0x10 | s7 += 0x10;
0x00031c24 swr v1, 0xc(v0) | __asm ("swr v1, 0xc(v0)");
0x00031c28 addiu v0, v0, 0x10 | v0 += 0x10;
0x00031c2c bne s7, a3, 0x31bf4 |
| } while (s7 != a3);
0x00031c30 lw v1, (s7) | v1 = *(s7);
0x00031c34 lw s2, -0x6e24(gp) | s2 = *(gp);
0x00031c38 swl v1, 3(v0) | __asm ("swl v1, 3(v0)");
0x00031c3c addiu s7, zero, 0xc8 | s7 = 0xc8;
0x00031c40 swr v1, (v0) | __asm ("swr v1, (v0)");
| do {
| label_4:
0x00031c44 addu v1, fp, s0 | v1 = fp + s0;
0x00031c48 addu v0, s6, s0 | v0 = s6 + s0;
0x00031c4c sb s1, (v1) | *(v1) = s1;
0x00031c50 lbu s1, -0x63(v0) | s1 = *((v0 - 99));
0x00031c54 addiu s4, s0, 1 | s4 = s0 + 1;
0x00031c58 move s5, s4 | s5 = s4;
| if (s1 == 0) {
0x00031c5c beqz s1, 0x31cf8 | goto label_30;
| }
0x00031c60 addiu s0, s0, 0xa | s0 += 0xa;
0x00031c64 slt s0, s0, s7 | s0 = (s0 < s7) ? 1 : 0;
0x00031c68 move s0, s4 | s0 = s4;
0x00031c6c bnel s0, zero, 0x31c44 |
| } while (s0 == 0);
0x00031c70 sll s7, s7, 1 | s7 <<= 1;
0x00031c74 lw t9, (s2) | t9 = *(s2);
0x00031c78 move a1, s7 | a1 = s7;
0x00031c7c move a0, fp | a0 = fp;
0x00031c80 jalr t9 | t9 ();
0x00031c84 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00031c88 beqz v0, 0x31d70 | goto label_31;
| }
0x00031c8c move fp, v0 | fp = v0;
0x00031c90 move s0, s4 | s0 = s4;
0x00031c94 b 0x31c44 | goto label_4;
| label_29:
0x00031c98 lw v0, -0x7158(gp) | v0 = *(gp);
0x00031c9c move a0, fp | a0 = fp;
0x00031ca0 lw t9, (v0) | t9 = *(v0);
0x00031ca4 move fp, zero | fp = 0;
0x00031ca8 jalr t9 | t9 ();
0x00031cac lw gp, 0x10(sp) | gp = *(var_10h);
0x00031cb0 lw a0, 0x20(sp) | a0 = *(var_20h);
0x00031cb4 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x00031cb8 move a1, zero | a1 = 0;
0x00031cbc bal 0x2807c | sym_xmlErrMemory ();
0x00031cc0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00031cc4 b 0x31868 | goto label_1;
| label_25:
0x00031cc8 lw t9, (v0) | t9 = *(v0);
0x00031ccc sll a0, s0, 1 | a0 = s0 << 1;
0x00031cd0 jalr t9 | t9 ();
0x00031cd4 move fp, v0 | fp = v0;
0x00031cd8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00031cdc beqz v0, 0x31a10 | goto label_3;
| }
0x00031ce0 lw t9, -0x6fbc(gp) | t9 = *(gp);
0x00031ce4 move a2, s5 | a2 = s5;
0x00031ce8 move a1, s7 | a1 = s7;
0x00031cec move a0, fp | a0 = fp;
0x00031cf0 jalr t9 | t9 ();
0x00031cf4 lw gp, 0x10(sp) | gp = *(var_10h);
| label_30:
0x00031cf8 addu s5, fp, s5 | s5 = fp + s5;
0x00031cfc sb zero, (s5) | *(s5) = 0;
0x00031d00 b 0x31868 | goto label_1;
| label_28:
0x00031d04 addu a2, fp, s3 | a2 = fp + s3;
0x00031d08 sb zero, (a2) | *(a2) = 0;
0x00031d0c lbu v0, (s6) | v0 = *(s6);
0x00031d10 lw v0, 0x18(sp) | v0 = *(var_18h);
| if (v0 == 0) {
0x00031d14 bnel v0, zero, 0x318d8 | goto label_2;
| }
0x00031d18 lw v0, -0x7158(gp) | v0 = *(gp);
0x00031d1c b 0x31aac | goto label_5;
| label_21:
0x00031d20 lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x00031d24 lw t9, -0x7fc8(gp) | t9 = *(gp);
0x00031d28 move a1, zero | a1 = 0;
0x00031d2c addiu a0, a0, 0x2694 | a0 += 0x2694;
0x00031d30 jalr t9 | t9 ();
0x00031d34 move fp, v0 | fp = v0;
0x00031d38 lw gp, 0x10(sp) | gp = *(var_10h);
0x00031d3c b 0x31868 | goto label_1;
| label_13:
0x00031d40 lw t9, -0x7fc8(gp) | t9 = *(gp);
0x00031d44 move a1, zero | a1 = 0;
0x00031d48 addiu a0, sp, 0x30 | a0 = sp + 0x30;
0x00031d4c jalr t9 | t9 ();
0x00031d50 move fp, v0 | fp = v0;
0x00031d54 lw gp, 0x10(sp) | gp = *(var_10h);
0x00031d58 b 0x31868 | goto label_1;
| label_14:
0x00031d5c lbu v0, 1(a1) | v0 = *((a1 + 1));
0x00031d60 move a1, zero | a1 = 0;
| if (v0 == 0) {
0x00031d64 beqz v0, 0x31abc | goto label_6;
| }
0x00031d68 addiu s7, sp, 0x30 | s7 = sp + 0x30;
0x00031d6c b 0x318c0 | goto label_7;
| label_31:
0x00031d70 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x00031d74 lw a0, 0x20(sp) | a0 = *(var_20h);
0x00031d78 move a1, zero | a1 = 0;
0x00031d7c bal 0x2807c | sym_xmlErrMemory ();
0x00031d80 lw gp, 0x10(sp) | gp = *(var_10h);
0x00031d84 move a0, fp | a0 = fp;
0x00031d88 lw v0, -0x7158(gp) | v0 = *(gp);
0x00031d8c lw t9, (v0) | t9 = *(v0);
0x00031d90 move fp, zero | fp = 0;
0x00031d94 jalr t9 | t9 ();
0x00031d98 lw gp, 0x10(sp) | gp = *(var_10h);
0x00031d9c b 0x31868 | goto label_1;
| label_26:
0x00031da0 move v0, fp | v0 = fp;
0x00031da4 addiu a3, sp, 0x90 | a3 = sp + 0x90;
| do {
0x00031da8 lw a2, (s7) | a2 = *(s7);
0x00031dac lw a1, 4(s7) | a1 = *((s7 + 1));
0x00031db0 lw a0, 8(s7) | a0 = *((s7 + 2));
0x00031db4 lw v1, 0xc(s7) | v1 = *((s7 + 3));
0x00031db8 swl a2, 3(v0) | __asm ("swl a2, 3(v0)");
0x00031dbc swr a2, (v0) | __asm ("swr a2, (v0)");
0x00031dc0 swl a1, 7(v0) | __asm ("swl a1, 7(v0)");
0x00031dc4 swr a1, 4(v0) | __asm ("swr a1, 4(v0)");
0x00031dc8 swl a0, 0xb(v0) | __asm ("swl a0, 0xb(v0)");
0x00031dcc swr a0, 8(v0) | __asm ("swr a0, 8(v0)");
0x00031dd0 swl v1, 0xf(v0) | __asm ("swl v1, 0xf(v0)");
0x00031dd4 addiu s7, s7, 0x10 | s7 += 0x10;
0x00031dd8 swr v1, 0xc(v0) | __asm ("swr v1, 0xc(v0)");
0x00031ddc addiu v0, v0, 0x10 | v0 += 0x10;
0x00031de0 bne s7, a3, 0x31da8 |
| } while (s7 != a3);
0x00031de4 lw v1, (s7) | v1 = *(s7);
0x00031de8 swl v1, 3(v0) | __asm ("swl v1, 3(v0)");
0x00031dec swr v1, (v0) | __asm ("swr v1, (v0)");
0x00031df0 sb zero, 0x64(fp) | *(arg_64h) = 0;
0x00031df4 b 0x31868 | goto label_1;
| label_22:
0x00031df8 lw a1, -0x6ee8(gp) | a1 = *((gp - 7098));
0x00031dfc lw t9, -0x7f04(gp) | t9 = *((gp - 8129));
0x00031e00 move a0, s4 | a0 = s4;
0x00031e04 jalr t9 | t9 ();
0x00031e08 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00031e0c bnez v0, 0x319a0 | goto label_8;
| }
0x00031e10 addiu v0, s4, -0x4e00 | v0 = s4 + -0x4e00;
0x00031e14 sltiu v0, v0, 0x51a6 | v0 = (v0 < 0x51a6) ? 1 : 0;
0x00031e18 lbu s1, 1(s6) | s1 = *((s6 + 1));
| if (v0 == 0) {
0x00031e1c bnel v0, zero, 0x319a4 | goto label_9;
| }
0x00031e20 addiu v0, zero, 0x3007 | v0 = 0x3007;
0x00031e24 addiu v0, s4, -0x3021 | v0 = s4 + -0x3021;
| if (s4 == v0) {
0x00031e28 beq s4, v0, 0x319a0 | goto label_8;
| }
0x00031e2c sltiu v0, v0, 9 | v0 = (v0 < 9) ? 1 : 0;
0x00031e30 lbu s1, 1(s6) | s1 = *((s6 + 1));
| if (v0 == 0) {
0x00031e34 bnel v0, zero, 0x319a4 | goto label_9;
| }
0x00031e38 lw a2, -0x7fd4(gp) | a2 = *(gp);
0x00031e3c b 0x31980 | goto label_10;
| label_18:
0x00031e40 lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x00031e44 jalr t9 | t9 ();
0x00031e48 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x4bcf0 */
| #include <stdint.h>
|
; (fcn) sym.xmlSplitQName2 () | void xmlSplitQName2 () {
0x0004bcf0 lui gp, 0x14 |
0x0004bcf4 addiu gp, gp, 0x5980 |
0x0004bcf8 addu gp, gp, t9 | gp += t9;
| if (a1 == 0) {
0x0004bcfc beqz a1, 0x4be34 | goto label_2;
| }
0x0004bd00 nop |
0x0004bd04 sw zero, (a1) | *(a1) = 0;
| if (a0 == 0) {
0x0004bd08 beqz a0, 0x4be34 | goto label_2;
| }
0x0004bd0c lbu v0, (a0) | v0 = *(a0);
0x0004bd10 addiu v1, zero, 0x3a | v1 = 0x3a;
| if (v0 == v1) {
0x0004bd14 beq v0, v1, 0x4be34 | goto label_2;
| }
0x0004bd18 nop |
| if (v0 == 0) {
0x0004bd1c beqz v0, 0x4be34 | goto label_2;
| }
0x0004bd20 nop |
0x0004bd24 addiu sp, sp, -0x38 |
0x0004bd28 addiu a2, zero, 0x3a | a2 = 0x3a;
0x0004bd2c sw gp, 0x18(sp) | *(var_18h) = gp;
0x0004bd30 sw s0, 0x28(sp) | *(var_28h) = s0;
0x0004bd34 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0004bd38 sw s2, 0x30(sp) | *(var_30h) = s2;
0x0004bd3c sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x0004bd40 move s0, zero | s0 = 0;
0x0004bd44 b 0x4bd54 |
| while (v1 != 0) {
0x0004bd48 lw t9, -0x7fc8(gp) | t9 = *(gp);
| if (v1 == a2) {
0x0004bd4c beq v1, a2, 0x4bd80 | goto label_3;
| }
0x0004bd50 move s0, v0 | s0 = v0;
0x0004bd54 addiu v0, s0, 1 | v0 = s0 + 1;
0x0004bd58 lbux v1, v0(a0) | __asm ("lbux v1, v0(a0)");
0x0004bd5c bnez v1, 0x4bd48 |
| }
0x0004bd60 nop |
| label_0:
0x0004bd64 move v0, zero | v0 = 0;
| do {
| label_1:
0x0004bd68 lw ra, 0x34(sp) | ra = *(var_34h);
0x0004bd6c lw s2, 0x30(sp) | s2 = *(var_30h);
0x0004bd70 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x0004bd74 lw s0, 0x28(sp) | s0 = *(var_28h);
0x0004bd78 addiu sp, sp, 0x38 |
0x0004bd7c jr ra | return v0;
| label_3:
0x0004bd80 move s2, a1 | s2 = a1;
0x0004bd84 move a1, v0 | a1 = v0;
0x0004bd88 move s1, a0 | s1 = a0;
0x0004bd8c jalr t9 | t9 ();
0x0004bd90 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004bd94 sw v0, (s2) | *(s2) = v0;
| if (v0 == 0) {
0x0004bd98 beqz v0, 0x4be04 | goto label_4;
| }
0x0004bd9c lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x0004bda0 addiu s0, s0, 2 | s0 += 2;
0x0004bda4 addu a0, s1, s0 | a0 = s1 + s0;
0x0004bda8 jalr t9 | t9 ();
0x0004bdac lw gp, 0x18(sp) | gp = *(var_18h);
0x0004bdb0 bnez v0, 0x4bd68 |
| } while (v0 != 0);
0x0004bdb4 lw v1, -0x7f94(gp) | v1 = *((gp - 8165));
0x0004bdb8 lw t9, -0x6db8(gp) | t9 = *((gp - 7022));
0x0004bdbc addiu v1, v1, -0x6990 | v1 += -0x6990;
0x0004bdc0 addiu a0, zero, 2 | a0 = 2;
0x0004bdc4 sw v0, 0x24(sp) | *(var_24h) = v0;
0x0004bdc8 sw v1, 0x10(sp) | *(var_10h) = v1;
0x0004bdcc move a3, zero | a3 = 0;
0x0004bdd0 move a2, zero | a2 = 0;
0x0004bdd4 addiu a1, zero, 2 | a1 = 2;
0x0004bdd8 jalr t9 | t9 ();
0x0004bddc lw a0, (s2) | a0 = *(s2);
0x0004bde0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 == 0) {
0x0004bde4 beqz a0, 0x4bd64 | goto label_0;
| }
0x0004bde8 lw v1, -0x7158(gp) | v1 = *(gp);
0x0004bdec lw t9, (v1) | t9 = *(v1);
0x0004bdf0 jalr t9 | t9 ();
0x0004bdf4 nop |
0x0004bdf8 sw zero, (s2) | *(s2) = 0;
0x0004bdfc lw v0, 0x24(sp) | v0 = *(var_24h);
0x0004be00 b 0x4bd68 | goto label_1;
| label_4:
0x0004be04 lw v1, -0x7f94(gp) | v1 = *((gp - 8165));
0x0004be08 lw t9, -0x6db8(gp) | t9 = *((gp - 7022));
0x0004be0c addiu v1, v1, -0x6990 | v1 += -0x6990;
0x0004be10 sw v0, 0x24(sp) | *(var_24h) = v0;
0x0004be14 sw v1, 0x10(sp) | *(var_10h) = v1;
0x0004be18 move a3, zero | a3 = 0;
0x0004be1c move a2, zero | a2 = 0;
0x0004be20 addiu a1, zero, 2 | a1 = 2;
0x0004be24 addiu a0, zero, 2 | a0 = 2;
0x0004be28 jalr t9 | t9 ();
0x0004be2c lw v0, 0x24(sp) | v0 = *(var_24h);
0x0004be30 b 0x4bd68 | goto label_1;
| label_2:
0x0004be34 move v0, zero | v0 = 0;
0x0004be38 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x4be3c */
| #include <stdint.h>
|
; (fcn) sym.xmlSplitQName3 () | void xmlSplitQName3 () {
0x0004be3c lui gp, 0x14 |
0x0004be40 addiu gp, gp, 0x5834 |
0x0004be44 addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x0004be48 beqz a0, 0x4be74 |
0x0004be4c nop |
| if (a1 == 0) {
0x0004be50 beqz a1, 0x4be74 | goto label_0;
| }
0x0004be54 nop |
0x0004be58 lbu v1, (a0) | v1 = *(a0);
0x0004be5c addiu v0, zero, 0x3a | v0 = 0x3a;
0x0004be60 lw t9, -0x7c2c(gp) | t9 = *(gp);
| if (v1 == v0) {
0x0004be64 beq v1, v0, 0x4be74 | goto label_0;
| }
0x0004be68 addiu t9, t9, -0x4d48 | t9 += -0x4d48;
0x0004be6c b 0x4b2b8 | void (*0x4b2b8)() ();
0x0004be70 nop |
| }
| label_0:
0x0004be74 move v0, zero | v0 = 0;
0x0004be78 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x4be3c */
| #include <stdint.h>
|
; (fcn) sym.xmlSplitQName3 () | void xmlSplitQName3 () {
0x0004be3c lui gp, 0x14 |
0x0004be40 addiu gp, gp, 0x5834 |
0x0004be44 addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x0004be48 beqz a0, 0x4be74 |
0x0004be4c nop |
| if (a1 == 0) {
0x0004be50 beqz a1, 0x4be74 | goto label_0;
| }
0x0004be54 nop |
0x0004be58 lbu v1, (a0) | v1 = *(a0);
0x0004be5c addiu v0, zero, 0x3a | v0 = 0x3a;
0x0004be60 lw t9, -0x7c2c(gp) | t9 = *(gp);
| if (v1 == v0) {
0x0004be64 beq v1, v0, 0x4be74 | goto label_0;
| }
0x0004be68 addiu t9, t9, -0x4d48 | t9 += -0x4d48;
0x0004be6c b 0x4b2b8 | void (*0x4b2b8)() ();
0x0004be70 nop |
| }
| label_0:
0x0004be74 move v0, zero | v0 = 0;
0x0004be78 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb7e60 */
| #include <stdint.h>
|
; (fcn) sym.xmlStrEqual () | void xmlStrEqual () {
| if (a0 == a1) {
0x000b7e60 beq a0, a1, 0xb7ea0 | goto label_0;
| }
0x000b7e64 nop |
0x000b7e68 move v0, zero | v0 = 0;
| if (a0 == 0) {
0x000b7e6c beqz a0, 0xb7ea8 | goto label_1;
| }
0x000b7e70 addiu a0, a0, 1 | a0++;
| if (a1 == 0) {
0x000b7e74 bnel a1, zero, 0xb7e88 | goto label_2;
| }
0x000b7e78 b 0xb7ea8 | goto label_1;
0x000b7e7c nop |
| do {
0x000b7e80 addiu a0, a0, 1 | a0++;
| if (v0 == 0) {
0x000b7e84 beqz v0, 0xb7ea0 | goto label_0;
| }
| label_2:
0x000b7e88 lbu v1, (a1) | v1 = *(a1);
0x000b7e8c lbu v0, -1(a0) | v0 = *((a0 - 1));
0x000b7e90 addiu a1, a1, 1 | a1++;
0x000b7e94 beq v0, v1, 0xb7e80 |
| } while (v0 == v1);
0x000b7e98 move v0, zero | v0 = 0;
0x000b7e9c jr ra | return v0;
| label_0:
0x000b7ea0 addiu v0, zero, 1 | v0 = 1;
0x000b7ea4 jr ra | return v0;
| label_1:
0x000b7ea8 jr ra | return v0;
0x000b7eac nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb7eb0 */
| #include <stdint.h>
|
; (fcn) sym.xmlStrQEqual () | void xmlStrQEqual () {
| if (a0 == 0) {
0x000b7eb0 beqz a0, 0xb7f34 | goto label_1;
| }
0x000b7eb4 nop |
| if (a1 == 0) {
0x000b7eb8 beqz a1, 0xb7ef4 | goto label_0;
| }
0x000b7ebc nop |
| if (a2 == 0) {
0x000b7ec0 beqz a2, 0xb7ef4 | goto label_0;
| }
0x000b7ec4 nop |
0x000b7ec8 lbu v0, (a0) | v0 = *(a0);
0x000b7ecc b 0xb7ee8 |
| while (v1 == v0) {
0x000b7ed0 addiu v1, a2, 1 | v1 = a2 + 1;
| if (v0 == 0) {
0x000b7ed4 beqz v0, 0xb7efc | goto label_2;
| }
0x000b7ed8 lbu v0, (a0) | v0 = *(a0);
| if (v0 == 0) {
0x000b7edc beql v0, zero, 0xb7f00 | goto label_3;
| }
0x000b7ee0 lbu v1, (v1) | v1 = *(v1);
0x000b7ee4 move a2, v1 | a2 = v1;
0x000b7ee8 lbu v1, (a2) | v1 = *(a2);
0x000b7eec addiu a0, a0, 1 | a0++;
0x000b7ef0 beq v1, v0, 0xb7ed0 |
| }
| do {
| label_0:
0x000b7ef4 move v0, zero | v0 = 0;
0x000b7ef8 jr ra | return v0;
| label_2:
0x000b7efc lbu v1, (v1) | v1 = *(v1);
| label_3:
0x000b7f00 addiu v0, zero, 0x3a | v0 = 0x3a;
0x000b7f04 addiu a2, a2, 2 | a2 += 2;
0x000b7f08 bne v1, v0, 0xb7ef4 |
| } while (v1 != v0);
0x000b7f0c addiu a1, a1, 1 | a1++;
0x000b7f10 b 0xb7f1c |
| while (v0 == v1) {
0x000b7f14 addiu a1, a1, 1 | a1++;
| if (v0 == 0) {
0x000b7f18 beqz v0, 0xb7f74 | goto label_4;
| }
0x000b7f1c lbu v1, (a2) | v1 = *(a2);
0x000b7f20 lbu v0, -1(a1) | v0 = *((a1 - 1));
0x000b7f24 addiu a2, a2, 1 | a2++;
0x000b7f28 beq v0, v1, 0xb7f14 |
| }
0x000b7f2c move v0, zero | v0 = 0;
0x000b7f30 jr ra | return v0;
| if (a1 == a2) {
| label_1:
0x000b7f34 beq a1, a2, 0xb7f74 | goto label_4;
| }
0x000b7f38 nop |
| if (a1 == 0) {
0x000b7f3c beqz a1, 0xb7ef4 | goto label_0;
| }
0x000b7f40 nop |
0x000b7f44 addiu a1, a1, 1 | a1++;
| if (a2 == 0) {
0x000b7f48 bnel a2, zero, 0xb7f5c | goto label_5;
| }
0x000b7f4c b 0xb7ef4 | goto label_0;
0x000b7f50 nop |
| do {
0x000b7f54 addiu a1, a1, 1 | a1++;
| if (v0 == 0) {
0x000b7f58 beqz v0, 0xb7f74 | goto label_4;
| }
| label_5:
0x000b7f5c lbu v1, (a2) | v1 = *(a2);
0x000b7f60 lbu v0, -1(a1) | v0 = *((a1 - 1));
0x000b7f64 addiu a2, a2, 1 | a2++;
0x000b7f68 beq v0, v1, 0xb7f54 |
| } while (v0 == v1);
0x000b7f6c b 0xb7ef4 | goto label_0;
0x000b7f70 nop |
| label_4:
0x000b7f74 addiu v0, zero, 1 | v0 = 1;
0x000b7f78 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb8220 */
| #include <stdint.h>
|
; (fcn) sym.xmlStrcasestr () | void xmlStrcasestr () {
0x000b8220 lui gp, 0xe |
0x000b8224 addiu gp, gp, -0x6bb0 |
0x000b8228 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x000b822c beqz a0, 0xb82d8 | goto label_1;
| }
0x000b8230 nop |
0x000b8234 move t4, a1 | t4 = a1;
| if (a1 == 0) {
0x000b8238 beqz a1, 0xb82e0 | goto label_2;
| }
0x000b823c addiu sp, sp, -0x20 |
0x000b8240 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
0x000b8244 move t1, a0 | t1 = a0;
0x000b8248 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000b824c sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x000b8250 addiu t9, t9, 0x7b00 | t9 += 0x7b00;
0x000b8254 move a0, a1 | a0 = a1;
0x000b8258 bal 0xb7b00 | fcn_000b7b00 ();
0x000b825c move t5, v0 | t5 = v0;
0x000b8260 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000b8264 beqz v0, 0xb82b8 | goto label_3;
| }
0x000b8268 lbu v1, (t1) | v1 = *(t1);
0x000b826c lw t2, -0x7f94(gp) | t2 = *((gp - 8165));
| if (v1 == 0) {
0x000b8270 beqz v1, 0xb82c8 | goto label_4;
| }
0x000b8274 lbu t3, (a1) | t3 = *(a1);
0x000b8278 addiu t2, t2, 0x3820 | t2 += 0x3820;
0x000b827c lw t9, -0x7b04(gp) | t9 = *((gp - 7873));
0x000b8280 lbux t3, t3(t2) | __asm ("lbux t3, t3(t2)");
0x000b8284 b 0xb8294 |
| while (v1 == t3) {
| label_0:
0x000b8288 lbu v1, (t1) | v1 = *(t1);
0x000b828c lw ra, 0x1c(sp) | ra = *(var_1ch);
| if (v1 == 0) {
0x000b8290 beqz v1, 0xb82cc | goto label_5;
| }
0x000b8294 lbux v1, v1(t2) | __asm ("lbux v1, v1(t2)");
0x000b8298 addiu t1, t1, 1 | t1++;
0x000b829c bnel v1, t3, 0xb8288 |
| }
0x000b82a0 move a0, t1 | a0 = t1;
0x000b82a4 move a2, t5 | a2 = t5;
0x000b82a8 move a1, t4 | a1 = t4;
0x000b82ac bal 0xb8044 | sym_xmlStrncasecmp ();
0x000b82b0 addiu t1, t1, 1 | t1++;
| if (v0 == 0) {
0x000b82b4 bnel v0, zero, 0xb8288 | goto label_0;
| }
| label_3:
0x000b82b8 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x000b82bc move v0, t1 | v0 = t1;
0x000b82c0 addiu sp, sp, 0x20 |
0x000b82c4 jr ra | return v0;
| label_4:
0x000b82c8 lw ra, 0x1c(sp) | ra = *(var_1ch);
| label_5:
0x000b82cc move v0, zero | v0 = 0;
0x000b82d0 addiu sp, sp, 0x20 |
0x000b82d4 jr ra | return v0;
| label_1:
0x000b82d8 move v0, zero | v0 = 0;
0x000b82dc jr ra | return v0;
| label_2:
0x000b82e0 move v0, zero | v0 = 0;
0x000b82e4 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x1295c4 */
| #include <stdint.h>
|
; (fcn) sym.xmlStreamPop () | void xmlStreamPop () {
0x001295c4 addiu a3, zero, -1 | a3 = -1;
| if (a0 == 0) {
0x001295c8 beqz a0, 0x129654 | goto label_1;
| }
0x001295cc lw v0, 0x10(a0) | v0 = *((a0 + 4));
| label_0:
0x001295d0 lw v1, 0x1c(a0) | v1 = *((a0 + 7));
| if (v1 != v0) {
0x001295d4 beql v1, v0, 0x1295dc |
0x001295d8 sw a3, 0x1c(a0) | *((a0 + 7)) = a3;
| }
| if (v0 != 0) {
0x001295dc beql v0, zero, 0x1295f0 |
0x001295e0 lw v0, 8(a0) | v0 = *((a0 + 2));
0x001295e4 addiu v0, v0, -1 | v0 += -1;
0x001295e8 sw v0, 0x10(a0) | *((a0 + 4)) = v0;
0x001295ec lw v0, 8(a0) | v0 = *((a0 + 2));
| }
0x001295f0 addiu v0, v0, -1 | v0 += -1;
0x001295f4 sll t0, v0, 3 | t0 = v0 << 3;
| if (v0 < 0) {
0x001295f8 bltz v0, 0x129640 | goto label_2;
| }
0x001295fc lw a1, 0x14(a0) | a1 = *((a0 + 5));
0x00129600 addu v1, a1, t0 | v1 = a1 + t0;
0x00129604 lw a2, 0x10(a0) | a2 = *((a0 + 4));
0x00129608 lw v1, 4(v1) | v1 = *((v1 + 1));
0x0012960c slt v1, a2, v1 | v1 = (a2 < v1) ? 1 : 0;
| if (v1 == 0) {
0x00129610 beql v1, zero, 0x129644 | goto label_3;
| }
0x00129614 lw a0, (a0) | a0 = *(a0);
0x00129618 addiu t0, t0, 8 | t0 += 8;
0x0012961c addu a1, a1, t0 | a1 += t0;
0x00129620 sw v0, 8(a0) | *((a0 + 2)) = v0;
| do {
0x00129624 addiu v0, v0, -1 | v0 += -1;
0x00129628 addiu a1, a1, -8 | a1 += -8;
| if (v0 == a3) {
0x0012962c beq v0, a3, 0x129640 | goto label_2;
| }
0x00129630 lw v1, -4(a1) | v1 = *((a1 - 1));
0x00129634 slt v1, a2, v1 | v1 = (a2 < v1) ? 1 : 0;
0x00129638 sw v0, 8(a0) | *((a0 + 2)) = v0;
0x0012963c bnel v1, zero, 0x129624 |
| } while (v1 == 0);
| label_2:
0x00129640 lw a0, (a0) | a0 = *(a0);
| label_3:
0x00129644 lw v0, 0x10(a0) | v0 = *((a0 + 4));
| if (a0 == 0) {
0x00129648 bnel a0, zero, 0x1295d0 | goto label_0;
| }
0x0012964c move v0, zero | v0 = 0;
0x00129650 jr ra | return v0;
| label_1:
0x00129654 addiu v0, zero, -1 | v0 = -1;
0x00129658 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x53c08 */
| #include <stdint.h>
|
; (fcn) sym.xmlStringGetNodeList () | void xmlStringGetNodeList () {
| label_10:
0x00053c08 lui gp, 0x14 |
0x00053c0c addiu gp, gp, -0x2598 |
0x00053c10 addu gp, gp, t9 | gp += t9;
0x00053c14 addiu sp, sp, -0x68 |
0x00053c18 sw s4, 0x50(sp) | *(var_50h) = s4;
0x00053c1c lw s4, -0x7000(gp) | s4 = *((gp - 7168));
0x00053c20 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00053c24 sw ra, 0x64(sp) | *(var_64h) = ra;
0x00053c28 lw v0, (s4) | v0 = *(s4);
0x00053c2c sw fp, 0x60(sp) | *(var_60h) = fp;
0x00053c30 sw s7, 0x5c(sp) | *(var_5ch) = s7;
0x00053c34 sw s6, 0x58(sp) | *(var_58h) = s6;
0x00053c38 sw s5, 0x54(sp) | *(var_54h) = s5;
0x00053c3c sw s3, 0x4c(sp) | *(var_4ch) = s3;
0x00053c40 sw s2, 0x48(sp) | *(var_48h) = s2;
0x00053c44 sw s1, 0x44(sp) | *(var_44h) = s1;
0x00053c48 sw s0, 0x40(sp) | *(var_40h) = s0;
0x00053c4c sw v0, 0x3c(sp) | *(var_3ch) = v0;
0x00053c50 lw t9, -0x6f2c(gp) | t9 = *((gp - 7115));
| if (a1 == 0) {
0x00053c54 beqz a1, 0x53fe4 | goto label_12;
| }
0x00053c58 move s3, a0 | s3 = a0;
0x00053c5c move a0, zero | a0 = 0;
0x00053c60 move fp, a1 | fp = a1;
0x00053c64 jalr t9 | t9 ();
0x00053c68 move s1, v0 | s1 = v0;
0x00053c6c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00053c70 beqz v0, 0x53fe4 | goto label_12;
| }
0x00053c74 lw t9, -0x7078(gp) | t9 = *(gp);
0x00053c78 addiu a1, zero, 4 | a1 = 4;
0x00053c7c move a0, v0 | a0 = v0;
0x00053c80 jalr t9 | t9 ();
0x00053c84 lw gp, 0x18(sp) | gp = *(var_18h);
0x00053c88 move s0, fp | s0 = fp;
0x00053c8c move s2, zero | s2 = 0;
0x00053c90 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x00053c94 lw s7, -0x7f94(gp) | s7 = *((gp - 8165));
0x00053c98 lw s6, -0x7f94(gp) | s6 = *((gp - 8165));
0x00053c9c sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x00053ca0 addiu v0, s7, -0x67bc | v0 = s7 + -aav.0x000067bc;
0x00053ca4 move s5, zero | s5 = 0;
0x00053ca8 addiu s6, s6, -0x6794 | s6 += -0x6794;
0x00053cac sw v0, 0x28(sp) | *(var_28h_2) = v0;
| label_1:
0x00053cb0 lbu v0, (s0) | v0 = *(s0);
| if (v0 == 0) {
0x00053cb4 beqz v0, 0x53cd8 | goto label_13;
| }
0x00053cb8 nop |
0x00053cbc addiu a0, zero, 0x26 | a0 = 0x26;
| if (v0 == a0) {
| do {
0x00053cc0 beq v0, a0, 0x53d5c | goto label_14;
| }
0x00053cc4 nop |
0x00053cc8 addiu s0, s0, 1 | s0++;
0x00053ccc lbu v0, (s0) | v0 = *(s0);
0x00053cd0 bnez v0, 0x53cc0 |
| } while (v0 != 0);
0x00053cd4 nop |
| if (s0 == fp) {
| label_13:
0x00053cd8 beq s0, fp, 0x54098 | goto label_15;
| }
0x00053cdc nop |
| label_9:
0x00053ce0 lw t9, -0x6fe4(gp) | t9 = *((gp - 7161));
0x00053ce4 subu a2, s0, fp | __asm ("subu a2, s0, fp");
0x00053ce8 move a1, fp | a1 = fp;
0x00053cec move a0, s1 | a0 = s1;
0x00053cf0 jalr t9 | t9 ();
0x00053cf4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00053cf8 lw t9, -0x70f0(gp) | t9 = *(gp);
0x00053cfc move a0, s1 | a0 = s1;
0x00053d00 jalr t9 | t9 ();
0x00053d04 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00053d08 beqz v0, 0x540b0 | goto label_16;
| }
| do {
| label_0:
0x00053d0c lw t9, -0x70e8(gp) | t9 = *(gp);
| label_8:
0x00053d10 move a0, s1 | a0 = s1;
0x00053d14 jalr t9 | t9 ();
0x00053d18 lw gp, 0x18(sp) | gp = *(var_18h);
| label_4:
0x00053d1c lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x00053d20 lw v1, (s4) | v1 = *(s4);
0x00053d24 move v0, s5 | v0 = s5;
| if (a0 != v1) {
0x00053d28 bne a0, v1, 0x541bc | goto label_17;
| }
0x00053d2c lw ra, 0x64(sp) | ra = *(var_64h);
0x00053d30 lw fp, 0x60(sp) | fp = *(var_60h);
0x00053d34 lw s7, 0x5c(sp) | s7 = *(var_5ch);
0x00053d38 lw s6, 0x58(sp) | s6 = *(var_58h);
0x00053d3c lw s5, 0x54(sp) | s5 = *(var_54h);
0x00053d40 lw s4, 0x50(sp) | s4 = *(var_50h);
0x00053d44 lw s3, 0x4c(sp) | s3 = *(var_4ch);
0x00053d48 lw s2, 0x48(sp) | s2 = *(var_48h);
0x00053d4c lw s1, 0x44(sp) | s1 = *(var_44h);
0x00053d50 lw s0, 0x40(sp) | s0 = *(var_40h);
0x00053d54 addiu sp, sp, 0x68 |
0x00053d58 jr ra | return v0;
| label_14:
0x00053d5c lw t9, -0x6fe4(gp) | t9 = *((gp - 7161));
| if (s0 == fp) {
0x00053d60 beq s0, fp, 0x53d7c | goto label_18;
| }
0x00053d64 subu a2, s0, fp | __asm ("subu a2, s0, fp");
0x00053d68 move a1, fp | a1 = fp;
0x00053d6c move a0, s1 | a0 = s1;
0x00053d70 jalr t9 | t9 ();
0x00053d74 lw gp, 0x18(sp) | gp = *(var_18h);
0x00053d78 bnez v0, 0x53d0c |
| } while (v0 != 0);
| label_18:
0x00053d7c lbu v0, 1(s0) | v0 = *((s0 + 1));
0x00053d80 addiu v1, zero, 0x23 | v1 = 0x23;
| if (v0 == v1) {
0x00053d84 beql v0, v1, 0x53eac | goto label_19;
| }
0x00053d88 lbu v0, 2(s0) | v0 = *((s0 + 2));
0x00053d8c addiu a0, s0, 1 | a0 = s0 + 1;
| if (v0 == 0) {
0x00053d90 beqz v0, 0x53dc0 | goto label_20;
| }
0x00053d94 addiu v1, zero, 0x3b | v1 = 0x3b;
0x00053d98 move fp, a0 | fp = a0;
| if (v0 == v1) {
0x00053d9c beq v0, v1, 0x53ea0 | goto label_21;
| }
0x00053da0 addiu a1, zero, 0x3b | a1 = 0x3b;
0x00053da4 b 0x53db0 |
| while (v0 != 0) {
| if (v0 == a1) {
0x00053da8 beq v0, a1, 0x53de8 | goto label_22;
| }
0x00053dac nop |
0x00053db0 addiu fp, fp, 1 | fp++;
0x00053db4 lbu v0, (fp) | v0 = *(fp);
0x00053db8 bnez v0, 0x53da8 |
| }
0x00053dbc nop |
| label_20:
0x00053dc0 lw a3, -0x7f94(gp) | a3 = *((gp - 8165));
0x00053dc4 lw t9, -0x6db8(gp) | t9 = *((gp - 7022));
0x00053dc8 sw a0, 0x10(sp) | *(var_10h) = a0;
0x00053dcc addiu a3, a3, -0x6770 | a3 += -0x6770;
0x00053dd0 move a2, s3 | a2 = s3;
0x00053dd4 addiu a1, zero, 0x516 | a1 = 0x516;
0x00053dd8 addiu a0, zero, 2 | a0 = 2;
0x00053ddc jalr t9 | t9 ();
0x00053de0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00053de4 b 0x53d0c | goto label_0;
| label_22:
0x00053de8 lw t9, 0x24(sp) | t9 = *(var_24h_2);
| if (a0 != fp) {
0x00053dec beq a0, fp, 0x53ea0 |
0x00053df0 subu a1, fp, a0 | __asm ("subu a1, fp, a0");
0x00053df4 jalr t9 | t9 ();
0x00053df8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00053dfc move a1, v0 | a1 = v0;
0x00053e00 move a0, s3 | a0 = s3;
0x00053e04 lw t9, -0x7c18(gp) | t9 = *(gp);
0x00053e08 move s0, v0 | s0 = v0;
0x00053e0c jalr t9 | t9 ();
0x00053e10 move s7, v0 | s7 = v0;
0x00053e14 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00053e18 beqz v0, 0x53e2c |
0x00053e1c lw a0, 0x30(v0) | a0 = *((v0 + 12));
0x00053e20 addiu v0, zero, 6 | v0 = 6;
0x00053e24 lw t9, -0x6e48(gp) | t9 = *(gp);
| if (a0 == v0) {
0x00053e28 beq a0, v0, 0x5407c | goto label_23;
| }
| }
0x00053e2c lw t9, -0x70f0(gp) | t9 = *(gp);
0x00053e30 move a0, s1 | a0 = s1;
0x00053e34 jalr t9 | t9 ();
0x00053e38 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00053e3c beqz v0, 0x53f90 | goto label_24;
| }
| label_3:
0x00053e40 lw t9, -0x7b98(gp) | t9 = *(gp);
0x00053e44 move a1, s0 | a1 = s0;
0x00053e48 move a0, s3 | a0 = s3;
0x00053e4c bal 0x4f9bc | sym_xmlNewReference ();
0x00053e50 move a3, v0 | a3 = v0;
0x00053e54 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00053e58 beqz v0, 0x54194 | goto label_25;
| }
| if (s7 != 0) {
0x00053e5c beqz s7, 0x53e70 |
0x00053e60 nop |
0x00053e64 lw v0, 0xc(s7) | v0 = *((s7 + 3));
| if (v0 == 0) {
0x00053e68 beql v0, zero, 0x5411c | goto label_26;
| }
0x00053e6c lw a1, 0x28(a3) | a1 = *((a3 + 10));
| }
| label_11:
0x00053e70 lw t9, -0x7b94(gp) | t9 = *((gp - 7909));
| if (s2 == 0) {
0x00053e74 beqz s2, 0x53f84 | goto label_27;
| }
0x00053e78 move a0, s2 | a0 = s2;
0x00053e7c move a1, a3 | a1 = a3;
0x00053e80 bal 0x539fc | sym_xmlAddNextSibling ();
0x00053e84 lw gp, 0x18(sp) | gp = *(var_18h);
0x00053e88 move s2, v0 | s2 = v0;
| label_2:
0x00053e8c lw v0, -0x7158(gp) | v0 = *(gp);
0x00053e90 lw t9, (v0) | t9 = *(v0);
0x00053e94 move a0, s0 | a0 = s0;
0x00053e98 jalr t9 | t9 ();
0x00053e9c lw gp, 0x18(sp) | gp = *(var_18h);
| }
| label_21:
0x00053ea0 addiu s0, fp, 1 | s0 = fp + 1;
0x00053ea4 move fp, s0 | fp = s0;
0x00053ea8 b 0x53cb0 | goto label_1;
| label_19:
0x00053eac addiu v1, zero, 0x78 | v1 = 0x78;
0x00053eb0 addiu a0, zero, 0x3b | a0 = 0x3b;
| if (v0 == v1) {
0x00053eb4 beq v0, v1, 0x53fec | goto label_28;
| }
0x00053eb8 addiu v1, s0, 2 | v1 = s0 + 2;
| if (v0 == a0) {
0x00053ebc beq v0, a0, 0x54108 | goto label_29;
| }
0x00053ec0 addiu a0, v0, -0x30 | a0 = v0 + -0x30;
0x00053ec4 andi v0, a0, 0xff | v0 = a0 & 0xff;
0x00053ec8 sltiu v0, v0, 0xa | v0 = (v0 < 0xa) ? 1 : 0;
0x00053ecc move a1, zero | a1 = 0;
0x00053ed0 addiu a2, zero, 0x3b | a2 = 0x3b;
0x00053ed4 move s0, v1 | s0 = v1;
| if (v0 != 0) {
0x00053ed8 bnez v0, 0x53ef8 | goto label_30;
| }
0x00053edc lw t9, -0x6db8(gp) | t9 = *((gp - 7022));
0x00053ee0 b 0x53f60 | goto label_31;
| do {
0x00053ee4 addiu a0, v0, -0x30 | a0 = v0 + -0x30;
0x00053ee8 andi v0, a0, 0xff | v0 = a0 & 0xff;
0x00053eec sltiu v0, v0, 0xa | v0 = (v0 < 0xa) ? 1 : 0;
0x00053ef0 move v1, s0 | v1 = s0;
| if (v0 == 0) {
0x00053ef4 beqz v0, 0x53f5c | goto label_32;
| }
| label_30:
0x00053ef8 sll v0, a1, 2 | v0 = a1 << 2;
0x00053efc addu a1, v0, a1 | a1 = v0 + a1;
0x00053f00 lbu v0, 1(v1) | v0 = *((v1 + 1));
0x00053f04 sll a1, a1, 1 | a1 <<= 1;
0x00053f08 addu a1, a0, a1 | a1 = a0 + a1;
0x00053f0c addiu s0, v1, 1 | s0 = v1 + 1;
0x00053f10 bne v0, a2, 0x53ee4 |
| } while (v0 != a2);
0x00053f14 addiu s0, v1, 2 | s0 = v1 + 2;
| label_6:
0x00053f18 lw t9, -0x7ef0(gp) | t9 = *(gp);
| if (a1 == 0) {
0x00053f1c beqz a1, 0x53f54 | goto label_33;
| }
0x00053f20 addiu fp, sp, 0x30 | fp = sp + 0x30;
0x00053f24 move a0, fp | a0 = fp;
0x00053f28 jalr t9 | t9 ();
0x00053f2c lw gp, 0x18(sp) | gp = *(var_18h);
0x00053f30 addiu v1, sp, 0x40 | v1 = sp + 0x40;
0x00053f34 addu v0, v1, v0 | v0 = v1 + v0;
0x00053f38 lw t9, -0x6e48(gp) | t9 = *(gp);
0x00053f3c move a1, fp | a1 = fp;
0x00053f40 move a0, s1 | a0 = s1;
0x00053f44 sb zero, -0x10(v0) | *((v0 - 16)) = 0;
0x00053f48 jalr t9 | t9 ();
0x00053f4c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00053f50 bnez v0, 0x53d0c | goto label_0;
| }
| label_33:
0x00053f54 move fp, s0 | fp = s0;
0x00053f58 b 0x53cb0 | goto label_1;
| label_32:
0x00053f5c lw t9, -0x6db8(gp) | t9 = *((gp - 7022));
| label_31:
0x00053f60 sw zero, 0x10(sp) | *(var_10h) = 0;
0x00053f64 move a3, s6 | a3 = s6;
0x00053f68 move a2, s3 | a2 = s3;
0x00053f6c addiu a1, zero, 0x515 | a1 = 0x515;
0x00053f70 addiu a0, zero, 2 | a0 = 2;
0x00053f74 jalr t9 | t9 ();
0x00053f78 move fp, s0 | fp = s0;
0x00053f7c lw gp, 0x18(sp) | gp = *(var_18h);
0x00053f80 b 0x53cb0 | goto label_1;
| label_27:
0x00053f84 move s2, a3 | s2 = a3;
0x00053f88 move s5, a3 | s5 = a3;
0x00053f8c b 0x53e8c | goto label_2;
| label_24:
0x00053f90 lw t9, -0x7bf8(gp) | t9 = *((gp - 7934));
0x00053f94 move a0, zero | a0 = 0;
0x00053f98 bal 0x4f210 | sym_xmlNewText ();
0x00053f9c move a1, v0 | a1 = v0;
0x00053fa0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00053fa4 beqz v0, 0x53fac |
0x00053fa8 sw s3, 0x20(v0) | *((v0 + 8)) = s3;
| }
0x00053fac lw t9, -0x7080(gp) | t9 = *((gp - 7200));
0x00053fb0 sw a1, 0x2c(sp) | *(var_2ch_2) = a1;
0x00053fb4 move a0, s1 | a0 = s1;
0x00053fb8 jalr t9 | t9 ();
0x00053fbc lw a1, 0x2c(sp) | a1 = *(var_2ch_2);
0x00053fc0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00053fc4 sw v0, 0x28(a1) | *((a1 + 10)) = v0;
| if (s2 == 0) {
0x00053fc8 beqz s2, 0x540fc | goto label_34;
| }
0x00053fcc lw t9, -0x7b94(gp) | t9 = *((gp - 7909));
0x00053fd0 move a0, s2 | a0 = s2;
0x00053fd4 bal 0x539fc | sym_xmlAddNextSibling ();
0x00053fd8 move s2, v0 | s2 = v0;
0x00053fdc lw gp, 0x18(sp) | gp = *(var_18h);
0x00053fe0 b 0x53e40 | goto label_3;
| label_12:
0x00053fe4 move s5, zero | s5 = 0;
0x00053fe8 b 0x53d1c | goto label_4;
| label_28:
0x00053fec lbu v0, 3(s0) | v0 = *((s0 + 3));
0x00053ff0 addiu fp, s0, 3 | fp = s0 + 3;
| if (v0 == a0) {
0x00053ff4 beq v0, a0, 0x541b0 | goto label_35;
| }
0x00053ff8 move a1, zero | a1 = 0;
0x00053ffc addiu a3, zero, 0x3b | a3 = 0x3b;
0x00054000 b 0x54018 |
| while (a0 == 0) {
0x00054004 addu a1, a2, a1 | a1 = a2 + a1;
| label_7:
0x00054008 lbu v0, 1(fp) | v0 = *(arg_1h);
0x0005400c addiu a0, fp, 1 | a0 = fp + 1;
| if (v0 == a3) {
0x00054010 beq v0, a3, 0x54058 | goto label_36;
| }
| label_5:
0x00054014 move fp, a0 | fp = a0;
0x00054018 addiu a2, v0, -0x30 | a2 = v0 + -0x30;
0x0005401c andi a0, a2, 0xff | a0 = a2 & 0xff;
0x00054020 sltiu a0, a0, 0xa | a0 = (a0 < 0xa) ? 1 : 0;
0x00054024 sll a1, a1, 4 | a1 <<= 4;
0x00054028 bnel a0, zero, 0x54004 |
| }
0x0005402c addiu a2, v0, -0x61 | a2 = v0 + -0x61;
0x00054030 andi a0, a2, 0xff | a0 = a2 & 0xff;
0x00054034 sltiu a0, a0, 6 | a0 = (a0 < 6) ? 1 : 0;
0x00054038 addiu v0, v0, -0x41 | v0 += -0x41;
| if (a0 == 0) {
0x0005403c beqz a0, 0x54060 | goto label_37;
| }
0x00054040 sll a1, a1, 4 | a1 <<= 4;
0x00054044 lbu v0, 1(fp) | v0 = *(arg_1h);
0x00054048 addu a1, a1, a2 | a1 += a2;
0x0005404c addiu a1, a1, 0xa | a1 += 0xa;
0x00054050 addiu a0, fp, 1 | a0 = fp + 1;
| if (v0 != a3) {
0x00054054 bne v0, a3, 0x54014 | goto label_5;
| }
| label_36:
0x00054058 addiu s0, fp, 2 | s0 = fp + 2;
0x0005405c b 0x53f18 | goto label_6;
| label_37:
0x00054060 andi a0, v0, 0xff | a0 = v0 & 0xff;
0x00054064 sltiu a0, a0, 6 | a0 = (a0 < 6) ? 1 : 0;
0x00054068 sll a1, a1, 4 | a1 <<= 4;
| if (a0 == 0) {
0x0005406c beqz a0, 0x5416c | goto label_38;
| }
0x00054070 addu a1, a1, v0 | a1 += v0;
0x00054074 addiu a1, a1, 0xa | a1 += 0xa;
0x00054078 b 0x54008 | goto label_7;
| label_23:
0x0005407c lw a1, 0x28(s7) | a1 = *((s7 + 10));
0x00054080 move a0, s1 | a0 = s1;
0x00054084 jalr t9 | t9 ();
0x00054088 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005408c beqz v0, 0x53e8c | goto label_2;
| }
0x00054090 lw t9, -0x70e8(gp) | t9 = *(gp);
0x00054094 b 0x53d10 | goto label_8;
| label_15:
0x00054098 lw t9, -0x70f0(gp) | t9 = *(gp);
| if (s5 == 0) {
0x0005409c beqz s5, 0x53ce0 | goto label_9;
| }
0x000540a0 move a0, s1 | a0 = s1;
0x000540a4 jalr t9 | t9 ();
0x000540a8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000540ac bnez v0, 0x53d0c | goto label_0;
| }
| label_16:
0x000540b0 lw t9, -0x7bf8(gp) | t9 = *((gp - 7934));
0x000540b4 move a0, zero | a0 = 0;
0x000540b8 bal 0x4f210 | sym_xmlNewText ();
0x000540bc move s0, v0 | s0 = v0;
0x000540c0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000540c4 beqz v0, 0x540cc |
0x000540c8 sw s3, 0x20(v0) | *((v0 + 8)) = s3;
| }
0x000540cc lw t9, -0x7080(gp) | t9 = *((gp - 7200));
0x000540d0 move a0, s1 | a0 = s1;
0x000540d4 jalr t9 | t9 ();
0x000540d8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000540dc sw v0, 0x28(s0) | *((s0 + 10)) = v0;
| if (s2 != 0) {
0x000540e0 beqz s2, 0x54114 |
0x000540e4 lw t9, -0x7b94(gp) | t9 = *((gp - 7909));
0x000540e8 move a1, s0 | a1 = s0;
0x000540ec move a0, s2 | a0 = s2;
0x000540f0 bal 0x539fc | sym_xmlAddNextSibling ();
0x000540f4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000540f8 b 0x53d0c | goto label_0;
| label_34:
0x000540fc move s2, a1 | s2 = a1;
0x00054100 move s5, a1 | s5 = a1;
0x00054104 b 0x53e40 | goto label_3;
| label_29:
0x00054108 addiu s0, s0, 3 | s0 += 3;
0x0005410c move fp, s0 | fp = s0;
0x00054110 b 0x53cb0 | goto label_1;
| }
0x00054114 move s5, s0 | s5 = s0;
0x00054118 b 0x53d0c | goto label_0;
| label_26:
0x0005411c addiu v0, zero, -1 | v0 = -1;
0x00054120 lw t9, -0x7b90(gp) | t9 = *(gp);
0x00054124 sw a3, 0x2c(sp) | *(var_2ch_2) = a3;
0x00054128 move a0, s3 | a0 = s3;
0x0005412c sw v0, 0xc(s7) | *((s7 + 3)) = v0;
0x00054130 bal 0x53c08 | sym_xmlStringGetNodeList ();
| goto label_10;
0x00054134 addiu a0, zero, 1 | a0 = 1;
0x00054138 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005413c sw v0, 0xc(s7) | *((s7 + 3)) = v0;
0x00054140 sw a0, 0x44(s7) | *((s7 + 17)) = a0;
0x00054144 lw a3, 0x2c(sp) | a3 = *(var_2ch_2);
| if (v0 != 0) {
0x00054148 bnez v0, 0x54158 | goto label_39;
| }
0x0005414c b 0x53e70 | goto label_11;
0x00054150 nop |
| do {
0x00054154 move v0, a0 | v0 = a0;
| label_39:
0x00054158 lw a0, 0x18(v0) | a0 = *((v0 + 6));
0x0005415c sw s7, 0x14(v0) | *((v0 + 5)) = s7;
0x00054160 bnez a0, 0x54154 |
| } while (a0 != 0);
0x00054164 sw v0, 0x10(s7) | *((s7 + 4)) = v0;
0x00054168 b 0x53e70 | goto label_11;
| label_38:
0x0005416c lw t9, -0x6db8(gp) | t9 = *((gp - 7022));
0x00054170 lw a3, 0x28(sp) | a3 = *(var_28h_2);
0x00054174 sw zero, 0x10(sp) | *(var_10h) = 0;
0x00054178 move a2, s3 | a2 = s3;
0x0005417c addiu a1, zero, 0x514 | a1 = aav.0x00000514;
0x00054180 addiu a0, zero, 2 | a0 = 2;
0x00054184 jalr t9 | t9 ();
0x00054188 move s0, fp | s0 = fp;
0x0005418c lw gp, 0x18(sp) | gp = *(var_18h);
0x00054190 b 0x53cb0 | goto label_1;
| label_25:
0x00054194 lw v0, -0x7158(gp) | v0 = *(gp);
| if (s0 == 0) {
0x00054198 beqz s0, 0x53d0c | goto label_0;
| }
0x0005419c lw t9, (v0) | t9 = *(v0);
0x000541a0 move a0, s0 | a0 = s0;
0x000541a4 jalr t9 | t9 ();
0x000541a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000541ac b 0x53d0c | goto label_0;
| label_35:
0x000541b0 addiu s0, s0, 4 | s0 += 4;
0x000541b4 move fp, s0 | fp = s0;
0x000541b8 b 0x53cb0 | goto label_1;
| label_17:
0x000541bc lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x000541c0 jalr t9 | t9 ();
0x000541c4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb8130 */
| #include <stdint.h>
|
; (fcn) sym.xmlStrstr () | void xmlStrstr () {
0x000b8130 lui gp, 0xe |
0x000b8134 addiu gp, gp, -0x6ac0 |
0x000b8138 addu gp, gp, t9 | gp += t9;
0x000b813c addiu sp, sp, -0x30 |
0x000b8140 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000b8144 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000b8148 sw s3, 0x28(sp) | *(var_28h) = s3;
0x000b814c sw s2, 0x24(sp) | *(var_24h) = s2;
0x000b8150 sw s1, 0x20(sp) | *(var_20h) = s1;
0x000b8154 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000b8158 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (a0 == 0) {
0x000b815c beqz a0, 0xb8200 | goto label_1;
| }
0x000b8160 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
| if (a1 == 0) {
0x000b8164 beqz a1, 0xb8200 | goto label_1;
| }
0x000b8168 move s0, a0 | s0 = a0;
0x000b816c addiu t9, t9, 0x7b00 | t9 += 0x7b00;
0x000b8170 move a0, a1 | a0 = a1;
0x000b8174 move s1, a1 | s1 = a1;
0x000b8178 bal 0xb7b00 | fcn_000b7b00 ();
0x000b817c move s2, v0 | s2 = v0;
0x000b8180 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000b8184 beqz v0, 0xb81e0 | goto label_2;
| }
0x000b8188 lbu v0, (s0) | v0 = *(s0);
0x000b818c lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (v0 == 0) {
0x000b8190 beqz v0, 0xb8200 | goto label_1;
| }
0x000b8194 lbu s3, (a1) | s3 = *(a1);
0x000b8198 b 0xb81ac | goto label_3;
| label_0:
0x000b819c addiu s0, s0, 1 | s0++;
| do {
0x000b81a0 lbu v0, (s0) | v0 = *(s0);
0x000b81a4 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (v0 == 0) {
0x000b81a8 beqz v0, 0xb8200 | goto label_1;
| }
| label_3:
0x000b81ac addiu s0, s0, 1 | s0++;
0x000b81b0 bnel s3, v0, 0xb81a0 |
| } while (s3 == v0);
0x000b81b4 lw t9, -0x70f8(gp) | t9 = *((gp - 7230));
0x000b81b8 move a0, s0 | a0 = s0;
0x000b81bc move a2, s2 | a2 = s2;
0x000b81c0 move a1, s1 | a1 = s1;
| if (s2 <= 0) {
0x000b81c4 blez s2, 0xb81e0 | goto label_2;
| }
0x000b81c8 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (s1 == s0) {
0x000b81cc beq s1, s0, 0xb81e4 | goto label_4;
| }
0x000b81d0 jalr t9 | t9 ();
0x000b81d4 nop |
0x000b81d8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000b81dc bnez v0, 0xb819c | goto label_0;
| }
| label_2:
0x000b81e0 lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_4:
0x000b81e4 move v0, s0 | v0 = s0;
0x000b81e8 lw s3, 0x28(sp) | s3 = *(var_28h);
0x000b81ec lw s2, 0x24(sp) | s2 = *(var_24h);
0x000b81f0 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000b81f4 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000b81f8 addiu sp, sp, 0x30 |
0x000b81fc jr ra | return v0;
| label_1:
0x000b8200 move s0, zero | s0 = 0;
0x000b8204 move v0, s0 | v0 = s0;
0x000b8208 lw s3, 0x28(sp) | s3 = *(var_28h);
0x000b820c lw s2, 0x24(sp) | s2 = *(var_24h);
0x000b8210 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000b8214 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000b8218 addiu sp, sp, 0x30 |
0x000b821c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x100fe8 */
| #include <stdint.h>
|
; (fcn) sym.xmlTextReaderReadState () | void xmlTextReaderReadState () {
| if (a0 != 0) {
0x00100fe8 beqz a0, 0x100ff8 |
0x00100fec nop |
0x00100ff0 lw v0, (a0) | v0 = *(a0);
0x00100ff4 jr ra | return v0;
| }
0x00100ff8 addiu v0, zero, -1 | v0 = -1;
0x00100ffc jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x1050a4 */
| #include <stdint.h>
|
; (fcn) sym.xmlTextReaderRelaxNGSetSchema () | void xmlTextReaderRelaxNGSetSchema () {
0x001050a4 lui gp, 9 |
0x001050a8 addiu gp, gp, -0x3a34 |
0x001050ac addu gp, gp, t9 | gp += t9;
0x001050b0 addiu sp, sp, -0x28 |
0x001050b4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x001050b8 sw ra, 0x24(sp) | *(var_24h) = ra;
0x001050bc sw s2, 0x20(sp) | *(var_20h) = s2;
0x001050c0 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x001050c4 sw s0, 0x18(sp) | *(var_18h) = s0;
0x001050c8 move s1, a1 | s1 = a1;
| if (a0 == 0) {
0x001050cc beqz a0, 0x10522c | goto label_1;
| }
0x001050d0 move s0, a0 | s0 = a0;
| if (a1 == 0) {
0x001050d4 beqz a1, 0x1051c0 | goto label_2;
| }
0x001050d8 lw s2, (a0) | s2 = *(a0);
0x001050dc addiu s2, zero, -1 | s2 = -1;
| if (s2 == 0) {
0x001050e0 bnel s2, zero, 0x105194 | goto label_0;
| }
0x001050e4 lw a0, 0x74(a0) | a0 = *((a0 + 29));
0x001050e8 lw t9, -0x7430(gp) | t9 = *((gp - 7436));
| if (a0 != 0) {
0x001050ec beqz a0, 0x105100 |
0x001050f0 bal 0x11512c | sym_xmlRelaxNGFree ();
0x001050f4 nop |
0x001050f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x001050fc sw zero, 0x74(s0) | *((s0 + 29)) = 0;
| }
0x00105100 lw a0, 0x78(s0) | a0 = *((s0 + 30));
0x00105104 lw t9, -0x7418(gp) | t9 = *(gp);
| if (a0 == 0) {
0x00105108 beqz a0, 0x105120 | goto label_3;
| }
0x0010510c lw v0, 0x7c(s0) | v0 = *((s0 + 31));
0x00105110 lw t9, -0x7434(gp) | t9 = *(gp);
0x00105114 beqz v0, 0x1051b0 |
| while (1) {
0x00105118 sw zero, 0x78(s0) | *((s0 + 30)) = 0;
0x0010511c lw t9, -0x7418(gp) | t9 = *(gp);
| label_3:
0x00105120 sw zero, 0x7c(s0) | *((s0 + 31)) = 0;
0x00105124 move a0, s1 | a0 = s1;
0x00105128 bal 0x119538 | sym_xmlRelaxNGNewValidCtxt ();
0x0010512c lw gp, 0x10(sp) | gp = *(var_10h);
0x00105130 sw v0, 0x78(s0) | *((s0 + 30)) = v0;
| if (v0 == 0) {
0x00105134 beqz v0, 0x10522c | goto label_1;
| }
0x00105138 lw v1, 0x6c(s0) | v1 = *((s0 + 27));
0x0010513c lw a2, -0x7470(gp) | a2 = *(gp);
| if (v1 != 0) {
0x00105140 beqz v1, 0x105164 |
0x00105144 lw a1, -0x7470(gp) | a1 = *(gp);
0x00105148 lw t9, -0x7414(gp) | t9 = *(gp);
0x0010514c move a3, s0 | a3 = s0;
0x00105150 addiu a2, a2, 0x3f4 | a2 += aav.0x000003f4;
0x00105154 addiu a1, a1, 0x5bc | a1 += aav.0x000005bc;
0x00105158 move a0, v0 | a0 = v0;
0x0010515c bal 0x119830 | sym_xmlRelaxNGSetValidErrors ();
0x00105160 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00105164 lw v0, 0xc0(s0) | v0 = *((s0 + 48));
0x00105168 lw t9, -0x7424(gp) | t9 = *(gp);
| if (v0 != 0) {
0x0010516c beqz v0, 0x105184 |
0x00105170 lw a1, -0x7470(gp) | a1 = *(gp);
0x00105174 lw a0, 0x78(s0) | a0 = *((s0 + 30));
0x00105178 move a2, s0 | a2 = s0;
0x0010517c addiu a1, a1, 0x7f4 | a1 += 0x7f4;
0x00105180 bal 0x119850 | sym_xmlRelaxNGSetValidStructuredErrors ();
| }
0x00105184 addiu v0, zero, 2 | v0 = 2;
0x00105188 sw zero, 0x80(s0) | *((s0 + 32)) = 0;
0x0010518c sw zero, 0x84(s0) | *((s0 + 33)) = 0;
0x00105190 sw v0, 8(s0) | *((s0 + 2)) = v0;
| label_0:
0x00105194 lw ra, 0x24(sp) | ra = *(var_24h);
0x00105198 move v0, s2 | v0 = s2;
0x0010519c lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x001051a0 lw s2, 0x20(sp) | s2 = *(var_20h);
0x001051a4 lw s0, 0x18(sp) | s0 = *(var_18h);
0x001051a8 addiu sp, sp, 0x28 |
0x001051ac jr ra | return v0;
0x001051b0 bal 0x11961c | sym_xmlRelaxNGFreeValidCtxt ();
0x001051b4 nop |
0x001051b8 lw gp, 0x10(sp) | gp = *(var_10h);
0x001051bc b 0x105118 |
| }
| label_2:
0x001051c0 lw a0, 0x74(a0) | a0 = *((a0 + 29));
0x001051c4 lw t9, -0x7430(gp) | t9 = *((gp - 7436));
| if (a0 != 0) {
0x001051c8 beqz a0, 0x1051dc |
0x001051cc bal 0x11512c | sym_xmlRelaxNGFree ();
0x001051d0 nop |
0x001051d4 lw gp, 0x10(sp) | gp = *(var_10h);
0x001051d8 sw zero, 0x74(s0) | *((s0 + 29)) = 0;
| }
0x001051dc lw a0, 0x78(s0) | a0 = *((s0 + 30));
0x001051e0 lw ra, 0x24(sp) | ra = *(var_24h);
| if (a0 == 0) {
0x001051e4 beqz a0, 0x1051fc | goto label_4;
| }
0x001051e8 lw v0, 0x7c(s0) | v0 = *((s0 + 31));
0x001051ec lw t9, -0x7434(gp) | t9 = *(gp);
| if (v0 == 0) {
0x001051f0 beqz v0, 0x10521c | goto label_5;
| }
0x001051f4 sw zero, 0x78(s0) | *((s0 + 30)) = 0;
| do {
0x001051f8 lw ra, 0x24(sp) | ra = *(var_24h);
| label_4:
0x001051fc move s2, zero | s2 = 0;
0x00105200 sw zero, 0x7c(s0) | *((s0 + 31)) = 0;
0x00105204 move v0, s2 | v0 = s2;
0x00105208 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0010520c lw s2, 0x20(sp) | s2 = *(var_20h);
0x00105210 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00105214 addiu sp, sp, 0x28 |
0x00105218 jr ra | return v0;
| label_5:
0x0010521c bal 0x11961c | sym_xmlRelaxNGFreeValidCtxt ();
0x00105220 nop |
0x00105224 sw zero, 0x78(s0) | *((s0 + 30)) = 0;
0x00105228 b 0x1051f8 |
| } while (1);
| label_1:
0x0010522c addiu s2, zero, -1 | s2 = -1;
0x00105230 b 0x105194 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x103b20 */
| #include <stdint.h>
|
; (fcn) sym.xmlTextReaderSetParserProp () | void xmlTextReaderSetParserProp () {
| if (a0 != 0) {
0x00103b20 beqz a0, 0x103ba0 |
0x00103b24 nop |
0x00103b28 lw v1, 0x14(a0) | v1 = *((a0 + 5));
0x00103b2c addiu a3, zero, 2 | a3 = 2;
| if (v1 == 0) {
0x00103b30 beqz v1, 0x103ba0 | goto label_0;
| }
0x00103b34 slti v0, a1, 3 | v0 = (a1 < 3) ? 1 : 0;
| if (a1 == a3) {
0x00103b38 beq a1, a3, 0x103bb8 | goto label_1;
| }
0x00103b3c addiu v0, zero, 3 | v0 = 3;
| if (v0 == 0) {
0x00103b40 bnez v0, 0x103b6c |
0x00103b44 addiu v0, zero, 4 | v0 = 4;
| if (a1 == v0) {
0x00103b48 beq a1, v0, 0x103bd0 | goto label_2;
| }
| if (a1 != v0) {
0x00103b4c bne a1, v0, 0x103ba0 | goto label_0;
| }
0x00103b50 nop |
| if (a2 == 0) {
0x00103b54 beql a2, zero, 0x103bb0 | goto label_3;
| }
0x00103b58 sw zero, 0x10(v1) | *((v1 + 4)) = 0;
0x00103b5c addiu v0, zero, 1 | v0 = 1;
0x00103b60 sw v0, 0x10(v1) | *((v1 + 4)) = v0;
0x00103b64 move v0, zero | v0 = 0;
0x00103b68 jr ra | return v0;
| }
0x00103b6c addiu v0, zero, 1 | v0 = 1;
| if (a1 != v0) {
0x00103b70 bne a1, v0, 0x103ba0 | goto label_0;
| }
0x00103b74 nop |
| if (a2 == 0) {
0x00103b78 beql a2, zero, 0x103ba8 | goto label_4;
| }
0x00103b7c sw zero, 0x114(v1) | *(v1) = 0;
0x00103b80 lw v0, 0x114(v1) | v0 = *(v1);
| if (v0 != 0) {
0x00103b84 bnez v0, 0x103c14 | goto label_5;
| }
0x00103b88 nop |
0x00103b8c lw v0, (a0) | v0 = *(a0);
0x00103b90 addiu v0, zero, -1 | v0 = -1;
| if (v0 == 0) {
0x00103b94 bnel v0, zero, 0x103c04 | goto label_6;
| }
0x00103b98 sw a3, 0x114(v1) | *(v1) = a3;
0x00103b9c jr ra | return v0;
| }
| label_0:
0x00103ba0 addiu v0, zero, -1 | v0 = -1;
0x00103ba4 jr ra | return v0;
| label_4:
0x00103ba8 move v0, zero | v0 = 0;
0x00103bac jr ra | return v0;
| label_3:
0x00103bb0 move v0, zero | v0 = 0;
0x00103bb4 jr ra | return v0;
| label_1:
0x00103bb8 lw a0, 0x114(v1) | a0 = *(v1);
| if (a2 != 0) {
0x00103bbc beqz a2, 0x103bec |
0x00103bc0 ori a0, a0, 4 | a0 |= 4;
0x00103bc4 sw a0, 0x114(v1) | *(v1) = a0;
0x00103bc8 move v0, zero | v0 = 0;
0x00103bcc jr ra | return v0;
| if (a2 == 0) {
| label_2:
0x00103bd0 beql a2, zero, 0x103c0c | goto label_7;
| }
0x00103bd4 sw zero, 0x68(v1) | *((v1 + 26)) = 0;
0x00103bd8 addiu a1, zero, 1 | a1 = 1;
0x00103bdc sw a1, 0x68(v1) | *((v1 + 26)) = a1;
0x00103be0 move v0, zero | v0 = 0;
0x00103be4 sw a1, 8(a0) | *((a0 + 2)) = a1;
0x00103be8 jr ra | return v0;
| }
0x00103bec andi v0, a0, 4 | v0 = a0 & 4;
0x00103bf0 addiu a0, a0, -4 | a0 += -4;
| if (v0 != 0) {
0x00103bf4 beqz v0, 0x103c04 |
0x00103bf8 sw a0, 0x114(v1) | *(v1) = a0;
0x00103bfc move v0, zero | v0 = 0;
0x00103c00 jr ra | return v0;
| }
| label_6:
0x00103c04 jr ra | return v0;
0x00103c08 nop |
| label_7:
0x00103c0c move v0, zero | v0 = 0;
0x00103c10 jr ra | return v0;
| label_5:
0x00103c14 move v0, zero | v0 = 0;
0x00103c18 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x125edc */
| #include <stdint.h>
|
; (fcn) sym.xmlTextWriterEndDTDEntity () | void xmlTextWriterEndDTDEntity () {
0x00125edc lui gp, 7 |
0x00125ee0 addiu gp, gp, -0x486c |
0x00125ee4 addu gp, gp, t9 | gp += t9;
0x00125ee8 addiu sp, sp, -0x28 |
0x00125eec sw gp, 0x10(sp) | *(var_10h) = gp;
0x00125ef0 sw ra, 0x24(sp) | *(var_24h) = ra;
0x00125ef4 sw s2, 0x20(sp) | *(var_20h) = s2;
0x00125ef8 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x00125efc sw s0, 0x18(sp) | *(var_18h) = s0;
0x00125f00 lw t9, -0x72c0(gp) | t9 = *(gp);
| if (a0 == 0) {
0x00125f04 beqz a0, 0x125f50 | goto label_0;
| }
0x00125f08 move s0, a0 | s0 = a0;
0x00125f0c lw a0, 4(a0) | a0 = *((a0 + 1));
0x00125f10 jalr t9 | t9 ();
0x00125f14 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00125f18 beqz v0, 0x125f50 | goto label_0;
| }
0x00125f1c lw t9, -0x7a34(gp) | t9 = *((gp - 7821));
0x00125f20 move a0, v0 | a0 = v0;
0x00125f24 jalr t9 | t9 ();
0x00125f28 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00125f2c beqz v0, 0x125f50 | goto label_0;
| }
0x00125f30 lw v0, 4(v0) | v0 = *((v0 + 1));
0x00125f34 addiu v1, zero, 0xe | v1 = 0xe;
0x00125f38 addiu v1, zero, 0xf | v1 = 0xf;
| if (v0 == v1) {
0x00125f3c beq v0, v1, 0x125fe8 | goto label_3;
| }
0x00125f40 addiu v1, zero, 0xd | v1 = 0xd;
| if (v0 == v1) {
0x00125f44 beq v0, v1, 0x125f70 | goto label_4;
| }
0x00125f48 move s1, zero | s1 = 0;
0x00125f4c beq v0, v1, 0x125f74 |
| while (v0 < 0) {
| label_0:
0x00125f50 lw ra, 0x24(sp) | ra = *(var_24h);
| label_2:
0x00125f54 addiu s1, zero, -1 | s1 = -1;
0x00125f58 move v0, s1 | v0 = s1;
0x00125f5c lw s2, 0x20(sp) | s2 = *(var_20h);
0x00125f60 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00125f64 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00125f68 addiu sp, sp, 0x28 |
0x00125f6c jr ra | return v0;
| label_4:
0x00125f70 move s1, zero | s1 = 0;
| label_1:
0x00125f74 lw s2, -0x796c(gp) | s2 = *((gp - 7771));
0x00125f78 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00125f7c lw a0, (s0) | a0 = *(s0);
0x00125f80 move t9, s2 | t9 = s2;
0x00125f84 addiu a1, a1, -0x411c | a1 += -0x411c;
0x00125f88 jalr t9 | t9 ();
0x00125f8c lw gp, 0x10(sp) | gp = *(var_10h);
0x00125f90 bltz v0, 0x125f50 |
| }
0x00125f94 lw v1, 0x10(s0) | v1 = *((s0 + 4));
0x00125f98 addu s1, s1, v0 | s1 += v0;
| if (v1 == 0) {
0x00125f9c beqz v1, 0x125fc0 | goto label_5;
| }
0x00125fa0 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00125fa4 lw a0, (s0) | a0 = *(s0);
0x00125fa8 move t9, s2 | t9 = s2;
0x00125fac addiu a1, a1, 0x251c | a1 += 0x251c;
0x00125fb0 jalr t9 | t9 ();
0x00125fb4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00125fb8 bltz v0, 0x125f50 | goto label_0;
| }
0x00125fbc addu s1, s1, v0 | s1 += v0;
| label_5:
0x00125fc0 lw t9, -0x72b8(gp) | t9 = *((gp - 7342));
0x00125fc4 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00125fc8 jalr t9 | t9 ();
0x00125fcc lw ra, 0x24(sp) | ra = *(var_24h);
0x00125fd0 move v0, s1 | v0 = s1;
0x00125fd4 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00125fd8 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00125fdc lw s0, 0x18(sp) | s0 = *(var_18h);
0x00125fe0 addiu sp, sp, 0x28 |
0x00125fe4 jr ra | return v0;
| label_3:
0x00125fe8 lw t9, -0x72bc(gp) | t9 = *(gp);
0x00125fec lw a0, (s0) | a0 = *(s0);
0x00125ff0 addiu a2, s0, 0x1c | a2 = s0 + 0x1c;
0x00125ff4 addiu a1, zero, 1 | a1 = 1;
0x00125ff8 jalr t9 | t9 ();
0x00125ffc move s1, v0 | s1 = v0;
0x00126000 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 >= 0) {
0x00126004 bgez v0, 0x125f74 | goto label_1;
| }
0x00126008 lw ra, 0x24(sp) | ra = *(var_24h);
0x0012600c b 0x125f54 | goto label_2;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x122db8 */
| #include <stdint.h>
|
; (fcn) sym.xmlTextWriterEndElement () | void xmlTextWriterEndElement () {
0x00122db8 lui gp, 7 |
0x00122dbc addiu gp, gp, -0x1748 |
0x00122dc0 addu gp, gp, t9 | gp += t9;
0x00122dc4 addiu sp, sp, -0x30 |
0x00122dc8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00122dcc sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00122dd0 sw s3, 0x28(sp) | *(var_28h) = s3;
0x00122dd4 sw s2, 0x24(sp) | *(var_24h) = s2;
0x00122dd8 sw s1, 0x20(sp) | *(var_20h) = s1;
0x00122ddc sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00122de0 lw t9, -0x72c0(gp) | t9 = *(gp);
| if (a0 == 0) {
0x00122de4 beqz a0, 0x122e34 | goto label_0;
| }
0x00122de8 move s0, a0 | s0 = a0;
0x00122dec lw a0, 4(a0) | a0 = *((a0 + 1));
0x00122df0 jalr t9 | t9 ();
0x00122df4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00122df8 beqz v0, 0x122f98 | goto label_7;
| }
0x00122dfc lw t9, -0x7a34(gp) | t9 = *((gp - 7821));
0x00122e00 move a0, v0 | a0 = v0;
0x00122e04 jalr t9 | t9 ();
0x00122e08 move s2, v0 | s2 = v0;
0x00122e0c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00122e10 beqz v0, 0x122f98 | goto label_7;
| }
0x00122e14 lw v0, 4(v0) | v0 = *((v0 + 1));
0x00122e18 addiu v1, zero, 2 | v1 = 2;
0x00122e1c addiu v1, zero, 3 | v1 = 3;
| if (v0 == v1) {
0x00122e20 beq v0, v1, 0x122f80 | goto label_8;
| }
0x00122e24 addiu v1, zero, 1 | v1 = 1;
| if (v0 == v1) {
0x00122e28 beq v0, v1, 0x122ee0 | goto label_9;
| }
0x00122e2c move s1, zero | s1 = 0;
0x00122e30 beq v0, v1, 0x122e58 |
| while (v0 < 0) {
| label_0:
0x00122e34 addiu s1, zero, -1 | s1 = -1;
| label_4:
0x00122e38 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00122e3c move v0, s1 | v0 = s1;
0x00122e40 lw s3, 0x28(sp) | s3 = *(var_28h);
0x00122e44 lw s2, 0x24(sp) | s2 = *(var_24h);
0x00122e48 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00122e4c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00122e50 addiu sp, sp, 0x30 |
0x00122e54 jr ra | return v0;
| label_3:
0x00122e58 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00122e5c addiu t9, t9, 0x25ac | t9 += 0x25ac;
0x00122e60 move a0, s0 | a0 = s0;
0x00122e64 bal 0x1225ac | fcn_001225ac ();
0x00122e68 lw gp, 0x10(sp) | gp = *(var_10h);
0x00122e6c bltz v0, 0x122e34 |
| }
0x00122e70 lw v1, 0x10(s0) | v1 = *((s0 + 4));
0x00122e74 addu s1, s1, v0 | s1 += v0;
| if (v1 != 0) {
0x00122e78 beqz v1, 0x122e84 |
0x00122e7c addiu v0, zero, 1 | v0 = 1;
0x00122e80 sw v0, 0x14(s0) | *((s0 + 5)) = v0;
| }
0x00122e84 lw s3, -0x796c(gp) | s3 = *((gp - 7771));
0x00122e88 lw a1, -0x7fb0(gp) | a1 = *((gp - 8172));
0x00122e8c lw a0, (s0) | a0 = *(s0);
0x00122e90 move t9, s3 | t9 = s3;
0x00122e94 addiu a1, a1, 0x34e4 | a1 += 0x34e4;
0x00122e98 jalr t9 | t9 ();
0x00122e9c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00122ea0 bltz v0, 0x122e34 | goto label_0;
| }
0x00122ea4 addu s1, s1, v0 | s1 += v0;
0x00122ea8 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x00122eac lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
| if (v0 != 0) {
0x00122eb0 bnez v0, 0x122f64 | goto label_10;
| }
| label_2:
0x00122eb4 lw t9, -0x72b8(gp) | t9 = *((gp - 7342));
| label_1:
0x00122eb8 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00122ebc jalr t9 | t9 ();
0x00122ec0 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00122ec4 move v0, s1 | v0 = s1;
0x00122ec8 lw s3, 0x28(sp) | s3 = *(var_28h);
0x00122ecc lw s2, 0x24(sp) | s2 = *(var_24h);
0x00122ed0 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00122ed4 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00122ed8 addiu sp, sp, 0x30 |
0x00122edc jr ra | return v0;
| label_9:
0x00122ee0 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x00122ee4 lw v0, 0x14(s0) | v0 = *((s0 + 5));
| if (v0 == 0) {
0x00122ee8 bnel v0, zero, 0x122fb0 | goto label_11;
| }
0x00122eec addiu v0, zero, 1 | v0 = 1;
| label_5:
0x00122ef0 sw v0, 0x14(s0) | *((s0 + 5)) = v0;
0x00122ef4 move s1, zero | s1 = 0;
| label_6:
0x00122ef8 lw s3, -0x796c(gp) | s3 = *((gp - 7771));
0x00122efc lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00122f00 lw a0, (s0) | a0 = *(s0);
0x00122f04 move t9, s3 | t9 = s3;
0x00122f08 addiu a1, a1, 0x9c8 | a1 += 0x9c8;
0x00122f0c jalr t9 | t9 ();
0x00122f10 move t9, s3 | t9 = s3;
| if (v0 < 0) {
0x00122f14 bltz v0, 0x122e34 | goto label_0;
| }
0x00122f18 lw a1, (s2) | a1 = *(s2);
0x00122f1c lw a0, (s0) | a0 = *(s0);
0x00122f20 addu s1, s1, v0 | s1 += v0;
0x00122f24 jalr t9 | t9 ();
0x00122f28 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00122f2c bltz v0, 0x122e34 | goto label_0;
| }
0x00122f30 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00122f34 lw a0, (s0) | a0 = *(s0);
0x00122f38 addiu a1, a1, -0x411c | a1 += -0x411c;
0x00122f3c move t9, s3 | t9 = s3;
0x00122f40 addu s1, s1, v0 | s1 += v0;
0x00122f44 jalr t9 | t9 ();
0x00122f48 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00122f4c bltz v0, 0x122e34 | goto label_0;
| }
0x00122f50 addu s1, s1, v0 | s1 += v0;
0x00122f54 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x00122f58 lw t9, -0x72b8(gp) | t9 = *((gp - 7342));
| if (v0 == 0) {
0x00122f5c beqz v0, 0x122eb8 | goto label_1;
| }
0x00122f60 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
| label_10:
0x00122f64 lw a0, (s0) | a0 = *(s0);
0x00122f68 move t9, s3 | t9 = s3;
0x00122f6c addiu a1, a1, 0x251c | a1 += 0x251c;
0x00122f70 jalr t9 | t9 ();
0x00122f74 addu s1, s1, v0 | s1 += v0;
0x00122f78 lw gp, 0x10(sp) | gp = *(var_10h);
0x00122f7c b 0x122eb4 | goto label_2;
| label_8:
0x00122f80 lw t9, -0x72b4(gp) | t9 = *(gp);
0x00122f84 move a0, s0 | a0 = s0;
0x00122f88 bal 0x122028 | sym_xmlTextWriterEndAttribute ();
0x00122f8c move s1, v0 | s1 = v0;
0x00122f90 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 >= 0) {
0x00122f94 bgez v0, 0x122e58 | goto label_3;
| }
| label_7:
0x00122f98 lw a0, 8(s0) | a0 = *((s0 + 2));
0x00122f9c lw t9, -0x7a38(gp) | t9 = *((gp - 7822));
0x00122fa0 addiu s1, zero, -1 | s1 = -1;
0x00122fa4 jalr t9 | t9 ();
0x00122fa8 sw zero, 8(s0) | *((s0 + 2)) = 0;
0x00122fac b 0x122e38 | goto label_4;
| label_11:
0x00122fb0 addiu v0, zero, 1 | v0 = 1;
| if (v0 == 0) {
0x00122fb4 beqz v0, 0x122ef0 | goto label_5;
| }
0x00122fb8 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00122fbc addiu t9, t9, 0xd88 | t9 += 0xd88;
0x00122fc0 move a0, s0 | a0 = s0;
0x00122fc4 bal 0x120d88 | fcn_00120d88 ();
0x00122fc8 move s1, v0 | s1 = v0;
0x00122fcc addiu v0, zero, 1 | v0 = 1;
0x00122fd0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00122fd4 sw v0, 0x14(s0) | *((s0 + 5)) = v0;
0x00122fd8 b 0x122ef8 | goto label_6;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x1220cc */
| #include <stdint.h>
|
; (fcn) sym.xmlTextWriterStartAttribute () | void xmlTextWriterStartAttribute () {
0x001220cc lui gp, 7 |
0x001220d0 addiu gp, gp, -0xa5c |
0x001220d4 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x001220d8 beqz a0, 0x122240 | goto label_0;
| }
0x001220dc nop |
| if (a1 == 0) {
0x001220e0 beqz a1, 0x122240 | goto label_0;
| }
0x001220e4 nop |
0x001220e8 lbu v0, (a1) | v0 = *(a1);
0x001220ec lw t9, -0x72c0(gp) | t9 = *(gp);
| if (v0 == 0) {
0x001220f0 beqz v0, 0x122240 | goto label_0;
| }
0x001220f4 addiu sp, sp, -0x30 |
0x001220f8 sw s0, 0x18(sp) | *(var_18h) = s0;
0x001220fc move s0, a0 | s0 = a0;
0x00122100 lw a0, 4(a0) | a0 = *((a0 + 1));
0x00122104 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00122108 sw s2, 0x20(sp) | *(var_20h) = s2;
0x0012210c sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00122110 sw s4, 0x28(sp) | *(var_28h) = s4;
0x00122114 sw s3, 0x24(sp) | *(var_24h) = s3;
0x00122118 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x0012211c move s2, a1 | s2 = a1;
0x00122120 jalr t9 | t9 ();
0x00122124 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00122128 beqz v0, 0x122214 | goto label_1;
| }
0x0012212c lw t9, -0x7a34(gp) | t9 = *((gp - 7821));
0x00122130 move a0, v0 | a0 = v0;
0x00122134 jalr t9 | t9 ();
0x00122138 move s3, v0 | s3 = v0;
0x0012213c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00122140 beqz v0, 0x122214 | goto label_1;
| }
0x00122144 lw v0, 4(v0) | v0 = *((v0 + 1));
0x00122148 addiu v1, zero, 1 | v1 = 1;
0x0012214c addiu v1, zero, 2 | v1 = 2;
| if (v0 == v1) {
0x00122150 beq v0, v1, 0x122238 | goto label_2;
| }
0x00122154 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (v0 != v1) {
0x00122158 bne v0, v1, 0x122218 | goto label_3;
| }
0x0012215c lw t9, -0x72b4(gp) | t9 = *(gp);
0x00122160 move a0, s0 | a0 = s0;
0x00122164 bal 0x122028 | sym_xmlTextWriterEndAttribute ();
0x00122168 move s1, v0 | s1 = v0;
0x0012216c lw gp, 0x10(sp) | gp = *(var_10h);
0x00122170 bltz v0, 0x122214 |
| while (1) {
0x00122174 lw s4, -0x796c(gp) | s4 = *((gp - 7771));
0x00122178 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x0012217c lw a0, (s0) | a0 = *(s0);
0x00122180 move t9, s4 | t9 = s4;
0x00122184 addiu a1, a1, 0x578c | a1 += 0x578c;
0x00122188 jalr t9 | t9 ();
0x0012218c move a1, s2 | a1 = s2;
| if (v0 >= 0) {
0x00122190 bltz v0, 0x122214 |
0x00122194 lw a0, (s0) | a0 = *(s0);
0x00122198 move t9, s4 | t9 = s4;
0x0012219c addu s1, s1, v0 | s1 += v0;
0x001221a0 jalr t9 | t9 ();
0x001221a4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x001221a8 bltz v0, 0x122214 | goto label_1;
| }
0x001221ac lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x001221b0 lw a0, (s0) | a0 = *(s0);
0x001221b4 addiu a1, a1, 0x984 | a1 += 0x984;
0x001221b8 move t9, s4 | t9 = s4;
0x001221bc addu s1, s1, v0 | s1 += v0;
0x001221c0 jalr t9 | t9 ();
0x001221c4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x001221c8 bltz v0, 0x122214 | goto label_1;
| }
0x001221cc lw a0, (s0) | a0 = *(s0);
0x001221d0 lw t9, -0x72bc(gp) | t9 = *(gp);
0x001221d4 addiu a2, s0, 0x1c | a2 = s0 + 0x1c;
0x001221d8 addiu a1, zero, 1 | a1 = 1;
0x001221dc addu s1, s1, v0 | s1 += v0;
0x001221e0 jalr t9 | t9 ();
0x001221e4 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (v0 < 0) {
0x001221e8 bltz v0, 0x122214 | goto label_1;
| }
0x001221ec addiu v1, zero, 2 | v1 = 2;
0x001221f0 addu v0, s1, v0 | v0 = s1 + v0;
0x001221f4 sw v1, 4(s3) | *((s3 + 1)) = v1;
0x001221f8 lw s4, 0x28(sp) | s4 = *(var_28h);
0x001221fc lw s3, 0x24(sp) | s3 = *(var_24h);
0x00122200 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00122204 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00122208 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0012220c addiu sp, sp, 0x30 |
0x00122210 jr ra | return v0;
| }
| label_1:
0x00122214 lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_3:
0x00122218 lw s4, 0x28(sp) | s4 = *(var_28h);
0x0012221c lw s3, 0x24(sp) | s3 = *(var_24h);
0x00122220 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00122224 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00122228 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0012222c addiu v0, zero, -1 | v0 = -1;
0x00122230 addiu sp, sp, 0x30 |
0x00122234 jr ra | return v0;
| label_2:
0x00122238 move s1, zero | s1 = 0;
0x0012223c b 0x122174 |
| }
| label_0:
0x00122240 addiu v0, zero, -1 | v0 = -1;
0x00122244 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x122248 */
| #include <stdint.h>
|
; (fcn) sym.xmlTextWriterStartAttributeNS () | void xmlTextWriterStartAttributeNS () {
0x00122248 lui gp, 7 |
0x0012224c addiu gp, gp, -0xbd8 |
0x00122250 addu gp, gp, t9 | gp += t9;
0x00122254 addiu sp, sp, -0x50 |
0x00122258 sw s4, 0x38(sp) | *(var_38h) = s4;
0x0012225c lw s4, -0x7000(gp) | s4 = *((gp - 7168));
0x00122260 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00122264 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x00122268 lw v0, (s4) | v0 = *(s4);
0x0012226c sw fp, 0x48(sp) | *(var_48h) = fp;
0x00122270 sw s7, 0x44(sp) | *(var_44h) = s7;
0x00122274 sw s6, 0x40(sp) | *(var_40h) = s6;
0x00122278 sw s5, 0x3c(sp) | *(var_3ch) = s5;
0x0012227c sw s3, 0x34(sp) | *(var_34h) = s3;
0x00122280 sw s2, 0x30(sp) | *(var_30h) = s2;
0x00122284 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x00122288 sw s0, 0x28(sp) | *(var_28h) = s0;
0x0012228c sw v0, 0x24(sp) | *(var_24h) = v0;
| if (a0 == 0) {
0x00122290 beql a0, zero, 0x1223f4 | goto label_2;
| }
0x00122294 addiu v0, zero, -1 | v0 = -1;
0x00122298 move s1, a2 | s1 = a2;
| if (a2 != 0) {
0x0012229c beqz a2, 0x122374 |
0x001222a0 lbu v0, (a2) | v0 = *(a2);
0x001222a4 addiu v0, zero, -1 | v0 = -1;
| if (v0 == 0) {
0x001222a8 beqz v0, 0x1223f4 | goto label_2;
| }
0x001222ac move s0, a0 | s0 = a0;
0x001222b0 move s3, a1 | s3 = a1;
0x001222b4 move s5, a3 | s5 = a3;
| if (a3 == 0) {
0x001222b8 beqz a3, 0x12237c | goto label_0;
| }
0x001222bc lw s6, -0x7fd8(gp) | s6 = *((gp - 8182));
0x001222c0 lw a0, -0x7fd4(gp) | a0 = *(gp);
0x001222c4 move t9, s6 | t9 = s6;
0x001222c8 addiu a0, a0, 0x75ac | a0 += 0x75ac;
0x001222cc jalr t9 | t9 ();
0x001222d0 move s7, v0 | s7 = v0;
0x001222d4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s3 != 0) {
0x001222d8 beqz s3, 0x12230c |
0x001222dc lw s2, -0x7c28(gp) | s2 = *((gp - 7946));
0x001222e0 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x001222e4 move a0, v0 | a0 = v0;
0x001222e8 move t9, s2 | t9 = s2;
0x001222ec addiu a1, a1, 0x2790 | a1 += aav.0x00002790;
0x001222f0 jalr t9 | t9 ();
0x001222f4 move a0, v0 | a0 = v0;
0x001222f8 move t9, s2 | t9 = s2;
0x001222fc move a1, s3 | a1 = s3;
0x00122300 jalr t9 | t9 ();
0x00122304 lw gp, 0x10(sp) | gp = *(var_10h);
0x00122308 move s7, v0 | s7 = v0;
| }
0x0012230c lw s2, -0x72c0(gp) | s2 = *(gp);
0x00122310 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00122314 move t9, s2 | t9 = s2;
0x00122318 sw s7, 0x18(sp) | *(var_18h_2) = s7;
0x0012231c sw s5, 0x1c(sp) | *(var_1ch_2) = s5;
0x00122320 jalr t9 | t9 ();
0x00122324 lw gp, 0x10(sp) | gp = *(var_10h);
0x00122328 lw a0, 8(s0) | a0 = *((s0 + 2));
0x0012232c addiu a1, sp, 0x18 | a1 = sp + 0x18;
0x00122330 lw t9, -0x762c(gp) | t9 = *((gp - 7563));
0x00122334 sw v0, 0x20(sp) | *(var_20h_2) = v0;
0x00122338 jalr t9 | t9 ();
0x0012233c move fp, v0 | fp = v0;
0x00122340 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00122344 beqz v0, 0x12243c | goto label_3;
| }
0x00122348 lw s6, -0x7158(gp) | s6 = *(gp);
0x0012234c lw t9, (s6) | t9 = *(s6);
0x00122350 move a0, s7 | a0 = s7;
0x00122354 jalr t9 | t9 ();
0x00122358 lw gp, 0x10(sp) | gp = *(var_10h);
0x0012235c lw a0, 4(fp) | a0 = *(arg_4h);
0x00122360 lw t9, -0x7a4c(gp) | t9 = *((gp - 7827));
0x00122364 move a1, s5 | a1 = s5;
0x00122368 jalr t9 | t9 ();
0x0012236c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00122370 beqz v0, 0x122380 | goto label_1;
| }
| }
0x00122374 addiu v0, zero, -1 | v0 = -1;
0x00122378 b 0x1223f4 | goto label_2;
| label_0:
0x0012237c lw s6, -0x7158(gp) | s6 = *(gp);
| label_1:
0x00122380 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
| if (s3 == 0) {
0x00122384 beqz s3, 0x122430 | goto label_4;
| }
0x00122388 move a0, s3 | a0 = s3;
0x0012238c jalr t9 | t9 ();
0x00122390 lw gp, 0x10(sp) | gp = *(var_10h);
0x00122394 move a0, v0 | a0 = v0;
0x00122398 lw s2, -0x7c28(gp) | s2 = *((gp - 7946));
0x0012239c lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x001223a0 move t9, s2 | t9 = s2;
0x001223a4 addiu a1, a1, 0x2790 | a1 += aav.0x00002790;
0x001223a8 jalr t9 | t9 ();
0x001223ac move a0, v0 | a0 = v0;
| do {
0x001223b0 move t9, s2 | t9 = s2;
0x001223b4 move a1, s1 | a1 = s1;
0x001223b8 jalr t9 | t9 ();
0x001223bc lw gp, 0x10(sp) | gp = *(var_10h);
0x001223c0 move a0, s0 | a0 = s0;
0x001223c4 move a1, v0 | a1 = v0;
0x001223c8 lw t9, -0x72b0(gp) | t9 = *((gp - 7340));
0x001223cc move s1, v0 | s1 = v0;
0x001223d0 bal 0x1220cc | sym_xmlTextWriterStartAttribute ();
0x001223d4 lw t9, (s6) | t9 = *(s6);
0x001223d8 move s0, v0 | s0 = v0;
0x001223dc move a0, s1 | a0 = s1;
0x001223e0 jalr t9 | t9 ();
0x001223e4 slti v1, s0, 0 | v1 = (s0 < 0) ? 1 : 0;
0x001223e8 addiu v0, zero, -1 | v0 = -1;
0x001223ec lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 != 0) {
0x001223f0 movz v0, s0, v1 | v0 = s0;
| }
| label_2:
0x001223f4 lw a0, 0x24(sp) | a0 = *(var_24h);
0x001223f8 lw v1, (s4) | v1 = *(s4);
0x001223fc lw ra, 0x4c(sp) | ra = *(var_4ch);
| if (a0 != v1) {
0x00122400 bne a0, v1, 0x12250c | goto label_5;
| }
0x00122404 lw fp, 0x48(sp) | fp = *(var_48h);
0x00122408 lw s7, 0x44(sp) | s7 = *(var_44h);
0x0012240c lw s6, 0x40(sp) | s6 = *(var_40h);
0x00122410 lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x00122414 lw s4, 0x38(sp) | s4 = *(var_38h);
0x00122418 lw s3, 0x34(sp) | s3 = *(var_34h);
0x0012241c lw s2, 0x30(sp) | s2 = *(var_30h);
0x00122420 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00122424 lw s0, 0x28(sp) | s0 = *(var_28h);
0x00122428 addiu sp, sp, 0x50 |
0x0012242c jr ra | return v0;
| label_4:
0x00122430 lw s2, -0x7c28(gp) | s2 = *((gp - 7946));
0x00122434 move a0, zero | a0 = 0;
0x00122438 b 0x1223b0 |
| } while (1);
| label_3:
0x0012243c lw v0, -0x716c(gp) | v0 = *(gp);
| if (s7 == 0) {
0x00122440 beqz s7, 0x12237c | goto label_0;
| }
0x00122444 lw t9, (v0) | t9 = *(v0);
0x00122448 addiu a0, zero, 0xc | a0 = 0xc;
0x0012244c jalr t9 | t9 ();
0x00122450 move fp, v0 | fp = v0;
0x00122454 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00122458 beqz v0, 0x1224e4 |
0x0012245c sw s7, (v0) | *(v0) = s7;
0x00122460 move t9, s6 | t9 = s6;
0x00122464 move a0, s5 | a0 = s5;
0x00122468 jalr t9 | t9 ();
0x0012246c lw gp, 0x10(sp) | gp = *(var_10h);
0x00122470 sw v0, 4(fp) | *(arg_4h) = v0;
| if (v0 != 0) {
0x00122474 beqz v0, 0x1224a8 |
0x00122478 move t9, s2 | t9 = s2;
0x0012247c lw s6, -0x7158(gp) | s6 = *(gp);
0x00122480 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00122484 jalr t9 | t9 ();
0x00122488 lw gp, 0x10(sp) | gp = *(var_10h);
0x0012248c lw a0, 8(s0) | a0 = *((s0 + 2));
0x00122490 move a1, fp | a1 = fp;
0x00122494 lw t9, -0x72ac(gp) | t9 = *(gp);
0x00122498 sw v0, 8(fp) | *(arg_8h) = v0;
0x0012249c jalr t9 | t9 ();
0x001224a0 lw gp, 0x10(sp) | gp = *(var_10h);
0x001224a4 b 0x122380 | goto label_1;
| }
0x001224a8 lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x001224ac lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x001224b0 addiu a2, a2, 0x3428 | a2 += 0x3428;
0x001224b4 addiu a1, zero, 2 | a1 = 2;
0x001224b8 addiu t9, t9, 0xf9c | t9 += aav.0x00000f9c;
0x001224bc move a0, s0 | a0 = s0;
0x001224c0 bal 0x120f9c | fcn_00120f9c ();
0x001224c4 lw gp, 0x10(sp) | gp = *(var_10h);
0x001224c8 lw v0, -0x7158(gp) | v0 = *(gp);
0x001224cc lw t9, (v0) | t9 = *(v0);
0x001224d0 move a0, fp | a0 = fp;
0x001224d4 jalr t9 | t9 ();
0x001224d8 lw gp, 0x10(sp) | gp = *(var_10h);
0x001224dc addiu v0, zero, -1 | v0 = -1;
0x001224e0 b 0x1223f4 | goto label_2;
| }
0x001224e4 lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x001224e8 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x001224ec addiu a2, a2, 0x3428 | a2 += 0x3428;
0x001224f0 addiu a1, zero, 2 | a1 = 2;
0x001224f4 addiu t9, t9, 0xf9c | t9 += aav.0x00000f9c;
0x001224f8 move a0, s0 | a0 = s0;
0x001224fc bal 0x120f9c | fcn_00120f9c ();
0x00122500 lw gp, 0x10(sp) | gp = *(var_10h);
0x00122504 addiu v0, zero, -1 | v0 = -1;
0x00122508 b 0x1223f4 | goto label_2;
| label_5:
0x0012250c lw t9, -0x7074(gp) | t9 = *((gp - 7197));
0x00122510 jalr t9 | t9 ();
0x00122514 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x125c44 */
| #include <stdint.h>
|
; (fcn) sym.xmlTextWriterStartDTDEntity () | void xmlTextWriterStartDTDEntity () {
0x00125c44 lui gp, 7 |
0x00125c48 addiu gp, gp, -0x45d4 |
0x00125c4c addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00125c50 beqz a0, 0x125ed4 | goto label_5;
| }
0x00125c54 nop |
| if (a2 == 0) {
0x00125c58 beqz a2, 0x125ed4 | goto label_5;
| }
0x00125c5c nop |
0x00125c60 lbu v0, (a2) | v0 = *(a2);
| if (v0 == 0) {
0x00125c64 beqz v0, 0x125ed4 | goto label_5;
| }
0x00125c68 nop |
0x00125c6c addiu sp, sp, -0x38 |
0x00125c70 lw t9, -0x72c0(gp) | t9 = *(gp);
0x00125c74 sw s0, 0x1c(sp) | *(var_1ch_2) = s0;
0x00125c78 move s0, a0 | s0 = a0;
0x00125c7c lw a0, 4(a0) | a0 = *((a0 + 1));
0x00125c80 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00125c84 sw s4, 0x2c(sp) | *(var_2ch) = s4;
0x00125c88 sw s3, 0x28(sp) | *(var_28h) = s3;
0x00125c8c sw ra, 0x34(sp) | *(var_34h) = ra;
0x00125c90 sw s5, 0x30(sp) | *(var_30h) = s5;
0x00125c94 sw s2, 0x24(sp) | *(var_24h_2) = s2;
0x00125c98 sw s1, 0x20(sp) | *(var_20h_2) = s1;
0x00125c9c move s3, a2 | s3 = a2;
0x00125ca0 move s4, a1 | s4 = a1;
0x00125ca4 jalr t9 | t9 ();
0x00125ca8 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00125cac beqz v0, 0x125d10 | goto label_6;
| }
0x00125cb0 lw t9, -0x7a34(gp) | t9 = *((gp - 7821));
0x00125cb4 move a0, v0 | a0 = v0;
0x00125cb8 jalr t9 | t9 ();
0x00125cbc move s2, v0 | s2 = v0;
0x00125cc0 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00125cc4 beqz v0, 0x125d10 | goto label_6;
| }
0x00125cc8 lw v0, 4(v0) | v0 = *((v0 + 1));
0x00125ccc addiu v1, zero, 7 | v1 = 7;
0x00125cd0 addiu v1, zero, 8 | v1 = 8;
| if (v0 == v1) {
0x00125cd4 beq v0, v1, 0x125e14 | goto label_7;
| }
0x00125cd8 move s1, zero | s1 = 0;
| if (v0 == v1) {
0x00125cdc beq v0, v1, 0x125d14 | goto label_2;
| }
0x00125ce0 lw v0, -0x716c(gp) | v0 = *(gp);
0x00125ce4 beqz v0, 0x125d18 |
| while (v0 < 0) {
| label_0:
0x00125ce8 addiu v0, zero, -1 | v0 = -1;
| label_3:
0x00125cec lw ra, 0x34(sp) | ra = *(var_34h);
0x00125cf0 lw s5, 0x30(sp) | s5 = *(var_30h);
0x00125cf4 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00125cf8 lw s3, 0x28(sp) | s3 = *(var_28h);
0x00125cfc lw s2, 0x24(sp) | s2 = *(var_24h_2);
0x00125d00 lw s1, 0x20(sp) | s1 = *(var_20h_2);
0x00125d04 lw s0, 0x1c(sp) | s0 = *(var_1ch_2);
0x00125d08 addiu sp, sp, 0x38 |
0x00125d0c jr ra | return v0;
| label_6:
0x00125d10 move s1, zero | s1 = 0;
| label_2:
0x00125d14 lw v0, -0x716c(gp) | v0 = *(gp);
0x00125d18 lw t9, (v0) | t9 = *(v0);
0x00125d1c addiu a0, zero, 8 | a0 = 8;
0x00125d20 jalr t9 | t9 ();
0x00125d24 move s2, v0 | s2 = v0;
0x00125d28 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00125d2c beqz v0, 0x125e78 | goto label_8;
| }
0x00125d30 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00125d34 move a0, s3 | a0 = s3;
0x00125d38 jalr t9 | t9 ();
0x00125d3c lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00125d40 sw v0, (s2) | *(s2) = v0;
| if (v0 == 0) {
0x00125d44 beqz v0, 0x125e9c | goto label_9;
| }
0x00125d48 addiu v1, zero, 0xf | v1 = 0xf;
0x00125d4c addiu v0, zero, 0xd | v0 = 0xd;
| if (s4 == 0) {
0x00125d50 movn v0, v1, s4 | v0 = v1;
| }
0x00125d54 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00125d58 lw t9, -0x72ac(gp) | t9 = *(gp);
0x00125d5c sw v0, 4(s2) | *((s2 + 1)) = v0;
0x00125d60 move a1, s2 | a1 = s2;
0x00125d64 jalr t9 | t9 ();
0x00125d68 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x00125d6c lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00125d70 beqz v0, 0x125d90 | goto label_10;
| }
0x00125d74 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00125d78 addiu t9, t9, 0xd88 | t9 += 0xd88;
0x00125d7c move a0, s0 | a0 = s0;
0x00125d80 bal 0x120d88 | fcn_00120d88 ();
0x00125d84 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00125d88 bltz v0, 0x125ce8 |
| }
0x00125d8c addu s1, s1, v0 | s1 += v0;
| label_10:
0x00125d90 lw s2, -0x796c(gp) | s2 = *((gp - 7771));
0x00125d94 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00125d98 lw a0, (s0) | a0 = *(s0);
0x00125d9c move t9, s2 | t9 = s2;
0x00125da0 addiu a1, a1, 0x5fa0 | a1 += 0x5fa0;
0x00125da4 jalr t9 | t9 ();
0x00125da8 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 < 0) {
0x00125dac bltz v0, 0x125ce8 | goto label_0;
| }
0x00125db0 addu s1, s1, v0 | s1 += v0;
0x00125db4 lw a0, (s0) | a0 = *(s0);
| if (s4 != 0) {
0x00125db8 bnez s4, 0x125df4 | goto label_11;
| }
| label_1:
0x00125dbc move t9, s2 | t9 = s2;
0x00125dc0 move a1, s3 | a1 = s3;
0x00125dc4 jalr t9 | t9 ();
0x00125dc8 addu v0, s1, v0 | v0 = s1 + v0;
| if (v0 < 0) {
0x00125dcc bltz v0, 0x125ce8 | goto label_0;
| }
| label_4:
0x00125dd0 lw ra, 0x34(sp) | ra = *(var_34h);
0x00125dd4 lw s5, 0x30(sp) | s5 = *(var_30h);
0x00125dd8 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00125ddc lw s3, 0x28(sp) | s3 = *(var_28h);
0x00125de0 lw s2, 0x24(sp) | s2 = *(var_24h_2);
0x00125de4 lw s1, 0x20(sp) | s1 = *(var_20h_2);
0x00125de8 lw s0, 0x1c(sp) | s0 = *(var_1ch_2);
0x00125dec addiu sp, sp, 0x38 |
0x00125df0 jr ra | return v0;
| label_11:
0x00125df4 lw a1, -0x7fb0(gp) | a1 = *((gp - 8172));
0x00125df8 move t9, s2 | t9 = s2;
0x00125dfc addiu a1, a1, 0x3790 | a1 += 0x3790;
0x00125e00 jalr t9 | t9 ();
0x00125e04 addu s1, s1, v0 | s1 += v0;
| if (v0 < 0) {
0x00125e08 bltz v0, 0x125ce8 | goto label_0;
| }
0x00125e0c lw a0, (s0) | a0 = *(s0);
0x00125e10 b 0x125dbc | goto label_1;
| label_7:
0x00125e14 lw s5, -0x796c(gp) | s5 = *((gp - 7771));
0x00125e18 lw a1, -0x7fb0(gp) | a1 = *((gp - 8172));
0x00125e1c lw a0, (s0) | a0 = *(s0);
0x00125e20 move t9, s5 | t9 = s5;
0x00125e24 addiu a1, a1, 0x372c | a1 += 0x372c;
0x00125e28 jalr t9 | t9 ();
0x00125e2c move s1, v0 | s1 = v0;
0x00125e30 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 < 0) {
0x00125e34 bltz v0, 0x125ce8 | goto label_0;
| }
0x00125e38 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x00125e3c addiu v0, zero, 8 | v0 = 8;
| if (v0 == 0) {
0x00125e40 bnez v0, 0x125e4c |
0x00125e44 sw v0, 4(s2) | *((s2 + 1)) = v0;
0x00125e48 b 0x125d14 | goto label_2;
| }
0x00125e4c lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00125e50 lw a0, (s0) | a0 = *(s0);
0x00125e54 move t9, s5 | t9 = s5;
0x00125e58 addiu a1, a1, 0x251c | a1 += 0x251c;
0x00125e5c jalr t9 | t9 ();
0x00125e60 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 < 0) {
0x00125e64 bltz v0, 0x125ce8 | goto label_0;
| }
0x00125e68 addu s1, s1, v0 | s1 += v0;
0x00125e6c addiu v0, zero, 8 | v0 = 8;
0x00125e70 sw v0, 4(s2) | *((s2 + 1)) = v0;
0x00125e74 b 0x125d14 | goto label_2;
| label_8:
0x00125e78 lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x00125e7c lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00125e80 addiu a2, a2, 0x3730 | a2 += 0x3730;
0x00125e84 addiu a1, zero, 2 | a1 = 2;
0x00125e88 addiu t9, t9, 0xf9c | t9 += aav.0x00000f9c;
0x00125e8c move a0, s0 | a0 = s0;
0x00125e90 bal 0x120f9c | fcn_00120f9c ();
0x00125e94 addiu v0, zero, -1 | v0 = -1;
0x00125e98 b 0x125cec | goto label_3;
| label_9:
0x00125e9c lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x00125ea0 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00125ea4 addiu a2, a2, 0x3730 | a2 += 0x3730;
0x00125ea8 addiu a1, zero, 2 | a1 = 2;
0x00125eac addiu t9, t9, 0xf9c | t9 += aav.0x00000f9c;
0x00125eb0 move a0, s0 | a0 = s0;
0x00125eb4 bal 0x120f9c | fcn_00120f9c ();
0x00125eb8 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00125ebc lw v0, -0x7158(gp) | v0 = *(gp);
0x00125ec0 lw t9, (v0) | t9 = *(v0);
0x00125ec4 move a0, s2 | a0 = s2;
0x00125ec8 jalr t9 | t9 ();
0x00125ecc addiu v0, zero, -1 | v0 = -1;
0x00125ed0 b 0x125dd0 | goto label_4;
| label_5:
0x00125ed4 addiu v0, zero, -1 | v0 = -1;
0x00125ed8 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x121bac */
| #include <stdint.h>
|
; (fcn) sym.xmlTextWriterStartDocument () | void xmlTextWriterStartDocument () {
0x00121bac lui gp, 7 |
0x00121bb0 addiu gp, gp, -0x53c |
0x00121bb4 addu gp, gp, t9 | gp += t9;
0x00121bb8 addiu sp, sp, -0x38 |
0x00121bbc sw gp, 0x10(sp) | *(var_10h) = gp;
0x00121bc0 sw s0, 0x18(sp) | *(var_18h) = s0;
0x00121bc4 sw ra, 0x34(sp) | *(var_34h) = ra;
0x00121bc8 sw s6, 0x30(sp) | *(var_30h) = s6;
0x00121bcc sw s5, 0x2c(sp) | *(var_2ch) = s5;
0x00121bd0 sw s4, 0x28(sp) | *(var_28h) = s4;
0x00121bd4 sw s3, 0x24(sp) | *(var_24h) = s3;
0x00121bd8 sw s2, 0x20(sp) | *(var_20h) = s2;
0x00121bdc sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x00121be0 move s0, a0 | s0 = a0;
| if (a0 == 0) {
0x00121be4 beqz a0, 0x121e60 | goto label_4;
| }
0x00121be8 lw v0, (a0) | v0 = *(a0);
0x00121bec lw t9, -0x72c0(gp) | t9 = *(gp);
| if (v0 == 0) {
0x00121bf0 beqz v0, 0x121e60 | goto label_4;
| }
0x00121bf4 lw a0, 4(a0) | a0 = *((a0 + 1));
0x00121bf8 move s6, a1 | s6 = a1;
0x00121bfc move s1, a2 | s1 = a2;
0x00121c00 move s5, a3 | s5 = a3;
0x00121c04 jalr t9 | t9 ();
0x00121c08 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00121c0c beqz v0, 0x121c24 |
0x00121c10 lw t9, -0x7a34(gp) | t9 = *((gp - 7821));
0x00121c14 move a0, v0 | a0 = v0;
0x00121c18 jalr t9 | t9 ();
0x00121c1c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00121c20 bnez v0, 0x121ee4 | goto label_5;
| }
| }
0x00121c24 lw t9, -0x7f58(gp) | t9 = *((gp - 8150));
| if (s1 == 0) {
0x00121c28 beqz s1, 0x121e38 | goto label_6;
| }
0x00121c2c move a0, s1 | a0 = s1;
0x00121c30 jalr t9 | t9 ();
0x00121c34 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00121c38 beqz v0, 0x121ef4 | goto label_7;
| }
0x00121c3c lw s1, (s0) | s1 = *(s0);
0x00121c40 lw v1, 0x14(s1) | v1 = *((s1 + 5));
0x00121c44 sw v0, 0xc(s1) | *((s1 + 3)) = v0;
| if (v1 == 0) {
0x00121c48 beqz v1, 0x121ea8 | goto label_8;
| }
| label_2:
0x00121c4c lw t9, -0x6e20(gp) | t9 = *((gp - 7048));
0x00121c50 move a0, s1 | a0 = s1;
0x00121c54 addiu a1, zero, 1 | a1 = 1;
0x00121c58 jalr t9 | t9 ();
0x00121c5c lw s1, 0x28(s0) | s1 = *((s0 + 10));
0x00121c60 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s1 == 0) {
0x00121c64 beqz s1, 0x121e30 | goto label_9;
| }
0x00121c68 lw v0, 0x3c(s1) | v0 = *((s1 + 15));
0x00121c6c lw a0, (s0) | a0 = *(s0);
| if (v0 == 0) {
0x00121c70 beqz v0, 0x121ec4 | goto label_10;
| }
| do {
| label_0:
0x00121c74 lw s2, -0x796c(gp) | s2 = *((gp - 7771));
0x00121c78 lw a1, -0x7fb0(gp) | a1 = *((gp - 8172));
0x00121c7c move t9, s2 | t9 = s2;
0x00121c80 addiu a1, a1, 0x3398 | a1 += aav.0x00003398;
0x00121c84 jalr t9 | t9 ();
0x00121c88 move s1, v0 | s1 = v0;
0x00121c8c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00121c90 bltz v0, 0x121e7c | goto label_11;
| }
0x00121c94 lw s3, -0x72bc(gp) | s3 = *(gp);
0x00121c98 addiu s4, s0, 0x1c | s4 = s0 + 0x1c;
0x00121c9c lw a0, (s0) | a0 = *(s0);
0x00121ca0 move a2, s4 | a2 = s4;
0x00121ca4 move t9, s3 | t9 = s3;
0x00121ca8 addiu a1, zero, 1 | a1 = 1;
0x00121cac jalr t9 | t9 ();
0x00121cb0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00121cb4 bltz v0, 0x121e7c | goto label_11;
| }
0x00121cb8 addu s1, s1, v0 | s1 += v0;
0x00121cbc lw a0, (s0) | a0 = *(s0);
| if (s6 == 0) {
0x00121cc0 beqz s6, 0x121e48 | goto label_12;
| }
0x00121cc4 move t9, s2 | t9 = s2;
0x00121cc8 move a1, s6 | a1 = s6;
0x00121ccc jalr t9 | t9 ();
| label_1:
0x00121cd0 move a2, s4 | a2 = s4;
| if (v0 < 0) {
0x00121cd4 bltz v0, 0x121e7c | goto label_11;
| }
0x00121cd8 lw a0, (s0) | a0 = *(s0);
0x00121cdc addiu a1, zero, 1 | a1 = 1;
0x00121ce0 move t9, s3 | t9 = s3;
0x00121ce4 addu s1, v0, s1 | s1 = v0 + s1;
0x00121ce8 jalr t9 | t9 ();
0x00121cec lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00121cf0 bltz v0, 0x121e7c | goto label_11;
| }
0x00121cf4 lw a0, (s0) | a0 = *(s0);
0x00121cf8 addu s1, s1, v0 | s1 += v0;
0x00121cfc lw v0, 0xc(a0) | v0 = *((a0 + 3));
0x00121d00 lw a1, -0x7fb0(gp) | a1 = *((gp - 8172));
| if (v0 != 0) {
0x00121d04 beqz v0, 0x121d7c |
0x00121d08 move t9, s2 | t9 = s2;
0x00121d0c addiu a1, a1, 0x33a8 | a1 += 0x33a8;
0x00121d10 jalr t9 | t9 ();
0x00121d14 move a2, s4 | a2 = s4;
| if (v0 < 0) {
0x00121d18 bltz v0, 0x121e7c | goto label_11;
| }
0x00121d1c lw a0, (s0) | a0 = *(s0);
0x00121d20 addiu a1, zero, 1 | a1 = 1;
0x00121d24 move t9, s3 | t9 = s3;
0x00121d28 addu s1, s1, v0 | s1 += v0;
0x00121d2c jalr t9 | t9 ();
0x00121d30 addu s1, s1, v0 | s1 += v0;
| if (v0 < 0) {
0x00121d34 bltz v0, 0x121e7c | goto label_11;
| }
0x00121d38 lw v1, (s0) | v1 = *(s0);
0x00121d3c move a0, v1 | a0 = v1;
0x00121d40 lw v0, 0xc(v1) | v0 = *((v1 + 3));
0x00121d44 move t9, s2 | t9 = s2;
0x00121d48 lw a1, (v0) | a1 = *(v0);
0x00121d4c jalr t9 | t9 ();
0x00121d50 move a2, s4 | a2 = s4;
| if (v0 < 0) {
0x00121d54 bltz v0, 0x121e7c | goto label_11;
| }
0x00121d58 lw a0, (s0) | a0 = *(s0);
0x00121d5c addiu a1, zero, 1 | a1 = 1;
0x00121d60 move t9, s3 | t9 = s3;
0x00121d64 addu s1, s1, v0 | s1 += v0;
0x00121d68 jalr t9 | t9 ();
0x00121d6c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00121d70 bltz v0, 0x121e7c | goto label_11;
| }
0x00121d74 lw a0, (s0) | a0 = *(s0);
0x00121d78 addu s1, s1, v0 | s1 += v0;
| }
0x00121d7c move t9, s2 | t9 = s2;
| if (s5 != 0) {
0x00121d80 beqz s5, 0x121df0 |
0x00121d84 lw a1, -0x7fb0(gp) | a1 = *((gp - 8172));
0x00121d88 addiu a1, a1, 0x33b4 | a1 += 0x33b4;
0x00121d8c jalr t9 | t9 ();
0x00121d90 move a2, s4 | a2 = s4;
| if (v0 < 0) {
0x00121d94 bltz v0, 0x121e7c | goto label_11;
| }
0x00121d98 lw a0, (s0) | a0 = *(s0);
0x00121d9c addiu a1, zero, 1 | a1 = 1;
0x00121da0 move t9, s3 | t9 = s3;
0x00121da4 addu s1, s1, v0 | s1 += v0;
0x00121da8 jalr t9 | t9 ();
0x00121dac move a1, s5 | a1 = s5;
| if (v0 < 0) {
0x00121db0 bltz v0, 0x121e7c | goto label_11;
| }
0x00121db4 lw a0, (s0) | a0 = *(s0);
0x00121db8 move t9, s2 | t9 = s2;
0x00121dbc addu s1, s1, v0 | s1 += v0;
0x00121dc0 jalr t9 | t9 ();
0x00121dc4 move a2, s4 | a2 = s4;
| if (v0 < 0) {
0x00121dc8 bltz v0, 0x121e7c | goto label_11;
| }
0x00121dcc lw a0, (s0) | a0 = *(s0);
0x00121dd0 addiu a1, zero, 1 | a1 = 1;
0x00121dd4 move t9, s3 | t9 = s3;
0x00121dd8 addu s1, s1, v0 | s1 += v0;
0x00121ddc jalr t9 | t9 ();
0x00121de0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00121de4 bltz v0, 0x121e7c | goto label_11;
| }
0x00121de8 lw a0, (s0) | a0 = *(s0);
0x00121dec addu s1, s1, v0 | s1 += v0;
| }
0x00121df0 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00121df4 move t9, s2 | t9 = s2;
0x00121df8 addiu a1, a1, 0x34a0 | a1 += 0x34a0;
0x00121dfc jalr t9 | t9 ();
0x00121e00 lw ra, 0x34(sp) | ra = *(var_34h);
| if (v0 < 0) {
0x00121e04 bltz v0, 0x121e7c | goto label_11;
| }
0x00121e08 addu v0, s1, v0 | v0 = s1 + v0;
0x00121e0c lw s6, 0x30(sp) | s6 = *(var_30h);
0x00121e10 lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x00121e14 lw s4, 0x28(sp) | s4 = *(var_28h);
0x00121e18 lw s3, 0x24(sp) | s3 = *(var_24h);
0x00121e1c lw s2, 0x20(sp) | s2 = *(var_20h);
0x00121e20 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00121e24 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00121e28 addiu sp, sp, 0x38 |
0x00121e2c jr ra | return v0;
| label_9:
0x00121e30 lw a0, (s0) | a0 = *(s0);
0x00121e34 b 0x121c74 |
| } while (1);
| label_6:
0x00121e38 lw a0, (s0) | a0 = *(s0);
0x00121e3c sw zero, 0xc(a0) | *((a0 + 3)) = 0;
0x00121e40 sw zero, 0x14(a0) | *((a0 + 5)) = 0;
0x00121e44 b 0x121c74 | goto label_0;
| label_12:
0x00121e48 lw a1, -0x7fb0(gp) | a1 = *((gp - 8172));
0x00121e4c move t9, s2 | t9 = s2;
0x00121e50 addiu a1, a1, 0xed8 | a1 += 0xed8;
0x00121e54 jalr t9 | t9 ();
0x00121e58 b 0x121cd0 | goto label_1;
0x00121e5c nop |
| label_4:
0x00121e60 lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x00121e64 addiu a1, zero, 1 | a1 = 1;
0x00121e68 addiu a2, a2, 0x32fc | a2 += aav.0x000032fc;
| do {
| label_3:
0x00121e6c lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00121e70 addiu t9, t9, 0xf9c | t9 += aav.0x00000f9c;
0x00121e74 move a0, s0 | a0 = s0;
0x00121e78 bal 0x120f9c | fcn_00120f9c ();
| label_11:
0x00121e7c lw ra, 0x34(sp) | ra = *(var_34h);
0x00121e80 lw s6, 0x30(sp) | s6 = *(var_30h);
0x00121e84 lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x00121e88 lw s4, 0x28(sp) | s4 = *(var_28h);
0x00121e8c lw s3, 0x24(sp) | s3 = *(var_24h);
0x00121e90 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00121e94 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00121e98 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00121e9c addiu v0, zero, -1 | v0 = -1;
0x00121ea0 addiu sp, sp, 0x38 |
0x00121ea4 jr ra | return v0;
| label_8:
0x00121ea8 lw t9, -0x6f2c(gp) | t9 = *((gp - 7115));
0x00121eac addiu a0, zero, 0xfa0 | a0 = 0xfa0;
0x00121eb0 jalr t9 | t9 ();
0x00121eb4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00121eb8 sw v0, 0x14(s1) | *((s1 + 5)) = v0;
0x00121ebc lw s1, (s0) | s1 = *(s0);
0x00121ec0 b 0x121c4c | goto label_2;
| label_10:
0x00121ec4 lw v0, 0xc(a0) | v0 = *((a0 + 3));
0x00121ec8 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00121ecc lw a0, (v0) | a0 = *(v0);
0x00121ed0 jalr t9 | t9 ();
0x00121ed4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00121ed8 lw a0, (s0) | a0 = *(s0);
0x00121edc sw v0, 0x3c(s1) | *((s1 + 15)) = v0;
0x00121ee0 b 0x121c74 | goto label_0;
| label_5:
0x00121ee4 lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x00121ee8 addiu a1, zero, 1 | a1 = 1;
0x00121eec addiu a2, a2, 0x332c | a2 += aav.0x0000332c;
0x00121ef0 b 0x121e6c |
| } while (1);
| label_7:
0x00121ef4 lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x00121ef8 addiu a1, zero, 2 | a1 = 2;
0x00121efc addiu a2, a2, 0x3368 | a2 += aav.0x00003368;
0x00121f00 b 0x121e6c | goto label_3;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x122918 */
| #include <stdint.h>
|
; (fcn) sym.xmlTextWriterStartElement () | void xmlTextWriterStartElement () {
0x00122918 lui gp, 7 |
0x0012291c addiu gp, gp, -0x12a8 |
0x00122920 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00122924 beqz a0, 0x122ba4 | goto label_4;
| }
0x00122928 nop |
| if (a1 == 0) {
0x0012292c beqz a1, 0x122ba4 | goto label_4;
| }
0x00122930 nop |
0x00122934 lbu v0, (a1) | v0 = *(a1);
| if (v0 == 0) {
0x00122938 beqz v0, 0x122ba4 | goto label_4;
| }
0x0012293c nop |
0x00122940 addiu sp, sp, -0x30 |
0x00122944 lw t9, -0x72c0(gp) | t9 = *(gp);
0x00122948 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0012294c move s0, a0 | s0 = a0;
0x00122950 lw a0, 4(a0) | a0 = *((a0 + 1));
0x00122954 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00122958 sw s3, 0x24(sp) | *(var_24h) = s3;
0x0012295c sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00122960 sw s4, 0x28(sp) | *(var_28h) = s4;
0x00122964 sw s2, 0x20(sp) | *(var_20h) = s2;
0x00122968 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x0012296c move s3, a1 | s3 = a1;
0x00122970 jalr t9 | t9 ();
0x00122974 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00122978 beqz v0, 0x122a18 |
0x0012297c lw t9, -0x7a34(gp) | t9 = *((gp - 7821));
0x00122980 move a0, v0 | a0 = v0;
0x00122984 jalr t9 | t9 ();
0x00122988 move s2, v0 | s2 = v0;
0x0012298c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00122990 beqz v0, 0x122a18 | goto label_5;
| }
0x00122994 lw v0, 4(v0) | v0 = *((v0 + 1));
0x00122998 addiu v1, zero, 2 | v1 = 2;
0x0012299c sltiu v1, v0, 3 | v1 = (v0 < 3) ? 1 : 0;
| if (v0 == v1) {
0x001229a0 beq v0, v1, 0x122b4c | goto label_6;
| }
| if (v1 != 0) {
0x001229a4 beql v1, zero, 0x122a0c |
0x001229a8 addiu v0, v0, -4 | v0 += -4;
0x001229ac addiu v1, zero, 1 | v1 = 1;
0x001229b0 move s1, zero | s1 = 0;
| if (v0 != v1) {
0x001229b4 bne v0, v1, 0x122a1c | goto label_0;
| }
| label_1:
0x001229b8 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x001229bc addiu t9, t9, 0x25ac | t9 += 0x25ac;
0x001229c0 move a0, s0 | a0 = s0;
0x001229c4 bal 0x1225ac | fcn_001225ac ();
0x001229c8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x001229cc bltz v0, 0x122ae8 | goto label_7;
| }
0x001229d0 lw s4, -0x796c(gp) | s4 = *((gp - 7771));
0x001229d4 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x001229d8 lw a0, (s0) | a0 = *(s0);
0x001229dc addiu a1, a1, -0x411c | a1 += -0x411c;
0x001229e0 move t9, s4 | t9 = s4;
0x001229e4 addu s1, s1, v0 | s1 += v0;
0x001229e8 jalr t9 | t9 ();
0x001229ec lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x001229f0 bltz v0, 0x122ae8 | goto label_7;
| }
0x001229f4 lw v1, 0x10(s0) | v1 = *((s0 + 4));
0x001229f8 addu s1, s1, v0 | s1 += v0;
| if (v1 != 0) {
0x001229fc bnez v1, 0x122b28 | goto label_8;
| }
0x00122a00 addiu v0, zero, 3 | v0 = 3;
0x00122a04 sw v0, 4(s2) | *((s2 + 1)) = v0;
0x00122a08 b 0x122a1c | goto label_0;
| }
0x00122a0c sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x00122a10 addiu v0, zero, -1 | v0 = -1;
| if (v0 != 0) {
0x00122a14 bnez v0, 0x122aec | goto label_2;
| }
| }
| label_5:
0x00122a18 move s1, zero | s1 = 0;
| label_0:
0x00122a1c lw v0, -0x716c(gp) | v0 = *(gp);
0x00122a20 lw t9, (v0) | t9 = *(v0);
0x00122a24 addiu a0, zero, 8 | a0 = 8;
0x00122a28 jalr t9 | t9 ();
0x00122a2c move s2, v0 | s2 = v0;
0x00122a30 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00122a34 beqz v0, 0x122acc | goto label_9;
| }
0x00122a38 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00122a3c move a0, s3 | a0 = s3;
0x00122a40 jalr t9 | t9 ();
0x00122a44 lw gp, 0x10(sp) | gp = *(var_10h);
0x00122a48 sw v0, (s2) | *(s2) = v0;
| if (v0 == 0) {
0x00122a4c beqz v0, 0x122b6c | goto label_10;
| }
0x00122a50 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00122a54 addiu v0, zero, 1 | v0 = 1;
0x00122a58 lw t9, -0x72ac(gp) | t9 = *(gp);
0x00122a5c sw v0, 4(s2) | *((s2 + 1)) = v0;
0x00122a60 move a1, s2 | a1 = s2;
0x00122a64 jalr t9 | t9 ();
0x00122a68 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x00122a6c lw gp, 0x10(sp) | gp = *(var_10h);
0x00122a70 bnez v0, 0x122b0c |
| while (1) {
0x00122a74 lw s3, -0x796c(gp) | s3 = *((gp - 7771));
0x00122a78 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00122a7c lw a0, (s0) | a0 = *(s0);
0x00122a80 move t9, s3 | t9 = s3;
0x00122a84 addiu a1, a1, 0x612c | a1 += 0x612c;
0x00122a88 jalr t9 | t9 ();
0x00122a8c move t9, s3 | t9 = s3;
| if (v0 >= 0) {
0x00122a90 bltz v0, 0x122ae8 |
0x00122a94 lw a1, (s2) | a1 = *(s2);
0x00122a98 lw a0, (s0) | a0 = *(s0);
0x00122a9c addu s1, s1, v0 | s1 += v0;
0x00122aa0 jalr t9 | t9 ();
0x00122aa4 addu v0, s1, v0 | v0 = s1 + v0;
| if (v0 < 0) {
0x00122aa8 bltz v0, 0x122ae8 | goto label_7;
| }
| label_3:
0x00122aac lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00122ab0 lw s4, 0x28(sp) | s4 = *(var_28h);
0x00122ab4 lw s3, 0x24(sp) | s3 = *(var_24h);
0x00122ab8 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00122abc lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00122ac0 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00122ac4 addiu sp, sp, 0x30 |
0x00122ac8 jr ra | return v0;
| label_9:
0x00122acc lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x00122ad0 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00122ad4 addiu a2, a2, 0x3488 | a2 += aav.0x00003488;
0x00122ad8 addiu a1, zero, 2 | a1 = 2;
0x00122adc addiu t9, t9, 0xf9c | t9 += aav.0x00000f9c;
0x00122ae0 move a0, s0 | a0 = s0;
0x00122ae4 bal 0x120f9c | fcn_00120f9c ();
| }
| label_7:
0x00122ae8 addiu v0, zero, -1 | v0 = -1;
| label_2:
0x00122aec lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00122af0 lw s4, 0x28(sp) | s4 = *(var_28h);
0x00122af4 lw s3, 0x24(sp) | s3 = *(var_24h);
0x00122af8 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00122afc lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00122b00 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00122b04 addiu sp, sp, 0x30 |
0x00122b08 jr ra | return v0;
0x00122b0c lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00122b10 addiu t9, t9, 0xd88 | t9 += 0xd88;
0x00122b14 move a0, s0 | a0 = s0;
0x00122b18 bal 0x120d88 | fcn_00120d88 ();
0x00122b1c addu s1, s1, v0 | s1 += v0;
0x00122b20 lw gp, 0x10(sp) | gp = *(var_10h);
0x00122b24 b 0x122a74 |
| }
| label_8:
0x00122b28 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00122b2c lw a0, (s0) | a0 = *(s0);
0x00122b30 move t9, s4 | t9 = s4;
0x00122b34 addiu a1, a1, 0x251c | a1 += 0x251c;
0x00122b38 jalr t9 | t9 ();
0x00122b3c addiu v0, zero, 3 | v0 = 3;
0x00122b40 lw gp, 0x10(sp) | gp = *(var_10h);
0x00122b44 sw v0, 4(s2) | *((s2 + 1)) = v0;
0x00122b48 b 0x122a1c | goto label_0;
| label_6:
0x00122b4c lw t9, -0x72b4(gp) | t9 = *(gp);
0x00122b50 move a0, s0 | a0 = s0;
0x00122b54 bal 0x122028 | sym_xmlTextWriterEndAttribute ();
0x00122b58 move s1, v0 | s1 = v0;
0x00122b5c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 >= 0) {
0x00122b60 bgez v0, 0x1229b8 | goto label_1;
| }
0x00122b64 addiu v0, zero, -1 | v0 = -1;
0x00122b68 b 0x122aec | goto label_2;
| label_10:
0x00122b6c lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x00122b70 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00122b74 addiu a2, a2, 0x3488 | a2 += aav.0x00003488;
0x00122b78 addiu a1, zero, 2 | a1 = 2;
0x00122b7c addiu t9, t9, 0xf9c | t9 += aav.0x00000f9c;
0x00122b80 move a0, s0 | a0 = s0;
0x00122b84 bal 0x120f9c | fcn_00120f9c ();
0x00122b88 lw gp, 0x10(sp) | gp = *(var_10h);
0x00122b8c lw v0, -0x7158(gp) | v0 = *(gp);
0x00122b90 lw t9, (v0) | t9 = *(v0);
0x00122b94 move a0, s2 | a0 = s2;
0x00122b98 jalr t9 | t9 ();
0x00122b9c addiu v0, zero, -1 | v0 = -1;
0x00122ba0 b 0x122aac | goto label_3;
| label_4:
0x00122ba4 addiu v0, zero, -1 | v0 = -1;
0x00122ba8 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x122bac */
| #include <stdint.h>
|
; (fcn) sym.xmlTextWriterStartElementNS () | void xmlTextWriterStartElementNS () {
0x00122bac lui gp, 7 |
0x00122bb0 addiu gp, gp, -0x153c |
0x00122bb4 addu gp, gp, t9 | gp += t9;
0x00122bb8 addiu sp, sp, -0x40 |
0x00122bbc sw gp, 0x10(sp) | *(var_10h) = gp;
0x00122bc0 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00122bc4 sw s7, 0x38(sp) | *(var_38h) = s7;
0x00122bc8 sw s6, 0x34(sp) | *(var_34h) = s6;
0x00122bcc sw s5, 0x30(sp) | *(var_30h) = s5;
0x00122bd0 sw s4, 0x2c(sp) | *(var_2ch) = s4;
0x00122bd4 sw s3, 0x28(sp) | *(var_28h) = s3;
0x00122bd8 sw s2, 0x24(sp) | *(var_24h) = s2;
0x00122bdc sw s1, 0x20(sp) | *(var_20h) = s1;
0x00122be0 sw s0, 0x1c(sp) | *(var_1ch) = s0;
| if (a0 == 0) {
0x00122be4 beql a0, zero, 0x122d1c | goto label_0;
| }
0x00122be8 addiu s2, zero, -1 | s2 = -1;
| if (a2 == 0) {
0x00122bec beql a2, zero, 0x122d1c | goto label_0;
| }
0x00122bf0 addiu s2, zero, -1 | s2 = -1;
0x00122bf4 lbu v0, (a2) | v0 = *(a2);
0x00122bf8 move s4, a3 | s4 = a3;
| if (v0 == 0) {
0x00122bfc beqz v0, 0x122d58 | goto label_2;
| }
0x00122c00 move s1, a2 | s1 = a2;
0x00122c04 move s3, a1 | s3 = a1;
0x00122c08 move s0, a0 | s0 = a0;
| if (a1 == 0) {
0x00122c0c beqz a1, 0x122d4c | goto label_3;
| }
0x00122c10 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00122c14 move a0, a1 | a0 = a1;
0x00122c18 jalr t9 | t9 ();
0x00122c1c lw gp, 0x10(sp) | gp = *(var_10h);
0x00122c20 move a0, v0 | a0 = v0;
0x00122c24 lw s5, -0x7c28(gp) | s5 = *((gp - 7946));
0x00122c28 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00122c2c move t9, s5 | t9 = s5;
0x00122c30 addiu a1, a1, 0x2790 | a1 += aav.0x00002790;
0x00122c34 jalr t9 | t9 ();
0x00122c38 move a0, v0 | a0 = v0;
| do {
0x00122c3c move t9, s5 | t9 = s5;
0x00122c40 move a1, s1 | a1 = s1;
0x00122c44 jalr t9 | t9 ();
0x00122c48 lw gp, 0x10(sp) | gp = *(var_10h);
0x00122c4c move a1, v0 | a1 = v0;
0x00122c50 move a0, s0 | a0 = s0;
0x00122c54 lw s6, -0x7158(gp) | s6 = *(gp);
0x00122c58 lw t9, -0x72a0(gp) | t9 = *(gp);
0x00122c5c move s1, v0 | s1 = v0;
0x00122c60 bal 0x122918 | sym_xmlTextWriterStartElement ();
0x00122c64 lw t9, (s6) | t9 = *(s6);
0x00122c68 move s2, v0 | s2 = v0;
0x00122c6c move a0, s1 | a0 = s1;
0x00122c70 jalr t9 | t9 ();
0x00122c74 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s2 < 0) {
0x00122c78 bltz s2, 0x122d58 | goto label_2;
| }
0x00122c7c lw v0, -0x716c(gp) | v0 = *(gp);
| if (s4 != 0) {
0x00122c80 beqz s4, 0x122d1c |
0x00122c84 lw t9, (v0) | t9 = *(v0);
0x00122c88 addiu a0, zero, 0xc | a0 = 0xc;
0x00122c8c jalr t9 | t9 ();
0x00122c90 move s1, v0 | s1 = v0;
0x00122c94 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00122c98 beqz v0, 0x122d60 | goto label_4;
| }
0x00122c9c lw s7, -0x7fd8(gp) | s7 = *((gp - 8182));
0x00122ca0 lw a0, -0x7fd4(gp) | a0 = *(gp);
0x00122ca4 move t9, s7 | t9 = s7;
0x00122ca8 addiu a0, a0, 0x75ac | a0 += 0x75ac;
0x00122cac jalr t9 | t9 ();
0x00122cb0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s3 != 0) {
0x00122cb4 beqz s3, 0x122cdc |
0x00122cb8 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00122cbc move a0, v0 | a0 = v0;
0x00122cc0 move t9, s5 | t9 = s5;
0x00122cc4 addiu a1, a1, 0x2790 | a1 += aav.0x00002790;
0x00122cc8 jalr t9 | t9 ();
0x00122ccc move a0, v0 | a0 = v0;
0x00122cd0 move t9, s5 | t9 = s5;
0x00122cd4 move a1, s3 | a1 = s3;
0x00122cd8 jalr t9 | t9 ();
| }
0x00122cdc sw v0, (s1) | *(s1) = v0;
0x00122ce0 move t9, s7 | t9 = s7;
0x00122ce4 move a0, s4 | a0 = s4;
0x00122ce8 jalr t9 | t9 ();
0x00122cec lw gp, 0x10(sp) | gp = *(var_10h);
0x00122cf0 sw v0, 4(s1) | *((s1 + 1)) = v0;
| if (v0 == 0) {
0x00122cf4 beqz v0, 0x122d84 | goto label_5;
| }
0x00122cf8 lw t9, -0x72c0(gp) | t9 = *(gp);
0x00122cfc lw a0, 4(s0) | a0 = *((s0 + 1));
0x00122d00 jalr t9 | t9 ();
0x00122d04 lw gp, 0x10(sp) | gp = *(var_10h);
0x00122d08 lw a0, 8(s0) | a0 = *((s0 + 2));
0x00122d0c move a1, s1 | a1 = s1;
0x00122d10 lw t9, -0x72ac(gp) | t9 = *(gp);
0x00122d14 sw v0, 8(s1) | *((s1 + 2)) = v0;
0x00122d18 jalr t9 | t9 ();
| }
| label_0:
0x00122d1c lw ra, 0x3c(sp) | ra = *(var_3ch);
| label_1:
0x00122d20 move v0, s2 | v0 = s2;
0x00122d24 lw s7, 0x38(sp) | s7 = *(var_38h);
0x00122d28 lw s6, 0x34(sp) | s6 = *(var_34h);
0x00122d2c lw s5, 0x30(sp) | s5 = *(var_30h);
0x00122d30 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00122d34 lw s3, 0x28(sp) | s3 = *(var_28h);
0x00122d38 lw s2, 0x24(sp) | s2 = *(var_24h);
0x00122d3c lw s1, 0x20(sp) | s1 = *(var_20h);
0x00122d40 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00122d44 addiu sp, sp, 0x40 |
0x00122d48 jr ra | return v0;
| label_3:
0x00122d4c lw s5, -0x7c28(gp) | s5 = *((gp - 7946));
0x00122d50 move a0, zero | a0 = 0;
0x00122d54 b 0x122c3c |
| } while (1);
| label_2:
0x00122d58 addiu s2, zero, -1 | s2 = -1;
0x00122d5c b 0x122d1c | goto label_0;
| label_4:
0x00122d60 lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x00122d64 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00122d68 addiu a2, a2, 0x34b4 | a2 += 0x34b4;
0x00122d6c addiu a1, zero, 2 | a1 = 2;
0x00122d70 addiu t9, t9, 0xf9c | t9 += aav.0x00000f9c;
0x00122d74 move a0, s0 | a0 = s0;
0x00122d78 bal 0x120f9c | fcn_00120f9c ();
0x00122d7c addiu s2, zero, -1 | s2 = -1;
0x00122d80 b 0x122d1c | goto label_0;
| label_5:
0x00122d84 lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x00122d88 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00122d8c addiu a2, a2, 0x34b4 | a2 += 0x34b4;
0x00122d90 addiu a1, zero, 2 | a1 = 2;
0x00122d94 addiu t9, t9, 0xf9c | t9 += aav.0x00000f9c;
0x00122d98 move a0, s0 | a0 = s0;
0x00122d9c bal 0x120f9c | fcn_00120f9c ();
0x00122da0 lw t9, (s6) | t9 = *(s6);
0x00122da4 move a0, s1 | a0 = s1;
0x00122da8 addiu s2, zero, -1 | s2 = -1;
0x00122dac jalr t9 | t9 ();
0x00122db0 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00122db4 b 0x122d20 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x124548 */
| #include <stdint.h>
|
; (fcn) sym.xmlTextWriterStartPI () | void xmlTextWriterStartPI () {
0x00124548 lui gp, 7 |
0x0012454c addiu gp, gp, -0x2ed8 |
0x00124550 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00124554 beqz a0, 0x124794 | void (*0x124794)() ();
| }
0x00124558 nop |
| if (a1 == 0) {
0x0012455c beqz a1, 0x124794 | void (*0x124794)() ();
| }
0x00124560 nop |
0x00124564 lbu v0, (a1) | v0 = *(a1);
| if (v0 == 0) {
0x00124568 beqz v0, 0x124794 | void (*0x124794)() ();
| }
0x0012456c nop |
0x00124570 addiu sp, sp, -0x30 |
0x00124574 lw t9, -0x7de8(gp) | t9 = *(gp);
0x00124578 sw s3, 0x28(sp) | *(var_28h_2) = s3;
0x0012457c move s3, a1 | s3 = a1;
0x00124580 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00124584 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00124588 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x0012458c sw ra, 0x2c(sp) | *(var_2ch_2) = ra;
0x00124590 sw s2, 0x24(sp) | *(var_24h_2) = s2;
0x00124594 sw s1, 0x20(sp) | *(var_20h_2) = s1;
0x00124598 move s0, a0 | s0 = a0;
0x0012459c addiu a1, a1, 0x75a8 | a1 += 0x75a8;
0x001245a0 move a0, s3 | a0 = s3;
0x001245a4 jalr t9 | t9 ();
0x001245a8 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x001245ac beqz v0, 0x124740 | void (*0x124740)() ();
| }
0x001245b0 lw t9, -0x72c0(gp) | t9 = *(gp);
0x001245b4 lw a0, 4(s0) | a0 = *((s0 + 1));
0x001245b8 jalr t9 | t9 ();
0x001245bc lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x001245c0 beqz v0, 0x124604 | goto label_0;
| }
0x001245c4 lw t9, -0x7a34(gp) | t9 = *((gp - 7821));
0x001245c8 move a0, v0 | a0 = v0;
0x001245cc jalr t9 | t9 ();
0x001245d0 move s2, v0 | s2 = v0;
0x001245d4 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x001245d8 beqz v0, 0x124604 | goto label_0;
| }
0x001245dc lw v0, 4(v0) | v0 = *((v0 + 1));
0x001245e0 sltiu v1, v0, 8 | v1 = (v0 < 8) ? 1 : 0;
0x001245e4 sll v1, v0, 2 | v1 = v0 << 2;
| if (v1 == 0) {
0x001245e8 beqz v1, 0x124738 | void (*0x124738)() ();
| }
0x001245ec lw v0, -0x7fb0(gp) | v0 = *((gp - 8172));
0x001245f0 addiu v0, v0, 0x3970 | v0 += 0x3970;
0x001245f4 lwx v0, v1(v0) | __asm ("lwx v0, v1(v0)");
0x001245f8 addu v0, v0, gp | v0 += gp;
0x001245fc jr v0 | v0 ();
0x00124600 nop |
| label_0:
0x00124604 move s1, zero | s1 = 0;
0x00124608 lw v0, -0x716c(gp) | v0 = *(gp);
0x0012460c lw t9, (v0) | t9 = *(v0);
0x00124610 addiu a0, zero, 8 | a0 = 8;
0x00124614 jalr t9 | t9 ();
0x00124618 move s2, v0 | s2 = v0;
0x0012461c lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00124620 beqz v0, 0x12474c | void (*0x12474c)() ();
| }
0x00124624 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00124628 move a0, s3 | a0 = s3;
0x0012462c jalr t9 | t9 ();
0x00124630 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00124634 sw v0, (s2) | *(s2) = v0;
| if (v0 == 0) {
0x00124638 beqz v0, 0x12475c | void (*0x12475c)() ();
| }
0x0012463c lw a0, 4(s0) | a0 = *((s0 + 1));
0x00124640 lw t9, -0x72ac(gp) | t9 = *(gp);
0x00124644 addiu v0, zero, 4 | v0 = 4;
0x00124648 move a1, s2 | a1 = s2;
0x0012464c sw v0, 4(s2) | *((s2 + 1)) = v0;
0x00124650 jalr t9 | t9 ();
0x00124654 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00124658 lw a0, (s0) | a0 = *(s0);
0x0012465c lw s3, -0x796c(gp) | s3 = *((gp - 7771));
0x00124660 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x00124664 move t9, s3 | t9 = s3;
0x00124668 addiu a1, a1, 0x9c0 | a1 += 0x9c0;
0x0012466c jalr t9 | t9 ();
0x00124670 move t9, s3 | t9 = s3;
| if (v0 < 0) {
0x00124674 bltz v0, 0x124738 | void (*0x124738)() ();
| }
0x00124678 lw a1, (s2) | a1 = *(s2);
0x0012467c lw a0, (s0) | a0 = *(s0);
0x00124680 addu s1, s1, v0 | s1 += v0;
0x00124684 jalr t9 | t9 ();
| if (v0 >= 0) {
0x00124688 bltzl v0, 0x124694 |
0x0012468c addiu v0, zero, -1 | v0 = -1;
0x00124690 addu v0, s1, v0 | v0 = s1 + v0;
| }
0x00124694 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x00124698 lw s3, 0x28(sp) | s3 = *(var_28h_2);
0x0012469c lw s2, 0x24(sp) | s2 = *(var_24h_2);
0x001246a0 lw s1, 0x20(sp) | s1 = *(var_20h_2);
0x001246a4 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x001246a8 addiu sp, sp, 0x30 |
0x001246ac jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x123350 */
| #include <stdint.h>
|
; (fcn) sym.xmlTextWriterWriteRawLen () | void xmlTextWriterWriteRawLen () {
0x00123350 lui gp, 7 |
0x00123354 addiu gp, gp, -0x1ce0 |
0x00123358 addu gp, gp, t9 | gp += t9;
0x0012335c addiu sp, sp, -0x30 |
0x00123360 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00123364 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00123368 sw s3, 0x28(sp) | *(var_28h) = s3;
0x0012336c sw s2, 0x24(sp) | *(var_24h) = s2;
0x00123370 sw s1, 0x20(sp) | *(var_20h) = s1;
0x00123374 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00123378 move s0, a0 | s0 = a0;
| if (a0 == 0) {
0x0012337c beqz a0, 0x123450 | goto label_1;
| }
0x00123380 move s2, a1 | s2 = a1;
| if (a1 == 0) {
0x00123384 beqz a1, 0x123424 | goto label_2;
| }
0x00123388 move s3, a2 | s3 = a2;
| if (a2 < 0) {
0x0012338c bltz a2, 0x123424 | goto label_2;
| }
0x00123390 lw t9, -0x72c0(gp) | t9 = *(gp);
0x00123394 lw a0, 4(a0) | a0 = *((a0 + 1));
0x00123398 jalr t9 | t9 ();
0x0012339c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x001233a0 beqz v0, 0x12341c | goto label_3;
| }
0x001233a4 lw t9, -0x7a34(gp) | t9 = *((gp - 7821));
0x001233a8 move a0, v0 | a0 = v0;
0x001233ac jalr t9 | t9 ();
0x001233b0 lw gp, 0x10(sp) | gp = *(var_10h);
0x001233b4 move a1, v0 | a1 = v0;
0x001233b8 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x001233bc addiu t9, t9, 0x31d4 | t9 += 0x31d4;
0x001233c0 move a0, s0 | a0 = s0;
0x001233c4 bal 0x1231d4 | fcn_001231d4 ();
0x001233c8 move s1, v0 | s1 = v0;
0x001233cc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x001233d0 bltz v0, 0x123448 | goto label_4;
| }
| do {
0x001233d4 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x001233d8 sw zero, 0x14(s0) | *((s0 + 5)) = 0;
| if (v0 != 0) {
0x001233dc bnel v0, zero, 0x1233e0 |
| }
0x001233e0 lw a0, (s0) | a0 = *(s0);
0x001233e4 lw t9, -0x72bc(gp) | t9 = *(gp);
0x001233e8 move a2, s2 | a2 = s2;
0x001233ec move a1, s3 | a1 = s3;
0x001233f0 jalr t9 | t9 ();
| if (v0 >= 0) {
0x001233f4 bltzl v0, 0x123400 |
0x001233f8 addiu v0, zero, -1 | v0 = -1;
0x001233fc addu v0, s1, v0 | v0 = s1 + v0;
| }
| label_0:
0x00123400 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00123404 lw s3, 0x28(sp) | s3 = *(var_28h);
0x00123408 lw s2, 0x24(sp) | s2 = *(var_24h);
0x0012340c lw s1, 0x20(sp) | s1 = *(var_20h);
0x00123410 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00123414 addiu sp, sp, 0x30 |
0x00123418 jr ra | return v0;
| label_3:
0x0012341c move s1, zero | s1 = 0;
0x00123420 b 0x1233d4 |
| } while (1);
| label_2:
0x00123424 lw a2, -0x7fb0(gp) | a2 = *((gp - 8172));
0x00123428 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x0012342c addiu a2, a2, 0x3514 | a2 += 0x3514;
0x00123430 addiu a1, zero, 1 | a1 = 1;
0x00123434 addiu t9, t9, 0xf9c | t9 += aav.0x00000f9c;
0x00123438 move a0, s0 | a0 = s0;
0x0012343c bal 0x120f9c | fcn_00120f9c ();
0x00123440 addiu v0, zero, -1 | v0 = -1;
0x00123444 b 0x123400 | goto label_0;
| label_4:
0x00123448 addiu v0, zero, -1 | v0 = -1;
0x0012344c b 0x123400 | goto label_0;
| label_1:
0x00123450 lw a1, -0x7fb0(gp) | a1 = *((gp - 8172));
0x00123454 lw t9, -0x7398(gp) | t9 = *((gp - 7398));
0x00123458 addiu a1, a1, 0x34e8 | a1 += 0x34e8;
0x0012345c addiu t9, t9, 0xf1c | t9 += 0xf1c;
0x00123460 addiu a0, zero, 1 | a0 = 1;
0x00123464 bal 0x120f1c | fcn_00120f1c ();
0x00123468 addiu v0, zero, -1 | v0 = -1;
0x0012346c b 0x123400 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb8804 */
| #include <stdint.h>
|
; (fcn) sym.xmlUTF8Size () | void xmlUTF8Size () {
| if (a0 == 0) {
0x000b8804 beqz a0, 0xb8848 | goto label_0;
| }
0x000b8808 nop |
0x000b880c lbu a0, (a0) | a0 = *(a0);
0x000b8810 seb v0, a0 | __asm ("seb v0, a0");
| if (v0 >= 0) {
0x000b8814 bgez v0, 0xb885c | goto label_1;
| }
0x000b8818 nop |
0x000b881c andi v0, a0, 0x40 | v0 = a0 & 0x40;
0x000b8820 addiu v1, zero, 0x20 | v1 = 0x20;
| if (v0 == 0) {
0x000b8824 beqz v0, 0xb8850 | goto label_2;
| }
0x000b8828 addiu v0, zero, 2 | v0 = 2;
0x000b882c addiu a2, zero, 8 | a2 = 8;
| do {
0x000b8830 and a1, a0, v1 | a1 = a0 & v1;
| if (a1 == 0) {
0x000b8834 beqz a1, 0xb8854 | goto label_3;
| }
0x000b8838 nop |
0x000b883c addiu v0, v0, 1 | v0++;
0x000b8840 srl v1, v1, 1 | v1 >>= 1;
0x000b8844 bne v0, a2, 0xb8830 |
| } while (v0 != a2);
| label_0:
0x000b8848 addiu v0, zero, -1 | v0 = -1;
0x000b884c jr ra | return v0;
| label_2:
0x000b8850 addiu v0, zero, -1 | v0 = -1;
| label_3:
0x000b8854 jr ra | return v0;
0x000b8858 nop |
| label_1:
0x000b885c addiu v0, zero, 1 | v0 = 1;
0x000b8860 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb8e0c */
| #include <stdint.h>
|
; (fcn) sym.xmlUTF8Strloc () | void xmlUTF8Strloc () {
0x000b8e0c lui gp, 0xe |
0x000b8e10 addiu gp, gp, -0x779c |
0x000b8e14 addu gp, gp, t9 | gp += t9;
0x000b8e18 addiu sp, sp, -0x40 |
0x000b8e1c sw gp, 0x10(sp) | *(var_10h) = gp;
0x000b8e20 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x000b8e24 sw s7, 0x38(sp) | *(var_38h) = s7;
0x000b8e28 sw s6, 0x34(sp) | *(var_34h) = s6;
0x000b8e2c sw s5, 0x30(sp) | *(var_30h) = s5;
0x000b8e30 sw s4, 0x2c(sp) | *(var_2ch) = s4;
0x000b8e34 sw s3, 0x28(sp) | *(var_28h) = s3;
0x000b8e38 sw s2, 0x24(sp) | *(var_24h) = s2;
0x000b8e3c sw s1, 0x20(sp) | *(var_20h) = s1;
0x000b8e40 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000b8e44 lw ra, 0x3c(sp) | ra = *(var_3ch);
| if (a0 == 0) {
0x000b8e48 beqz a0, 0xb8f3c | goto label_2;
| }
0x000b8e4c move s2, a1 | s2 = a1;
| if (a1 == 0) {
0x000b8e50 beqz a1, 0xb8f3c | goto label_2;
| }
0x000b8e54 lw t9, -0x76bc(gp) | t9 = *((gp - 7599));
0x000b8e58 move s1, a0 | s1 = a0;
0x000b8e5c addiu a1, zero, 1 | a1 = 1;
0x000b8e60 addiu t9, t9, 0x7b30 | t9 += 0x7b30;
0x000b8e64 move a0, s2 | a0 = s2;
0x000b8e68 bal 0xb7b30 | fcn_000b7b30 ();
0x000b8e6c lbu s0, (s1) | s0 = *(s1);
0x000b8e70 lw gp, 0x10(sp) | gp = *(var_10h);
0x000b8e74 move s5, v0 | s5 = v0;
| if (s0 == 0) {
0x000b8e78 beqz s0, 0xb8f38 | goto label_3;
| }
0x000b8e7c move s4, zero | s4 = 0;
| if (v0 <= 0) {
0x000b8e80 blez v0, 0xb8ed0 | goto label_4;
| }
0x000b8e84 addiu s6, zero, -0x40 | s6 = -0x40;
| if (s1 == s2) {
0x000b8e88 beq s1, s2, 0xb8ed0 | goto label_4;
| }
0x000b8e8c addiu s3, zero, 0xc0 | s3 = 0xc0;
0x000b8e90 addiu s7, zero, 0x80 | s7 = 0x80;
| do {
0x000b8e94 lw t9, -0x70f8(gp) | t9 = *((gp - 7230));
0x000b8e98 move a2, s5 | a2 = s5;
0x000b8e9c move a1, s2 | a1 = s2;
0x000b8ea0 move a0, s1 | a0 = s1;
0x000b8ea4 jalr t9 | t9 ();
0x000b8ea8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000b8eac beqz v0, 0xb8ed0 | goto label_4;
| }
0x000b8eb0 seb v0, s0 | __asm ("seb v0, s0");
0x000b8eb4 addiu s1, s1, 1 | s1++;
| if (v0 < 0) {
0x000b8eb8 bltz v0, 0xb8f00 | goto label_5;
| }
0x000b8ebc lbu s0, (s1) | s0 = *(s1);
| label_0:
0x000b8ec0 lw ra, 0x3c(sp) | ra = *(var_3ch);
| if (s0 == 0) {
0x000b8ec4 beqz s0, 0xb8f3c | goto label_2;
| }
0x000b8ec8 addiu s4, s4, 1 | s4++;
0x000b8ecc bne s1, s2, 0xb8e94 |
| } while (s1 != s2);
| label_4:
0x000b8ed0 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x000b8ed4 move v0, s4 | v0 = s4;
0x000b8ed8 lw s7, 0x38(sp) | s7 = *(var_38h);
0x000b8edc lw s6, 0x34(sp) | s6 = *(var_34h);
0x000b8ee0 lw s5, 0x30(sp) | s5 = *(var_30h);
0x000b8ee4 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x000b8ee8 lw s3, 0x28(sp) | s3 = *(var_28h);
0x000b8eec lw s2, 0x24(sp) | s2 = *(var_24h);
0x000b8ef0 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000b8ef4 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000b8ef8 addiu sp, sp, 0x40 |
0x000b8efc jr ra | return v0;
| label_5:
0x000b8f00 and v0, s0, s6 | v0 = s0 & s6;
0x000b8f04 sll v0, s0, 1 | v0 = s0 << 1;
| if (v0 != s3) {
0x000b8f08 bne v0, s3, 0xb8f38 | goto label_3;
| }
0x000b8f0c andi v0, v0, 0xff | v0 &= 0xff;
0x000b8f10 b 0xb8f1c | goto label_6;
| if (a0 >= 0) {
| label_1:
0x000b8f14 bgezl a0, 0xb8ec0 | goto label_0;
| }
0x000b8f18 lbu s0, (s1) | s0 = *(s1);
| label_6:
0x000b8f1c addiu s1, s1, 1 | s1++;
0x000b8f20 lbu v1, -1(s1) | v1 = *((s1 - 1));
0x000b8f24 sll v0, v0, 1 | v0 <<= 1;
0x000b8f28 andi v0, v0, 0xff | v0 &= 0xff;
0x000b8f2c and v1, s6, v1 | v1 = s6 & v1;
0x000b8f30 seb a0, v0 | __asm ("seb a0, v0");
| if (v1 == s7) {
0x000b8f34 beq v1, s7, 0xb8f14 | goto label_1;
| }
| label_3:
0x000b8f38 lw ra, 0x3c(sp) | ra = *(var_3ch);
| label_2:
0x000b8f3c addiu s4, zero, -1 | s4 = -1;
0x000b8f40 move v0, s4 | v0 = s4;
0x000b8f44 lw s7, 0x38(sp) | s7 = *(var_38h);
0x000b8f48 lw s6, 0x34(sp) | s6 = *(var_34h);
0x000b8f4c lw s5, 0x30(sp) | s5 = *(var_30h);
0x000b8f50 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x000b8f54 lw s3, 0x28(sp) | s3 = *(var_28h);
0x000b8f58 lw s2, 0x24(sp) | s2 = *(var_24h);
0x000b8f5c lw s1, 0x20(sp) | s1 = *(var_20h);
0x000b8f60 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000b8f64 addiu sp, sp, 0x40 |
0x000b8f68 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xb8f6c */
| #include <stdint.h>
|
; (fcn) sym.xmlUTF8Strsub () | void xmlUTF8Strsub () {
0x000b8f6c lui gp, 0xe |
0x000b8f70 addiu gp, gp, -0x78fc |
0x000b8f74 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x000b8f78 beqz a0, 0xb9014 | goto label_2;
| }
0x000b8f7c nop |
| if (a1 < 0) {
0x000b8f80 bltz a1, 0xb9014 | goto label_2;
| }
0x000b8f84 nop |
| if (a2 < 0) {
0x000b8f88 bltz a2, 0xb9014 | goto label_2;
| }
0x000b8f8c nop |
0x000b8f90 lw t9, -0x7618(gp) | t9 = *((gp - 7558));
| if (a1 == 0) {
0x000b8f94 beqz a1, 0xb901c | goto label_3;
| }
0x000b8f98 lbu v0, (a0) | v0 = *(a0);
0x000b8f9c addiu a0, a0, 1 | a0++;
| if (v0 == 0) {
0x000b8fa0 beqz v0, 0xb9014 | goto label_2;
| }
0x000b8fa4 move t0, zero | t0 = 0;
0x000b8fa8 addiu t1, zero, -0x40 | t1 = -0x40;
0x000b8fac addiu t3, zero, 0xc0 | t3 = 0xc0;
0x000b8fb0 addiu t2, zero, 0x80 | t2 = 0x80;
0x000b8fb4 b 0xb8fcc |
| while (v1 >= 0) {
| label_0:
0x000b8fb8 lw t9, -0x7618(gp) | t9 = *((gp - 7558));
| if (a1 == t0) {
0x000b8fbc beq a1, t0, 0xb901c | goto label_3;
| }
0x000b8fc0 lbu v0, (a0) | v0 = *(a0);
0x000b8fc4 addiu a0, a0, 1 | a0++;
| if (v0 == 0) {
0x000b8fc8 beqz v0, 0xb9014 | goto label_2;
| }
0x000b8fcc seb v1, v0 | __asm ("seb v1, v0");
0x000b8fd0 bgezl v1, 0xb8fb8 |
| }
0x000b8fd4 addiu t0, t0, 1 | t0++;
0x000b8fd8 and v1, v0, t1 | v1 = v0 & t1;
| if (v1 != t3) {
0x000b8fdc bne v1, t3, 0xb9014 | goto label_2;
| }
0x000b8fe0 nop |
0x000b8fe4 sll v0, v0, 1 | v0 <<= 1;
0x000b8fe8 andi v0, v0, 0xff | v0 &= 0xff;
0x000b8fec b 0xb8ff8 | goto label_4;
| if (a3 >= 0) {
| label_1:
0x000b8ff0 bgezl a3, 0xb8fb8 | goto label_0;
| }
0x000b8ff4 addiu t0, t0, 1 | t0++;
| label_4:
0x000b8ff8 addiu a0, a0, 1 | a0++;
0x000b8ffc lbu v1, -1(a0) | v1 = *((a0 - 1));
0x000b9000 sll v0, v0, 1 | v0 <<= 1;
0x000b9004 andi v0, v0, 0xff | v0 &= 0xff;
0x000b9008 and v1, t1, v1 | v1 = t1 & v1;
0x000b900c seb a3, v0 | __asm ("seb a3, v0");
| if (v1 == t2) {
0x000b9010 beq v1, t2, 0xb8ff0 | goto label_1;
| }
| label_2:
0x000b9014 move v0, zero | v0 = 0;
0x000b9018 jr ra | return v0;
| label_3:
0x000b901c move a1, a2 | a1 = a2;
0x000b9020 b 0xb8c58 | return void (*0xb8c58)() ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x8a85c */
| #include <stdint.h>
|
; (fcn) sym.xmlXPathDistinctSorted () | void xmlXPathDistinctSorted () {
0x0008a85c lui gp, 0x10 |
0x0008a860 addiu gp, gp, 0x6e14 |
0x0008a864 addu gp, gp, t9 | gp += t9;
0x0008a868 move v0, a0 | v0 = a0;
| if (a0 != 0) {
0x0008a86c beqz a0, 0x8a894 |
0x0008a870 lw v1, (a0) | v1 = *(a0);
| if (v1 == 0) {
0x0008a874 beqz v1, 0x8a894 | goto label_0;
| }
0x0008a878 nop |
0x0008a87c lw v1, 8(a0) | v1 = *((a0 + 2));
0x0008a880 lw t9, -0x78d0(gp) | t9 = *(gp);
| if (v1 == 0) {
0x0008a884 beqz v1, 0x8a894 | goto label_0;
| }
0x0008a888 addiu t9, t9, -0x6acc | t9 += -0x6acc;
0x0008a88c b 0x89534 | void (*0x89534)() ();
0x0008a890 nop |
| }
| label_0:
0x0008a894 jr ra | return v1;
0x0008a898 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x8a89c */
| #include <stdint.h>
|
; (fcn) sym.xmlXPathDistinct () | void xmlXPathDistinct () {
| label_3:
0x00089534 lui gp, 0x11 |
0x00089538 addiu gp, gp, -0x7ec4 |
0x0008953c addu gp, gp, t9 | gp += t9;
0x00089540 addiu sp, sp, -0x50 |
0x00089544 lw t9, -0x78ec(gp) | t9 = *((gp - 7739));
0x00089548 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x0008954c sw s3, 0x34(sp) | *(var_34h) = s3;
0x00089550 sw ra, 0x4c(sp) | *(var_24h) = ra;
0x00089554 sw fp, 0x48(sp) | *(var_48h) = fp;
0x00089558 sw s7, 0x44(sp) | *(var_1ch) = s7;
0x0008955c sw s6, 0x40(sp) | *(var_40h) = s6;
0x00089560 sw s5, 0x3c(sp) | *(var_3ch) = s5;
0x00089564 sw s4, 0x38(sp) | *(var_10h) = s4;
0x00089568 sw s2, 0x30(sp) | *(var_30h) = s2;
0x0008956c sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x00089570 sw s0, 0x28(sp) | *(var_28h) = s0;
0x00089574 move s3, a0 | s3 = a0;
0x00089578 move a0, zero | a0 = 0;
0x0008957c bal 0x884d0 | sym_xmlXPathNodeSetCreate ();
0x00089580 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00089584 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00089588 beqz v0, 0x896b8 | goto label_4;
| }
0x0008958c lw s4, (s3) | s4 = *(s3);
0x00089590 lw t9, -0x7f80(gp) | t9 = *(gp);
0x00089594 move a0, s4 | a0 = s4;
0x00089598 jalr t9 | t9 ();
0x0008959c move s2, v0 | s2 = v0;
0x000895a0 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (s4 <= 0) {
0x000895a4 blez s4, 0x896a8 | goto label_5;
| }
0x000895a8 lw v0, -0x7fb8(gp) | v0 = *(gp);
0x000895ac lw s6, -0x7928(gp) | s6 = *(gp);
0x000895b0 sw v0, 0x20(sp) | *(var_20h) = v0;
0x000895b4 lw v0, -0x78e4(gp) | v0 = *(gp);
0x000895b8 lw s5, -0x7f88(gp) | s5 = *(gp);
0x000895bc sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x000895c0 lw v0, -0x7994(gp) | v0 = *(gp);
0x000895c4 lw s7, -0x7158(gp) | s7 = *(gp);
0x000895c8 addiu v0, v0, 0x6138 | v0 += 0x6138;
0x000895cc move s0, zero | s0 = 0;
0x000895d0 sw v0, 0x1c(sp) | *(var_1ch_2) = v0;
0x000895d4 b 0x89628 |
| while (v0 != 0) {
0x000895d8 lw s1, 8(s3) | s1 = *((s3 + 2));
0x000895dc move t9, s6 | t9 = s6;
0x000895e0 addiu s0, s0, 1 | s0++;
0x000895e4 lwx s1, v1(s1) | __asm ("lwx s1, v1(s1)");
0x000895e8 move a0, s1 | a0 = s1;
0x000895ec jalr t9 | t9 ();
0x000895f0 move fp, v0 | fp = v0;
| if (v0 == 0) {
0x000895f4 beqz v0, 0x89654 | goto label_6;
| }
| label_0:
0x000895f8 move a1, fp | a1 = fp;
0x000895fc move t9, s5 | t9 = s5;
0x00089600 move a0, s2 | a0 = s2;
0x00089604 jalr t9 | t9 ();
0x00089608 lw t9, 0x20(sp) | t9 = *(var_20h);
| if (v0 == 0) {
0x0008960c beqz v0, 0x89680 | goto label_7;
| }
0x00089610 lw t9, (s7) | t9 = *(s7);
| label_1:
0x00089614 move a0, fp | a0 = fp;
0x00089618 jalr t9 | t9 ();
0x0008961c lw gp, 0x10(sp) | gp = *(var_10h_2);
| label_2:
0x00089620 lw a1, -0x7168(gp) | a1 = *(gp);
| if (s4 == s0) {
0x00089624 beq s4, s0, 0x896ac | goto label_8;
| }
0x00089628 lw v0, (s3) | v0 = *(s3);
0x0008962c slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x00089630 sll v1, s0, 2 | v1 = s0 << 2;
0x00089634 bnez v0, 0x895d8 |
| }
0x00089638 move s1, zero | s1 = 0;
0x0008963c move t9, s6 | t9 = s6;
0x00089640 move a0, s1 | a0 = s1;
0x00089644 jalr t9 | t9 ();
0x00089648 move fp, v0 | fp = v0;
0x0008964c addiu s0, s0, 1 | s0++;
| if (v0 != 0) {
0x00089650 bnez v0, 0x895f8 | goto label_0;
| }
| label_6:
0x00089654 lw t9, 0x1c(sp) | t9 = *(var_1ch_2);
0x00089658 jalr t9 | t9 ();
0x0008965c nop |
0x00089660 move fp, v0 | fp = v0;
0x00089664 move a1, fp | a1 = fp;
0x00089668 move t9, s5 | t9 = s5;
0x0008966c move a0, s2 | a0 = s2;
0x00089670 jalr t9 | t9 ();
0x00089674 lw t9, (s7) | t9 = *(s7);
| if (v0 == 0) {
0x00089678 bnel v0, zero, 0x89614 | goto label_1;
| }
0x0008967c lw t9, 0x20(sp) | t9 = *(var_20h);
| label_7:
0x00089680 move a2, fp | a2 = fp;
0x00089684 move a1, fp | a1 = fp;
0x00089688 move a0, s2 | a0 = s2;
0x0008968c jalr t9 | t9 ();
0x00089690 lw a0, 0x18(sp) | a0 = *(var_18h);
0x00089694 lw t9, 0x24(sp) | t9 = *(var_24h_2);
0x00089698 move a1, s1 | a1 = s1;
0x0008969c jalr t9 | t9 ();
0x000896a0 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 >= 0) {
0x000896a4 bgez v0, 0x89620 | goto label_2;
| }
| label_5:
0x000896a8 lw a1, -0x7168(gp) | a1 = *(gp);
| label_8:
0x000896ac lw t9, -0x7f7c(gp) | t9 = *((gp - 8159));
0x000896b0 move a0, s2 | a0 = s2;
0x000896b4 jalr t9 | t9 ();
| label_4:
0x000896b8 lw ra, 0x4c(sp) | ra = *(var_24h);
0x000896bc lw v0, 0x18(sp) | v0 = *(var_18h);
0x000896c0 lw fp, 0x48(sp) | fp = *(var_48h);
0x000896c4 lw s7, 0x44(sp) | s7 = *(var_1ch);
0x000896c8 lw s6, 0x40(sp) | s6 = *(var_40h);
0x000896cc lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x000896d0 lw s4, 0x38(sp) | s4 = *(var_10h);
0x000896d4 lw s3, 0x34(sp) | s3 = *(var_34h);
0x000896d8 lw s2, 0x30(sp) | s2 = *(var_30h);
0x000896dc lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x000896e0 lw s0, 0x28(sp) | s0 = *(var_28h);
0x000896e4 addiu sp, sp, 0x50 |
0x000896e8 jr ra | return v1;
0x0008a89c lui gp, 0x10 |
0x0008a8a0 addiu gp, gp, 0x6dd4 |
0x0008a8a4 addu gp, gp, t9 | gp += t9;
0x0008a8a8 move v0, a0 | v0 = a0;
| if (a0 != 0) {
0x0008a8ac beqz a0, 0x8a914 |
0x0008a8b0 lw v1, (a0) | v1 = *(a0);
| if (v1 == 0) {
0x0008a8b4 beqz v1, 0x8a914 | goto label_9;
| }
0x0008a8b8 nop |
0x0008a8bc lw v1, 8(a0) | v1 = *((a0 + 2));
0x0008a8c0 lw t9, -0x7994(gp) | t9 = *(gp);
| if (v1 == 0) {
0x0008a8c4 beqz v1, 0x8a914 | goto label_9;
| }
0x0008a8c8 addiu sp, sp, -0x28 |
0x0008a8cc sw gp, 0x10(sp) | *(var_10h) = gp;
0x0008a8d0 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0008a8d4 sw a0, 0x1c(sp) | *(var_1ch) = a0;
0x0008a8d8 addiu t9, t9, 0x6ee4 | t9 += aav.0x00006ee4;
0x0008a8dc bal 0x86ee4 | fcn_00086ee4 ();
0x0008a8e0 nop |
0x0008a8e4 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x0008a8e8 lw v1, (v0) | v1 = *(v0);
0x0008a8ec lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 == 0) {
0x0008a8f0 beqz v1, 0x8a91c | goto label_10;
| }
0x0008a8f4 lw v1, 8(v0) | v1 = *((v0 + 2));
0x0008a8f8 lw t9, -0x78d0(gp) | t9 = *(gp);
| if (v1 == 0) {
0x0008a8fc beqz v1, 0x8a91c | goto label_10;
| }
0x0008a900 lw ra, 0x24(sp) | ra = *(var_24h);
0x0008a904 move a0, v0 | a0 = v0;
0x0008a908 addiu t9, t9, -0x6acc | t9 += -0x6acc;
0x0008a90c addiu sp, sp, 0x28 |
0x0008a910 b 0x89534 | goto label_3;
| }
| label_9:
0x0008a914 jr ra | return v1;
0x0008a918 nop |
| label_10:
0x0008a91c lw ra, 0x24(sp) | ra = *(var_24h);
0x0008a920 addiu sp, sp, 0x28 |
0x0008a924 jr ra | return v1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x9c488 */
| #include <stdint.h>
|
; (fcn) sym.xmlXPathEvalPredicate () | void xmlXPathEvalPredicate () {
0x0009c488 lui gp, 0xf |
0x0009c48c addiu gp, gp, 0x51e8 |
0x0009c490 addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x0009c494 beqz a0, 0x9c5d0 |
0x0009c498 nop |
| if (a1 == 0) {
0x0009c49c beqz a1, 0x9c5d8 | goto label_0;
| }
0x0009c4a0 nop |
0x0009c4a4 addiu sp, sp, -0x28 |
0x0009c4a8 lw v0, (a1) | v0 = *(a1);
0x0009c4ac sw gp, 0x10(sp) | *(var_10h) = gp;
0x0009c4b0 sltiu v1, v0, 0xa | v1 = (v0 < 0xa) ? 1 : 0;
0x0009c4b4 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0009c4b8 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0009c4bc sll v1, v0, 2 | v1 = v0 << 2;
| if (v1 != 0) {
0x0009c4c0 beqz v1, 0x9c57c |
0x0009c4c4 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x0009c4c8 addiu v0, v0, 0xf10 | v0 += 0xf10;
0x0009c4cc lwx v0, v1(v0) | __asm ("lwx v0, v1(v0)");
0x0009c4d0 addu v0, v0, gp | v0 += gp;
0x0009c4d4 jr v0 | v0 ();
0x0009c4d8 nop |
| }
0x0009c57c lw t9, -0x7f34(gp) | t9 = *(gp);
0x0009c580 bal 0xb35ac | sym_xmlGenericError ();
0x0009c584 nop |
0x0009c588 lw gp, 0x10(sp) | gp = *(var_10h);
0x0009c58c lw t9, -0x7f38(gp) | t9 = *((gp - 8142));
0x0009c590 lw s0, (v0) | s0 = *(v0);
0x0009c594 bal 0xb365c | sym_xmlGenericErrorContext ();
0x0009c598 lw gp, 0x10(sp) | gp = *(var_10h);
0x0009c59c lw a0, (v0) | a0 = *(v0);
0x0009c5a0 move t9, s0 | t9 = s0;
0x0009c5a4 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0009c5a8 lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x0009c5ac addiu a3, zero, 0x3850 | a3 = 0x3850;
0x0009c5b0 addiu a2, a2, 0x10d8 | a2 += 0x10d8;
0x0009c5b4 addiu a1, a1, 0x10f4 | a1 += 0x10f4;
0x0009c5b8 jalr t9 | t9 ();
0x0009c5bc lw ra, 0x24(sp) | ra = *(var_24h);
0x0009c5c0 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0009c5c4 move v0, zero | v0 = 0;
0x0009c5c8 addiu sp, sp, 0x28 |
0x0009c5cc jr ra | return v0;
| }
0x0009c5d0 move v0, zero | v0 = 0;
0x0009c5d4 jr ra | return v0;
| label_0:
0x0009c5d8 move v0, zero | v0 = 0;
0x0009c5dc jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x89b6c */
| #include <stdint.h>
|
; (fcn) sym.xmlXPathFreeNodeSet () | void xmlXPathFreeNodeSet () {
0x00089b6c lui gp, 0x10 |
0x00089b70 addiu gp, gp, 0x7b04 |
0x00089b74 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00089b78 beqz a0, 0x89c6c | goto label_2;
| }
0x00089b7c nop |
0x00089b80 addiu sp, sp, -0x30 |
0x00089b84 lw v1, 8(a0) | v1 = *((a0 + 2));
0x00089b88 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00089b8c sw s1, 0x20(sp) | *(var_20h) = s1;
0x00089b90 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00089b94 sw s3, 0x28(sp) | *(var_28h) = s3;
0x00089b98 sw s2, 0x24(sp) | *(var_24h) = s2;
0x00089b9c sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00089ba0 move s1, a0 | s1 = a0;
| if (v1 == 0) {
0x00089ba4 beqz v1, 0x89c44 | goto label_3;
| }
0x00089ba8 lw a1, (a0) | a1 = *(a0);
| if (a1 <= 0) {
0x00089bac blezl a1, 0x89c10 | goto label_4;
| }
0x00089bb0 lw s0, -0x7158(gp) | s0 = *(gp);
0x00089bb4 lw s2, -0x78f0(gp) | s2 = *((gp - 7740));
0x00089bb8 move s0, zero | s0 = 0;
0x00089bbc addiu s3, zero, 0x12 | s3 = 0x12;
0x00089bc0 b 0x89bd0 |
| while (a0 == 0) {
0x00089bc4 slt v0, s0, a1 | v0 = (s0 < a1) ? 1 : 0;
| if (v0 == 0) {
| label_0:
0x00089bc8 beql v0, zero, 0x89c10 | goto label_4;
| }
0x00089bcc lw s0, -0x7158(gp) | s0 = *(gp);
| label_1:
0x00089bd0 sll a0, s0, 2 | a0 = s0 << 2;
0x00089bd4 lwx a0, a0(v1) | __asm ("lwx a0, a0(v1)");
0x00089bd8 addiu s0, s0, 1 | s0++;
0x00089bdc beqz a0, 0x89bc4 |
| }
0x00089be0 lw v0, 4(a0) | v0 = *((a0 + 1));
0x00089be4 slt v0, s0, a1 | v0 = (s0 < a1) ? 1 : 0;
| if (v0 != s3) {
0x00089be8 bne v0, s3, 0x89bc8 | goto label_0;
| }
0x00089bec move t9, s2 | t9 = s2;
0x00089bf0 bal 0x88164 | sym_xmlXPathNodeSetFreeNs ();
0x00089bf4 nop |
0x00089bf8 lw a1, (s1) | a1 = *(s1);
0x00089bfc lw gp, 0x10(sp) | gp = *(var_10h);
0x00089c00 slt v0, s0, a1 | v0 = (s0 < a1) ? 1 : 0;
0x00089c04 lw v1, 8(s1) | v1 = *((s1 + 2));
| if (v0 != 0) {
0x00089c08 bnez v0, 0x89bd0 | goto label_1;
| }
0x00089c0c lw s0, -0x7158(gp) | s0 = *(gp);
| label_4:
0x00089c10 lw t9, (s0) | t9 = *(s0);
0x00089c14 move a0, v1 | a0 = v1;
0x00089c18 jalr t9 | t9 ();
0x00089c1c lw gp, 0x10(sp) | gp = *(var_10h);
0x00089c20 lw t9, (s0) | t9 = *(s0);
0x00089c24 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00089c28 lw s3, 0x28(sp) | s3 = *(var_28h);
0x00089c2c lw s2, 0x24(sp) | s2 = *(var_24h);
0x00089c30 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00089c34 move a0, s1 | a0 = s1;
0x00089c38 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00089c3c addiu sp, sp, 0x30 |
0x00089c40 jr t9 | t9 ();
| label_3:
0x00089c44 lw s0, -0x7158(gp) | s0 = *(gp);
0x00089c48 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00089c4c lw s3, 0x28(sp) | s3 = *(var_28h);
0x00089c50 lw t9, (s0) | t9 = *(s0);
0x00089c54 lw s2, 0x24(sp) | s2 = *(var_24h);
0x00089c58 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00089c5c move a0, s1 | a0 = s1;
0x00089c60 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00089c64 addiu sp, sp, 0x30 |
0x00089c68 jr t9 | t9 ();
| label_2:
0x00089c6c jr ra | return v0;
0x00089c70 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x8a5a4 */
| #include <stdint.h>
|
; (fcn) sym.xmlXPathFreeNodeSetList () | void xmlXPathFreeNodeSetList () {
0x0008a5a4 lui gp, 0x10 |
0x0008a5a8 addiu gp, gp, 0x70cc |
0x0008a5ac addu gp, gp, t9 | gp += t9;
0x0008a5b0 lw v0, -0x7158(gp) | v0 = *(gp);
| if (a0 != 0) {
0x0008a5b4 beqz a0, 0x8a5c4 |
0x0008a5b8 lw t9, (v0) | t9 = *(v0);
0x0008a5bc jr t9 | t9 ();
0x0008a5c0 nop |
| }
0x0008a5c4 jr ra | return v0;
0x0008a5c8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x8a928 */
| #include <stdint.h>
|
; (fcn) sym.xmlXPathHasSameNodes () | void xmlXPathHasSameNodes () {
0x0008a928 lui gp, 0x10 |
0x0008a92c addiu gp, gp, 0x6d48 |
0x0008a930 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x0008a934 beqz a0, 0x8aa0c | goto label_1;
| }
0x0008a938 nop |
0x0008a93c addiu sp, sp, -0x30 |
0x0008a940 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x0008a944 lw s1, (a0) | s1 = *(a0);
0x0008a948 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0008a94c sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0008a950 sw s4, 0x28(sp) | *(var_28h) = s4;
0x0008a954 sw s3, 0x24(sp) | *(var_24h) = s3;
0x0008a958 sw s2, 0x20(sp) | *(var_20h) = s2;
0x0008a95c sw s0, 0x18(sp) | *(var_18h) = s0;
0x0008a960 move v0, zero | v0 = 0;
| if (s1 == 0) {
0x0008a964 beqz s1, 0x8a9ec | goto label_2;
| }
0x0008a968 lw v0, 8(a0) | v0 = *((a0 + 2));
0x0008a96c move v0, zero | v0 = 0;
| if (v0 == 0) {
0x0008a970 beqz v0, 0x8a9ec | goto label_2;
| }
| if (a1 == 0) {
0x0008a974 beql a1, zero, 0x8a9f0 | goto label_3;
| }
0x0008a978 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0008a97c lw v0, (a1) | v0 = *(a1);
0x0008a980 move v0, zero | v0 = 0;
| if (v0 == 0) {
0x0008a984 beqz v0, 0x8a9ec | goto label_2;
| }
0x0008a988 lw v0, 8(a1) | v0 = *((a1 + 2));
0x0008a98c move v0, zero | v0 = 0;
| if (v0 == 0) {
0x0008a990 beqz v0, 0x8a9ec | goto label_2;
| }
0x0008a994 move s3, a1 | s3 = a1;
| if (s1 <= 0) {
0x0008a998 blez s1, 0x8a9ec | goto label_2;
| }
0x0008a99c move s2, a0 | s2 = a0;
0x0008a9a0 lw s4, -0x78e8(gp) | s4 = *(gp);
0x0008a9a4 move v0, s1 | v0 = s1;
0x0008a9a8 move s0, zero | s0 = 0;
0x0008a9ac b 0x8a9d8 |
| while (v0 != 0) {
0x0008a9b0 lw a1, 8(s2) | a1 = *((s2 + 2));
0x0008a9b4 lwx a1, v1(a1) | __asm ("lwx a1, v1(a1)");
| label_0:
0x0008a9b8 move t9, s4 | t9 = s4;
0x0008a9bc move a0, s3 | a0 = s3;
0x0008a9c0 bal 0x88dac | sym_xmlXPathNodeSetContains ();
0x0008a9c4 addiu s0, s0, 1 | s0++;
| if (v0 != 0) {
0x0008a9c8 bnez v0, 0x8aa14 | goto label_4;
| }
0x0008a9cc move v0, zero | v0 = 0;
| if (s1 == s0) {
0x0008a9d0 beq s1, s0, 0x8a9ec | goto label_2;
| }
0x0008a9d4 lw v0, (s2) | v0 = *(s2);
0x0008a9d8 slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x0008a9dc sll v1, s0, 2 | v1 = s0 << 2;
0x0008a9e0 bnez v0, 0x8a9b0 |
| }
0x0008a9e4 move a1, zero | a1 = 0;
0x0008a9e8 b 0x8a9b8 | goto label_0;
| do {
| label_2:
0x0008a9ec lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_3:
0x0008a9f0 lw s4, 0x28(sp) | s4 = *(var_28h);
0x0008a9f4 lw s3, 0x24(sp) | s3 = *(var_24h);
0x0008a9f8 lw s2, 0x20(sp) | s2 = *(var_20h);
0x0008a9fc lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0008aa00 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0008aa04 addiu sp, sp, 0x30 |
0x0008aa08 jr ra | return v0;
| label_1:
0x0008aa0c move v0, zero | v0 = 0;
0x0008aa10 jr ra | return v0;
| label_4:
0x0008aa14 addiu v0, zero, 1 | v0 = 1;
0x0008aa18 b 0x8a9ec |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x8aab8 */
| #include <stdint.h>
|
; (fcn) sym.xmlXPathLeadingSorted () | void xmlXPathLeadingSorted () {
0x0008aab8 lui gp, 0x10 |
0x0008aabc addiu gp, gp, 0x6bb8 |
0x0008aac0 addu gp, gp, t9 | gp += t9;
0x0008aac4 move v0, a0 | v0 = a0;
| if (a1 != 0) {
0x0008aac8 beqz a1, 0x8ab04 |
0x0008aacc lw v1, (a1) | v1 = *(a1);
| if (v1 == 0) {
0x0008aad0 beqz v1, 0x8ab04 | goto label_0;
| }
0x0008aad4 nop |
0x0008aad8 lw a1, 8(a1) | a1 = *((a1 + 2));
0x0008aadc slti v1, v1, 2 | v1 = (v1 < 2) ? 1 : 0;
| if (a1 == 0) {
0x0008aae0 beqz a1, 0x8ab04 | goto label_0;
| }
| if (v1 != 0) {
0x0008aae4 bnez v1, 0x8ab04 | goto label_0;
| }
0x0008aae8 nop |
0x0008aaec lw a1, 4(a1) | a1 = *((a1 + 1));
0x0008aaf0 lw t9, -0x78d0(gp) | t9 = *(gp);
| if (a1 == 0) {
0x0008aaf4 beqz a1, 0x8ab04 | goto label_0;
| }
0x0008aaf8 addiu t9, t9, -0x6cfc | t9 += -0x6cfc;
0x0008aafc b 0x89304 | void (*0x89304)() ();
0x0008ab00 nop |
| }
| label_0:
0x0008ab04 jr ra | return v1;
0x0008ab08 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x840a0 */
| #include <stdint.h>
|
; (fcn) sym.xmlXPathNextAncestor () | void xmlXPathNextAncestor () {
0x000840a0 lui gp, 0x11 |
0x000840a4 addiu gp, gp, -0x2a30 |
0x000840a8 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x000840ac beqz a0, 0x84268 | void (*0x84268)() ();
| }
0x000840b0 nop |
0x000840b4 lw v1, 0xc(a0) | v1 = *((a0 + 3));
| if (v1 == 0) {
0x000840b8 beqz v1, 0x84268 | void (*0x84268)() ();
| }
0x000840bc nop |
0x000840c0 addiu sp, sp, -0x28 |
0x000840c4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000840c8 sw s1, 0x20(sp) | *(var_20h) = s1;
0x000840cc sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000840d0 sw ra, 0x24(sp) | *(var_24h) = ra;
0x000840d4 move s0, a1 | s0 = a1;
0x000840d8 move s1, a0 | s1 = a0;
| if (a1 == 0) {
0x000840dc beqz a1, 0x84180 | goto label_4;
| }
0x000840e0 lw v0, (v1) | v0 = *(v1);
0x000840e4 lw v1, 0xc(v0) | v1 = *((v0 + 3));
| if (v1 == a1) {
0x000840e8 beql v1, a1, 0x84140 | goto label_2;
| }
0x000840ec lw ra, 0x24(sp) | ra = *(var_24h);
0x000840f0 move v0, zero | v0 = 0;
| if (v0 == a1) {
0x000840f4 beq v0, a1, 0x8416c | goto label_1;
| }
0x000840f8 lw v0, 4(a1) | v0 = *((a1 + 1));
0x000840fc sltiu v1, v0, 0x15 | v1 = (v0 < 0x15) ? 1 : 0;
0x00084100 addiu a0, zero, 1 | a0 = 1;
| if (v1 == 0) {
0x00084104 beqz v1, 0x84168 | goto label_0;
| }
0x00084108 lui v1, 0x1b | v1 = 0x1b0000;
0x0008410c sllv v0, a0, v0 | v0 = a0 << v0;
0x00084110 ori v1, v1, 0xd1fa | v1 |= 0xd1fa;
0x00084114 and v1, v0, v1 | v1 = v0 & v1;
0x00084118 lw v0, 0x14(a1) | v0 = *((a1 + 5));
| if (v1 == 0) {
0x0008411c bnel v1, zero, 0x841b4 | goto label_5;
| }
0x00084120 ext v1, v0, 0x12, 1 | __asm ("ext v1, v0, 0x12, 1");
0x00084124 lw v0, (a1) | v0 = *(a1);
| if (v1 == 0) {
0x00084128 bnel v1, zero, 0x84150 | goto label_6;
| }
0x0008412c andi v0, v0, 4 | v0 &= 4;
0x00084130 move v0, zero | v0 = 0;
| if (v0 == 0) {
0x00084134 beqz v0, 0x8416c | goto label_1;
| }
0x00084138 lw v0, 0x14(s0) | v0 = *((s0 + 5));
| label_3:
0x0008413c lw ra, 0x24(sp) | ra = *(var_24h);
| do {
| label_2:
0x00084140 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00084144 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00084148 addiu sp, sp, 0x28 |
0x0008414c jr ra | return v0;
| if (v0 == 0) {
| label_6:
0x00084150 beql v0, zero, 0x8416c | goto label_1;
| }
0x00084154 move v0, zero | v0 = 0;
0x00084158 lw a0, 4(v0) | a0 = *((v0 + 1));
0x0008415c addiu v1, zero, 0x12 | v1 = 0x12;
0x00084160 lw ra, 0x24(sp) | ra = *(var_24h);
0x00084164 bne a0, v1, 0x84140 |
| } while (a0 != v1);
| label_0:
0x00084168 move v0, zero | v0 = 0;
| do {
| label_1:
0x0008416c lw ra, 0x24(sp) | ra = *(var_24h);
0x00084170 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00084174 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00084178 addiu sp, sp, 0x28 |
0x0008417c jr ra | return v0;
| label_4:
0x00084180 lw a1, 4(v1) | a1 = *((v1 + 1));
0x00084184 move v0, zero | v0 = 0;
0x00084188 beqz a1, 0x8416c |
| } while (a1 == 0);
0x0008418c lw v0, 4(a1) | v0 = *((a1 + 1));
0x00084190 sltiu a0, v0, 0x15 | a0 = (v0 < 0x15) ? 1 : 0;
0x00084194 sll a0, v0, 2 | a0 = v0 << 2;
| if (a0 == 0) {
0x00084198 beqz a0, 0x84168 | goto label_0;
| }
0x0008419c lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x000841a0 addiu v0, v0, 0xab0 | v0 += 0xab0;
0x000841a4 lwx v0, a0(v0) | __asm ("lwx v0, a0(v0)");
0x000841a8 addu v0, v0, gp | v0 += gp;
0x000841ac jr v0 | v0 ();
0x000841b0 nop |
| if (v0 == 0) {
| label_5:
0x000841b4 beql v0, zero, 0x8416c | goto label_1;
| }
0x000841b8 move v0, zero | v0 = 0;
0x000841bc lw v1, 4(v0) | v1 = *((v0 + 1));
0x000841c0 lw ra, 0x24(sp) | ra = *(var_24h);
| if (v1 != a0) {
0x000841c4 bne v1, a0, 0x84140 | goto label_2;
| }
0x000841c8 lw a0, 8(v0) | a0 = *((v0 + 2));
0x000841cc addiu v0, zero, 0x20 | v0 = 0x20;
0x000841d0 lbu v1, (a0) | v1 = *(a0);
0x000841d4 lw t9, -0x7f90(gp) | t9 = *((gp - 8164));
| if (v1 == v0) {
0x000841d8 beq v1, v0, 0x84168 | goto label_0;
| }
0x000841dc lw a1, -0x7f94(gp) | a1 = *((gp - 8165));
0x000841e0 addiu a1, a1, 0xf40 | a1 += 0xf40;
0x000841e4 jalr t9 | t9 ();
0x000841e8 move v0, zero | v0 = 0;
| if (v0 == 0) {
0x000841ec bnel v0, zero, 0x8416c | goto label_1;
| }
0x000841f0 lw v0, 0x14(s0) | v0 = *((s0 + 5));
0x000841f4 b 0x8413c | goto label_3;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x84270 */
| #include <stdint.h>
|
; (fcn) sym.xmlXPathNextAncestorOrSelf () | void xmlXPathNextAncestorOrSelf () {
0x00084270 lui gp, 0x11 |
0x00084274 addiu gp, gp, -0x2c00 |
0x00084278 addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x0008427c beqz a0, 0x842a8 |
0x00084280 nop |
0x00084284 lw v0, 0xc(a0) | v0 = *((a0 + 3));
| if (v0 == 0) {
0x00084288 beqz v0, 0x842b0 | goto label_0;
| }
0x0008428c nop |
0x00084290 lw t9, -0x7930(gp) | t9 = *(gp);
| if (a1 != 0) {
0x00084294 beqz a1, 0x842a0 |
0x00084298 b 0x840a0 | void (*0x840a0)() ();
0x0008429c nop |
| }
0x000842a0 lw v0, 4(v0) | v0 = *((v0 + 1));
0x000842a4 jr ra | return v0;
| }
0x000842a8 move v0, zero | v0 = 0;
0x000842ac jr ra | return v0;
| label_0:
0x000842b0 move v0, zero | v0 = 0;
0x000842b4 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x89164 */
| #include <stdint.h>
|
; (fcn) sym.xmlXPathNodeSetAddUnique () | void xmlXPathNodeSetAddUnique () {
0x00089164 lui gp, 0x11 |
0x00089168 addiu gp, gp, -0x7af4 |
0x0008916c addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00089170 beqz a0, 0x892cc | goto label_2;
| }
0x00089174 nop |
| if (a1 == 0) {
0x00089178 beqz a1, 0x892d4 | goto label_3;
| }
0x0008917c nop |
0x00089180 addiu sp, sp, -0x28 |
0x00089184 lw v0, 4(a0) | v0 = *((a0 + 1));
0x00089188 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0008918c sw s2, 0x20(sp) | *(var_20h) = s2;
0x00089190 sw s0, 0x18(sp) | *(var_18h) = s0;
0x00089194 sw ra, 0x24(sp) | *(var_24h) = ra;
0x00089198 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x0008919c move s2, a1 | s2 = a1;
0x000891a0 move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x000891a4 beqz v0, 0x891f4 | goto label_4;
| }
0x000891a8 lw v1, (a0) | v1 = *(a0);
| if (v0 == v1) {
0x000891ac beql v0, v1, 0x89288 | goto label_5;
| }
0x000891b0 lui a0, 0x98 | a0 = 0x980000;
0x000891b4 lw v0, 8(a0) | v0 = *((a0 + 2));
| label_0:
0x000891b8 lw a1, 4(s2) | a1 = *((s2 + 1));
0x000891bc sll s1, v1, 2 | s1 = v1 << 2;
0x000891c0 addiu a0, zero, 0x12 | a0 = 0x12;
0x000891c4 addiu v1, v1, 1 | v1++;
0x000891c8 addu s1, v0, s1 | s1 = v0 + s1;
| if (a1 == a0) {
0x000891cc beq a1, a0, 0x89250 | goto label_6;
| }
| do {
0x000891d0 sw v1, (s0) | *(s0) = v1;
0x000891d4 move v0, zero | v0 = 0;
0x000891d8 sw s2, (s1) | *(s1) = s2;
| label_1:
0x000891dc lw ra, 0x24(sp) | ra = *(var_24h);
0x000891e0 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000891e4 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000891e8 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000891ec addiu sp, sp, 0x28 |
0x000891f0 jr ra | return v0;
| label_4:
0x000891f4 lw v0, -0x716c(gp) | v0 = *(gp);
0x000891f8 lw t9, (v0) | t9 = *(v0);
0x000891fc addiu a0, zero, 0x28 | a0 = 0x28;
0x00089200 jalr t9 | t9 ();
0x00089204 lw gp, 0x10(sp) | gp = *(var_10h);
0x00089208 sw v0, 8(s0) | *((s0 + 2)) = v0;
| if (v0 == 0) {
0x0008920c beqz v0, 0x892dc | goto label_7;
| }
0x00089210 lw t9, -0x6ea4(gp) | t9 = *((gp - 7081));
0x00089214 move a1, zero | a1 = 0;
0x00089218 move a0, v0 | a0 = v0;
0x0008921c addiu a2, zero, 0x28 | a2 = 0x28;
0x00089220 jalr t9 | t9 ();
0x00089224 addiu v0, zero, 0xa | v0 = 0xa;
0x00089228 lw v1, (s0) | v1 = *(s0);
0x0008922c lw gp, 0x10(sp) | gp = *(var_10h);
0x00089230 lw a1, 4(s2) | a1 = *((s2 + 1));
0x00089234 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x00089238 lw v0, 8(s0) | v0 = *((s0 + 2));
0x0008923c sll s1, v1, 2 | s1 = v1 << 2;
0x00089240 addiu a0, zero, 0x12 | a0 = 0x12;
0x00089244 addiu v1, v1, 1 | v1++;
0x00089248 addu s1, v0, s1 | s1 = v0 + s1;
0x0008924c bne a1, a0, 0x891d0 |
| } while (a1 != a0);
| label_6:
0x00089250 lw t9, -0x7994(gp) | t9 = *(gp);
0x00089254 lw a0, (s2) | a0 = *(s2);
0x00089258 move a1, s2 | a1 = s2;
0x0008925c addiu t9, t9, 0x54d0 | t9 += 0x54d0;
0x00089260 sw v1, (s0) | *(s0) = v1;
0x00089264 bal 0x854d0 | fcn_000854d0 ();
0x00089268 lw ra, 0x24(sp) | ra = *(var_24h);
0x0008926c sw v0, (s1) | *(s1) = v0;
0x00089270 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00089274 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00089278 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0008927c move v0, zero | v0 = 0;
0x00089280 addiu sp, sp, 0x28 |
0x00089284 jr ra | return v0;
| label_5:
0x00089288 ori a0, a0, 0x9680 | a0 |= aav.0x00009680;
0x0008928c slt v0, v0, a0 | v0 = (v0 < a0) ? 1 : 0;
0x00089290 lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
| if (v0 == 0) {
0x00089294 beqz v0, 0x892fc | goto label_8;
| }
0x00089298 lw v0, -0x6e24(gp) | v0 = *(gp);
0x0008929c lw a0, 8(s0) | a0 = *((s0 + 2));
0x000892a0 lw t9, (v0) | t9 = *(v0);
0x000892a4 sll a1, v1, 3 | a1 = v1 << 3;
0x000892a8 jalr t9 | t9 ();
0x000892ac lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000892b0 beqz v0, 0x892dc |
0x000892b4 lw a0, 4(s0) | a0 = *((s0 + 1));
0x000892b8 lw v1, (s0) | v1 = *(s0);
0x000892bc sll a0, a0, 1 | a0 <<= 1;
0x000892c0 sw v0, 8(s0) | *((s0 + 2)) = v0;
0x000892c4 sw a0, 4(s0) | *((s0 + 1)) = a0;
0x000892c8 b 0x891b8 | goto label_0;
| label_2:
0x000892cc addiu v0, zero, -1 | v0 = -1;
0x000892d0 jr ra | return v0;
| label_3:
0x000892d4 addiu v0, zero, -1 | v0 = -1;
0x000892d8 jr ra | return v0;
| }
| label_7:
0x000892dc lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x000892e0 addiu a0, a0, 0x10a8 | a0 += 0x10a8;
| do {
0x000892e4 lw t9, -0x7994(gp) | t9 = *(gp);
0x000892e8 addiu t9, t9, 0x4de8 | t9 += 0x4de8;
0x000892ec bal 0x84de8 | fcn_00084de8 ();
0x000892f0 nop |
0x000892f4 addiu v0, zero, -1 | v0 = -1;
0x000892f8 b 0x891dc | goto label_1;
| label_8:
0x000892fc addiu a0, a0, 0x10bc | a0 += aav.0x000010bc;
0x00089300 b 0x892e4 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x884d0 */
| #include <stdint.h>
|
; (fcn) sym.xmlXPathNodeSetCreate () | void xmlXPathNodeSetCreate () {
0x000884d0 lui gp, 0x11 |
0x000884d4 addiu gp, gp, -0x6e60 |
0x000884d8 addu gp, gp, t9 | gp += t9;
0x000884dc addiu sp, sp, -0x28 |
0x000884e0 sw s2, 0x20(sp) | *(var_20h) = s2;
0x000884e4 lw s2, -0x716c(gp) | s2 = *(gp);
0x000884e8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000884ec sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x000884f0 lw t9, (s2) | t9 = *(s2);
0x000884f4 sw s0, 0x18(sp) | *(var_18h) = s0;
0x000884f8 sw ra, 0x24(sp) | *(var_24h) = ra;
0x000884fc move s1, a0 | s1 = a0;
0x00088500 addiu a0, zero, 0xc | a0 = 0xc;
0x00088504 jalr t9 | t9 ();
0x00088508 move s0, v0 | s0 = v0;
0x0008850c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00088510 beqz v0, 0x88610 | goto label_1;
| }
0x00088514 sb zero, (v0) | *(v0) = 0;
0x00088518 sb zero, 1(v0) | *((v0 + 1)) = 0;
0x0008851c sb zero, 2(v0) | *((v0 + 2)) = 0;
0x00088520 sb zero, 3(v0) | *((v0 + 3)) = 0;
0x00088524 sb zero, 4(v0) | *((v0 + 4)) = 0;
0x00088528 sb zero, 5(v0) | *((v0 + 5)) = 0;
0x0008852c sb zero, 6(v0) | *((v0 + 6)) = 0;
0x00088530 sb zero, 7(v0) | *((v0 + 7)) = 0;
0x00088534 sb zero, 8(v0) | *((v0 + 8)) = 0;
0x00088538 sb zero, 9(v0) | *((v0 + 9)) = 0;
0x0008853c sb zero, 0xa(v0) | *((v0 + 10)) = 0;
0x00088540 sb zero, 0xb(v0) | *((v0 + 11)) = 0;
| if (s1 != 0) {
0x00088544 beqz s1, 0x885a8 |
0x00088548 lw t9, (s2) | t9 = *(s2);
0x0008854c addiu a0, zero, 0x28 | a0 = 0x28;
0x00088550 jalr t9 | t9 ();
0x00088554 lw gp, 0x10(sp) | gp = *(var_10h);
0x00088558 sw v0, 8(s0) | *((s0 + 2)) = v0;
| if (v0 == 0) {
0x0008855c beqz v0, 0x8862c | goto label_2;
| }
0x00088560 lw t9, -0x6ea4(gp) | t9 = *((gp - 7081));
0x00088564 move a0, v0 | a0 = v0;
0x00088568 addiu a2, zero, 0x28 | a2 = 0x28;
0x0008856c move a1, zero | a1 = 0;
0x00088570 jalr t9 | t9 ();
0x00088574 lw v1, 4(s1) | v1 = *((s1 + 1));
0x00088578 addiu a0, zero, 0xa | a0 = 0xa;
0x0008857c addiu v0, zero, 0x12 | v0 = 0x12;
0x00088580 lw gp, 0x10(sp) | gp = *(var_10h);
0x00088584 sw a0, 4(s0) | *((s0 + 1)) = a0;
| if (v1 == v0) {
0x00088588 beq v1, v0, 0x885c4 | goto label_3;
| }
0x0008858c lw v0, (s0) | v0 = *(s0);
0x00088590 lw v1, 8(s0) | v1 = *((s0 + 2));
0x00088594 sll a0, v0, 2 | a0 = v0 << 2;
0x00088598 addu v1, v1, a0 | v1 += a0;
0x0008859c addiu v0, v0, 1 | v0++;
0x000885a0 sw v0, (s0) | *(s0) = v0;
0x000885a4 sw s1, (v1) | *(v1) = s1;
| }
0x000885a8 lw ra, 0x24(sp) | ra = *(var_24h);
| do {
| label_0:
0x000885ac move v0, s0 | v0 = s0;
0x000885b0 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000885b4 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000885b8 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000885bc addiu sp, sp, 0x28 |
0x000885c0 jr ra | return v0;
| label_3:
0x000885c4 lw v0, (s0) | v0 = *(s0);
0x000885c8 lw t9, -0x7994(gp) | t9 = *(gp);
0x000885cc lw a0, (s1) | a0 = *(s1);
0x000885d0 addiu v1, v0, 1 | v1 = v0 + 1;
0x000885d4 lw s2, 8(s0) | s2 = *((s0 + 2));
0x000885d8 sw v1, (s0) | *(s0) = v1;
0x000885dc move a1, s1 | a1 = s1;
0x000885e0 sll v0, v0, 2 | v0 <<= 2;
0x000885e4 addiu t9, t9, 0x54d0 | t9 += 0x54d0;
0x000885e8 addu s2, s2, v0 | s2 += v0;
0x000885ec bal 0x854d0 | fcn_000854d0 ();
0x000885f0 lw ra, 0x24(sp) | ra = *(var_24h);
0x000885f4 sw v0, (s2) | *(s2) = v0;
0x000885f8 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000885fc move v0, s0 | v0 = s0;
0x00088600 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00088604 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00088608 addiu sp, sp, 0x28 |
0x0008860c jr ra | return v0;
| label_1:
0x00088610 lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x00088614 lw t9, -0x7994(gp) | t9 = *(gp);
0x00088618 addiu t9, t9, 0x4de8 | t9 += 0x4de8;
0x0008861c addiu a0, a0, 0x1014 | a0 += 0x1014;
0x00088620 bal 0x84de8 | fcn_00084de8 ();
0x00088624 lw ra, 0x24(sp) | ra = *(var_24h);
0x00088628 b 0x885ac |
| } while (1);
| label_2:
0x0008862c lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x00088630 lw t9, -0x7994(gp) | t9 = *(gp);
0x00088634 addiu t9, t9, 0x4de8 | t9 += 0x4de8;
0x00088638 addiu a0, a0, 0x1014 | a0 += 0x1014;
0x0008863c bal 0x84de8 | fcn_00084de8 ();
0x00088640 lw gp, 0x10(sp) | gp = *(var_10h);
0x00088644 move a0, s0 | a0 = s0;
0x00088648 lw v0, -0x7158(gp) | v0 = *(gp);
0x0008864c lw t9, (v0) | t9 = *(v0);
0x00088650 move s0, zero | s0 = 0;
0x00088654 jalr t9 | t9 ();
0x00088658 lw ra, 0x24(sp) | ra = *(var_24h);
0x0008865c b 0x885ac | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x9ca9c */
| #include <stdint.h>
|
; (fcn) sym.xmlXPathSetContextNode () | void xmlXPathSetContextNode () {
| if (a0 != 0) {
0x0009ca9c beqz a0, 0x9cad0 |
0x0009caa0 nop |
| if (a1 == 0) {
0x0009caa4 beqz a1, 0x9cad0 | goto label_0;
| }
0x0009caa8 nop |
0x0009caac lw v1, 0x20(a0) | v1 = *((a0 + 8));
0x0009cab0 lw v0, (a1) | v0 = *(a1);
| if (v1 == v0) {
0x0009cab4 bne v1, v0, 0x9cac8 |
0x0009cab8 nop |
0x0009cabc sw a0, 4(a1) | *((a1 + 1)) = a0;
0x0009cac0 move v0, zero | v0 = 0;
0x0009cac4 jr ra | return v0;
| }
0x0009cac8 addiu v0, zero, -1 | v0 = -1;
0x0009cacc jr ra | return v0;
| }
| label_0:
0x0009cad0 addiu v0, zero, -1 | v0 = -1;
0x0009cad4 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x8ac98 */
| #include <stdint.h>
|
; (fcn) sym.xmlXPathTrailingSorted () | void xmlXPathTrailingSorted () {
0x0008ac98 lui gp, 0x10 |
0x0008ac9c addiu gp, gp, 0x69d8 |
0x0008aca0 addu gp, gp, t9 | gp += t9;
0x0008aca4 move v0, a0 | v0 = a0;
| if (a1 != 0) {
0x0008aca8 beqz a1, 0x8ace4 |
0x0008acac lw v1, (a1) | v1 = *(a1);
| if (v1 == 0) {
0x0008acb0 beqz v1, 0x8ace4 | goto label_0;
| }
0x0008acb4 nop |
0x0008acb8 lw a1, 8(a1) | a1 = *((a1 + 2));
| if (a1 == 0) {
0x0008acbc beqz a1, 0x8ace4 | goto label_0;
| }
0x0008acc0 nop |
| if (v1 <= 0) {
0x0008acc4 blez v1, 0x8ace4 | goto label_0;
| }
0x0008acc8 nop |
0x0008accc lw a1, (a1) | a1 = *(a1);
0x0008acd0 lw t9, -0x78d0(gp) | t9 = *(gp);
| if (a1 == 0) {
0x0008acd4 beqz a1, 0x8ace4 | goto label_0;
| }
0x0008acd8 addiu t9, t9, -0x6bec | t9 += -0x6bec;
0x0008acdc b 0x89414 | void (*0x89414)() ();
0x0008ace0 nop |
| }
| label_0:
0x0008ace4 jr ra | return v1;
0x0008ace8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x8acec */
| #include <stdint.h>
|
; (fcn) sym.xmlXPathTrailing () | void xmlXPathTrailing () {
0x0008acec lui gp, 0x10 |
0x0008acf0 addiu gp, gp, 0x6984 |
0x0008acf4 addu gp, gp, t9 | gp += t9;
0x0008acf8 move v0, a0 | v0 = a0;
| if (a1 != 0) {
0x0008acfc beqz a1, 0x8adc0 |
0x0008ad00 lw v1, (a1) | v1 = *(a1);
| if (v1 == 0) {
0x0008ad04 beqz v1, 0x8adc0 | goto label_0;
| }
0x0008ad08 nop |
0x0008ad0c lw v1, 8(a1) | v1 = *((a1 + 2));
| if (v1 == 0) {
0x0008ad10 beqz v1, 0x8adc0 | goto label_0;
| }
0x0008ad14 nop |
0x0008ad18 addiu sp, sp, -0x28 |
0x0008ad1c sw gp, 0x10(sp) | *(var_10h) = gp;
0x0008ad20 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0008ad24 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0008ad28 lw ra, 0x24(sp) | ra = *(var_24h);
| if (a0 != 0) {
0x0008ad2c beqz a0, 0x8adac |
0x0008ad30 lw v1, (a0) | v1 = *(a0);
0x0008ad34 lw s0, 0x20(sp) | s0 = *(var_20h);
| if (v1 == 0) {
0x0008ad38 beqz v1, 0x8adb0 | goto label_1;
| }
0x0008ad3c lw v1, 8(a0) | v1 = *((a0 + 2));
| if (v1 == 0) {
0x0008ad40 beqz v1, 0x8adb0 | goto label_1;
| }
0x0008ad44 nop |
0x0008ad48 lw s0, -0x7994(gp) | s0 = *(gp);
0x0008ad4c sw a1, 0x18(sp) | *(var_18h) = a1;
0x0008ad50 addiu s0, s0, 0x6ee4 | s0 += aav.0x00006ee4;
0x0008ad54 move t9, s0 | t9 = s0;
0x0008ad58 sw a0, 0x1c(sp) | *(var_1ch) = a0;
0x0008ad5c bal 0x86ee4 | fcn_00086ee4 ();
0x0008ad60 lw a1, 0x18(sp) | a1 = *(var_18h);
0x0008ad64 move t9, s0 | t9 = s0;
0x0008ad68 move a0, a1 | a0 = a1;
0x0008ad6c bal 0x86ee4 | fcn_00086ee4 ();
0x0008ad70 lw a1, 0x18(sp) | a1 = *(var_18h);
0x0008ad74 lw gp, 0x10(sp) | gp = *(var_10h);
0x0008ad78 lw v1, (a1) | v1 = *(a1);
0x0008ad7c lw v0, 0x1c(sp) | v0 = *(var_1ch);
| if (v1 <= 0) {
0x0008ad80 blez v1, 0x8adc8 | goto label_2;
| }
0x0008ad84 lw v1, 8(a1) | v1 = *((a1 + 2));
0x0008ad88 lw a1, (v1) | a1 = *(v1);
0x0008ad8c lw t9, -0x78d0(gp) | t9 = *(gp);
| if (a1 == 0) {
0x0008ad90 beqz a1, 0x8adc8 | goto label_2;
| }
0x0008ad94 lw ra, 0x24(sp) | ra = *(var_24h);
0x0008ad98 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0008ad9c move a0, v0 | a0 = v0;
0x0008ada0 addiu t9, t9, -0x6bec | t9 += -0x6bec;
0x0008ada4 addiu sp, sp, 0x28 |
0x0008ada8 b 0x89414 | void (*0x89414)() ();
| }
0x0008adac lw s0, 0x20(sp) | s0 = *(var_20h);
| label_1:
0x0008adb0 lw t9, -0x78ec(gp) | t9 = *((gp - 7739));
0x0008adb4 move a0, zero | a0 = 0;
0x0008adb8 addiu sp, sp, 0x28 |
0x0008adbc b 0x884d0 | void (*0x884d0)() ();
| }
| label_0:
0x0008adc0 jr ra | return v1;
0x0008adc4 nop |
| label_2:
0x0008adc8 lw ra, 0x24(sp) | ra = *(var_24h);
0x0008adcc lw s0, 0x20(sp) | s0 = *(var_20h);
0x0008add0 addiu sp, sp, 0x28 |
0x0008add4 jr ra | return v1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x9f5c0 */
| #include <stdint.h>
|
; (fcn) sym.xmlXPtrEval () | void xmlXPtrEval () {
0x0009f5c0 lui gp, 0xf |
0x0009f5c4 addiu gp, gp, 0x20b0 |
0x0009f5c8 addu gp, gp, t9 | gp += t9;
0x0009f5cc addiu sp, sp, -0x60 |
0x0009f5d0 lw t9, -0x7e48(gp) | t9 = *(gp);
0x0009f5d4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0009f5d8 sw s3, 0x44(sp) | *(var_44h) = s3;
0x0009f5dc sw s0, 0x38(sp) | *(var_38h) = s0;
0x0009f5e0 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x0009f5e4 sw fp, 0x58(sp) | *(var_58h) = fp;
0x0009f5e8 sw s7, 0x54(sp) | *(var_54h) = s7;
0x0009f5ec sw s6, 0x50(sp) | *(var_50h) = s6;
0x0009f5f0 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x0009f5f4 sw s4, 0x48(sp) | *(var_48h) = s4;
0x0009f5f8 sw s2, 0x40(sp) | *(var_40h) = s2;
0x0009f5fc sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x0009f600 move s3, a1 | s3 = a1;
0x0009f604 move s0, a0 | s0 = a0;
0x0009f608 bal 0x86f00 | sym_xmlXPathInit ();
0x0009f60c lw gp, 0x10(sp) | gp = *(var_10h);
| if (s3 == 0) {
0x0009f610 beqz s3, 0x9f840 | goto label_24;
| }
0x0009f614 lw t9, -0x77a4(gp) | t9 = *(gp);
| if (s0 == 0) {
0x0009f618 beqz s0, 0x9f840 | goto label_24;
| }
0x0009f61c move a0, s0 | a0 = s0;
0x0009f620 move a1, s3 | a1 = s3;
0x0009f624 bal 0x93410 | sym_xmlXPathNewParserContext ();
0x0009f628 move s0, v0 | s0 = v0;
0x0009f62c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0009f630 beqz v0, 0x9f840 | goto label_24;
| }
0x0009f634 lw v0, 0x1c(v0) | v0 = *((v0 + 7));
0x0009f638 addiu v1, zero, 1 | v1 = 1;
0x0009f63c sw v1, 0x24(s0) | *((s0 + 9)) = v1;
| if (v0 == 0) {
0x0009f640 beqz v0, 0x9f8b0 | goto label_25;
| }
| label_7:
0x0009f644 lw a0, (s0) | a0 = *(s0);
0x0009f648 addiu a2, zero, 0x20 | a2 = 0x20;
0x0009f64c addiu a1, zero, 0xd | a1 = 0xd;
| do {
| label_0:
0x0009f650 lbu v1, (a0) | v1 = *(a0);
0x0009f654 addiu a0, a0, 1 | a0++;
0x0009f658 addiu v0, v1, -9 | v0 = v1 + -9;
0x0009f65c andi v0, v0, 0xff | v0 &= 0xff;
0x0009f660 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
| if (v1 == a2) {
0x0009f664 beq v1, a2, 0x9f678 | goto label_26;
| }
0x0009f668 sw a0, (s0) | *(s0) = a0;
0x0009f66c bnel v0, zero, 0x9f650 |
| } while (v0 == 0);
0x0009f670 addiu v0, zero, 0x2f | v0 = 0x2f;
| if (v1 != a1) {
0x0009f674 bnel v1, a1, 0x9f680 |
| label_26:
0x0009f678 sw a0, (s0) | *(s0) = a0;
0x0009f67c b 0x9f650 | goto label_0;
| }
0x0009f680 lw t9, -0x7818(gp) | t9 = *((gp - 7686));
| if (v1 == v0) {
0x0009f684 beq v1, v0, 0x9f7e8 | goto label_27;
| }
0x0009f688 lw s4, -0x7724(gp) | s4 = *(gp);
0x0009f68c move t9, s4 | t9 = s4;
0x0009f690 move a0, s0 | a0 = s0;
0x0009f694 bal 0x98d98 | sym_xmlXPathParseName ();
0x0009f698 move fp, v0 | fp = v0;
0x0009f69c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0009f6a0 beqz v0, 0x9fdf4 | goto label_28;
| }
0x0009f6a4 lw a0, (s0) | a0 = *(s0);
0x0009f6a8 addiu v0, zero, 0x28 | v0 = 0x28;
0x0009f6ac lbu v1, (a0) | v1 = *(a0);
0x0009f6b0 lw t9, -0x781c(gp) | t9 = *((gp - 7687));
| if (v1 == v0) {
0x0009f6b4 beq v1, v0, 0x9f924 | goto label_29;
| }
0x0009f6b8 move a1, fp | a1 = fp;
0x0009f6bc addiu t9, t9, -0x2b08 | t9 += -0x2b08;
0x0009f6c0 move a0, s0 | a0 = s0;
0x0009f6c4 bal 0x9d4f8 | fcn_0009d4f8 ();
0x0009f6c8 lw gp, 0x10(sp) | gp = *(var_10h);
| label_2:
0x0009f6cc lw a0, (s0) | a0 = *(s0);
0x0009f6d0 addiu a2, zero, 0x20 | a2 = 0x20;
0x0009f6d4 addiu a1, zero, 0xd | a1 = 0xd;
| do {
| label_1:
0x0009f6d8 lbu v1, (a0) | v1 = *(a0);
0x0009f6dc addiu a0, a0, 1 | a0++;
0x0009f6e0 addiu v0, v1, -9 | v0 = v1 + -9;
0x0009f6e4 andi v0, v0, 0xff | v0 &= 0xff;
0x0009f6e8 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
| if (v1 == a2) {
0x0009f6ec beq v1, a2, 0x9f700 | goto label_30;
| }
0x0009f6f0 sw a0, (s0) | *(s0) = a0;
0x0009f6f4 bnel v0, zero, 0x9f6d8 |
| } while (v0 == 0);
| if (v1 == a1) {
0x0009f6f8 bne v1, a1, 0x9f708 |
0x0009f6fc nop |
| label_30:
0x0009f700 sw a0, (s0) | *(s0) = a0;
0x0009f704 b 0x9f6d8 | goto label_1;
| }
0x0009f708 lw s1, -0x786c(gp) | s1 = *((gp - 7707));
| if (v1 != 0) {
0x0009f70c bnez v1, 0x9f90c | goto label_31;
| }
| label_9:
0x0009f710 lw v0, 0x10(s0) | v0 = *((s0 + 4));
| label_10:
0x0009f714 addiu v1, zero, 1 | v1 = 1;
| if (v0 != 0) {
0x0009f718 beqz v0, 0x9f730 |
0x0009f71c lw v0, (v0) | v0 = *(v0);
0x0009f720 addiu v1, zero, 7 | v1 = 7;
| if (v0 == v1) {
0x0009f724 beq v0, v1, 0x9f730 | goto label_11;
| }
0x0009f728 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
| if (v0 != v1) {
0x0009f72c bne v0, v1, 0x9f8e4 | goto label_32;
| }
| }
| label_11:
0x0009f730 move t9, s1 | t9 = s1;
0x0009f734 move a0, s0 | a0 = s0;
0x0009f738 bal 0x87bf4 | sym_valuePop ();
0x0009f73c lw gp, 0x10(sp) | gp = *(var_10h);
0x0009f740 move s6, v0 | s6 = v0;
| label_8:
0x0009f744 move t9, s1 | t9 = s1;
0x0009f748 lw s5, -0x7874(gp) | s5 = *((gp - 7709));
0x0009f74c move a0, s0 | a0 = s0;
0x0009f750 bal 0x87bf4 | sym_valuePop ();
0x0009f754 move s2, zero | s2 = 0;
0x0009f758 addiu s4, zero, 1 | s4 = 1;
0x0009f75c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0009f760 beqz v0, 0x9f794 | goto label_33;
| }
| do {
0x0009f764 lw v1, (v0) | v1 = *(v0);
| if (v1 == s4) {
0x0009f768 beql v1, s4, 0x9f810 | goto label_34;
| }
0x0009f76c lw v1, 4(v0) | v1 = *((v0 + 1));
0x0009f770 addiu s2, s2, 1 | s2++;
| label_3:
0x0009f774 move t9, s5 | t9 = s5;
| label_4:
0x0009f778 move a0, v0 | a0 = v0;
0x0009f77c bal 0x8c2f8 | sym_xmlXPathFreeObject ();
0x0009f780 move t9, s1 | t9 = s1;
0x0009f784 move a0, s0 | a0 = s0;
0x0009f788 bal 0x87bf4 | sym_valuePop ();
0x0009f78c lw gp, 0x10(sp) | gp = *(var_10h);
0x0009f790 bnez v0, 0x9f764 |
| } while (v0 != 0);
| label_33:
0x0009f794 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
| if (s2 != 0) {
0x0009f798 bnez s2, 0x9f88c | goto label_35;
| }
| label_6:
0x0009f79c lw v0, 8(s0) | v0 = *((s0 + 2));
0x0009f7a0 lw t9, -0x7874(gp) | t9 = *((gp - 7709));
| if (v0 != 0) {
0x0009f7a4 bnez v0, 0x9f878 | goto label_36;
| }
| label_5:
0x0009f7a8 lw t9, -0x77b0(gp) | t9 = *((gp - 7660));
0x0009f7ac move a0, s0 | a0 = s0;
0x0009f7b0 bal 0x93514 | sym_xmlXPathFreeParserContext ();
0x0009f7b4 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x0009f7b8 move v0, s6 | v0 = s6;
0x0009f7bc lw fp, 0x58(sp) | fp = *(var_58h);
0x0009f7c0 lw s7, 0x54(sp) | s7 = *(var_54h);
0x0009f7c4 lw s6, 0x50(sp) | s6 = *(var_50h);
0x0009f7c8 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x0009f7cc lw s4, 0x48(sp) | s4 = *(var_48h);
0x0009f7d0 lw s3, 0x44(sp) | s3 = *(var_44h);
0x0009f7d4 lw s2, 0x40(sp) | s2 = *(var_40h);
0x0009f7d8 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0009f7dc lw s0, 0x38(sp) | s0 = *(var_38h);
0x0009f7e0 addiu sp, sp, 0x60 |
0x0009f7e4 jr ra | return v0;
| label_27:
0x0009f7e8 move a0, s0 | a0 = s0;
0x0009f7ec bal 0x93fac | sym_xmlXPathRoot ();
0x0009f7f0 lw gp, 0x10(sp) | gp = *(var_10h);
0x0009f7f4 move a1, zero | a1 = 0;
0x0009f7f8 lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x0009f7fc addiu t9, t9, -0x2b08 | t9 += -0x2b08;
0x0009f800 move a0, s0 | a0 = s0;
0x0009f804 bal 0x9d4f8 | fcn_0009d4f8 ();
0x0009f808 lw gp, 0x10(sp) | gp = *(var_10h);
0x0009f80c b 0x9f6cc | goto label_2;
| if (v1 == 0) {
| label_34:
0x0009f810 beql v1, zero, 0x9f774 | goto label_3;
| }
0x0009f814 addiu s2, s2, 1 | s2++;
0x0009f818 lw a0, (v1) | a0 = *(v1);
0x0009f81c addiu s2, s2, 1 | s2++;
| if (a0 == s4) {
0x0009f820 bnel a0, s4, 0x9f774 | goto label_3;
| }
0x0009f824 lw a0, 8(v1) | a0 = *((v1 + 2));
0x0009f828 lw v1, (s3) | v1 = *(s3);
0x0009f82c lw a0, (a0) | a0 = *(a0);
0x0009f830 addiu s2, s2, 1 | s2++;
| if (a0 == v1) {
0x0009f834 bnel a0, v1, 0x9f774 | goto label_3;
| }
0x0009f838 move t9, s5 | t9 = s5;
0x0009f83c b 0x9f778 | goto label_4;
| label_24:
0x0009f840 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x0009f844 move s6, zero | s6 = 0;
0x0009f848 move v0, s6 | v0 = s6;
0x0009f84c lw fp, 0x58(sp) | fp = *(var_58h);
0x0009f850 lw s7, 0x54(sp) | s7 = *(var_54h);
0x0009f854 lw s6, 0x50(sp) | s6 = *(var_50h);
0x0009f858 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x0009f85c lw s4, 0x48(sp) | s4 = *(var_48h);
0x0009f860 lw s3, 0x44(sp) | s3 = *(var_44h);
0x0009f864 lw s2, 0x40(sp) | s2 = *(var_40h);
0x0009f868 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0009f86c lw s0, 0x38(sp) | s0 = *(var_38h);
0x0009f870 addiu sp, sp, 0x60 |
0x0009f874 jr ra | return v0;
| label_36:
0x0009f878 move a0, s6 | a0 = s6;
0x0009f87c bal 0x8c2f8 | sym_xmlXPathFreeObject ();
0x0009f880 move s6, zero | s6 = 0;
0x0009f884 lw gp, 0x10(sp) | gp = *(var_10h);
0x0009f888 b 0x9f7a8 | goto label_5;
| label_35:
0x0009f88c lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x0009f890 move a3, zero | a3 = 0;
0x0009f894 addiu a2, a2, 0x1b30 | a2 += 0x1b30;
0x0009f898 addiu a1, zero, 0x76f | a1 = 0x76f;
0x0009f89c addiu t9, t9, -0x2dc4 | t9 += -0x2dc4;
0x0009f8a0 move a0, s0 | a0 = s0;
0x0009f8a4 bal 0x9d23c | fcn_0009d23c ();
0x0009f8a8 lw gp, 0x10(sp) | gp = *(var_10h);
0x0009f8ac b 0x9f79c | goto label_6;
| label_25:
0x0009f8b0 lw v0, -0x716c(gp) | v0 = *(gp);
0x0009f8b4 lw t9, (v0) | t9 = *(v0);
0x0009f8b8 addiu a0, zero, 0x28 | a0 = 0x28;
0x0009f8bc jalr t9 | t9 ();
0x0009f8c0 lw gp, 0x10(sp) | gp = *(var_10h);
0x0009f8c4 sw v0, 0x1c(s0) | *((s0 + 7)) = v0;
| if (v0 == 0) {
0x0009f8c8 beqz v0, 0x9fe58 | goto label_37;
| }
0x0009f8cc addiu v0, zero, 0xa | v0 = 0xa;
0x0009f8d0 sw zero, 0x14(s0) | *((s0 + 5)) = 0;
0x0009f8d4 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
0x0009f8d8 sw zero, 0x10(s0) | *((s0 + 4)) = 0;
0x0009f8dc sw zero, 0x2c(s0) | *((s0 + 11)) = 0;
0x0009f8e0 b 0x9f644 | goto label_7;
| label_32:
0x0009f8e4 lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x0009f8e8 move a3, zero | a3 = 0;
0x0009f8ec addiu a2, a2, 0x1af8 | a2 += 0x1af8;
0x0009f8f0 addiu a1, zero, 0x76e | a1 = 0x76e;
0x0009f8f4 addiu t9, t9, -0x2dc4 | t9 += -0x2dc4;
0x0009f8f8 move a0, s0 | a0 = s0;
0x0009f8fc bal 0x9d23c | fcn_0009d23c ();
0x0009f900 move s6, zero | s6 = 0;
0x0009f904 lw gp, 0x10(sp) | gp = *(var_10h);
0x0009f908 b 0x9f744 | goto label_8;
| label_31:
0x0009f90c lw t9, -0x78f4(gp) | t9 = *((gp - 7741));
0x0009f910 addiu a1, zero, 7 | a1 = 7;
0x0009f914 move a0, s0 | a0 = s0;
0x0009f918 bal 0x87070 | sym_xmlXPathErr ();
0x0009f91c lw gp, 0x10(sp) | gp = *(var_10h);
0x0009f920 b 0x9f710 | goto label_9;
| label_29:
0x0009f924 lw v0, -0x7f94(gp) | v0 = *((gp - 8165));
0x0009f928 lw s7, -0x781c(gp) | s7 = *((gp - 7687));
0x0009f92c sw v0, 0x20(sp) | *(var_20h) = v0;
0x0009f930 lw v0, -0x781c(gp) | v0 = *((gp - 7687));
0x0009f934 sw zero, 8(s0) | *((s0 + 2)) = 0;
0x0009f938 addiu v0, v0, -0x3020 | v0 += -0x3020;
0x0009f93c sw v0, 0x24(sp) | *(var_24h) = v0;
0x0009f940 lw v0, -0x781c(gp) | v0 = *((gp - 7687));
0x0009f944 lbu v1, (a0) | v1 = *(a0);
0x0009f948 addiu v0, v0, -0x2dc4 | v0 += -0x2dc4;
0x0009f94c sw v0, 0x28(sp) | *(var_28h) = v0;
0x0009f950 addiu v0, s7, -0x2b08 | v0 = s7 + -0x2b08;
0x0009f954 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x0009f958 addiu v0, zero, 0x28 | v0 = 0x28;
0x0009f95c lw s5, -0x7158(gp) | s5 = *(gp);
0x0009f960 lw s1, -0x786c(gp) | s1 = *((gp - 7707));
0x0009f964 lw s6, -0x7f94(gp) | s6 = *((gp - 8165));
| if (v1 == v0) {
0x0009f968 beq v1, v0, 0x9fa78 | goto label_38;
| }
0x0009f96c lw t9, (s5) | t9 = *(s5);
| label_13:
0x0009f970 move a0, fp | a0 = fp;
0x0009f974 jalr t9 | t9 ();
0x0009f978 lw gp, 0x10(sp) | gp = *(var_10h);
0x0009f97c addiu a1, zero, 7 | a1 = 7;
| label_21:
0x0009f980 lw t9, -0x78f4(gp) | t9 = *((gp - 7741));
0x0009f984 move a0, s0 | a0 = s0;
0x0009f988 bal 0x87070 | sym_xmlXPathErr ();
0x0009f98c lw gp, 0x10(sp) | gp = *(var_10h);
| label_14:
0x0009f990 lw v0, 8(s0) | v0 = *((s0 + 2));
| if (v0 == 0) {
0x0009f994 beql v0, zero, 0x9f9a8 | goto label_39;
| }
0x0009f998 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x0009f99c addiu v1, zero, 0x76c | v1 = 0x76c;
0x0009f9a0 lw v0, 0x10(s0) | v0 = *((s0 + 4));
| if (v0 != v1) {
0x0009f9a4 bne v0, v1, 0x9f714 | goto label_10;
| }
| label_39:
0x0009f9a8 addiu a0, zero, 1 | a0 = 1;
| if (v0 == 0) {
0x0009f9ac beqz v0, 0x9fa10 | goto label_40;
| }
0x0009f9b0 lw v1, (v0) | v1 = *(v0);
0x0009f9b4 addiu a0, zero, 7 | a0 = 7;
| if (v1 == a0) {
0x0009f9b8 beq v1, a0, 0x9fbd4 | goto label_41;
| }
0x0009f9bc move t9, s1 | t9 = s1;
| if (v1 != a0) {
0x0009f9c0 bne v1, a0, 0x9f9dc | goto label_18;
| }
0x0009f9c4 lw v0, 0x1c(v0) | v0 = *((v0 + 7));
0x0009f9c8 lw s2, -0x7874(gp) | s2 = *((gp - 7709));
| if (v0 == 0) {
0x0009f9cc beqz v0, 0x9f9e0 | goto label_42;
| }
0x0009f9d0 lw v0, (v0) | v0 = *(v0);
| label_17:
0x0009f9d4 move t9, s1 | t9 = s1;
| if (v0 > 0) {
0x0009f9d8 bgtz v0, 0x9f730 | goto label_11;
| }
| label_18:
0x0009f9dc lw s2, -0x7874(gp) | s2 = *((gp - 7709));
| label_42:
0x0009f9e0 move a0, s0 | a0 = s0;
0x0009f9e4 bal 0x87bf4 | sym_valuePop ();
0x0009f9e8 move a0, v0 | a0 = v0;
| if (v0 == 0) {
0x0009f9ec beqz v0, 0x9fa10 | goto label_40;
| }
| do {
0x0009f9f0 move t9, s2 | t9 = s2;
0x0009f9f4 bal 0x8c2f8 | sym_xmlXPathFreeObject ();
0x0009f9f8 nop |
0x0009f9fc move t9, s1 | t9 = s1;
0x0009fa00 move a0, s0 | a0 = s0;
0x0009fa04 bal 0x87bf4 | sym_valuePop ();
0x0009fa08 move a0, v0 | a0 = v0;
0x0009fa0c bnez v0, 0x9f9f0 |
| } while (v0 != 0);
| label_40:
0x0009fa10 lw v1, (s0) | v1 = *(s0);
0x0009fa14 addiu a2, zero, 0x20 | a2 = 0x20;
0x0009fa18 addiu a1, zero, 0xd | a1 = 0xd;
| do {
| label_12:
0x0009fa1c lbu a0, (v1) | a0 = *(v1);
0x0009fa20 addiu v1, v1, 1 | v1++;
0x0009fa24 addiu v0, a0, -9 | v0 = a0 + -9;
0x0009fa28 andi v0, v0, 0xff | v0 &= 0xff;
0x0009fa2c sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
| if (a0 == a2) {
0x0009fa30 beq a0, a2, 0x9fa44 | goto label_43;
| }
0x0009fa34 sw v1, (s0) | *(s0) = v1;
0x0009fa38 bnel v0, zero, 0x9fa1c |
| } while (v0 == 0);
0x0009fa3c move t9, s4 | t9 = s4;
| if (a0 == a1) {
0x0009fa40 bne a0, a1, 0x9fa4c |
| label_43:
0x0009fa44 sw v1, (s0) | *(s0) = v1;
0x0009fa48 b 0x9fa1c | goto label_12;
| }
0x0009fa4c move a0, s0 | a0 = s0;
0x0009fa50 bal 0x98d98 | sym_xmlXPathParseName ();
0x0009fa54 move fp, v0 | fp = v0;
0x0009fa58 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0009fa5c beqz v0, 0x9f710 | goto label_9;
| }
0x0009fa60 lw a0, (s0) | a0 = *(s0);
0x0009fa64 sw zero, 8(s0) | *((s0 + 2)) = 0;
0x0009fa68 addiu v0, zero, 0x28 | v0 = 0x28;
0x0009fa6c lbu v1, (a0) | v1 = *(a0);
0x0009fa70 lw t9, (s5) | t9 = *(s5);
| if (v1 == v0) {
0x0009fa74 bnel v1, v0, 0x9f970 | goto label_13;
| }
| label_38:
0x0009fa78 addiu v0, a0, 1 | v0 = a0 + 1;
0x0009fa7c lw t9, -0x7fcc(gp) | t9 = *((gp - 8179));
0x0009fa80 move a0, v0 | a0 = v0;
0x0009fa84 sw v0, (s0) | *(s0) = v0;
0x0009fa88 bal 0xb8358 | sym_xmlStrlen ();
0x0009fa8c lw gp, 0x10(sp) | gp = *(var_10h);
0x0009fa90 addiu a0, v0, 1 | a0 = v0 + 1;
0x0009fa94 lw v0, -0x6ddc(gp) | v0 = *((gp - 7031));
0x0009fa98 lw t9, (v0) | t9 = *(v0);
0x0009fa9c jalr t9 | t9 ();
0x0009faa0 nop |
0x0009faa4 move s7, v0 | s7 = v0;
0x0009faa8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0009faac beqz v0, 0x9fde4 | goto label_44;
| }
0x0009fab0 lw a0, (s0) | a0 = *(s0);
0x0009fab4 move v1, v0 | v1 = v0;
0x0009fab8 addiu a1, zero, 1 | a1 = 1;
0x0009fabc lbu v0, (a0) | v0 = *(a0);
0x0009fac0 addiu a2, zero, 0x29 | a2 = 0x29;
0x0009fac4 addiu t4, zero, 0x28 | t4 = 0x28;
0x0009fac8 addiu t2, zero, 0x5e | t2 = 0x5e;
| do {
| if (v0 != 0) {
0x0009facc beql v0, zero, 0x9fb04 |
0x0009fad0 sb zero, (v1) | *(v1) = 0;
| if (v0 != a2) {
0x0009fad4 bne v0, a2, 0x9fb90 | goto label_45;
| }
0x0009fad8 nop |
0x0009fadc addiu a1, a1, -1 | a1 += -1;
0x0009fae0 addiu a0, a0, 1 | a0++;
| if (a1 == 0) {
0x0009fae4 beqz a1, 0x9fc44 | goto label_46;
| }
| label_15:
0x0009fae8 addiu v1, v1, 1 | v1++;
| label_16:
0x0009faec sb v0, -1(v1) | *((v1 - 1)) = v0;
0x0009faf0 lw v0, (s0) | v0 = *(s0);
0x0009faf4 lbu a0, (v0) | a0 = *(v0);
0x0009faf8 addiu a0, v0, 1 | a0 = v0 + 1;
| if (a0 != 0) {
0x0009fafc bnez a0, 0x9fb84 | goto label_47;
| }
0x0009fb00 sb zero, (v1) | *(v1) = 0;
| }
0x0009fb04 lw v0, (s0) | v0 = *(s0);
0x0009fb08 lbu v0, (v0) | v0 = *(v0);
| if (v0 == 0) {
0x0009fb0c beql v0, zero, 0x9fc50 | goto label_48;
| }
0x0009fb10 lw t9, (s5) | t9 = *(s5);
| label_20:
0x0009fb14 lw s2, -0x7f90(gp) | s2 = *((gp - 8164));
0x0009fb18 addiu a1, s6, 0x1ad0 | a1 = s6 + 0x1ad0;
0x0009fb1c move t9, s2 | t9 = s2;
0x0009fb20 move a0, fp | a0 = fp;
0x0009fb24 bal 0xb7e60 | sym_xmlStrEqual ();
0x0009fb28 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0009fb2c beqz v0, 0x9fbe8 | goto label_49;
| }
0x0009fb30 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0009fb34 lw s2, (s0) | s2 = *(s0);
0x0009fb38 addiu v1, zero, 1 | v1 = 1;
0x0009fb3c lw a1, (v0) | a1 = *(v0);
0x0009fb40 lw t9, -0x7720(gp) | t9 = *((gp - 7624));
0x0009fb44 sw s7, (s0) | *(s0) = s7;
0x0009fb48 move a0, s0 | a0 = s0;
0x0009fb4c sw a1, 4(v0) | *((v0 + 1)) = a1;
0x0009fb50 sw v1, 0x48(v0) | *((v0 + 18)) = v1;
0x0009fb54 sw v1, 0x44(v0) | *((v0 + 17)) = v1;
0x0009fb58 bal 0x9c878 | sym_xmlXPathEvalExpr ();
0x0009fb5c sw s2, (s0) | *(s0) = s2;
| label_19:
0x0009fb60 lw t9, (s5) | t9 = *(s5);
| label_22:
0x0009fb64 move a0, s7 | a0 = s7;
| label_23:
0x0009fb68 jalr t9 | t9 ();
0x0009fb6c nop |
0x0009fb70 lw t9, (s5) | t9 = *(s5);
0x0009fb74 move a0, fp | a0 = fp;
0x0009fb78 jalr t9 | t9 ();
0x0009fb7c lw gp, 0x10(sp) | gp = *(var_10h);
0x0009fb80 b 0x9f990 | goto label_14;
| label_47:
0x0009fb84 sw a0, (s0) | *(s0) = a0;
0x0009fb88 lbu v0, 1(v0) | v0 = *((v0 + 1));
0x0009fb8c b 0x9facc |
| } while (1);
| if (v0 == t4) {
| label_45:
0x0009fb90 bne v0, t4, 0x9fba0 |
0x0009fb94 nop |
0x0009fb98 addiu a1, a1, 1 | a1++;
0x0009fb9c b 0x9fae8 | goto label_15;
| }
0x0009fba0 addiu v1, v1, 1 | v1++;
| if (v0 == t2) {
0x0009fba4 bnel v0, t2, 0x9faec | goto label_16;
| }
0x0009fba8 lbu t3, 1(a0) | t3 = *((a0 + 1));
0x0009fbac addiu a3, t3, -0x28 | a3 = t3 + -0x28;
0x0009fbb0 sltiu a3, a3, 2 | a3 = (a3 < 2) ? 1 : 0;
0x0009fbb4 addiu v0, a0, 1 | v0 = a0 + 1;
| if (a3 == 0) {
0x0009fbb8 bnel a3, zero, 0x9fbc8 | goto label_50;
| }
0x0009fbbc addiu v1, v1, 1 | v1++;
| if (t3 == v0) {
0x0009fbc0 bnel t3, v0, 0x9faec | goto label_16;
| }
0x0009fbc4 addiu v0, a0, 1 | v0 = a0 + 1;
| label_50:
0x0009fbc8 sw v0, (s0) | *(s0) = v0;
0x0009fbcc lbu v0, 1(a0) | v0 = *((a0 + 1));
0x0009fbd0 b 0x9fae8 | goto label_15;
| label_41:
0x0009fbd4 lw v0, 4(v0) | v0 = *((v0 + 1));
0x0009fbd8 lw v0, (v0) | v0 = *(v0);
| if (v0 == 0) {
0x0009fbdc bnel v0, zero, 0x9f9d4 | goto label_17;
| }
0x0009fbe0 move t9, s1 | t9 = s1;
0x0009fbe4 b 0x9f9dc | goto label_18;
| label_49:
0x0009fbe8 lw a1, -0x7fb0(gp) | a1 = *((gp - 8172));
0x0009fbec move a0, fp | a0 = fp;
0x0009fbf0 move t9, s2 | t9 = s2;
0x0009fbf4 addiu a1, a1, 0x48a8 | a1 += 0x48a8;
0x0009fbf8 bal 0xb7e60 | sym_xmlStrEqual ();
0x0009fbfc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x0009fc00 beqz v0, 0x9fc98 |
0x0009fc04 lw s2, (s0) | s2 = *(s0);
0x0009fc08 sw s7, (s0) | *(s0) = s7;
0x0009fc0c lbu v1, (s7) | v1 = *(s7);
0x0009fc10 addiu v0, zero, 0x2f | v0 = 0x2f;
0x0009fc14 move a0, s0 | a0 = s0;
| if (v1 == v0) {
0x0009fc18 beq v1, v0, 0x9fe10 | goto label_51;
| }
0x0009fc1c move t9, s4 | t9 = s4;
0x0009fc20 bal 0x98d98 | sym_xmlXPathParseName ();
0x0009fc24 nop |
0x0009fc28 lw t9, 0x1c(sp) | t9 = *(var_1ch);
| if (v0 != 0) {
0x0009fc2c beqz v0, 0x9fc70 |
0x0009fc30 move a1, v0 | a1 = v0;
0x0009fc34 move a0, s0 | a0 = s0;
0x0009fc38 jalr t9 | t9 ();
0x0009fc3c sw s2, (s0) | *(s0) = s2;
0x0009fc40 b 0x9fb60 | goto label_19;
| label_46:
0x0009fc44 sw a0, (s0) | *(s0) = a0;
0x0009fc48 sb zero, (v1) | *(v1) = 0;
0x0009fc4c b 0x9fb14 | goto label_20;
| label_48:
0x0009fc50 move a0, fp | a0 = fp;
0x0009fc54 jalr t9 | t9 ();
0x0009fc58 lw t9, (s5) | t9 = *(s5);
0x0009fc5c move a0, s7 | a0 = s7;
0x0009fc60 jalr t9 | t9 ();
0x0009fc64 lw gp, 0x10(sp) | gp = *(var_10h);
0x0009fc68 addiu a1, zero, 0x10 | a1 = 0x10;
0x0009fc6c b 0x9f980 | goto label_21;
| }
0x0009fc70 lw t9, (s5) | t9 = *(s5);
0x0009fc74 move a0, s7 | a0 = s7;
0x0009fc78 sw s2, (s0) | *(s0) = s2;
0x0009fc7c jalr t9 | t9 ();
0x0009fc80 lw t9, (s5) | t9 = *(s5);
0x0009fc84 move a0, fp | a0 = fp;
0x0009fc88 jalr t9 | t9 ();
0x0009fc8c lw gp, 0x10(sp) | gp = *(var_10h);
0x0009fc90 addiu a1, zero, 7 | a1 = 7;
0x0009fc94 b 0x9f980 | goto label_21;
| }
0x0009fc98 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x0009fc9c move a0, fp | a0 = fp;
0x0009fca0 move t9, s2 | t9 = s2;
0x0009fca4 addiu a1, a1, 0x75ac | a1 += 0x75ac;
0x0009fca8 bal 0xb7e60 | sym_xmlStrEqual ();
0x0009fcac lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0009fcb0 beqz v0, 0x9fe34 | goto label_52;
| }
0x0009fcb4 lw v0, (s0) | v0 = *(s0);
0x0009fcb8 lw t9, -0x77ac(gp) | t9 = *((gp - 7659));
0x0009fcbc sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0009fcc0 move a0, s0 | a0 = s0;
0x0009fcc4 sw s7, (s0) | *(s0) = s7;
0x0009fcc8 bal 0x98b80 | sym_xmlXPathParseNCName ();
0x0009fccc move s2, v0 | s2 = v0;
0x0009fcd0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0009fcd4 beqz v0, 0x9feac | goto label_53;
| }
0x0009fcd8 lw a1, (s0) | a1 = *(s0);
0x0009fcdc addiu a2, zero, 0x20 | a2 = 0x20;
0x0009fce0 addiu a0, zero, 0xd | a0 = 0xd;
| do {
0x0009fce4 lbu v1, (a1) | v1 = *(a1);
0x0009fce8 addiu v0, v1, -9 | v0 = v1 + -9;
0x0009fcec andi v0, v0, 0xff | v0 &= 0xff;
0x0009fcf0 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
| if (v1 != a2) {
0x0009fcf4 beq v1, a2, 0x9fd08 |
0x0009fcf8 addiu a1, a1, 1 | a1++;
| if (v0 == 0) {
0x0009fcfc bnel v0, zero, 0x9fd0c | goto label_54;
| }
0x0009fd00 addiu v0, zero, 0x3d | v0 = 0x3d;
| if (v1 == a0) {
0x0009fd04 bnel v1, a0, 0x9fd14 | goto label_55;
| }
| }
0x0009fd08 addiu a1, a1, 1 | a1++;
| label_54:
0x0009fd0c sw a1, (s0) | *(s0) = a1;
0x0009fd10 b 0x9fce4 |
| } while (1);
| label_55:
0x0009fd14 lw t9, (s5) | t9 = *(s5);
| if (v1 == v0) {
0x0009fd18 bnel v1, v0, 0x9fe7c | goto label_56;
| }
0x0009fd1c addiu a0, a1, 1 | a0 = a1 + 1;
0x0009fd20 sw a0, (s0) | *(s0) = a0;
0x0009fd24 addiu a2, zero, 0x20 | a2 = 0x20;
0x0009fd28 addiu a1, zero, 0xd | a1 = 0xd;
| do {
0x0009fd2c lbu v1, (a0) | v1 = *(a0);
0x0009fd30 addiu v0, v1, -9 | v0 = v1 + -9;
0x0009fd34 andi v0, v0, 0xff | v0 &= 0xff;
0x0009fd38 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
| if (v1 != a2) {
0x0009fd3c beq v1, a2, 0x9fd50 |
0x0009fd40 addiu a0, a0, 1 | a0++;
| if (v0 == 0) {
0x0009fd44 bnel v0, zero, 0x9fd54 | goto label_57;
| }
0x0009fd48 lw t9, -0x7dac(gp) | t9 = *((gp - 8043));
| if (v1 != a1) {
0x0009fd4c bne v1, a1, 0x9fd5c | goto label_58;
| }
| }
0x0009fd50 addiu a0, a0, 1 | a0++;
| label_57:
0x0009fd54 sw a0, (s0) | *(s0) = a0;
0x0009fd58 b 0x9fd2c |
| } while (1);
| label_58:
0x0009fd5c jalr t9 | t9 ();
0x0009fd60 nop |
0x0009fd64 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x0009fd68 beqz v0, 0x9fe78 |
0x0009fd6c lw t9, -0x7a58(gp) | t9 = *((gp - 7830));
0x0009fd70 move a0, v0 | a0 = v0;
0x0009fd74 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0009fd78 jalr t9 | t9 ();
0x0009fd7c lw gp, 0x10(sp) | gp = *(var_10h);
0x0009fd80 lw a1, 0x34(sp) | a1 = *(var_34h);
0x0009fd84 sw v0, 0x30(sp) | *(var_30h) = v0;
0x0009fd88 lw t9, -0x7da8(gp) | t9 = *(gp);
0x0009fd8c move a0, a1 | a0 = a1;
0x0009fd90 jalr t9 | t9 ();
0x0009fd94 lw v1, 0x30(sp) | v1 = *(var_30h);
0x0009fd98 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 == 0) {
0x0009fd9c beqz v1, 0x9feb8 | goto label_59;
| }
0x0009fda0 lw t9, -0x771c(gp) | t9 = *((gp - 7623));
0x0009fda4 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x0009fda8 move a2, v1 | a2 = v1;
0x0009fdac move a1, s2 | a1 = s2;
0x0009fdb0 sw v1, 0x30(sp) | *(var_30h) = v1;
0x0009fdb4 bal 0x8b194 | sym_xmlXPathRegisterNs ();
0x0009fdb8 lw v1, 0x30(sp) | v1 = *(var_30h);
0x0009fdbc lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x0009fdc0 lw t9, (s5) | t9 = *(s5);
0x0009fdc4 move a0, v1 | a0 = v1;
0x0009fdc8 sw v0, (s0) | *(s0) = v0;
0x0009fdcc jalr t9 | t9 ();
0x0009fdd0 lw t9, (s5) | t9 = *(s5);
0x0009fdd4 move a0, s2 | a0 = s2;
0x0009fdd8 jalr t9 | t9 ();
0x0009fddc lw t9, (s5) | t9 = *(s5);
0x0009fde0 b 0x9fb64 | goto label_22;
| label_44:
0x0009fde4 lw v0, 0x20(sp) | v0 = *(var_20h);
0x0009fde8 lw t9, 0x24(sp) | t9 = *(var_24h);
0x0009fdec addiu a0, v0, 0x1abc | a0 = v0 + 0x1abc;
0x0009fdf0 b 0x9fb68 | goto label_23;
| label_28:
0x0009fdf4 lw t9, -0x78f4(gp) | t9 = *((gp - 7741));
0x0009fdf8 addiu a1, zero, 7 | a1 = 7;
0x0009fdfc move a0, s0 | a0 = s0;
0x0009fe00 bal 0x87070 | sym_xmlXPathErr ();
0x0009fe04 lw gp, 0x10(sp) | gp = *(var_10h);
0x0009fe08 lw s1, -0x786c(gp) | s1 = *((gp - 7707));
0x0009fe0c b 0x9f710 | goto label_9;
| label_51:
0x0009fe10 lw t9, -0x7818(gp) | t9 = *((gp - 7686));
0x0009fe14 bal 0x93fac | sym_xmlXPathRoot ();
0x0009fe18 nop |
0x0009fe1c lw t9, 0x1c(sp) | t9 = *(var_1ch);
0x0009fe20 move a1, zero | a1 = 0;
0x0009fe24 move a0, s0 | a0 = s0;
0x0009fe28 jalr t9 | t9 ();
0x0009fe2c sw s2, (s0) | *(s0) = s2;
0x0009fe30 b 0x9fb60 | goto label_19;
| label_52:
0x0009fe34 lw a2, -0x7f94(gp) | a2 = *((gp - 8165));
0x0009fe38 lw t9, 0x28(sp) | t9 = *(var_28h);
0x0009fe3c move a3, fp | a3 = fp;
0x0009fe40 addiu a2, a2, 0x1adc | a2 += 0x1adc;
0x0009fe44 addiu a1, zero, 0x76c | a1 = 0x76c;
0x0009fe48 move a0, s0 | a0 = s0;
0x0009fe4c jalr t9 | t9 ();
0x0009fe50 lw t9, (s5) | t9 = *(s5);
0x0009fe54 b 0x9fb64 | goto label_22;
| label_37:
0x0009fe58 lw a0, -0x7f94(gp) | a0 = *((gp - 8165));
0x0009fe5c lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x0009fe60 addiu t9, t9, -0x3020 | t9 += -0x3020;
0x0009fe64 addiu a0, a0, 0x1a9c | a0 += aav.0x00001a9c;
0x0009fe68 bal 0x9cfe0 | fcn_0009cfe0 ();
0x0009fe6c lw gp, 0x10(sp) | gp = *(var_10h);
0x0009fe70 lw s1, -0x786c(gp) | s1 = *((gp - 7707));
0x0009fe74 b 0x9f710 | goto label_9;
| }
0x0009fe78 lw t9, (s5) | t9 = *(s5);
| label_56:
0x0009fe7c move a0, s2 | a0 = s2;
0x0009fe80 jalr t9 | t9 ();
0x0009fe84 lw t9, (s5) | t9 = *(s5);
0x0009fe88 move a0, s7 | a0 = s7;
| do {
0x0009fe8c jalr t9 | t9 ();
0x0009fe90 nop |
0x0009fe94 lw t9, (s5) | t9 = *(s5);
0x0009fe98 move a0, fp | a0 = fp;
0x0009fe9c jalr t9 | t9 ();
0x0009fea0 lw gp, 0x10(sp) | gp = *(var_10h);
0x0009fea4 addiu a1, zero, 0x10 | a1 = 0x10;
0x0009fea8 b 0x9f980 | goto label_21;
| label_53:
0x0009feac lw t9, (s5) | t9 = *(s5);
0x0009feb0 move a0, s7 | a0 = s7;
0x0009feb4 b 0x9fe8c |
| } while (1);
| label_59:
0x0009feb8 lw t9, (s5) | t9 = *(s5);
0x0009febc move a0, s2 | a0 = s2;
0x0009fec0 jalr t9 | t9 ();
0x0009fec4 lw t9, (s5) | t9 = *(s5);
0x0009fec8 move a0, s7 | a0 = s7;
0x0009fecc jalr t9 | t9 ();
0x0009fed0 lw t9, (s5) | t9 = *(s5);
0x0009fed4 move a0, fp | a0 = fp;
0x0009fed8 jalr t9 | t9 ();
0x0009fedc lw gp, 0x10(sp) | gp = *(var_10h);
0x0009fee0 addiu a1, zero, 0xf | a1 = 0xf;
0x0009fee4 b 0x9f980 | goto label_21;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0xa1290 */
| #include <stdint.h>
|
; (fcn) sym.xmlXPtrEvalRangePredicate () | void xmlXPtrEvalRangePredicate () {
0x000a1290 lui gp, 0xf |
0x000a1294 addiu gp, gp, 0x3e0 |
0x000a1298 addu gp, gp, t9 | gp += t9;
0x000a129c addiu a3, zero, 0x20 | a3 = 0x20;
| if (a0 == 0) {
0x000a12a0 beqz a0, 0xa14e4 | goto label_5;
| }
0x000a12a4 addiu sp, sp, -0x60 |
0x000a12a8 lw a1, (a0) | a1 = *(a0);
0x000a12ac sw gp, 0x10(sp) | *(var_10h) = gp;
0x000a12b0 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x000a12b4 sw fp, 0x58(sp) | *(var_58h) = fp;
0x000a12b8 sw s7, 0x54(sp) | *(var_54h) = s7;
0x000a12bc sw s6, 0x50(sp) | *(var_50h) = s6;
0x000a12c0 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x000a12c4 sw s4, 0x48(sp) | *(var_48h) = s4;
0x000a12c8 sw s3, 0x44(sp) | *(var_44h) = s3;
0x000a12cc sw s2, 0x40(sp) | *(var_40h) = s2;
0x000a12d0 sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x000a12d4 sw s0, 0x38(sp) | *(var_38h) = s0;
0x000a12d8 addiu a2, zero, 0xd | a2 = 0xd;
| do {
0x000a12dc lbu v1, (a1) | v1 = *(a1);
0x000a12e0 addiu v0, v1, -9 | v0 = v1 + -9;
0x000a12e4 andi v0, v0, 0xff | v0 &= 0xff;
0x000a12e8 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
| if (v1 != a3) {
0x000a12ec beq v1, a3, 0xa1300 |
0x000a12f0 addiu a1, a1, 1 | a1++;
| if (v0 == 0) {
0x000a12f4 bnel v0, zero, 0xa1304 | goto label_6;
| }
0x000a12f8 addiu v0, zero, 0x5b | v0 = 0x5b;
| if (v1 == a2) {
0x000a12fc bnel v1, a2, 0xa130c | goto label_7;
| }
| }
0x000a1300 addiu a1, a1, 1 | a1++;
| label_6:
0x000a1304 sw a1, (a0) | *(a0) = a1;
0x000a1308 b 0xa12dc |
| } while (1);
| label_7:
0x000a130c move fp, a0 | fp = a0;
| if (v1 != v0) {
0x000a1310 bne v1, v0, 0xa13a4 | goto label_8;
| }
0x000a1314 addiu a1, a1, 1 | a1++;
0x000a1318 sw a1, (a0) | *(a0) = a1;
0x000a131c addiu a3, zero, 0x20 | a3 = 0x20;
0x000a1320 addiu a0, zero, 0xd | a0 = 0xd;
| do {
| label_0:
0x000a1324 lbu v1, (a1) | v1 = *(a1);
0x000a1328 addiu a1, a1, 1 | a1++;
0x000a132c addiu v0, v1, -9 | v0 = v1 + -9;
0x000a1330 andi v0, v0, 0xff | v0 &= 0xff;
0x000a1334 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
| if (v1 == a3) {
0x000a1338 beq v1, a3, 0xa134c | goto label_9;
| }
0x000a133c sw a1, (fp) | *(fp) = a1;
0x000a1340 bnel v0, zero, 0xa1324 |
| } while (v0 == 0);
0x000a1344 lw v0, 0x10(fp) | v0 = *(arg_10h);
| if (v1 != a0) {
0x000a1348 bnel v1, a0, 0xa1354 |
| label_9:
0x000a134c sw a1, (fp) | *(fp) = a1;
0x000a1350 b 0xa1324 | goto label_0;
| }
0x000a1354 lw ra, 0x5c(sp) | ra = *(var_5ch);
| if (v0 != 0) {
0x000a1358 beqz v0, 0xa136c |
0x000a135c lw v1, (v0) | v1 = *(v0);
0x000a1360 addiu v0, zero, 7 | v0 = 7;
0x000a1364 lw s4, -0x786c(gp) | s4 = *((gp - 7707));
| if (v1 == v0) {
0x000a1368 beq v1, v0, 0xa13e0 | goto label_10;
| }
| }
0x000a136c lw s7, 0x54(sp) | s7 = *(var_54h);
0x000a1370 lw s6, 0x50(sp) | s6 = *(var_50h);
0x000a1374 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x000a1378 lw s4, 0x48(sp) | s4 = *(var_48h);
0x000a137c lw s3, 0x44(sp) | s3 = *(var_44h);
0x000a1380 lw s2, 0x40(sp) | s2 = *(var_40h);
0x000a1384 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x000a1388 lw s0, 0x38(sp) | s0 = *(var_38h);
0x000a138c move a0, fp | a0 = fp;
0x000a1390 lw t9, -0x78f4(gp) | t9 = *((gp - 7741));
0x000a1394 lw fp, 0x58(sp) | fp = *(var_58h);
0x000a1398 addiu a1, zero, 0xb | a1 = 0xb;
0x000a139c addiu sp, sp, 0x60 |
0x000a13a0 b 0x87070 | void (*0x87070)() ();
| do {
| label_8:
0x000a13a4 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x000a13a8 lw s7, 0x54(sp) | s7 = *(var_54h);
0x000a13ac lw s6, 0x50(sp) | s6 = *(var_50h);
0x000a13b0 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x000a13b4 lw s4, 0x48(sp) | s4 = *(var_48h);
0x000a13b8 lw s3, 0x44(sp) | s3 = *(var_44h);
0x000a13bc lw s2, 0x40(sp) | s2 = *(var_40h);
0x000a13c0 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x000a13c4 lw s0, 0x38(sp) | s0 = *(var_38h);
0x000a13c8 move a0, fp | a0 = fp;
0x000a13cc lw t9, -0x78f4(gp) | t9 = *((gp - 7741));
0x000a13d0 lw fp, 0x58(sp) | fp = *(var_58h);
0x000a13d4 addiu a1, zero, 6 | a1 = 6;
0x000a13d8 addiu sp, sp, 0x60 |
0x000a13dc b 0x87070 | void (*0x87070)() ();
| label_10:
0x000a13e0 move t9, s4 | t9 = s4;
0x000a13e4 move a0, fp | a0 = fp;
0x000a13e8 bal 0x87bf4 | sym_valuePop ();
0x000a13ec move s6, v0 | s6 = v0;
0x000a13f0 lw v0, 0xc(fp) | v0 = *(arg_ch);
0x000a13f4 lw s1, 0x1c(s6) | s1 = *((s6 + 7));
0x000a13f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000a13fc sw zero, 4(v0) | *((v0 + 1)) = 0;
| if (s1 != 0) {
0x000a1400 beqz s1, 0xa1410 |
0x000a1404 lw v1, (s1) | v1 = *(s1);
0x000a1408 lw t9, -0x7814(gp) | t9 = *(gp);
| if (v1 != 0) {
0x000a140c bnez v1, 0xa14ec | goto label_11;
| }
| }
0x000a1410 lw t9, -0x7720(gp) | t9 = *((gp - 7624));
0x000a1414 move a0, fp | a0 = fp;
0x000a1418 sw zero, 0x44(v0) | *((v0 + 17)) = 0;
0x000a141c sw zero, 0x48(v0) | *((v0 + 18)) = 0;
0x000a1420 bal 0x9c878 | sym_xmlXPathEvalExpr ();
0x000a1424 move t9, s4 | t9 = s4;
0x000a1428 move a0, fp | a0 = fp;
0x000a142c bal 0x87bf4 | sym_valuePop ();
0x000a1430 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000a1434 beqz v0, 0xa1448 |
0x000a1438 lw t9, -0x7874(gp) | t9 = *((gp - 7709));
0x000a143c move a0, v0 | a0 = v0;
0x000a1440 bal 0x8c2f8 | sym_xmlXPathFreeObject ();
0x000a1444 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000a1448 lw t9, -0x78a0(gp) | t9 = *((gp - 7720));
0x000a144c move a1, s6 | a1 = s6;
0x000a1450 move a0, fp | a0 = fp;
0x000a1454 bal 0x87ca8 | sym_valuePush ();
0x000a1458 lw v0, 8(fp) | v0 = *(arg_8h);
0x000a145c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000a1460 bnez v0, 0xa14b4 | goto label_12;
| }
| label_4:
0x000a1464 lw a1, (fp) | a1 = *(fp);
0x000a1468 addiu v0, zero, 0x5d | v0 = 0x5d;
0x000a146c lbu v1, (a1) | v1 = *(a1);
0x000a1470 addiu a1, a1, 1 | a1++;
0x000a1474 bne v1, v0, 0xa13a4 |
| } while (v1 != v0);
0x000a1478 sw a1, (fp) | *(fp) = a1;
0x000a147c addiu a3, zero, 0x20 | a3 = 0x20;
0x000a1480 addiu a0, zero, 0xd | a0 = 0xd;
| do {
| label_1:
0x000a1484 lbu v1, (a1) | v1 = *(a1);
0x000a1488 addiu a1, a1, 1 | a1++;
0x000a148c addiu v0, v1, -9 | v0 = v1 + -9;
0x000a1490 andi v0, v0, 0xff | v0 &= 0xff;
0x000a1494 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
| if (v1 == a3) {
0x000a1498 beq v1, a3, 0xa14ac | goto label_13;
| }
0x000a149c sw a1, (fp) | *(fp) = a1;
0x000a14a0 bnel v0, zero, 0xa1484 |
| } while (v0 == 0);
0x000a14a4 lw ra, 0x5c(sp) | ra = *(var_5ch);
| if (v1 != a0) {
0x000a14a8 bne v1, a0, 0xa14b8 | goto label_14;
| }
| label_13:
0x000a14ac sw a1, (fp) | *(fp) = a1;
0x000a14b0 b 0xa1484 | goto label_1;
| do {
| label_12:
0x000a14b4 lw ra, 0x5c(sp) | ra = *(var_5ch);
| label_14:
0x000a14b8 lw fp, 0x58(sp) | fp = *(var_58h);
0x000a14bc lw s7, 0x54(sp) | s7 = *(var_54h);
0x000a14c0 lw s6, 0x50(sp) | s6 = *(var_50h);
0x000a14c4 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x000a14c8 lw s4, 0x48(sp) | s4 = *(var_48h);
0x000a14cc lw s3, 0x44(sp) | s3 = *(var_44h);
0x000a14d0 lw s2, 0x40(sp) | s2 = *(var_40h);
0x000a14d4 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x000a14d8 lw s0, 0x38(sp) | s0 = *(var_38h);
0x000a14dc addiu sp, sp, 0x60 |
0x000a14e0 jr ra | return v1;
| label_5:
0x000a14e4 jr ra | return v1;
0x000a14e8 nop |
| label_11:
0x000a14ec move a0, zero | a0 = 0;
0x000a14f0 lw s7, (fp) | s7 = *(fp);
0x000a14f4 bal 0x9dcb8 | sym_xmlXPtrLocationSetCreate ();
0x000a14f8 lw v1, (s1) | v1 = *(s1);
0x000a14fc lw gp, 0x10(sp) | gp = *(var_10h);
0x000a1500 sw v0, 0x2c(sp) | *(var_2ch) = v0;
| if (v1 <= 0) {
0x000a1504 blez v1, 0xa1660 | goto label_15;
| }
0x000a1508 lw v0, -0x7720(gp) | v0 = *((gp - 7624));
0x000a150c lw v1, 0xc(fp) | v1 = *(arg_ch);
0x000a1510 sw v0, 0x20(sp) | *(var_20h) = v0;
0x000a1514 lw v0, -0x78a0(gp) | v0 = *((gp - 7720));
0x000a1518 move s0, zero | s0 = 0;
0x000a151c sw v0, 0x18(sp) | *(var_18h) = v0;
0x000a1520 lw v0, -0x78e0(gp) | v0 = *((gp - 7736));
0x000a1524 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x000a1528 lw v0, -0x7710(gp) | v0 = *(gp);
0x000a152c sw v0, 0x24(sp) | *(var_24h) = v0;
0x000a1530 lw v0, -0x7884(gp) | v0 = *(gp);
0x000a1534 sw v0, 0x30(sp) | *(var_30h) = v0;
0x000a1538 lw v0, -0x7874(gp) | v0 = *((gp - 7709));
0x000a153c sw v0, 0x28(sp) | *(var_28h) = v0;
0x000a1540 lw v0, -0x781c(gp) | v0 = *((gp - 7687));
0x000a1544 addiu v0, v0, -0x2840 | v0 += -0x2840;
0x000a1548 sw v0, 0x34(sp) | *(var_34h) = v0;
0x000a154c b 0xa1584 | goto label_16;
| label_2:
0x000a1550 lw t9, 0x28(sp) | t9 = *(var_28h);
| if (s5 != 0) {
0x000a1554 beqz s5, 0xa1564 |
0x000a1558 move a0, s5 | a0 = s5;
0x000a155c jalr t9 | t9 ();
0x000a1560 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000a1564 lw v0, 0x10(fp) | v0 = *(arg_10h);
0x000a1568 move t9, s4 | t9 = s4;
| if (s2 == v0) {
0x000a156c beq s2, v0, 0xa1644 | goto label_17;
| }
| label_3:
0x000a1570 lw v0, (s1) | v0 = *(s1);
0x000a1574 lw v1, 0xc(fp) | v1 = *(arg_ch);
0x000a1578 slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x000a157c sw zero, 4(v1) | *((v1 + 1)) = 0;
| if (v0 == 0) {
0x000a1580 beqz v0, 0xa1668 | goto label_18;
| }
| label_16:
0x000a1584 lw v0, 8(s1) | v0 = *((s1 + 2));
0x000a1588 sll s3, s0, 2 | s3 = s0 << 2;
0x000a158c lw t9, 0x1c(sp) | t9 = *(var_1ch);
0x000a1590 lwx v0, s3(v0) | __asm ("lwx v0, s3(v0)");
0x000a1594 sw s7, (fp) | *(fp) = s7;
0x000a1598 addiu s0, s0, 1 | s0++;
0x000a159c lw a0, 0x1c(v0) | a0 = *((v0 + 7));
0x000a15a0 sw a0, 4(v1) | *((v1 + 1)) = a0;
0x000a15a4 jalr t9 | t9 ();
0x000a15a8 lw t9, 0x18(sp) | t9 = *(var_18h);
0x000a15ac move a1, v0 | a1 = v0;
0x000a15b0 move a0, fp | a0 = fp;
0x000a15b4 move s2, v0 | s2 = v0;
0x000a15b8 jalr t9 | t9 ();
0x000a15bc lw v0, 0xc(fp) | v0 = *(arg_ch);
0x000a15c0 lw v1, (s1) | v1 = *(s1);
0x000a15c4 lw t9, 0x20(sp) | t9 = *(var_20h);
0x000a15c8 move a0, fp | a0 = fp;
0x000a15cc sw v1, 0x44(v0) | *((v0 + 17)) = v1;
0x000a15d0 sw s0, 0x48(v0) | *((v0 + 18)) = s0;
0x000a15d4 jalr t9 | t9 ();
0x000a15d8 lw v0, 8(fp) | v0 = *(arg_8h);
0x000a15dc move a0, fp | a0 = fp;
0x000a15e0 bnez v0, 0xa14b4 |
| } while (v0 != 0);
0x000a15e4 move t9, s4 | t9 = s4;
0x000a15e8 bal 0x87bf4 | sym_valuePop ();
0x000a15ec nop |
0x000a15f0 lw t9, 0x24(sp) | t9 = *(var_24h);
0x000a15f4 move a1, v0 | a1 = v0;
0x000a15f8 move a0, fp | a0 = fp;
0x000a15fc move s5, v0 | s5 = v0;
0x000a1600 jalr t9 | t9 ();
0x000a1604 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000a1608 beqz v0, 0xa1550 | goto label_2;
| }
0x000a160c lw a0, 8(s1) | a0 = *((s1 + 2));
0x000a1610 lw t9, 0x30(sp) | t9 = *(var_30h);
0x000a1614 lwx a0, s3(a0) | __asm ("lwx a0, s3(a0)");
0x000a1618 jalr t9 | t9 ();
0x000a161c lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x000a1620 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 == 0) {
0x000a1624 beqz v1, 0xa1550 | goto label_2;
| }
0x000a1628 lw t9, 0x34(sp) | t9 = *(var_34h);
| if (v0 == 0) {
0x000a162c beqz v0, 0xa1550 | goto label_2;
| }
0x000a1630 move a1, v0 | a1 = v0;
0x000a1634 move a0, v1 | a0 = v1;
0x000a1638 jalr t9 | t9 ();
0x000a163c lw gp, 0x10(sp) | gp = *(var_10h);
0x000a1640 b 0xa1550 | goto label_2;
| label_17:
0x000a1644 move a0, fp | a0 = fp;
0x000a1648 bal 0x87bf4 | sym_valuePop ();
0x000a164c lw t9, 0x28(sp) | t9 = *(var_28h);
0x000a1650 move a0, v0 | a0 = v0;
0x000a1654 jalr t9 | t9 ();
0x000a1658 lw gp, 0x10(sp) | gp = *(var_10h);
0x000a165c b 0xa1570 | goto label_3;
| label_15:
0x000a1660 lw v0, -0x78a0(gp) | v0 = *((gp - 7720));
0x000a1664 sw v0, 0x18(sp) | *(var_18h) = v0;
| label_18:
0x000a1668 lw t9, -0x7874(gp) | t9 = *((gp - 7709));
0x000a166c move a0, s6 | a0 = s6;
0x000a1670 bal 0x8c2f8 | sym_xmlXPathFreeObject ();
0x000a1674 lw gp, 0x10(sp) | gp = *(var_10h);
0x000a1678 lw v0, 0xc(fp) | v0 = *(arg_ch);
0x000a167c addiu v1, zero, -1 | v1 = -1;
0x000a1680 lw t9, -0x780c(gp) | t9 = *((gp - 7683));
0x000a1684 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x000a1688 sw v1, 0x44(v0) | *((v0 + 17)) = v1;
0x000a168c sw v1, 0x48(v0) | *((v0 + 18)) = v1;
0x000a1690 sw zero, 4(v0) | *((v0 + 1)) = 0;
0x000a1694 bal 0x9e474 | sym_xmlXPtrWrapLocationSet ();
0x000a1698 lw t9, 0x18(sp) | t9 = *(var_18h);
0x000a169c move a1, v0 | a1 = v0;
0x000a16a0 move a0, fp | a0 = fp;
0x000a16a4 jalr t9 | t9 ();
0x000a16a8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000a16ac b 0xa1464 | goto label_4;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x9dfc8 */
| #include <stdint.h>
|
; (fcn) sym.xmlXPtrFreeLocationSet () | void xmlXPtrFreeLocationSet () {
0x0009dfc8 lui gp, 0xf |
0x0009dfcc addiu gp, gp, 0x36a8 |
0x0009dfd0 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x0009dfd4 beqz a0, 0x9e094 | goto label_0;
| }
0x0009dfd8 nop |
0x0009dfdc addiu sp, sp, -0x28 |
0x0009dfe0 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x0009dfe4 move s1, a0 | s1 = a0;
0x0009dfe8 lw a0, 8(a0) | a0 = *((a0 + 2));
0x0009dfec sw gp, 0x10(sp) | *(var_10h) = gp;
0x0009dff0 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0009dff4 sw s2, 0x20(sp) | *(var_20h) = s2;
0x0009dff8 sw s0, 0x18(sp) | *(var_18h) = s0;
| if (a0 == 0) {
0x0009dffc beql a0, zero, 0x9e074 | goto label_1;
| }
0x0009e000 lw s0, -0x7158(gp) | s0 = *(gp);
0x0009e004 lw v0, (s1) | v0 = *(s1);
| if (v0 <= 0) {
0x0009e008 blezl v0, 0x9e044 | goto label_2;
| }
0x0009e00c lw s0, -0x7158(gp) | s0 = *(gp);
0x0009e010 lw s2, -0x7874(gp) | s2 = *((gp - 7709));
0x0009e014 move s0, zero | s0 = 0;
| do {
0x0009e018 sll v0, s0, 2 | v0 = s0 << 2;
0x0009e01c move t9, s2 | t9 = s2;
0x0009e020 lwx a0, v0(a0) | __asm ("lwx a0, v0(a0)");
0x0009e024 addiu s0, s0, 1 | s0++;
0x0009e028 bal 0x8c2f8 | sym_xmlXPathFreeObject ();
0x0009e02c lw v0, (s1) | v0 = *(s1);
0x0009e030 lw gp, 0x10(sp) | gp = *(var_10h);
0x0009e034 slt v0, s0, v0 | v0 = (s0 < v0) ? 1 : 0;
0x0009e038 lw a0, 8(s1) | a0 = *((s1 + 2));
0x0009e03c bnez v0, 0x9e018 |
| } while (v0 != 0);
0x0009e040 lw s0, -0x7158(gp) | s0 = *(gp);
| label_2:
0x0009e044 lw t9, (s0) | t9 = *(s0);
0x0009e048 jalr t9 | t9 ();
0x0009e04c nop |
0x0009e050 lw gp, 0x10(sp) | gp = *(var_10h);
0x0009e054 lw t9, (s0) | t9 = *(s0);
0x0009e058 lw ra, 0x24(sp) | ra = *(var_24h);
0x0009e05c lw s2, 0x20(sp) | s2 = *(var_20h);
0x0009e060 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0009e064 move a0, s1 | a0 = s1;
0x0009e068 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0009e06c addiu sp, sp, 0x28 |
0x0009e070 jr t9 | t9 ();
| label_1:
0x0009e074 lw ra, 0x24(sp) | ra = *(var_24h);
0x0009e078 lw s2, 0x20(sp) | s2 = *(var_20h);
0x0009e07c lw t9, (s0) | t9 = *(s0);
0x0009e080 move a0, s1 | a0 = s1;
0x0009e084 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0009e088 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0009e08c addiu sp, sp, 0x28 |
0x0009e090 jr t9 | t9 ();
| label_0:
0x0009e094 jr ra | return v0;
0x0009e098 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x9dec0 */
| #include <stdint.h>
|
; (fcn) sym.xmlXPtrLocationSetDel () | void xmlXPtrLocationSetDel () {
| if (a0 == 0) {
0x0009dec0 beqz a0, 0x9df14 | goto label_0;
| }
0x0009dec4 nop |
| if (a1 == 0) {
0x0009dec8 beqz a1, 0x9df14 | goto label_0;
| }
0x0009decc nop |
0x0009ded0 lw a3, (a0) | a3 = *(a0);
| if (a3 <= 0) {
0x0009ded4 blez a3, 0x9df14 | goto label_0;
| }
0x0009ded8 nop |
0x0009dedc lw t0, 8(a0) | t0 = *((a0 + 2));
0x0009dee0 lw v0, (t0) | v0 = *(t0);
0x0009dee4 addiu v1, t0, 4 | v1 = t0 + 4;
| if (a1 == v0) {
0x0009dee8 beq a1, v0, 0x9df1c | goto label_1;
| }
0x0009deec move v0, zero | v0 = 0;
0x0009def0 b 0x9df00 |
| while (v0 != a3) {
0x0009def4 lw a2, -4(v1) | a2 = *((v1 - 1));
| if (a1 == a2) {
0x0009def8 beql a1, a2, 0x9df24 | goto label_2;
| }
0x0009defc addiu a1, a3, -1 | a1 = a3 + -1;
0x0009df00 addiu v0, v0, 1 | v0++;
0x0009df04 addiu v1, v1, 4 | v1 += 4;
0x0009df08 bne v0, a3, 0x9def4 |
| }
0x0009df0c jr ra | return v1;
0x0009df10 nop |
| label_0:
0x0009df14 jr ra | return v1;
0x0009df18 nop |
| label_1:
0x0009df1c move v0, zero | v0 = 0;
0x0009df20 addiu a1, a3, -1 | a1 = a3 + -1;
| label_2:
0x0009df24 slt v1, v0, a1 | v1 = (v0 < a1) ? 1 : 0;
0x0009df28 sw a1, (a0) | *(a0) = a1;
| if (v1 == 0) {
0x0009df2c beqz v1, 0x9df54 | goto label_3;
| }
0x0009df30 sll v0, v0, 2 | v0 <<= 2;
0x0009df34 addiu v1, t0, -4 | v1 = t0 + -4;
0x0009df38 sll a3, a3, 2 | a3 <<= 2;
0x0009df3c addu v0, t0, v0 | v0 = t0 + v0;
0x0009df40 addu a3, v1, a3 | a3 = v1 + a3;
| do {
0x0009df44 lw v1, 4(v0) | v1 = *((v0 + 1));
0x0009df48 addiu v0, v0, 4 | v0 += 4;
0x0009df4c sw v1, -4(v0) | *((v0 - 1)) = v1;
0x0009df50 bne a3, v0, 0x9df44 |
| } while (a3 != v0);
| label_3:
0x0009df54 sll a1, a1, 2 | a1 <<= 2;
0x0009df58 addu t0, t0, a1 | t0 += a1;
0x0009df5c sw zero, (t0) | *(t0) = 0;
0x0009df60 jr ra | return v1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x9df64 */
| #include <stdint.h>
|
; (fcn) sym.xmlXPtrLocationSetRemove () | void xmlXPtrLocationSetRemove () {
| if (a0 == 0) {
0x0009df64 beqz a0, 0x9dfc0 | goto label_0;
| }
0x0009df68 nop |
0x0009df6c lw v1, (a0) | v1 = *(a0);
0x0009df70 slt v0, a1, v1 | v0 = (a1 < v1) ? 1 : 0;
0x0009df74 addiu a2, v1, -1 | a2 = v1 + -1;
| if (v0 == 0) {
0x0009df78 beqz v0, 0x9dfc0 | goto label_0;
| }
0x0009df7c slt v0, a1, a2 | v0 = (a1 < a2) ? 1 : 0;
0x0009df80 sw a2, (a0) | *(a0) = a2;
0x0009df84 lw a0, 8(a0) | a0 = *((a0 + 2));
| if (v0 == 0) {
0x0009df88 beqz v0, 0x9dfb0 | goto label_1;
| }
0x0009df8c sll v0, v1, 2 | v0 = v1 << 2;
0x0009df90 sll a1, a1, 2 | a1 <<= 2;
0x0009df94 addiu v1, a0, -4 | v1 = a0 + -4;
0x0009df98 addu a1, a0, a1 | a1 = a0 + a1;
0x0009df9c addu v1, v0, v1 | v1 = v0 + v1;
| do {
0x0009dfa0 lw v0, 4(a1) | v0 = *((a1 + 1));
0x0009dfa4 addiu a1, a1, 4 | a1 += 4;
0x0009dfa8 sw v0, -4(a1) | *((a1 - 1)) = v0;
0x0009dfac bne v1, a1, 0x9dfa0 |
| } while (v1 != a1);
| label_1:
0x0009dfb0 sll a2, a2, 2 | a2 <<= 2;
0x0009dfb4 addu a2, a0, a2 | a2 = a0 + a2;
0x0009dfb8 sw zero, (a2) | *(a2) = 0;
0x0009dfbc jr ra | return v1;
| label_0:
0x0009dfc0 jr ra | return v1;
0x0009dfc4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libxml2.so.2.9.9 @ 0x9dac0 */
| #include <stdint.h>
|
; (fcn) sym.xmlXPtrNewRangeNodePoint () | void xmlXPtrNewRangeNodePoint () {
0x0009dac0 lui gp, 0xf |
0x0009dac4 addiu gp, gp, 0x3bb0 |
0x0009dac8 addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x0009dacc beqz a0, 0x9db3c |
0x0009dad0 nop |
| if (a1 == 0) {
0x0009dad4 beqz a1, 0x9db3c | goto label_0;
| }
0x0009dad8 nop |
0x0009dadc lw v1, (a1) | v1 = *(a1);
0x0009dae0 addiu v0, zero, 5 | v0 = 5;
0x0009dae4 lw t9, -0x781c(gp) | t9 = *((gp - 7687));
| if (v1 == v0) {
0x0009dae8 bne v1, v0, 0x9db34 |
0x0009daec addiu sp, sp, -0x28 |
0x0009daf0 lw a3, 0x20(a1) | a3 = *((a1 + 8));
0x0009daf4 lw a2, 0x1c(a1) | a2 = *((a1 + 7));
0x0009daf8 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0009dafc sw gp, 0x10(sp) | *(var_10h) = gp;
0x0009db00 addiu t9, t9, -0x2fa0 | t9 += -0x2fa0;
0x0009db04 addiu a1, zero, -1 | a1 = -1;
0x0009db08 bal 0x9d060 | fcn_0009d060 ();
0x0009db0c lw gp, 0x10(sp) | gp = *(var_10h);
0x0009db10 move a0, v0 | a0 = v0;
0x0009db14 lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x0009db18 addiu t9, t9, -0x2bc8 | t9 += -0x2bc8;
0x0009db1c sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x0009db20 bal 0x9d438 | fcn_0009d438 ();
0x0009db24 lw ra, 0x24(sp) | ra = *(var_24h);
0x0009db28 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x0009db2c addiu sp, sp, 0x28 |
0x0009db30 jr ra | return v0;
| }
0x0009db34 move v0, zero | v0 = 0;
0x0009db38 jr ra | return v0;
| }
| label_0:
0x0009db3c move v0, zero | v0 = 0;
0x0009db40 jr ra | return v0;
| }
[*] Function mmap used 1 times libxml2.so.2.9.9