[*] Binary protection state of libfontconfig.so.1.12.0
Full RELRO Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function system tear down of libfontconfig.so.1.12.0
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libfontconfig.so.1.12.0 @ 0x4ff4 */
| #include <stdint.h>
|
; (fcn) entry.fini0 () | void entry_fini0 () {
0x00004ff4 lui gp, 6 |
0x00004ff8 addiu gp, gp, -0x4fe4 |
0x00004ffc addu gp, gp, t9 | gp += t9;
0x00005000 addiu sp, sp, -0x20 |
0x00005004 sw s0, 0x18(sp) | *(var_18h) = s0;
0x00005008 lw s0, -0x7fe4(gp) | s0 = *((gp - 8185));
0x0000500c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00005010 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x00005014 lbu v0, -0x7800(s0) | v0 = *((s0 - 30720));
0x00005018 lw v0, -0x784c(gp) | v0 = *(gp);
| if (v0 == 0) {
0x0000501c bnez v0, 0x5050 |
0x00005020 lw v0, -0x7fe0(gp) | v0 = *((gp - 8184));
| if (v0 != 0) {
0x00005024 beqz v0, 0x5038 |
0x00005028 lw t9, -0x784c(gp) | t9 = *(gp);
0x0000502c lw a0, (v0) | a0 = *(v0);
0x00005030 jalr t9 | t9 ();
0x00005034 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00005038 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x0000503c addiu t9, t9, 0x4f70 | t9 += entry0;
0x00005040 bal 0x4f70 | entry0 ();
0x00005044 nop |
0x00005048 addiu v0, zero, 1 | v0 = 1;
0x0000504c sb v0, -0x7800(s0) | *((s0 - 30720)) = v0;
| }
0x00005050 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x00005054 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00005058 addiu sp, sp, 0x20 |
0x0000505c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libfontconfig.so.1.12.0 @ 0x7cc8 */
| #include <stdint.h>
|
; (fcn) fcn.00007cc8 () | void fcn_00007cc8 () {
0x00007cc8 lui gp, 6 |
0x00007ccc addiu gp, gp, -0x7cb8 |
0x00007cd0 addu gp, gp, t9 | gp += t9;
0x00007cd4 addiu sp, sp, -0x68 |
0x00007cd8 sw s2, 0x48(sp) | *(var_48h) = s2;
0x00007cdc sw s1, 0x44(sp) | *(var_44h) = s1;
0x00007ce0 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00007ce4 sw ra, 0x64(sp) | *(var_64h_2) = ra;
0x00007ce8 sw fp, 0x60(sp) | *(var_60h) = fp;
0x00007cec sw s7, 0x5c(sp) | *(var_5ch) = s7;
0x00007cf0 sw s6, 0x58(sp) | *(var_58h) = s6;
0x00007cf4 sw s5, 0x54(sp) | *(var_54h) = s5;
0x00007cf8 sw s4, 0x50(sp) | *(var_50h) = s4;
0x00007cfc sw s3, 0x4c(sp) | *(var_4ch) = s3;
0x00007d00 sw s0, 0x40(sp) | *(var_40h) = s0;
0x00007d04 lw v0, 0x38(a2) | v0 = *((a2 + 14));
0x00007d08 lw s2, -0x789c(gp) | s2 = *((gp - 7719));
0x00007d0c lw v1, 0x3c(a2) | v1 = *((a2 + 15));
0x00007d10 move s1, a2 | s1 = a2;
0x00007d14 addiu a2, v0, -0x28 | a2 = v0 + -0x28;
0x00007d18 lw t0, (s2) | t0 = *(s2);
0x00007d1c sltu v0, a2, v0 | v0 = (a2 < v0) ? 1 : 0;
0x00007d20 addiu v1, v1, -1 | v1 += -1;
0x00007d24 addu v0, v0, v1 | v0 += v1;
0x00007d28 sw t0, 0x3c(sp) | *(var_3ch) = t0;
0x00007d2c move s0, zero | s0 = 0;
| if (v0 != 0) {
0x00007d30 bnez v0, 0x7f8c | goto label_3;
| }
0x00007d34 lui v0, 0x7fff | v0 = 0x7fffffd8;
0x00007d38 ori v0, v0, 0xffd8 |
0x00007d3c sltu a2, a2, v0 | a2 = (a2 < v0) ? 1 : 0;
0x00007d40 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
| if (a2 == 0) {
0x00007d44 beqz a2, 0x7f8c | goto label_3;
| }
0x00007d48 move s3, a0 | s3 = a0;
0x00007d4c addiu t9, t9, 0x6444 | t9 += fcn.00006444;
0x00007d50 move s5, a1 | s5 = a1;
0x00007d54 move s4, a3 | s4 = a3;
0x00007d58 bal 0x6444 | fcn_00006444 ();
0x00007d5c lw gp, 0x20(sp) | gp = *(var_20h);
0x00007d60 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x00007d64 lw s0, -0x77e4(v0) | s0 = *((v0 - 7673));
0x00007d68 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
| if (s0 == 0) {
0x00007d6c beqz s0, 0x7f00 | goto label_9;
| }
0x00007d70 lw a0, (s1) | a0 = *(s1);
0x00007d74 b 0x7d80 |
| while (v0 == a0) {
| label_0:
0x00007d78 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
| if (s0 == 0) {
0x00007d7c beqz s0, 0x7f00 | goto label_9;
| }
0x00007d80 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x00007d84 lw s0, 0x28(s0) | s0 = *((s0 + 10));
0x00007d88 bnel v0, a0, 0x7d78 |
| }
0x00007d8c lw v0, 0x14(s0) | v0 = *((s0 + 5));
0x00007d90 lw s0, 0x28(s0) | s0 = *((s0 + 10));
| if (v0 == 0) {
0x00007d94 bnel v0, zero, 0x7d78 | goto label_0;
| }
0x00007d98 lw v1, 0x18(s0) | v1 = *((s0 + 6));
0x00007d9c lw v0, 0x10(s1) | v0 = *((s1 + 4));
0x00007da0 lw s0, 0x28(s0) | s0 = *((s0 + 10));
| if (v1 == v0) {
0x00007da4 bnel v1, v0, 0x7d78 | goto label_0;
| }
0x00007da8 lw v1, 0x1c(s0) | v1 = *((s0 + 7));
0x00007dac lw v0, 0x14(s1) | v0 = *((s1 + 5));
0x00007db0 lw s0, 0x28(s0) | s0 = *((s0 + 10));
| if (v1 == v0) {
0x00007db4 bnel v1, v0, 0x7d78 | goto label_0;
| }
0x00007db8 lw v1, 0x20(s0) | v1 = *((s0 + 8));
0x00007dbc lw v0, 0x48(s1) | v0 = *((s1 + 18));
0x00007dc0 lw s0, 0x28(s0) | s0 = *((s0 + 10));
| if (v1 == v0) {
0x00007dc4 bnel v1, v0, 0x7d78 | goto label_0;
| }
0x00007dc8 lw v1, 0x24(s0) | v1 = *((s0 + 9));
0x00007dcc lw v0, 0x4c(s1) | v0 = *((s1 + 19));
0x00007dd0 lw s0, 0x28(s0) | s0 = *((s0 + 10));
| if (v1 == v0) {
0x00007dd4 bnel v1, v0, 0x7d78 | goto label_0;
| }
0x00007dd8 sync | __asm ("sync");
| do {
0x00007ddc ll at, 4(s0) | __asm ("ll at, 4(s0)");
0x00007de0 addiu at, at, 1 | at++;
0x00007de4 sc at, 4(s0) | __asm ("sc at, 4(s0)");
0x00007de8 beqz at, 0x7ddc |
| } while (at == 0);
0x00007dec nop |
0x00007df0 sync | __asm ("sync");
0x00007df4 lw v0, -0x7fe4(gp) | v0 = *((gp - 8185));
0x00007df8 lw t9, -0x7828(gp) | t9 = *((gp - 7690));
0x00007dfc lw a0, -0x77ec(v0) | a0 = *(v0);
0x00007e00 jalr t9 | t9 ();
0x00007e04 lw s0, (s0) | s0 = *(s0);
0x00007e08 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s0 == 0) {
0x00007e0c beqz s0, 0x7f10 | goto label_10;
| }
0x00007e10 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00007e14 move a2, s4 | a2 = s4;
0x00007e18 move a1, s0 | a1 = s0;
0x00007e1c addiu t9, t9, 0x6228 | t9 += fcn.00006228;
0x00007e20 move a0, s3 | a0 = s3;
0x00007e24 bal 0x6228 | fcn_00006228 ();
0x00007e28 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00007e2c bnez v0, 0x7f8c | goto label_3;
| }
0x00007e30 lw t9, -0x7f70(gp) | t9 = *((gp - 8156));
0x00007e34 move a0, s0 | a0 = s0;
0x00007e38 bal 0x7a70 | fcn_00007a70 ();
0x00007e3c lw gp, 0x20(sp) | gp = *(var_20h);
0x00007e40 sync | __asm ("sync");
0x00007e44 lw s0, -0x7fe4(gp) | s0 = *((gp - 8185));
0x00007e48 lw v0, -0x77f0(s0) | v0 = *((s0 - 7676));
| if (v0 == 0) {
0x00007e4c beql v0, zero, 0x7f28 | goto label_11;
| }
0x00007e50 lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x00007e54 addiu v1, zero, 3 | v1 = 3;
| do {
0x00007e58 lw t9, -0x7f6c(gp) | t9 = *((gp - 8155));
| if (v0 == v1) {
0x00007e5c beq v0, v1, 0x81e8 | goto label_12;
| }
0x00007e60 xori v0, v0, 1 | v0 ^= 1;
0x00007e64 sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
| label_4:
0x00007e68 lw a1, 0x38(s1) | a1 = *((s1 + 14));
0x00007e6c lw v1, 0x3c(s1) | v1 = *((s1 + 15));
0x00007e70 move s6, a1 | s6 = a1;
| if (v0 != 0) {
0x00007e74 bnez v0, 0x7ff8 | goto label_13;
| }
| label_1:
0x00007e78 lw t9, -0x7930(gp) | t9 = *((gp - 7756));
| label_2:
0x00007e7c move a0, s6 | a0 = s6;
0x00007e80 jalr t9 | t9 ();
0x00007e84 move s0, v0 | s0 = v0;
0x00007e88 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00007e8c beqz v0, 0x7f88 | goto label_14;
| }
0x00007e90 lw t9, -0x785c(gp) | t9 = *((gp - 7703));
0x00007e94 move a1, v0 | a1 = v0;
0x00007e98 move a0, s5 | a0 = s5;
0x00007e9c move a2, s6 | a2 = s6;
0x00007ea0 jalr t9 | t9 ();
0x00007ea4 lw a1, 0x38(s1) | a1 = *((s1 + 14));
0x00007ea8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007eac lw v1, 0x3c(s1) | v1 = *((s1 + 15));
0x00007eb0 sra a0, v0, 0x1f | a0 = v0 >> 0x1f;
| if (v0 != a1) {
0x00007eb4 bne v0, a1, 0x81ac | goto label_15;
| }
0x00007eb8 lui v1, 0xfc02 | v1 = 0xfc020000;
| if (a0 != v1) {
0x00007ebc bne a0, v1, 0x81ac | goto label_15;
| }
0x00007ec0 lw a0, (s0) | a0 = *(s0);
0x00007ec4 ori v1, v1, 0xfc04 | v1 |= fcn.0000fc04;
0x00007ec8 lw t9, -0x788c(gp) | t9 = *((gp - 7715));
| if (a0 != v1) {
0x00007ecc bne a0, v1, 0x81b0 | goto label_16;
| }
0x00007ed0 lw v1, 4(s0) | v1 = *((s0 + 1));
0x00007ed4 slti v1, v1, 7 | v1 = (v1 < 7) ? 1 : 0;
| if (v1 != 0) {
0x00007ed8 bnez v1, 0x81b0 | goto label_16;
| }
0x00007edc nop |
0x00007ee0 lw s5, 8(s0) | s5 = *((s0 + 2));
| if (s5 != v0) {
0x00007ee4 bne s5, v0, 0x81b0 | goto label_16;
| }
0x00007ee8 nop |
0x00007eec lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x00007ef0 addiu s6, zero, 1 | s6 = 1;
| if (a0 < 0) {
0x00007ef4 bltz a0, 0x81b0 | goto label_16;
| }
0x00007ef8 addiu v0, s5, -4 | v0 = s5 + -4;
0x00007efc b 0x80c4 | goto label_17;
| label_9:
0x00007f00 lw t9, -0x7828(gp) | t9 = *((gp - 7690));
0x00007f04 lw a0, -0x77ec(v0) | a0 = *(v0);
0x00007f08 jalr t9 | t9 ();
0x00007f0c lw gp, 0x20(sp) | gp = *(var_20h);
| label_10:
0x00007f10 lw s0, -0x7fe4(gp) | s0 = *((gp - 8185));
0x00007f14 sync | __asm ("sync");
0x00007f18 lw v0, -0x77f0(s0) | v0 = *((s0 - 7676));
0x00007f1c addiu v1, zero, 3 | v1 = 3;
0x00007f20 bnez v0, 0x7e58 |
| } while (v0 != 0);
0x00007f24 lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
| label_11:
0x00007f28 lw t9, -0x7928(gp) | t9 = *((gp - 7754));
0x00007f2c addiu a0, a0, -0x757c | a0 += -0x757c;
0x00007f30 jalr t9 | t9 ();
0x00007f34 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00007f38 beqz v0, 0x81c4 | goto label_18;
| }
0x00007f3c lw t9, -0x7f68(gp) | t9 = *((gp - 8154));
0x00007f40 addiu a1, sp, 0x38 | a1 = sp + 0x38;
0x00007f44 move a0, v0 | a0 = v0;
0x00007f48 bal 0x25914 | fcn_00025914 ();
0x00007f4c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00007f50 beqz v0, 0x81c4 | goto label_18;
| }
0x00007f54 lw v0, 0x38(sp) | v0 = *(var_38h);
| if (v0 != 0) {
0x00007f58 bnez v0, 0x7fcc | goto label_19;
| }
0x00007f5c nop |
0x00007f60 sync | __asm ("sync");
| do {
0x00007f64 ll v1, -0x77f0(s0) | __asm ("ll v1, -0x77f0(s0)");
0x00007f68 addiu at, zero, 2 | at = 2;
| if (v1 != 0) {
0x00007f6c bnez v1, 0x7f80 | goto label_20;
| }
0x00007f70 sc at, -0x77f0(s0) | __asm ("sc at, -0x77f0(s0)");
0x00007f74 beqz at, 0x7f64 |
| } while (at == 0);
0x00007f78 nop |
0x00007f7c sync | __asm ("sync");
| label_20:
0x00007f80 lw s6, 0x38(s1) | s6 = *((s1 + 14));
0x00007f84 b 0x7e78 | goto label_1;
| label_14:
0x00007f88 move s0, zero | s0 = 0;
| label_3:
0x00007f8c lw a0, 0x3c(sp) | a0 = *(var_3ch);
0x00007f90 lw v1, (s2) | v1 = *(s2);
0x00007f94 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00007f98 bne a0, v1, 0x83dc | goto label_21;
| }
0x00007f9c lw ra, 0x64(sp) | ra = *(var_64h_2);
0x00007fa0 lw fp, 0x60(sp) | fp = *(var_60h);
0x00007fa4 lw s7, 0x5c(sp) | s7 = *(var_5ch);
0x00007fa8 lw s6, 0x58(sp) | s6 = *(var_58h);
0x00007fac lw s5, 0x54(sp) | s5 = *(var_54h);
0x00007fb0 lw s4, 0x50(sp) | s4 = *(var_50h);
0x00007fb4 lw s3, 0x4c(sp) | s3 = *(var_4ch);
0x00007fb8 lw s2, 0x48(sp) | s2 = *(var_48h);
0x00007fbc lw s1, 0x44(sp) | s1 = *(var_44h);
0x00007fc0 lw s0, 0x40(sp) | s0 = *(var_40h);
0x00007fc4 addiu sp, sp, 0x68 |
0x00007fc8 jr ra | return v0;
| label_19:
0x00007fcc sync | __asm ("sync");
| do {
0x00007fd0 ll v1, -0x77f0(s0) | __asm ("ll v1, -0x77f0(s0)");
0x00007fd4 addiu at, zero, 1 | at = 1;
| if (v1 != 0) {
0x00007fd8 bnez v1, 0x7fec | goto label_22;
| }
0x00007fdc sc at, -0x77f0(s0) | __asm ("sc at, -0x77f0(s0)");
0x00007fe0 beqz at, 0x7fd0 |
| } while (at == 0);
0x00007fe4 nop |
0x00007fe8 sync | __asm ("sync");
| label_22:
0x00007fec lw a1, 0x38(s1) | a1 = *((s1 + 14));
0x00007ff0 lw v1, 0x3c(s1) | v1 = *((s1 + 15));
0x00007ff4 move s6, a1 | s6 = a1;
| label_13:
0x00007ff8 lw t9, -0x78a8(gp) | t9 = *((gp - 7722));
| if (v1 > 0) {
0x00007ffc bgtz v1, 0x8018 | goto label_23;
| }
0x00008000 lw t9, -0x7930(gp) | t9 = *((gp - 7756));
| if (v1 != 0) {
0x00008004 bnez v1, 0x7e7c | goto label_2;
| }
0x00008008 sltiu v0, a1, 0x400 | v0 = (a1 < aav.0x00000400) ? 1 : 0;
| if (v0 != 0) {
0x0000800c bnez v0, 0x7e7c | goto label_2;
| }
0x00008010 nop |
0x00008014 lw t9, -0x78a8(gp) | t9 = *((gp - 7722));
| label_23:
0x00008018 move v1, zero | v1 = 0;
0x0000801c move v0, zero | v0 = 0;
0x00008020 addiu a3, zero, 1 | a3 = 1;
0x00008024 addiu a2, zero, 1 | a2 = 1;
0x00008028 move a0, zero | a0 = 0;
0x0000802c sw v1, 0x1c(sp) | *(var_1ch_2) = v1;
0x00008030 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00008034 sw s5, 0x10(sp) | *(var_10h_2) = s5;
0x00008038 jalr t9 | t9 ();
0x0000803c lw gp, 0x20(sp) | gp = *(var_20h);
0x00008040 lw a0, 0x38(s1) | a0 = *((s1 + 14));
0x00008044 lw a1, 0x3c(s1) | a1 = *((s1 + 15));
0x00008048 addiu v1, zero, 3 | v1 = 3;
0x0000804c lw t9, -0x79fc(gp) | t9 = *((gp - 7807));
0x00008050 sw a0, 0x10(sp) | *(var_10h_2) = a0;
0x00008054 sw v1, 0x18(sp) | *(var_18h) = v1;
0x00008058 sw a1, 0x14(sp) | *(var_14h) = a1;
0x0000805c move a2, zero | a2 = 0;
0x00008060 move a3, zero | a3 = 0;
0x00008064 move a0, s5 | a0 = s5;
0x00008068 move s0, v0 | s0 = v0;
0x0000806c jalr t9 | t9 ();
0x00008070 addiu v0, zero, -1 | v0 = -1;
0x00008074 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s0 == v0) {
0x00008078 beq s0, v0, 0x8210 | goto label_24;
| }
0x0000807c lw a1, 0x38(s1) | a1 = *((s1 + 14));
| if (s0 == 0) {
0x00008080 beqz s0, 0x83e8 | goto label_25;
| }
0x00008084 lui v0, 0xfc02 | v0 = 0xfc020000;
0x00008088 lw v1, (s0) | v1 = *(s0);
0x0000808c ori v0, v0, 0xfc04 | v0 |= fcn.0000fc04;
0x00008090 lw t9, -0x79b4(gp) | t9 = *((gp - 7789));
| if (v1 != v0) {
0x00008094 bne v1, v0, 0x81fc | goto label_26;
| }
0x00008098 lw v0, 4(s0) | v0 = *((s0 + 1));
0x0000809c slti v0, v0, 7 | v0 = (v0 < 7) ? 1 : 0;
| if (v0 != 0) {
0x000080a0 bnez v0, 0x81fc | goto label_26;
| }
0x000080a4 nop |
0x000080a8 lw s5, 8(s0) | s5 = *((s0 + 2));
| if (s5 != a1) {
0x000080ac bne s5, a1, 0x81fc | goto label_26;
| }
0x000080b0 nop |
0x000080b4 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x000080b8 move s6, zero | s6 = 0;
| if (a0 < 0) {
0x000080bc bltz a0, 0x81fc | goto label_26;
| }
0x000080c0 addiu v0, s5, -4 | v0 = s5 + -4;
| label_17:
0x000080c4 sltu v0, v0, a0 | v0 = (v0 < a0) ? 1 : 0;
0x000080c8 lw t9, -0x7984(gp) | t9 = *((gp - 7777));
| if (v0 != 0) {
0x000080cc bnez v0, 0x81a4 | goto label_5;
| }
0x000080d0 subu a2, s5, a0 | __asm ("subu a2, s5, a0");
0x000080d4 move a1, zero | a1 = 0;
0x000080d8 addu a0, s0, a0 | a0 = s0 + a0;
0x000080dc jalr t9 | t9 ();
0x000080e0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000080e4 beqz v0, 0x81a4 | goto label_5;
| }
0x000080e8 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x000080ec slt v1, v0, s5 | v1 = (v0 < s5) ? 1 : 0;
| if (v0 < 0) {
0x000080f0 bltz v0, 0x81a4 | goto label_5;
| }
| if (v1 == 0) {
0x000080f4 beqz v1, 0x81a4 | goto label_5;
| }
0x000080f8 nop |
0x000080fc lw s7, 0x14(s0) | s7 = *((s0 + 5));
0x00008100 subu v1, s5, v0 | __asm ("subu v1, s5, v0");
| if (s7 < 0) {
0x00008104 bltz s7, 0x81a4 | goto label_5;
| }
0x00008108 srl v1, v1, 2 | v1 >>= 2;
0x0000810c sltu v1, v1, s7 | v1 = (v1 < s7) ? 1 : 0;
0x00008110 addu v1, v0, s0 | v1 = v0 + s0;
| if (v1 != 0) {
0x00008114 bnez v1, 0x81a4 | goto label_5;
| }
0x00008118 addu v0, s0, s5 | v0 = s0 + s5;
0x0000811c sw v0, 0x30(sp) | *(var_30h) = v0;
| if (v1 == 0) {
0x00008120 beqz v1, 0x8218 | goto label_27;
| }
| if (s7 == 0) {
0x00008124 beql s7, zero, 0x821c | goto label_28;
| }
0x00008128 lw v0, 0x18(s0) | v0 = *((s0 + 6));
0x0000812c lw a0, (v1) | a0 = *(v1);
| if (a0 < 0) {
0x00008130 bltz a0, 0x81a4 | goto label_5;
| }
0x00008134 nop |
0x00008138 subu fp, v0, v1 | __asm ("subu fp, v0, v1");
0x0000813c addiu v0, fp, -4 | v0 = fp + -4;
0x00008140 sw v0, 0x34(sp) | *(var_34h) = v0;
0x00008144 sltu v0, v0, a0 | v0 = (v0 < a0) ? 1 : 0;
| if (v0 != 0) {
0x00008148 bnez v0, 0x81a4 | goto label_5;
| }
0x0000814c nop |
0x00008150 move fp, zero | fp = 0;
0x00008154 b 0x8180 |
| while (v0 != 0) {
0x00008158 addiu fp, fp, 1 | fp++;
0x0000815c lw v1, 0x2c(sp) | v1 = *(var_2ch);
| if (s7 == fp) {
0x00008160 beq s7, fp, 0x8218 | goto label_27;
| }
0x00008164 sll a0, fp, 2 | a0 = fp << 2;
0x00008168 lwx a0, v1(a0) | __asm ("lwx a0, v1(a0)");
0x0000816c lw v0, 0x34(sp) | v0 = *(var_34h);
| if (a0 < 0) {
0x00008170 bltz a0, 0x81a4 | goto label_5;
| }
0x00008174 sltu v0, v0, a0 | v0 = (v0 < a0) ? 1 : 0;
| if (v0 != 0) {
0x00008178 bnez v0, 0x81a4 | goto label_5;
| }
0x0000817c nop |
0x00008180 lw v0, 0x30(sp) | v0 = *(var_30h);
0x00008184 lw t9, -0x7984(gp) | t9 = *((gp - 7777));
0x00008188 addu a0, v1, a0 | a0 = v1 + a0;
0x0000818c sw v1, 0x2c(sp) | *(var_2ch) = v1;
0x00008190 subu a2, v0, a0 | __asm ("subu a2, v0, a0");
0x00008194 move a1, zero | a1 = 0;
0x00008198 jalr t9 | t9 ();
0x0000819c lw gp, 0x20(sp) | gp = *(var_20h);
0x000081a0 bnez v0, 0x8158 |
| }
| if (s6 == 0) {
| label_5:
0x000081a4 beql s6, zero, 0x81f8 | goto label_29;
| }
0x000081a8 lw a1, 0x38(s1) | a1 = *((s1 + 14));
| label_15:
0x000081ac lw t9, -0x788c(gp) | t9 = *((gp - 7715));
| label_16:
0x000081b0 move a0, s0 | a0 = s0;
0x000081b4 jalr t9 | t9 ();
0x000081b8 move s0, zero | s0 = 0;
0x000081bc lw gp, 0x20(sp) | gp = *(var_20h);
0x000081c0 b 0x7f8c | goto label_3;
| label_18:
0x000081c4 sync | __asm ("sync");
| do {
0x000081c8 ll v1, -0x77f0(s0) | __asm ("ll v1, -0x77f0(s0)");
0x000081cc addiu at, zero, 3 | at = 3;
| if (v1 != 0) {
0x000081d0 bnez v1, 0x81e4 | goto label_30;
| }
0x000081d4 sc at, -0x77f0(s0) | __asm ("sc at, -0x77f0(s0)");
0x000081d8 beqz at, 0x81c8 |
| } while (at == 0);
0x000081dc nop |
0x000081e0 sync | __asm ("sync");
| label_30:
0x000081e4 lw t9, -0x7f6c(gp) | t9 = *((gp - 8155));
| label_12:
0x000081e8 move a0, s5 | a0 = s5;
0x000081ec jalr t9 | t9 ();
0x000081f0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000081f4 b 0x7e68 | goto label_4;
| label_29:
0x000081f8 lw t9, -0x79b4(gp) | t9 = *((gp - 7789));
| label_26:
0x000081fc move a0, s0 | a0 = s0;
0x00008200 jalr t9 | t9 ();
0x00008204 move s0, zero | s0 = 0;
0x00008208 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000820c b 0x7f8c | goto label_3;
| label_24:
0x00008210 lw s6, 0x38(s1) | s6 = *((s1 + 14));
0x00008214 b 0x7e78 | goto label_1;
| label_27:
0x00008218 lw v0, 0x18(s0) | v0 = *((s0 + 6));
| label_28:
0x0000821c addiu v1, s5, -0xc | v1 = s5 + -0xc;
| if (v0 < 0) {
0x00008220 bltz v0, 0x81a4 | goto label_5;
| }
0x00008224 sltu v1, v1, v0 | v1 = (v1 < v0) ? 1 : 0;
| if (v1 != 0) {
0x00008228 bnez v1, 0x81a4 | goto label_5;
| }
0x0000822c nop |
0x00008230 addu a1, s0, v0 | a1 = s0 + v0;
0x00008234 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
| if (a1 == 0) {
0x00008238 beqz a1, 0x838c | goto label_31;
| }
0x0000823c lw v1, 0x30(sp) | v1 = *(var_30h);
0x00008240 lw t3, (a1) | t3 = *(a1);
0x00008244 subu v0, v1, a1 | __asm ("subu v0, v1, a1");
0x00008248 srl v0, v0, 4 | v0 >>= 4;
0x0000824c sltu v0, v0, t3 | v0 = (v0 < t3) ? 1 : 0;
| if (v0 != 0) {
0x00008250 bnez v0, 0x81a4 | goto label_5;
| }
0x00008254 nop |
0x00008258 lw t1, 8(a1) | t1 = *((a1 + 2));
0x0000825c andi v0, t1, 1 | v0 = t1 & 1;
0x00008260 addiu a3, zero, -2 | a3 = -2;
| if (v0 == 0) {
0x00008264 beqz v0, 0x81a4 | goto label_5;
| }
0x00008268 move t2, zero | t2 = 0;
0x0000826c and t1, t1, a3 | t1 &= a3;
0x00008270 addiu t5, v1, -0xc | t5 = v1 + -0xc;
0x00008274 addiu t4, zero, -1 | t4 = -1;
0x00008278 addiu t0, v1, -0x20 | t0 = v1 + -0x20;
| label_6:
0x0000827c slt v0, t2, t3 | v0 = (t2 < t3) ? 1 : 0;
0x00008280 sll v0, t2, 2 | v0 = t2 << 2;
| if (v0 == 0) {
0x00008284 beqz v0, 0x8388 | goto label_32;
| }
0x00008288 addu v0, v0, a1 | v0 += a1;
0x0000828c lwx v0, t1(v0) | __asm ("lwx v0, t1(v0)");
0x00008290 and v0, v0, a3 | v0 &= a3;
0x00008294 addu v0, v0, a1 | v0 += a1;
0x00008298 sltu v1, v0, s0 | v1 = (v0 < s0) ? 1 : 0;
0x0000829c sltu v1, t5, v0 | v1 = (t5 < v0) ? 1 : 0;
| if (v1 != 0) {
0x000082a0 bnez v1, 0x81a4 | goto label_5;
| }
| if (v1 != 0) {
0x000082a4 bnez v1, 0x81a4 | goto label_5;
| }
0x000082a8 nop |
0x000082ac lw a2, 8(v0) | a2 = *((v0 + 2));
0x000082b0 lw v1, 0x30(sp) | v1 = *(var_30h);
| if (a2 < 0) {
0x000082b4 bltz a2, 0x81a4 | goto label_5;
| }
0x000082b8 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x000082bc slt a0, v1, a2 | a0 = (v1 < a2) ? 1 : 0;
0x000082c0 subu v1, v1, a2 | __asm ("subu v1, v1, a2");
| if (a0 != 0) {
0x000082c4 bnez a0, 0x81a4 | goto label_5;
| }
0x000082c8 lw t6, (v0) | t6 = *(v0);
0x000082cc srl v1, v1, 3 | v1 >>= 3;
0x000082d0 sltu v1, v1, t6 | v1 = (v1 < t6) ? 1 : 0;
| if (v1 != 0) {
0x000082d4 bnez v1, 0x81a4 | goto label_5;
| }
0x000082d8 nop |
0x000082dc lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x000082e0 addu a2, v0, a2 | a2 = v0 + a2;
| if (v1 != t4) {
0x000082e4 bne v1, t4, 0x81a4 | goto label_5;
| }
0x000082e8 lw v0, 4(a2) | v0 = *((a2 + 1));
0x000082ec andi v0, v0, 1 | v0 &= 1;
| if (v0 == 0) {
0x000082f0 beqz v0, 0x82fc | goto label_33;
| }
| if (v0 == 0) {
0x000082f4 beqz v0, 0x81a4 | goto label_5;
| }
0x000082f8 nop |
| if (t6 <= 0) {
| label_33:
0x000082fc blezl t6, 0x827c | goto label_6;
| }
0x00008300 addiu t2, t2, 1 | t2++;
0x00008304 move t7, a2 | t7 = a2;
0x00008308 move t8, zero | t8 = 0;
| label_8:
0x0000830c lw v0, 4(t7) | v0 = *((t7 + 1));
0x00008310 andi v1, v0, 1 | v1 = v0 & 1;
| if (v1 != 0) {
0x00008314 beqz v1, 0x8324 |
0x00008318 nop |
0x0000831c and v0, v0, a3 | v0 &= a3;
0x00008320 addu v0, v0, t7 | v0 += t7;
| }
| if (v0 == 0) {
0x00008324 beql v0, zero, 0x8378 | goto label_34;
| }
0x00008328 addiu t8, t8, 1 | t8++;
0x0000832c sltu v1, v0, a2 | v1 = (v0 < a2) ? 1 : 0;
0x00008330 sltu v1, t0, v0 | v1 = (t0 < v0) ? 1 : 0;
| if (v1 == 0) {
0x00008334 beqz v1, 0x8360 | goto label_35;
| }
0x00008338 b 0x81a4 | goto label_5;
0x0000833c nop |
| label_7:
0x00008340 and v1, v1, a3 | v1 &= a3;
| if (a0 == 0) {
0x00008344 beqz a0, 0x81a4 | goto label_5;
| }
0x00008348 addiu a0, v0, 1 | a0 = v0 + 1;
0x0000834c addu v0, v0, v1 | v0 += v1;
0x00008350 sltu a0, v0, a0 | a0 = (v0 < a0) ? 1 : 0;
| if (v0 == 0) {
0x00008354 beqz v0, 0x8374 | goto label_36;
| }
0x00008358 sltu v1, t0, v0 | v1 = (t0 < v0) ? 1 : 0;
| if (a0 != 0) {
0x0000835c bnez a0, 0x81a4 | goto label_5;
| }
| if (v1 != 0) {
| label_35:
0x00008360 bnez v1, 0x81a4 | goto label_5;
| }
0x00008364 nop |
0x00008368 lw v1, (v0) | v1 = *(v0);
0x0000836c andi a0, v1, 1 | a0 = v1 & 1;
| if (v1 != 0) {
0x00008370 bnez v1, 0x8340 | goto label_7;
| }
| label_36:
0x00008374 addiu t8, t8, 1 | t8++;
| label_34:
0x00008378 addiu t7, t7, 8 | t7 += 8;
| if (t6 != t8) {
0x0000837c bne t6, t8, 0x830c | goto label_8;
| }
0x00008380 addiu t2, t2, 1 | t2++;
0x00008384 b 0x827c | goto label_6;
| label_32:
0x00008388 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
| label_31:
0x0000838c move a2, s4 | a2 = s4;
0x00008390 move a1, s0 | a1 = s0;
0x00008394 addiu t9, t9, 0x6228 | t9 += fcn.00006228;
0x00008398 move a0, s3 | a0 = s3;
0x0000839c bal 0x6228 | fcn_00006228 ();
0x000083a0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000083a4 beqz v0, 0x81a4 | goto label_5;
| }
0x000083a8 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x000083ac move a1, s1 | a1 = s1;
0x000083b0 addiu t9, t9, 0x6520 | t9 += fcn.00006520;
0x000083b4 move a0, s0 | a0 = s0;
0x000083b8 bal 0x6520 | fcn_00006520 ();
0x000083bc lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000083c0 beqz v0, 0x81a4 | goto label_5;
| }
| if (s6 == 0) {
0x000083c4 beqz s6, 0x7f8c | goto label_3;
| }
0x000083c8 nop |
0x000083cc lui v0, 0xfc02 | v0 = 0xfc02fc05;
0x000083d0 ori v0, v0, 0xfc05 |
0x000083d4 sw v0, (s0) | *(s0) = v0;
0x000083d8 b 0x7f8c | goto label_3;
| label_21:
0x000083dc lw t9, -0x78c4(gp) | t9 = *((gp - 7729));
0x000083e0 jalr t9 | t9 ();
0x000083e4 nop |
| label_25:
0x000083e8 move s6, a1 | s6 = a1;
0x000083ec b 0x7e78 | goto label_1;
| }
[*] Function system used 1 times libfontconfig.so.1.12.0