[*] Binary protection state of blkid.util-linux
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of blkid.util-linux
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x9b48 */
| #include <stdint.h>
|
; (fcn) fcn.00009b48 () | void fcn_00009b48 () {
0x00009b48 lui gp, 3 |
0x00009b4c addiu gp, gp, -0x3af8 |
0x00009b50 addu gp, gp, t9 | gp += t9;
0x00009b54 addiu sp, sp, -0x30 |
0x00009b58 sw s1, 0x24(sp) | *(var_24h) = s1;
0x00009b5c lw s1, -0x7bc0(gp) | s1 = *((gp - 7920));
0x00009b60 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00009b64 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00009b68 lw v0, (s1) | v0 = *(s1);
0x00009b6c sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00009b70 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00009b74 move s2, a1 | s2 = a1;
0x00009b78 sw a2, 0x38(sp) | *(arg_38h) = a2;
0x00009b7c sw a3, 0x3c(sp) | *(arg_3ch) = a3;
0x00009b80 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00009b84 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
| if (a0 != 0) {
0x00009b88 beqz a0, 0x9b9c |
0x00009b8c lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x00009b90 ext v0, v0, 0x18, 1 | __asm ("ext v0, v0, 0x18, 1");
0x00009b94 lw s0, -0x7b90(gp) | s0 = *((gp - 7908));
| if (v0 == 0) {
0x00009b98 beqz v0, 0x9bfc | goto label_0;
| }
| }
0x00009b9c lw s0, -0x7b90(gp) | s0 = *((gp - 7908));
| do {
0x00009ba0 lw t9, -0x7b70(gp) | t9 = sym.imp.__vfprintf_chk
0x00009ba4 addiu v0, sp, 0x38 | v0 = sp + 0x38;
0x00009ba8 lw a0, (s0) | a0 = *(s0);
0x00009bac move a3, v0 | a3 = v0;
0x00009bb0 move a2, s2 | a2 = s2;
0x00009bb4 addiu a1, zero, 1 | a1 = 1;
0x00009bb8 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00009bbc jalr t9 | t9 ();
0x00009bc0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00009bc4 lw a1, (s0) | a1 = *(s0);
0x00009bc8 lw t9, -0x7d68(gp) | t9 = sym.imp.fputc;
0x00009bcc addiu a0, zero, 0xa | a0 = 0xa;
0x00009bd0 jalr t9 | t9 ();
0x00009bd4 lw v1, 0x1c(sp) | v1 = *(var_1ch);
0x00009bd8 lw v0, (s1) | v0 = *(s1);
0x00009bdc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 != v0) {
0x00009be0 bne v1, v0, 0x9c24 | goto label_1;
| }
0x00009be4 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00009be8 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00009bec lw s1, 0x24(sp) | s1 = *(var_24h);
0x00009bf0 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00009bf4 addiu sp, sp, 0x30 |
0x00009bf8 jr ra | return v1;
| label_0:
0x00009bfc lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00009c00 move v1, a0 | v1 = a0;
0x00009c04 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
0x00009c08 lw a0, (s0) | a0 = *(s0);
0x00009c0c move a3, v1 | a3 = v1;
| /* str.__p_:_ */
0x00009c10 addiu a2, a2, -0x34a8 | a2 += -0x34a8;
0x00009c14 addiu a1, zero, 1 | a1 = 1;
0x00009c18 jalr t9 | t9 ();
0x00009c1c lw gp, 0x10(sp) | gp = *(var_10h);
0x00009c20 b 0x9ba0 |
| } while (1);
| label_1:
0x00009c24 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00009c28 jalr t9 | t9 ();
0x00009c2c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x9c30 */
| #include <stdint.h>
|
; (fcn) fcn.00009c30 () | void fcn_00009c30 () {
0x00009c30 lui gp, 3 |
0x00009c34 addiu gp, gp, -0x3be0 |
0x00009c38 addu gp, gp, t9 | gp += t9;
0x00009c3c addiu sp, sp, -0x30 |
0x00009c40 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00009c44 sw ra, 0x2c(sp) | *(var_2ch_2) = ra;
0x00009c48 sw s2, 0x28(sp) | *(var_28h_2) = s2;
0x00009c4c sw s1, 0x24(sp) | *(var_24h_2) = s1;
0x00009c50 sw s0, 0x20(sp) | *(var_20h_2) = s0;
| if (a0 == 0) {
0x00009c54 beql a0, zero, 0x9ca4 | goto label_2;
| }
0x00009c58 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x00009c5c lb v1, (a0) | v1 = *(a0);
0x00009c60 move s0, a0 | s0 = a0;
| if (v1 == 0) {
0x00009c64 beqz v1, 0x9ca0 | goto label_3;
| }
0x00009c68 lw v1, 0x98(a0) | v1 = *((a0 + 38));
0x00009c6c andi v1, v1, 0x20 | v1 &= 0x20;
0x00009c70 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
| if (v1 != 0) {
0x00009c74 bnez v1, 0x9ca4 | goto label_2;
| }
0x00009c78 lw s1, 0xa0(a0) | s1 = *((a0 + 40));
0x00009c7c lw t9, -0x7f68(gp) | t9 = sym.sysfs_devname_to_devno;
0x00009c80 beqz s1, 0x9cc0 |
| while (v0 != 0) {
| label_1:
0x00009c84 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
| label_0:
0x00009c88 move v0, s1 | v0 = s1;
0x00009c8c lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x00009c90 lw s1, 0x24(sp) | s1 = *(var_24h_2);
0x00009c94 lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x00009c98 addiu sp, sp, 0x30 |
0x00009c9c jr ra | return v0;
| label_3:
0x00009ca0 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
| label_2:
0x00009ca4 move s1, zero | s1 = 0;
0x00009ca8 move v0, s1 | v0 = s1;
0x00009cac lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x00009cb0 lw s1, 0x24(sp) | s1 = *(var_24h_2);
0x00009cb4 lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x00009cb8 addiu sp, sp, 0x30 |
0x00009cbc jr ra | return v0;
0x00009cc0 bal 0x1603c | sym_sysfs_devname_to_devno ();
0x00009cc4 nop |
0x00009cc8 move a1, v1 | a1 = v1;
0x00009ccc or v1, v0, v1 | v1 = v0 | v1;
0x00009cd0 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v1 == 0) {
0x00009cd4 beqz v1, 0x9d7c | goto label_4;
| }
0x00009cd8 lw t9, -0x7f64(gp) | t9 = sym.ul_new_sysfs_path;
0x00009cdc move a3, zero | a3 = 0;
0x00009ce0 move a2, zero | a2 = 0;
0x00009ce4 move a0, v0 | a0 = v0;
0x00009ce8 bal 0x145c0 | sym_ul_new_sysfs_path ();
0x00009cec move s1, v0 | s1 = v0;
0x00009cf0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00009cf4 sw v0, 0xa0(s0) | *((s0 + 40)) = v0;
0x00009cf8 bnez v0, 0x9c84 |
| }
0x00009cfc lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00009d00 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x00009d04 andi v0, v0, 4 | v0 &= 4;
0x00009d08 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
| if (v0 == 0) {
0x00009d0c beqz v0, 0x9c88 | goto label_0;
| }
0x00009d10 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x00009d14 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00009d18 lw s1, (v0) | s1 = *(v0);
0x00009d1c jalr t9 | t9 ();
0x00009d20 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00009d24 move a3, v0 | a3 = v0;
0x00009d28 move a0, s1 | a0 = s1;
0x00009d2c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00009d30 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00009d34 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00009d38 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00009d3c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00009d40 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x00009d44 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x00009d48 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00009d4c addiu a1, zero, 1 | a1 = 1;
0x00009d50 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00009d54 jalr t9 | t9 ();
0x00009d58 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00009d5c move a0, s0 | a0 = s0;
0x00009d60 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00009d64 lw t9, -0x7f74(gp) | t9 = *(gp);
0x00009d68 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.sysfs:_init_failed */
0x00009d6c addiu a1, a1, -0x3464 | a1 += -0x3464;
0x00009d70 bal 0x9b48 | fcn_00009b48 ();
0x00009d74 lw s1, 0xa0(s0) | s1 = *((s0 + 40));
0x00009d78 b 0x9c84 | goto label_1;
| label_4:
0x00009d7c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00009d80 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x00009d84 andi v0, v0, 4 | v0 &= 4;
| if (v0 == 0) {
0x00009d88 beql v0, zero, 0x9ca4 | goto label_2;
| }
0x00009d8c lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x00009d90 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x00009d94 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00009d98 lw s2, (v0) | s2 = *(v0);
0x00009d9c jalr t9 | t9 ();
0x00009da0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00009da4 move a3, v0 | a3 = v0;
0x00009da8 addiu a1, zero, 1 | a1 = 1;
0x00009dac lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00009db0 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00009db4 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00009db8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00009dbc lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00009dc0 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x00009dc4 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x00009dc8 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00009dcc move a0, s2 | a0 = s2;
0x00009dd0 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00009dd4 jalr t9 | t9 ();
0x00009dd8 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00009ddc move a0, s0 | a0 = s0;
0x00009de0 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00009de4 lw t9, -0x7f74(gp) | t9 = *(gp);
0x00009de8 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.sysfs:_failed_devname_to_devno */
0x00009dec addiu a1, a1, -0x3484 | a1 += -0x3484;
0x00009df0 bal 0x9b48 | fcn_00009b48 ();
0x00009df4 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x00009df8 b 0x9c88 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x9ea0 */
| #include <stdint.h>
|
; (fcn) fcn.00009ea0 () | void fcn_00009ea0 () {
0x00009ea0 lui gp, 3 |
0x00009ea4 addiu gp, gp, -0x3e50 |
0x00009ea8 addu gp, gp, t9 | gp += t9;
0x00009eac lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00009eb0 lw v1, -0x7bc0(gp) | v1 = *((gp - 7920));
0x00009eb4 addiu sp, sp, -0x60 |
0x00009eb8 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x00009ebc sw v1, 0x24(sp) | *(var_24h_2) = v1;
0x00009ec0 lw v1, (v1) | v1 = *(v1);
0x00009ec4 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00009ec8 andi v0, v0, 8 | v0 &= 8;
0x00009ecc sw s6, 0x50(sp) | *(var_50h) = s6;
0x00009ed0 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x00009ed4 sw s0, 0x38(sp) | *(var_38h) = s0;
0x00009ed8 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x00009edc sw fp, 0x58(sp) | *(var_58h) = fp;
0x00009ee0 sw s7, 0x54(sp) | *(var_54h) = s7;
0x00009ee4 sw s4, 0x48(sp) | *(var_48h) = s4;
0x00009ee8 sw s3, 0x44(sp) | *(var_44h) = s3;
0x00009eec sw s2, 0x40(sp) | *(var_40h) = s2;
0x00009ef0 sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x00009ef4 move s0, a0 | s0 = a0;
0x00009ef8 move s6, a1 | s6 = a1;
0x00009efc move s5, a2 | s5 = a2;
0x00009f00 sw v1, 0x34(sp) | *(var_34h) = v1;
0x00009f04 lw t9, -0x7de0(gp) | t9 = sym.imp.opendir;
| if (v0 != 0) {
0x00009f08 bnez v0, 0xa13c | goto label_8;
| }
0x00009f0c move a0, s0 | a0 = s0;
0x00009f10 jalr t9 | t9 ();
0x00009f14 move s1, v0 | s1 = v0;
0x00009f18 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00009f1c beqz v0, 0xa1bc | goto label_9;
| }
| label_6:
0x00009f20 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x00009f24 lw a0, (s6) | a0 = *(s6);
0x00009f28 move s7, zero | s7 = 0;
0x00009f2c jalr t9 | t9 ();
0x00009f30 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00009f34 move s3, zero | s3 = 0;
0x00009f38 sw zero, (s6) | *(s6) = 0;
0x00009f3c lw s2, -0x7fd0(gp) | s2 = *((gp - 8180));
0x00009f40 lw s4, -0x7fd0(gp) | s4 = *((gp - 8180));
0x00009f44 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
| /* esilref: '(' */
0x00009f48 addiu s2, s2, -0x34f4 | s2 += -0x34f4;
| /* esilref: '..' */
0x00009f4c addiu s4, s4, -0x3438 | s4 += -0x3438;
0x00009f50 sw v0, 0x20(sp) | *(var_20h) = v0;
| label_0:
0x00009f54 lw t9, -0x7d8c(gp) | t9 = sym.imp.readdir64;
| do {
| label_1:
0x00009f58 move a0, s1 | a0 = s1;
0x00009f5c jalr t9 | t9 ();
0x00009f60 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00009f64 beqz v0, 0xa034 | goto label_10;
| }
| label_2:
0x00009f68 lbu v1, 0x12(v0) | v1 = *((v0 + 18));
0x00009f6c sltiu a0, v1, 0xb | a0 = (v1 < 0xb) ? 1 : 0;
0x00009f70 lw t9, -0x7d8c(gp) | t9 = sym.imp.readdir64;
0x00009f74 beqz a0, 0x9f58 |
| } while (a0 == 0);
0x00009f78 addiu a0, zero, 0x441 | a0 = 0x441;
0x00009f7c srlv v1, a0, v1 | v1 = a0 >> v1;
0x00009f80 ext v1, v1, 0, 1 | __asm ("ext v1, v1, 0, 1");
0x00009f84 lw t9, -0x7b68(gp) | t9 = sym.imp.strcmp;
| if (v1 == 0) {
0x00009f88 beqz v1, 0x9f54 | goto label_0;
| }
0x00009f8c addiu s0, v0, 0x13 | s0 = v0 + 0x13;
0x00009f90 move a1, s2 | a1 = s2;
0x00009f94 move a0, s0 | a0 = s0;
0x00009f98 jalr t9 | t9 ();
0x00009f9c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00009fa0 beqz v0, 0x9f54 | goto label_0;
| }
0x00009fa4 lw t9, -0x7b68(gp) | t9 = sym.imp.strcmp;
0x00009fa8 move a1, s4 | a1 = s4;
0x00009fac move a0, s0 | a0 = s0;
0x00009fb0 jalr t9 | t9 ();
0x00009fb4 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00009fb8 beqz v0, 0x9f54 | goto label_0;
| }
0x00009fbc lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
| if (s5 == 0) {
0x00009fc0 beqz s5, 0xa090 | goto label_11;
| }
0x00009fc4 lw v0, 0x20(sp) | v0 = *(var_20h);
0x00009fc8 lw t9, -0x7d6c(gp) | t9 = sym.imp.sscanf;
0x00009fcc addiu a2, sp, 0x2c | a2 = sp + 0x2c;
0x00009fd0 addiu a1, v0, -0x3434 | a1 = v0 + -0x3434;
0x00009fd4 move a0, s0 | a0 = s0;
0x00009fd8 jalr t9 | t9 ();
0x00009fdc addiu v1, zero, 1 | v1 = 1;
0x00009fe0 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != v1) {
0x00009fe4 bne v0, v1, 0x9f54 | goto label_0;
| }
0x00009fe8 lw v0, 0x2c(sp) | v0 = *(var_2ch_2);
0x00009fec sltiu v1, v0, 8 | v1 = (v0 < 8) ? 1 : 0;
| label_3:
0x00009ff0 lw t9, -0x7d8c(gp) | t9 = sym.imp.readdir64;
| if (v1 != 0) {
0x00009ff4 bnez v1, 0x9f58 | goto label_1;
| }
0x00009ff8 addiu s0, s3, 1 | s0 = s3 + 1;
0x00009ffc sltu v1, s7, s0 | v1 = (s7 < s0) ? 1 : 0;
0x0000a000 lw a0, (s6) | a0 = *(s6);
| if (v1 != 0) {
0x0000a004 bnez v1, 0xa114 | goto label_12;
| }
| if (a0 == 0) {
0x0000a008 beqz a0, 0x9f58 | goto label_1;
| }
0x0000a00c nop |
| label_5:
0x0000a010 sll s3, s3, 2 | s3 <<= 2;
0x0000a014 addu a0, a0, s3 | a0 += s3;
0x0000a018 lw t9, -0x7d8c(gp) | t9 = sym.imp.readdir64;
0x0000a01c sw v0, (a0) | *(a0) = v0;
0x0000a020 move a0, s1 | a0 = s1;
0x0000a024 jalr t9 | t9 ();
0x0000a028 move s3, s0 | s3 = s0;
0x0000a02c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x0000a030 bnez v0, 0x9f68 | goto label_2;
| }
| label_10:
0x0000a034 lw a0, (s6) | a0 = *(s6);
| if (s3 == 0) {
0x0000a038 bnel s3, zero, 0xa0f0 | goto label_13;
| }
| label_4:
0x0000a03c lw t9, -0x7dd8(gp) | t9 = sym.imp.closedir;
0x0000a040 move a0, s1 | a0 = s1;
0x0000a044 jalr t9 | t9 ();
0x0000a048 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000a04c move v0, s3 | v0 = s3;
| label_7:
0x0000a050 lw v1, 0x24(sp) | v1 = *(var_24h_2);
0x0000a054 lw a0, 0x34(sp) | a0 = *(var_34h);
0x0000a058 lw v1, (v1) | v1 = *(v1);
0x0000a05c lw ra, 0x5c(sp) | ra = *(var_5ch);
| if (a0 != v1) {
0x0000a060 bne a0, v1, 0xa1f0 | goto label_14;
| }
0x0000a064 lw fp, 0x58(sp) | fp = *(var_58h);
0x0000a068 lw s7, 0x54(sp) | s7 = *(var_54h);
0x0000a06c lw s6, 0x50(sp) | s6 = *(var_50h);
0x0000a070 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x0000a074 lw s4, 0x48(sp) | s4 = *(var_48h);
0x0000a078 lw s3, 0x44(sp) | s3 = *(var_44h);
0x0000a07c lw s2, 0x40(sp) | s2 = *(var_40h);
0x0000a080 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0000a084 lw s0, 0x38(sp) | s0 = *(var_38h);
0x0000a088 addiu sp, sp, 0x60 |
0x0000a08c jr ra | return v0;
| label_11:
0x0000a090 sw zero, 0x30(sp) | *(var_30h) = 0;
0x0000a094 jalr t9 | t9 ();
0x0000a098 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000a09c sw zero, (v0) | *(v0) = 0;
0x0000a0a0 addiu a2, zero, 0xa | a2 = 0xa;
0x0000a0a4 lw t9, -0x7dc8(gp) | t9 = sym.imp.strtol;
0x0000a0a8 addiu a1, sp, 0x30 | a1 = sp + 0x30;
0x0000a0ac move a0, s0 | a0 = s0;
0x0000a0b0 move fp, v0 | fp = v0;
0x0000a0b4 jalr t9 | t9 ();
0x0000a0b8 lw v1, 0x30(sp) | v1 = *(var_30h);
0x0000a0bc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000a0c0 sw v0, 0x2c(sp) | *(var_2ch_2) = v0;
| if (s0 == v1) {
0x0000a0c4 beq s0, v1, 0x9f54 | goto label_0;
| }
| if (v1 == 0) {
0x0000a0c8 beql v1, zero, 0xa0e0 | goto label_15;
| }
0x0000a0cc lw v1, (fp) | v1 = *(fp);
0x0000a0d0 lb v1, (v1) | v1 = *(v1);
0x0000a0d4 lw t9, -0x7d8c(gp) | t9 = sym.imp.readdir64;
| if (v1 != 0) {
0x0000a0d8 bnez v1, 0x9f58 | goto label_1;
| }
0x0000a0dc lw v1, (fp) | v1 = *(fp);
| label_15:
0x0000a0e0 sltiu v1, v0, 8 | v1 = (v0 < 8) ? 1 : 0;
| if (v1 == 0) {
0x0000a0e4 beqz v1, 0x9ff0 | goto label_3;
| }
0x0000a0e8 lw t9, -0x7d8c(gp) | t9 = sym.imp.readdir64;
0x0000a0ec b 0x9f58 | goto label_1;
| label_13:
0x0000a0f0 lw a3, -0x7f74(gp) | a3 = *(gp);
| if (a0 == 0) {
0x0000a0f4 beqz a0, 0xa03c | goto label_4;
| }
0x0000a0f8 lw t9, -0x7d90(gp) | t9 = sym.imp.qsort;
0x0000a0fc addiu a3, a3, -0x64d0 | a3 += -0x64d0;
0x0000a100 addiu a2, zero, 4 | a2 = 4;
0x0000a104 move a1, s3 | a1 = s3;
0x0000a108 jalr t9 | t9 ();
0x0000a10c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000a110 b 0xa03c | goto label_4;
| label_12:
0x0000a114 lw t9, -0x7c60(gp) | t9 = sym.imp.realloc;
0x0000a118 addiu s7, s7, 1 | s7++;
0x0000a11c sll a1, s7, 2 | a1 = s7 << 2;
0x0000a120 jalr t9 | t9 ();
0x0000a124 move a0, v0 | a0 = v0;
0x0000a128 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0000a12c beqz v0, 0xa1c4 | goto label_16;
| }
0x0000a130 sw v0, (s6) | *(s6) = v0;
0x0000a134 lw v0, 0x2c(sp) | v0 = *(var_2ch_2);
0x0000a138 b 0xa010 | goto label_5;
| label_8:
0x0000a13c lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000a140 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000a144 lw s1, (v0) | s1 = *(v0);
0x0000a148 jalr t9 | t9 ();
0x0000a14c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000a150 move a3, v0 | a3 = v0;
0x0000a154 move a0, s1 | a0 = s1;
0x0000a158 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a15c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* str.ITER */
0x0000a160 addiu v0, v0, -0x3440 | v0 += -0x3440;
0x0000a164 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000a168 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a16c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000a170 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000a174 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000a178 addiu a1, zero, 1 | a1 = 1;
0x0000a17c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0000a180 jalr t9 | t9 ();
0x0000a184 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000a188 move a1, s0 | a1 = s0;
0x0000a18c lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x0000a190 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000a194 addiu t9, t9, -0x6204 | t9 += -0x6204;
| /* str.scan_dir:__s */
0x0000a198 addiu a0, a0, -0x3450 | a0 += -0x3450;
0x0000a19c bal 0x9dfc | fcn_00009dfc ();
0x0000a1a0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000a1a4 lw t9, -0x7de0(gp) | t9 = sym.imp.opendir;
0x0000a1a8 move a0, s0 | a0 = s0;
0x0000a1ac jalr t9 | t9 ();
0x0000a1b0 move s1, v0 | s1 = v0;
0x0000a1b4 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x0000a1b8 bnez v0, 0x9f20 | goto label_6;
| }
| label_9:
0x0000a1bc move v0, zero | v0 = 0;
0x0000a1c0 b 0xa050 | goto label_7;
| label_16:
0x0000a1c4 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x0000a1c8 lw a0, (s6) | a0 = *(s6);
0x0000a1cc jalr t9 | t9 ();
0x0000a1d0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000a1d4 sw zero, (s6) | *(s6) = 0;
0x0000a1d8 lw t9, -0x7dd8(gp) | t9 = sym.imp.closedir;
0x0000a1dc move a0, s1 | a0 = s1;
0x0000a1e0 jalr t9 | t9 ();
0x0000a1e4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000a1e8 addiu v0, zero, -1 | v0 = -1;
0x0000a1ec b 0xa050 | goto label_7;
| label_14:
0x0000a1f0 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000a1f4 jalr t9 | t9 ();
0x0000a1f8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xb4f0 */
| #include <stdint.h>
|
; (fcn) fcn.0000b4f0 () | void fcn_0000b4f0 () {
0x0000b4f0 lui gp, 3 |
0x0000b4f4 addiu gp, gp, -0x54a0 |
0x0000b4f8 addu gp, gp, t9 | gp += t9;
0x0000b4fc addiu sp, sp, -0x38 |
0x0000b500 lw t9, -0x7f5c(gp) | t9 = sym.loopcxt_set_device;
0x0000b504 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000b508 sw s1, 0x28(sp) | *(var_28h) = s1;
0x0000b50c sw s0, 0x24(sp) | *(var_24h) = s0;
0x0000b510 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0000b514 sw s3, 0x30(sp) | *(var_30h) = s3;
0x0000b518 sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x0000b51c move s1, a0 | s1 = a0;
0x0000b520 bal 0xa1fc | sym_loopcxt_set_device ();
0x0000b524 move s0, v0 | s0 = v0;
0x0000b528 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000b52c bnez v0, 0xb540 |
0x0000b530 lw v0, 0x1b0(s1) | v0 = *(s1);
0x0000b534 andi v0, v0, 3 | v0 &= 3;
0x0000b538 lw t9, -0x7f40(gp) | t9 = sym.is_loopdev;
| if (v0 != 0) {
0x0000b53c bnez v0, 0xb560 | goto label_5;
| }
| }
| label_0:
0x0000b540 lw ra, 0x34(sp) | ra = *(var_34h);
| do {
| label_2:
0x0000b544 move v0, s0 | v0 = s0;
0x0000b548 lw s3, 0x30(sp) | s3 = *(var_30h);
0x0000b54c lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x0000b550 lw s1, 0x28(sp) | s1 = *(var_28h);
0x0000b554 lw s0, 0x24(sp) | s0 = *(var_24h);
0x0000b558 addiu sp, sp, 0x38 |
0x0000b55c jr ra | return v0;
| label_5:
0x0000b560 move a0, s1 | a0 = s1;
0x0000b564 bal 0xaf34 | sym_is_loopdev ();
0x0000b568 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000b56c beqz v0, 0xb680 | goto label_6;
| }
0x0000b570 lw s2, -0x7fdc(gp) | s2 = *((gp - 8183));
0x0000b574 lw v0, -0x1af0(s2) | v0 = *((s2 - 1724));
0x0000b578 andi v0, v0, 8 | v0 &= 8;
0x0000b57c lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x0000b580 bnez v0, 0xb614 | goto label_7;
| }
| label_3:
0x0000b584 lw t9, -0x7f3c(gp) | t9 = sym.loopcxt_get_offset;
0x0000b588 move a0, s1 | a0 = s1;
0x0000b58c move a1, zero | a1 = 0;
0x0000b590 bal 0xb350 | sym_loopcxt_get_offset ();
0x0000b594 lw v1, 0x1b0(s1) | v1 = *(s1);
0x0000b598 andi a0, v1, 2 | a0 = v1 & 2;
0x0000b59c lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 != 0) {
0x0000b5a0 bnez a0, 0xb5fc | goto label_8;
| }
0x0000b5a4 andi v1, v1, 1 | v1 &= 1;
| if (v1 == 0) {
0x0000b5a8 beql v1, zero, 0xb5bc | goto label_1;
| }
0x0000b5ac lw v0, -0x1af0(s2) | v0 = *((s2 - 1724));
0x0000b5b0 lw ra, 0x34(sp) | ra = *(var_34h);
0x0000b5b4 bnez v0, 0xb544 |
| } while (v0 != 0);
0x0000b5b8 lw v0, -0x1af0(s2) | v0 = *((s2 - 1724));
| label_1:
0x0000b5bc andi v0, v0, 8 | v0 &= 8;
0x0000b5c0 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x0000b5c4 bnez v0, 0xb6c8 | goto label_9;
| }
| label_4:
0x0000b5c8 lw t9, -0x7f5c(gp) | t9 = sym.loopcxt_set_device;
0x0000b5cc move a0, s1 | a0 = s1;
0x0000b5d0 move a1, zero | a1 = 0;
0x0000b5d4 bal 0xa1fc | sym_loopcxt_set_device ();
0x0000b5d8 lw ra, 0x34(sp) | ra = *(var_34h);
0x0000b5dc addiu s0, zero, 1 | s0 = 1;
0x0000b5e0 move v0, s0 | v0 = s0;
0x0000b5e4 lw s3, 0x30(sp) | s3 = *(var_30h);
0x0000b5e8 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x0000b5ec lw s1, 0x28(sp) | s1 = *(var_28h);
0x0000b5f0 lw s0, 0x24(sp) | s0 = *(var_24h);
0x0000b5f4 addiu sp, sp, 0x38 |
0x0000b5f8 jr ra | return v0;
| label_8:
0x0000b5fc andi v1, v1, 1 | v1 &= 1;
| if (v0 == 0) {
0x0000b600 beqz v0, 0xb540 | goto label_0;
| }
0x0000b604 lw v0, -0x1af0(s2) | v0 = *((s2 - 1724));
| if (v1 == 0) {
0x0000b608 beqz v1, 0xb5bc | goto label_1;
| }
0x0000b60c lw ra, 0x34(sp) | ra = *(var_34h);
0x0000b610 b 0xb544 | goto label_2;
| label_7:
0x0000b614 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000b618 lw s3, (v0) | s3 = *(v0);
0x0000b61c jalr t9 | t9 ();
0x0000b620 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b624 move a3, v0 | a3 = v0;
0x0000b628 addiu a1, zero, 1 | a1 = 1;
0x0000b62c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000b630 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* str.ITER */
0x0000b634 addiu v0, v0, -0x3440 | v0 += -0x3440;
0x0000b638 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000b63c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000b640 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000b644 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000b648 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000b64c move a0, s3 | a0 = s3;
0x0000b650 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000b654 jalr t9 | t9 ();
0x0000b658 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b65c move a2, s1 | a2 = s1;
0x0000b660 addiu a0, s1, 0x190 | a0 = s1 + 0x190;
0x0000b664 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000b668 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000b66c addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str._s_exist */
0x0000b670 addiu a1, a1, -0x3248 | a1 += -0x3248;
0x0000b674 bal 0x9b48 | fcn_00009b48 ();
0x0000b678 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b67c b 0xb584 | goto label_3;
| label_6:
0x0000b680 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000b684 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000b688 andi v0, v0, 8 | v0 &= 8;
0x0000b68c lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000b690 bnez v0, 0xb734 |
| while (1) {
0x0000b694 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x0000b698 jalr t9 | t9 ();
0x0000b69c nop |
0x0000b6a0 lw s0, (v0) | s0 = *(v0);
0x0000b6a4 lw ra, 0x34(sp) | ra = *(var_34h);
0x0000b6a8 negu s0, s0 | __asm ("negu s0, s0");
0x0000b6ac move v0, s0 | v0 = s0;
0x0000b6b0 lw s3, 0x30(sp) | s3 = *(var_30h);
0x0000b6b4 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x0000b6b8 lw s1, 0x28(sp) | s1 = *(var_28h);
0x0000b6bc lw s0, 0x24(sp) | s0 = *(var_24h);
0x0000b6c0 addiu sp, sp, 0x38 |
0x0000b6c4 jr ra | return v0;
| label_9:
0x0000b6c8 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000b6cc lw s0, (v0) | s0 = *(v0);
0x0000b6d0 jalr t9 | t9 ();
0x0000b6d4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b6d8 move a3, v0 | a3 = v0;
0x0000b6dc addiu a1, zero, 1 | a1 = 1;
0x0000b6e0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000b6e4 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* str.ITER */
0x0000b6e8 addiu v0, v0, -0x3440 | v0 += -0x3440;
0x0000b6ec sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000b6f0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000b6f4 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000b6f8 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000b6fc addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000b700 move a0, s0 | a0 = s0;
0x0000b704 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000b708 jalr t9 | t9 ();
0x0000b70c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b710 move a2, s1 | a2 = s1;
0x0000b714 addiu a0, s1, 0x190 | a0 = s1 + 0x190;
0x0000b718 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000b71c lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000b720 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.failed_to_use__s_device */
0x0000b724 addiu a1, a1, -0x323c | a1 += -0x323c;
0x0000b728 bal 0x9b48 | fcn_00009b48 ();
0x0000b72c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b730 b 0xb5c8 | goto label_4;
0x0000b734 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000b738 lw s0, (v0) | s0 = *(v0);
0x0000b73c jalr t9 | t9 ();
0x0000b740 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b744 move a3, v0 | a3 = v0;
0x0000b748 addiu a1, zero, 1 | a1 = 1;
0x0000b74c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000b750 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* str.ITER */
0x0000b754 addiu v0, v0, -0x3440 | v0 += -0x3440;
0x0000b758 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000b75c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000b760 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000b764 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000b768 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000b76c move a0, s0 | a0 = s0;
0x0000b770 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000b774 jalr t9 | t9 ();
0x0000b778 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b77c move a2, s1 | a2 = s1;
0x0000b780 addiu a0, s1, 0x190 | a0 = s1 + 0x190;
0x0000b784 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000b788 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000b78c addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str._s_does_not_exist */
0x0000b790 addiu a1, a1, -0x325c | a1 += -0x325c;
0x0000b794 bal 0x9b48 | fcn_00009b48 ();
0x0000b798 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b79c b 0xb694 |
| }
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xb7a0 */
| #include <stdint.h>
|
; (fcn) fcn.0000b7a0 () | void fcn_0000b7a0 () {
0x0000b7a0 lui gp, 3 |
0x0000b7a4 addiu gp, gp, -0x5750 |
0x0000b7a8 addu gp, gp, t9 | gp += t9;
0x0000b7ac addiu sp, sp, -0x210 |
0x0000b7b0 lw v0, -0x7bc0(gp) | v0 = *((gp - 7920));
0x0000b7b4 sw s2, 0x1f0(sp) | *(var_1f0h) = s2;
0x0000b7b8 lw s2, -0x7fdc(gp) | s2 = *((gp - 8183));
0x0000b7bc move v1, v0 | v1 = v0;
0x0000b7c0 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0000b7c4 lw v0, -0x1af0(s2) | v0 = *((s2 - 1724));
0x0000b7c8 lw v1, (v1) | v1 = *(v1);
0x0000b7cc sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000b7d0 andi v0, v0, 8 | v0 &= 8;
0x0000b7d4 sw s5, 0x1fc(sp) | *(var_1fch) = s5;
0x0000b7d8 sw s1, 0x1ec(sp) | *(var_1ech) = s1;
0x0000b7dc sw ra, 0x20c(sp) | *(var_20ch) = ra;
0x0000b7e0 sw fp, 0x208(sp) | *(var_208h) = fp;
0x0000b7e4 sw s7, 0x204(sp) | *(var_204h) = s7;
0x0000b7e8 sw s6, 0x200(sp) | *(var_200h) = s6;
0x0000b7ec sw s4, 0x1f8(sp) | *(var_1f8h) = s4;
0x0000b7f0 sw s3, 0x1f4(sp) | *(var_1f4h) = s3;
0x0000b7f4 sw s0, 0x1e8(sp) | *(var_1e8h) = s0;
0x0000b7f8 move s1, a0 | s1 = a0;
0x0000b7fc sw v1, 0x1e4(sp) | *(var_1e4h) = v1;
0x0000b800 addiu s5, a0, 0x190 | s5 = a0 + 0x190;
| if (v0 != 0) {
0x0000b804 bnez v0, 0xb9ec | goto label_5;
| }
| label_4:
0x0000b808 lw a0, 0x194(s1) | a0 = *(s1);
| if (a0 == 0) {
0x0000b80c beql a0, zero, 0xb9c8 | goto label_6;
| }
0x0000b810 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
| label_2:
0x0000b814 lw t9, -0x7ba0(gp) | t9 = sym.imp.dirfd;
0x0000b818 jalr t9 | t9 ();
0x0000b81c nop |
0x0000b820 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b824 sw v0, 0x28(sp) | *(var_28h) = v0;
0x0000b828 lw v0, -0x7f74(gp) | v0 = *(gp);
0x0000b82c lw s4, -0x7fd0(gp) | s4 = *((gp - 8180));
0x0000b830 lw s3, -0x7fd0(gp) | s3 = *((gp - 8180));
0x0000b834 addiu v0, v0, -0x64b8 | v0 += -0x64b8;
0x0000b838 lw s7, -0x7fd0(gp) | s7 = *((gp - 8180));
0x0000b83c lw s6, -0x7fd0(gp) | s6 = *((gp - 8180));
| /* str.ITER */
0x0000b840 addiu s4, s4, -0x3440 | s4 += -0x3440;
| /* str.loopdev */
0x0000b844 addiu s3, s3, -0x348c | s3 += -0x348c;
0x0000b848 sw v0, 0x24(sp) | *(var_24h) = v0;
| do {
| label_0:
0x0000b84c lw t9, -0x7d8c(gp) | t9 = sym.imp.readdir64;
0x0000b850 lw a0, 0x194(s1) | a0 = *(s1);
0x0000b854 jalr t9 | t9 ();
0x0000b858 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000b85c beqz v0, 0xb9e4 | goto label_7;
| }
0x0000b860 lw v1, -0x1af0(s2) | v1 = *((s2 - 1724));
0x0000b864 andi v1, v1, 8 | v1 &= 8;
0x0000b868 addiu s0, v0, 0x13 | s0 = v0 + 0x13;
| if (v1 != 0) {
0x0000b86c bnez v1, 0xb978 | goto label_8;
| }
| label_1:
0x0000b870 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000b874 lw t9, -0x7b68(gp) | t9 = sym.imp.strcmp;
| /* esilref: '(' */
0x0000b878 addiu a1, a1, -0x34f4 | a1 += -0x34f4;
0x0000b87c move a0, s0 | a0 = s0;
0x0000b880 jalr t9 | t9 ();
0x0000b884 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b888 beqz v0, 0xb84c |
| } while (v0 == 0);
0x0000b88c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000b890 lw t9, -0x7b68(gp) | t9 = sym.imp.strcmp;
| /* esilref: '..' */
0x0000b894 addiu a1, a1, -0x3438 | a1 += -0x3438;
0x0000b898 move a0, s0 | a0 = s0;
0x0000b89c jalr t9 | t9 ();
0x0000b8a0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000b8a4 beqz v0, 0xb84c | goto label_0;
| }
0x0000b8a8 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000b8ac lw t9, -0x7dac(gp) | t9 = sym.imp.strncmp;
0x0000b8b0 addiu a2, zero, 4 | a2 = 4;
| /* str.loop */
0x0000b8b4 addiu a1, a1, -0x3204 | a1 += -0x3204;
0x0000b8b8 move a0, s0 | a0 = s0;
0x0000b8bc jalr t9 | t9 ();
0x0000b8c0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000b8c4 bnez v0, 0xb84c | goto label_0;
| }
0x0000b8c8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000b8cc lw t9, -0x7b5c(gp) | t9 = sym.imp.__snprintf_chk;
0x0000b8d0 addiu fp, sp, 0xd0 | fp = sp + 0xd0;
| /* str._s_loop_backing_file */
0x0000b8d4 addiu v0, v0, -0x31fc | v0 += -0x31fc;
0x0000b8d8 addiu a3, zero, 0x112 | a3 = 0x112;
0x0000b8dc addiu a2, zero, 1 | a2 = 1;
0x0000b8e0 addiu a1, zero, 0x112 | a1 = 0x112;
0x0000b8e4 move a0, fp | a0 = fp;
0x0000b8e8 sw s0, 0x14(sp) | *(var_14h) = s0;
0x0000b8ec sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000b8f0 jalr t9 | t9 ();
0x0000b8f4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b8f8 lw a1, 0x28(sp) | a1 = *(var_28h);
0x0000b8fc sw zero, 0x10(sp) | *(var_10h) = 0;
0x0000b900 lw t9, -0x7c14(gp) | t9 = sym.imp.__fxstatat64;
0x0000b904 addiu a3, sp, 0x30 | a3 = sp + 0x30;
0x0000b908 move a2, fp | a2 = fp;
0x0000b90c addiu a0, zero, 3 | a0 = 3;
0x0000b910 jalr t9 | t9 ();
0x0000b914 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000b918 bnez v0, 0xb84c | goto label_0;
| }
0x0000b91c lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000b920 move a1, s0 | a1 = s0;
0x0000b924 addiu t9, t9, -0x4b10 | t9 += -0x4b10;
0x0000b928 move a0, s1 | a0 = s1;
0x0000b92c bal 0xb4f0 | fcn_0000b4f0 ();
0x0000b930 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000b934 bnez v0, 0xb84c | goto label_0;
| }
| label_3:
0x0000b938 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x0000b93c lw a0, 0x1e4(sp) | a0 = *(var_1e4h);
0x0000b940 lw v1, (v1) | v1 = *(v1);
0x0000b944 lw ra, 0x20c(sp) | ra = *(var_20ch);
| if (a0 != v1) {
0x0000b948 bne a0, v1, 0xba58 | goto label_9;
| }
0x0000b94c lw fp, 0x208(sp) | fp = *(var_208h);
0x0000b950 lw s7, 0x204(sp) | s7 = *(var_204h);
0x0000b954 lw s6, 0x200(sp) | s6 = *(var_200h);
0x0000b958 lw s5, 0x1fc(sp) | s5 = *(var_1fch);
0x0000b95c lw s4, 0x1f8(sp) | s4 = *(var_1f8h);
0x0000b960 lw s3, 0x1f4(sp) | s3 = *(var_1f4h);
0x0000b964 lw s2, 0x1f0(sp) | s2 = *(var_1f0h);
0x0000b968 lw s1, 0x1ec(sp) | s1 = *(var_1ech);
0x0000b96c lw s0, 0x1e8(sp) | s0 = *(var_1e8h);
0x0000b970 addiu sp, sp, 0x210 |
0x0000b974 jr ra | return v0;
| label_8:
0x0000b978 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000b97c lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000b980 lw fp, (v0) | fp = *(v0);
0x0000b984 jalr t9 | t9 ();
0x0000b988 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b98c move a3, v0 | a3 = v0;
| /* str._d:__s:__8s:_ */
0x0000b990 addiu a2, s7, -0x34a0 | a2 = s7 + -0x34a0;
0x0000b994 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
0x0000b998 addiu a1, zero, 1 | a1 = 1;
0x0000b99c move a0, fp | a0 = fp;
0x0000b9a0 sw s4, 0x14(sp) | *(var_14h) = s4;
0x0000b9a4 sw s3, 0x10(sp) | *(var_10h) = s3;
0x0000b9a8 jalr t9 | t9 ();
0x0000b9ac lw t9, 0x24(sp) | t9 = *(var_24h);
0x0000b9b0 move a2, s0 | a2 = s0;
| /* str.check__s */
0x0000b9b4 addiu a1, s6, -0x3210 | a1 = s6 + -0x3210;
0x0000b9b8 move a0, s5 | a0 = s5;
0x0000b9bc jalr t9 | t9 ();
0x0000b9c0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b9c4 b 0xb870 | goto label_1;
| label_6:
0x0000b9c8 lw t9, -0x7de0(gp) | t9 = sym.imp.opendir;
| /* str._sys_block */
0x0000b9cc addiu a0, a0, -0x338c | a0 += -0x338c;
0x0000b9d0 jalr t9 | t9 ();
0x0000b9d4 move a0, v0 | a0 = v0;
0x0000b9d8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b9dc sw v0, 0x194(s1) | *(s1) = v0;
| if (v0 != 0) {
0x0000b9e0 bnez v0, 0xb814 | goto label_2;
| }
| label_7:
0x0000b9e4 addiu v0, zero, 1 | v0 = 1;
0x0000b9e8 b 0xb938 | goto label_3;
| label_5:
0x0000b9ec lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000b9f0 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000b9f4 lw s0, (v0) | s0 = *(v0);
0x0000b9f8 jalr t9 | t9 ();
0x0000b9fc lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ba00 move a3, v0 | a3 = v0;
0x0000ba04 addiu a1, zero, 1 | a1 = 1;
0x0000ba08 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000ba0c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* str.ITER */
0x0000ba10 addiu v0, v0, -0x3440 | v0 += -0x3440;
0x0000ba14 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000ba18 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000ba1c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000ba20 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000ba24 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000ba28 move a0, s0 | a0 = s0;
0x0000ba2c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000ba30 jalr t9 | t9 ();
0x0000ba34 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ba38 move a0, s5 | a0 = s5;
0x0000ba3c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000ba40 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000ba44 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.scanning__sys_block */
0x0000ba48 addiu a1, a1, -0x3224 | a1 += -0x3224;
0x0000ba4c bal 0x9b48 | fcn_00009b48 ();
0x0000ba50 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ba54 b 0xb808 | goto label_4;
| label_9:
0x0000ba58 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000ba5c jalr t9 | t9 ();
0x0000ba60 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xba64 */
| #include <stdint.h>
|
; (fcn) fcn.0000ba64 () | void fcn_0000ba64 () {
0x0000ba64 lui gp, 3 |
0x0000ba68 addiu gp, gp, -0x5a14 |
0x0000ba6c addu gp, gp, t9 | gp += t9;
0x0000ba70 addiu sp, sp, -0x20e8 |
0x0000ba74 sw s4, 0x20d0(sp) | *(arg_20d0h) = s4;
0x0000ba78 lw s4, -0x7fdc(gp) | s4 = *((gp - 8183));
0x0000ba7c sw s6, 0x20d8(sp) | *(arg_20d8h) = s6;
0x0000ba80 lw s6, -0x7bc0(gp) | s6 = *((gp - 7920));
0x0000ba84 lw v0, -0x1af0(s4) | v0 = *((s4 - 1724));
0x0000ba88 sw gp, 0x18(sp) | *(arg_18h) = gp;
0x0000ba8c lw v1, (s6) | v1 = *(s6);
0x0000ba90 andi v0, v0, 8 | v0 &= 8;
0x0000ba94 sw s7, 0x20dc(sp) | *(arg_20dch) = s7;
0x0000ba98 sw s1, 0x20c4(sp) | *(arg_20c4h) = s1;
0x0000ba9c sw ra, 0x20e4(sp) | *(arg_20e4h) = ra;
0x0000baa0 sw fp, 0x20e0(sp) | *(arg_20e0h) = fp;
0x0000baa4 sw s5, 0x20d4(sp) | *(arg_20d4h) = s5;
0x0000baa8 sw s3, 0x20cc(sp) | *(arg_20cch) = s3;
0x0000baac sw s2, 0x20c8(sp) | *(arg_20c8h) = s2;
0x0000bab0 sw s0, 0x20c0(sp) | *(arg_20c0h) = s0;
0x0000bab4 move s1, a0 | s1 = a0;
0x0000bab8 sw v1, 0x20bc(sp) | *(arg_20bch) = v1;
0x0000babc addiu s7, a0, 0x190 | s7 = a0 + 0x190;
| if (v0 != 0) {
0x0000bac0 bnez v0, 0xbc30 | goto label_3;
| }
0x0000bac4 lw a2, 0x190(s1) | a2 = *((s1 + 100));
0x0000bac8 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| if (a2 == 0) {
0x0000bacc beqz a2, 0xbca4 | goto label_4;
| }
| label_1:
0x0000bad0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000bad4 lw t9, -0x7bd0(gp) | t9 = sym.imp.fgets;
0x0000bad8 sw v0, 0x2c(sp) | *(arg_2ch) = v0;
0x0000badc lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000bae0 addiu fp, sp, 0xbc | fp = sp + 0xbc;
| /* str.loopdev */
0x0000bae4 addiu v0, v0, -0x348c | v0 += -0x348c;
0x0000bae8 lw s3, -0x7f74(gp) | s3 = *(gp);
0x0000baec lw s5, -0x7fd0(gp) | s5 = *((gp - 8180));
0x0000baf0 sw v0, 0x28(sp) | *(arg_28h) = v0;
0x0000baf4 addiu a1, zero, 0x2000 | a1 = 0x2000;
0x0000baf8 lw s2, -0x7fd0(gp) | s2 = *((gp - 8180));
0x0000bafc move a0, fp | a0 = fp;
0x0000bb00 jalr t9 | t9 ();
0x0000bb04 addiu s3, s3, -0x4b10 | s3 += -0x4b10;
| /* str.ITER */
0x0000bb08 addiu s5, s5, -0x3440 | s5 += -0x3440;
0x0000bb0c lw gp, 0x18(sp) | gp = *(arg_18h);
| if (v0 == 0) {
0x0000bb10 beqz v0, 0xbb8c | goto label_5;
| }
| do {
0x0000bb14 lw t9, -0x7d6c(gp) | t9 = sym.imp.sscanf;
0x0000bb18 addiu s0, sp, 0x38 | s0 = sp + 0x38;
0x0000bb1c move a0, fp | a0 = fp;
0x0000bb20 move a3, s0 | a3 = s0;
0x0000bb24 addiu a2, sp, 0x34 | a2 = sp + 0x34;
| /* str.__u__s__s__128__n__ */
0x0000bb28 addiu a1, s2, -0x31b8 | a1 = s2 + -0x31b8;
0x0000bb2c jalr t9 | t9 ();
0x0000bb30 addiu a0, zero, 2 | a0 = 2;
0x0000bb34 lw gp, 0x18(sp) | gp = *(arg_18h);
| if (v0 == a0) {
0x0000bb38 bne v0, a0, 0xbb70 |
0x0000bb3c lw a0, 0x34(sp) | a0 = *(arg_34h);
0x0000bb40 addiu v0, zero, 7 | v0 = 7;
0x0000bb44 lw v0, -0x1af0(s4) | v0 = *((s4 - 1724));
| if (a0 != v0) {
0x0000bb48 bne a0, v0, 0xbb70 | goto label_6;
| }
0x0000bb4c andi v0, v0, 8 | v0 &= 8;
0x0000bb50 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x0000bb54 bnez v0, 0xbbcc | goto label_7;
| }
0x0000bb58 move a1, s0 | a1 = s0;
| label_0:
0x0000bb5c move t9, s3 | t9 = s3;
0x0000bb60 move a0, s1 | a0 = s1;
0x0000bb64 bal 0xb4f0 | fcn_0000b4f0 ();
0x0000bb68 lw gp, 0x18(sp) | gp = *(arg_18h);
| if (v0 == 0) {
0x0000bb6c beqz v0, 0xbb90 | goto label_2;
| }
| }
| label_6:
0x0000bb70 lw t9, -0x7bd0(gp) | t9 = sym.imp.fgets;
0x0000bb74 lw a2, 0x190(s1) | a2 = *((s1 + 100));
0x0000bb78 addiu a1, zero, 0x2000 | a1 = 0x2000;
0x0000bb7c move a0, fp | a0 = fp;
0x0000bb80 jalr t9 | t9 ();
0x0000bb84 lw gp, 0x18(sp) | gp = *(arg_18h);
0x0000bb88 bnez v0, 0xbb14 |
| } while (v0 != 0);
| label_5:
0x0000bb8c addiu v0, zero, 1 | v0 = 1;
| label_2:
0x0000bb90 lw a0, 0x20bc(sp) | a0 = *(arg_20bch);
0x0000bb94 lw v1, (s6) | v1 = *(s6);
0x0000bb98 lw ra, 0x20e4(sp) | ra = *(arg_20e4h);
| if (a0 != v1) {
0x0000bb9c bne a0, v1, 0xbcd0 | goto label_8;
| }
0x0000bba0 lw fp, 0x20e0(sp) | fp = *(arg_20e0h);
0x0000bba4 lw s7, 0x20dc(sp) | s7 = *(arg_20dch);
0x0000bba8 lw s6, 0x20d8(sp) | s6 = *(arg_20d8h);
0x0000bbac lw s5, 0x20d4(sp) | s5 = *(arg_20d4h);
0x0000bbb0 lw s4, 0x20d0(sp) | s4 = *(arg_20d0h);
0x0000bbb4 lw s3, 0x20cc(sp) | s3 = *(arg_20cch);
0x0000bbb8 lw s2, 0x20c8(sp) | s2 = *(arg_20c8h);
0x0000bbbc lw s1, 0x20c4(sp) | s1 = *(arg_20c4h);
0x0000bbc0 lw s0, 0x20c0(sp) | s0 = *(arg_20c0h);
0x0000bbc4 addiu sp, sp, 0x20e8 |
0x0000bbc8 jr ra | return v0;
| label_7:
0x0000bbcc lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000bbd0 lw a0, (v0) | a0 = *(v0);
0x0000bbd4 sw a0, 0x24(sp) | *(arg_24h) = a0;
0x0000bbd8 jalr t9 | t9 ();
0x0000bbdc move a3, v0 | a3 = v0;
0x0000bbe0 lw gp, 0x18(sp) | gp = *(arg_18h);
0x0000bbe4 lw v0, 0x2c(sp) | v0 = *(arg_2ch);
0x0000bbe8 lw a0, 0x24(sp) | a0 = *(arg_24h);
0x0000bbec addiu a2, v0, -0x34a0 | a2 = v0 + -0x34a0;
0x0000bbf0 lw v0, 0x28(sp) | v0 = *(arg_28h);
0x0000bbf4 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
0x0000bbf8 addiu a1, zero, 1 | a1 = 1;
0x0000bbfc sw s5, 0x14(sp) | *(arg_14h) = s5;
0x0000bc00 sw v0, 0x10(sp) | *(arg_10h) = v0;
0x0000bc04 jalr t9 | t9 ();
0x0000bc08 lw gp, 0x18(sp) | gp = *(arg_18h);
0x0000bc0c move a2, s0 | a2 = s0;
0x0000bc10 move a0, s7 | a0 = s7;
0x0000bc14 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000bc18 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000bc1c addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.checking__s */
0x0000bc20 addiu a1, a1, -0x31a0 | a1 += -0x31a0;
0x0000bc24 bal 0x9b48 | fcn_00009b48 ();
0x0000bc28 move a1, s0 | a1 = s0;
0x0000bc2c b 0xbb5c | goto label_0;
| label_3:
0x0000bc30 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000bc34 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000bc38 lw s0, (v0) | s0 = *(v0);
0x0000bc3c jalr t9 | t9 ();
0x0000bc40 lw gp, 0x18(sp) | gp = *(arg_18h);
0x0000bc44 move a3, v0 | a3 = v0;
0x0000bc48 addiu a1, zero, 1 | a1 = 1;
0x0000bc4c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000bc50 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* str.ITER */
0x0000bc54 addiu v0, v0, -0x3440 | v0 += -0x3440;
0x0000bc58 sw v0, 0x14(sp) | *(arg_14h) = v0;
0x0000bc5c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000bc60 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000bc64 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000bc68 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000bc6c move a0, s0 | a0 = s0;
0x0000bc70 sw v0, 0x10(sp) | *(arg_10h) = v0;
0x0000bc74 jalr t9 | t9 ();
0x0000bc78 lw gp, 0x18(sp) | gp = *(arg_18h);
0x0000bc7c move a0, s7 | a0 = s7;
0x0000bc80 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000bc84 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000bc88 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.scan__proc_partitions */
0x0000bc8c addiu a1, a1, -0x31e4 | a1 += -0x31e4;
0x0000bc90 bal 0x9b48 | fcn_00009b48 ();
0x0000bc94 lw a2, 0x190(s1) | a2 = *((s1 + 100));
0x0000bc98 lw gp, 0x18(sp) | gp = *(arg_18h);
| if (a2 != 0) {
0x0000bc9c bnez a2, 0xbad0 | goto label_1;
| }
0x0000bca0 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| label_4:
0x0000bca4 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x0000bca8 lw t9, -0x7d80(gp) | t9 = sym.imp.fopen64;
| /* esilref: 're' */
0x0000bcac addiu a1, a1, -0x3558 | a1 += -0x3558;
| /* str._proc_partitions */
0x0000bcb0 addiu a0, a0, -0x31cc | a0 += -0x31cc;
0x0000bcb4 jalr t9 | t9 ();
0x0000bcb8 move a2, v0 | a2 = v0;
0x0000bcbc lw gp, 0x18(sp) | gp = *(arg_18h);
0x0000bcc0 sw v0, 0x190(s1) | *((s1 + 100)) = v0;
| if (v0 != 0) {
0x0000bcc4 bnez v0, 0xbad0 | goto label_1;
| }
0x0000bcc8 addiu v0, zero, 1 | v0 = 1;
0x0000bccc b 0xbb90 | goto label_2;
| label_8:
0x0000bcd0 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000bcd4 jalr t9 | t9 ();
0x0000bcd8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x10320 */
| #include <stdint.h>
|
; (fcn) fcn.00010320 () | void fcn_00010320 () {
0x00010320 lui gp, 2 |
0x00010324 addiu gp, gp, 0x5d30 |
0x00010328 addu gp, gp, t9 | gp += t9;
0x0001032c addiu sp, sp, -0x30 |
0x00010330 sw s1, 0x24(sp) | *(var_24h) = s1;
0x00010334 lw s1, -0x7bc0(gp) | s1 = *((gp - 7920));
0x00010338 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0001033c sw s2, 0x28(sp) | *(var_28h) = s2;
0x00010340 lw v0, (s1) | v0 = *(s1);
0x00010344 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00010348 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0001034c move s2, a1 | s2 = a1;
0x00010350 sw a2, 0x38(sp) | *(arg_38h) = a2;
0x00010354 sw a3, 0x3c(sp) | *(arg_3ch) = a3;
0x00010358 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x0001035c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
| if (a0 != 0) {
0x00010360 beqz a0, 0x10374 |
0x00010364 lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x00010368 ext v0, v0, 0x18, 1 | __asm ("ext v0, v0, 0x18, 1");
0x0001036c lw s0, -0x7b90(gp) | s0 = *((gp - 7908));
| if (v0 == 0) {
0x00010370 beqz v0, 0x103d4 | goto label_0;
| }
| }
0x00010374 lw s0, -0x7b90(gp) | s0 = *((gp - 7908));
| do {
0x00010378 lw t9, -0x7b70(gp) | t9 = sym.imp.__vfprintf_chk
0x0001037c addiu v0, sp, 0x38 | v0 = sp + 0x38;
0x00010380 lw a0, (s0) | a0 = *(s0);
0x00010384 move a3, v0 | a3 = v0;
0x00010388 move a2, s2 | a2 = s2;
0x0001038c addiu a1, zero, 1 | a1 = 1;
0x00010390 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00010394 jalr t9 | t9 ();
0x00010398 lw gp, 0x10(sp) | gp = *(var_10h);
0x0001039c lw a1, (s0) | a1 = *(s0);
0x000103a0 lw t9, -0x7d68(gp) | t9 = sym.imp.fputc;
0x000103a4 addiu a0, zero, 0xa | a0 = 0xa;
0x000103a8 jalr t9 | t9 ();
0x000103ac lw v1, 0x1c(sp) | v1 = *(var_1ch);
0x000103b0 lw v0, (s1) | v0 = *(s1);
0x000103b4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 != v0) {
0x000103b8 bne v1, v0, 0x103fc | goto label_1;
| }
0x000103bc lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000103c0 lw s2, 0x28(sp) | s2 = *(var_28h);
0x000103c4 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000103c8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000103cc addiu sp, sp, 0x30 |
0x000103d0 jr ra | return v1;
| label_0:
0x000103d4 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x000103d8 move v1, a0 | v1 = a0;
0x000103dc lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
0x000103e0 lw a0, (s0) | a0 = *(s0);
0x000103e4 move a3, v1 | a3 = v1;
| /* str.__p_:_ */
0x000103e8 addiu a2, a2, -0x34a8 | a2 += -0x34a8;
0x000103ec addiu a1, zero, 1 | a1 = 1;
0x000103f0 jalr t9 | t9 ();
0x000103f4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000103f8 b 0x10378 |
| } while (1);
| label_1:
0x000103fc lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00010400 jalr t9 | t9 ();
0x00010404 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x13bd0 */
| #include <stdint.h>
|
; (fcn) fcn.00013bd0 () | void fcn_00013bd0 () {
| label_0:
0x00013bd0 lui gp, 2 |
0x00013bd4 addiu gp, gp, 0x2480 |
0x00013bd8 addu gp, gp, t9 | gp += t9;
0x00013bdc addiu sp, sp, -0x30 |
0x00013be0 sw s1, 0x24(sp) | *(var_24h) = s1;
0x00013be4 lw s1, -0x7bc0(gp) | s1 = *((gp - 7920));
0x00013be8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00013bec sw s2, 0x28(sp) | *(var_28h) = s2;
0x00013bf0 lw v0, (s1) | v0 = *(s1);
0x00013bf4 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00013bf8 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00013bfc move s2, a1 | s2 = a1;
0x00013c00 sw a2, 0x38(sp) | *(arg_38h) = a2;
0x00013c04 sw a3, 0x3c(sp) | *(arg_3ch) = a3;
0x00013c08 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00013c0c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
| if (a0 != 0) {
0x00013c10 beqz a0, 0x13c24 |
0x00013c14 lw v0, -0x1ad0(v0) | v0 = *((v0 - 1716));
0x00013c18 ext v0, v0, 0x18, 1 | __asm ("ext v0, v0, 0x18, 1");
0x00013c1c lw s0, -0x7b90(gp) | s0 = *((gp - 7908));
| if (v0 == 0) {
0x00013c20 beqz v0, 0x13c84 | goto label_1;
| }
| }
0x00013c24 lw s0, -0x7b90(gp) | s0 = *((gp - 7908));
| do {
0x00013c28 lw t9, -0x7b70(gp) | t9 = sym.imp.__vfprintf_chk
0x00013c2c addiu v0, sp, 0x38 | v0 = sp + 0x38;
0x00013c30 lw a0, (s0) | a0 = *(s0);
0x00013c34 move a3, v0 | a3 = v0;
0x00013c38 move a2, s2 | a2 = s2;
0x00013c3c addiu a1, zero, 1 | a1 = 1;
0x00013c40 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00013c44 jalr t9 | t9 ();
0x00013c48 lw gp, 0x10(sp) | gp = *(var_10h);
0x00013c4c lw a1, (s0) | a1 = *(s0);
0x00013c50 lw t9, -0x7d68(gp) | t9 = sym.imp.fputc;
0x00013c54 addiu a0, zero, 0xa | a0 = 0xa;
0x00013c58 jalr t9 | t9 ();
0x00013c5c lw v1, 0x1c(sp) | v1 = *(var_1ch);
0x00013c60 lw v0, (s1) | v0 = *(s1);
0x00013c64 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 != v0) {
0x00013c68 bne v1, v0, 0x13cac | goto label_2;
| }
0x00013c6c lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00013c70 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00013c74 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00013c78 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00013c7c addiu sp, sp, 0x30 |
0x00013c80 jr ra | return v0;
| label_1:
0x00013c84 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00013c88 move v1, a0 | v1 = a0;
0x00013c8c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
0x00013c90 lw a0, (s0) | a0 = *(s0);
0x00013c94 move a3, v1 | a3 = v1;
| /* str.__p_:_ */
0x00013c98 addiu a2, a2, -0x34a8 | a2 += -0x34a8;
0x00013c9c addiu a1, zero, 1 | a1 = 1;
0x00013ca0 jalr t9 | t9 ();
0x00013ca4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00013ca8 b 0x13c28 |
| } while (1);
| label_2:
0x00013cac lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00013cb0 jalr t9 | t9 ();
0x00013cb4 nop |
0x00013cb8 lui gp, 2 |
0x00013cbc addiu gp, gp, 0x2398 |
0x00013cc0 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00013cc4 beqz a0, 0x13dd0 | goto label_3;
| }
0x00013cc8 nop |
0x00013ccc lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00013cd0 addiu sp, sp, -0x30 |
0x00013cd4 lw v0, -0x1ad0(v0) | v0 = *((v0 - 1716));
0x00013cd8 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00013cdc andi v0, v0, 4 | v0 &= 4;
0x00013ce0 sw s0, 0x24(sp) | *(var_24h_2) = s0;
0x00013ce4 sw ra, 0x2c(sp) | *(var_2ch_2) = ra;
0x00013ce8 sw s1, 0x28(sp) | *(var_28h_2) = s1;
0x00013cec move s0, a0 | s0 = a0;
0x00013cf0 bnez v0, 0x13d64 |
| while (1) {
0x00013cf4 lw t9, -0x7e80(gp) | t9 = sym.ul_path_get_dialect;
0x00013cf8 move a0, s0 | a0 = s0;
0x00013cfc bal 0x10ba0 | sym_ul_path_get_dialect ();
0x00013d00 move s1, v0 | s1 = v0;
0x00013d04 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x00013d08 beqz v0, 0x13d50 |
0x00013d0c lw t9, -0x7f60(gp) | t9 = sym.ul_unref_path;
0x00013d10 lw a0, 8(v0) | a0 = *((v0 + 2));
0x00013d14 bal 0x10e3c | sym_ul_unref_path ();
0x00013d18 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00013d1c lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x00013d20 move a0, s1 | a0 = s1;
0x00013d24 jalr t9 | t9 ();
0x00013d28 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00013d2c lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x00013d30 lw s1, 0x28(sp) | s1 = *(var_28h_2);
0x00013d34 move a0, s0 | a0 = s0;
0x00013d38 lw t9, -0x7e7c(gp) | t9 = sym.ul_path_set_dialect;
0x00013d3c lw s0, 0x24(sp) | s0 = *(var_24h_2);
0x00013d40 move a2, zero | a2 = 0;
0x00013d44 move a1, zero | a1 = 0;
0x00013d48 addiu sp, sp, 0x30 |
0x00013d4c b 0x10ad0 | void (*0x10ad0)() ();
| }
0x00013d50 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x00013d54 lw s1, 0x28(sp) | s1 = *(var_28h_2);
0x00013d58 lw s0, 0x24(sp) | s0 = *(var_24h_2);
0x00013d5c addiu sp, sp, 0x30 |
0x00013d60 jr ra | return v0;
0x00013d64 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x00013d68 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00013d6c lw s1, (v0) | s1 = *(v0);
0x00013d70 jalr t9 | t9 ();
0x00013d74 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00013d78 move a3, v0 | a3 = v0;
0x00013d7c addiu a1, zero, 1 | a1 = 1;
0x00013d80 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00013d84 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00013d88 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00013d8c sw v0, 0x14(sp) | *(var_14h) = v0;
0x00013d90 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00013d94 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulsysfs */
0x00013d98 addiu v0, v0, -0x2970 | v0 += -0x2970;
| /* str._d:__s:__8s:_ */
0x00013d9c addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00013da0 move a0, s1 | a0 = s1;
0x00013da4 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00013da8 jalr t9 | t9 ();
0x00013dac lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00013db0 move a0, s0 | a0 = s0;
0x00013db4 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00013db8 lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00013bd0 */
0x00013dbc addiu t9, t9, 0x3bd0 | t9 += 0x3bd0;
| /* str.deinit */
0x00013dc0 addiu a1, a1, -0x2968 | a1 += -0x2968;
0x00013dc4 bal 0x13bd0 | fcn_00013bd0 ();
| goto label_0;
0x00013dc8 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00013dcc b 0x13cf4 |
| }
| label_3:
0x00013dd0 jr ra | return v0;
0x00013dd4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x13dd8 */
| #include <stdint.h>
|
; (fcn) fcn.00013dd8 () | void fcn_00013dd8 () {
0x00013dd8 lui gp, 2 |
0x00013ddc addiu gp, gp, 0x2278 |
0x00013de0 addu gp, gp, t9 | gp += t9;
0x00013de4 addiu sp, sp, -0x40 |
0x00013de8 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00013dec sw s2, 0x34(sp) | *(var_34h) = s2;
0x00013df0 lw s2, -0x7bc0(gp) | s2 = *((gp - 7920));
0x00013df4 lw t9, -0x7d80(gp) | t9 = sym.imp.fopen64;
0x00013df8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00013dfc lw v0, (s2) | v0 = *(s2);
0x00013e00 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00013e04 sw s3, 0x38(sp) | *(var_38h) = s3;
0x00013e08 sw s1, 0x30(sp) | *(var_30h) = s1;
0x00013e0c sw s0, 0x2c(sp) | *(var_2ch) = s0;
| /* esilref: 're' */
0x00013e10 addiu a1, a1, -0x3558 | a1 += -0x3558;
0x00013e14 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00013e18 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x00013e1c sw zero, 0x20(sp) | *(var_20h) = 0;
0x00013e20 jalr t9 | t9 ();
0x00013e24 nop |
0x00013e28 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00013e2c beqz v0, 0x13ee8 | goto label_3;
| }
0x00013e30 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00013e34 lw t9, -0x7cb8(gp) | t9 = sym.imp.fscanf;
0x00013e38 addiu a3, sp, 0x20 | a3 = sp + 0x20;
0x00013e3c addiu a2, sp, 0x1c | a2 = sp + 0x1c;
| /* str._d:_d */
0x00013e40 addiu a1, a1, -0x29c0 | a1 += -0x29c0;
0x00013e44 move a0, v0 | a0 = v0;
0x00013e48 move s1, v0 | s1 = v0;
0x00013e4c jalr t9 | t9 ();
0x00013e50 addiu v1, zero, 2 | v1 = 2;
0x00013e54 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == v1) {
0x00013e58 beq v0, v1, 0x13ea4 | goto label_4;
| }
0x00013e5c move s3, zero | s3 = 0;
0x00013e60 move s0, zero | s0 = 0;
| do {
0x00013e64 lw t9, -0x7d78(gp) | t9 = sym.imp.fclose;
0x00013e68 move a0, s1 | a0 = s1;
0x00013e6c jalr t9 | t9 ();
0x00013e70 lw gp, 0x10(sp) | gp = *(var_10h);
| label_0:
0x00013e74 lw a1, 0x24(sp) | a1 = *(var_24h);
0x00013e78 lw a0, (s2) | a0 = *(s2);
0x00013e7c move v0, s3 | v0 = s3;
0x00013e80 move v1, s0 | v1 = s0;
| if (a1 != a0) {
0x00013e84 bne a1, a0, 0x13ef4 | goto label_5;
| }
0x00013e88 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00013e8c lw s3, 0x38(sp) | s3 = *(var_38h);
0x00013e90 lw s2, 0x34(sp) | s2 = *(var_34h);
0x00013e94 lw s1, 0x30(sp) | s1 = *(var_30h);
0x00013e98 lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x00013e9c addiu sp, sp, 0x40 |
0x00013ea0 jr ra | return v0;
| label_4:
0x00013ea4 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00013ea8 lw v1, 0x20(sp) | v1 = *(var_20h);
0x00013eac lui a0, 0xf | a0 = 0xf0000;
0x00013eb0 sll v0, s0, 8 | v0 = s0 << 8;
0x00013eb4 ori a0, a0, 0xff00 | a0 |= 0xff00;
0x00013eb8 and a0, v0, a0 | a0 = v0 & a0;
0x00013ebc andi v0, v1, 0xff | v0 = v1 & 0xff;
0x00013ec0 sll s3, v1, 0xc | s3 = v1 << 0xc;
0x00013ec4 or v0, v0, a0 | v0 |= a0;
0x00013ec8 addiu a1, zero, -0x1000 | a1 = -0x1000;
0x00013ecc lui a0, 0xfff0 | a0 = 0xfff00000;
0x00013ed0 and s0, s0, a1 | s0 &= a1;
0x00013ed4 and s3, s3, a0 | s3 &= a0;
0x00013ed8 srl v1, v1, 0x14 | v1 >>= 0x14;
0x00013edc or s3, s3, v0 | s3 |= v0;
0x00013ee0 or s0, v1, s0 | s0 = v1 | s0;
0x00013ee4 b 0x13e64 |
| } while (1);
| label_3:
0x00013ee8 move s3, zero | s3 = 0;
0x00013eec move s0, zero | s0 = 0;
0x00013ef0 b 0x13e74 | goto label_0;
| label_5:
0x00013ef4 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00013ef8 jalr t9 | t9 ();
0x00013efc nop |
0x00013f00 lui gp, 2 |
0x00013f04 addiu gp, gp, 0x2150 |
0x00013f08 addu gp, gp, t9 | gp += t9;
0x00013f0c addiu sp, sp, -0x38 |
0x00013f10 lw t9, -0x7e80(gp) | t9 = sym.ul_path_get_dialect;
0x00013f14 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00013f18 sw s3, 0x30(sp) | *(var_30h_2) = s3;
0x00013f1c sw s2, 0x2c(sp) | *(var_2ch_2) = s2;
0x00013f20 sw s1, 0x28(sp) | *(var_28h) = s1;
0x00013f24 sw ra, 0x34(sp) | *(var_34h_2) = ra;
0x00013f28 sw s0, 0x24(sp) | *(var_24h_2) = s0;
0x00013f2c move s3, a0 | s3 = a0;
0x00013f30 move s1, a1 | s1 = a1;
0x00013f34 move s2, a2 | s2 = a2;
0x00013f38 bal 0x10ba0 | sym_ul_path_get_dialect ();
0x00013f3c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00013f40 beqz v0, 0x13f6c | goto label_6;
| }
0x00013f44 lw s0, 8(v0) | s0 = *((v0 + 2));
0x00013f48 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| if (s0 == 0) {
0x00013f4c beqz s0, 0x13f6c | goto label_6;
| }
0x00013f50 lw t9, -0x7dac(gp) | t9 = sym.imp.strncmp;
0x00013f54 addiu a2, zero, 6 | a2 = 6;
| /* str.queue_ */
0x00013f58 addiu a1, a1, -0x2960 | a1 += -0x2960;
0x00013f5c move a0, s1 | a0 = s1;
0x00013f60 jalr t9 | t9 ();
0x00013f64 lw gp, 0x18(sp) | gp = *(var_18h);
0x00013f68 beqz v0, 0x13f8c |
| while (v0 < 0) {
| label_6:
0x00013f6c addiu v0, zero, 1 | v0 = 1;
| label_2:
0x00013f70 lw ra, 0x34(sp) | ra = *(var_34h_2);
| label_1:
0x00013f74 lw s3, 0x30(sp) | s3 = *(var_30h_2);
0x00013f78 lw s2, 0x2c(sp) | s2 = *(var_2ch_2);
0x00013f7c lw s1, 0x28(sp) | s1 = *(var_28h);
0x00013f80 lw s0, 0x24(sp) | s0 = *(var_24h_2);
0x00013f84 addiu sp, sp, 0x38 |
0x00013f88 jr ra | return v0;
0x00013f8c lw t9, -0x7ee0(gp) | t9 = sym.ul_path_get_dirfd;
0x00013f90 move a0, s0 | a0 = s0;
0x00013f94 bal 0x10bc4 | sym_ul_path_get_dirfd ();
0x00013f98 lw gp, 0x18(sp) | gp = *(var_18h);
0x00013f9c sw v0, (s2) | *(s2) = v0;
0x00013fa0 bltz v0, 0x13f6c |
| }
0x00013fa4 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00013fa8 lw v0, -0x1ad0(v0) | v0 = *((v0 - 1716));
0x00013fac andi v0, v0, 4 | v0 &= 4;
0x00013fb0 lw ra, 0x34(sp) | ra = *(var_34h_2);
| if (v0 == 0) {
0x00013fb4 beqz v0, 0x13f74 | goto label_1;
| }
0x00013fb8 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x00013fbc lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00013fc0 lw s0, (v0) | s0 = *(v0);
0x00013fc4 jalr t9 | t9 ();
0x00013fc8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00013fcc move a3, v0 | a3 = v0;
0x00013fd0 addiu a1, zero, 1 | a1 = 1;
0x00013fd4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00013fd8 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00013fdc addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00013fe0 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00013fe4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00013fe8 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulsysfs */
0x00013fec addiu v0, v0, -0x2970 | v0 += -0x2970;
| /* str._d:__s:__8s:_ */
0x00013ff0 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00013ff4 move a0, s0 | a0 = s0;
0x00013ff8 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00013ffc jalr t9 | t9 ();
0x00014000 lw gp, 0x18(sp) | gp = *(var_18h);
0x00014004 move a2, s1 | a2 = s1;
0x00014008 move a0, s3 | a0 = s3;
0x0001400c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00014010 lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00013bd0 */
0x00014014 addiu t9, t9, 0x3bd0 | t9 += 0x3bd0;
| /* str._s_redirected_to_parent */
0x00014018 addiu a1, a1, -0x2958 | a1 += -0x2958;
0x0001401c bal 0x13bd0 | fcn_00013bd0 ();
0x00014020 move v0, zero | v0 = 0;
0x00014024 b 0x13f70 | goto label_2;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x3650 */
| #include <stdint.h>
|
; (fcn) main () | int32_t main () {
| /* [13] -r-x section size 97072 named .text */
0x00003650 lui gp, 3 |
0x00003654 addiu gp, gp, 0x2a00 |
0x00003658 addu gp, gp, t9 | gp += t9;
0x0000365c lw v0, -0x7bc0(gp) | v0 = *((gp - 7920));
0x00003660 addiu sp, sp, -0x478 |
0x00003664 addiu v1, sp, 0x128 | v1 = sp + aav.0x00000128;
0x00003668 sw v0, 0x48(sp) | *(var_48h) = v0;
0x0000366c lw v0, (v0) | v0 = *(v0);
0x00003670 lw t9, -0x7cf0(gp) | t9 = sym.imp.memset;
0x00003674 sw ra, 0x474(sp) | *(var_474h) = ra;
0x00003678 sw v1, 0x44(sp) | *(var_44h) = v1;
0x0000367c addiu a2, zero, 0x220 | a2 = 0x220;
0x00003680 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00003684 sw s7, 0x46c(sp) | *(var_46ch) = s7;
0x00003688 sw s6, 0x468(sp) | *(var_468h) = s6;
0x0000368c sw s5, 0x464(sp) | *(var_464h) = s5;
0x00003690 sw s4, 0x460(sp) | *(var_460h) = s4;
0x00003694 sw s3, 0x45c(sp) | *(var_45ch) = s3;
0x00003698 sw s2, 0x458(sp) | *(var_458h) = s2;
0x0000369c sw s1, 0x454(sp) | *(var_454h) = s1;
0x000036a0 sw s0, 0x450(sp) | *(var_450h) = s0;
0x000036a4 sw fp, 0x470(sp) | *(var_470h) = fp;
0x000036a8 move s3, a0 | s3 = a0;
0x000036ac move s4, a1 | s4 = a1;
0x000036b0 move a0, v1 | a0 = v1;
0x000036b4 move a1, zero | a1 = 0;
0x000036b8 sw v0, 0x44c(sp) | *(var_44ch) = v0;
0x000036bc move s0, zero | s0 = 0;
0x000036c0 jalr t9 | t9 ();
0x000036c4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000036c8 addiu v0, zero, 1 | v0 = 1;
0x000036cc addiu a0, zero, 6 | a0 = 6;
0x000036d0 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x000036d4 lw t9, -0x7d5c(gp) | t9 = sym.imp.setlocale;
0x000036d8 addiu a1, a1, -0x3fd4 | a1 += -0x3fd4;
0x000036dc sw v0, 0x128(sp) | *(var_128h) = v0;
0x000036e0 sw zero, 0x60(sp) | *(var_60h) = 0;
0x000036e4 sw zero, 0x64(sp) | *(var_64h) = 0;
0x000036e8 sw zero, 0x68(sp) | *(var_68h) = 0;
0x000036ec sw zero, 0x80(sp) | *(var_80h) = 0;
0x000036f0 sw zero, 0x84(sp) | *(var_84h) = 0;
0x000036f4 jalr t9 | t9 ();
0x000036f8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000036fc lw a0, -0x7fd8(gp) | a0 = *((gp - 8182));
0x00003700 lw t9, -0x7fc8(gp) | t9 = *(gp);
0x00003704 addiu a0, a0, 0x6210 | a0 += 0x6210;
0x00003708 bal 0x1b160 | fcn_0001b160 ();
0x0000370c lw gp, 0x20(sp) | gp = *(var_20h);
0x00003710 lw t9, -0x7fc4(gp) | t9 = sym.strutils_set_exitcode;
0x00003714 addiu a0, zero, 4 | a0 = 4;
0x00003718 bal 0x6fec | sym_strutils_set_exitcode ();
0x0000371c lw gp, 0x20(sp) | gp = *(var_20h);
0x00003720 addiu v0, zero, 2 | v0 = 2;
0x00003724 sw v0, 0x3c(sp) | *(var_3ch) = v0;
0x00003728 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000372c lw s2, -0x7fd0(gp) | s2 = *((gp - 8180));
0x00003730 sw v0, 0x50(sp) | *(var_50h) = v0;
0x00003734 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00003738 lw s1, -0x7fd0(gp) | s1 = *((gp - 8180));
0x0000373c addiu v0, v0, 0x61b8 | v0 += 0x61b8;
0x00003740 sw v0, 0x40(sp) | *(var_40h) = v0;
0x00003744 lw s6, -0x7fdc(gp) | s6 = *((gp - 8183));
| /* str.filesystem */
0x00003748 addiu v0, s2, -0x4210 | v0 = s2 + -0x4210;
0x0000374c lw s5, -0x7fd0(gp) | s5 = *((gp - 8180));
0x00003750 lw s7, -0x7fd0(gp) | s7 = *((gp - 8180));
0x00003754 sw zero, 0x38(sp) | *(var_38h) = 0;
0x00003758 sw zero, 0x34(sp) | *(var_34h) = 0;
0x0000375c sw zero, 0x4c(sp) | *(var_4ch) = 0;
0x00003760 addiu s1, s1, -0x36e0 | s1 += -0x36e0;
0x00003764 sw v0, 0x28(sp) | *(var_28h) = v0;
| label_2:
0x00003768 lw t9, -0x7ca4(gp) | t9 = sym.imp.getopt_long;
0x0000376c sw zero, 0x10(sp) | *(var_10h) = 0;
| /* section..data.rel.ro */
0x00003770 addiu a3, s6, -0x2154 | a3 = s6 + -0x2154;
| /* str.c:DdghilL:n:ko:O:ps:S:t:u:U:w:Vv */
0x00003774 addiu a2, s5, -0x3904 | a2 = s5 + -0x3904;
0x00003778 move a1, s4 | a1 = s4;
0x0000377c move a0, s3 | a0 = s3;
0x00003780 jalr t9 | t9 ();
0x00003784 addiu v1, zero, -1 | v1 = -1;
0x00003788 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == v1) {
0x0000378c beq v0, v1, 0x3ee4 | goto label_36;
| }
0x00003790 slti v1, v0, 0x6e | v1 = (v0 < 0x6e) ? 1 : 0;
0x00003794 addiu v1, zero, 0x6e | v1 = 0x6e;
| if (v1 != 0) {
0x00003798 bnez v1, 0x3808 | goto label_37;
| }
0x0000379c addiu a0, sp, 0x80 | a0 = sp + 0x80;
0x000037a0 addiu fp, s7, -0x35fc | fp = s7 + -0x35fc;
0x000037a4 slti a1, v0, 0x6e | a1 = (v0 < 0x6e) ? 1 : 0;
| label_0:
0x000037a8 addiu fp, fp, 0x40 | fp += 0x40;
| if (a1 == 0) {
0x000037ac bnel a1, zero, 0x37f0 | goto label_1;
| }
| if (v0 == v1) {
0x000037b0 beql v0, v1, 0x37e0 | goto label_38;
| }
0x000037b4 lw v1, (a0) | v1 = *(a0);
0x000037b8 move v1, fp | v1 = fp;
0x000037bc addiu v1, v1, 4 | v1 += 4;
| do {
0x000037c0 lw a1, (v1) | a1 = *(v1);
0x000037c4 slt a2, v0, a1 | a2 = (v0 < a1) ? 1 : 0;
| if (a1 == 0) {
0x000037c8 beqz a1, 0x37ec | goto label_39;
| }
0x000037cc addiu fp, fp, 0x40 | fp += 0x40;
| if (a2 == 0) {
0x000037d0 bnel a2, zero, 0x37f0 | goto label_1;
| }
0x000037d4 addiu v1, v1, 4 | v1 += 4;
0x000037d8 bne v0, a1, 0x37c0 |
| } while (v0 != a1);
0x000037dc lw v1, (a0) | v1 = *(a0);
| if (v1 != 0) {
| label_38:
0x000037e0 bnez v1, 0x3828 | goto label_40;
| }
0x000037e4 nop |
0x000037e8 sw v0, (a0) | *(a0) = v0;
| label_39:
0x000037ec addiu fp, fp, 0x40 | fp += 0x40;
| label_1:
0x000037f0 lw v1, (fp) | v1 = *(fp);
| if (v1 == 0) {
0x000037f4 beql v1, zero, 0x380c | goto label_41;
| }
0x000037f8 addiu v0, v0, -0x44 | v0 += -0x44;
0x000037fc slt a1, v0, v1 | a1 = (v0 < v1) ? 1 : 0;
0x00003800 addiu a0, a0, 4 | a0 += 4;
| if (a1 == 0) {
0x00003804 beqz a1, 0x37a8 | goto label_0;
| }
| label_37:
0x00003808 addiu v0, v0, -0x44 | v0 += -0x44;
| label_41:
0x0000380c sltiu v1, v0, 0x34 | v1 = (v0 < 0x34) ? 1 : 0;
0x00003810 sll v0, v0, 2 | v0 <<= 2;
| if (v1 == 0) {
0x00003814 beqz v1, 0x4b94 | goto label_42;
| }
0x00003818 lwx v0, v0(s1) | __asm ("lwx v0, v0(s1)");
0x0000381c addu v0, v0, gp | v0 += gp;
0x00003820 jr v0 | v0 ();
0x00003824 nop |
| if (v0 == v1) {
| label_40:
0x00003828 beql v0, v1, 0x37f0 | goto label_1;
| }
0x0000382c addiu fp, fp, 0x40 | fp += 0x40;
0x00003830 lw s0, -0x7b90(gp) | s0 = *((gp - 7908));
0x00003834 lw v0, -0x7d94(gp) | v0 = *((gp - 8037));
0x00003838 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x0000383c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
0x00003840 lw a3, (v0) | a3 = *(v0);
0x00003844 lw a0, (s0) | a0 = *(s0);
| /* str._s:_mutually_exclusive_arguments: */
0x00003848 addiu a2, a2, -0x4290 | a2 += -0x4290;
0x0000384c addiu a1, zero, 1 | a1 = 1;
0x00003850 jalr t9 | t9 ();
0x00003854 lw v0, (fp) | v0 = *(fp);
0x00003858 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0000385c beqz v0, 0x4e3c | goto label_43;
| }
0x00003860 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x00003864 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00003868 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x0000386c lw t9, -0x7de8(gp) | t9 = sym.imp.__assert_fail;
| /* str.option_to_longopt */
0x00003870 addiu a3, a3, -0x3610 | a3 += -0x3610;
0x00003874 addiu a2, zero, 0xe | a2 = 0xe;
| /* str..._util_linux_2.34_include_optutils.h */
0x00003878 addiu a1, a1, -0x426c | a1 += -0x426c;
| /* str.__opts__NULL_ */
0x0000387c addiu a0, a0, -0x4244 | a0 += -0x4244;
0x00003880 jalr t9 | t9 ();
0x00003884 lw v0, -0x7dbc(gp) | v0 = *((gp - 8047));
0x00003888 lw fp, (v0) | fp = *(v0);
0x0000388c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| if (fp == 0) {
0x00003890 beqz fp, 0x4e60 | goto label_44;
| }
0x00003894 lw t9, -0x7dac(gp) | t9 = sym.imp.strncmp;
0x00003898 addiu a2, zero, 2 | a2 = 2;
| /* esilref: 'no' */
0x0000389c addiu a1, a1, -0x3468 | a1 += -0x3468;
0x000038a0 move a0, fp | a0 = fp;
0x000038a4 jalr t9 | t9 ();
0x000038a8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x000038ac bnez v0, 0x3eb8 | goto label_45;
| }
0x000038b0 addiu v0, fp, 2 | v0 = fp + 2;
0x000038b4 addiu v1, zero, 1 | v1 = 1;
| if (v0 == 0) {
0x000038b8 beqz v0, 0x4e5c | goto label_46;
| }
0x000038bc sw v1, 0x3c(sp) | *(var_3ch) = v1;
| label_5:
0x000038c0 lb v1, (v0) | v1 = *(v0);
0x000038c4 move s0, zero | s0 = 0;
| if (v1 == 0) {
0x000038c8 beqz v1, 0x4e60 | goto label_44;
| }
0x000038cc move fp, v0 | fp = v0;
0x000038d0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
| /* str.raid */
0x000038d4 addiu v0, v0, -0x4204 | v0 += -0x4204;
0x000038d8 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000038dc lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
| /* str.crypto */
0x000038e0 addiu v0, v0, -0x41fc | v0 += -0x41fc;
0x000038e4 sw v0, 0x30(sp) | *(var_30h) = v0;
0x000038e8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
| /* str.other */
0x000038ec addiu v0, v0, -0x41f4 | v0 += -0x41f4;
0x000038f0 sw v0, 0x54(sp) | *(var_54h) = v0;
0x000038f4 b 0x3904 | goto label_47;
| label_3:
0x000038f8 ori s0, s0, 2 | s0 |= 2;
| label_4:
0x000038fc move fp, s2 | fp = s2;
| if (s2 == 0) {
0x00003900 beqz s2, 0x3768 | goto label_2;
| }
| label_47:
0x00003904 lw t9, -0x7cac(gp) | t9 = sym.imp.strchr;
0x00003908 addiu a1, zero, 0x2c | a1 = 0x2c;
0x0000390c move a0, fp | a0 = fp;
0x00003910 jalr t9 | t9 ();
0x00003914 move s2, v0 | s2 = v0;
0x00003918 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0000391c beqz v0, 0x3924 |
0x00003920 addiu s2, v0, 1 | s2 = v0 + 1;
| }
0x00003924 lw t9, -0x7dac(gp) | t9 = sym.imp.strncmp;
0x00003928 lw a1, 0x28(sp) | a1 = *(var_28h);
0x0000392c addiu a2, zero, 0xa | a2 = 0xa;
0x00003930 move a0, fp | a0 = fp;
0x00003934 jalr t9 | t9 ();
0x00003938 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0000393c beqz v0, 0x38f8 | goto label_3;
| }
0x00003940 lw t9, -0x7dac(gp) | t9 = sym.imp.strncmp;
0x00003944 lw a1, 0x2c(sp) | a1 = *(var_2ch);
0x00003948 addiu a2, zero, 4 | a2 = 4;
0x0000394c move a0, fp | a0 = fp;
0x00003950 jalr t9 | t9 ();
0x00003954 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00003958 bnez v0, 0x3de4 | goto label_48;
| }
0x0000395c ori s0, s0, 4 | s0 |= 4;
0x00003960 b 0x38fc | goto label_4;
| label_6:
0x00003cc0 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
| label_30:
0x00003cc4 lw a0, 0x64(sp) | a0 = *(var_64h);
0x00003cc8 jalr t9 | t9 ();
0x00003ccc lw gp, 0x20(sp) | gp = *(var_20h);
0x00003cd0 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x00003cd4 lw a0, 0x68(sp) | a0 = *(var_68h);
0x00003cd8 jalr t9 | t9 ();
0x00003cdc lw v0, 0x34(sp) | v0 = *(var_34h);
0x00003ce0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00003ce4 beqz v0, 0x3d20 | goto label_49;
| }
| label_24:
0x00003ce8 lw s0, 0x34(sp) | s0 = *(var_34h);
0x00003cec lw a0, (s0) | a0 = *(s0);
0x00003cf0 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
| if (a0 == 0) {
0x00003cf4 beqz a0, 0x3d14 | goto label_50;
| }
| do {
0x00003cf8 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x00003cfc addiu s0, s0, 4 | s0 += 4;
0x00003d00 jalr t9 | t9 ();
0x00003d04 lw a0, (s0) | a0 = *(s0);
0x00003d08 lw gp, 0x20(sp) | gp = *(var_20h);
0x00003d0c bnez a0, 0x3cf8 |
| } while (a0 != 0);
0x00003d10 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
| label_50:
0x00003d14 lw a0, 0x34(sp) | a0 = *(var_34h);
0x00003d18 jalr t9 | t9 ();
0x00003d1c lw gp, 0x20(sp) | gp = *(var_20h);
| label_49:
0x00003d20 lw v0, 0x340(sp) | v0 = *(var_340h);
0x00003d24 andi v0, v0, 9 | v0 &= 9;
0x00003d28 lw t9, -0x7bdc(gp) | t9 = sym.imp.blkid_put_cache;
0x00003d2c beqz v0, 0x3ed4 |
| while (1) {
0x00003d30 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x00003d34 lw a0, 0x28(sp) | a0 = *(var_28h);
0x00003d38 jalr t9 | t9 ();
0x00003d3c lw v0, 0x48(sp) | v0 = *(var_48h);
0x00003d40 lw a0, 0x44c(sp) | a0 = *(var_44ch);
0x00003d44 lw gp, 0x20(sp) | gp = *(var_20h);
0x00003d48 lw v1, (v0) | v1 = *(v0);
0x00003d4c move v0, s4 | v0 = s4;
| if (a0 != v1) {
0x00003d50 bne a0, v1, 0x4ef0 | goto label_51;
| }
0x00003d54 lw ra, 0x474(sp) | ra = *(var_474h);
0x00003d58 lw fp, 0x470(sp) | fp = *(var_470h);
0x00003d5c lw s7, 0x46c(sp) | s7 = *(var_46ch);
0x00003d60 lw s6, 0x468(sp) | s6 = *(var_468h);
0x00003d64 lw s5, 0x464(sp) | s5 = *(var_464h);
0x00003d68 lw s4, 0x460(sp) | s4 = *(var_460h);
0x00003d6c lw s3, 0x45c(sp) | s3 = *(var_45ch);
0x00003d70 lw s2, 0x458(sp) | s2 = *(var_458h);
0x00003d74 lw s1, 0x454(sp) | s1 = *(var_454h);
0x00003d78 lw s0, 0x450(sp) | s0 = *(var_450h);
0x00003d7c addiu sp, sp, 0x478 |
0x00003d80 jr ra | return v0;
| label_48:
0x00003de4 lw t9, -0x7dac(gp) | t9 = sym.imp.strncmp;
0x00003de8 lw a1, 0x30(sp) | a1 = *(var_30h);
0x00003dec addiu a2, zero, 6 | a2 = 6;
0x00003df0 move a0, fp | a0 = fp;
0x00003df4 jalr t9 | t9 ();
0x00003df8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00003dfc bnez v0, 0x3e08 |
0x00003e00 ori s0, s0, 8 | s0 |= 8;
0x00003e04 b 0x38fc | goto label_4;
| }
0x00003e08 lw t9, -0x7dac(gp) | t9 = sym.imp.strncmp;
0x00003e0c lw a1, 0x54(sp) | a1 = *(var_54h);
0x00003e10 addiu a2, zero, 5 | a2 = 5;
0x00003e14 move a0, fp | a0 = fp;
0x00003e18 jalr t9 | t9 ();
0x00003e1c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00003e20 bnez v0, 0x4e60 | goto label_44;
| }
0x00003e24 ori s0, s0, 0x10 | s0 |= 0x10;
0x00003e28 b 0x38fc | goto label_4;
| label_45:
0x00003eb8 move v0, fp | v0 = fp;
0x00003ebc b 0x38c0 | goto label_5;
0x00003ed4 lw a0, 0x60(sp) | a0 = *(var_60h);
0x00003ed8 jalr t9 | t9 ();
0x00003edc lw gp, 0x20(sp) | gp = *(var_20h);
0x00003ee0 b 0x3d30 |
| }
| label_36:
0x00003ee4 lw v0, 0x340(sp) | v0 = *(var_340h);
0x00003ee8 andi v0, v0, 0x30 | v0 &= 0x30;
0x00003eec lw s1, -0x7be4(gp) | s1 = *((gp - 7929));
| if (v0 != 0) {
0x00003ef0 beqz v0, 0x3f04 |
0x00003ef4 lbu v0, 0x340(sp) | v0 = *(var_340h);
0x00003ef8 addiu v1, zero, 1 | v1 = 1;
0x00003efc ins v0, v1, 3, 1 | __asm ("ins v0, v1, 3, 1");
0x00003f00 sb v0, 0x340(sp) | *(var_340h) = v0;
| }
0x00003f04 lw a0, (s1) | a0 = *(s1);
0x00003f08 slt v0, a0, s3 | v0 = (a0 < s3) ? 1 : 0;
0x00003f0c lw t9, -0x7df0(gp) | t9 = sym.imp.calloc;
| if (v0 != 0) {
0x00003f10 bnez v0, 0x45b4 | goto label_52;
| }
0x00003f14 sw zero, 0x38(sp) | *(var_38h) = 0;
0x00003f18 sw zero, 0x28(sp) | *(var_28h) = 0;
| label_17:
0x00003f1c lbu v0, 0x340(sp) | v0 = *(var_340h);
| label_18:
0x00003f20 andi v0, v0, 4 | v0 &= 4;
0x00003f24 lw v0, 0x340(sp) | v0 = *(var_340h);
| if (v0 != 0) {
0x00003f28 beqz v0, 0x3f40 |
0x00003f2c lw v1, 0x128(sp) | v1 = *(var_128h);
0x00003f30 addiu v0, zero, 4 | v0 = 4;
| if (v1 == v0) {
0x00003f34 beql v1, v0, 0x4bfc | goto label_53;
| }
0x00003f38 lw s1, 0x64(sp) | s1 = *(var_64h);
| label_28:
0x00003f3c lw v0, 0x340(sp) | v0 = *(var_340h);
| }
0x00003f40 andi v0, v0, 9 | v0 &= 9;
0x00003f44 lw t9, -0x7dc0(gp) | t9 = sym.imp.blkid_get_cache;
| if (v0 == 0) {
0x00003f48 beqz v0, 0x4598 | goto label_54;
| }
| label_16:
0x00003f4c lbu v0, 0x340(sp) | v0 = *(var_340h);
0x00003f50 andi v1, v0, 2 | v1 = v0 & 2;
0x00003f54 andi v1, v0, 1 | v1 = v0 & 1;
| if (v1 != 0) {
0x00003f58 bnez v1, 0x4be4 | goto label_55;
| }
0x00003f5c andi a0, v0, 8 | a0 = v0 & 8;
| if (v1 != 0) {
0x00003f60 bnez v1, 0x3fd8 | goto label_56;
| }
0x00003f64 lw v1, 0x128(sp) | v1 = *(var_128h);
0x00003f68 andi v1, v1, 8 | v1 &= 8;
| if (v1 == 0) {
0x00003f6c beqz v1, 0x46a0 | goto label_57;
| }
0x00003f70 nop |
0x00003f74 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
| if (a0 != 0) {
0x00003f78 bnez a0, 0x4efc | goto label_58;
| }
0x00003f7c addiu t9, t9, 0x5c5c | t9 += fcn.00005c5c;
0x00003f80 move a0, zero | a0 = 0;
0x00003f84 bal 0x5c5c | fcn_00005c5c ();
0x00003f88 lbu v0, 0x340(sp) | v0 = *(var_340h);
0x00003f8c andi v1, v0, 8 | v1 = v0 & 8;
0x00003f90 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v1 != 0) {
0x00003f94 bnez v1, 0x3fe0 | goto label_59;
| }
0x00003f98 andi v1, v0, 1 | v1 = v0 & 1;
0x00003f9c andi v0, v0, 4 | v0 &= 4;
| if (v1 == 0) {
0x00003fa0 beqz v1, 0x46ac | goto label_60;
| }
0x00003fa4 lw t9, -0x7c3c(gp) | t9 = sym.imp.blkid_evaluate_tag;
| do {
0x00003fa8 lw a1, 0x68(sp) | a1 = *(var_68h);
0x00003fac lw a0, 0x64(sp) | a0 = *(var_64h);
0x00003fb0 move a2, zero | a2 = 0;
0x00003fb4 jalr t9 | t9 ();
0x00003fb8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00003fbc beqz v0, 0x4c68 | goto label_61;
| }
0x00003fc0 lw t9, -0x7c70(gp) | t9 = sym.imp.puts;
0x00003fc4 move a0, v0 | a0 = v0;
0x00003fc8 jalr t9 | t9 ();
0x00003fcc move s4, zero | s4 = 0;
0x00003fd0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00003fd4 b 0x3cc0 | goto label_6;
| label_56:
0x00003fd8 lw t9, -0x7c3c(gp) | t9 = sym.imp.blkid_evaluate_tag;
0x00003fdc beqz a0, 0x3fa8 |
| } while (a0 == 0);
| label_59:
0x00003fe0 lw v1, 0x38(sp) | v1 = *(var_38h);
| label_21:
0x00003fe4 lw v1, 0x128(sp) | v1 = *(var_128h);
| if (v1 == 0) {
0x00003fe8 beqz v1, 0x4f30 | goto label_62;
| }
0x00003fec lw t9, -0x7ce8(gp) | t9 = sym.imp.blkid_new_probe;
| if (v1 == 0) {
0x00003ff0 bnez v1, 0x4008 |
0x00003ff4 andi v0, v0, 0x20 | v0 &= 0x20;
0x00003ff8 addiu v0, zero, 0x20 | v0 = 0x20;
| if (v0 == 0) {
0x00003ffc beqz v0, 0x4008 | goto label_63;
| }
0x00004000 sw v0, 0x128(sp) | *(var_128h) = v0;
0x00004004 lw t9, -0x7ce8(gp) | t9 = sym.imp.blkid_new_probe;
| }
| label_63:
0x00004008 jalr t9 | t9 ();
0x0000400c nop |
0x00004010 move s3, v0 | s3 = v0;
0x00004014 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00004018 beqz v0, 0x4c68 | goto label_61;
| }
0x0000401c lbu v0, 0x340(sp) | v0 = *(var_340h);
0x00004020 andi v0, v0, 0x10 | v0 &= 0x10;
0x00004024 lw t9, -0x7c50(gp) | t9 = sym.imp.blkid_probe_set_superblocks_flags;
| if (v0 != 0) {
0x00004028 bnez v0, 0x474c | goto label_64;
| }
| label_23:
0x0000402c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00004030 sw zero, 0x3c(sp) | *(var_3ch) = 0;
0x00004034 sw v0, 0x54(sp) | *(var_54h) = v0;
0x00004038 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x0000403c addiu v0, v0, 0x5a20 | v0 += 0x5a20;
0x00004040 sw v0, 0x50(sp) | *(var_50h) = v0;
0x00004044 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
| /* str.PTTYPE */
0x00004048 addiu v0, v0, -0x43cc | v0 += -0x43cc;
0x0000404c sw v0, 0x58(sp) | *(var_58h) = v0;
0x00004050 lui v0, 0x16 | v0 = 0x168001;
0x00004054 ori v0, v0, 0x8001 |
0x00004058 sw v0, 0x5c(sp) | *(var_5ch) = v0;
| do {
0x0000405c lw v0, 0x3c(sp) | v0 = *(var_3ch);
0x00004060 lw t9, -0x7ccc(gp) | t9 = sym.imp.open64;
0x00004064 sll s7, v0, 2 | s7 = v0 << 2;
0x00004068 lw v0, 0x28(sp) | v0 = *(var_28h);
0x0000406c lui a1, 8 | a1 = 0x80000;
0x00004070 lwx v0, s7(v0) | __asm ("lwx v0, s7(v0)");
0x00004074 sw v0, 0x40(sp) | *(var_40h) = v0;
0x00004078 move a0, v0 | a0 = v0;
0x0000407c jalr t9 | t9 ();
0x00004080 sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x00004084 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00004088 bltz v0, 0x43a0 | goto label_65;
| }
0x0000408c lw v0, 0x138(sp) | v0 = *(var_138h);
0x00004090 lw v1, 0x13c(sp) | v1 = *(var_13ch);
0x00004094 lw t9, -0x7be0(gp) | t9 = sym.imp.blkid_probe_set_device;
0x00004098 lw a2, 0x130(sp) | a2 = *(var_130h);
0x0000409c lw a3, 0x134(sp) | a3 = *(var_134h);
0x000040a0 lw a1, 0x4c(sp) | a1 = *(var_4ch);
0x000040a4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000040a8 sw v1, 0x14(sp) | *(var_14h) = v1;
0x000040ac move a0, s3 | a0 = s3;
0x000040b0 jalr t9 | t9 ();
0x000040b4 move s4, v0 | s4 = v0;
0x000040b8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x000040bc bnez v0, 0x43c0 | goto label_66;
| }
0x000040c0 lbu v0, 0x340(sp) | v0 = *(var_340h);
0x000040c4 andi v1, v0, 0x20 | v1 = v0 & 0x20;
0x000040c8 andi v0, v0, 0x10 | v0 &= 0x10;
| if (v1 != 0) {
0x000040cc bnez v1, 0x41bc | goto label_67;
| }
0x000040d0 lw t9, -0x7dc4(gp) | t9 = sym.imp.blkid_probe_get_fd;
| if (v0 == 0) {
0x000040d4 beqz v0, 0x445c | goto label_68;
| }
| label_20:
0x000040d8 move a0, s3 | a0 = s3;
0x000040dc jalr t9 | t9 ();
0x000040e0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x000040e4 bltz v0, 0x43c0 | goto label_66;
| }
0x000040e8 lw t9, -0x7c34(gp) | t9 = sym.imp.__fxstat64;
0x000040ec addiu a2, sp, 0x88 | a2 = sp + 0x88;
0x000040f0 move a1, v0 | a1 = v0;
0x000040f4 addiu a0, zero, 3 | a0 = 3;
0x000040f8 jalr t9 | t9 ();
0x000040fc lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00004100 bnez v0, 0x43c0 | goto label_66;
| }
0x00004104 lw t9, -0x7bc8(gp) | t9 = sym.imp.blkid_probe_enable_partitions;
0x00004108 addiu a1, zero, 1 | a1 = 1;
0x0000410c move a0, s3 | a0 = s3;
0x00004110 jalr t9 | t9 ();
0x00004114 lw v0, 0xa0(sp) | v0 = *(var_a0h);
0x00004118 addiu v1, zero, 0x2000 | v1 = 0x2000;
0x0000411c andi v0, v0, 0xf000 | v0 &= 0xf000;
0x00004120 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != v1) {
0x00004124 bne v0, v1, 0x43d8 | goto label_69;
| }
| label_9:
0x00004128 lbu v0, 0x340(sp) | v0 = *(var_340h);
| label_10:
0x0000412c andi v0, v0, 0x40 | v0 &= 0x40;
0x00004130 lw t9, -0x7cd8(gp) | t9 = sym.imp.blkid_probe_set_partitions_flags;
| if (v0 == 0) {
0x00004134 beqz v0, 0x4738 | goto label_70;
| }
| label_22:
0x00004138 lw t9, -0x7bb0(gp) | t9 = sym.imp.blkid_probe_enable_superblocks;
0x0000413c addiu a1, zero, 1 | a1 = 1;
0x00004140 move a0, s3 | a0 = s3;
0x00004144 jalr t9 | t9 ();
0x00004148 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000414c lw t9, -0x7bd8(gp) | t9 = sym.imp.blkid_do_safeprobe;
0x00004150 move a0, s3 | a0 = s3;
0x00004154 jalr t9 | t9 ();
0x00004158 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x0000415c bltz v0, 0x420c | goto label_11;
| }
| label_19:
0x00004160 lw t9, -0x7b9c(gp) | t9 = sym.imp.blkid_probe_numof_values;
| if (v0 == 0) {
0x00004164 beqz v0, 0x4460 | goto label_71;
| }
| label_12:
0x00004168 sw zero, 0x2c(sp) | *(var_2ch) = 0;
| label_13:
0x0000416c lw v0, 0x54(sp) | v0 = *(var_54h);
0x00004170 lw v0, -0x1fec(v0) | v0 = *((v0 - 2043));
0x00004174 lw v0, 0x54(sp) | v0 = *(var_54h);
| if (v0 != 0) {
0x00004178 bnez v0, 0x4f28 | goto label_72;
| }
| label_35:
0x0000417c lw t9, -0x7dd4(gp) | t9 = sym.imp.close;
0x00004180 lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x00004184 jalr t9 | t9 ();
0x00004188 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x0000418c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00004190 beqz v0, 0x43d0 | goto label_73;
| }
| label_15:
0x00004194 lw v0, 0x3c(sp) | v0 = *(var_3ch);
0x00004198 lw v1, 0x38(sp) | v1 = *(var_38h);
0x0000419c addiu v0, v0, 1 | v0++;
0x000041a0 sw v0, 0x3c(sp) | *(var_3ch) = v0;
0x000041a4 bne v1, v0, 0x405c |
| } while (v1 != v0);
| label_8:
0x000041a8 lw t9, -0x7d4c(gp) | t9 = sym.imp.blkid_free_probe;
0x000041ac move a0, s3 | a0 = s3;
0x000041b0 jalr t9 | t9 ();
0x000041b4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000041b8 b 0x3cc0 | goto label_6;
| label_67:
0x000041bc lw t9, -0x7c80(gp) | t9 = sym.imp.blkid_probe_enable_topology;
0x000041c0 addiu a1, zero, 1 | a1 = 1;
0x000041c4 move a0, s3 | a0 = s3;
0x000041c8 jalr t9 | t9 ();
0x000041cc lw gp, 0x20(sp) | gp = *(var_20h);
0x000041d0 move a1, zero | a1 = 0;
0x000041d4 lw t9, -0x7bb0(gp) | t9 = sym.imp.blkid_probe_enable_superblocks;
0x000041d8 move a0, s3 | a0 = s3;
0x000041dc jalr t9 | t9 ();
0x000041e0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000041e4 move a1, zero | a1 = 0;
0x000041e8 lw t9, -0x7bc8(gp) | t9 = sym.imp.blkid_probe_enable_partitions;
0x000041ec move a0, s3 | a0 = s3;
0x000041f0 jalr t9 | t9 ();
0x000041f4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000041f8 lw t9, -0x7c78(gp) | t9 = sym.imp.blkid_do_fullprobe;
0x000041fc move a0, s3 | a0 = s3;
0x00004200 jalr t9 | t9 ();
0x00004204 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 >= 0) {
0x00004208 bgez v0, 0x465c | goto label_74;
| }
| label_11:
0x0000420c addiu v1, zero, -2 | v1 = -2;
0x00004210 lw v0, 0x128(sp) | v0 = *(var_128h);
| if (v0 != v1) {
0x00004214 bne v0, v1, 0x43c0 | goto label_66;
| }
0x00004218 andi v0, v0, 0x10 | v0 &= 0x10;
0x0000421c lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
| if (v0 == 0) {
0x00004220 beqz v0, 0x4674 | goto label_75;
| }
0x00004224 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00004228 lw s7, -0x7fd0(gp) | s7 = *((gp - 8180));
| /* str.VERSION */
0x0000422c addiu s6, v0, -0x4434 | s6 = v0 + -0x4434;
0x00004230 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00004234 lw fp, -0x7fd0(gp) | fp = *((gp - 8180));
0x00004238 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0000423c lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00004240 sw zero, 0x6c(sp) | *(var_6ch) = 0;
0x00004244 sw zero, 0x70(sp) | *(var_70h) = 0;
| /* str.USAGE */
0x00004248 addiu s7, s7, -0x3860 | s7 += -0x3860;
0x0000424c addiu s2, v0, 0x5564 | s2 = v0 + fcn.00005564;
| do {
| label_7:
0x00004250 lw t9, -0x7b7c(gp) | t9 = sym.imp.blkid_do_probe;
0x00004254 move a0, s3 | a0 = s3;
0x00004258 jalr t9 | t9 ();
0x0000425c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00004260 bnez v0, 0x4d10 | goto label_76;
| }
0x00004264 lw t9, -0x7b80(gp) | t9 = sym.imp.blkid_probe_lookup_value;
0x00004268 move a3, zero | a3 = 0;
0x0000426c addiu a2, sp, 0x74 | a2 = sp + 0x74;
0x00004270 move a1, s7 | a1 = s7;
0x00004274 move a0, s3 | a0 = s3;
0x00004278 sw zero, 0x74(sp) | *(var_74h) = 0;
0x0000427c sw zero, 0x78(sp) | *(var_78h) = 0;
0x00004280 sw zero, 0x7c(sp) | *(var_7ch) = 0;
0x00004284 jalr t9 | t9 ();
0x00004288 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000428c move a3, zero | a3 = 0;
0x00004290 addiu a2, sp, 0x78 | a2 = sp + 0x78;
0x00004294 lw t9, -0x7b80(gp) | t9 = sym.imp.blkid_probe_lookup_value;
| /* str.TYPE */
0x00004298 addiu a1, fp, -0x443c | a1 = fp + -0x443c;
0x0000429c move a0, s3 | a0 = s3;
0x000042a0 jalr t9 | t9 ();
0x000042a4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000042a8 move a0, s3 | a0 = s3;
0x000042ac move a3, zero | a3 = 0;
0x000042b0 lw t9, -0x7b80(gp) | t9 = sym.imp.blkid_probe_lookup_value;
0x000042b4 addiu a2, sp, 0x7c | a2 = sp + 0x7c;
0x000042b8 move a1, s6 | a1 = s6;
0x000042bc jalr t9 | t9 ();
0x000042c0 lw a0, 0x74(sp) | a0 = *(var_74h);
0x000042c4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000042c8 beqz a0, 0x4250 |
| } while (a0 == 0);
0x000042cc lw v0, 0x78(sp) | v0 = *(var_78h);
0x000042d0 lw t9, -0x7da8(gp) | t9 = sym.imp.blkid_encode_string;
| if (v0 == 0) {
0x000042d4 beqz v0, 0x4250 | goto label_7;
| }
0x000042d8 addiu s0, sp, 0x34c | s0 = sp + aav.0x0000034c;
0x000042dc addiu a2, zero, 0x100 | a2 = aav.0x00000100;
0x000042e0 move a1, s0 | a1 = s0;
0x000042e4 jalr t9 | t9 ();
0x000042e8 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x000042ec addiu s5, sp, 0x70 | s5 = sp + 0x70;
0x000042f0 addiu s1, sp, 0x6c | s1 = sp + 0x6c;
0x000042f4 addiu a3, v0, -0x4270 | a3 = v0 + -0x4270;
0x000042f8 move a2, s0 | a2 = s0;
0x000042fc move a1, s5 | a1 = s5;
0x00004300 move t9, s2 | t9 = s2;
0x00004304 move a0, s1 | a0 = s1;
0x00004308 bal 0x5564 | fcn_00005564 ();
0x0000430c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00004310 bnez v0, 0x47c4 | goto label_77;
| }
0x00004314 lw t9, -0x7da8(gp) | t9 = sym.imp.blkid_encode_string;
0x00004318 lw a0, 0x78(sp) | a0 = *(var_78h);
0x0000431c addiu a2, zero, 0x100 | a2 = aav.0x00000100;
0x00004320 move a1, s0 | a1 = s0;
0x00004324 jalr t9 | t9 ();
0x00004328 lw v0, 0x7c(sp) | v0 = *(var_7ch);
0x0000432c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00004330 beqz v0, 0x4bc8 | goto label_78;
| }
0x00004334 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x00004338 addiu a3, v0, -0x4270 | a3 = v0 + -0x4270;
| label_26:
0x0000433c move a2, s0 | a2 = s0;
0x00004340 move a1, s5 | a1 = s5;
0x00004344 move t9, s2 | t9 = s2;
0x00004348 move a0, s1 | a0 = s1;
0x0000434c bal 0x5564 | fcn_00005564 ();
0x00004350 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00004354 bnez v0, 0x47c4 | goto label_77;
| }
0x00004358 lw a0, 0x7c(sp) | a0 = *(var_7ch);
0x0000435c lw t9, -0x7da8(gp) | t9 = sym.imp.blkid_encode_string;
| if (a0 != 0) {
0x00004360 beqz a0, 0x4398 |
0x00004364 addiu a2, zero, 0x100 | a2 = aav.0x00000100;
0x00004368 move a1, s0 | a1 = s0;
0x0000436c jalr t9 | t9 ();
0x00004370 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004374 move a2, s0 | a2 = s0;
0x00004378 move a1, s5 | a1 = s5;
0x0000437c lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x00004380 move a0, s1 | a0 = s1;
0x00004384 move t9, s2 | t9 = s2;
0x00004388 addiu a3, a3, -0x3494 | a3 += -0x3494;
0x0000438c bal 0x5564 | fcn_00005564 ();
0x00004390 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00004394 bnez v0, 0x47c4 | goto label_77;
| }
| }
0x00004398 addiu s4, s4, 1 | s4++;
0x0000439c b 0x4250 | goto label_7;
| label_65:
0x000043a0 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x000043a4 lw t9, -0x7d54(gp) | t9 = sym.imp.warn;
0x000043a8 lw a1, 0x40(sp) | a1 = *(var_40h);
| /* str.error:__s */
0x000043ac addiu a0, a0, -0x386c | a0 += -0x386c;
0x000043b0 jalr t9 | t9 ();
0x000043b4 addiu s4, zero, 2 | s4 = 2;
0x000043b8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000043bc b 0x41a8 | goto label_8;
| label_66:
0x000043c0 lw t9, -0x7dd4(gp) | t9 = sym.imp.close;
0x000043c4 lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x000043c8 jalr t9 | t9 ();
0x000043cc lw gp, 0x20(sp) | gp = *(var_20h);
| label_73:
0x000043d0 addiu s4, zero, 2 | s4 = 2;
0x000043d4 b 0x41a8 | goto label_8;
| label_69:
0x000043d8 lw t9, -0x7d64(gp) | t9 = sym.imp.blkid_probe_get_size;
0x000043dc move a0, s3 | a0 = s3;
0x000043e0 jalr t9 | t9 ();
0x000043e4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v1 > 0) {
0x000043e8 bgtz v1, 0x4128 | goto label_9;
| }
0x000043ec lw v1, 0x5c(sp) | v1 = *(var_5ch);
| if (v1 != 0) {
0x000043f0 bnez v1, 0x4400 | goto label_79;
| }
0x000043f4 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x000043f8 lbu v0, 0x340(sp) | v0 = *(var_340h);
| if (v0 == 0) {
0x000043fc beqz v0, 0x412c | goto label_10;
| }
| label_79:
0x00004400 lw t9, -0x7c48(gp) | t9 = sym.imp.blkid_probe_is_wholedisk;
0x00004404 move a0, s3 | a0 = s3;
0x00004408 jalr t9 | t9 ();
0x0000440c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00004410 beqz v0, 0x4128 | goto label_9;
| }
0x00004414 lw t9, -0x7bb0(gp) | t9 = sym.imp.blkid_probe_enable_superblocks;
0x00004418 move a1, zero | a1 = 0;
0x0000441c move a0, s3 | a0 = s3;
0x00004420 jalr t9 | t9 ();
0x00004424 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004428 lw t9, -0x7c78(gp) | t9 = sym.imp.blkid_do_fullprobe;
0x0000442c move a0, s3 | a0 = s3;
0x00004430 jalr t9 | t9 ();
0x00004434 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00004438 bltz v0, 0x420c | goto label_11;
| }
0x0000443c lw t9, -0x7b80(gp) | t9 = sym.imp.blkid_probe_lookup_value;
0x00004440 lw a1, 0x58(sp) | a1 = *(var_58h);
0x00004444 move a3, zero | a3 = 0;
0x00004448 move a2, zero | a2 = 0;
0x0000444c move a0, s3 | a0 = s3;
0x00004450 jalr t9 | t9 ();
0x00004454 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00004458 bnez v0, 0x4128 | goto label_9;
| }
| label_68:
0x0000445c lw t9, -0x7b9c(gp) | t9 = sym.imp.blkid_probe_numof_values;
| label_71:
0x00004460 move a0, s3 | a0 = s3;
0x00004464 jalr t9 | t9 ();
0x00004468 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0000446c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00004470 beqz v0, 0x4168 | goto label_12;
| }
0x00004474 lw v0, 0x54(sp) | v0 = *(var_54h);
0x00004478 lw v0, -0x1fec(v0) | v0 = *((v0 - 2043));
0x0000447c lw s1, 0x128(sp) | s1 = *(var_128h);
| if (v0 == 0) {
0x00004480 bnez v0, 0x4490 |
0x00004484 andi v0, s1, 0x30 | v0 = s1 & 0x30;
0x00004488 lw v0, -0x7d34(gp) | v0 = *((gp - 8013));
| if (v0 != 0) {
0x0000448c bnez v0, 0x4e20 | goto label_80;
| }
| }
| label_33:
0x00004490 andi s1, s1, 4 | s1 &= 4;
0x00004494 lw v0, 0x2c(sp) | v0 = *(var_2ch);
| if (s1 != 0) {
0x00004498 bnez s1, 0x4cfc | goto label_81;
| }
0x0000449c addiu s5, zero, 1 | s5 = 1;
| if (v0 <= 0) {
0x000044a0 blez v0, 0x416c | goto label_13;
| }
0x000044a4 addiu s6, sp, 0x7c | s6 = sp + 0x7c;
0x000044a8 addiu fp, sp, 0x74 | fp = sp + 0x74;
0x000044ac addiu s7, sp, 0x78 | s7 = sp + 0x78;
0x000044b0 lw t9, -0x7cc0(gp) | t9 = sym.imp.blkid_probe_get_value;
| label_14:
0x000044b4 sw s6, 0x10(sp) | *(var_10h) = s6;
0x000044b8 move a3, fp | a3 = fp;
0x000044bc move a2, s7 | a2 = s7;
0x000044c0 move a1, s1 | a1 = s1;
0x000044c4 move a0, s3 | a0 = s3;
0x000044c8 jalr t9 | t9 ();
0x000044cc lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x000044d0 bnez v0, 0x4554 | goto label_82;
| }
0x000044d4 lw a1, 0x140(sp) | a1 = *(var_140h);
0x000044d8 lw s0, 0x78(sp) | s0 = *(var_78h);
| if (a1 == 0) {
0x000044dc beqz a1, 0x450c | goto label_83;
| }
0x000044e0 addiu s2, sp, 0x140 | s2 = sp + aav.0x00000140;
0x000044e4 b 0x44f8 |
| while (v0 != 0) {
0x000044e8 addiu s2, s2, 4 | s2 += 4;
0x000044ec lw a1, (s2) | a1 = *(s2);
0x000044f0 lw v0, 0x2c(sp) | v0 = *(var_2ch);
| if (a1 == 0) {
0x000044f4 beqz a1, 0x4558 | goto label_84;
| }
0x000044f8 lw t9, -0x7b68(gp) | t9 = sym.imp.strcmp;
0x000044fc move a0, s0 | a0 = s0;
0x00004500 jalr t9 | t9 ();
0x00004504 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004508 bnez v0, 0x44e8 |
| }
| label_83:
0x0000450c lw a3, 0x74(sp) | a3 = *(var_74h);
0x00004510 lw t9, -0x7d40(gp) | t9 = sym.imp.strnlen;
0x00004514 lw a1, 0x7c(sp) | a1 = *(var_7ch);
0x00004518 move a0, a3 | a0 = a3;
0x0000451c sw a3, 0x30(sp) | *(var_30h) = a3;
0x00004520 jalr t9 | t9 ();
0x00004524 lw a3, 0x30(sp) | a3 = *(var_30h);
0x00004528 lw a2, 0x40(sp) | a2 = *(var_40h);
0x0000452c lw a0, 0x44(sp) | a0 = *(var_44h);
0x00004530 lw t9, 0x50(sp) | t9 = *(var_50h);
0x00004534 addiu v1, s5, 1 | v1 = s5 + 1;
0x00004538 move a1, s5 | a1 = s5;
0x0000453c sw v0, 0x14(sp) | *(var_14h) = v0;
0x00004540 sw s0, 0x10(sp) | *(var_10h) = s0;
0x00004544 sw v0, 0x7c(sp) | *(var_7ch) = v0;
0x00004548 move s5, v1 | s5 = v1;
0x0000454c jalr t9 | t9 ();
0x00004550 lw gp, 0x20(sp) | gp = *(var_20h);
| label_82:
0x00004554 lw v0, 0x2c(sp) | v0 = *(var_2ch);
| label_84:
0x00004558 addiu s1, s1, 1 | s1++;
0x0000455c lw t9, -0x7cc0(gp) | t9 = sym.imp.blkid_probe_get_value;
| if (v0 != s1) {
0x00004560 bne v0, s1, 0x44b4 | goto label_14;
| }
0x00004564 lw v0, 0x54(sp) | v0 = *(var_54h);
0x00004568 lw v0, -0x1fec(v0) | v0 = *((v0 - 2043));
0x0000456c lw v0, 0x54(sp) | v0 = *(var_54h);
| if (v0 != 0) {
0x00004570 bnez v0, 0x4f10 | goto label_85;
| }
| label_34:
0x00004574 lw v0, 0x128(sp) | v0 = *(var_128h);
0x00004578 andi v0, v0, 0x32 | v0 &= 0x32;
0x0000457c lw t9, -0x7d00(gp) | t9 = sym.imp.putchar;
| if (v0 == 0) {
0x00004580 beqz v0, 0x4bd4 | goto label_86;
| }
| label_27:
0x00004584 lw t9, -0x7dd4(gp) | t9 = sym.imp.close;
0x00004588 lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x0000458c jalr t9 | t9 ();
0x00004590 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004594 b 0x4194 | goto label_15;
| label_54:
0x00004598 lw a1, 0x4c(sp) | a1 = *(var_4ch);
0x0000459c addiu a0, sp, 0x60 | a0 = sp + 0x60;
0x000045a0 jalr t9 | t9 ();
0x000045a4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 >= 0) {
0x000045a8 bgez v0, 0x3f4c | goto label_16;
| }
0x000045ac addiu s4, zero, 4 | s4 = 4;
0x000045b0 b 0x3cc0 | goto label_6;
| label_52:
0x000045b4 subu a0, s3, a0 | __asm ("subu a0, s3, a0");
0x000045b8 addiu a1, zero, 4 | a1 = 4;
0x000045bc jalr t9 | t9 ();
0x000045c0 sw v0, 0x28(sp) | *(var_28h) = v0;
0x000045c4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000045c8 move a0, v0 | a0 = v0;
| if (v0 == 0) {
0x000045cc beqz v0, 0x47ac | goto label_87;
| }
0x000045d0 lw a1, (s1) | a1 = *(s1);
0x000045d4 move a2, zero | a2 = 0;
0x000045d8 move v0, a1 | v0 = a1;
0x000045dc b 0x45f8 |
| while (v1 != 0) {
0x000045e0 sll v1, v0, 2 | v1 = v0 << 2;
0x000045e4 addiu a0, a0, 4 | a0 += 4;
0x000045e8 lwx v1, v1(s4) | __asm ("lwx v1, v1(s4)");
0x000045ec addiu v0, v0, 1 | v0++;
0x000045f0 sw v1, -4(a0) | *((a0 - 1)) = v1;
0x000045f4 addiu a2, zero, 1 | a2 = 1;
0x000045f8 subu a3, v0, a1 | __asm ("subu a3, v0, a1");
0x000045fc slt v1, v0, s3 | v1 = (v0 < s3) ? 1 : 0;
0x00004600 sw a3, 0x38(sp) | *(var_38h) = a3;
0x00004604 bnez v1, 0x45e0 |
| }
0x00004608 sw v0, (s1) | *(s1) = v0;
| if (a2 == 0) {
0x0000460c bnel a2, zero, 0x3f1c | goto label_17;
| }
0x00004610 lbu v0, 0x340(sp) | v0 = *(var_340h);
0x00004614 b 0x3f20 | goto label_18;
| label_74:
0x0000465c lbu v1, 0x340(sp) | v1 = *(var_340h);
0x00004660 andi v1, v1, 0x10 | v1 &= 0x10;
0x00004664 lw t9, -0x7dc4(gp) | t9 = sym.imp.blkid_probe_get_fd;
| if (v1 == 0) {
0x00004668 beqz v1, 0x4160 | goto label_19;
| }
0x0000466c b 0x40d8 | goto label_20;
0x00004670 nop |
| label_75:
0x00004674 lw t9, -0x7cdc(gp) | t9 = sym.imp.warnx;
0x00004678 lw a1, 0x40(sp) | a1 = *(var_40h);
| /* str._s:_ambivalent_result__probably_more_filesystems_on_the_device__use_wipefs_8__to_see_more_details_ */
0x0000467c addiu a0, a0, -0x3840 | a0 += -0x3840;
0x00004680 jalr t9 | t9 ();
0x00004684 lw gp, 0x20(sp) | gp = *(var_20h);
| label_25:
0x00004688 lw t9, -0x7dd4(gp) | t9 = sym.imp.close;
0x0000468c lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x00004690 addiu s4, zero, 8 | s4 = 8;
0x00004694 jalr t9 | t9 ();
0x00004698 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000469c b 0x41a8 | goto label_8;
| label_57:
0x000046a0 lw v1, 0x38(sp) | v1 = *(var_38h);
| if (a0 != 0) {
0x000046a4 bnez a0, 0x3fe4 | goto label_21;
| }
0x000046a8 andi v0, v0, 4 | v0 &= 4;
| label_60:
0x000046ac lw v0, 0x38(sp) | v0 = *(var_38h);
| if (v0 == 0) {
0x000046b0 beqz v0, 0x4c70 | goto label_88;
| }
0x000046b4 lw v0, 0x64(sp) | v0 = *(var_64h);
0x000046b8 move s0, zero | s0 = 0;
| if (v0 != 0) {
0x000046bc bnez v0, 0x46e8 | goto label_89;
| }
0x000046c0 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x000046c4 b 0x4f44 | goto label_90;
| do {
0x000046c8 lw v0, 0x28(sp) | v0 = *(var_28h);
0x000046cc sll a1, s0, 2 | a1 = s0 << 2;
0x000046d0 lw t9, -0x7b94(gp) | t9 = sym.imp.blkid_get_dev;
0x000046d4 lwx a1, a1(v0) | __asm ("lwx a1, a1(v0)");
0x000046d8 addiu a2, zero, 3 | a2 = 3;
0x000046dc jalr t9 | t9 ();
0x000046e0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000046e4 addiu s0, s0, 1 | s0++;
| label_89:
0x000046e8 lw v0, 0x38(sp) | v0 = *(var_38h);
0x000046ec lw a0, 0x60(sp) | a0 = *(var_60h);
0x000046f0 bne v0, s0, 0x46c8 |
| } while (v0 != s0);
0x000046f4 lw t9, -0x7bf8(gp) | t9 = sym.imp.blkid_find_dev_with_tag;
0x000046f8 lw a2, 0x68(sp) | a2 = *(var_68h);
0x000046fc lw a1, 0x64(sp) | a1 = *(var_64h);
0x00004700 jalr t9 | t9 ();
0x00004704 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00004708 beqz v0, 0x4c68 | goto label_61;
| }
0x0000470c lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00004710 lw a0, 0x44(sp) | a0 = *(var_44h);
0x00004714 addiu t9, t9, 0x5f3c | t9 += fcn.00005f3c;
0x00004718 move a1, v0 | a1 = v0;
0x0000471c bal 0x5f3c | fcn_00005f3c ();
0x00004720 move s4, zero | s4 = 0;
0x00004724 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004728 b 0x3cc0 | goto label_6;
| label_70:
0x00004738 addiu a1, zero, 4 | a1 = 4;
0x0000473c move a0, s3 | a0 = s3;
0x00004740 jalr t9 | t9 ();
0x00004744 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004748 b 0x4138 | goto label_22;
| label_64:
0x0000474c addiu a1, zero, 0x1ea | a1 = 0x1ea;
0x00004750 move a0, s3 | a0 = s3;
0x00004754 jalr t9 | t9 ();
0x00004758 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s0 != 0) {
0x0000475c bnez s0, 0x4c4c | goto label_91;
| }
| label_29:
0x00004760 lw v0, 0x34(sp) | v0 = *(var_34h);
0x00004764 lw t9, -0x7c94(gp) | t9 = sym.imp.blkid_probe_filter_superblocks_type;
| if (v0 == 0) {
0x00004768 beqz v0, 0x402c | goto label_23;
| }
0x0000476c lw a2, 0x34(sp) | a2 = *(var_34h);
0x00004770 lw a1, 0x3c(sp) | a1 = *(var_3ch);
0x00004774 move a0, s3 | a0 = s3;
0x00004778 jalr t9 | t9 ();
0x0000477c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00004780 beqz v0, 0x402c | goto label_23;
| }
0x00004784 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x00004788 lw a0, 0x64(sp) | a0 = *(var_64h);
0x0000478c addiu s4, zero, 2 | s4 = 2;
0x00004790 jalr t9 | t9 ();
0x00004794 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004798 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x0000479c lw a0, 0x68(sp) | a0 = *(var_68h);
0x000047a0 jalr t9 | t9 ();
0x000047a4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000047a8 b 0x3ce8 | goto label_24;
| label_87:
0x000047ac lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x000047b0 lw t9, -0x7c0c(gp) | t9 = sym.imp.err;
0x000047b4 addiu a2, zero, 4 | a2 = 4;
| /* str.cannot_allocate__zu_bytes */
0x000047b8 addiu a1, a1, -0x4458 | a1 += -0x4458;
0x000047bc addiu a0, zero, 4 | a0 = 4;
0x000047c0 jalr t9 | t9 ();
| label_77:
0x000047c4 lw a0, 0x6c(sp) | a0 = *(var_6ch);
| label_31:
0x000047c8 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x000047cc jalr t9 | t9 ();
0x000047d0 nop |
0x000047d4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000047d8 b 0x4688 | goto label_25;
| label_42:
0x00004b94 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x00004b98 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00004b9c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
0x00004ba0 lw a0, (v0) | a0 = *(v0);
0x00004ba4 lw v0, -0x7d94(gp) | v0 = *((gp - 8037));
| /* str.Try__s___help_for_more_information._n */
0x00004ba8 addiu a2, a2, -0x4148 | a2 += -0x4148;
0x00004bac addiu a1, zero, 1 | a1 = 1;
0x00004bb0 lw a3, (v0) | a3 = *(v0);
0x00004bb4 jalr t9 | t9 ();
0x00004bb8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004bbc lw t9, -0x7c98(gp) | t9 = sym.imp.exit;
0x00004bc0 addiu a0, zero, 1 | a0 = 1;
0x00004bc4 jalr t9 | t9 ();
| label_78:
0x00004bc8 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x00004bcc addiu a3, a3, -0x3494 | a3 += -0x3494;
0x00004bd0 b 0x433c | goto label_26;
| label_86:
0x00004bd4 addiu a0, zero, 0xa | a0 = 0xa;
0x00004bd8 jalr t9 | t9 ();
0x00004bdc lw gp, 0x20(sp) | gp = *(var_20h);
0x00004be0 b 0x4584 | goto label_27;
| label_55:
0x00004be4 lw t9, -0x7c08(gp) | t9 = sym.imp.blkid_gc_cache;
0x00004be8 lw a0, 0x60(sp) | a0 = *(var_60h);
0x00004bec move s4, zero | s4 = 0;
0x00004bf0 jalr t9 | t9 ();
0x00004bf4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004bf8 b 0x3cc0 | goto label_6;
| label_53:
0x00004bfc lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| if (s1 == 0) {
0x00004c00 beqz s1, 0x3f3c | goto label_28;
| }
0x00004c04 lw t9, -0x7b68(gp) | t9 = sym.imp.strcmp;
| /* str.LABEL */
0x00004c08 addiu a1, a1, -0x4414 | a1 += -0x4414;
0x00004c0c move a0, s1 | a0 = s1;
0x00004c10 jalr t9 | t9 ();
0x00004c14 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00004c18 beqz v0, 0x4c38 | goto label_92;
| }
0x00004c1c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00004c20 lw t9, -0x7b68(gp) | t9 = sym.imp.strcmp;
| /* str.UUID */
0x00004c24 addiu a1, a1, -0x441c | a1 += -0x441c;
0x00004c28 move a0, s1 | a0 = s1;
0x00004c2c jalr t9 | t9 ();
0x00004c30 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00004c34 bnez v0, 0x3f3c | goto label_28;
| }
| label_92:
0x00004c38 lbu v0, 0x340(sp) | v0 = *(var_340h);
0x00004c3c andi v0, v0, 0xfa | v0 &= 0xfa;
0x00004c40 ori v0, v0, 1 | v0 |= 1;
0x00004c44 sb v0, 0x340(sp) | *(var_340h) = v0;
0x00004c48 b 0x3f3c | goto label_28;
| label_91:
0x00004c4c lw t9, -0x7bb4(gp) | t9 = sym.imp.blkid_probe_filter_superblocks_usage;
0x00004c50 lw a1, 0x3c(sp) | a1 = *(var_3ch);
0x00004c54 move a2, s0 | a2 = s0;
0x00004c58 move a0, s3 | a0 = s3;
0x00004c5c jalr t9 | t9 ();
0x00004c60 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00004c64 beqz v0, 0x4760 | goto label_29;
| }
| label_61:
0x00004c68 addiu s4, zero, 2 | s4 = 2;
0x00004c6c b 0x3cc0 | goto label_6;
| label_88:
0x00004c70 lw s1, -0x7fd8(gp) | s1 = *((gp - 8182));
| if (v0 == 0) {
0x00004c74 beqz v0, 0x4d70 | goto label_93;
| }
0x00004c78 move s0, zero | s0 = 0;
0x00004c7c addiu s4, zero, 2 | s4 = 2;
0x00004c80 addiu s1, s1, 0x5f3c | s1 += fcn.00005f3c;
0x00004c84 lw v0, 0x28(sp) | v0 = *(var_28h);
| do {
0x00004c88 sll a1, s0, 2 | a1 = s0 << 2;
0x00004c8c lw t9, -0x7b94(gp) | t9 = sym.imp.blkid_get_dev;
0x00004c90 lwx a1, a1(v0) | __asm ("lwx a1, a1(v0)");
0x00004c94 lw a0, 0x60(sp) | a0 = *(var_60h);
0x00004c98 addiu a2, zero, 3 | a2 = 3;
0x00004c9c jalr t9 | t9 ();
0x00004ca0 move s3, v0 | s3 = v0;
0x00004ca4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00004ca8 beqz v0, 0x4ce4 |
0x00004cac lw a1, 0x64(sp) | a1 = *(var_64h);
0x00004cb0 lw t9, -0x7b58(gp) | t9 = sym.imp.blkid_dev_has_tag;
| if (a1 != 0) {
0x00004cb4 beqz a1, 0x4ccc |
0x00004cb8 lw a2, 0x68(sp) | a2 = *(var_68h);
0x00004cbc move a0, v0 | a0 = v0;
0x00004cc0 jalr t9 | t9 ();
0x00004cc4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00004cc8 beqz v0, 0x4ce4 | goto label_94;
| }
| }
0x00004ccc lw a0, 0x44(sp) | a0 = *(var_44h);
0x00004cd0 move t9, s1 | t9 = s1;
0x00004cd4 move a1, s3 | a1 = s3;
0x00004cd8 bal 0x5f3c | fcn_00005f3c ();
0x00004cdc lw gp, 0x20(sp) | gp = *(var_20h);
0x00004ce0 move s4, zero | s4 = 0;
| }
| label_94:
0x00004ce4 lw v0, 0x38(sp) | v0 = *(var_38h);
0x00004ce8 addiu s0, s0, 1 | s0++;
0x00004cec lw v0, 0x28(sp) | v0 = *(var_28h);
0x00004cf0 bne v0, s0, 0x4c88 |
| } while (v0 != s0);
0x00004cf4 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x00004cf8 b 0x3cc4 | goto label_30;
| label_81:
0x00004cfc lw t9, -0x7c70(gp) | t9 = sym.imp.puts;
0x00004d00 lw a0, 0x40(sp) | a0 = *(var_40h);
0x00004d04 jalr t9 | t9 ();
0x00004d08 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004d0c b 0x4584 | goto label_27;
| label_76:
0x00004d10 slti s4, s4, 2 | s4 = (s4 < 2) ? 1 : 0;
0x00004d14 lw a0, 0x6c(sp) | a0 = *(var_6ch);
| if (s4 != 0) {
0x00004d18 bnez s4, 0x47c8 | goto label_31;
| }
0x00004d1c lw v0, 0x70(sp) | v0 = *(var_70h);
0x00004d20 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00004d24 addu a0, a0, v0 | a0 += v0;
0x00004d28 lw t9, -0x7d3c(gp) | t9 = sym.strtos32_or_err;
0x00004d2c sb zero, -1(a0) | *((a0 - 1)) = 0;
0x00004d30 lw a2, 0x6c(sp) | a2 = *(var_6ch);
0x00004d34 addiu a0, zero, 1 | a0 = 1;
| /* str.ID_FS_AMBIVALENT_s_n */
0x00004d38 addiu a1, a1, -0x3858 | a1 += -0x3858;
0x00004d3c jalr t9 | t9 ();
0x00004d40 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004d44 lw a0, 0x6c(sp) | a0 = *(var_6ch);
0x00004d48 b 0x47c8 | goto label_31;
| label_93:
0x00004d70 lw t9, -0x7dd0(gp) | t9 = sym.imp.blkid_probe_all;
0x00004d74 lw a0, 0x60(sp) | a0 = *(var_60h);
0x00004d78 addiu s4, zero, 2 | s4 = 2;
0x00004d7c jalr t9 | t9 ();
0x00004d80 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004d84 lw a0, 0x60(sp) | a0 = *(var_60h);
0x00004d88 lw t9, -0x7bf4(gp) | t9 = sym.imp.blkid_dev_iterate_begin;
0x00004d8c addiu s6, sp, 0x7c | s6 = sp + 0x7c;
0x00004d90 jalr t9 | t9 ();
0x00004d94 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004d98 lw a2, 0x68(sp) | a2 = *(var_68h);
0x00004d9c lw a1, 0x64(sp) | a1 = *(var_64h);
0x00004da0 lw t9, -0x7c24(gp) | t9 = sym.imp.blkid_dev_set_search;
0x00004da4 move a0, v0 | a0 = v0;
0x00004da8 move s0, v0 | s0 = v0;
0x00004dac jalr t9 | t9 ();
0x00004db0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004db4 lw s1, -0x7fd8(gp) | s1 = *((gp - 8182));
0x00004db8 addiu s1, s1, 0x5f3c | s1 += fcn.00005f3c;
| do {
| label_32:
0x00004dbc lw t9, -0x7c88(gp) | t9 = sym.imp.blkid_dev_next;
0x00004dc0 move a1, s6 | a1 = s6;
0x00004dc4 move a0, s0 | a0 = s0;
0x00004dc8 jalr t9 | t9 ();
0x00004dcc lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00004dd0 bnez v0, 0x4e0c | goto label_95;
| }
0x00004dd4 lw t9, -0x7c8c(gp) | t9 = sym.imp.blkid_verify;
0x00004dd8 lw a1, 0x7c(sp) | a1 = *(var_7ch);
0x00004ddc lw a0, 0x60(sp) | a0 = *(var_60h);
0x00004de0 jalr t9 | t9 ();
0x00004de4 sw v0, 0x7c(sp) | *(var_7ch) = v0;
0x00004de8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004dec beqz v0, 0x4dbc |
| } while (v0 == 0);
0x00004df0 lw a0, 0x44(sp) | a0 = *(var_44h);
0x00004df4 move t9, s1 | t9 = s1;
0x00004df8 move a1, v0 | a1 = v0;
0x00004dfc bal 0x5f3c | fcn_00005f3c ();
0x00004e00 move s4, zero | s4 = 0;
0x00004e04 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004e08 b 0x4dbc | goto label_32;
| label_95:
0x00004e0c lw t9, -0x7d14(gp) | t9 = sym.imp.blkid_dev_iterate_end;
0x00004e10 move a0, s0 | a0 = s0;
0x00004e14 jalr t9 | t9 ();
0x00004e18 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004e1c b 0x3cc0 | goto label_6;
| label_80:
0x00004e20 lw t9, -0x7d68(gp) | t9 = sym.imp.fputc;
0x00004e24 addiu a0, zero, 0xa | a0 = 0xa;
0x00004e28 lw a1, (v0) | a1 = *(v0);
0x00004e2c jalr t9 | t9 ();
0x00004e30 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004e34 lw s1, 0x128(sp) | s1 = *(var_128h);
0x00004e38 b 0x4490 | goto label_33;
| label_43:
0x00004e3c lw t9, -0x7d68(gp) | t9 = sym.imp.fputc;
0x00004e40 lw a1, (s0) | a1 = *(s0);
0x00004e44 addiu a0, zero, 0xa | a0 = 0xa;
0x00004e48 jalr t9 | t9 ();
0x00004e4c lw gp, 0x20(sp) | gp = *(var_20h);
0x00004e50 lw t9, -0x7c98(gp) | t9 = sym.imp.exit;
0x00004e54 addiu a0, zero, 4 | a0 = 4;
0x00004e58 jalr t9 | t9 ();
| label_46:
0x00004e5c addiu fp, zero, -2 | fp = -2;
| label_44:
0x00004e60 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x00004e64 lw t9, -0x7cdc(gp) | t9 = sym.imp.warnx;
| /* str.unknown_keyword_in__u__list__argument:__s */
0x00004e68 addiu a0, a0, -0x41ec | a0 += -0x41ec;
0x00004e6c move a1, fp | a1 = fp;
0x00004e70 jalr t9 | t9 ();
0x00004e74 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004e78 lw t9, -0x7c98(gp) | t9 = sym.imp.exit;
0x00004e7c addiu a0, zero, 4 | a0 = 4;
0x00004e80 jalr t9 | t9 ();
0x00004e84 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x00004e88 lw t9, -0x7cdc(gp) | t9 = sym.imp.warnx;
| /* str.Too_many_tags_specified */
0x00004e8c addiu a0, a0, -0x4160 | a0 += -0x4160;
0x00004e90 jalr t9 | t9 ();
0x00004e94 nop |
0x00004e98 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004e9c addiu a1, zero, 1 | a1 = 1;
0x00004ea0 lw v0, -0x7d94(gp) | v0 = *((gp - 8037));
0x00004ea4 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00004ea8 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
0x00004eac lw a3, (v0) | a3 = *(v0);
0x00004eb0 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| /* str.Try__s___help_for_more_information._n */
0x00004eb4 addiu a2, a2, -0x4148 | a2 += -0x4148;
0x00004eb8 lw a0, (v0) | a0 = *(v0);
0x00004ebc jalr t9 | t9 ();
0x00004ec0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004ec4 lw t9, -0x7c98(gp) | t9 = sym.imp.exit;
0x00004ec8 addiu a0, zero, 4 | a0 = 4;
0x00004ecc jalr t9 | t9 ();
0x00004ed0 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x00004ed4 lw t9, -0x7cdc(gp) | t9 = sym.imp.warnx;
| /* str.error:__u__list__argument_is_empty */
0x00004ed8 addiu a0, a0, -0x4234 | a0 += -0x4234;
0x00004edc jalr t9 | t9 ();
0x00004ee0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004ee4 lw t9, -0x7c98(gp) | t9 = sym.imp.exit;
0x00004ee8 addiu a0, zero, 4 | a0 = 4;
0x00004eec jalr t9 | t9 ();
| label_51:
0x00004ef0 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00004ef4 jalr t9 | t9 ();
0x00004ef8 nop |
| label_58:
0x00004efc lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00004f00 lw t9, -0x7d58(gp) | t9 = sym.imp.errx;
| /* str.The_low_level_probing_mode_does_not_support_list_output_format */
0x00004f04 addiu a1, a1, -0x38e0 | a1 += -0x38e0;
0x00004f08 addiu a0, zero, 4 | a0 = 4;
0x00004f0c jalr t9 | t9 ();
| label_85:
0x00004f10 sw zero, -0x1fec(v0) | *((v0 - 2043)) = 0;
0x00004f14 b 0x4574 | goto label_34;
| label_72:
0x00004f28 sw zero, -0x1fec(v0) | *((v0 - 2043)) = 0;
0x00004f2c b 0x417c | goto label_35;
| label_62:
0x00004f30 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00004f34 lw t9, -0x7d58(gp) | t9 = sym.imp.errx;
| /* str.The_low_level_probing_mode_requires_a_device */
0x00004f38 addiu a1, a1, -0x389c | a1 += -0x389c;
0x00004f3c addiu a0, zero, 4 | a0 = 4;
0x00004f40 jalr t9 | t9 ();
| label_90:
0x00004f44 lw t9, -0x7d58(gp) | t9 = sym.imp.errx;
0x00004f48 addiu a1, a1, -0x37dc | a1 += -0x37dc;
0x00004f4c addiu a0, zero, 4 | a0 = 4;
0x00004f50 jalr t9 | t9 ();
0x00004f54 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00004f58 lw t9, -0x7d58(gp) | t9 = sym.imp.errx;
0x00004f5c move a2, fp | a2 = fp;
| /* str.unsupported_output_format__s */
0x00004f60 addiu a1, a1, -0x4198 | a1 += -0x4198;
0x00004f64 addiu a0, zero, 4 | a0 = 4;
0x00004f68 jalr t9 | t9 ();
0x00004f6c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xacf8 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_deinit_iterator () | void loopcxt_deinit_iterator () {
0x0000acf8 lui gp, 3 |
0x0000acfc addiu gp, gp, -0x4ca8 |
0x0000ad00 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x0000ad04 beqz a0, 0xae18 | goto label_0;
| }
0x0000ad08 nop |
0x0000ad0c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000ad10 addiu sp, sp, -0x30 |
0x0000ad14 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000ad18 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000ad1c andi v0, v0, 8 | v0 &= 8;
0x0000ad20 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0000ad24 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0000ad28 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0000ad2c sw s2, 0x28(sp) | *(var_28h) = s2;
0x0000ad30 move s0, a0 | s0 = a0;
0x0000ad34 addiu s1, a0, 0x190 | s1 = a0 + 0x190;
0x0000ad38 bnez v0, 0xadac |
| while (1) {
0x0000ad3c lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x0000ad40 lw a0, 0x19c(s0) | a0 = *(s0);
0x0000ad44 jalr t9 | t9 ();
0x0000ad48 lw a0, 0x190(s0) | a0 = *((s0 + 100));
0x0000ad4c lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 != 0) {
0x0000ad50 beqz a0, 0xad64 |
0x0000ad54 lw t9, -0x7d78(gp) | t9 = sym.imp.fclose;
0x0000ad58 jalr t9 | t9 ();
0x0000ad5c nop |
0x0000ad60 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0000ad64 lw a0, 0x194(s0) | a0 = *(s0);
0x0000ad68 lw t9, -0x7dd8(gp) | t9 = sym.imp.closedir;
| if (a0 != 0) {
0x0000ad6c beqz a0, 0xad7c |
0x0000ad70 jalr t9 | t9 ();
0x0000ad74 nop |
0x0000ad78 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0000ad7c lw t9, -0x7cf0(gp) | t9 = sym.imp.memset;
0x0000ad80 move a0, s1 | a0 = s1;
0x0000ad84 addiu a2, zero, 0x24 | a2 = 0x24;
0x0000ad88 move a1, zero | a1 = 0;
0x0000ad8c jalr t9 | t9 ();
0x0000ad90 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000ad94 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000ad98 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000ad9c lw s0, 0x20(sp) | s0 = *(var_20h);
0x0000ada0 move v0, zero | v0 = 0;
0x0000ada4 addiu sp, sp, 0x30 |
0x0000ada8 jr ra | return v0;
0x0000adac lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000adb0 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000adb4 lw s2, (v0) | s2 = *(v0);
0x0000adb8 jalr t9 | t9 ();
0x0000adbc lw gp, 0x18(sp) | gp = *(var_18h);
0x0000adc0 move a3, v0 | a3 = v0;
0x0000adc4 addiu a1, zero, 1 | a1 = 1;
0x0000adc8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000adcc lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* str.ITER */
0x0000add0 addiu v0, v0, -0x3440 | v0 += -0x3440;
0x0000add4 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000add8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000addc lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000ade0 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000ade4 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000ade8 move a0, s2 | a0 = s2;
0x0000adec sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000adf0 jalr t9 | t9 ();
0x0000adf4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000adf8 move a0, s1 | a0 = s1;
0x0000adfc lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000ae00 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000ae04 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.de_initialize */
0x0000ae08 addiu a1, a1, -0x32ec | a1 += -0x32ec;
0x0000ae0c bal 0x9b48 | fcn_00009b48 ();
0x0000ae10 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ae14 b 0xad3c |
| }
| label_0:
0x0000ae18 addiu v0, zero, -0x16 | v0 = -0x16;
0x0000ae1c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xae20 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_deinit () | void loopcxt_deinit () {
0x0000ae20 lui gp, 3 |
0x0000ae24 addiu gp, gp, -0x4dd0 |
0x0000ae28 addu gp, gp, t9 | gp += t9;
0x0000ae2c addiu sp, sp, -0x38 |
0x0000ae30 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x0000ae34 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000ae38 sw s0, 0x24(sp) | *(var_24h) = s0;
0x0000ae3c sw ra, 0x34(sp) | *(var_34h) = ra;
0x0000ae40 sw s3, 0x30(sp) | *(var_30h) = s3;
0x0000ae44 sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x0000ae48 sw s1, 0x28(sp) | *(var_28h) = s1;
0x0000ae4c move s0, a0 | s0 = a0;
0x0000ae50 jalr t9 | t9 ();
0x0000ae54 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s0 == 0) {
0x0000ae58 beqz s0, 0xaeb0 | goto label_0;
| }
0x0000ae5c move s1, v0 | s1 = v0;
0x0000ae60 lw s2, (v0) | s2 = *(v0);
0x0000ae64 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000ae68 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000ae6c andi v0, v0, 4 | v0 &= 4;
0x0000ae70 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000ae74 bnez v0, 0xaecc |
| while (1) {
0x0000ae78 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x0000ae7c lw a0, 0x80(s0) | a0 = *((s0 + 32));
0x0000ae80 jalr t9 | t9 ();
0x0000ae84 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ae88 move a1, zero | a1 = 0;
0x0000ae8c move a0, s0 | a0 = s0;
0x0000ae90 lw t9, -0x7f5c(gp) | t9 = sym.loopcxt_set_device;
0x0000ae94 sw zero, 0x80(s0) | *((s0 + 32)) = 0;
0x0000ae98 bal 0xa1fc | sym_loopcxt_set_device ();
0x0000ae9c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000aea0 lw t9, -0x7f54(gp) | t9 = sym.loopcxt_deinit_iterator;
0x0000aea4 move a0, s0 | a0 = s0;
0x0000aea8 bal 0xacf8 | sym_loopcxt_deinit_iterator ();
0x0000aeac sw s2, (s1) | *(s1) = s2;
| label_0:
0x0000aeb0 lw ra, 0x34(sp) | ra = *(var_34h);
0x0000aeb4 lw s3, 0x30(sp) | s3 = *(var_30h);
0x0000aeb8 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x0000aebc lw s1, 0x28(sp) | s1 = *(var_28h);
0x0000aec0 lw s0, 0x24(sp) | s0 = *(var_24h);
0x0000aec4 addiu sp, sp, 0x38 |
0x0000aec8 jr ra | return v0;
0x0000aecc lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000aed0 lw s3, (v0) | s3 = *(v0);
0x0000aed4 jalr t9 | t9 ();
0x0000aed8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000aedc move a3, v0 | a3 = v0;
0x0000aee0 addiu a1, zero, 1 | a1 = 1;
0x0000aee4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000aee8 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000aeec addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000aef0 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000aef4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000aef8 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000aefc addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000af00 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000af04 move a0, s3 | a0 = s3;
0x0000af08 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000af0c jalr t9 | t9 ();
0x0000af10 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000af14 move a0, s0 | a0 = s0;
0x0000af18 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000af1c lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000af20 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.de_initialize */
0x0000af24 addiu a1, a1, -0x32ec | a1 += -0x32ec;
0x0000af28 bal 0x9b48 | fcn_00009b48 ();
0x0000af2c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000af30 b 0xae78 |
| }
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xacf8 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_deinit_iterator () | void loopcxt_deinit_iterator () {
0x0000acf8 lui gp, 3 |
0x0000acfc addiu gp, gp, -0x4ca8 |
0x0000ad00 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x0000ad04 beqz a0, 0xae18 | goto label_0;
| }
0x0000ad08 nop |
0x0000ad0c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000ad10 addiu sp, sp, -0x30 |
0x0000ad14 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000ad18 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000ad1c andi v0, v0, 8 | v0 &= 8;
0x0000ad20 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0000ad24 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0000ad28 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0000ad2c sw s2, 0x28(sp) | *(var_28h) = s2;
0x0000ad30 move s0, a0 | s0 = a0;
0x0000ad34 addiu s1, a0, 0x190 | s1 = a0 + 0x190;
0x0000ad38 bnez v0, 0xadac |
| while (1) {
0x0000ad3c lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x0000ad40 lw a0, 0x19c(s0) | a0 = *(s0);
0x0000ad44 jalr t9 | t9 ();
0x0000ad48 lw a0, 0x190(s0) | a0 = *((s0 + 100));
0x0000ad4c lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 != 0) {
0x0000ad50 beqz a0, 0xad64 |
0x0000ad54 lw t9, -0x7d78(gp) | t9 = sym.imp.fclose;
0x0000ad58 jalr t9 | t9 ();
0x0000ad5c nop |
0x0000ad60 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0000ad64 lw a0, 0x194(s0) | a0 = *(s0);
0x0000ad68 lw t9, -0x7dd8(gp) | t9 = sym.imp.closedir;
| if (a0 != 0) {
0x0000ad6c beqz a0, 0xad7c |
0x0000ad70 jalr t9 | t9 ();
0x0000ad74 nop |
0x0000ad78 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0000ad7c lw t9, -0x7cf0(gp) | t9 = sym.imp.memset;
0x0000ad80 move a0, s1 | a0 = s1;
0x0000ad84 addiu a2, zero, 0x24 | a2 = 0x24;
0x0000ad88 move a1, zero | a1 = 0;
0x0000ad8c jalr t9 | t9 ();
0x0000ad90 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000ad94 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000ad98 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000ad9c lw s0, 0x20(sp) | s0 = *(var_20h);
0x0000ada0 move v0, zero | v0 = 0;
0x0000ada4 addiu sp, sp, 0x30 |
0x0000ada8 jr ra | return v0;
0x0000adac lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000adb0 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000adb4 lw s2, (v0) | s2 = *(v0);
0x0000adb8 jalr t9 | t9 ();
0x0000adbc lw gp, 0x18(sp) | gp = *(var_18h);
0x0000adc0 move a3, v0 | a3 = v0;
0x0000adc4 addiu a1, zero, 1 | a1 = 1;
0x0000adc8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000adcc lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* str.ITER */
0x0000add0 addiu v0, v0, -0x3440 | v0 += -0x3440;
0x0000add4 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000add8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000addc lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000ade0 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000ade4 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000ade8 move a0, s2 | a0 = s2;
0x0000adec sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000adf0 jalr t9 | t9 ();
0x0000adf4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000adf8 move a0, s1 | a0 = s1;
0x0000adfc lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000ae00 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000ae04 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.de_initialize */
0x0000ae08 addiu a1, a1, -0x32ec | a1 += -0x32ec;
0x0000ae0c bal 0x9b48 | fcn_00009b48 ();
0x0000ae10 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ae14 b 0xad3c |
| }
| label_0:
0x0000ae18 addiu v0, zero, -0x16 | v0 = -0x16;
0x0000ae1c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xebc4 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_delete_device () | void loopcxt_delete_device () {
0x0000ebc4 lui gp, 2 |
0x0000ebc8 addiu gp, gp, 0x748c |
0x0000ebcc addu gp, gp, t9 | gp += t9;
0x0000ebd0 addiu sp, sp, -0x30 |
0x0000ebd4 lw t9, -0x7f50(gp) | t9 = sym.loopcxt_get_fd;
0x0000ebd8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000ebdc sw s0, 0x24(sp) | *(var_24h) = s0;
0x0000ebe0 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0000ebe4 sw s1, 0x28(sp) | *(var_28h) = s1;
0x0000ebe8 move s0, a0 | s0 = a0;
0x0000ebec bal 0xa9f0 | sym_loopcxt_get_fd ();
0x0000ebf0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x0000ebf4 bltz v0, 0xed58 | goto label_1;
| }
0x0000ebf8 lw t9, -0x7c20(gp) | t9 = sym.imp.ioctl;
0x0000ebfc move a2, zero | a2 = 0;
0x0000ec00 addiu a1, zero, 0x4c01 | a1 = 0x4c01;
0x0000ec04 move a0, v0 | a0 = v0;
0x0000ec08 jalr t9 | t9 ();
0x0000ec0c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ec10 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x0000ec14 lw v1, -0x1af0(v1) | v1 = *((v1 - 1724));
0x0000ec18 andi v1, v1, 4 | v1 &= 4;
| if (v0 >= 0) {
0x0000ec1c bltz v0, 0xecbc |
0x0000ec20 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v1 == 0) {
0x0000ec24 bnez v1, 0xec40 |
| label_0:
0x0000ec28 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000ec2c lw s1, 0x28(sp) | s1 = *(var_28h);
0x0000ec30 lw s0, 0x24(sp) | s0 = *(var_24h);
0x0000ec34 move v0, v1 | v0 = v1;
0x0000ec38 addiu sp, sp, 0x30 |
0x0000ec3c jr ra | return v1;
| }
0x0000ec40 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000ec44 lw s1, (v0) | s1 = *(v0);
0x0000ec48 jalr t9 | t9 ();
0x0000ec4c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ec50 move a3, v0 | a3 = v0;
0x0000ec54 move a0, s1 | a0 = s1;
0x0000ec58 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000ec5c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000ec60 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000ec64 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000ec68 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000ec6c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000ec70 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000ec74 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000ec78 addiu a1, zero, 1 | a1 = 1;
0x0000ec7c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000ec80 jalr t9 | t9 ();
0x0000ec84 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ec88 move a0, s0 | a0 = s0;
0x0000ec8c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000ec90 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000ec94 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.device_removed */
0x0000ec98 addiu a1, a1, -0x2ccc | a1 += -0x2ccc;
0x0000ec9c bal 0x9b48 | fcn_00009b48 ();
0x0000eca0 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000eca4 move v1, zero | v1 = 0;
0x0000eca8 lw s1, 0x28(sp) | s1 = *(var_28h);
0x0000ecac lw s0, 0x24(sp) | s0 = *(var_24h);
0x0000ecb0 move v0, v1 | v0 = v1;
0x0000ecb4 addiu sp, sp, 0x30 |
0x0000ecb8 jr ra | return v1;
| }
0x0000ecbc lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000ecc0 bnez v1, 0xecf0 |
| while (1) {
0x0000ecc4 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x0000ecc8 jalr t9 | t9 ();
0x0000eccc nop |
0x0000ecd0 lw v1, (v0) | v1 = *(v0);
0x0000ecd4 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000ecd8 negu v1, v1 | __asm ("negu v1, v1");
0x0000ecdc lw s1, 0x28(sp) | s1 = *(var_28h);
0x0000ece0 lw s0, 0x24(sp) | s0 = *(var_24h);
0x0000ece4 move v0, v1 | v0 = v1;
0x0000ece8 addiu sp, sp, 0x30 |
0x0000ecec jr ra | return v1;
0x0000ecf0 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000ecf4 lw s1, (v0) | s1 = *(v0);
0x0000ecf8 jalr t9 | t9 ();
0x0000ecfc lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ed00 move a3, v0 | a3 = v0;
0x0000ed04 addiu a1, zero, 1 | a1 = 1;
0x0000ed08 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000ed0c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000ed10 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000ed14 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000ed18 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000ed1c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000ed20 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000ed24 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000ed28 move a0, s1 | a0 = s1;
0x0000ed2c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000ed30 jalr t9 | t9 ();
0x0000ed34 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ed38 move a0, s0 | a0 = s0;
0x0000ed3c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000ed40 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000ed44 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.LOOP_CLR_FD_failed:__m */
0x0000ed48 addiu a1, a1, -0x2ce4 | a1 += -0x2ce4;
0x0000ed4c bal 0x9b48 | fcn_00009b48 ();
0x0000ed50 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ed54 b 0xecc4 |
| }
| label_1:
0x0000ed58 addiu v1, zero, -0x16 | v1 = -0x16;
0x0000ed5c b 0xec28 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xf8b4 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_find_by_backing_file () | void loopcxt_find_by_backing_file () {
| label_10:
0x0000f8b4 lui gp, 2 |
0x0000f8b8 addiu gp, gp, 0x679c |
0x0000f8bc addu gp, gp, t9 | gp += t9;
0x0000f8c0 lw v0, -0x7bc0(gp) | v0 = *((gp - 7920));
0x0000f8c4 addiu sp, sp, -0x108 |
0x0000f8c8 sw v0, 0x30(sp) | *(var_30h) = v0;
0x0000f8cc lw v0, (v0) | v0 = *(v0);
0x0000f8d0 sw gp, 0x28(sp) | *(var_28h) = gp;
0x0000f8d4 sw s7, 0xfc(sp) | *(var_fch) = s7;
0x0000f8d8 sw s5, 0xf4(sp) | *(var_f4h) = s5;
0x0000f8dc sw s4, 0xf0(sp) | *(var_f0h) = s4;
0x0000f8e0 sw ra, 0x104(sp) | *(var_104h) = ra;
0x0000f8e4 sw fp, 0x100(sp) | *(var_100h) = fp;
0x0000f8e8 sw s6, 0xf8(sp) | *(var_f8h) = s6;
0x0000f8ec sw s3, 0xec(sp) | *(var_ech) = s3;
0x0000f8f0 sw s2, 0xe8(sp) | *(var_e8h) = s2;
0x0000f8f4 sw s1, 0xe4(sp) | *(var_e4h) = s1;
0x0000f8f8 sw s0, 0xe0(sp) | *(var_e0h) = s0;
0x0000f8fc lw s4, 0x118(sp) | s4 = *(arg_118h);
0x0000f900 lw s5, 0x11c(sp) | s5 = *(arg_11ch);
0x0000f904 lw s7, 0x120(sp) | s7 = *(arg_120h);
0x0000f908 sw v0, 0xdc(sp) | *(var_dch) = v0;
0x0000f90c lw t9, -0x7db4(gp) | t9 = sym.imp.__xstat64;
| if (a1 == 0) {
0x0000f910 beqz a1, 0xfa08 | goto label_15;
| }
0x0000f914 addiu v0, sp, 0x38 | v0 = sp + 0x38;
0x0000f918 move s0, a0 | s0 = a0;
0x0000f91c move s2, a2 | s2 = a2;
0x0000f920 addiu a0, zero, 3 | a0 = 3;
0x0000f924 move a2, v0 | a2 = v0;
0x0000f928 sw v0, 0x34(sp) | *(var_34h_2) = v0;
0x0000f92c move s6, a1 | s6 = a1;
0x0000f930 move s3, a3 | s3 = a3;
0x0000f934 jalr t9 | t9 ();
0x0000f938 lw gp, 0x28(sp) | gp = *(var_28h);
0x0000f93c addiu a1, zero, 2 | a1 = 2;
0x0000f940 move a0, s0 | a0 = s0;
0x0000f944 lw t9, -0x7f08(gp) | t9 = sym.loopcxt_init_iterator;
0x0000f948 move s1, v0 | s1 = v0;
0x0000f94c bal 0xab48 | sym_loopcxt_init_iterator ();
0x0000f950 move fp, v0 | fp = v0;
0x0000f954 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x0000f958 bnez v0, 0xf9c4 | goto label_16;
| }
0x0000f95c lw v0, 0x34(sp) | v0 = *(var_34h_2);
| if (s1 == 0) {
0x0000f960 movn v0, zero, s1 | v0 = 0;
| }
0x0000f964 move s1, v0 | s1 = v0;
0x0000f968 b 0xf99c |
| while (v0 == 0) {
0x0000f96c lw t9, -0x7ef4(gp) | t9 = sym.loopcxt_is_used;
0x0000f970 sw s7, 0x20(sp) | *(var_20h_4) = s7;
0x0000f974 sw s4, 0x18(sp) | *(var_18h_3) = s4;
0x0000f978 sw s5, 0x1c(sp) | *(var_1ch_3) = s5;
0x0000f97c sw s2, 0x10(sp) | *(var_138h) = s2;
0x0000f980 sw s3, 0x14(sp) | *(var_13ch) = s3;
0x0000f984 move a2, s6 | a2 = s6;
0x0000f988 move a1, s1 | a1 = s1;
0x0000f98c move a0, s0 | a0 = s0;
0x0000f990 bal 0xcc80 | sym_loopcxt_is_used ();
0x0000f994 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x0000f998 bnez v0, 0xf9b4 | goto label_17;
| }
0x0000f99c lw t9, -0x7f04(gp) | t9 = sym.loopcxt_next;
0x0000f9a0 move a0, s0 | a0 = s0;
0x0000f9a4 bal 0xbcdc | sym_loopcxt_next ();
0x0000f9a8 move fp, v0 | fp = v0;
0x0000f9ac lw gp, 0x28(sp) | gp = *(var_28h);
0x0000f9b0 beqz v0, 0xf96c |
| }
| label_17:
0x0000f9b4 lw t9, -0x7f54(gp) | t9 = sym.loopcxt_deinit_iterator;
0x0000f9b8 move a0, s0 | a0 = s0;
0x0000f9bc bal 0xacf8 | sym_loopcxt_deinit_iterator ();
0x0000f9c0 lw gp, 0x28(sp) | gp = *(var_28h);
| do {
| label_16:
0x0000f9c4 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0000f9c8 lw a1, 0xdc(sp) | a1 = *(var_dch);
0x0000f9cc lw a0, (v0) | a0 = *(v0);
0x0000f9d0 move v0, fp | v0 = fp;
| if (a1 != a0) {
0x0000f9d4 bne a1, a0, 0xfa10 | goto label_18;
| }
0x0000f9d8 lw ra, 0x104(sp) | ra = *(var_104h);
0x0000f9dc lw fp, 0x100(sp) | fp = *(var_100h);
0x0000f9e0 lw s7, 0xfc(sp) | s7 = *(var_fch);
0x0000f9e4 lw s6, 0xf8(sp) | s6 = *(var_f8h);
0x0000f9e8 lw s5, 0xf4(sp) | s5 = *(var_f4h);
0x0000f9ec lw s4, 0xf0(sp) | s4 = *(var_f0h);
0x0000f9f0 lw s3, 0xec(sp) | s3 = *(var_ech);
0x0000f9f4 lw s2, 0xe8(sp) | s2 = *(var_e8h);
0x0000f9f8 lw s1, 0xe4(sp) | s1 = *(var_e4h);
0x0000f9fc lw s0, 0xe0(sp) | s0 = *(var_e0h);
0x0000fa00 addiu sp, sp, 0x108 |
0x0000fa04 jr ra | return v0;
| label_15:
0x0000fa08 addiu fp, zero, -0x16 | fp = -0x16;
0x0000fa0c b 0xf9c4 |
| } while (1);
| label_18:
0x0000fa10 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000fa14 jalr t9 | t9 ();
0x0000fa18 nop |
0x0000fa1c lui gp, 2 |
0x0000fa20 addiu gp, gp, 0x6634 |
0x0000fa24 addu gp, gp, t9 | gp += t9;
0x0000fa28 addiu sp, sp, -0x128 |
0x0000fa2c sw fp, 0x120(sp) | *(var_120h) = fp;
0x0000fa30 lw fp, -0x7bc0(gp) | fp = *((gp - 7920));
0x0000fa34 sw gp, 0x28(sp) | *(var_28h_2) = gp;
0x0000fa38 sw s3, 0x10c(sp) | *(var_10ch) = s3;
0x0000fa3c lw v0, (fp) | v0 = *(fp);
0x0000fa40 sw s1, 0x104(sp) | *(var_104h_2) = s1;
0x0000fa44 sw ra, 0x124(sp) | *(var_124h) = ra;
0x0000fa48 sw s7, 0x11c(sp) | *(var_11ch) = s7;
0x0000fa4c sw s6, 0x118(sp) | *(var_118h) = s6;
0x0000fa50 sw s5, 0x114(sp) | *(var_114h) = s5;
0x0000fa54 sw s4, 0x110(sp) | *(var_110h) = s4;
0x0000fa58 sw s2, 0x108(sp) | *(var_108h) = s2;
0x0000fa5c sw s0, 0x100(sp) | *(var_100h_2) = s0;
0x0000fa60 lw s1, 0x138(sp) | s1 = *(var_138h);
0x0000fa64 lw s3, 0x13c(sp) | s3 = *(var_13ch);
0x0000fa68 sw v0, 0xfc(sp) | *(var_fch_2) = v0;
0x0000fa6c lw s5, -0x7fdc(gp) | s5 = *((gp - 8183));
| if (a1 == 0) {
0x0000fa70 beqz a1, 0xffe4 | goto label_19;
| }
0x0000fa74 move s2, a1 | s2 = a1;
0x0000fa78 move s0, a0 | s0 = a0;
0x0000fa7c lw v0, -0x1af0(s5) | v0 = *((s5 - 1724));
0x0000fa80 move s4, a2 | s4 = a2;
0x0000fa84 andi v0, v0, 4 | v0 &= 4;
0x0000fa88 move s6, a3 | s6 = a3;
| if (v0 != 0) {
0x0000fa8c bnez v0, 0xfe54 | goto label_20;
| }
| label_6:
0x0000fa90 lw t9, -0x7db4(gp) | t9 = sym.imp.__xstat64;
0x0000fa94 addiu s7, sp, 0x58 | s7 = sp + 0x58;
0x0000fa98 move a2, s7 | a2 = s7;
0x0000fa9c sw s7, 0x34(sp) | *(var_34h) = s7;
0x0000faa0 move a1, s2 | a1 = s2;
0x0000faa4 addiu a0, zero, 3 | a0 = 3;
0x0000faa8 jalr t9 | t9 ();
0x0000faac lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000fab0 addiu a1, zero, 2 | a1 = 2;
0x0000fab4 move a0, s0 | a0 = s0;
0x0000fab8 lw t9, -0x7f08(gp) | t9 = sym.loopcxt_init_iterator;
0x0000fabc sw v0, 0x30(sp) | *(var_30h_3) = v0;
0x0000fac0 bal 0xab48 | sym_loopcxt_init_iterator ();
0x0000fac4 move s7, v0 | s7 = v0;
0x0000fac8 lw gp, 0x28(sp) | gp = *(var_28h_2);
| if (v0 != 0) {
0x0000facc bnez v0, 0xfc9c | goto label_8;
| }
0x0000fad0 addu v1, s4, s1 | v1 = s4 + s1;
0x0000fad4 sw v1, 0x40(sp) | *(var_40h) = v1;
0x0000fad8 addu v0, s6, s3 | v0 = s6 + s3;
0x0000fadc sltu v1, v1, s4 | v1 = (v1 < s4) ? 1 : 0;
0x0000fae0 addu v0, v1, v0 | v0 = v1 + v0;
0x0000fae4 lw a0, 0x30(sp) | a0 = *(var_30h_3);
0x0000fae8 sw v0, 0x30(sp) | *(var_30h_3) = v0;
0x0000faec lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000faf0 lw s7, 0x34(sp) | s7 = *(var_34h);
0x0000faf4 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0000faf8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
| if (a0 == 0) {
0x0000fafc movn s7, zero, a0 | s7 = 0;
| }
| /* str.loopdev */
0x0000fb00 addiu v0, v0, -0x348c | v0 += -0x348c;
0x0000fb04 sw v0, 0x38(sp) | *(var_38h_2) = v0;
0x0000fb08 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000fb0c sw v0, 0x3c(sp) | *(var_3ch_2) = v0;
| do {
| label_0:
0x0000fb10 lw t9, -0x7f04(gp) | t9 = sym.loopcxt_next;
| label_2:
0x0000fb14 move a0, s0 | a0 = s0;
0x0000fb18 bal 0xbcdc | sym_loopcxt_next ();
0x0000fb1c move v1, v0 | v1 = v0;
0x0000fb20 lw gp, 0x28(sp) | gp = *(var_28h_2);
| if (v0 != 0) {
0x0000fb24 bnez v0, 0xff54 | goto label_21;
| }
0x0000fb28 lw t9, -0x7ef4(gp) | t9 = sym.loopcxt_is_used;
0x0000fb2c sw zero, 0x20(sp) | *(var_20h_3) = 0;
0x0000fb30 sw s1, 0x18(sp) | *(var_220h) = s1;
0x0000fb34 sw s3, 0x1c(sp) | *(var_1ch_2) = s3;
0x0000fb38 sw s4, 0x10(sp) | *(var_218h) = s4;
0x0000fb3c sw s6, 0x14(sp) | *(var_21ch) = s6;
0x0000fb40 move a2, s2 | a2 = s2;
0x0000fb44 move a1, s7 | a1 = s7;
0x0000fb48 move a0, s0 | a0 = s0;
0x0000fb4c bal 0xcc80 | sym_loopcxt_is_used ();
0x0000fb50 move v1, v0 | v1 = v0;
0x0000fb54 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000fb58 beqz v0, 0xfb10 |
| } while (v0 == 0);
0x0000fb5c lw v0, -0x1af0(s5) | v0 = *((s5 - 1724));
| if (v0 < 0) {
0x0000fb60 bltz v0, 0xff54 | goto label_21;
| }
0x0000fb64 andi v0, v0, 4 | v0 &= 4;
0x0000fb68 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x0000fb6c bnez v0, 0xfd9c | goto label_22;
| }
| label_4:
0x0000fb70 lw t9, -0x7f3c(gp) | t9 = sym.loopcxt_get_offset;
0x0000fb74 addiu a1, sp, 0x50 | a1 = sp + 0x50;
0x0000fb78 move a0, s0 | a0 = s0;
0x0000fb7c bal 0xb350 | sym_loopcxt_get_offset ();
0x0000fb80 move v1, v0 | v1 = v0;
0x0000fb84 lw gp, 0x28(sp) | gp = *(var_28h_2);
| if (v0 != 0) {
0x0000fb88 bnez v0, 0xfec0 | goto label_23;
| }
0x0000fb8c lw t9, -0x7f1c(gp) | t9 = sym.loopcxt_get_sizelimit;
0x0000fb90 addiu a1, sp, 0x48 | a1 = sp + 0x48;
0x0000fb94 move a0, s0 | a0 = s0;
0x0000fb98 bal 0xc26c | sym_loopcxt_get_sizelimit ();
0x0000fb9c move v1, v0 | v1 = v0;
0x0000fba0 lw gp, 0x28(sp) | gp = *(var_28h_2);
| if (v0 != 0) {
0x0000fba4 bnez v0, 0xff64 | goto label_24;
| }
0x0000fba8 lw v0, 0x48(sp) | v0 = *(var_48h);
0x0000fbac lw v1, 0x4c(sp) | v1 = *(var_4ch);
| if (v0 == s1) {
0x0000fbb0 beq v0, s1, 0xfe1c | goto label_25;
| }
0x0000fbb4 or a0, v0, v1 | a0 = v0 | v1;
| if (a0 != 0) {
| label_5:
0x0000fbb8 beql a0, zero, 0xfbe8 |
0x0000fbbc or v0, s1, s3 | v0 = s1 | s3;
0x0000fbc0 lw a0, 0x50(sp) | a0 = *(var_50h);
0x0000fbc4 lw a1, 0x54(sp) | a1 = *(var_54h);
0x0000fbc8 addu a0, v0, a0 | a0 = v0 + a0;
0x0000fbcc addu v1, v1, a1 | v1 += a1;
0x0000fbd0 sltu v0, a0, v0 | v0 = (a0 < v0) ? 1 : 0;
0x0000fbd4 addu v0, v0, v1 | v0 += v1;
0x0000fbd8 sltu v1, s6, v0 | v1 = (s6 < v0) ? 1 : 0;
| if (v1 == 0) {
0x0000fbdc beqz v1, 0xfcdc | goto label_26;
| }
0x0000fbe0 nop |
0x0000fbe4 or v0, s1, s3 | v0 = s1 | s3;
| }
| label_1:
0x0000fbe8 lw v0, 0x54(sp) | v0 = *(var_54h);
| if (v0 != 0) {
0x0000fbec beqz v0, 0xfc00 |
0x0000fbf0 lw a0, 0x30(sp) | a0 = *(var_30h_3);
0x0000fbf4 sltu v1, v0, a0 | v1 = (v0 < a0) ? 1 : 0;
| if (v1 == 0) {
0x0000fbf8 beqz v1, 0xfcf4 | goto label_27;
| }
0x0000fbfc nop |
| }
0x0000fc00 lw v0, -0x1af0(s5) | v0 = *((s5 - 1724));
0x0000fc04 andi v0, v0, 4 | v0 &= 4;
0x0000fc08 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x0000fc0c bnez v0, 0xfd1c | goto label_28;
| }
0x0000fc10 addiu s7, zero, 1 | s7 = 1;
| label_3:
0x0000fc14 lw t9, -0x7f54(gp) | t9 = sym.loopcxt_deinit_iterator;
0x0000fc18 move a0, s0 | a0 = s0;
0x0000fc1c bal 0xacf8 | sym_loopcxt_deinit_iterator ();
0x0000fc20 lw v0, -0x1af0(s5) | v0 = *((s5 - 1724));
0x0000fc24 andi v0, v0, 4 | v0 &= 4;
0x0000fc28 lw gp, 0x28(sp) | gp = *(var_28h_2);
| if (v0 != 0) {
0x0000fc2c beqz v0, 0xfc9c |
0x0000fc30 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000fc34 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000fc38 lw s1, (v0) | s1 = *(v0);
0x0000fc3c jalr t9 | t9 ();
0x0000fc40 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000fc44 move a3, v0 | a3 = v0;
0x0000fc48 addiu a1, zero, 1 | a1 = 1;
0x0000fc4c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000fc50 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000fc54 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000fc58 sw v0, 0x14(sp) | *(var_21ch) = v0;
0x0000fc5c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000fc60 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000fc64 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000fc68 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000fc6c move a0, s1 | a0 = s1;
0x0000fc70 sw v0, 0x10(sp) | *(var_218h) = v0;
0x0000fc74 jalr t9 | t9 ();
0x0000fc78 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000fc7c move a2, s7 | a2 = s7;
0x0000fc80 move a0, s0 | a0 = s0;
0x0000fc84 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000fc88 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000fc8c addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.find_overlap_done__rc_d_ */
0x0000fc90 addiu a1, a1, -0x2b4c | a1 += -0x2b4c;
0x0000fc94 bal 0x9b48 | fcn_00009b48 ();
0x0000fc98 lw gp, 0x28(sp) | gp = *(var_28h_2);
| }
| label_8:
0x0000fc9c lw a1, 0xfc(sp) | a1 = *(var_fch_2);
0x0000fca0 lw a0, (fp) | a0 = *(fp);
0x0000fca4 move v0, s7 | v0 = s7;
| if (a1 != a0) {
0x0000fca8 bne a1, a0, 0x10058 | goto label_29;
| }
0x0000fcac lw ra, 0x124(sp) | ra = *(var_124h);
0x0000fcb0 lw fp, 0x120(sp) | fp = *(var_120h);
0x0000fcb4 lw s7, 0x11c(sp) | s7 = *(var_11ch);
0x0000fcb8 lw s6, 0x118(sp) | s6 = *(var_118h);
0x0000fcbc lw s5, 0x114(sp) | s5 = *(var_114h);
0x0000fcc0 lw s4, 0x110(sp) | s4 = *(var_110h);
0x0000fcc4 lw s3, 0x10c(sp) | s3 = *(var_10ch);
0x0000fcc8 lw s2, 0x108(sp) | s2 = *(var_108h);
0x0000fccc lw s1, 0x104(sp) | s1 = *(var_104h_2);
0x0000fcd0 lw s0, 0x100(sp) | s0 = *(var_100h_2);
0x0000fcd4 addiu sp, sp, 0x128 |
0x0000fcd8 jr ra | return v0;
| label_26:
0x0000fcdc sltu a0, s4, a0 | a0 = (s4 < a0) ? 1 : 0;
| if (v0 != s6) {
0x0000fce0 bne v0, s6, 0xfb10 | goto label_0;
| }
0x0000fce4 or v0, s1, s3 | v0 = s1 | s3;
| if (a0 != 0) {
0x0000fce8 bnez a0, 0xfbe8 | goto label_1;
| }
0x0000fcec lw t9, -0x7f04(gp) | t9 = sym.loopcxt_next;
0x0000fcf0 b 0xfb14 | goto label_2;
| label_27:
0x0000fcf4 lw v0, 0x50(sp) | v0 = *(var_50h);
| if (v0 != a0) {
0x0000fcf8 bne v0, a0, 0xfb10 | goto label_0;
| }
0x0000fcfc lw v1, 0x40(sp) | v1 = *(var_40h);
0x0000fd00 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x0000fd04 lw v0, -0x1af0(s5) | v0 = *((s5 - 1724));
| if (v0 == 0) {
0x0000fd08 beqz v0, 0xfb10 | goto label_0;
| }
0x0000fd0c andi v0, v0, 4 | v0 &= 4;
| if (v0 == 0) {
0x0000fd10 beql v0, zero, 0xfc14 | goto label_3;
| }
0x0000fd14 addiu s7, zero, 1 | s7 = 1;
0x0000fd18 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| label_28:
0x0000fd1c lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000fd20 addiu s7, zero, 1 | s7 = 1;
0x0000fd24 lw s1, (v0) | s1 = *(v0);
0x0000fd28 jalr t9 | t9 ();
0x0000fd2c lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000fd30 move a3, v0 | a3 = v0;
0x0000fd34 addiu a1, zero, 1 | a1 = 1;
0x0000fd38 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000fd3c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000fd40 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000fd44 sw v0, 0x14(sp) | *(var_21ch) = v0;
0x0000fd48 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000fd4c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000fd50 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000fd54 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000fd58 move a0, s1 | a0 = s1;
0x0000fd5c sw v0, 0x10(sp) | *(var_218h) = v0;
0x0000fd60 jalr t9 | t9 ();
0x0000fd64 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000fd68 lw t9, -0x7f20(gp) | t9 = sym.loopcxt_get_device;
0x0000fd6c move a0, s0 | a0 = s0;
0x0000fd70 bal 0xa9d0 | sym_loopcxt_get_device ();
0x0000fd74 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000fd78 move a2, v0 | a2 = v0;
0x0000fd7c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| /* str.overlapping_loop_device__s */
0x0000fd80 addiu a1, a1, -0x2b68 | a1 += -0x2b68;
| label_9:
0x0000fd84 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000fd88 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
0x0000fd8c move a0, s0 | a0 = s0;
0x0000fd90 bal 0x9b48 | fcn_00009b48 ();
0x0000fd94 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000fd98 b 0xfc14 | goto label_3;
| label_22:
0x0000fd9c lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000fda0 lw a0, (v0) | a0 = *(v0);
0x0000fda4 sw a0, 0x44(sp) | *(var_44h) = a0;
0x0000fda8 jalr t9 | t9 ();
0x0000fdac move a3, v0 | a3 = v0;
0x0000fdb0 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000fdb4 lw v0, 0x3c(sp) | v0 = *(var_3ch_2);
0x0000fdb8 lw v1, 0x34(sp) | v1 = *(var_34h);
0x0000fdbc addiu a2, v0, -0x34a0 | a2 = v0 + -0x34a0;
0x0000fdc0 lw v0, 0x38(sp) | v0 = *(var_38h_2);
0x0000fdc4 addiu v1, v1, -0x3490 | v1 += -0x3490;
0x0000fdc8 lw a0, 0x44(sp) | a0 = *(var_44h);
0x0000fdcc lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
0x0000fdd0 addiu a1, zero, 1 | a1 = 1;
0x0000fdd4 sw v1, 0x14(sp) | *(var_21ch) = v1;
0x0000fdd8 sw v0, 0x10(sp) | *(var_218h) = v0;
0x0000fddc jalr t9 | t9 ();
0x0000fde0 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000fde4 lw t9, -0x7f20(gp) | t9 = sym.loopcxt_get_device;
0x0000fde8 move a0, s0 | a0 = s0;
0x0000fdec bal 0xa9d0 | sym_loopcxt_get_device ();
0x0000fdf0 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000fdf4 move a3, s2 | a3 = s2;
0x0000fdf8 move a2, v0 | a2 = v0;
0x0000fdfc lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000fe00 lw t9, -0x7f74(gp) | t9 = *(gp);
| /* str.found__s_backed_by__s */
0x0000fe04 addiu a1, a1, -0x2bf4 | a1 += -0x2bf4;
0x0000fe08 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
0x0000fe0c move a0, s0 | a0 = s0;
0x0000fe10 bal 0x9b48 | fcn_00009b48 ();
0x0000fe14 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000fe18 b 0xfb70 | goto label_4;
| label_25:
0x0000fe1c or a0, v0, v1 | a0 = v0 | v1;
| if (v1 != s3) {
0x0000fe20 bne v1, s3, 0xfbb8 | goto label_5;
| }
0x0000fe24 lw a0, 0x50(sp) | a0 = *(var_50h);
0x0000fe28 or a0, v0, v1 | a0 = v0 | v1;
| if (a0 != s4) {
0x0000fe2c bne a0, s4, 0xfbb8 | goto label_5;
| }
0x0000fe30 lw a0, 0x54(sp) | a0 = *(var_54h);
0x0000fe34 or a0, v0, v1 | a0 = v0 | v1;
| if (a0 == s6) {
0x0000fe38 bnel a0, s6, 0xfbb8 | goto label_5;
| }
0x0000fe3c lw v0, -0x1af0(s5) | v0 = *((s5 - 1724));
0x0000fe40 andi v0, v0, 4 | v0 &= 4;
0x0000fe44 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x0000fe48 bnez v0, 0xffec | goto label_30;
| }
0x0000fe4c addiu s7, zero, 2 | s7 = 2;
0x0000fe50 b 0xfc14 | goto label_3;
| label_20:
0x0000fe54 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000fe58 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000fe5c lw s7, (v0) | s7 = *(v0);
0x0000fe60 jalr t9 | t9 ();
0x0000fe64 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000fe68 move a3, v0 | a3 = v0;
0x0000fe6c addiu a1, zero, 1 | a1 = 1;
0x0000fe70 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000fe74 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000fe78 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000fe7c sw v0, 0x14(sp) | *(var_21ch) = v0;
0x0000fe80 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000fe84 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000fe88 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000fe8c addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000fe90 move a0, s7 | a0 = s7;
0x0000fe94 sw v0, 0x10(sp) | *(var_218h) = v0;
0x0000fe98 jalr t9 | t9 ();
0x0000fe9c lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000fea0 move a0, s0 | a0 = s0;
0x0000fea4 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000fea8 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000feac addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.find_overlap_requested */
0x0000feb0 addiu a1, a1, -0x2c0c | a1 += -0x2c0c;
0x0000feb4 bal 0x9b48 | fcn_00009b48 ();
0x0000feb8 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000febc b 0xfa90 | goto label_6;
| label_23:
0x0000fec0 lw v0, -0x1af0(s5) | v0 = *((s5 - 1724));
0x0000fec4 andi v0, v0, 4 | v0 &= 4;
0x0000fec8 xori v0, v1, 1 | v0 = v1 ^ 1;
| if (v0 == 0) {
0x0000fecc beqz v0, 0xff58 | goto label_31;
| }
0x0000fed0 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000fed4 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000fed8 sw v1, 0x30(sp) | *(var_30h_3) = v1;
0x0000fedc lw s1, (v0) | s1 = *(v0);
0x0000fee0 jalr t9 | t9 ();
0x0000fee4 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000fee8 move a3, v0 | a3 = v0;
0x0000feec addiu a1, zero, 1 | a1 = 1;
0x0000fef0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000fef4 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000fef8 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000fefc sw v0, 0x14(sp) | *(var_21ch) = v0;
0x0000ff00 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000ff04 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000ff08 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000ff0c addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000ff10 move a0, s1 | a0 = s1;
0x0000ff14 sw v0, 0x10(sp) | *(var_218h) = v0;
0x0000ff18 jalr t9 | t9 ();
0x0000ff1c lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000ff20 lw t9, -0x7f20(gp) | t9 = sym.loopcxt_get_device;
0x0000ff24 move a0, s0 | a0 = s0;
0x0000ff28 bal 0xa9d0 | sym_loopcxt_get_device ();
0x0000ff2c lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000ff30 move a2, v0 | a2 = v0;
0x0000ff34 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| /* str.failed_to_get_offset_for_device__s */
0x0000ff38 addiu a1, a1, -0x2bdc | a1 += -0x2bdc;
| label_7:
0x0000ff3c lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000ff40 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
0x0000ff44 move a0, s0 | a0 = s0;
0x0000ff48 bal 0x9b48 | fcn_00009b48 ();
0x0000ff4c lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000ff50 lw v1, 0x30(sp) | v1 = *(var_30h_3);
| label_21:
0x0000ff54 xori v0, v1, 1 | v0 = v1 ^ 1;
| if (v0 != 0) {
| do {
| label_31:
0x0000ff58 movz v1, zero, v0 | v1 = 0;
| }
0x0000ff5c move s7, v1 | s7 = v1;
0x0000ff60 b 0xfc14 | goto label_3;
| label_24:
0x0000ff64 lw v0, -0x1af0(s5) | v0 = *((s5 - 1724));
0x0000ff68 andi v0, v0, 4 | v0 &= 4;
0x0000ff6c xori v0, v1, 1 | v0 = v1 ^ 1;
0x0000ff70 beqz v0, 0xff58 |
| } while (v0 == 0);
0x0000ff74 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000ff78 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000ff7c sw v1, 0x30(sp) | *(var_30h_3) = v1;
0x0000ff80 lw s1, (v0) | s1 = *(v0);
0x0000ff84 jalr t9 | t9 ();
0x0000ff88 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000ff8c move a3, v0 | a3 = v0;
0x0000ff90 addiu a1, zero, 1 | a1 = 1;
0x0000ff94 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000ff98 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000ff9c addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000ffa0 sw v0, 0x14(sp) | *(var_21ch) = v0;
0x0000ffa4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000ffa8 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000ffac addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000ffb0 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000ffb4 move a0, s1 | a0 = s1;
0x0000ffb8 sw v0, 0x10(sp) | *(var_218h) = v0;
0x0000ffbc jalr t9 | t9 ();
0x0000ffc0 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000ffc4 lw t9, -0x7f20(gp) | t9 = sym.loopcxt_get_device;
0x0000ffc8 move a0, s0 | a0 = s0;
0x0000ffcc bal 0xa9d0 | sym_loopcxt_get_device ();
0x0000ffd0 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x0000ffd4 move a2, v0 | a2 = v0;
0x0000ffd8 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| /* str.failed_to_get_sizelimit_for_device__s */
0x0000ffdc addiu a1, a1, -0x2bb8 | a1 += -0x2bb8;
0x0000ffe0 b 0xff3c | goto label_7;
| label_19:
0x0000ffe4 addiu s7, zero, -0x16 | s7 = -0x16;
0x0000ffe8 b 0xfc9c | goto label_8;
| label_30:
0x0000ffec lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000fff0 addiu s7, zero, 2 | s7 = 2;
0x0000fff4 lw s1, (v0) | s1 = *(v0);
0x0000fff8 jalr t9 | t9 ();
0x0000fffc lw gp, 0x28(sp) | gp = *(var_28h_2);
0x00010000 move a3, v0 | a3 = v0;
0x00010004 addiu a1, zero, 1 | a1 = 1;
0x00010008 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0001000c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00010010 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00010014 sw v0, 0x14(sp) | *(var_21ch) = v0;
0x00010018 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0001001c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x00010020 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x00010024 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00010028 move a0, s1 | a0 = s1;
0x0001002c sw v0, 0x10(sp) | *(var_218h) = v0;
0x00010030 jalr t9 | t9 ();
0x00010034 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x00010038 lw t9, -0x7f20(gp) | t9 = sym.loopcxt_get_device;
0x0001003c move a0, s0 | a0 = s0;
0x00010040 bal 0xa9d0 | sym_loopcxt_get_device ();
0x00010044 lw gp, 0x28(sp) | gp = *(var_28h_2);
0x00010048 move a2, v0 | a2 = v0;
0x0001004c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| /* str.overlapping_loop_device__s__full_match_ */
0x00010050 addiu a1, a1, -0x2b90 | a1 += -0x2b90;
0x00010054 b 0xfd84 | goto label_9;
| label_29:
0x00010058 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001005c jalr t9 | t9 ();
0x00010060 nop |
0x00010064 lui gp, 2 |
0x00010068 addiu gp, gp, 0x5fec |
0x0001006c addu gp, gp, t9 | gp += t9;
0x00010070 addiu sp, sp, -0x208 |
0x00010074 sw s1, 0x1f4(sp) | *(var_1f4h) = s1;
0x00010078 lw s1, -0x7bc0(gp) | s1 = *((gp - 7920));
0x0001007c sw gp, 0x20(sp) | *(var_20h) = gp;
0x00010080 sw ra, 0x204(sp) | *(var_204h) = ra;
0x00010084 lw v0, (s1) | v0 = *(s1);
0x00010088 sw s5, 0x200(sp) | *(var_200h) = s5;
0x0001008c sw s4, 0x1fc(sp) | *(var_1fch) = s4;
0x00010090 sw s2, 0x1f8(sp) | *(var_1f8h) = s2;
0x00010094 sw s0, 0x1f0(sp) | *(var_1f0h) = s0;
0x00010098 sw v0, 0x1ec(sp) | *(var_1ech) = v0;
0x0001009c lw t9, -0x7f00(gp) | t9 = sym.loopcxt_init;
| if (a0 == 0) {
0x000100a0 beqz a0, 0x10148 | goto label_32;
| }
0x000100a4 addiu s0, sp, 0x30 | s0 = sp + 0x30;
0x000100a8 move s2, a0 | s2 = a0;
0x000100ac move a1, zero | a1 = 0;
0x000100b0 move a0, s0 | a0 = s0;
0x000100b4 move s4, a2 | s4 = a2;
0x000100b8 move s5, a3 | s5 = a3;
0x000100bc bal 0xa480 | sym_loopcxt_init ();
0x000100c0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x000100c4 bnez v0, 0x10148 | goto label_32;
| }
0x000100c8 lw v0, 0x220(sp) | v0 = *(var_220h);
0x000100cc lw v1, 0x21c(sp) | v1 = *(var_21ch);
0x000100d0 sw v0, 0x18(sp) | *(var_18h_2) = v0;
0x000100d4 lw v0, 0x218(sp) | v0 = *(var_218h);
0x000100d8 lw t9, -0x7eec(gp) | t9 = sym.loopcxt_find_by_backing_file;
0x000100dc sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x000100e0 sw v1, 0x14(sp) | *(var_14h) = v1;
0x000100e4 move a2, s4 | a2 = s4;
0x000100e8 move a3, s5 | a3 = s5;
0x000100ec move a1, s2 | a1 = s2;
0x000100f0 move a0, s0 | a0 = s0;
0x000100f4 bal 0xf8b4 | sym_loopcxt_find_by_backing_file ();
| goto label_10;
0x000100f8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000100fc beqz v0, 0x10150 | goto label_33;
| }
0x00010100 move v0, zero | v0 = 0;
| label_11:
0x00010104 lw t9, -0x7efc(gp) | t9 = sym.loopcxt_deinit;
0x00010108 sw v0, 0x2c(sp) | *(var_2ch_2) = v0;
0x0001010c move a0, s0 | a0 = s0;
0x00010110 bal 0xae20 | sym_loopcxt_deinit ();
0x00010114 lw gp, 0x20(sp) | gp = *(var_20h);
0x00010118 lw v0, 0x2c(sp) | v0 = *(var_2ch_2);
| do {
0x0001011c lw a0, 0x1ec(sp) | a0 = *(var_1ech);
0x00010120 lw v1, (s1) | v1 = *(s1);
0x00010124 lw ra, 0x204(sp) | ra = *(var_204h);
| if (a0 != v1) {
0x00010128 bne a0, v1, 0x10164 | goto label_34;
| }
0x0001012c lw s5, 0x200(sp) | s5 = *(var_200h);
0x00010130 lw s4, 0x1fc(sp) | s4 = *(var_1fch);
0x00010134 lw s2, 0x1f8(sp) | s2 = *(var_1f8h);
0x00010138 lw s1, 0x1f4(sp) | s1 = *(var_1f4h);
0x0001013c lw s0, 0x1f0(sp) | s0 = *(var_1f0h);
0x00010140 addiu sp, sp, 0x208 |
0x00010144 jr ra | return v0;
| label_32:
0x00010148 move v0, zero | v0 = 0;
0x0001014c b 0x1011c |
| } while (1);
| label_33:
0x00010150 lw t9, -0x7ee8(gp) | t9 = sym.loopcxt_strdup_device;
0x00010154 move a0, s0 | a0 = s0;
0x00010158 bal 0xa9a0 | sym_loopcxt_strdup_device ();
0x0001015c lw gp, 0x20(sp) | gp = *(var_20h);
0x00010160 b 0x10104 | goto label_11;
| label_34:
0x00010164 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00010168 jalr t9 | t9 ();
0x0001016c nop |
0x00010170 lui gp, 2 |
0x00010174 addiu gp, gp, 0x5ee0 |
0x00010178 addu gp, gp, t9 | gp += t9;
0x0001017c addiu sp, sp, -0x1f8 |
0x00010180 sw s5, 0x1f0(sp) | *(var_1f0h_2) = s5;
0x00010184 lw s5, -0x7bc0(gp) | s5 = *((gp - 7920));
0x00010188 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0001018c sw ra, 0x1f4(sp) | *(var_1f4h_2) = ra;
0x00010190 lw v0, (s5) | v0 = *(s5);
0x00010194 sw s4, 0x1ec(sp) | *(var_1ech_2) = s4;
0x00010198 sw s3, 0x1e8(sp) | *(var_1e8h) = s3;
0x0001019c sw s2, 0x1e4(sp) | *(var_1e4h) = s2;
0x000101a0 sw s1, 0x1e0(sp) | *(var_1e0h) = s1;
0x000101a4 sw s0, 0x1dc(sp) | *(var_1dch) = s0;
0x000101a8 sw v0, 0x1d4(sp) | *(var_1d4h) = v0;
0x000101ac lw t9, -0x7f00(gp) | t9 = sym.loopcxt_init;
| if (a0 == 0) {
0x000101b0 beqz a0, 0x10300 | goto label_35;
| }
0x000101b4 addiu s1, sp, 0x18 | s1 = sp + 0x18;
0x000101b8 move s3, a0 | s3 = a0;
0x000101bc move s4, a1 | s4 = a1;
0x000101c0 move a0, s1 | a0 = s1;
0x000101c4 move a1, zero | a1 = 0;
0x000101c8 bal 0xa480 | sym_loopcxt_init ();
0x000101cc move s2, v0 | s2 = v0;
0x000101d0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000101d4 beqz v0, 0x1020c |
| label_12:
0x000101d8 lw a0, 0x1d4(sp) | a0 = *(var_1d4h);
0x000101dc lw v1, (s5) | v1 = *(s5);
0x000101e0 move v0, s2 | v0 = s2;
| if (a0 != v1) {
0x000101e4 bne a0, v1, 0x10308 | goto label_36;
| }
0x000101e8 lw ra, 0x1f4(sp) | ra = *(var_1f4h_2);
0x000101ec lw s5, 0x1f0(sp) | s5 = *(var_1f0h_2);
0x000101f0 lw s4, 0x1ec(sp) | s4 = *(var_1ech_2);
0x000101f4 lw s3, 0x1e8(sp) | s3 = *(var_1e8h);
0x000101f8 lw s2, 0x1e4(sp) | s2 = *(var_1e4h);
0x000101fc lw s1, 0x1e0(sp) | s1 = *(var_1e0h);
0x00010200 lw s0, 0x1dc(sp) | s0 = *(var_1dch);
0x00010204 addiu sp, sp, 0x1f8 |
0x00010208 jr ra | return v0;
| }
0x0001020c lw t9, -0x7f08(gp) | t9 = sym.loopcxt_init_iterator;
0x00010210 addiu a1, zero, 2 | a1 = 2;
0x00010214 move a0, s1 | a0 = s1;
0x00010218 bal 0xab48 | sym_loopcxt_init_iterator ();
0x0001021c move s2, v0 | s2 = v0;
0x00010220 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00010224 bnez v0, 0x10300 | goto label_35;
| }
| label_14:
0x00010228 lw t9, -0x7f04(gp) | t9 = sym.loopcxt_next;
0x0001022c move a0, s1 | a0 = s1;
0x00010230 bal 0xbcdc | sym_loopcxt_next ();
0x00010234 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00010238 bnez v0, 0x102a0 | goto label_37;
| }
| do {
0x0001023c lw t9, -0x7f28(gp) | t9 = sym.loopcxt_get_backing_file;
0x00010240 move a0, s1 | a0 = s1;
0x00010244 bal 0xb1e8 | sym_loopcxt_get_backing_file ();
0x00010248 move s0, v0 | s0 = v0;
0x0001024c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00010250 beqz v0, 0x102ec | goto label_38;
| }
0x00010254 lw t9, -0x7b68(gp) | t9 = sym.imp.strcmp;
0x00010258 move a1, s3 | a1 = s3;
0x0001025c move a0, v0 | a0 = v0;
0x00010260 jalr t9 | t9 ();
0x00010264 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00010268 bnez v0, 0x102ec | goto label_38;
| }
0x0001026c lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x00010270 move a0, s0 | a0 = s0;
0x00010274 jalr t9 | t9 ();
0x00010278 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s4 != 0) {
0x0001027c beqz s4, 0x10288 |
0x00010280 lw t9, -0x7ee8(gp) | t9 = sym.loopcxt_strdup_device;
| if (s2 == 0) {
0x00010284 beqz s2, 0x102d4 | goto label_39;
| }
| }
0x00010288 addiu s2, s2, 1 | s2++;
| label_13:
0x0001028c lw t9, -0x7f04(gp) | t9 = sym.loopcxt_next;
0x00010290 move a0, s1 | a0 = s1;
0x00010294 bal 0xbcdc | sym_loopcxt_next ();
0x00010298 lw gp, 0x10(sp) | gp = *(var_10h);
0x0001029c beqz v0, 0x1023c |
| } while (v0 == 0);
| label_37:
0x000102a0 lw t9, -0x7efc(gp) | t9 = sym.loopcxt_deinit;
0x000102a4 move a0, s1 | a0 = s1;
0x000102a8 bal 0xae20 | sym_loopcxt_deinit ();
0x000102ac lw gp, 0x10(sp) | gp = *(var_10h);
| if (s4 == 0) {
0x000102b0 beqz s4, 0x101d8 | goto label_12;
| }
0x000102b4 slti v0, s2, 2 | v0 = (s2 < 2) ? 1 : 0;
0x000102b8 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
| if (v0 != 0) {
0x000102bc bnez v0, 0x101d8 | goto label_12;
| }
0x000102c0 lw a0, (s4) | a0 = *(s4);
0x000102c4 jalr t9 | t9 ();
0x000102c8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000102cc sw zero, (s4) | *(s4) = 0;
0x000102d0 b 0x101d8 | goto label_12;
| label_39:
0x000102d4 move a0, s1 | a0 = s1;
0x000102d8 bal 0xa9a0 | sym_loopcxt_strdup_device ();
0x000102dc addiu s2, s2, 1 | s2++;
0x000102e0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000102e4 sw v0, (s4) | *(s4) = v0;
0x000102e8 b 0x1028c | goto label_13;
| label_38:
0x000102ec lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x000102f0 move a0, s0 | a0 = s0;
0x000102f4 jalr t9 | t9 ();
0x000102f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000102fc b 0x10228 | goto label_14;
| label_35:
0x00010300 addiu s2, zero, -1 | s2 = -1;
0x00010304 b 0x101d8 | goto label_12;
| label_36:
0x00010308 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001030c jalr t9 | t9 ();
0x00010310 nop |
0x00010314 nop |
0x00010318 nop |
0x0001031c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xc62c */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_get_backing_devno () | void loopcxt_get_backing_devno () {
0x0000c62c lui gp, 3 |
0x0000c630 addiu gp, gp, -0x65dc |
0x0000c634 addu gp, gp, t9 | gp += t9;
0x0000c638 addiu sp, sp, -0x30 |
0x0000c63c lw t9, -0x7f48(gp) | t9 = sym.loopcxt_get_info;
0x0000c640 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000c644 sw s2, 0x28(sp) | *(var_28h) = s2;
0x0000c648 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0000c64c sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0000c650 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0000c654 move s2, a0 | s2 = a0;
0x0000c658 move s1, a1 | s1 = a1;
0x0000c65c bal 0xaff0 | sym_loopcxt_get_info ();
0x0000c660 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000c664 beqz v0, 0xc748 | goto label_1;
| }
| if (s1 == 0) {
0x0000c668 beql s1, zero, 0xc6b4 | goto label_2;
| }
0x0000c66c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000c670 lw v1, 4(v0) | v1 = *((v0 + 1));
0x0000c674 lw v0, (v0) | v0 = *(v0);
0x0000c678 move s0, zero | s0 = 0;
0x0000c67c sw v0, (s1) | *(s1) = v0;
0x0000c680 sw v1, 4(s1) | *((s1 + 1)) = v1;
| label_0:
0x0000c684 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000c688 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000c68c andi v0, v0, 4 | v0 &= 4;
0x0000c690 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x0000c694 bnez v0, 0xc6c8 | goto label_3;
| }
| do {
0x0000c698 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000c69c move v0, s0 | v0 = s0;
0x0000c6a0 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000c6a4 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000c6a8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0000c6ac addiu sp, sp, 0x30 |
0x0000c6b0 jr ra | return v0;
| label_2:
0x0000c6b4 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000c6b8 andi v0, v0, 4 | v0 &= 4;
0x0000c6bc move s0, zero | s0 = 0;
0x0000c6c0 beqz v0, 0xc698 |
| } while (v0 == 0);
0x0000c6c4 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| label_3:
0x0000c6c8 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000c6cc lw s1, (v0) | s1 = *(v0);
0x0000c6d0 jalr t9 | t9 ();
0x0000c6d4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000c6d8 move a3, v0 | a3 = v0;
0x0000c6dc move a0, s1 | a0 = s1;
0x0000c6e0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000c6e4 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000c6e8 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000c6ec sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000c6f0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000c6f4 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000c6f8 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000c6fc addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000c700 addiu a1, zero, 1 | a1 = 1;
0x0000c704 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000c708 jalr t9 | t9 ();
0x0000c70c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000c710 move a2, s0 | a2 = s0;
0x0000c714 move a0, s2 | a0 = s2;
0x0000c718 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000c71c lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000c720 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.get_backing_devno__rc_d_ */
0x0000c724 addiu a1, a1, -0x30cc | a1 += -0x30cc;
0x0000c728 bal 0x9b48 | fcn_00009b48 ();
0x0000c72c lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000c730 move v0, s0 | v0 = s0;
0x0000c734 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000c738 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000c73c lw s0, 0x20(sp) | s0 = *(var_20h);
0x0000c740 addiu sp, sp, 0x30 |
0x0000c744 jr ra | return v0;
| label_1:
0x0000c748 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x0000c74c jalr t9 | t9 ();
0x0000c750 nop |
0x0000c754 lw s0, (v0) | s0 = *(v0);
0x0000c758 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000c75c negu s0, s0 | __asm ("negu s0, s0");
0x0000c760 b 0xc684 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xb1e8 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_get_backing_file () | void loopcxt_get_backing_file () {
0x0000b1e8 lui gp, 3 |
0x0000b1ec addiu gp, gp, -0x5198 |
0x0000b1f0 addu gp, gp, t9 | gp += t9;
0x0000b1f4 addiu sp, sp, -0x38 |
0x0000b1f8 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000b1fc sw s0, 0x28(sp) | *(var_28h) = s0;
0x0000b200 lw s0, -0x7bc0(gp) | s0 = *((gp - 7920));
0x0000b204 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000b208 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x0000b20c lw v0, (s0) | v0 = *(s0);
0x0000b210 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0000b214 sw s2, 0x30(sp) | *(var_30h) = s2;
0x0000b218 sw v0, 0x24(sp) | *(var_24h) = v0;
0x0000b21c addiu t9, t9, -0x63d0 | t9 += -fcn.000063d0;
0x0000b220 move s1, a0 | s1 = a0;
0x0000b224 bal 0x9c30 | fcn_00009c30 ();
0x0000b228 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b22c sw zero, 0x20(sp) | *(var_20h) = 0;
| if (v0 == 0) {
0x0000b230 beqz v0, 0xb294 | goto label_2;
| }
0x0000b234 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x0000b238 lw t9, -0x7f4c(gp) | t9 = sym.ul_path_read_string;
| /* str.loop_backing_file */
0x0000b23c addiu a2, a2, -0x32a8 | a2 += -0x32a8;
0x0000b240 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x0000b244 move a0, v0 | a0 = v0;
0x0000b248 bal 0x1245c | sym_ul_path_read_string ();
0x0000b24c lw v0, 0x20(sp) | v0 = *(var_20h);
0x0000b250 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000b254 beqz v0, 0xb294 | goto label_2;
| }
| label_0:
0x0000b258 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
| do {
0x0000b25c lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000b260 andi v0, v0, 4 | v0 &= 4;
0x0000b264 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 == 0) {
0x0000b268 bnel v0, zero, 0xb2d8 | goto label_3;
| }
| label_1:
0x0000b26c lw a0, 0x24(sp) | a0 = *(var_24h);
0x0000b270 lw v1, (s0) | v1 = *(s0);
0x0000b274 lw v0, 0x20(sp) | v0 = *(var_20h);
| if (a0 != v1) {
0x0000b278 bne a0, v1, 0xb344 | goto label_4;
| }
0x0000b27c lw ra, 0x34(sp) | ra = *(var_34h);
0x0000b280 lw s2, 0x30(sp) | s2 = *(var_30h);
0x0000b284 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x0000b288 lw s0, 0x28(sp) | s0 = *(var_28h);
0x0000b28c addiu sp, sp, 0x38 |
0x0000b290 jr ra | return v0;
| label_2:
0x0000b294 lw v0, 0x98(s1) | v0 = *((s1 + 38));
0x0000b298 andi v0, v0, 0x40 | v0 &= 0x40;
0x0000b29c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000b2a0 bnez v0, 0xb25c |
| } while (v0 != 0);
0x0000b2a4 lw t9, -0x7f48(gp) | t9 = sym.loopcxt_get_info;
0x0000b2a8 move a0, s1 | a0 = s1;
0x0000b2ac bal 0xaff0 | sym_loopcxt_get_info ();
0x0000b2b0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000b2b4 beqz v0, 0xb258 | goto label_0;
| }
0x0000b2b8 lw t9, -0x7bac(gp) | t9 = sym.imp.strdup;
0x0000b2bc addiu v1, zero, 0x2a | v1 = 0x2a;
0x0000b2c0 sh v1, 0x76(v0) | *((v0 + 59)) = v1;
0x0000b2c4 addiu a0, v0, 0x38 | a0 = v0 + 0x38;
0x0000b2c8 jalr t9 | t9 ();
0x0000b2cc sw v0, 0x20(sp) | *(var_20h) = v0;
0x0000b2d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b2d4 b 0xb258 | goto label_0;
| label_3:
0x0000b2d8 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000b2dc lw s2, (v0) | s2 = *(v0);
0x0000b2e0 jalr t9 | t9 ();
0x0000b2e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b2e8 move a3, v0 | a3 = v0;
0x0000b2ec addiu a1, zero, 1 | a1 = 1;
0x0000b2f0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000b2f4 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000b2f8 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000b2fc sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000b300 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000b304 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000b308 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000b30c addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000b310 move a0, s2 | a0 = s2;
0x0000b314 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000b318 jalr t9 | t9 ();
0x0000b31c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b320 lw a2, 0x20(sp) | a2 = *(var_20h);
0x0000b324 move a0, s1 | a0 = s1;
0x0000b328 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000b32c lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000b330 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.get_backing_file___s_ */
0x0000b334 addiu a1, a1, -0x3294 | a1 += -0x3294;
0x0000b338 bal 0x9b48 | fcn_00009b48 ();
0x0000b33c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b340 b 0xb26c | goto label_1;
| label_4:
0x0000b344 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000b348 jalr t9 | t9 ();
0x0000b34c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xc764 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_get_backing_inode () | void loopcxt_get_backing_inode () {
0x0000c764 lui gp, 3 |
0x0000c768 addiu gp, gp, -0x6714 |
0x0000c76c addu gp, gp, t9 | gp += t9;
0x0000c770 addiu sp, sp, -0x30 |
0x0000c774 lw t9, -0x7f48(gp) | t9 = sym.loopcxt_get_info;
0x0000c778 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000c77c sw s2, 0x28(sp) | *(var_28h) = s2;
0x0000c780 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0000c784 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0000c788 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0000c78c move s2, a0 | s2 = a0;
0x0000c790 move s1, a1 | s1 = a1;
0x0000c794 bal 0xaff0 | sym_loopcxt_get_info ();
0x0000c798 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000c79c beqz v0, 0xc880 | goto label_1;
| }
| if (s1 == 0) {
0x0000c7a0 beql s1, zero, 0xc7ec | goto label_2;
| }
0x0000c7a4 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000c7a8 lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x0000c7ac lw v0, 8(v0) | v0 = *((v0 + 2));
0x0000c7b0 move s0, zero | s0 = 0;
0x0000c7b4 sw v0, (s1) | *(s1) = v0;
0x0000c7b8 sw v1, 4(s1) | *((s1 + 1)) = v1;
| label_0:
0x0000c7bc lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000c7c0 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000c7c4 andi v0, v0, 4 | v0 &= 4;
0x0000c7c8 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x0000c7cc bnez v0, 0xc800 | goto label_3;
| }
| do {
0x0000c7d0 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000c7d4 move v0, s0 | v0 = s0;
0x0000c7d8 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000c7dc lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000c7e0 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0000c7e4 addiu sp, sp, 0x30 |
0x0000c7e8 jr ra | return v0;
| label_2:
0x0000c7ec lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000c7f0 andi v0, v0, 4 | v0 &= 4;
0x0000c7f4 move s0, zero | s0 = 0;
0x0000c7f8 beqz v0, 0xc7d0 |
| } while (v0 == 0);
0x0000c7fc lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| label_3:
0x0000c800 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000c804 lw s1, (v0) | s1 = *(v0);
0x0000c808 jalr t9 | t9 ();
0x0000c80c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000c810 move a3, v0 | a3 = v0;
0x0000c814 move a0, s1 | a0 = s1;
0x0000c818 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000c81c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000c820 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000c824 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000c828 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000c82c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000c830 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000c834 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000c838 addiu a1, zero, 1 | a1 = 1;
0x0000c83c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000c840 jalr t9 | t9 ();
0x0000c844 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000c848 move a2, s0 | a2 = s0;
0x0000c84c move a0, s2 | a0 = s2;
0x0000c850 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000c854 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000c858 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.get_backing_inode__rc_d_ */
0x0000c85c addiu a1, a1, -0x30b0 | a1 += -0x30b0;
0x0000c860 bal 0x9b48 | fcn_00009b48 ();
0x0000c864 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000c868 move v0, s0 | v0 = s0;
0x0000c86c lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000c870 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000c874 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0000c878 addiu sp, sp, 0x30 |
0x0000c87c jr ra | return v0;
| label_1:
0x0000c880 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x0000c884 jalr t9 | t9 ();
0x0000c888 nop |
0x0000c88c lw s0, (v0) | s0 = *(v0);
0x0000c890 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000c894 negu s0, s0 | __asm ("negu s0, s0");
0x0000c898 b 0xc7bc | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xa9f0 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_get_fd () | void loopcxt_get_fd () {
0x0000a9f0 lui gp, 3 |
0x0000a9f4 addiu gp, gp, -0x49a0 |
0x0000a9f8 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x0000a9fc beqz a0, 0xab20 | goto label_1;
| }
0x0000aa00 nop |
0x0000aa04 addiu sp, sp, -0x30 |
0x0000aa08 sw s0, 0x24(sp) | *(var_24h) = s0;
0x0000aa0c sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000aa10 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0000aa14 sw s1, 0x28(sp) | *(var_28h) = s1;
0x0000aa18 lb v0, (a0) | v0 = *(a0);
0x0000aa1c move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x0000aa20 beqz v0, 0xab18 | goto label_2;
| }
0x0000aa24 lw v0, 0x84(a0) | v0 = *((a0 + 33));
| if (v0 < 0) {
0x0000aa28 bltzl v0, 0xaa44 | goto label_3;
| }
0x0000aa2c lw v0, 0x98(a0) | v0 = *((a0 + 38));
| label_0:
0x0000aa30 lw ra, 0x2c(sp) | ra = *(var_2ch);
| do {
0x0000aa34 lw s1, 0x28(sp) | s1 = *(var_28h);
0x0000aa38 lw s0, 0x24(sp) | s0 = *(var_24h);
0x0000aa3c addiu sp, sp, 0x30 |
0x0000aa40 jr ra | return v0;
| label_3:
0x0000aa44 lw t9, -0x7cd0(gp) | t9 = sym.imp.__open64_2;
0x0000aa48 andi v0, v0, 2 | v0 &= 2;
0x0000aa4c lui a1, 8 | a1 = 0x80000;
0x0000aa50 sw v0, 0x88(a0) | *((a0 + 34)) = v0;
0x0000aa54 or a1, v0, a1 | a1 = v0 | a1;
0x0000aa58 jalr t9 | t9 ();
0x0000aa5c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000aa60 sw v0, 0x84(s0) | *((s0 + 33)) = v0;
0x0000aa64 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x0000aa68 lw v1, -0x1af0(v1) | v1 = *((v1 - 1724));
0x0000aa6c andi v1, v1, 4 | v1 &= 4;
0x0000aa70 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000aa74 beqz v1, 0xaa34 |
| } while (v1 == 0);
0x0000aa78 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000aa7c lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000aa80 lw s1, (v0) | s1 = *(v0);
0x0000aa84 jalr t9 | t9 ();
0x0000aa88 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000aa8c move a3, v0 | a3 = v0;
0x0000aa90 addiu a1, zero, 1 | a1 = 1;
0x0000aa94 lw v1, -0x7fd0(gp) | v1 = *((gp - 8180));
0x0000aa98 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000aa9c addiu v1, v1, -0x3490 | v1 += -0x3490;
0x0000aaa0 sw v1, 0x14(sp) | *(var_14h) = v1;
0x0000aaa4 lw v1, -0x7fd0(gp) | v1 = *((gp - 8180));
0x0000aaa8 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000aaac addiu v1, v1, -0x348c | v1 += -0x348c;
0x0000aab0 sw v1, 0x10(sp) | *(var_10h) = v1;
| /* str._d:__s:__8s:_ */
0x0000aab4 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000aab8 move a0, s1 | a0 = s1;
0x0000aabc jalr t9 | t9 ();
0x0000aac0 lw v0, 0x98(s0) | v0 = *((s0 + 38));
0x0000aac4 andi v0, v0, 2 | v0 &= 2;
0x0000aac8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000aacc bnez v0, 0xab0c | goto label_4;
| }
0x0000aad0 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
| /* esilref: 'ro' */
0x0000aad4 addiu a3, a3, -0x3570 | a3 += -0x3570;
| do {
0x0000aad8 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000aadc lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000aae0 move a2, s0 | a2 = s0;
0x0000aae4 move a0, s0 | a0 = s0;
0x0000aae8 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.open__s___s_:__m */
0x0000aaec addiu a1, a1, -0x3318 | a1 += -0x3318;
0x0000aaf0 bal 0x9b48 | fcn_00009b48 ();
0x0000aaf4 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000aaf8 lw v0, 0x84(s0) | v0 = *((s0 + 33));
0x0000aafc lw s1, 0x28(sp) | s1 = *(var_28h);
0x0000ab00 lw s0, 0x24(sp) | s0 = *(var_24h);
0x0000ab04 addiu sp, sp, 0x30 |
0x0000ab08 jr ra | return v0;
| label_4:
0x0000ab0c lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
| /* esilref: 'rw' */
0x0000ab10 addiu a3, a3, -0x331c | a3 += -0x331c;
0x0000ab14 b 0xaad8 |
| } while (1);
| label_2:
0x0000ab18 addiu v0, zero, -0x16 | v0 = -0x16;
0x0000ab1c b 0xaa30 | goto label_0;
| label_1:
0x0000ab20 addiu v0, zero, -0x16 | v0 = -0x16;
0x0000ab24 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xaff0 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_get_info () | void loopcxt_get_info () {
0x0000aff0 lui gp, 3 |
0x0000aff4 addiu gp, gp, -0x4fa0 |
0x0000aff8 addu gp, gp, t9 | gp += t9;
0x0000affc addiu sp, sp, -0x30 |
0x0000b000 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x0000b004 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000b008 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0000b00c sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0000b010 sw s2, 0x28(sp) | *(var_28h) = s2;
0x0000b014 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0000b018 move s0, a0 | s0 = a0;
0x0000b01c jalr t9 | t9 ();
0x0000b020 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s0 == 0) {
0x0000b024 beqz s0, 0xb134 | goto label_2;
| }
0x0000b028 lbu v1, 0x9c(s0) | v1 = *((s0 + 156));
0x0000b02c andi v1, v1, 4 | v1 &= 4;
0x0000b030 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (v1 != 0) {
0x0000b034 bnez v1, 0xb138 | goto label_3;
| }
0x0000b038 sw zero, (v0) | *(v0) = 0;
0x0000b03c lbu v0, 0x9c(s0) | v0 = *((s0 + 156));
0x0000b040 andi v0, v0, 1 | v0 &= 1;
0x0000b044 addiu a0, s0, 0xa8 | a0 = s0 + 0xa8;
| if (v0 == 0) {
0x0000b048 beqz v0, 0xb06c | goto label_4;
| }
| label_0:
0x0000b04c move s1, a0 | s1 = a0;
0x0000b050 lw ra, 0x2c(sp) | ra = *(var_2ch);
| do {
0x0000b054 move v0, s1 | v0 = s1;
0x0000b058 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000b05c lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000b060 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0000b064 addiu sp, sp, 0x30 |
0x0000b068 jr ra | return v0;
| label_4:
0x0000b06c lw t9, -0x7f50(gp) | t9 = sym.loopcxt_get_fd;
0x0000b070 move a0, s0 | a0 = s0;
0x0000b074 bal 0xa9f0 | sym_loopcxt_get_fd ();
0x0000b078 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x0000b07c bltz v0, 0xb15c | goto label_5;
| }
0x0000b080 lw t9, -0x7c20(gp) | t9 = sym.imp.ioctl;
0x0000b084 addiu s1, s0, 0xa8 | s1 = s0 + 0xa8;
0x0000b088 move a0, v0 | a0 = v0;
0x0000b08c move a2, s1 | a2 = s1;
0x0000b090 addiu a1, zero, 0x4c05 | a1 = 0x4c05;
0x0000b094 jalr t9 | t9 ();
0x0000b098 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b09c move a0, s1 | a0 = s1;
0x0000b0a0 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x0000b0a4 lw v1, -0x1af0(v1) | v1 = *((v1 - 1724));
0x0000b0a8 andi v1, v1, 4 | v1 &= 4;
| if (v0 == 0) {
0x0000b0ac beqz v0, 0xb17c | goto label_6;
| }
0x0000b0b0 lbu v0, 0x9c(s0) | v0 = *((s0 + 156));
0x0000b0b4 addiu a0, zero, 1 | a0 = 1;
0x0000b0b8 ins v0, a0, 2, 1 | __asm ("ins v0, a0, 2, 1");
0x0000b0bc sb v0, 0x9c(s0) | *((s0 + 156)) = v0;
| if (v1 == 0) {
0x0000b0c0 beqz v1, 0xb15c | goto label_5;
| }
0x0000b0c4 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000b0c8 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000b0cc move s1, zero | s1 = 0;
0x0000b0d0 lw s2, (v0) | s2 = *(v0);
0x0000b0d4 jalr t9 | t9 ();
0x0000b0d8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b0dc move a3, v0 | a3 = v0;
0x0000b0e0 addiu a1, zero, 1 | a1 = 1;
0x0000b0e4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000b0e8 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000b0ec addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000b0f0 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000b0f4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000b0f8 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000b0fc addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000b100 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000b104 move a0, s2 | a0 = s2;
0x0000b108 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0000b10c jalr t9 | t9 ();
0x0000b110 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b114 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| /* str.reading_loop_info64_FAILED */
0x0000b118 addiu a1, a1, -0x32c4 | a1 += -0x32c4;
| label_1:
0x0000b11c lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000b120 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
0x0000b124 move a0, s0 | a0 = s0;
0x0000b128 bal 0x9b48 | fcn_00009b48 ();
0x0000b12c lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000b130 b 0xb054 |
| } while (1);
| label_2:
0x0000b134 lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_3:
0x0000b138 addiu v1, zero, 0x16 | v1 = 0x16;
0x0000b13c move s1, zero | s1 = 0;
0x0000b140 sw v1, (v0) | *(v0) = v1;
0x0000b144 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000b148 move v0, s1 | v0 = s1;
0x0000b14c lw s0, 0x20(sp) | s0 = *(var_20h);
0x0000b150 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000b154 addiu sp, sp, 0x30 |
0x0000b158 jr ra | return v0;
| label_5:
0x0000b15c lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000b160 move s1, zero | s1 = 0;
0x0000b164 move v0, s1 | v0 = s1;
0x0000b168 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000b16c lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000b170 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0000b174 addiu sp, sp, 0x30 |
0x0000b178 jr ra | return v0;
| label_6:
0x0000b17c lbu v0, 0x9c(s0) | v0 = *((s0 + 156));
0x0000b180 andi v0, v0, 0xfa | v0 &= 0xfa;
0x0000b184 ori v0, v0, 1 | v0 |= 1;
0x0000b188 sb v0, 0x9c(s0) | *((s0 + 156)) = v0;
| if (v1 == 0) {
0x0000b18c beqz v1, 0xb04c | goto label_0;
| }
0x0000b190 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000b194 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000b198 lw s2, (v0) | s2 = *(v0);
0x0000b19c jalr t9 | t9 ();
0x0000b1a0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b1a4 move a3, v0 | a3 = v0;
0x0000b1a8 addiu a1, zero, 1 | a1 = 1;
0x0000b1ac lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000b1b0 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000b1b4 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000b1b8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000b1bc lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000b1c0 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000b1c4 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000b1c8 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000b1cc move a0, s2 | a0 = s2;
0x0000b1d0 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0000b1d4 jalr t9 | t9 ();
0x0000b1d8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b1dc lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| /* str.reading_loop_info64_OK */
0x0000b1e0 addiu a1, a1, -0x32dc | a1 += -0x32dc;
0x0000b1e4 b 0xb11c | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xb350 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_get_offset () | void loopcxt_get_offset () {
0x0000b350 lui gp, 3 |
0x0000b354 addiu gp, gp, -0x5300 |
0x0000b358 addu gp, gp, t9 | gp += t9;
0x0000b35c addiu sp, sp, -0x30 |
0x0000b360 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000b364 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0000b368 sw s2, 0x28(sp) | *(var_28h_2) = s2;
0x0000b36c sw s1, 0x24(sp) | *(var_24h_2) = s1;
0x0000b370 sw ra, 0x2c(sp) | *(var_2ch_2) = ra;
0x0000b374 sw s0, 0x20(sp) | *(var_20h_2) = s0;
0x0000b378 addiu t9, t9, -0x63d0 | t9 += -fcn.000063d0;
0x0000b37c move s1, a0 | s1 = a0;
0x0000b380 move s2, a1 | s2 = a1;
0x0000b384 bal 0x9c30 | fcn_00009c30 ();
0x0000b388 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0000b38c beqz v0, 0xb4bc | goto label_3;
| }
0x0000b390 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x0000b394 lw t9, -0x7f44(gp) | t9 = sym.ul_path_read_u64;
| /* str.loop_offset */
0x0000b398 addiu a2, a2, -0x327c | a2 += -0x327c;
0x0000b39c move a1, s2 | a1 = s2;
0x0000b3a0 move a0, v0 | a0 = v0;
0x0000b3a4 bal 0x12af4 | sym_ul_path_read_u64 ();
0x0000b3a8 move s0, v0 | s0 = v0;
0x0000b3ac lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0000b3b0 beqz v0, 0xb3f4 | goto label_4;
| }
0x0000b3b4 lw v0, 0x98(s1) | v0 = *((s1 + 38));
0x0000b3b8 andi v0, v0, 0x40 | v0 &= 0x40;
0x0000b3bc lw t9, -0x7f48(gp) | t9 = sym.loopcxt_get_info;
| if (v0 == 0) {
0x0000b3c0 beqz v0, 0xb48c | goto label_2;
| }
| label_1:
0x0000b3c4 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000b3c8 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000b3cc andi v0, v0, 4 | v0 &= 4;
0x0000b3d0 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x0000b3d4 bnez v0, 0xb40c | goto label_5;
| }
| do {
0x0000b3d8 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x0000b3dc move v0, s0 | v0 = s0;
0x0000b3e0 lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x0000b3e4 lw s1, 0x24(sp) | s1 = *(var_24h_2);
0x0000b3e8 lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x0000b3ec addiu sp, sp, 0x30 |
0x0000b3f0 jr ra | return v0;
| label_4:
0x0000b3f4 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
| label_0:
0x0000b3f8 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000b3fc andi v0, v0, 4 | v0 &= 4;
0x0000b400 move s0, zero | s0 = 0;
0x0000b404 beqz v0, 0xb3d8 |
| } while (v0 == 0);
0x0000b408 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| label_5:
0x0000b40c lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000b410 lw s2, (v0) | s2 = *(v0);
0x0000b414 jalr t9 | t9 ();
0x0000b418 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000b41c move a3, v0 | a3 = v0;
0x0000b420 move a0, s2 | a0 = s2;
0x0000b424 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000b428 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000b42c addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000b430 sw v0, 0x14(sp) | *(var_14h_2) = v0;
0x0000b434 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000b438 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000b43c addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000b440 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000b444 addiu a1, zero, 1 | a1 = 1;
0x0000b448 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0000b44c jalr t9 | t9 ();
0x0000b450 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000b454 move a2, s0 | a2 = s0;
0x0000b458 move a0, s1 | a0 = s1;
0x0000b45c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000b460 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000b464 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.get_offset__rc_d_ */
0x0000b468 addiu a1, a1, -0x3270 | a1 += -0x3270;
0x0000b46c bal 0x9b48 | fcn_00009b48 ();
0x0000b470 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x0000b474 move v0, s0 | v0 = s0;
0x0000b478 lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x0000b47c lw s1, 0x24(sp) | s1 = *(var_24h_2);
0x0000b480 lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x0000b484 addiu sp, sp, 0x30 |
0x0000b488 jr ra | return v0;
| label_2:
0x0000b48c move a0, s1 | a0 = s1;
0x0000b490 bal 0xaff0 | sym_loopcxt_get_info ();
0x0000b494 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0000b498 beqz v0, 0xb4d4 | goto label_6;
| }
| if (s2 == 0) {
0x0000b49c beql s2, zero, 0xb3f8 | goto label_0;
| }
0x0000b4a0 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000b4a4 lw v1, 0x1c(v0) | v1 = *((v0 + 7));
0x0000b4a8 lw v0, 0x18(v0) | v0 = *((v0 + 6));
0x0000b4ac move s0, zero | s0 = 0;
0x0000b4b0 sw v0, (s2) | *(s2) = v0;
0x0000b4b4 sw v1, 4(s2) | *((s2 + 1)) = v1;
0x0000b4b8 b 0xb3c4 | goto label_1;
| label_3:
0x0000b4bc lw v0, 0x98(s1) | v0 = *((s1 + 38));
0x0000b4c0 andi v0, v0, 0x40 | v0 &= 0x40;
0x0000b4c4 addiu s0, zero, -0x16 | s0 = -0x16;
| if (v0 != 0) {
0x0000b4c8 bnez v0, 0xb3c4 | goto label_1;
| }
0x0000b4cc lw t9, -0x7f48(gp) | t9 = sym.loopcxt_get_info;
0x0000b4d0 b 0xb48c | goto label_2;
| label_6:
0x0000b4d4 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x0000b4d8 jalr t9 | t9 ();
0x0000b4dc nop |
0x0000b4e0 lw s0, (v0) | s0 = *(v0);
0x0000b4e4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000b4e8 negu s0, s0 | __asm ("negu s0, s0");
0x0000b4ec b 0xb3c4 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xc26c */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_get_sizelimit () | void loopcxt_get_sizelimit () {
0x0000c26c lui gp, 3 |
0x0000c270 addiu gp, gp, -0x621c |
0x0000c274 addu gp, gp, t9 | gp += t9;
0x0000c278 addiu sp, sp, -0x30 |
0x0000c27c lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000c280 sw gp, 0x18(sp) | *(var_18h_3) = gp;
0x0000c284 sw s2, 0x28(sp) | *(var_28h_2) = s2;
0x0000c288 sw s1, 0x24(sp) | *(var_24h_2) = s1;
0x0000c28c sw ra, 0x2c(sp) | *(var_2ch_2) = ra;
0x0000c290 sw s0, 0x20(sp) | *(var_20h_2) = s0;
0x0000c294 addiu t9, t9, -0x63d0 | t9 += -fcn.000063d0;
0x0000c298 move s1, a0 | s1 = a0;
0x0000c29c move s2, a1 | s2 = a1;
0x0000c2a0 bal 0x9c30 | fcn_00009c30 ();
0x0000c2a4 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 == 0) {
0x0000c2a8 beqz v0, 0xc3d8 | goto label_3;
| }
0x0000c2ac lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x0000c2b0 lw t9, -0x7f44(gp) | t9 = sym.ul_path_read_u64;
| /* str.loop_sizelimit */
0x0000c2b4 addiu a2, a2, -0x3128 | a2 += -0x3128;
0x0000c2b8 move a1, s2 | a1 = s2;
0x0000c2bc move a0, v0 | a0 = v0;
0x0000c2c0 bal 0x12af4 | sym_ul_path_read_u64 ();
0x0000c2c4 move s0, v0 | s0 = v0;
0x0000c2c8 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 == 0) {
0x0000c2cc beqz v0, 0xc310 | goto label_4;
| }
0x0000c2d0 lw v0, 0x98(s1) | v0 = *((s1 + 38));
0x0000c2d4 andi v0, v0, 0x40 | v0 &= 0x40;
0x0000c2d8 lw t9, -0x7f48(gp) | t9 = sym.loopcxt_get_info;
| if (v0 == 0) {
0x0000c2dc beqz v0, 0xc3a8 | goto label_2;
| }
| label_1:
0x0000c2e0 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000c2e4 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000c2e8 andi v0, v0, 4 | v0 &= 4;
0x0000c2ec lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x0000c2f0 bnez v0, 0xc328 | goto label_5;
| }
| do {
0x0000c2f4 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x0000c2f8 move v0, s0 | v0 = s0;
0x0000c2fc lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x0000c300 lw s1, 0x24(sp) | s1 = *(var_24h_2);
0x0000c304 lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x0000c308 addiu sp, sp, 0x30 |
0x0000c30c jr ra | return v0;
| label_4:
0x0000c310 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
| label_0:
0x0000c314 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000c318 andi v0, v0, 4 | v0 &= 4;
0x0000c31c move s0, zero | s0 = 0;
0x0000c320 beqz v0, 0xc2f4 |
| } while (v0 == 0);
0x0000c324 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| label_5:
0x0000c328 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000c32c lw s2, (v0) | s2 = *(v0);
0x0000c330 jalr t9 | t9 ();
0x0000c334 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0000c338 move a3, v0 | a3 = v0;
0x0000c33c move a0, s2 | a0 = s2;
0x0000c340 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000c344 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000c348 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000c34c sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000c350 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000c354 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000c358 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000c35c addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000c360 addiu a1, zero, 1 | a1 = 1;
0x0000c364 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000c368 jalr t9 | t9 ();
0x0000c36c lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0000c370 move a2, s0 | a2 = s0;
0x0000c374 move a0, s1 | a0 = s1;
0x0000c378 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000c37c lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000c380 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.get_sizelimit__rc_d_ */
0x0000c384 addiu a1, a1, -0x3118 | a1 += -0x3118;
0x0000c388 bal 0x9b48 | fcn_00009b48 ();
0x0000c38c lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x0000c390 move v0, s0 | v0 = s0;
0x0000c394 lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x0000c398 lw s1, 0x24(sp) | s1 = *(var_24h_2);
0x0000c39c lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x0000c3a0 addiu sp, sp, 0x30 |
0x0000c3a4 jr ra | return v0;
| label_2:
0x0000c3a8 move a0, s1 | a0 = s1;
0x0000c3ac bal 0xaff0 | sym_loopcxt_get_info ();
0x0000c3b0 lw gp, 0x18(sp) | gp = *(var_18h_3);
| if (v0 == 0) {
0x0000c3b4 beqz v0, 0xc3f0 | goto label_6;
| }
| if (s2 == 0) {
0x0000c3b8 beql s2, zero, 0xc314 | goto label_0;
| }
0x0000c3bc lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000c3c0 lw v1, 0x24(v0) | v1 = *((v0 + 9));
0x0000c3c4 lw v0, 0x20(v0) | v0 = *((v0 + 8));
0x0000c3c8 move s0, zero | s0 = 0;
0x0000c3cc sw v0, (s2) | *(s2) = v0;
0x0000c3d0 sw v1, 4(s2) | *((s2 + 1)) = v1;
0x0000c3d4 b 0xc2e0 | goto label_1;
| label_3:
0x0000c3d8 lw v0, 0x98(s1) | v0 = *((s1 + 38));
0x0000c3dc andi v0, v0, 0x40 | v0 &= 0x40;
0x0000c3e0 addiu s0, zero, -0x16 | s0 = -0x16;
| if (v0 != 0) {
0x0000c3e4 bnez v0, 0xc2e0 | goto label_1;
| }
0x0000c3e8 lw t9, -0x7f48(gp) | t9 = sym.loopcxt_get_info;
0x0000c3ec b 0xc3a8 | goto label_2;
| label_6:
0x0000c3f0 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x0000c3f4 jalr t9 | t9 ();
0x0000c3f8 nop |
0x0000c3fc lw s0, (v0) | s0 = *(v0);
0x0000c400 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0000c404 negu s0, s0 | __asm ("negu s0, s0");
0x0000c408 b 0xc2e0 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xa480 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_init () | void loopcxt_init () {
0x0000a480 lui gp, 3 |
0x0000a484 addiu gp, gp, -0x4430 |
0x0000a488 addu gp, gp, t9 | gp += t9;
0x0000a48c addiu sp, sp, -0x2a8 |
0x0000a490 lw t9, -0x7cf0(gp) | t9 = sym.imp.memset;
0x0000a494 sw s4, 0x298(sp) | *(var_298h) = s4;
0x0000a498 lw s4, -0x7bc0(gp) | s4 = *((gp - 7920));
0x0000a49c sw s0, 0x288(sp) | *(var_288h) = s0;
0x0000a4a0 addiu s0, sp, 0xc8 | s0 = sp + 0xc8;
0x0000a4a4 lw v0, (s4) | v0 = *(s4);
0x0000a4a8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000a4ac sw s5, 0x29c(sp) | *(var_29ch) = s5;
0x0000a4b0 sw s1, 0x28c(sp) | *(var_28ch) = s1;
0x0000a4b4 sw ra, 0x2a4(sp) | *(var_2a4h) = ra;
0x0000a4b8 sw s6, 0x2a0(sp) | *(var_2a0h) = s6;
0x0000a4bc sw s3, 0x294(sp) | *(var_294h) = s3;
0x0000a4c0 sw s2, 0x290(sp) | *(var_290h) = s2;
0x0000a4c4 move s1, a0 | s1 = a0;
0x0000a4c8 move s5, a1 | s5 = a1;
0x0000a4cc addiu a2, zero, 0x1b8 | a2 = 0x1b8;
0x0000a4d0 move a1, zero | a1 = 0;
0x0000a4d4 move a0, s0 | a0 = s0;
0x0000a4d8 sw v0, 0x284(sp) | *(var_284h) = v0;
0x0000a4dc jalr t9 | t9 ();
0x0000a4e0 nop |
0x0000a4e4 addiu v0, zero, -1 | v0 = -1;
0x0000a4e8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a4ec sw v0, 0x14c(sp) | *(var_14ch) = v0;
| if (s1 == 0) {
0x0000a4f0 beqz s1, 0xa98c | goto label_6;
| }
0x0000a4f4 lw s3, -0x7fdc(gp) | s3 = *((gp - 8183));
0x0000a4f8 lw s2, -0x1af0(s3) | s2 = *((s3 - 1724));
0x0000a4fc andi s2, s2, 4 | s2 &= 4;
| if (s2 == 0) {
0x0000a500 beqz s2, 0xa62c | goto label_7;
| }
| label_0:
0x0000a504 move a0, s0 | a0 = s0;
| if (s2 != 0) {
0x0000a508 beqz s2, 0xa578 |
0x0000a50c lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000a510 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000a514 lw s2, (v0) | s2 = *(v0);
0x0000a518 jalr t9 | t9 ();
0x0000a51c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a520 move a3, v0 | a3 = v0;
0x0000a524 addiu a1, zero, 1 | a1 = 1;
0x0000a528 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a52c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000a530 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000a534 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000a538 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a53c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000a540 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000a544 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000a548 move a0, s2 | a0 = s2;
0x0000a54c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000a550 jalr t9 | t9 ();
0x0000a554 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a558 move a0, s1 | a0 = s1;
0x0000a55c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000a560 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000a564 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.initialize_context */
0x0000a568 addiu a1, a1, -0x33a0 | a1 += -0x33a0;
0x0000a56c bal 0x9b48 | fcn_00009b48 ();
0x0000a570 lw gp, 0x18(sp) | gp = *(var_18h);
| label_3:
0x0000a574 move a0, s0 | a0 = s0;
| }
0x0000a578 move v0, s1 | v0 = s1;
0x0000a57c addiu a2, sp, 0x278 | a2 = sp + 0x278;
| do {
0x0000a580 lw a1, (a0) | a1 = *(a0);
0x0000a584 lw v1, 4(a0) | v1 = *(var_4h);
0x0000a588 swl a1, 3(v0) | __asm ("swl a1, 3(v0)");
0x0000a58c swr a1, (v0) | __asm ("swr a1, (v0)");
0x0000a590 swl v1, 7(v0) | __asm ("swl v1, 7(v0)");
0x0000a594 lw a1, 8(a0) | a1 = *(var_8h);
0x0000a598 swr v1, 4(v0) | __asm ("swr v1, 4(v0)");
0x0000a59c swl a1, 0xb(v0) | __asm ("swl a1, 0xb(v0)");
0x0000a5a0 lw v1, 0xc(a0) | v1 = *(var_ch);
0x0000a5a4 swr a1, 8(v0) | __asm ("swr a1, 8(v0)");
0x0000a5a8 swl v1, 0xf(v0) | __asm ("swl v1, 0xf(v0)");
0x0000a5ac addiu a0, a0, 0x10 | a0 += 0x10;
0x0000a5b0 swr v1, 0xc(v0) | __asm ("swr v1, 0xc(v0)");
0x0000a5b4 addiu v0, v0, 0x10 | v0 += 0x10;
0x0000a5b8 bne a0, a2, 0xa580 |
| } while (a0 != a2);
0x0000a5bc lw a1, (a0) | a1 = *(a0);
0x0000a5c0 lw v1, 4(a0) | v1 = *(var_4h_2);
0x0000a5c4 swl a1, 3(v0) | __asm ("swl a1, 3(v0)");
0x0000a5c8 swr a1, (v0) | __asm ("swr a1, (v0)");
0x0000a5cc swl v1, 7(v0) | __asm ("swl v1, 7(v0)");
0x0000a5d0 lw t9, -0x7f5c(gp) | t9 = sym.loopcxt_set_device;
0x0000a5d4 swr v1, 4(v0) | __asm ("swr v1, 4(v0)");
0x0000a5d8 move a1, zero | a1 = 0;
0x0000a5dc sw s5, 0x98(s1) | *((s1 + 38)) = s5;
0x0000a5e0 move a0, s1 | a0 = s1;
0x0000a5e4 bal 0xa1fc | sym_loopcxt_set_device ();
0x0000a5e8 move s2, v0 | s2 = v0;
0x0000a5ec lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a5f0 beqz v0, 0xa694 |
| while (v0 != 0) {
| label_1:
0x0000a5f4 lw a0, 0x284(sp) | a0 = *(var_284h);
0x0000a5f8 lw v1, (s4) | v1 = *(s4);
0x0000a5fc move v0, s2 | v0 = s2;
| if (a0 != v1) {
0x0000a600 bne a0, v1, 0xa994 | goto label_8;
| }
0x0000a604 lw ra, 0x2a4(sp) | ra = *(var_2a4h);
0x0000a608 lw s6, 0x2a0(sp) | s6 = *(var_2a0h);
0x0000a60c lw s5, 0x29c(sp) | s5 = *(var_29ch);
0x0000a610 lw s4, 0x298(sp) | s4 = *(var_298h);
0x0000a614 lw s3, 0x294(sp) | s3 = *(var_294h);
0x0000a618 lw s2, 0x290(sp) | s2 = *(var_290h);
0x0000a61c lw s1, 0x28c(sp) | s1 = *(var_28ch);
0x0000a620 lw s0, 0x288(sp) | s0 = *(var_288h);
0x0000a624 addiu sp, sp, 0x2a8 |
0x0000a628 jr ra | return v0;
| label_7:
0x0000a62c lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x0000a630 lw t9, -0x7c5c(gp) | t9 = sym.imp.getenv;
| /* str.LOOPDEV_DEBUG */
0x0000a634 addiu a0, a0, -0x33f0 | a0 += -0x33f0;
0x0000a638 jalr t9 | t9 ();
0x0000a63c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000a640 beqz v0, 0xa8c8 | goto label_9;
| }
0x0000a644 lw t9, -0x7ca8(gp) | t9 = sym.imp.strtoul;
0x0000a648 move a0, v0 | a0 = v0;
0x0000a64c move a2, zero | a2 = 0;
0x0000a650 addiu a1, sp, 0x24 | a1 = sp + 0x24;
0x0000a654 jalr t9 | t9 ();
0x0000a658 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0000a65c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a660 move s2, v0 | s2 = v0;
| if (a0 != 0) {
0x0000a664 beqz a0, 0xa680 |
0x0000a668 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000a66c lw t9, -0x7b68(gp) | t9 = sym.imp.strcmp;
| /* esilref: 'all' */
0x0000a670 addiu a1, a1, -0x33e0 | a1 += -0x33e0;
0x0000a674 jalr t9 | t9 ();
0x0000a678 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000a67c beqz v0, 0xa838 | goto label_10;
| }
| }
0x0000a680 sw s2, -0x1af0(s3) | *((s3 - 1724)) = s2;
| if (s2 != 0) {
0x0000a684 bnez s2, 0xa844 | goto label_11;
| }
0x0000a688 addiu v0, zero, 2 | v0 = 2;
0x0000a68c sw v0, -0x1af0(s3) | *((s3 - 1724)) = v0;
0x0000a690 b 0xa504 | goto label_0;
0x0000a694 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000a698 lw t9, -0x7db4(gp) | t9 = sym.imp.__xstat64;
0x0000a69c addiu s0, sp, 0x28 | s0 = sp + 0x28;
0x0000a6a0 move a2, s0 | a2 = s0;
| /* str._sys_block */
0x0000a6a4 addiu a1, a1, -0x338c | a1 += -0x338c;
0x0000a6a8 addiu a0, zero, 3 | a0 = 3;
0x0000a6ac jalr t9 | t9 ();
0x0000a6b0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000a6b4 bnez v0, 0xa6cc |
0x0000a6b8 lw v0, 0x40(sp) | v0 = *(var_40h);
0x0000a6bc addiu v1, zero, 0x4000 | v1 = 0x4000;
0x0000a6c0 andi v0, v0, 0xf000 | v0 &= 0xf000;
| if (v0 == v1) {
0x0000a6c4 beql v0, v1, 0xa808 | goto label_12;
| }
0x0000a6c8 lw v0, 0x98(s1) | v0 = *((s1 + 38));
| }
0x0000a6cc lw v0, 0x98(s1) | v0 = *((s1 + 38));
0x0000a6d0 lw v1, -0x1af0(s3) | v1 = *((s3 - 1724));
0x0000a6d4 addiu a0, zero, -0x41 | a0 = -0x41;
0x0000a6d8 and v0, v0, a0 | v0 &= a0;
0x0000a6dc ori v0, v0, 0x20 | v0 |= 0x20;
0x0000a6e0 andi v1, v1, 4 | v1 &= 4;
0x0000a6e4 sw v0, 0x98(s1) | *((s1 + 38)) = v0;
| if (v1 != 0) {
0x0000a6e8 bnez v1, 0xa79c | goto label_13;
| }
| label_2:
0x0000a6ec andi v0, v0, 0x100 | v0 &= aav.0x00000100;
0x0000a6f0 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000a6f4 bnez v0, 0xa5f4 |
| }
0x0000a6f8 lw t9, -0x7db4(gp) | t9 = sym.imp.__xstat64;
0x0000a6fc move a2, s0 | a2 = s0;
| /* str._dev_loop_control */
0x0000a700 addiu a1, a1, -0x3350 | a1 += -0x3350;
0x0000a704 addiu a0, zero, 3 | a0 = 3;
0x0000a708 jalr t9 | t9 ();
0x0000a70c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000a710 bnez v0, 0xa5f4 | goto label_1;
| }
0x0000a714 lw v1, 0x98(s1) | v1 = *((s1 + 38));
0x0000a718 lw v0, -0x1af0(s3) | v0 = *((s3 - 1724));
0x0000a71c ori v1, v1, 0x100 | v1 |= aav.0x00000100;
0x0000a720 andi v0, v0, 4 | v0 &= 4;
0x0000a724 sw v1, 0x98(s1) | *((s1 + 38)) = v1;
| if (v0 == 0) {
0x0000a728 beqz v0, 0xa5f4 | goto label_1;
| }
0x0000a72c lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000a730 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000a734 move s2, zero | s2 = 0;
0x0000a738 lw s0, (v0) | s0 = *(v0);
0x0000a73c jalr t9 | t9 ();
0x0000a740 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a744 move a3, v0 | a3 = v0;
0x0000a748 addiu a1, zero, 1 | a1 = 1;
0x0000a74c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a750 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000a754 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000a758 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000a75c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a760 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000a764 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000a768 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000a76c move a0, s0 | a0 = s0;
0x0000a770 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000a774 jalr t9 | t9 ();
0x0000a778 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a77c move a0, s1 | a0 = s1;
0x0000a780 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000a784 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000a788 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.init:_loop_control_detected_ */
0x0000a78c addiu a1, a1, -0x333c | a1 += -0x333c;
0x0000a790 bal 0x9b48 | fcn_00009b48 ();
0x0000a794 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a798 b 0xa5f4 | goto label_1;
| label_13:
0x0000a79c lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000a7a0 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000a7a4 lw s5, (v0) | s5 = *(v0);
0x0000a7a8 jalr t9 | t9 ();
0x0000a7ac lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a7b0 move a3, v0 | a3 = v0;
0x0000a7b4 addiu a1, zero, 1 | a1 = 1;
0x0000a7b8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a7bc lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000a7c0 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000a7c4 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000a7c8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a7cc lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000a7d0 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000a7d4 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000a7d8 move a0, s5 | a0 = s5;
0x0000a7dc sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000a7e0 jalr t9 | t9 ();
0x0000a7e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a7e8 move a0, s1 | a0 = s1;
0x0000a7ec lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000a7f0 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000a7f4 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.init:_disable__sys_usage */
0x0000a7f8 addiu a1, a1, -0x3380 | a1 += -0x3380;
0x0000a7fc bal 0x9b48 | fcn_00009b48 ();
0x0000a800 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a804 lw v0, 0x98(s1) | v0 = *((s1 + 38));
| label_12:
0x0000a808 andi v1, v0, 0x20 | v1 = v0 & 0x20;
0x0000a80c lw t9, -0x7f58(gp) | t9 = sym.get_linux_version;
| if (v1 != 0) {
0x0000a810 bnez v1, 0xa6ec | goto label_2;
| }
0x0000a814 bal 0x181e0 | sym_get_linux_version ();
0x0000a818 nop |
0x0000a81c lui v1, 2 | v1 = 0x20625;
0x0000a820 addiu v1, v1, 0x625 |
0x0000a824 slt v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x0000a828 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000a82c beqz v0, 0xa8d4 |
0x0000a830 lw v0, 0x98(s1) | v0 = *((s1 + 38));
0x0000a834 b 0xa6ec | goto label_2;
| label_10:
0x0000a838 ori v0, zero, 0xffff | v0 = 0xffff;
0x0000a83c sw v0, -0x1af0(s3) | *((s3 - 1724)) = v0;
0x0000a840 ori s2, zero, 0xffff | s2 = 0xffff;
| label_11:
0x0000a844 lw t9, -0x7bf0(gp) | t9 = sym.imp.getuid;
0x0000a848 jalr t9 | t9 ();
0x0000a84c nop |
0x0000a850 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a854 lw t9, -0x7c00(gp) | t9 = sym.imp.geteuid;
0x0000a858 move s6, v0 | s6 = v0;
0x0000a85c jalr t9 | t9 ();
0x0000a860 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s6 == v0) {
0x0000a864 beq s6, v0, 0xa95c | goto label_14;
| }
| label_4:
0x0000a868 lui v0, 0x100 | v0 = imp.__progname;
0x0000a86c or s2, s2, v0 | s2 |= v0;
0x0000a870 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000a874 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000a878 sw s2, -0x1af0(s3) | *((s3 - 1724)) = s2;
0x0000a87c lw s6, (v0) | s6 = *(v0);
0x0000a880 jalr t9 | t9 ();
0x0000a884 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a888 move a3, v0 | a3 = v0;
0x0000a88c addiu a1, zero, 1 | a1 = 1;
0x0000a890 lw v1, -0x7fd0(gp) | v1 = *((gp - 8180));
0x0000a894 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x0000a898 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000a89c addiu v1, v1, -0x348c | v1 += -0x348c;
0x0000a8a0 sw v1, 0x10(sp) | *(var_10h) = v1;
| /* str._d:__s:_dont_print_memory_addresses__SUID_executable_._n */
0x0000a8a4 addiu a2, a2, -0x33dc | a2 += -0x33dc;
0x0000a8a8 move a0, s6 | a0 = s6;
0x0000a8ac jalr t9 | t9 ();
0x0000a8b0 lw s2, -0x1af0(s3) | s2 = *((s3 - 1724));
0x0000a8b4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a8b8 ori v0, s2, 2 | v0 = s2 | 2;
0x0000a8bc andi s2, s2, 4 | s2 &= 4;
| label_5:
0x0000a8c0 sw v0, -0x1af0(s3) | *((s3 - 1724)) = v0;
0x0000a8c4 b 0xa504 | goto label_0;
| label_9:
0x0000a8c8 addiu v0, zero, 2 | v0 = 2;
0x0000a8cc sw v0, -0x1af0(s3) | *((s3 - 1724)) = v0;
0x0000a8d0 b 0xa574 | goto label_3;
| }
0x0000a8d4 lw v0, 0x98(s1) | v0 = *((s1 + 38));
0x0000a8d8 lw v1, -0x1af0(s3) | v1 = *((s3 - 1724));
0x0000a8dc ori v0, v0, 0x40 | v0 |= 0x40;
0x0000a8e0 andi v1, v1, 4 | v1 &= 4;
0x0000a8e4 sw v0, 0x98(s1) | *((s1 + 38)) = v0;
| if (v1 == 0) {
0x0000a8e8 beqz v1, 0xa6ec | goto label_2;
| }
0x0000a8ec lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000a8f0 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000a8f4 lw s5, (v0) | s5 = *(v0);
0x0000a8f8 jalr t9 | t9 ();
0x0000a8fc lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a900 move a3, v0 | a3 = v0;
0x0000a904 addiu a1, zero, 1 | a1 = 1;
0x0000a908 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a90c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000a910 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000a914 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000a918 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a91c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000a920 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000a924 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000a928 move a0, s5 | a0 = s5;
0x0000a92c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000a930 jalr t9 | t9 ();
0x0000a934 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a938 move a0, s1 | a0 = s1;
0x0000a93c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000a940 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000a944 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.init:_ignore_ioctls */
0x0000a948 addiu a1, a1, -0x3364 | a1 += -0x3364;
0x0000a94c bal 0x9b48 | fcn_00009b48 ();
0x0000a950 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a954 lw v0, 0x98(s1) | v0 = *((s1 + 38));
0x0000a958 b 0xa6ec | goto label_2;
| label_14:
0x0000a95c lw t9, -0x7cec(gp) | t9 = sym.imp.getgid;
0x0000a960 jalr t9 | t9 ();
0x0000a964 nop |
0x0000a968 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000a96c lw t9, -0x7c1c(gp) | t9 = sym.strtos64_or_err;
0x0000a970 move s6, v0 | s6 = v0;
0x0000a974 jalr t9 | t9 ();
0x0000a978 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s6 != v0) {
0x0000a97c bne s6, v0, 0xa868 | goto label_4;
| }
0x0000a980 ori v0, s2, 2 | v0 = s2 | 2;
0x0000a984 andi s2, s2, 4 | s2 &= 4;
0x0000a988 b 0xa8c0 | goto label_5;
| label_6:
0x0000a98c addiu s2, zero, -0x16 | s2 = -0x16;
0x0000a990 b 0xa5f4 | goto label_1;
| label_8:
0x0000a994 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000a998 jalr t9 | t9 ();
0x0000a99c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xab48 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_init_iterator () | void loopcxt_init_iterator () {
0x0000ab48 lui gp, 3 |
0x0000ab4c addiu gp, gp, -0x4af8 |
0x0000ab50 addu gp, gp, t9 | gp += t9;
0x0000ab54 addiu sp, sp, -0xe0 |
0x0000ab58 sw s1, 0xcc(sp) | *(var_cch) = s1;
0x0000ab5c lw s1, -0x7bc0(gp) | s1 = *((gp - 7920));
0x0000ab60 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000ab64 sw ra, 0xdc(sp) | *(var_dch) = ra;
0x0000ab68 lw v0, (s1) | v0 = *(s1);
0x0000ab6c sw s4, 0xd8(sp) | *(var_d8h) = s4;
0x0000ab70 sw s3, 0xd4(sp) | *(var_d4h) = s3;
0x0000ab74 sw s2, 0xd0(sp) | *(var_d0h) = s2;
0x0000ab78 sw s0, 0xc8(sp) | *(var_c8h) = s0;
0x0000ab7c sw v0, 0xc4(sp) | *(var_c4h) = v0;
0x0000ab80 move s3, a1 | s3 = a1;
| if (a0 == 0) {
0x0000ab84 beqz a0, 0xace4 | goto label_4;
| }
0x0000ab88 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000ab8c move s0, a0 | s0 = a0;
0x0000ab90 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000ab94 andi v0, v0, 8 | v0 &= 8;
0x0000ab98 addiu s2, a0, 0x190 | s2 = a0 + 0x190;
| if (v0 != 0) {
0x0000ab9c bnez v0, 0xac38 | goto label_5;
| }
| label_0:
0x0000aba0 lw t9, -0x7cf0(gp) | t9 = sym.imp.memset;
0x0000aba4 move a0, s2 | a0 = s2;
0x0000aba8 addiu a2, zero, 0x24 | a2 = 0x24;
0x0000abac move a1, zero | a1 = 0;
0x0000abb0 jalr t9 | t9 ();
0x0000abb4 lbu v1, 0x1ac(s0) | v1 = *(s0);
0x0000abb8 lbu v0, 0x9c(s0) | v0 = *((s0 + 156));
0x0000abbc addiu a0, zero, 1 | a0 = 1;
0x0000abc0 ins v1, a0, 1, 1 | __asm ("ins v1, a0, 1, 1");
0x0000abc4 andi v0, v0, 2 | v0 &= 2;
0x0000abc8 addiu a0, zero, -1 | a0 = -1;
0x0000abcc lw gp, 0x18(sp) | gp = *(var_18h);
0x0000abd0 sw a0, 0x198(s0) | *((s0 + 102)) = a0;
0x0000abd4 sw s3, 0x1b0(s0) | *(s0) = s3;
0x0000abd8 sb v1, 0x1ac(s0) | *(s0) = v1;
| if (v0 == 0) {
0x0000abdc beqz v0, 0xac10 | goto label_6;
| }
0x0000abe0 move v0, zero | v0 = 0;
| do {
| label_3:
0x0000abe4 lw a0, 0xc4(sp) | a0 = *(var_c4h);
0x0000abe8 lw v1, (s1) | v1 = *(s1);
0x0000abec lw ra, 0xdc(sp) | ra = *(var_dch);
| if (a0 != v1) {
0x0000abf0 bne a0, v1, 0xacec | goto label_7;
| }
0x0000abf4 lw s4, 0xd8(sp) | s4 = *(var_d8h);
0x0000abf8 lw s3, 0xd4(sp) | s3 = *(var_d4h);
0x0000abfc lw s2, 0xd0(sp) | s2 = *(var_d0h);
0x0000ac00 lw s1, 0xcc(sp) | s1 = *(var_cch);
0x0000ac04 lw s0, 0xc8(sp) | s0 = *(var_c8h);
0x0000ac08 addiu sp, sp, 0xe0 |
0x0000ac0c jr ra | return v0;
| label_6:
0x0000ac10 lw v0, 0x98(s0) | v0 = *((s0 + 38));
0x0000ac14 andi v0, v0, 0x80 | v0 &= 0x80;
| if (v0 == 0) {
0x0000ac18 beql v0, zero, 0xaca4 | goto label_8;
| }
0x0000ac1c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| label_1:
0x0000ac20 lbu v0, 0x9c(s0) | v0 = *((s0 + 156));
| label_2:
0x0000ac24 addiu v1, zero, 1 | v1 = 1;
0x0000ac28 ins v0, v1, 1, 1 | __asm ("ins v0, v1, 1, 1");
0x0000ac2c sb v0, 0x9c(s0) | *((s0 + 156)) = v0;
0x0000ac30 move v0, zero | v0 = 0;
0x0000ac34 b 0xabe4 |
| } while (1);
| label_5:
0x0000ac38 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000ac3c lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000ac40 lw s4, (v0) | s4 = *(v0);
0x0000ac44 jalr t9 | t9 ();
0x0000ac48 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ac4c move a3, v0 | a3 = v0;
0x0000ac50 addiu a1, zero, 1 | a1 = 1;
0x0000ac54 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000ac58 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* str.ITER */
0x0000ac5c addiu v0, v0, -0x3440 | v0 += -0x3440;
0x0000ac60 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000ac64 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000ac68 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000ac6c addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000ac70 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000ac74 move a0, s4 | a0 = s4;
0x0000ac78 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000ac7c jalr t9 | t9 ();
0x0000ac80 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ac84 move a0, s2 | a0 = s2;
0x0000ac88 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000ac8c lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000ac90 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.initialize */
0x0000ac94 addiu a1, a1, -0x3304 | a1 += -0x3304;
0x0000ac98 bal 0x9b48 | fcn_00009b48 ();
0x0000ac9c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000aca0 b 0xaba0 | goto label_0;
| label_8:
0x0000aca4 lw t9, -0x7db4(gp) | t9 = sym.imp.__xstat64;
0x0000aca8 addiu a2, sp, 0x20 | a2 = sp + 0x20;
| /* str._dev_loop */
0x0000acac addiu a1, a1, -0x32f8 | a1 += -0x32f8;
0x0000acb0 addiu a0, zero, 3 | a0 = 3;
0x0000acb4 jalr t9 | t9 ();
0x0000acb8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000acbc bnez v0, 0xac20 | goto label_1;
| }
0x0000acc0 lw v0, 0x38(sp) | v0 = *(var_38h);
0x0000acc4 addiu v1, zero, 0x4000 | v1 = 0x4000;
0x0000acc8 andi v0, v0, 0xf000 | v0 &= 0xf000;
0x0000accc lbu v0, 0x9c(s0) | v0 = *((s0 + 156));
| if (v0 == v1) {
0x0000acd0 bnel v0, v1, 0xac24 | goto label_2;
| }
0x0000acd4 lw v0, 0x98(s0) | v0 = *((s0 + 38));
0x0000acd8 ori v0, v0, 0x80 | v0 |= 0x80;
0x0000acdc sw v0, 0x98(s0) | *((s0 + 38)) = v0;
0x0000ace0 b 0xac20 | goto label_1;
| label_4:
0x0000ace4 addiu v0, zero, -0x16 | v0 = -0x16;
0x0000ace8 b 0xabe4 | goto label_3;
| label_7:
0x0000acec lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000acf0 jalr t9 | t9 ();
0x0000acf4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xab48 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_init_iterator () | void loopcxt_init_iterator () {
0x0000ab48 lui gp, 3 |
0x0000ab4c addiu gp, gp, -0x4af8 |
0x0000ab50 addu gp, gp, t9 | gp += t9;
0x0000ab54 addiu sp, sp, -0xe0 |
0x0000ab58 sw s1, 0xcc(sp) | *(var_cch) = s1;
0x0000ab5c lw s1, -0x7bc0(gp) | s1 = *((gp - 7920));
0x0000ab60 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000ab64 sw ra, 0xdc(sp) | *(var_dch) = ra;
0x0000ab68 lw v0, (s1) | v0 = *(s1);
0x0000ab6c sw s4, 0xd8(sp) | *(var_d8h) = s4;
0x0000ab70 sw s3, 0xd4(sp) | *(var_d4h) = s3;
0x0000ab74 sw s2, 0xd0(sp) | *(var_d0h) = s2;
0x0000ab78 sw s0, 0xc8(sp) | *(var_c8h) = s0;
0x0000ab7c sw v0, 0xc4(sp) | *(var_c4h) = v0;
0x0000ab80 move s3, a1 | s3 = a1;
| if (a0 == 0) {
0x0000ab84 beqz a0, 0xace4 | goto label_4;
| }
0x0000ab88 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000ab8c move s0, a0 | s0 = a0;
0x0000ab90 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000ab94 andi v0, v0, 8 | v0 &= 8;
0x0000ab98 addiu s2, a0, 0x190 | s2 = a0 + 0x190;
| if (v0 != 0) {
0x0000ab9c bnez v0, 0xac38 | goto label_5;
| }
| label_0:
0x0000aba0 lw t9, -0x7cf0(gp) | t9 = sym.imp.memset;
0x0000aba4 move a0, s2 | a0 = s2;
0x0000aba8 addiu a2, zero, 0x24 | a2 = 0x24;
0x0000abac move a1, zero | a1 = 0;
0x0000abb0 jalr t9 | t9 ();
0x0000abb4 lbu v1, 0x1ac(s0) | v1 = *(s0);
0x0000abb8 lbu v0, 0x9c(s0) | v0 = *((s0 + 156));
0x0000abbc addiu a0, zero, 1 | a0 = 1;
0x0000abc0 ins v1, a0, 1, 1 | __asm ("ins v1, a0, 1, 1");
0x0000abc4 andi v0, v0, 2 | v0 &= 2;
0x0000abc8 addiu a0, zero, -1 | a0 = -1;
0x0000abcc lw gp, 0x18(sp) | gp = *(var_18h);
0x0000abd0 sw a0, 0x198(s0) | *((s0 + 102)) = a0;
0x0000abd4 sw s3, 0x1b0(s0) | *(s0) = s3;
0x0000abd8 sb v1, 0x1ac(s0) | *(s0) = v1;
| if (v0 == 0) {
0x0000abdc beqz v0, 0xac10 | goto label_6;
| }
0x0000abe0 move v0, zero | v0 = 0;
| do {
| label_3:
0x0000abe4 lw a0, 0xc4(sp) | a0 = *(var_c4h);
0x0000abe8 lw v1, (s1) | v1 = *(s1);
0x0000abec lw ra, 0xdc(sp) | ra = *(var_dch);
| if (a0 != v1) {
0x0000abf0 bne a0, v1, 0xacec | goto label_7;
| }
0x0000abf4 lw s4, 0xd8(sp) | s4 = *(var_d8h);
0x0000abf8 lw s3, 0xd4(sp) | s3 = *(var_d4h);
0x0000abfc lw s2, 0xd0(sp) | s2 = *(var_d0h);
0x0000ac00 lw s1, 0xcc(sp) | s1 = *(var_cch);
0x0000ac04 lw s0, 0xc8(sp) | s0 = *(var_c8h);
0x0000ac08 addiu sp, sp, 0xe0 |
0x0000ac0c jr ra | return v0;
| label_6:
0x0000ac10 lw v0, 0x98(s0) | v0 = *((s0 + 38));
0x0000ac14 andi v0, v0, 0x80 | v0 &= 0x80;
| if (v0 == 0) {
0x0000ac18 beql v0, zero, 0xaca4 | goto label_8;
| }
0x0000ac1c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| label_1:
0x0000ac20 lbu v0, 0x9c(s0) | v0 = *((s0 + 156));
| label_2:
0x0000ac24 addiu v1, zero, 1 | v1 = 1;
0x0000ac28 ins v0, v1, 1, 1 | __asm ("ins v0, v1, 1, 1");
0x0000ac2c sb v0, 0x9c(s0) | *((s0 + 156)) = v0;
0x0000ac30 move v0, zero | v0 = 0;
0x0000ac34 b 0xabe4 |
| } while (1);
| label_5:
0x0000ac38 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000ac3c lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000ac40 lw s4, (v0) | s4 = *(v0);
0x0000ac44 jalr t9 | t9 ();
0x0000ac48 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ac4c move a3, v0 | a3 = v0;
0x0000ac50 addiu a1, zero, 1 | a1 = 1;
0x0000ac54 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000ac58 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* str.ITER */
0x0000ac5c addiu v0, v0, -0x3440 | v0 += -0x3440;
0x0000ac60 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000ac64 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000ac68 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000ac6c addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000ac70 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000ac74 move a0, s4 | a0 = s4;
0x0000ac78 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000ac7c jalr t9 | t9 ();
0x0000ac80 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ac84 move a0, s2 | a0 = s2;
0x0000ac88 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000ac8c lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000ac90 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.initialize */
0x0000ac94 addiu a1, a1, -0x3304 | a1 += -0x3304;
0x0000ac98 bal 0x9b48 | fcn_00009b48 ();
0x0000ac9c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000aca0 b 0xaba0 | goto label_0;
| label_8:
0x0000aca4 lw t9, -0x7db4(gp) | t9 = sym.imp.__xstat64;
0x0000aca8 addiu a2, sp, 0x20 | a2 = sp + 0x20;
| /* str._dev_loop */
0x0000acac addiu a1, a1, -0x32f8 | a1 += -0x32f8;
0x0000acb0 addiu a0, zero, 3 | a0 = 3;
0x0000acb4 jalr t9 | t9 ();
0x0000acb8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000acbc bnez v0, 0xac20 | goto label_1;
| }
0x0000acc0 lw v0, 0x38(sp) | v0 = *(var_38h);
0x0000acc4 addiu v1, zero, 0x4000 | v1 = 0x4000;
0x0000acc8 andi v0, v0, 0xf000 | v0 &= 0xf000;
0x0000accc lbu v0, 0x9c(s0) | v0 = *((s0 + 156));
| if (v0 == v1) {
0x0000acd0 bnel v0, v1, 0xac24 | goto label_2;
| }
0x0000acd4 lw v0, 0x98(s0) | v0 = *((s0 + 38));
0x0000acd8 ori v0, v0, 0x80 | v0 |= 0x80;
0x0000acdc sw v0, 0x98(s0) | *((s0 + 38)) = v0;
0x0000ace0 b 0xac20 | goto label_1;
| label_4:
0x0000ace4 addiu v0, zero, -0x16 | v0 = -0x16;
0x0000ace8 b 0xabe4 | goto label_3;
| label_7:
0x0000acec lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000acf0 jalr t9 | t9 ();
0x0000acf4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xda84 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_ioctl_blocksize () | void loopcxt_ioctl_blocksize () {
0x0000da84 lui gp, 3 |
0x0000da88 addiu gp, gp, -0x7a34 |
0x0000da8c addu gp, gp, t9 | gp += t9;
0x0000da90 addiu sp, sp, -0x30 |
0x0000da94 lw t9, -0x7f50(gp) | t9 = sym.loopcxt_get_fd;
0x0000da98 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000da9c sw s1, 0x24(sp) | *(var_24h) = s1;
0x0000daa0 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0000daa4 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0000daa8 sw s2, 0x28(sp) | *(var_28h) = s2;
0x0000daac move s1, a0 | s1 = a0;
0x0000dab0 move s0, a2 | s0 = a2;
0x0000dab4 bal 0xa9f0 | sym_loopcxt_get_fd ();
0x0000dab8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x0000dabc bltz v0, 0xdc24 | goto label_1;
| }
0x0000dac0 lw t9, -0x7c20(gp) | t9 = sym.imp.ioctl;
0x0000dac4 move a2, s0 | a2 = s0;
0x0000dac8 addiu a1, zero, 0x4c09 | a1 = 0x4c09;
0x0000dacc move a0, v0 | a0 = v0;
0x0000dad0 jalr t9 | t9 ();
0x0000dad4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000dad8 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x0000dadc lw s0, -0x1af0(v1) | s0 = *((v1 - 1724));
0x0000dae0 andi s0, s0, 4 | s0 &= 4;
| if (v0 < 0) {
0x0000dae4 bltz v0, 0xdb8c | goto label_2;
| }
0x0000dae8 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (s0 == 0) {
0x0000daec bnez s0, 0xdb0c |
| label_0:
0x0000daf0 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000daf4 move v0, s0 | v0 = s0;
0x0000daf8 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000dafc lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000db00 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0000db04 addiu sp, sp, 0x30 |
0x0000db08 jr ra | return v0;
| }
0x0000db0c lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000db10 move s0, zero | s0 = 0;
0x0000db14 lw s2, (v0) | s2 = *(v0);
0x0000db18 jalr t9 | t9 ();
0x0000db1c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000db20 move a3, v0 | a3 = v0;
0x0000db24 addiu a1, zero, 1 | a1 = 1;
0x0000db28 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000db2c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000db30 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000db34 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000db38 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000db3c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000db40 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000db44 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000db48 move a0, s2 | a0 = s2;
0x0000db4c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000db50 jalr t9 | t9 ();
0x0000db54 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000db58 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| /* str.logical_block_size_set */
0x0000db5c addiu a1, a1, -0x2f00 | a1 += -0x2f00;
| do {
0x0000db60 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000db64 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
0x0000db68 move a0, s1 | a0 = s1;
0x0000db6c bal 0x9b48 | fcn_00009b48 ();
0x0000db70 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000db74 move v0, s0 | v0 = s0;
0x0000db78 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000db7c lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000db80 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0000db84 addiu sp, sp, 0x30 |
0x0000db88 jr ra | return v0;
| label_2:
0x0000db8c lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x0000db90 jalr t9 | t9 ();
0x0000db94 nop |
0x0000db98 lw v0, (v0) | v0 = *(v0);
0x0000db9c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000dba0 negu v0, v0 | __asm ("negu v0, v0");
| if (s0 == 0) {
0x0000dba4 bnez s0, 0xdbc8 |
0x0000dba8 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000dbac move s0, v0 | s0 = v0;
0x0000dbb0 move v0, s0 | v0 = s0;
0x0000dbb4 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000dbb8 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000dbbc lw s0, 0x20(sp) | s0 = *(var_20h);
0x0000dbc0 addiu sp, sp, 0x30 |
0x0000dbc4 jr ra | return v0;
| }
0x0000dbc8 move s0, v0 | s0 = v0;
0x0000dbcc lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000dbd0 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000dbd4 lw s2, (v0) | s2 = *(v0);
0x0000dbd8 jalr t9 | t9 ();
0x0000dbdc lw gp, 0x18(sp) | gp = *(var_18h);
0x0000dbe0 move a3, v0 | a3 = v0;
0x0000dbe4 addiu a1, zero, 1 | a1 = 1;
0x0000dbe8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000dbec lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000dbf0 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000dbf4 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000dbf8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000dbfc lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000dc00 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000dc04 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000dc08 move a0, s2 | a0 = s2;
0x0000dc0c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000dc10 jalr t9 | t9 ();
0x0000dc14 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000dc18 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| /* str.LOOP_SET_BLOCK_SIZE_failed:__m */
0x0000dc1c addiu a1, a1, -0x2f20 | a1 += -0x2f20;
0x0000dc20 b 0xdb60 |
| } while (1);
| label_1:
0x0000dc24 addiu s0, zero, -0x16 | s0 = -0x16;
0x0000dc28 b 0xdaf0 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xd738 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_ioctl_capacity () | void loopcxt_ioctl_capacity () {
0x0000d738 lui gp, 3 |
0x0000d73c addiu gp, gp, -0x76e8 |
0x0000d740 addu gp, gp, t9 | gp += t9;
0x0000d744 addiu sp, sp, -0x30 |
0x0000d748 lw t9, -0x7f50(gp) | t9 = sym.loopcxt_get_fd;
0x0000d74c sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000d750 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0000d754 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0000d758 sw s2, 0x28(sp) | *(var_28h) = s2;
0x0000d75c sw s0, 0x20(sp) | *(var_20h) = s0;
0x0000d760 move s1, a0 | s1 = a0;
0x0000d764 bal 0xa9f0 | sym_loopcxt_get_fd ();
0x0000d768 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x0000d76c bltz v0, 0xd8d4 | goto label_1;
| }
0x0000d770 lw t9, -0x7c20(gp) | t9 = sym.imp.ioctl;
0x0000d774 move a2, zero | a2 = 0;
0x0000d778 addiu a1, zero, 0x4c07 | a1 = 0x4c07;
0x0000d77c move a0, v0 | a0 = v0;
0x0000d780 jalr t9 | t9 ();
0x0000d784 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d788 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x0000d78c lw s0, -0x1af0(v1) | s0 = *((v1 - 1724));
0x0000d790 andi s0, s0, 4 | s0 &= 4;
| if (v0 < 0) {
0x0000d794 bltz v0, 0xd83c | goto label_2;
| }
0x0000d798 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (s0 == 0) {
0x0000d79c bnez s0, 0xd7bc |
| label_0:
0x0000d7a0 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000d7a4 move v0, s0 | v0 = s0;
0x0000d7a8 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000d7ac lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000d7b0 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0000d7b4 addiu sp, sp, 0x30 |
0x0000d7b8 jr ra | return v0;
| }
0x0000d7bc lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000d7c0 move s0, zero | s0 = 0;
0x0000d7c4 lw s2, (v0) | s2 = *(v0);
0x0000d7c8 jalr t9 | t9 ();
0x0000d7cc lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d7d0 move a3, v0 | a3 = v0;
0x0000d7d4 addiu a1, zero, 1 | a1 = 1;
0x0000d7d8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000d7dc lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000d7e0 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000d7e4 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000d7e8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000d7ec lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000d7f0 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000d7f4 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000d7f8 move a0, s2 | a0 = s2;
0x0000d7fc sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000d800 jalr t9 | t9 ();
0x0000d804 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d808 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| /* str.capacity_set */
0x0000d80c addiu a1, a1, -0x2f60 | a1 += -0x2f60;
| do {
0x0000d810 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000d814 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
0x0000d818 move a0, s1 | a0 = s1;
0x0000d81c bal 0x9b48 | fcn_00009b48 ();
0x0000d820 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000d824 move v0, s0 | v0 = s0;
0x0000d828 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000d82c lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000d830 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0000d834 addiu sp, sp, 0x30 |
0x0000d838 jr ra | return v0;
| label_2:
0x0000d83c lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x0000d840 jalr t9 | t9 ();
0x0000d844 nop |
0x0000d848 lw v0, (v0) | v0 = *(v0);
0x0000d84c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d850 negu v0, v0 | __asm ("negu v0, v0");
| if (s0 == 0) {
0x0000d854 bnez s0, 0xd878 |
0x0000d858 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000d85c move s0, v0 | s0 = v0;
0x0000d860 move v0, s0 | v0 = s0;
0x0000d864 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0000d868 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000d86c lw s0, 0x20(sp) | s0 = *(var_20h);
0x0000d870 addiu sp, sp, 0x30 |
0x0000d874 jr ra | return v0;
| }
0x0000d878 move s0, v0 | s0 = v0;
0x0000d87c lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000d880 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000d884 lw s2, (v0) | s2 = *(v0);
0x0000d888 jalr t9 | t9 ();
0x0000d88c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d890 move a3, v0 | a3 = v0;
0x0000d894 addiu a1, zero, 1 | a1 = 1;
0x0000d898 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000d89c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000d8a0 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000d8a4 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000d8a8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000d8ac lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000d8b0 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000d8b4 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000d8b8 move a0, s2 | a0 = s2;
0x0000d8bc sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000d8c0 jalr t9 | t9 ();
0x0000d8c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d8c8 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| /* str.LOOP_SET_CAPACITY_failed:__m */
0x0000d8cc addiu a1, a1, -0x2f80 | a1 += -0x2f80;
0x0000d8d0 b 0xd810 |
| } while (1);
| label_1:
0x0000d8d4 addiu s0, zero, -0x16 | s0 = -0x16;
0x0000d8d8 b 0xd7a0 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xcc80 */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_is_used () | void loopcxt_is_used () {
0x0000cc80 lui gp, 3 |
0x0000cc84 addiu gp, gp, -0x6c30 |
0x0000cc88 addu gp, gp, t9 | gp += t9;
0x0000cc8c addiu sp, sp, -0x70 |
0x0000cc90 move v1, zero | v1 = 0;
0x0000cc94 sw s1, 0x4c(sp) | *(var_4ch) = s1;
0x0000cc98 lw s1, -0x7bc0(gp) | s1 = *((gp - 7920));
0x0000cc9c sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0000cca0 sw s6, 0x60(sp) | *(var_60h) = s6;
0x0000cca4 lw v0, (s1) | v0 = *(s1);
0x0000cca8 sw s5, 0x5c(sp) | *(var_5ch) = s5;
0x0000ccac sw v0, 0x44(sp) | *(var_44h) = v0;
0x0000ccb0 move v0, zero | v0 = 0;
0x0000ccb4 sw s4, 0x58(sp) | *(var_58h) = s4;
0x0000ccb8 sw s3, 0x54(sp) | *(var_54h) = s3;
0x0000ccbc sw ra, 0x6c(sp) | *(var_6ch) = ra;
0x0000ccc0 sw fp, 0x68(sp) | *(var_68h) = fp;
0x0000ccc4 sw s7, 0x64(sp) | *(var_64h) = s7;
0x0000ccc8 sw s2, 0x50(sp) | *(var_50h) = s2;
0x0000cccc sw s0, 0x48(sp) | *(var_48h) = s0;
0x0000ccd0 lw s3, 0x80(sp) | s3 = *(var_10h_5);
0x0000ccd4 lw s4, 0x84(sp) | s4 = *(var_84h);
0x0000ccd8 lw s6, 0x88(sp) | s6 = *(var_88h);
0x0000ccdc lw s5, 0x8c(sp) | s5 = *(var_1ch_5);
0x0000cce0 sw v0, 0x20(sp) | *(var_20h_2) = v0;
0x0000cce4 sw v1, 0x24(sp) | *(var_24h_6) = v1;
0x0000cce8 sw v0, 0x28(sp) | *(var_28h_5) = v0;
0x0000ccec sw v1, 0x2c(sp) | *(var_2ch_5) = v1;
| if (a0 == 0) {
0x0000ccf0 beqz a0, 0xcddc | goto label_2;
| }
0x0000ccf4 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000ccf8 move s0, a0 | s0 = a0;
0x0000ccfc move s7, a1 | s7 = a1;
0x0000cd00 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000cd04 andi v0, v0, 4 | v0 &= 4;
0x0000cd08 move s2, a2 | s2 = a2;
| if (v0 != 0) {
0x0000cd0c bnez v0, 0xce38 | goto label_4;
| }
| label_1:
0x0000cd10 lw t9, -0x7f2c(gp) | t9 = sym.loopcxt_get_backing_inode;
| if (s7 == 0) {
0x0000cd14 beqz s7, 0xcd2c | goto label_5;
| }
0x0000cd18 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x0000cd1c move a0, s0 | a0 = s0;
0x0000cd20 bal 0xc764 | sym_loopcxt_get_backing_inode ();
0x0000cd24 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000cd28 beqz v0, 0xcd88 |
| while (v0 != 0) {
| label_5:
0x0000cd2c lw t9, -0x7f28(gp) | t9 = sym.loopcxt_get_backing_file;
| if (s2 == 0) {
0x0000cd30 beqz s2, 0xcddc | goto label_2;
| }
0x0000cd34 move a0, s0 | a0 = s0;
0x0000cd38 bal 0xb1e8 | sym_loopcxt_get_backing_file ();
0x0000cd3c move s7, v0 | s7 = v0;
0x0000cd40 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0000cd44 beqz v0, 0xce20 | goto label_6;
| }
0x0000cd48 lw t9, -0x7b68(gp) | t9 = sym.imp.strcmp;
0x0000cd4c move a1, s2 | a1 = s2;
0x0000cd50 move a0, v0 | a0 = v0;
0x0000cd54 jalr t9 | t9 ();
0x0000cd58 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x0000cd5c bnez v0, 0xce20 | goto label_6;
| }
0x0000cd60 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x0000cd64 move a0, s7 | a0 = s7;
0x0000cd68 jalr t9 | t9 ();
0x0000cd6c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000cd70 lw v0, 0x90(sp) | v0 = *(var_90h);
| label_0:
0x0000cd74 andi v0, v0, 0x10 | v0 &= 0x10;
0x0000cd78 lw t9, -0x7f3c(gp) | t9 = sym.loopcxt_get_offset;
| if (v0 != 0) {
0x0000cd7c bnez v0, 0xcebc | goto label_7;
| }
0x0000cd80 addiu s2, zero, 1 | s2 = 1;
0x0000cd84 b 0xcde0 | goto label_3;
0x0000cd88 lw t9, -0x7f24(gp) | t9 = sym.loopcxt_get_backing_devno;
0x0000cd8c addiu a1, sp, 0x28 | a1 = sp + 0x28;
0x0000cd90 move a0, s0 | a0 = s0;
0x0000cd94 bal 0xc62c | sym_loopcxt_get_backing_devno ();
0x0000cd98 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000cd9c bnez v0, 0xcd2c |
| }
0x0000cda0 lw v1, 0x10(s7) | v1 = *((s7 + 4));
0x0000cda4 lw v0, 0x20(sp) | v0 = *(var_20h_2);
0x0000cda8 move s2, zero | s2 = 0;
| if (v1 == v0) {
0x0000cdac bnel v1, v0, 0xcde0 | goto label_3;
| }
0x0000cdb0 lw v1, 0x14(s7) | v1 = *((s7 + 5));
0x0000cdb4 lw v0, 0x24(sp) | v0 = *(var_24h_6);
0x0000cdb8 move s2, zero | s2 = 0;
| if (v1 == v0) {
0x0000cdbc bnel v1, v0, 0xcde0 | goto label_3;
| }
0x0000cdc0 lw v0, (s7) | v0 = *(s7);
0x0000cdc4 lw v1, 0x28(sp) | v1 = *(var_28h_5);
0x0000cdc8 move s2, zero | s2 = 0;
| if (v1 == v0) {
0x0000cdcc bnel v1, v0, 0xcde0 | goto label_3;
| }
0x0000cdd0 lw v0, 0x2c(sp) | v0 = *(var_2ch_5);
| if (v0 == 0) {
0x0000cdd4 beql v0, zero, 0xcd74 | goto label_0;
| }
0x0000cdd8 lw v0, 0x90(sp) | v0 = *(var_90h);
| label_2:
0x0000cddc move s2, zero | s2 = 0;
| do {
| label_3:
0x0000cde0 lw a0, 0x44(sp) | a0 = *(var_44h);
0x0000cde4 lw v1, (s1) | v1 = *(s1);
0x0000cde8 move v0, s2 | v0 = s2;
| if (a0 != v1) {
0x0000cdec bne a0, v1, 0xcf50 | goto label_8;
| }
0x0000cdf0 lw ra, 0x6c(sp) | ra = *(var_6ch);
0x0000cdf4 lw fp, 0x68(sp) | fp = *(var_68h);
0x0000cdf8 lw s7, 0x64(sp) | s7 = *(var_64h);
0x0000cdfc lw s6, 0x60(sp) | s6 = *(var_60h);
0x0000ce00 lw s5, 0x5c(sp) | s5 = *(var_5ch);
0x0000ce04 lw s4, 0x58(sp) | s4 = *(var_58h);
0x0000ce08 lw s3, 0x54(sp) | s3 = *(var_54h);
0x0000ce0c lw s2, 0x50(sp) | s2 = *(var_50h);
0x0000ce10 lw s1, 0x4c(sp) | s1 = *(var_4ch);
0x0000ce14 lw s0, 0x48(sp) | s0 = *(var_48h);
0x0000ce18 addiu sp, sp, 0x70 |
0x0000ce1c jr ra | return v0;
| label_6:
0x0000ce20 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x0000ce24 move a0, s7 | a0 = s7;
0x0000ce28 jalr t9 | t9 ();
0x0000ce2c move s2, zero | s2 = 0;
0x0000ce30 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000ce34 b 0xcde0 |
| } while (1);
| label_4:
0x0000ce38 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000ce3c lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000ce40 lw fp, (v0) | fp = *(v0);
0x0000ce44 jalr t9 | t9 ();
0x0000ce48 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000ce4c move a3, v0 | a3 = v0;
0x0000ce50 addiu a1, zero, 1 | a1 = 1;
0x0000ce54 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000ce58 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000ce5c addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000ce60 sw v0, 0x14(sp) | *(var_14h_2) = v0;
0x0000ce64 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000ce68 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000ce6c addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000ce70 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000ce74 move a0, fp | a0 = fp;
0x0000ce78 sw v0, 0x10(sp) | *(var_10h_7) = v0;
0x0000ce7c jalr t9 | t9 ();
0x0000ce80 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000ce84 lw t9, -0x7f20(gp) | t9 = sym.loopcxt_get_device;
0x0000ce88 move a0, s0 | a0 = s0;
0x0000ce8c bal 0xa9d0 | sym_loopcxt_get_device ();
0x0000ce90 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000ce94 move a3, s2 | a3 = s2;
0x0000ce98 move a2, v0 | a2 = v0;
0x0000ce9c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000cea0 lw t9, -0x7f74(gp) | t9 = *(gp);
| /* str.checking__s_vs.__s */
0x0000cea4 addiu a1, a1, -0x3040 | a1 += -0x3040;
0x0000cea8 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
0x0000ceac move a0, s0 | a0 = s0;
0x0000ceb0 bal 0x9b48 | fcn_00009b48 ();
0x0000ceb4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000ceb8 b 0xcd10 | goto label_1;
| label_7:
0x0000cebc move v0, zero | v0 = 0;
0x0000cec0 move v1, zero | v1 = 0;
0x0000cec4 addiu a1, sp, 0x30 | a1 = sp + 0x30;
0x0000cec8 move a0, s0 | a0 = s0;
0x0000cecc sw v0, 0x30(sp) | *(var_30h_2) = v0;
0x0000ced0 sw v1, 0x34(sp) | *(var_34h_2) = v1;
0x0000ced4 bal 0xb350 | sym_loopcxt_get_offset ();
0x0000ced8 move s2, v0 | s2 = v0;
0x0000cedc lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x0000cee0 bnez v0, 0xcddc | goto label_2;
| }
0x0000cee4 lw v0, 0x30(sp) | v0 = *(var_30h_2);
| if (v0 != s3) {
0x0000cee8 bne v0, s3, 0xcde0 | goto label_3;
| }
0x0000ceec nop |
0x0000cef0 lw v0, 0x34(sp) | v0 = *(var_34h_2);
| if (v0 != s4) {
0x0000cef4 bne v0, s4, 0xcde0 | goto label_3;
| }
0x0000cef8 nop |
0x0000cefc lw v0, 0x90(sp) | v0 = *(var_90h);
0x0000cf00 andi v0, v0, 0x200 | v0 &= 0x200;
| if (v0 == 0) {
0x0000cf04 beql v0, zero, 0xcde0 | goto label_3;
| }
0x0000cf08 addiu s2, zero, 1 | s2 = 1;
0x0000cf0c lw t9, -0x7f1c(gp) | t9 = sym.loopcxt_get_sizelimit;
0x0000cf10 move v0, zero | v0 = 0;
0x0000cf14 move v1, zero | v1 = 0;
0x0000cf18 addiu a1, sp, 0x38 | a1 = sp + 0x38;
0x0000cf1c move a0, s0 | a0 = s0;
0x0000cf20 sw v0, 0x38(sp) | *(var_38h) = v0;
0x0000cf24 sw v1, 0x3c(sp) | *(var_3ch) = v1;
0x0000cf28 bal 0xc26c | sym_loopcxt_get_sizelimit ();
0x0000cf2c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x0000cf30 bnez v0, 0xcde0 | goto label_3;
| }
0x0000cf34 lw s2, 0x38(sp) | s2 = *(var_38h);
0x0000cf38 lw v0, 0x3c(sp) | v0 = *(var_3ch);
0x0000cf3c xor s2, s2, s6 | s2 ^= s6;
0x0000cf40 xor s5, v0, s5 | s5 = v0 ^ s5;
0x0000cf44 or s2, s2, s5 | s2 |= s5;
0x0000cf48 sltiu s2, s2, 1 | s2 = (s2 < 1) ? 1 : 0;
0x0000cf4c b 0xcde0 | goto label_3;
| label_8:
0x0000cf50 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000cf54 jalr t9 | t9 ();
0x0000cf58 nop |
0x0000cf5c lui gp, 3 |
0x0000cf60 addiu gp, gp, -0x6f0c |
0x0000cf64 addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x0000cf68 beqz a0, 0xd058 |
0x0000cf6c nop |
0x0000cf70 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000cf74 addiu sp, sp, -0x38 |
0x0000cf78 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000cf7c sw gp, 0x18(sp) | *(var_18h_3) = gp;
0x0000cf80 andi v0, v0, 4 | v0 &= 4;
0x0000cf84 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0000cf88 sw s3, 0x30(sp) | *(var_30h) = s3;
0x0000cf8c sw s2, 0x2c(sp) | *(var_2ch_6) = s2;
0x0000cf90 sw s1, 0x28(sp) | *(var_28h_6) = s1;
0x0000cf94 sw s0, 0x24(sp) | *(var_24h_7) = s0;
0x0000cf98 sw a2, 0xc0(a0) | *((a0 + 48)) = a2;
0x0000cf9c sw a3, 0xc4(a0) | *((a0 + 49)) = a3;
| if (v0 == 0) {
0x0000cfa0 bnez v0, 0xcfc0 |
0x0000cfa4 lw ra, 0x34(sp) | ra = *(var_34h);
0x0000cfa8 lw s3, 0x30(sp) | s3 = *(var_30h);
0x0000cfac lw s2, 0x2c(sp) | s2 = *(var_2ch_6);
0x0000cfb0 lw s1, 0x28(sp) | s1 = *(var_28h_6);
0x0000cfb4 lw s0, 0x24(sp) | s0 = *(var_24h_7);
0x0000cfb8 addiu sp, sp, 0x38 |
0x0000cfbc jr ra | return v0;
| }
0x0000cfc0 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000cfc4 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000cfc8 move s2, a2 | s2 = a2;
0x0000cfcc move s3, a3 | s3 = a3;
0x0000cfd0 move s0, a0 | s0 = a0;
0x0000cfd4 lw s1, (v0) | s1 = *(v0);
0x0000cfd8 jalr t9 | t9 ();
0x0000cfdc lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0000cfe0 move a3, v0 | a3 = v0;
0x0000cfe4 move a0, s1 | a0 = s1;
0x0000cfe8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000cfec lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000cff0 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000cff4 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000cff8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000cffc lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000d000 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000d004 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000d008 addiu a1, zero, 1 | a1 = 1;
0x0000d00c sw v0, 0x10(sp) | *(var_10h_6) = v0;
0x0000d010 jalr t9 | t9 ();
0x0000d014 lw gp, 0x18(sp) | gp = *(var_18h_3);
0x0000d018 move a2, s2 | a2 = s2;
0x0000d01c move a3, s3 | a3 = s3;
0x0000d020 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000d024 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000d028 move a0, s0 | a0 = s0;
0x0000d02c addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.set_offset_jd */
0x0000d030 addiu a1, a1, -0x302c | a1 += -0x302c;
0x0000d034 bal 0x9b48 | fcn_00009b48 ();
0x0000d038 lw ra, 0x34(sp) | ra = *(var_34h);
0x0000d03c lw s3, 0x30(sp) | s3 = *(var_30h);
0x0000d040 lw s2, 0x2c(sp) | s2 = *(var_2ch_6);
0x0000d044 lw s1, 0x28(sp) | s1 = *(var_28h_6);
0x0000d048 lw s0, 0x24(sp) | s0 = *(var_24h_7);
0x0000d04c move v0, zero | v0 = 0;
0x0000d050 addiu sp, sp, 0x38 |
0x0000d054 jr ra | return v0;
| }
0x0000d058 addiu v0, zero, -0x16 | v0 = -0x16;
0x0000d05c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xbcdc */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_next () | void loopcxt_next () {
0x0000bcdc lui gp, 3 |
0x0000bce0 addiu gp, gp, -0x5c8c |
0x0000bce4 addu gp, gp, t9 | gp += t9;
0x0000bce8 addiu sp, sp, -0x60 |
0x0000bcec sw s4, 0x4c(sp) | *(var_4ch) = s4;
0x0000bcf0 lw s4, -0x7bc0(gp) | s4 = *((gp - 7920));
0x0000bcf4 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000bcf8 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x0000bcfc lw v0, (s4) | v0 = *(s4);
0x0000bd00 sw s7, 0x58(sp) | *(var_58h) = s7;
0x0000bd04 sw s6, 0x54(sp) | *(var_54h) = s6;
0x0000bd08 sw s5, 0x50(sp) | *(var_50h) = s5;
0x0000bd0c sw s3, 0x48(sp) | *(var_48h) = s3;
0x0000bd10 sw s2, 0x44(sp) | *(var_44h) = s2;
0x0000bd14 sw s1, 0x40(sp) | *(var_40h) = s1;
0x0000bd18 sw s0, 0x3c(sp) | *(var_3ch) = s0;
0x0000bd1c sw v0, 0x34(sp) | *(var_34h) = v0;
0x0000bd20 addiu v0, zero, -0x16 | v0 = -0x16;
| if (a0 != 0) {
0x0000bd24 beqz a0, 0xbd8c |
0x0000bd28 lbu v0, 0x1ac(a0) | v0 = *(a0);
0x0000bd2c andi v0, v0, 1 | v0 &= 1;
0x0000bd30 move s0, a0 | s0 = a0;
| if (v0 != 0) {
0x0000bd34 bnez v0, 0xbfa4 | goto label_9;
| }
0x0000bd38 lw s5, -0x7fdc(gp) | s5 = *((gp - 8183));
0x0000bd3c lw v0, -0x1af0(s5) | v0 = *((s5 - 1724));
0x0000bd40 andi v0, v0, 8 | v0 &= 8;
0x0000bd44 addiu s6, a0, 0x190 | s6 = a0 + 0x190;
| if (v0 != 0) {
0x0000bd48 bnez v0, 0xbe64 | goto label_10;
| }
0x0000bd4c lw s1, 0x1b0(s0) | s1 = *(s0);
0x0000bd50 andi s1, s1, 2 | s1 &= 2;
| if (s1 == 0) {
0x0000bd54 beql s1, zero, 0xbdc8 | goto label_11;
| }
0x0000bd58 lbu v0, 0x1ac(s0) | v0 = *(s0);
0x0000bd5c lw v0, 0x98(s0) | v0 = *((s0 + 38));
| label_2:
0x0000bd60 addiu v1, zero, 0x40 | v1 = 0x40;
0x0000bd64 andi v0, v0, 0x60 | v0 &= 0x60;
0x0000bd68 move a0, s0 | a0 = s0;
| if (v0 == v1) {
0x0000bd6c beq v0, v1, 0xbfec | goto label_12;
| }
0x0000bd70 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000bd74 addiu t9, t9, -0x459c | t9 += -0x459c;
0x0000bd78 bal 0xba64 | fcn_0000ba64 ();
0x0000bd7c nop |
0x0000bd80 lw gp, 0x18(sp) | gp = *(var_18h);
| label_6:
0x0000bd84 lw t9, -0x7f54(gp) | t9 = sym.loopcxt_deinit_iterator;
| if (v0 != 0) {
0x0000bd88 bnez v0, 0xbee4 | goto label_13;
| }
| }
| label_0:
0x0000bd8c lw a0, 0x34(sp) | a0 = *(var_34h);
0x0000bd90 lw v1, (s4) | v1 = *(s4);
0x0000bd94 lw ra, 0x5c(sp) | ra = *(var_5ch);
| if (a0 != v1) {
0x0000bd98 bne a0, v1, 0xc0f8 | goto label_14;
| }
0x0000bd9c lw s7, 0x58(sp) | s7 = *(var_58h);
0x0000bda0 lw s6, 0x54(sp) | s6 = *(var_54h);
0x0000bda4 lw s5, 0x50(sp) | s5 = *(var_50h);
0x0000bda8 lw s4, 0x4c(sp) | s4 = *(var_4ch);
0x0000bdac lw s3, 0x48(sp) | s3 = *(var_48h);
0x0000bdb0 lw s2, 0x44(sp) | s2 = *(var_44h);
0x0000bdb4 lw s1, 0x40(sp) | s1 = *(var_40h);
0x0000bdb8 lw s0, 0x3c(sp) | s0 = *(var_3ch);
0x0000bdbc addiu sp, sp, 0x60 |
0x0000bdc0 jr ra | return v0;
| label_1:
0x0000bdc4 lbu v0, 0x1ac(s0) | v0 = *(s0);
| label_11:
0x0000bdc8 andi v0, v0, 2 | v0 &= 2;
| if (v0 == 0) {
0x0000bdcc beql v0, zero, 0xbf08 | goto label_15;
| }
0x0000bdd0 lw v0, 0x19c(s0) | v0 = *(s0);
0x0000bdd4 lw v0, -0x1af0(s5) | v0 = *((s5 - 1724));
0x0000bdd8 andi v0, v0, 8 | v0 &= 8;
0x0000bddc lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x0000bde0 bnez v0, 0xc004 | goto label_16;
| }
| label_7:
0x0000bde4 lw v0, 0x198(s0) | v0 = *((s0 + 102));
0x0000bde8 addiu v0, v0, 1 | v0++;
0x0000bdec slti v1, v0, 8 | v1 = (v0 < 8) ? 1 : 0;
0x0000bdf0 sw v0, 0x198(s0) | *((s0 + 102)) = v0;
| if (v1 == 0) {
0x0000bdf4 beqz v1, 0xbef8 | goto label_17;
| }
0x0000bdf8 lw s3, -0x7fd0(gp) | s3 = *((gp - 8180));
0x0000bdfc lw s2, -0x7f74(gp) | s2 = *(gp);
0x0000be00 addiu s7, sp, 0x24 | s7 = sp + 0x24;
| /* str.loop_d */
0x0000be04 addiu s3, s3, -0x3178 | s3 += -0x3178;
0x0000be08 addiu s2, s2, -0x4b10 | s2 += -0x4b10;
0x0000be0c b 0xbe24 |
| while (v0 != 0) {
0x0000be10 lw v0, 0x198(s0) | v0 = *((s0 + 102));
0x0000be14 addiu v0, v0, 1 | v0++;
0x0000be18 slti v1, v0, 8 | v1 = (v0 < 8) ? 1 : 0;
0x0000be1c sw v0, 0x198(s0) | *((s0 + 102)) = v0;
| if (v1 == 0) {
0x0000be20 beqz v1, 0xbef8 | goto label_17;
| }
0x0000be24 lw t9, -0x7b5c(gp) | t9 = sym.imp.__snprintf_chk;
0x0000be28 addiu a3, zero, 0x10 | a3 = 0x10;
0x0000be2c addiu a2, zero, 1 | a2 = 1;
0x0000be30 addiu a1, zero, 0x10 | a1 = 0x10;
0x0000be34 move a0, s7 | a0 = s7;
0x0000be38 sw v0, 0x14(sp) | *(var_14h_3) = v0;
0x0000be3c sw s3, 0x10(sp) | *(var_10h_3) = s3;
0x0000be40 jalr t9 | t9 ();
0x0000be44 move a1, s7 | a1 = s7;
0x0000be48 move t9, s2 | t9 = s2;
0x0000be4c move a0, s0 | a0 = s0;
0x0000be50 bal 0xb4f0 | fcn_0000b4f0 ();
0x0000be54 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000be58 bnez v0, 0xbe10 |
| }
0x0000be5c b 0xbd8c | goto label_0;
0x0000be60 nop |
| label_10:
0x0000be64 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000be68 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000be6c lw s1, (v0) | s1 = *(v0);
0x0000be70 jalr t9 | t9 ();
0x0000be74 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000be78 move a3, v0 | a3 = v0;
0x0000be7c move a0, s1 | a0 = s1;
0x0000be80 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000be84 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* str.ITER */
0x0000be88 addiu v0, v0, -0x3440 | v0 += -0x3440;
0x0000be8c sw v0, 0x14(sp) | *(var_14h_3) = v0;
0x0000be90 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000be94 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000be98 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000be9c addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000bea0 addiu a1, zero, 1 | a1 = 1;
0x0000bea4 sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x0000bea8 jalr t9 | t9 ();
0x0000beac lw gp, 0x18(sp) | gp = *(var_18h);
0x0000beb0 move a0, s6 | a0 = s6;
0x0000beb4 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000beb8 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000bebc addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.next */
0x0000bec0 addiu a1, a1, -0x3194 | a1 += -0x3194;
0x0000bec4 bal 0x9b48 | fcn_00009b48 ();
0x0000bec8 lw s1, 0x1b0(s0) | s1 = *(s0);
0x0000becc andi s1, s1, 2 | s1 &= 2;
0x0000bed0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s1 == 0) {
0x0000bed4 beqz s1, 0xbdc4 | goto label_1;
| }
0x0000bed8 lw v0, 0x98(s0) | v0 = *((s0 + 38));
0x0000bedc b 0xbd60 | goto label_2;
| do {
| label_3:
0x0000bee0 lw t9, -0x7f54(gp) | t9 = sym.loopcxt_deinit_iterator;
| label_13:
0x0000bee4 move a0, s0 | a0 = s0;
0x0000bee8 bal 0xacf8 | sym_loopcxt_deinit_iterator ();
0x0000beec lw gp, 0x18(sp) | gp = *(var_18h);
0x0000bef0 addiu v0, zero, 1 | v0 = 1;
0x0000bef4 b 0xbd8c | goto label_0;
| label_17:
0x0000bef8 lbu v0, 0x1ac(s0) | v0 = *(s0);
0x0000befc ins v0, zero, 1, 1 | __asm ("ins v0, zero, 1, 1");
0x0000bf00 sb v0, 0x1ac(s0) | *(s0) = v0;
0x0000bf04 lw v0, 0x19c(s0) | v0 = *(s0);
| label_15:
0x0000bf08 lw v0, -0x1af0(s5) | v0 = *((s5 - 1724));
| if (v0 == 0) {
0x0000bf0c beqz v0, 0xbfac | goto label_18;
| }
0x0000bf10 lw s1, 0x198(s0) | s1 = *((s0 + 102));
0x0000bf14 lw v0, 0x1a0(s0) | v0 = *(s0);
0x0000bf18 addiu s1, s1, 1 | s1++;
| label_5:
0x0000bf1c slt v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x0000bf20 sw s1, 0x198(s0) | *((s0 + 102)) = s1;
0x0000bf24 beqz v0, 0xbee0 |
| } while (v0 == 0);
0x0000bf28 lw s3, -0x7fd0(gp) | s3 = *((gp - 8180));
0x0000bf2c lw s2, -0x7f74(gp) | s2 = *(gp);
0x0000bf30 addiu s7, sp, 0x24 | s7 = sp + 0x24;
| /* str.loop_d */
0x0000bf34 addiu s3, s3, -0x3178 | s3 += -0x3178;
0x0000bf38 addiu s2, s2, -0x4b10 | s2 += -0x4b10;
0x0000bf3c b 0xbf58 | goto label_19;
| label_4:
0x0000bf40 lw s1, 0x198(s0) | s1 = *((s0 + 102));
0x0000bf44 lw v0, 0x1a0(s0) | v0 = *(s0);
0x0000bf48 addiu s1, s1, 1 | s1++;
0x0000bf4c slt v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x0000bf50 sw s1, 0x198(s0) | *((s0 + 102)) = s1;
| if (v0 == 0) {
0x0000bf54 beqz v0, 0xbee0 | goto label_3;
| }
| label_19:
0x0000bf58 lw v0, 0x19c(s0) | v0 = *(s0);
0x0000bf5c sll s1, s1, 2 | s1 <<= 2;
0x0000bf60 lw t9, -0x7b5c(gp) | t9 = sym.imp.__snprintf_chk;
0x0000bf64 lwx s1, s1(v0) | __asm ("lwx s1, s1(v0)");
0x0000bf68 addiu a3, zero, 0x10 | a3 = 0x10;
0x0000bf6c addiu a2, zero, 1 | a2 = 1;
0x0000bf70 addiu a1, zero, 0x10 | a1 = 0x10;
0x0000bf74 move a0, s7 | a0 = s7;
0x0000bf78 sw s1, 0x14(sp) | *(var_14h_3) = s1;
0x0000bf7c sw s3, 0x10(sp) | *(var_10h_3) = s3;
0x0000bf80 jalr t9 | t9 ();
0x0000bf84 move a1, s7 | a1 = s7;
0x0000bf88 move t9, s2 | t9 = s2;
0x0000bf8c move a0, s0 | a0 = s0;
0x0000bf90 bal 0xb4f0 | fcn_0000b4f0 ();
0x0000bf94 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000bf98 bnez v0, 0xbf40 | goto label_4;
| }
0x0000bf9c b 0xbd8c | goto label_0;
0x0000bfa0 nop |
| label_9:
0x0000bfa4 addiu v0, zero, 1 | v0 = 1;
0x0000bfa8 b 0xbd8c | goto label_0;
| label_18:
0x0000bfac andi v0, v0, 8 | v0 &= 8;
0x0000bfb0 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000bfb4 bnez v0, 0xc090 |
| while (1) {
0x0000bfb8 lw v0, 0x98(s0) | v0 = *((s0 + 38));
0x0000bfbc andi v0, v0, 0x80 | v0 &= 0x80;
0x0000bfc0 addiu a1, s0, 0x19c | a1 = s0 + aav.0x0000019c;
| if (v0 != 0) {
0x0000bfc4 beqz v0, 0xc06c |
0x0000bfc8 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x0000bfcc lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000bfd0 move a2, zero | a2 = 0;
0x0000bfd4 addiu t9, t9, -0x6160 | t9 += -0x6160;
| /* str._dev_loop */
0x0000bfd8 addiu a0, a0, -0x32f8 | a0 += -0x32f8;
0x0000bfdc bal 0x9ea0 | fcn_00009ea0 ();
0x0000bfe0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000bfe4 sw v0, 0x1a0(s0) | *(s0) = v0;
0x0000bfe8 b 0xbf1c | goto label_5;
| label_12:
0x0000bfec lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000bff0 addiu t9, t9, -0x4860 | t9 += -0x4860;
0x0000bff4 bal 0xb7a0 | fcn_0000b7a0 ();
0x0000bff8 nop |
0x0000bffc lw gp, 0x18(sp) | gp = *(var_18h);
0x0000c000 b 0xbd84 | goto label_6;
| label_16:
0x0000c004 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000c008 lw s2, (v0) | s2 = *(v0);
0x0000c00c jalr t9 | t9 ();
0x0000c010 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000c014 move a3, v0 | a3 = v0;
0x0000c018 addiu a1, zero, 1 | a1 = 1;
0x0000c01c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000c020 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* str.ITER */
0x0000c024 addiu v0, v0, -0x3440 | v0 += -0x3440;
0x0000c028 sw v0, 0x14(sp) | *(var_14h_3) = v0;
0x0000c02c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000c030 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000c034 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000c038 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000c03c move a0, s2 | a0 = s2;
0x0000c040 sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x0000c044 jalr t9 | t9 ();
0x0000c048 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000c04c move a0, s6 | a0 = s6;
0x0000c050 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000c054 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000c058 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.next:_default_check */
0x0000c05c addiu a1, a1, -0x318c | a1 += -0x318c;
0x0000c060 bal 0x9b48 | fcn_00009b48 ();
0x0000c064 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000c068 b 0xbde4 | goto label_7;
| }
0x0000c06c lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x0000c070 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000c074 addiu a2, zero, 1 | a2 = 1;
0x0000c078 addiu t9, t9, -0x6160 | t9 += -0x6160;
| /* str._dev_ */
0x0000c07c addiu a0, a0, -0x34b8 | a0 += -0x34b8;
0x0000c080 bal 0x9ea0 | fcn_00009ea0 ();
0x0000c084 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000c088 sw v0, 0x1a0(s0) | *(s0) = v0;
0x0000c08c b 0xbf1c | goto label_5;
0x0000c090 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000c094 lw s2, (v0) | s2 = *(v0);
0x0000c098 jalr t9 | t9 ();
0x0000c09c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000c0a0 move a3, v0 | a3 = v0;
0x0000c0a4 addiu a1, zero, 1 | a1 = 1;
0x0000c0a8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000c0ac lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* str.ITER */
0x0000c0b0 addiu v0, v0, -0x3440 | v0 += -0x3440;
0x0000c0b4 sw v0, 0x14(sp) | *(var_14h_3) = v0;
0x0000c0b8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000c0bc lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000c0c0 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000c0c4 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000c0c8 move a0, s2 | a0 = s2;
0x0000c0cc sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x0000c0d0 jalr t9 | t9 ();
0x0000c0d4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000c0d8 move a0, s6 | a0 = s6;
0x0000c0dc lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000c0e0 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000c0e4 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.next:_scanning__dev */
0x0000c0e8 addiu a1, a1, -0x3170 | a1 += -0x3170;
0x0000c0ec bal 0x9b48 | fcn_00009b48 ();
0x0000c0f0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000c0f4 b 0xbfb8 |
| }
| label_14:
0x0000c0f8 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000c0fc jalr t9 | t9 ();
0x0000c100 nop |
0x0000c104 lui gp, 3 |
0x0000c108 addiu gp, gp, -0x60b4 |
0x0000c10c addu gp, gp, t9 | gp += t9;
0x0000c110 addiu sp, sp, -0x38 |
0x0000c114 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000c118 sw s0, 0x28(sp) | *(var_28h) = s0;
0x0000c11c lw s0, -0x7bc0(gp) | s0 = *((gp - 7920));
0x0000c120 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0000c124 sw s2, 0x30(sp) | *(var_30h) = s2;
0x0000c128 lw v0, (s0) | v0 = *(s0);
0x0000c12c sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x0000c130 sw ra, 0x34(sp) | *(var_34h_2) = ra;
0x0000c134 sw v0, 0x24(sp) | *(var_24h) = v0;
0x0000c138 addiu t9, t9, -0x63d0 | t9 += -fcn.000063d0;
0x0000c13c move s2, a0 | s2 = a0;
0x0000c140 move s1, a1 | s1 = a1;
0x0000c144 bal 0x9c30 | fcn_00009c30 ();
0x0000c148 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x0000c14c beqz v0, 0xc170 |
0x0000c150 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x0000c154 lw t9, -0x7f44(gp) | t9 = sym.ul_path_read_u64;
| /* str.queue_logical_block_size */
0x0000c158 addiu a2, a2, -0x315c | a2 += -0x315c;
0x0000c15c move a1, s1 | a1 = s1;
0x0000c160 move a0, v0 | a0 = v0;
0x0000c164 bal 0x12af4 | sym_ul_path_read_u64 ();
0x0000c168 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0000c16c beqz v0, 0xc1b0 | goto label_20;
| }
| }
0x0000c170 lw t9, -0x7f50(gp) | t9 = sym.loopcxt_get_fd;
0x0000c174 move a0, s2 | a0 = s2;
0x0000c178 bal 0xa9f0 | sym_loopcxt_get_fd ();
0x0000c17c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000c180 sw zero, 0x20(sp) | *(var_20h) = 0;
| if (v0 < 0) {
0x0000c184 bltz v0, 0xc1e8 | goto label_21;
| }
0x0000c188 lw t9, -0x7f38(gp) | t9 = sym.blkdev_get_sector_size;
0x0000c18c addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x0000c190 move a0, v0 | a0 = v0;
0x0000c194 bal 0x16d9c | sym_blkdev_get_sector_size ();
0x0000c198 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x0000c19c bnez v0, 0xc1c4 | goto label_8;
| }
0x0000c1a0 lw v0, 0x20(sp) | v0 = *(var_20h);
0x0000c1a4 sra v1, v0, 0x1f | v1 = v0 >> 0x1f;
0x0000c1a8 sw v0, (s1) | *(s1) = v0;
0x0000c1ac sw v1, 4(s1) | *((s1 + 1)) = v1;
| label_20:
0x0000c1b0 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000c1b4 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000c1b8 andi v0, v0, 4 | v0 &= 4;
0x0000c1bc lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 == 0) {
0x0000c1c0 bnel v0, zero, 0xc1f0 | goto label_22;
| }
| do {
| label_8:
0x0000c1c4 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0000c1c8 lw v1, (s0) | v1 = *(s0);
0x0000c1cc lw ra, 0x34(sp) | ra = *(var_34h_2);
| if (a0 != v1) {
0x0000c1d0 bne a0, v1, 0xc260 | goto label_23;
| }
0x0000c1d4 lw s2, 0x30(sp) | s2 = *(var_30h);
0x0000c1d8 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x0000c1dc lw s0, 0x28(sp) | s0 = *(var_28h);
0x0000c1e0 addiu sp, sp, 0x38 |
0x0000c1e4 jr ra | return v0;
| label_21:
0x0000c1e8 addiu v0, zero, -0x16 | v0 = -0x16;
0x0000c1ec b 0xc1c4 |
| } while (1);
| label_22:
0x0000c1f0 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000c1f4 lw s1, (v0) | s1 = *(v0);
0x0000c1f8 jalr t9 | t9 ();
0x0000c1fc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000c200 move a3, v0 | a3 = v0;
0x0000c204 addiu a1, zero, 1 | a1 = 1;
0x0000c208 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000c20c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000c210 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000c214 sw v0, 0x14(sp) | *(var_14h_2) = v0;
0x0000c218 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000c21c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000c220 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000c224 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000c228 move a0, s1 | a0 = s1;
0x0000c22c sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0000c230 jalr t9 | t9 ();
0x0000c234 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000c238 move a2, zero | a2 = 0;
0x0000c23c move a0, s2 | a0 = s2;
0x0000c240 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000c244 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000c248 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.get_blocksize__rc_d_ */
0x0000c24c addiu a1, a1, -0x3140 | a1 += -0x3140;
0x0000c250 bal 0x9b48 | fcn_00009b48 ();
0x0000c254 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0000c258 move v0, zero | v0 = 0;
0x0000c25c b 0xc1c4 | goto label_8;
| label_23:
0x0000c260 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000c264 jalr t9 | t9 ();
0x0000c268 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0xa1fc */
| #include <stdint.h>
|
; (fcn) sym.loopcxt_set_device () | void loopcxt_set_device () {
0x0000a1fc lui gp, 3 |
0x0000a200 addiu gp, gp, -0x41ac |
0x0000a204 addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x0000a208 beqz a0, 0xa45c | goto label_4;
| }
0x0000a20c nop |
0x0000a210 addiu sp, sp, -0x38 |
0x0000a214 sw s0, 0x28(sp) | *(var_28h) = s0;
0x0000a218 move s0, a0 | s0 = a0;
0x0000a21c lw a0, 0x84(a0) | a0 = *((a0 + 33));
0x0000a220 sw gp, 0x20(sp) | *(var_20h) = gp;
0x0000a224 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x0000a228 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0000a22c sw s2, 0x30(sp) | *(var_30h) = s2;
0x0000a230 move s1, a1 | s1 = a1;
| if (a0 >= 0) {
0x0000a234 bgez a0, 0xa3a8 | goto label_5;
| }
| label_1:
0x0000a238 lbu v0, 0x9c(s0) | v0 = *((s0 + 156));
| label_0:
0x0000a23c lw t9, -0x7cf0(gp) | t9 = sym.imp.memset;
0x0000a240 andi v0, v0, 0xfa | v0 &= 0xfa;
0x0000a244 addiu v1, zero, -1 | v1 = -1;
0x0000a248 move a0, zero | a0 = 0;
0x0000a24c move a1, zero | a1 = 0;
0x0000a250 sw a0, 0x90(s0) | *((s0 + 36)) = a0;
0x0000a254 sw a1, 0x94(s0) | *((s0 + 37)) = a1;
0x0000a258 sw v1, 0x84(s0) | *((s0 + 33)) = v1;
0x0000a25c sw zero, 0x88(s0) | *((s0 + 34)) = 0;
0x0000a260 sb v0, 0x9c(s0) | *((s0 + 156)) = v0;
0x0000a264 sb zero, (s0) | *(s0) = 0;
0x0000a268 addiu a2, zero, 0xe8 | a2 = 0xe8;
0x0000a26c move a1, zero | a1 = 0;
0x0000a270 addiu a0, s0, 0xa8 | a0 = s0 + 0xa8;
0x0000a274 jalr t9 | t9 ();
0x0000a278 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s1 == 0) {
0x0000a27c beqz s1, 0xa370 | goto label_6;
| }
0x0000a280 lb v1, (s1) | v1 = *(s1);
0x0000a284 addiu v0, zero, 0x2f | v0 = 0x2f;
0x0000a288 lw t9, -0x7d08(gp) | t9 = sym.imp.strncpy;
| if (v1 == v0) {
0x0000a28c beq v1, v0, 0xa438 | goto label_7;
| }
0x0000a290 lw v0, 0x98(s0) | v0 = *((s0 + 38));
0x0000a294 andi v0, v0, 0x80 | v0 &= 0x80;
0x0000a298 lw t9, -0x7cbc(gp) | t9 = sym.imp.strlen;
| if (v0 == 0) {
0x0000a29c beqz v0, 0xa39c | goto label_8;
| }
0x0000a2a0 move a0, s1 | a0 = s1;
0x0000a2a4 jalr t9 | t9 ();
0x0000a2a8 sltiu v0, v0, 5 | v0 = (v0 < 5) ? 1 : 0;
0x0000a2ac lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0000a2b0 bnez v0, 0xa454 | goto label_9;
| }
0x0000a2b4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a2b8 addiu s1, s1, 4 | s1 += 4;
| /* str._dev_loop_ */
0x0000a2bc addiu v0, v0, -0x342c | v0 += -0x342c;
| do {
0x0000a2c0 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000a2c4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a2c8 lw t9, -0x7b5c(gp) | t9 = sym.imp.__snprintf_chk;
| /* str._s_s */
0x0000a2cc addiu v0, v0, -0x340c | v0 += -0x340c;
0x0000a2d0 sw s1, 0x18(sp) | *(var_18h) = s1;
0x0000a2d4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000a2d8 addiu a3, zero, 0x80 | a3 = 0x80;
0x0000a2dc addiu a2, zero, 1 | a2 = 1;
0x0000a2e0 addiu a1, zero, 0x80 | a1 = 0x80;
0x0000a2e4 move a0, s0 | a0 = s0;
0x0000a2e8 jalr t9 | t9 ();
0x0000a2ec lw gp, 0x20(sp) | gp = *(var_20h);
| label_2:
0x0000a2f0 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000a2f4 lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000a2f8 andi v0, v0, 4 | v0 &= 4;
0x0000a2fc lw t9, -0x7f60(gp) | t9 = sym.ul_unref_path;
| if (v0 != 0) {
0x0000a300 beqz v0, 0xa374 |
0x0000a304 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000a308 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000a30c lw s2, (v0) | s2 = *(v0);
0x0000a310 jalr t9 | t9 ();
0x0000a314 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000a318 move a3, v0 | a3 = v0;
0x0000a31c addiu a1, zero, 1 | a1 = 1;
0x0000a320 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a324 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000a328 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000a32c sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000a330 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a334 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000a338 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000a33c addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000a340 move a0, s2 | a0 = s2;
0x0000a344 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000a348 jalr t9 | t9 ();
0x0000a34c lw gp, 0x20(sp) | gp = *(var_20h);
0x0000a350 move a2, s1 | a2 = s1;
0x0000a354 move a0, s0 | a0 = s0;
0x0000a358 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000a35c lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000a360 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str._s_name_assigned */
0x0000a364 addiu a1, a1, -0x3404 | a1 += -0x3404;
0x0000a368 bal 0x9b48 | fcn_00009b48 ();
0x0000a36c lw gp, 0x20(sp) | gp = *(var_20h);
| label_6:
0x0000a370 lw t9, -0x7f60(gp) | t9 = sym.ul_unref_path;
| }
0x0000a374 lw a0, 0xa0(s0) | a0 = *((s0 + 40));
0x0000a378 bal 0x10e3c | sym_ul_unref_path ();
0x0000a37c sw zero, 0xa0(s0) | *((s0 + 40)) = 0;
0x0000a380 move v0, zero | v0 = 0;
| label_3:
0x0000a384 lw ra, 0x34(sp) | ra = *(var_34h);
0x0000a388 lw s2, 0x30(sp) | s2 = *(var_30h);
0x0000a38c lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x0000a390 lw s0, 0x28(sp) | s0 = *(var_28h);
0x0000a394 addiu sp, sp, 0x38 |
0x0000a398 jr ra | return v0;
| label_8:
0x0000a39c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
| /* str._dev_ */
0x0000a3a0 addiu v0, v0, -0x34b8 | v0 += -0x34b8;
0x0000a3a4 b 0xa2c0 |
| } while (1);
| label_5:
0x0000a3a8 lw t9, -0x7dd4(gp) | t9 = sym.imp.close;
0x0000a3ac jalr t9 | t9 ();
0x0000a3b0 nop |
0x0000a3b4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000a3b8 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0000a3bc lw v0, -0x1af0(v0) | v0 = *((v0 - 1724));
0x0000a3c0 andi v0, v0, 4 | v0 &= 4;
| if (v0 == 0) {
0x0000a3c4 beql v0, zero, 0xa23c | goto label_0;
| }
0x0000a3c8 lbu v0, 0x9c(s0) | v0 = *((s0 + 156));
0x0000a3cc lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0000a3d0 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0000a3d4 lw s2, (v0) | s2 = *(v0);
0x0000a3d8 jalr t9 | t9 ();
0x0000a3dc lw gp, 0x20(sp) | gp = *(var_20h);
0x0000a3e0 move a3, v0 | a3 = v0;
0x0000a3e4 addiu a1, zero, 1 | a1 = 1;
0x0000a3e8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a3ec lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0000a3f0 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0000a3f4 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0000a3f8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0000a3fc lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.loopdev */
0x0000a400 addiu v0, v0, -0x348c | v0 += -0x348c;
| /* str._d:__s:__8s:_ */
0x0000a404 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0000a408 move a0, s2 | a0 = s2;
0x0000a40c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000a410 jalr t9 | t9 ();
0x0000a414 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000a418 move a0, s0 | a0 = s0;
0x0000a41c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0000a420 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0000a424 addiu t9, t9, -0x64b8 | t9 += -0x64b8;
| /* str.closing_old_open_fd */
0x0000a428 addiu a1, a1, -0x3420 | a1 += -0x3420;
0x0000a42c bal 0x9b48 | fcn_00009b48 ();
0x0000a430 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000a434 b 0xa238 | goto label_1;
| label_7:
0x0000a438 addiu a2, zero, 0x7f | a2 = 0x7f;
0x0000a43c move a1, s1 | a1 = s1;
0x0000a440 move a0, s0 | a0 = s0;
0x0000a444 jalr t9 | t9 ();
0x0000a448 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000a44c sb zero, 0x7f(s0) | *((s0 + 127)) = 0;
0x0000a450 b 0xa2f0 | goto label_2;
| label_9:
0x0000a454 addiu v0, zero, -1 | v0 = -1;
0x0000a458 b 0xa384 | goto label_3;
| label_4:
0x0000a45c addiu v0, zero, -0x16 | v0 = -0x16;
0x0000a460 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x14304 */
| #include <stdint.h>
|
; (fcn) sym.sysfs_blkdev_init_path () | void sysfs_blkdev_init_path () {
0x00014304 lui gp, 2 |
0x00014308 addiu gp, gp, 0x1d4c |
0x0001430c addu gp, gp, t9 | gp += t9;
0x00014310 addiu sp, sp, -0x88 |
0x00014314 sll v1, a3, 0x14 | v1 = a3 << 0x14;
0x00014318 srl v0, a2, 0xc | v0 = a2 >> 0xc;
0x0001431c or v0, v1, v0 | v0 = v1 | v0;
0x00014320 sw s2, 0x6c(sp) | *(var_6ch) = s2;
0x00014324 addiu v1, zero, -0x100 | v1 = -aav.0x00000100;
0x00014328 lw s2, -0x7bc0(gp) | s2 = *((gp - 7920));
0x0001432c ext a1, a2, 8, 0xc | __asm ("ext a1, a2, 8, 0xc");
0x00014330 sw s3, 0x70(sp) | *(var_70h) = s3;
0x00014334 and v0, v0, v1 | v0 &= v1;
0x00014338 move s3, a2 | s3 = a2;
0x0001433c andi a2, a2, 0xff | a2 &= 0xff;
0x00014340 or v0, v0, a2 | v0 |= a2;
0x00014344 lw t0, (s2) | t0 = *(s2);
0x00014348 addiu v1, zero, -0x1000 | v1 = -0x1000;
0x0001434c sw v0, 0x18(sp) | *(var_18h) = v0;
0x00014350 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00014354 and v1, a3, v1 | v1 = a3 & v1;
0x00014358 or v1, v1, a1 | v1 |= a1;
0x0001435c lw t9, -0x7b5c(gp) | t9 = sym.imp.__snprintf_chk;
0x00014360 sw s0, 0x64(sp) | *(var_64h) = s0;
| /* str._sys_dev_block__d:_d */
0x00014364 addiu v0, v0, -0x2924 | v0 += -0x2924;
0x00014368 addiu s0, sp, 0x2c | s0 = sp + 0x2c;
0x0001436c sw gp, 0x20(sp) | *(var_20h) = gp;
0x00014370 sw ra, 0x84(sp) | *(var_84h) = ra;
0x00014374 sw s5, 0x78(sp) | *(var_78h) = s5;
0x00014378 sw s4, 0x74(sp) | *(var_74h) = s4;
0x0001437c sw s1, 0x68(sp) | *(var_68h) = s1;
0x00014380 move s4, a0 | s4 = a0;
0x00014384 addiu a2, zero, 1 | a2 = 1;
0x00014388 move a0, s0 | a0 = s0;
0x0001438c addiu a1, zero, 0x2e | a1 = 0x2e;
0x00014390 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00014394 sw t0, 0x5c(sp) | *(var_5ch) = t0;
0x00014398 sw s7, 0x80(sp) | *(var_80h) = s7;
0x0001439c sw s6, 0x7c(sp) | *(var_7ch) = s6;
0x000143a0 move s1, a3 | s1 = a3;
0x000143a4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000143a8 addiu a3, zero, 0x2e | a3 = 0x2e;
0x000143ac lw s5, 0x98(sp) | s5 = *(arg_98h);
0x000143b0 jalr t9 | t9 ();
0x000143b4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000143b8 move a1, s0 | a1 = s0;
0x000143bc lw t9, -0x7e74(gp) | t9 = sym.ul_path_set_dir;
0x000143c0 move a0, s4 | a0 = s4;
0x000143c4 bal 0x10980 | sym_ul_path_set_dir ();
0x000143c8 move s0, v0 | s0 = v0;
0x000143cc lw gp, 0x20(sp) | gp = *(var_20h);
0x000143d0 beqz v0, 0x14410 |
| while (1) {
| label_0:
0x000143d4 lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x000143d8 lw v1, (s2) | v1 = *(s2);
0x000143dc move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x000143e0 bne a0, v1, 0x145b4 | goto label_3;
| }
0x000143e4 lw ra, 0x84(sp) | ra = *(var_84h);
0x000143e8 lw s7, 0x80(sp) | s7 = *(var_80h);
0x000143ec lw s6, 0x7c(sp) | s6 = *(var_7ch);
0x000143f0 lw s5, 0x78(sp) | s5 = *(var_78h);
0x000143f4 lw s4, 0x74(sp) | s4 = *(var_74h);
0x000143f8 lw s3, 0x70(sp) | s3 = *(var_70h);
0x000143fc lw s2, 0x6c(sp) | s2 = *(var_6ch);
0x00014400 lw s1, 0x68(sp) | s1 = *(var_68h);
0x00014404 lw s0, 0x64(sp) | s0 = *(var_64h);
0x00014408 addiu sp, sp, 0x88 |
0x0001440c jr ra | return v0;
0x00014410 lw t9, -0x7ee0(gp) | t9 = sym.ul_path_get_dirfd;
0x00014414 move a0, s4 | a0 = s4;
0x00014418 bal 0x10bc4 | sym_ul_path_get_dirfd ();
0x0001441c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00014420 bltz v0, 0x14470 | goto label_4;
| }
0x00014424 lw t9, -0x7e80(gp) | t9 = sym.ul_path_get_dialect;
0x00014428 move a0, s4 | a0 = s4;
0x0001442c bal 0x10ba0 | sym_ul_path_get_dialect ();
0x00014430 lw gp, 0x20(sp) | gp = *(var_20h);
0x00014434 move s6, v0 | s6 = v0;
0x00014438 lw s7, -0x7fdc(gp) | s7 = *((gp - 8183));
| if (v0 == 0) {
0x0001443c beqz v0, 0x144e0 | goto label_5;
| }
| label_2:
0x00014440 lw v0, -0x1ad0(s7) | v0 = *((s7 - 1716));
0x00014444 andi v0, v0, 4 | v0 &= 4;
0x00014448 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 == 0) {
0x0001444c bnel v0, zero, 0x14478 | goto label_6;
| }
| label_1:
0x00014450 lw t9, -0x7e70(gp) | t9 = sym.sysfs_blkdev_set_parent;
0x00014454 sw s3, (s6) | *(s6) = s3;
0x00014458 sw s1, 4(s6) | *((s6 + 1)) = s1;
0x0001445c move a1, s5 | a1 = s5;
0x00014460 move a0, s4 | a0 = s4;
0x00014464 bal 0x141c0 | sym_sysfs_blkdev_set_parent ();
0x00014468 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001446c b 0x143d4 |
| }
| label_4:
0x00014470 move s0, v0 | s0 = v0;
0x00014474 b 0x143d4 | goto label_0;
| label_6:
0x00014478 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0001447c lw s7, (v0) | s7 = *(v0);
0x00014480 jalr t9 | t9 ();
0x00014484 lw gp, 0x20(sp) | gp = *(var_20h);
0x00014488 move a3, v0 | a3 = v0;
0x0001448c addiu a1, zero, 1 | a1 = 1;
0x00014490 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00014494 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00014498 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x0001449c sw v0, 0x14(sp) | *(var_14h) = v0;
0x000144a0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x000144a4 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulsysfs */
0x000144a8 addiu v0, v0, -0x2970 | v0 += -0x2970;
| /* str._d:__s:__8s:_ */
0x000144ac addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x000144b0 move a0, s7 | a0 = s7;
0x000144b4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000144b8 jalr t9 | t9 ();
0x000144bc lw gp, 0x20(sp) | gp = *(var_20h);
0x000144c0 move a0, s4 | a0 = s4;
0x000144c4 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x000144c8 lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00013bd0 */
0x000144cc addiu t9, t9, 0x3bd0 | t9 += 0x3bd0;
| /* str.init_sysfs_stuff */
0x000144d0 addiu a1, a1, -0x28f4 | a1 += -0x28f4;
0x000144d4 bal 0x13bd0 | fcn_00013bd0 ();
0x000144d8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000144dc b 0x14450 | goto label_1;
| label_5:
0x000144e0 lw v0, -0x1ad0(s7) | v0 = *((s7 - 1716));
0x000144e4 andi v0, v0, 4 | v0 &= 4;
0x000144e8 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x000144ec bnez v0, 0x14544 |
| while (1) {
0x000144f0 lw t9, -0x7df0(gp) | t9 = sym.imp.calloc;
0x000144f4 addiu a1, zero, 0x20 | a1 = 0x20;
0x000144f8 addiu a0, zero, 1 | a0 = 1;
0x000144fc jalr t9 | t9 ();
0x00014500 move s6, v0 | s6 = v0;
0x00014504 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00014508 beqz v0, 0x145ac | goto label_7;
| }
0x0001450c lw a2, -0x7f74(gp) | a2 = *(gp);
0x00014510 lw t9, -0x7e7c(gp) | t9 = sym.ul_path_set_dialect;
0x00014514 addiu a2, a2, 0x3cb8 | a2 += 0x3cb8;
0x00014518 move a1, v0 | a1 = v0;
0x0001451c move a0, s4 | a0 = s4;
0x00014520 bal 0x10ad0 | sym_ul_path_set_dialect ();
0x00014524 lw gp, 0x20(sp) | gp = *(var_20h);
0x00014528 move a0, s4 | a0 = s4;
0x0001452c lw a1, -0x7f74(gp) | a1 = *(gp);
0x00014530 lw t9, -0x7e6c(gp) | t9 = sym.ul_path_set_enoent_redirect;
0x00014534 addiu a1, a1, 0x3f00 | a1 += 0x3f00;
0x00014538 bal 0x10bb8 | sym_ul_path_set_enoent_redirect ();
0x0001453c lw gp, 0x20(sp) | gp = *(var_20h);
0x00014540 b 0x14440 | goto label_2;
0x00014544 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00014548 lw s6, (v0) | s6 = *(v0);
0x0001454c jalr t9 | t9 ();
0x00014550 lw gp, 0x20(sp) | gp = *(var_20h);
0x00014554 move a3, v0 | a3 = v0;
0x00014558 addiu a1, zero, 1 | a1 = 1;
0x0001455c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00014560 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00014564 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00014568 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0001456c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00014570 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulsysfs */
0x00014574 addiu v0, v0, -0x2970 | v0 += -0x2970;
| /* str._d:__s:__8s:_ */
0x00014578 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0001457c move a0, s6 | a0 = s6;
0x00014580 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00014584 jalr t9 | t9 ();
0x00014588 lw gp, 0x20(sp) | gp = *(var_20h);
0x0001458c move a0, s4 | a0 = s4;
0x00014590 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00014594 lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00013bd0 */
0x00014598 addiu t9, t9, 0x3bd0 | t9 += 0x3bd0;
| /* str.alloc_new_sysfs_handler */
0x0001459c addiu a1, a1, -0x290c | a1 += -0x290c;
0x000145a0 bal 0x13bd0 | fcn_00013bd0 ();
0x000145a4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000145a8 b 0x144f0 |
| }
| label_7:
0x000145ac addiu s0, zero, -0xc | s0 = -0xc;
0x000145b0 b 0x143d4 | goto label_0;
| label_3:
0x000145b4 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x000145b8 jalr t9 | t9 ();
0x000145bc nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x141c0 */
| #include <stdint.h>
|
; (fcn) sym.sysfs_blkdev_set_parent () | void sysfs_blkdev_set_parent () {
0x000141c0 lui gp, 2 |
0x000141c4 addiu gp, gp, 0x1e90 |
0x000141c8 addu gp, gp, t9 | gp += t9;
0x000141cc addiu sp, sp, -0x30 |
0x000141d0 lw t9, -0x7e80(gp) | t9 = sym.ul_path_get_dialect;
0x000141d4 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000141d8 sw s2, 0x28(sp) | *(var_28h) = s2;
0x000141dc sw s1, 0x24(sp) | *(var_24h) = s1;
0x000141e0 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000141e4 sw s0, 0x20(sp) | *(var_20h) = s0;
0x000141e8 move s2, a0 | s2 = a0;
0x000141ec move s1, a1 | s1 = a1;
0x000141f0 bal 0x10ba0 | sym_ul_path_get_dialect ();
0x000141f4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s2 == 0) {
0x000141f8 beqz s2, 0x142fc | goto label_1;
| }
0x000141fc move s0, v0 | s0 = v0;
| if (v0 == 0) {
0x00014200 beqz v0, 0x142fc | goto label_1;
| }
0x00014204 lw a0, 8(v0) | a0 = *((v0 + 2));
0x00014208 lw t9, -0x7f60(gp) | t9 = sym.ul_unref_path;
| if (a0 != 0) {
0x0001420c beqz a0, 0x14220 |
0x00014210 bal 0x10e3c | sym_ul_unref_path ();
0x00014214 nop |
0x00014218 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001421c sw zero, 8(s0) | *((s0 + 2)) = 0;
| }
0x00014220 lw t9, -0x7e78(gp) | t9 = sym.ul_ref_path;
| if (s1 == 0) {
0x00014224 beqz s1, 0x14264 | goto label_2;
| }
0x00014228 move a0, s1 | a0 = s1;
0x0001422c bal 0x1080c | sym_ul_ref_path ();
0x00014230 lw gp, 0x18(sp) | gp = *(var_18h);
0x00014234 sw s1, 8(s0) | *((s0 + 2)) = s1;
0x00014238 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0001423c lw v0, -0x1ad0(v0) | v0 = *((v0 - 1716));
0x00014240 andi v0, v0, 4 | v0 &= 4;
0x00014244 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 == 0) {
0x00014248 bnel v0, zero, 0x14280 | goto label_3;
| }
| label_0:
0x0001424c lw ra, 0x2c(sp) | ra = *(var_2ch);
| do {
0x00014250 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00014254 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00014258 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001425c addiu sp, sp, 0x30 |
0x00014260 jr ra | return v0;
| label_2:
0x00014264 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00014268 sw zero, 8(s0) | *((s0 + 2)) = 0;
0x0001426c lw v0, -0x1ad0(v0) | v0 = *((v0 - 1716));
0x00014270 andi v0, v0, 4 | v0 &= 4;
0x00014274 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00014278 beqz v0, 0x14250 |
| } while (v0 == 0);
0x0001427c lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| label_3:
0x00014280 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00014284 lw s0, (v0) | s0 = *(v0);
0x00014288 jalr t9 | t9 ();
0x0001428c lw gp, 0x18(sp) | gp = *(var_18h);
0x00014290 move a3, v0 | a3 = v0;
0x00014294 move a0, s0 | a0 = s0;
0x00014298 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x0001429c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x000142a0 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x000142a4 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000142a8 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x000142ac lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulsysfs */
0x000142b0 addiu v0, v0, -0x2970 | v0 += -0x2970;
| /* str._d:__s:__8s:_ */
0x000142b4 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x000142b8 addiu a1, zero, 1 | a1 = 1;
0x000142bc sw v0, 0x10(sp) | *(var_10h) = v0;
0x000142c0 jalr t9 | t9 ();
0x000142c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000142c8 move a0, s2 | a0 = s2;
0x000142cc lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x000142d0 lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00013bd0 */
0x000142d4 addiu t9, t9, 0x3bd0 | t9 += 0x3bd0;
| /* str.new_parent */
0x000142d8 addiu a1, a1, -0x2930 | a1 += -0x2930;
0x000142dc bal 0x13bd0 | fcn_00013bd0 ();
0x000142e0 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000142e4 lw s2, 0x28(sp) | s2 = *(var_28h);
0x000142e8 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000142ec lw s0, 0x20(sp) | s0 = *(var_20h);
0x000142f0 move v0, zero | v0 = 0;
0x000142f4 addiu sp, sp, 0x30 |
0x000142f8 jr ra | return v0;
| label_1:
0x000142fc addiu v0, zero, -0x16 | v0 = -0x16;
0x00014300 b 0x1424c | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x10f64 */
| #include <stdint.h>
|
; (fcn) sym.ul_new_path () | void ul_new_path () {
0x00010f64 lui gp, 2 |
0x00010f68 addiu gp, gp, 0x50ec |
0x00010f6c addu gp, gp, t9 | gp += t9;
0x00010f70 addiu sp, sp, -0x40 |
0x00010f74 lw t9, -0x7df0(gp) | t9 = sym.imp.calloc;
0x00010f78 sw s1, 0x30(sp) | *(var_30h) = s1;
0x00010f7c lw s1, -0x7bc0(gp) | s1 = *((gp - 7920));
0x00010f80 sw a1, 0x44(sp) | *(arg_44h) = a1;
0x00010f84 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00010f88 lw v0, (s1) | v0 = *(s1);
0x00010f8c sw s2, 0x34(sp) | *(var_34h) = s2;
0x00010f90 sw s0, 0x2c(sp) | *(var_2ch) = s0;
0x00010f94 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00010f98 sw s3, 0x38(sp) | *(var_38h) = s3;
0x00010f9c move s2, a0 | s2 = a0;
0x00010fa0 sw a2, 0x48(sp) | *(arg_48h) = a2;
0x00010fa4 sw a3, 0x4c(sp) | *(arg_4ch) = a3;
0x00010fa8 addiu a1, zero, 0x101c | a1 = 0x101c;
0x00010fac addiu a0, zero, 1 | a0 = 1;
0x00010fb0 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00010fb4 jalr t9 | t9 ();
0x00010fb8 nop |
0x00010fbc move s0, v0 | s0 = v0;
0x00010fc0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00010fc4 beqz v0, 0x11020 | goto label_0;
| }
0x00010fc8 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00010fcc lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x00010fd0 andi v0, v0, 4 | v0 &= 4;
0x00010fd4 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x00010fd8 bnez v0, 0x1104c |
| while (1) {
0x00010fdc addiu v0, zero, 1 | v0 = 1;
0x00010fe0 sw v0, 8(s0) | *((s0 + 2)) = v0;
0x00010fe4 addiu v0, zero, -1 | v0 = -1;
0x00010fe8 sw v0, (s0) | *(s0) = v0;
| if (s2 != 0) {
0x00010fec beqz s2, 0x11020 |
0x00010ff0 lw t9, -0x7ce4(gp) | t9 = sym.imp.__vasprintf_chk;
0x00010ff4 addiu a3, sp, 0x44 | a3 = sp + 0x44;
0x00010ff8 sw a3, 0x20(sp) | *(var_20h) = a3;
0x00010ffc move a2, s2 | a2 = s2;
0x00011000 addiu a1, zero, 1 | a1 = 1;
0x00011004 addiu a0, s0, 4 | a0 = s0 + 4;
0x00011008 jalr t9 | t9 ();
0x0001100c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00011010 bltz v0, 0x110b4 | goto label_1;
| }
0x00011014 lw v0, 4(s0) | v0 = *((s0 + 1));
0x00011018 lw t9, -0x7f60(gp) | t9 = sym.ul_unref_path;
| if (v0 == 0) {
0x0001101c beqz v0, 0x110b8 | goto label_2;
| }
| }
| label_0:
0x00011020 lw a0, 0x24(sp) | a0 = *(var_24h);
0x00011024 lw v1, (s1) | v1 = *(s1);
0x00011028 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0001102c bne a0, v1, 0x110cc | goto label_3;
| }
0x00011030 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00011034 lw s3, 0x38(sp) | s3 = *(var_38h);
0x00011038 lw s2, 0x34(sp) | s2 = *(var_34h);
0x0001103c lw s1, 0x30(sp) | s1 = *(var_30h);
0x00011040 lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x00011044 addiu sp, sp, 0x40 |
0x00011048 jr ra | return v0;
0x0001104c lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00011050 lw s3, (v0) | s3 = *(v0);
0x00011054 jalr t9 | t9 ();
0x00011058 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001105c move a3, v0 | a3 = v0;
0x00011060 addiu a1, zero, 1 | a1 = 1;
0x00011064 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00011068 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0001106c addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00011070 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00011074 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00011078 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulpath */
0x0001107c addiu v0, v0, -0x2b18 | v0 += -0x2b18;
| /* str._d:__s:__8s:_ */
0x00011080 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00011084 move a0, s3 | a0 = s3;
0x00011088 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0001108c jalr t9 | t9 ();
0x00011090 lw gp, 0x18(sp) | gp = *(var_18h);
0x00011094 move a0, s0 | a0 = s0;
0x00011098 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0001109c lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00010320 */
0x000110a0 addiu t9, t9, 0x320 | t9 += 0x320;
| /* str.alloc */
0x000110a4 addiu a1, a1, -0x2a68 | a1 += -0x2a68;
0x000110a8 bal 0x10320 | fcn_00010320 ();
0x000110ac lw gp, 0x18(sp) | gp = *(var_18h);
0x000110b0 b 0x10fdc |
| }
| label_1:
0x000110b4 lw t9, -0x7f60(gp) | t9 = sym.ul_unref_path;
| label_2:
0x000110b8 move a0, s0 | a0 = s0;
0x000110bc bal 0x10e3c | sym_ul_unref_path ();
0x000110c0 move s0, zero | s0 = 0;
0x000110c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000110c8 b 0x11020 | goto label_0;
| label_3:
0x000110cc lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x000110d0 jalr t9 | t9 ();
0x000110d4 nop |
| if (a0 != 0) {
0x000110d8 beqz a0, 0x110f0 |
0x000110dc nop |
0x000110e0 lw v0, (a0) | v0 = *(a0);
0x000110e4 nor v0, zero, v0 | __asm ("nor v0, zero, v0");
0x000110e8 srl v0, v0, 0x1f | v0 >>= 0x1f;
0x000110ec jr ra | return v0;
| }
0x000110f0 move v0, zero | v0 = 0;
0x000110f4 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x145c0 */
| #include <stdint.h>
|
; (fcn) sym.ul_new_sysfs_path () | void ul_new_sysfs_path () {
0x000145c0 lui gp, 2 |
0x000145c4 addiu gp, gp, 0x1a90 |
0x000145c8 addu gp, gp, t9 | gp += t9;
0x000145cc addiu sp, sp, -0x38 |
0x000145d0 lw t9, -0x7e68(gp) | t9 = sym.ul_new_path;
0x000145d4 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000145d8 sw s4, 0x30(sp) | *(var_30h) = s4;
0x000145dc sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x000145e0 sw s2, 0x28(sp) | *(var_28h) = s2;
0x000145e4 sw s1, 0x24(sp) | *(var_24h) = s1;
0x000145e8 sw s0, 0x20(sp) | *(var_20h) = s0;
0x000145ec sw ra, 0x34(sp) | *(var_34h) = ra;
0x000145f0 move s2, a0 | s2 = a0;
0x000145f4 move a0, zero | a0 = 0;
0x000145f8 move s3, a1 | s3 = a1;
0x000145fc move s4, a2 | s4 = a2;
0x00014600 move s1, a3 | s1 = a3;
0x00014604 bal 0x10f64 | sym_ul_new_path ();
0x00014608 move s0, v0 | s0 = v0;
0x0001460c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00014610 beqz v0, 0x14660 | goto label_0;
| }
0x00014614 lw t9, -0x7e64(gp) | t9 = sym.ul_path_set_prefix;
| if (s1 != 0) {
0x00014618 beqz s1, 0x1462c |
0x0001461c move a1, s1 | a1 = s1;
0x00014620 move a0, v0 | a0 = v0;
0x00014624 bal 0x10828 | sym_ul_path_set_prefix ();
0x00014628 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0001462c lw t9, -0x7e60(gp) | t9 = sym.sysfs_blkdev_init_path;
0x00014630 sw s4, 0x10(sp) | *(var_10h) = s4;
0x00014634 move a2, s2 | a2 = s2;
0x00014638 move a3, s3 | a3 = s3;
0x0001463c move a0, s0 | a0 = s0;
0x00014640 bal 0x14304 | sym_sysfs_blkdev_init_path ();
0x00014644 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00014648 bnez v0, 0x14708 | goto label_1;
| }
0x0001464c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00014650 lw v0, -0x1ad0(v0) | v0 = *((v0 - 1716));
0x00014654 andi v0, v0, 4 | v0 &= 4;
0x00014658 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x0001465c bnez v0, 0x14684 |
| while (1) {
| label_0:
0x00014660 lw ra, 0x34(sp) | ra = *(var_34h);
0x00014664 move v0, s0 | v0 = s0;
0x00014668 lw s4, 0x30(sp) | s4 = *(var_30h);
0x0001466c lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00014670 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00014674 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00014678 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001467c addiu sp, sp, 0x38 |
0x00014680 jr ra | return v0;
0x00014684 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00014688 lw s1, (v0) | s1 = *(v0);
0x0001468c jalr t9 | t9 ();
0x00014690 lw gp, 0x18(sp) | gp = *(var_18h);
0x00014694 move a3, v0 | a3 = v0;
0x00014698 move a0, s1 | a0 = s1;
0x0001469c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x000146a0 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x000146a4 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x000146a8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000146ac lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x000146b0 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulsysfs */
0x000146b4 addiu v0, v0, -0x2970 | v0 += -0x2970;
| /* str._d:__s:__8s:_ */
0x000146b8 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x000146bc addiu a1, zero, 1 | a1 = 1;
0x000146c0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000146c4 jalr t9 | t9 ();
0x000146c8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000146cc move a0, s0 | a0 = s0;
0x000146d0 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x000146d4 lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00013bd0 */
0x000146d8 addiu t9, t9, 0x3bd0 | t9 += 0x3bd0;
| /* str.alloc */
0x000146dc addiu a1, a1, -0x2a68 | a1 += -0x2a68;
0x000146e0 bal 0x13bd0 | fcn_00013bd0 ();
0x000146e4 lw ra, 0x34(sp) | ra = *(var_34h);
0x000146e8 move v0, s0 | v0 = s0;
0x000146ec lw s4, 0x30(sp) | s4 = *(var_30h);
0x000146f0 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x000146f4 lw s2, 0x28(sp) | s2 = *(var_28h);
0x000146f8 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000146fc lw s0, 0x20(sp) | s0 = *(var_20h);
0x00014700 addiu sp, sp, 0x38 |
0x00014704 jr ra | return v0;
| label_1:
0x00014708 lw t9, -0x7f60(gp) | t9 = sym.ul_unref_path;
0x0001470c move a0, s0 | a0 = s0;
0x00014710 bal 0x10e3c | sym_ul_unref_path ();
0x00014714 move s0, zero | s0 = 0;
0x00014718 b 0x14660 |
| }
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x112d0 */
| #include <stdint.h>
|
; (fcn) sym.ul_path_access () | void ul_path_access () {
| label_2:
0x000112d0 lui gp, 2 |
0x000112d4 addiu gp, gp, 0x4d80 |
0x000112d8 addu gp, gp, t9 | gp += t9;
0x000112dc addiu sp, sp, -0x40 |
0x000112e0 lw t9, -0x7ee0(gp) | t9 = sym.ul_path_get_dirfd;
0x000112e4 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x000112e8 lw s1, -0x7bc0(gp) | s1 = *((gp - 7920));
0x000112ec sw gp, 0x18(sp) | *(var_18h) = gp;
0x000112f0 sw s4, 0x38(sp) | *(var_38h) = s4;
0x000112f4 lw v0, (s1) | v0 = *(s1);
0x000112f8 sw s3, 0x34(sp) | *(var_34h) = s3;
0x000112fc sw s2, 0x30(sp) | *(var_30h) = s2;
0x00011300 sw s0, 0x28(sp) | *(var_28h) = s0;
0x00011304 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00011308 sw v0, 0x24(sp) | *(var_24h) = v0;
0x0001130c move s4, a0 | s4 = a0;
0x00011310 move s3, a1 | s3 = a1;
0x00011314 move s2, a2 | s2 = a2;
0x00011318 bal 0x10bc4 | sym_ul_path_get_dirfd ();
0x0001131c move s0, v0 | s0 = v0;
0x00011320 lw gp, 0x18(sp) | gp = *(var_18h);
0x00011324 sw v0, 0x20(sp) | *(var_20h) = v0;
| if (v0 < 0) {
0x00011328 bltz v0, 0x11364 | goto label_0;
| }
0x0001132c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00011330 lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x00011334 andi v0, v0, 4 | v0 &= 4;
0x00011338 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x0001133c bnez v0, 0x113f4 | goto label_3;
| }
| label_1:
0x00011340 lw t9, -0x7bbc(gp) | t9 = sym.imp.faccessat;
0x00011344 move a0, s0 | a0 = s0;
0x00011348 move a3, zero | a3 = 0;
0x0001134c move a2, s3 | a2 = s3;
0x00011350 move a1, s2 | a1 = s2;
0x00011354 jalr t9 | t9 ();
0x00011358 move s0, v0 | s0 = v0;
0x0001135c lw gp, 0x18(sp) | gp = *(var_18h);
0x00011360 bnez v0, 0x11394 |
| while (v1 != v0) {
| label_0:
0x00011364 lw a0, 0x24(sp) | a0 = *(var_24h);
0x00011368 lw v1, (s1) | v1 = *(s1);
0x0001136c move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00011370 bne a0, v1, 0x11464 | goto label_4;
| }
0x00011374 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00011378 lw s4, 0x38(sp) | s4 = *(var_38h);
0x0001137c lw s3, 0x34(sp) | s3 = *(var_34h);
0x00011380 lw s2, 0x30(sp) | s2 = *(var_30h);
0x00011384 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00011388 lw s0, 0x28(sp) | s0 = *(var_28h);
0x0001138c addiu sp, sp, 0x40 |
0x00011390 jr ra | return v0;
0x00011394 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x00011398 jalr t9 | t9 ();
0x0001139c nop |
0x000113a0 lw v1, (v0) | v1 = *(v0);
0x000113a4 addiu v0, zero, 2 | v0 = 2;
0x000113a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000113ac bne v1, v0, 0x11364 |
| }
0x000113b0 lw t9, 0x1018(s4) | t9 = *((s4 + 1030));
0x000113b4 addiu a2, sp, 0x20 | a2 = sp + 0x20;
| if (t9 == 0) {
0x000113b8 beqz t9, 0x11364 | goto label_0;
| }
0x000113bc move a1, s2 | a1 = s2;
0x000113c0 move a0, s4 | a0 = s4;
0x000113c4 jalr t9 | t9 ();
0x000113c8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000113cc bnez v0, 0x11364 | goto label_0;
| }
0x000113d0 lw t9, -0x7bbc(gp) | t9 = sym.imp.faccessat;
0x000113d4 lw a0, 0x20(sp) | a0 = *(var_20h);
0x000113d8 move a3, zero | a3 = 0;
0x000113dc move a2, s3 | a2 = s3;
0x000113e0 move a1, s2 | a1 = s2;
0x000113e4 jalr t9 | t9 ();
0x000113e8 move s0, v0 | s0 = v0;
0x000113ec lw gp, 0x18(sp) | gp = *(var_18h);
0x000113f0 b 0x11364 | goto label_0;
| label_3:
0x000113f4 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x000113f8 lw s0, (v0) | s0 = *(v0);
0x000113fc jalr t9 | t9 ();
0x00011400 lw gp, 0x18(sp) | gp = *(var_18h);
0x00011404 move a3, v0 | a3 = v0;
0x00011408 move a0, s0 | a0 = s0;
0x0001140c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00011410 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00011414 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00011418 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0001141c lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00011420 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulpath */
0x00011424 addiu v0, v0, -0x2b18 | v0 += -0x2b18;
| /* str._d:__s:__8s:_ */
0x00011428 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0001142c addiu a1, zero, 1 | a1 = 1;
0x00011430 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00011434 jalr t9 | t9 ();
0x00011438 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001143c move a2, s2 | a2 = s2;
0x00011440 move a0, s4 | a0 = s4;
0x00011444 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00011448 lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00010320 */
0x0001144c addiu t9, t9, 0x320 | t9 += 0x320;
| /* str.access:__s */
0x00011450 addiu a1, a1, -0x2a54 | a1 += -0x2a54;
0x00011454 bal 0x10320 | fcn_00010320 ();
0x00011458 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001145c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00011460 b 0x11340 | goto label_1;
| label_4:
0x00011464 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00011468 jalr t9 | t9 ();
0x0001146c nop |
0x00011470 lui gp, 2 |
0x00011474 addiu gp, gp, 0x4be0 |
0x00011478 addu gp, gp, t9 | gp += t9;
0x0001147c addiu sp, sp, -0x30 |
0x00011480 lw t9, -0x7f74(gp) | t9 = *(gp);
0x00011484 sw s0, 0x20(sp) | *(var_20h_2) = s0;
0x00011488 lw s0, -0x7bc0(gp) | s0 = *((gp - 7920));
0x0001148c move t0, a2 | t0 = a2;
0x00011490 addiu v0, sp, 0x3c | v0 = sp + 0x3c;
0x00011494 lw v1, (s0) | v1 = *(s0);
0x00011498 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0001149c sw s2, 0x28(sp) | *(var_28h_2) = s2;
0x000114a0 sw s1, 0x24(sp) | *(var_24h_2) = s1;
0x000114a4 sw ra, 0x2c(sp) | *(var_2ch_2) = ra;
0x000114a8 move s2, a1 | s2 = a1;
0x000114ac move a2, v0 | a2 = v0;
0x000114b0 move a1, t0 | a1 = t0;
0x000114b4 sw a3, 0x3c(sp) | *(var_3ch_2) = a3;
0x000114b8 sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x000114bc sw v0, 0x18(sp) | *(var_18h_2) = v0;
| /* fcn.000104a8 */
0x000114c0 addiu t9, t9, 0x4a8 | t9 += 0x4a8;
0x000114c4 move s1, a0 | s1 = a0;
0x000114c8 bal 0x104a8 | fcn_000104a8 ();
0x000114cc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000114d0 beqz v0, 0x11510 | goto label_5;
| }
0x000114d4 lw t9, -0x7edc(gp) | t9 = sym.ul_path_access;
0x000114d8 move a2, v0 | a2 = v0;
0x000114dc move a1, s2 | a1 = s2;
0x000114e0 move a0, s1 | a0 = s1;
0x000114e4 bal 0x112d0 | sym_ul_path_access ();
| goto label_2;
0x000114e8 lw gp, 0x10(sp) | gp = *(var_10h);
| do {
0x000114ec lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x000114f0 lw v1, (s0) | v1 = *(s0);
0x000114f4 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
| if (a0 != v1) {
0x000114f8 bne a0, v1, 0x1152c | goto label_6;
| }
0x000114fc lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x00011500 lw s1, 0x24(sp) | s1 = *(var_24h_2);
0x00011504 lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x00011508 addiu sp, sp, 0x30 |
0x0001150c jr ra | return v0;
| label_5:
0x00011510 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x00011514 jalr t9 | t9 ();
0x00011518 nop |
0x0001151c lw v0, (v0) | v0 = *(v0);
0x00011520 lw gp, 0x10(sp) | gp = *(var_10h);
0x00011524 negu v0, v0 | __asm ("negu v0, v0");
0x00011528 b 0x114ec |
| } while (1);
| label_6:
0x0001152c lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00011530 jalr t9 | t9 ();
0x00011534 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x10d3c */
| #include <stdint.h>
|
; (fcn) sym.ul_path_close_dirfd () | void ul_path_close_dirfd () {
0x00010d3c lui gp, 2 |
0x00010d40 addiu gp, gp, 0x5314 |
0x00010d44 addu gp, gp, t9 | gp += t9;
0x00010d48 addiu sp, sp, -0x30 |
0x00010d4c sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00010d50 sw ra, 0x2c(sp) | *(var_2ch_2) = ra;
0x00010d54 sw s1, 0x28(sp) | *(var_28h_2) = s1;
0x00010d58 sw s0, 0x24(sp) | *(var_24h_2) = s0;
0x00010d5c move s0, a0 | s0 = a0;
| if (a0 == 0) {
0x00010d60 beqz a0, 0x10e18 | goto label_0;
| }
0x00010d64 lw a0, (a0) | a0 = *(a0);
0x00010d68 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
| if (a0 < 0) {
0x00010d6c bltz a0, 0x10d94 | goto label_1;
| }
0x00010d70 lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x00010d74 andi v0, v0, 4 | v0 &= 4;
0x00010d78 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x00010d7c bnez v0, 0x10da8 |
| while (1) {
0x00010d80 lw t9, -0x7dd4(gp) | t9 = sym.imp.close;
0x00010d84 jalr t9 | t9 ();
0x00010d88 nop |
0x00010d8c addiu v0, zero, -1 | v0 = -1;
0x00010d90 sw v0, (s0) | *(s0) = v0;
| label_1:
0x00010d94 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x00010d98 lw s1, 0x28(sp) | s1 = *(var_28h_2);
0x00010d9c lw s0, 0x24(sp) | s0 = *(var_24h_2);
0x00010da0 addiu sp, sp, 0x30 |
0x00010da4 jr ra | return v0;
0x00010da8 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00010dac lw s1, (v0) | s1 = *(v0);
0x00010db0 jalr t9 | t9 ();
0x00010db4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00010db8 move a3, v0 | a3 = v0;
0x00010dbc addiu a1, zero, 1 | a1 = 1;
0x00010dc0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00010dc4 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00010dc8 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00010dcc sw v0, 0x14(sp) | *(var_14h) = v0;
0x00010dd0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00010dd4 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulpath */
0x00010dd8 addiu v0, v0, -0x2b18 | v0 += -0x2b18;
| /* str._d:__s:__8s:_ */
0x00010ddc addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00010de0 move a0, s1 | a0 = s1;
0x00010de4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00010de8 jalr t9 | t9 ();
0x00010dec lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00010df0 lw a2, 4(s0) | a2 = *((s0 + 1));
0x00010df4 move a0, s0 | a0 = s0;
0x00010df8 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00010dfc lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00010320 */
0x00010e00 addiu t9, t9, 0x320 | t9 += 0x320;
| /* str.closing_dir:__s */
0x00010e04 addiu a1, a1, -0x2a84 | a1 += -0x2a84;
0x00010e08 bal 0x10320 | fcn_00010320 ();
0x00010e0c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00010e10 lw a0, (s0) | a0 = *(s0);
0x00010e14 b 0x10d80 |
| }
| label_0:
0x00010e18 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x00010e1c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00010e20 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x00010e24 lw t9, -0x7de8(gp) | t9 = sym.imp.__assert_fail;
| /* str.ul_path_close_dirfd */
0x00010e28 addiu a3, a3, -0x29b0 | a3 += -0x29b0;
0x00010e2c addiu a2, zero, 0xda | a2 = 0xda;
| /* str..._util_linux_2.34_lib_path.c */
0x00010e30 addiu a1, a1, -0x2b10 | a1 += -0x2b10;
| /* esilref: 'pc' */
0x00010e34 addiu a0, a0, -0x2aac | a0 += -0x2aac;
0x00010e38 jalr t9 | return t9 ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x10bc4 */
| #include <stdint.h>
|
; (fcn) sym.ul_path_get_dirfd () | void ul_path_get_dirfd () {
0x00010bc4 lui gp, 2 |
0x00010bc8 addiu gp, gp, 0x548c |
0x00010bcc addu gp, gp, t9 | gp += t9;
0x00010bd0 addiu sp, sp, -0x30 |
0x00010bd4 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00010bd8 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00010bdc sw s2, 0x28(sp) | *(var_28h) = s2;
0x00010be0 sw s1, 0x24(sp) | *(var_24h) = s1;
0x00010be4 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00010be8 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
| if (a0 == 0) {
0x00010bec beqz a0, 0x10d1c | goto label_1;
| }
0x00010bf0 lw v0, 4(a0) | v0 = *((a0 + 1));
0x00010bf4 move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x00010bf8 beqz v0, 0x10cfc | goto label_2;
| }
0x00010bfc lw v0, (a0) | v0 = *(a0);
0x00010c00 lw t9, -0x7f74(gp) | t9 = *(gp);
| if (v0 >= 0) {
0x00010c04 bltz v0, 0x10c20 |
| label_0:
0x00010c08 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00010c0c lw s2, 0x28(sp) | s2 = *(var_28h);
0x00010c10 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00010c14 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00010c18 addiu sp, sp, 0x30 |
0x00010c1c jr ra | return v0;
| }
| /* fcn.00010584 */
0x00010c20 addiu t9, t9, 0x584 | t9 += 0x584;
0x00010c24 bal 0x10584 | fcn_00010584 ();
0x00010c28 nop |
0x00010c2c move s1, v0 | s1 = v0;
0x00010c30 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00010c34 beqz v0, 0x10ce4 | goto label_3;
| }
0x00010c38 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00010c3c lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x00010c40 andi v0, v0, 4 | v0 &= 4;
0x00010c44 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x00010c48 bnez v0, 0x10c78 |
| while (1) {
0x00010c4c lw t9, -0x7ccc(gp) | t9 = sym.imp.open64;
0x00010c50 move a0, s1 | a0 = s1;
0x00010c54 lui a1, 8 | a1 = 0x80000;
0x00010c58 jalr t9 | t9 ();
0x00010c5c lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00010c60 sw v0, (s0) | *(s0) = v0;
0x00010c64 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00010c68 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00010c6c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00010c70 addiu sp, sp, 0x30 |
0x00010c74 jr ra | return v0;
0x00010c78 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00010c7c lw s2, (v0) | s2 = *(v0);
0x00010c80 jalr t9 | t9 ();
0x00010c84 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010c88 move a3, v0 | a3 = v0;
0x00010c8c addiu a1, zero, 1 | a1 = 1;
0x00010c90 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00010c94 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00010c98 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00010c9c sw v0, 0x14(sp) | *(var_14h_2) = v0;
0x00010ca0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00010ca4 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulpath */
0x00010ca8 addiu v0, v0, -0x2b18 | v0 += -0x2b18;
| /* str._d:__s:__8s:_ */
0x00010cac addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00010cb0 move a0, s2 | a0 = s2;
0x00010cb4 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00010cb8 jalr t9 | t9 ();
0x00010cbc lw gp, 0x18(sp) | gp = *(var_18h);
0x00010cc0 move a2, s1 | a2 = s1;
0x00010cc4 move a0, s0 | a0 = s0;
0x00010cc8 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00010ccc lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00010320 */
0x00010cd0 addiu t9, t9, 0x320 | t9 += 0x320;
| /* str.opening_dir:__s */
0x00010cd4 addiu a1, a1, -0x2a98 | a1 += -0x2a98;
0x00010cd8 bal 0x10320 | fcn_00010320 ();
0x00010cdc lw gp, 0x18(sp) | gp = *(var_18h);
0x00010ce0 b 0x10c4c |
| }
| label_3:
0x00010ce4 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x00010ce8 jalr t9 | t9 ();
0x00010cec nop |
0x00010cf0 lw v0, (v0) | v0 = *(v0);
0x00010cf4 negu v0, v0 | __asm ("negu v0, v0");
0x00010cf8 b 0x10c08 | goto label_0;
| label_2:
0x00010cfc lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00010d00 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x00010d04 lw t9, -0x7de8(gp) | t9 = sym.imp.__assert_fail;
| /* str.ul_path_get_dirfd */
0x00010d08 addiu a3, a3, -0x299c | a3 += -0x299c;
0x00010d0c addiu a2, zero, 0xc9 | a2 = 0xc9;
| /* str..._util_linux_2.34_lib_path.c */
0x00010d10 addiu a1, a1, -0x2b10 | a1 += -0x2b10;
| /* str.pc__dir_path */
0x00010d14 addiu a0, a0, -0x2aa8 | a0 += -0x2aa8;
0x00010d18 jalr t9 | t9 ();
| label_1:
0x00010d1c lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00010d20 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x00010d24 lw t9, -0x7de8(gp) | t9 = sym.imp.__assert_fail;
| /* str.ul_path_get_dirfd */
0x00010d28 addiu a3, a3, -0x299c | a3 += -0x299c;
0x00010d2c addiu a2, zero, 0xc8 | a2 = 0xc8;
| /* str..._util_linux_2.34_lib_path.c */
0x00010d30 addiu a1, a1, -0x2b10 | a1 += -0x2b10;
| /* esilref: 'pc' */
0x00010d34 addiu a0, a0, -0x2aac | a0 += -0x2aac;
0x00010d38 jalr t9 | return t9 ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x11538 */
| #include <stdint.h>
|
; (fcn) sym.ul_path_open () | void ul_path_open () {
0x00011538 lui gp, 2 |
0x0001153c addiu gp, gp, 0x4b18 |
0x00011540 addu gp, gp, t9 | gp += t9;
0x00011544 addiu sp, sp, -0x48 |
0x00011548 sw s1, 0x30(sp) | *(var_30h) = s1;
0x0001154c lw s1, -0x7bc0(gp) | s1 = *((gp - 7920));
0x00011550 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00011554 sw s3, 0x38(sp) | *(var_38h) = s3;
0x00011558 lw v0, (s1) | v0 = *(s1);
0x0001155c sw ra, 0x44(sp) | *(var_44h) = ra;
0x00011560 sw s5, 0x40(sp) | *(var_40h) = s5;
0x00011564 sw s4, 0x3c(sp) | *(var_3ch) = s4;
0x00011568 sw s2, 0x34(sp) | *(var_34h) = s2;
0x0001156c sw s0, 0x2c(sp) | *(var_2ch) = s0;
0x00011570 move s3, a2 | s3 = a2;
0x00011574 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00011578 lw t9, -0x7ee0(gp) | t9 = sym.ul_path_get_dirfd;
| if (a0 == 0) {
0x0001157c beqz a0, 0x11604 | goto label_2;
| }
0x00011580 move s2, a0 | s2 = a0;
0x00011584 move s4, a1 | s4 = a1;
0x00011588 bal 0x10bc4 | sym_ul_path_get_dirfd ();
0x0001158c move s0, v0 | s0 = v0;
0x00011590 lw gp, 0x18(sp) | gp = *(var_18h);
0x00011594 sw v0, 0x20(sp) | *(var_20h) = v0;
| if (v0 < 0) {
0x00011598 bltz v0, 0x115d0 | goto label_0;
| }
0x0001159c lw t9, -0x7bc4(gp) | t9 = sym.imp.__openat64_2;
0x000115a0 move a0, v0 | a0 = v0;
0x000115a4 move a2, s4 | a2 = s4;
0x000115a8 move a1, s3 | a1 = s3;
0x000115ac jalr t9 | t9 ();
0x000115b0 move s0, v0 | s0 = v0;
0x000115b4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x000115b8 bltz v0, 0x11694 | goto label_3;
| }
| label_1:
0x000115bc lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x000115c0 lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x000115c4 andi v0, v0, 4 | v0 &= 4;
0x000115c8 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 == 0) {
0x000115cc bnel v0, zero, 0x11758 | goto label_4;
| }
| do {
| label_0:
0x000115d0 lw a0, 0x24(sp) | a0 = *(var_24h);
0x000115d4 lw v1, (s1) | v1 = *(s1);
0x000115d8 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x000115dc bne a0, v1, 0x117d4 | goto label_5;
| }
0x000115e0 lw ra, 0x44(sp) | ra = *(var_44h);
0x000115e4 lw s5, 0x40(sp) | s5 = *(var_40h);
0x000115e8 lw s4, 0x3c(sp) | s4 = *(var_3ch);
0x000115ec lw s3, 0x38(sp) | s3 = *(var_38h);
0x000115f0 lw s2, 0x34(sp) | s2 = *(var_34h);
0x000115f4 lw s1, 0x30(sp) | s1 = *(var_30h);
0x000115f8 lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x000115fc addiu sp, sp, 0x48 |
0x00011600 jr ra | return v1;
| label_2:
0x00011604 lw t9, -0x7cd0(gp) | t9 = sym.imp.__open64_2;
0x00011608 move a0, a2 | a0 = a2;
0x0001160c jalr t9 | t9 ();
0x00011610 lw gp, 0x18(sp) | gp = *(var_18h);
0x00011614 move s0, v0 | s0 = v0;
0x00011618 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x0001161c lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x00011620 andi v0, v0, 4 | v0 &= 4;
0x00011624 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00011628 beqz v0, 0x115d0 |
| } while (v0 == 0);
0x0001162c lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x00011630 lw s2, (v0) | s2 = *(v0);
0x00011634 jalr t9 | t9 ();
0x00011638 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001163c move a3, v0 | a3 = v0;
0x00011640 addiu a1, zero, 1 | a1 = 1;
0x00011644 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00011648 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0001164c addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00011650 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00011654 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00011658 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulpath */
0x0001165c addiu v0, v0, -0x2b18 | v0 += -0x2b18;
| /* str._d:__s:__8s:_ */
0x00011660 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00011664 move a0, s2 | a0 = s2;
0x00011668 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0001166c jalr t9 | t9 ();
0x00011670 lw gp, 0x18(sp) | gp = *(var_18h);
0x00011674 move a1, s3 | a1 = s3;
0x00011678 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x0001167c lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00010408 */
0x00011680 addiu t9, t9, 0x408 | t9 += 0x408;
| /* str.opening__s__no_context_ */
0x00011684 addiu a0, a0, -0x2a34 | a0 += -0x2a34;
0x00011688 bal 0x10408 | fcn_00010408 ();
0x0001168c lw gp, 0x18(sp) | gp = *(var_18h);
0x00011690 b 0x115d0 | goto label_0;
| label_3:
0x00011694 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x00011698 jalr t9 | t9 ();
0x0001169c nop |
0x000116a0 lw v1, (v0) | v1 = *(v0);
0x000116a4 addiu v0, zero, 2 | v0 = 2;
0x000116a8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v1 != v0) {
0x000116ac bne v1, v0, 0x115bc | goto label_1;
| }
0x000116b0 lw t9, 0x1018(s2) | t9 = *((s2 + 1030));
0x000116b4 addiu a2, sp, 0x20 | a2 = sp + 0x20;
| if (t9 == 0) {
0x000116b8 beqz t9, 0x115bc | goto label_1;
| }
0x000116bc move a1, s3 | a1 = s3;
0x000116c0 move a0, s2 | a0 = s2;
0x000116c4 jalr t9 | t9 ();
0x000116c8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000116cc bnez v0, 0x115bc | goto label_1;
| }
0x000116d0 lw t9, -0x7bc4(gp) | t9 = sym.imp.__openat64_2;
0x000116d4 lw a0, 0x20(sp) | a0 = *(var_20h);
0x000116d8 move a2, s4 | a2 = s4;
0x000116dc move a1, s3 | a1 = s3;
0x000116e0 jalr t9 | t9 ();
0x000116e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000116e8 move s4, v0 | s4 = v0;
0x000116ec lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x000116f0 lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x000116f4 andi v0, v0, 4 | v0 &= 4;
0x000116f8 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
| if (v0 != 0) {
0x000116fc beqz v0, 0x117e0 |
0x00011700 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x00011704 lw s5, (v0) | s5 = *(v0);
0x00011708 jalr t9 | t9 ();
0x0001170c lw gp, 0x18(sp) | gp = *(var_18h);
0x00011710 move a3, v0 | a3 = v0;
0x00011714 addiu a1, zero, 1 | a1 = 1;
0x00011718 lw v1, -0x7fd0(gp) | v1 = *((gp - 8180));
0x0001171c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00011720 addiu v1, v1, -0x3490 | v1 += -0x3490;
0x00011724 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00011728 lw v1, -0x7fd0(gp) | v1 = *((gp - 8180));
0x0001172c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulpath */
0x00011730 addiu v1, v1, -0x2b18 | v1 += -0x2b18;
0x00011734 sw v1, 0x10(sp) | *(var_10h) = v1;
| /* str._d:__s:__8s:_ */
0x00011738 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x0001173c move a0, s5 | a0 = s5;
0x00011740 jalr t9 | t9 ();
0x00011744 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s0 != s4) {
0x00011748 beq s0, s4, 0x117a4 |
0x0001174c lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
| /* str.__redirected_ */
0x00011750 addiu a3, a3, -0x2a44 | a3 += -0x2a44;
0x00011754 b 0x117ac | goto label_6;
| label_4:
0x00011758 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x0001175c move s4, s0 | s4 = s0;
0x00011760 lw s0, (v0) | s0 = *(v0);
0x00011764 jalr t9 | t9 ();
0x00011768 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001176c move a3, v0 | a3 = v0;
0x00011770 addiu a1, zero, 1 | a1 = 1;
0x00011774 lw v1, -0x7fd0(gp) | v1 = *((gp - 8180));
0x00011778 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0001177c addiu v1, v1, -0x3490 | v1 += -0x3490;
0x00011780 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00011784 lw v1, -0x7fd0(gp) | v1 = *((gp - 8180));
0x00011788 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulpath */
0x0001178c addiu v1, v1, -0x2b18 | v1 += -0x2b18;
0x00011790 sw v1, 0x10(sp) | *(var_10h) = v1;
| /* str._d:__s:__8s:_ */
0x00011794 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00011798 move a0, s0 | a0 = s0;
0x0001179c jalr t9 | t9 ();
0x000117a0 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x000117a4 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
0x000117a8 addiu a3, a3, -0x3fd4 | a3 += -0x3fd4;
| label_6:
0x000117ac lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x000117b0 lw t9, -0x7f74(gp) | t9 = *(gp);
0x000117b4 move a2, s3 | a2 = s3;
| /* str.opening__s_s */
0x000117b8 addiu a1, a1, -0x2a18 | a1 += -0x2a18;
| /* fcn.00010320 */
0x000117bc addiu t9, t9, 0x320 | t9 += 0x320;
0x000117c0 move a0, s2 | a0 = s2;
0x000117c4 bal 0x10320 | fcn_00010320 ();
0x000117c8 move s0, s4 | s0 = s4;
0x000117cc lw gp, 0x18(sp) | gp = *(var_18h);
0x000117d0 b 0x115d0 | goto label_0;
| label_5:
0x000117d4 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x000117d8 jalr t9 | t9 ();
0x000117dc nop |
| }
0x000117e0 move s0, s4 | s0 = s4;
0x000117e4 b 0x115d0 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x11cec */
| #include <stdint.h>
|
; (fcn) sym.ul_path_opendir () | void ul_path_opendir () {
0x00011cec lui gp, 2 |
0x00011cf0 addiu gp, gp, 0x4364 |
0x00011cf4 addu gp, gp, t9 | gp += t9;
0x00011cf8 addiu sp, sp, -0x30 |
0x00011cfc sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00011d00 sw s0, 0x20(sp) | *(var_10h) = s0;
0x00011d04 sw ra, 0x2c(sp) | *(var_1ch) = ra;
0x00011d08 sw s2, 0x28(sp) | *(var_18h) = s2;
0x00011d0c sw s1, 0x24(sp) | *(var_24h) = s1;
0x00011d10 move s0, a1 | s0 = a1;
| if (a1 == 0) {
0x00011d14 beqz a1, 0x11d6c | goto label_2;
| }
0x00011d18 lw t9, -0x7ed8(gp) | t9 = sym.ul_path_open;
0x00011d1c move a2, a1 | a2 = a1;
0x00011d20 lui a1, 8 | a1 = 0x80000;
0x00011d24 bal 0x11538 | sym_ul_path_open ();
0x00011d28 move s2, v0 | s2 = v0;
0x00011d2c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (s2 < 0) {
0x00011d30 bltz s2, 0x11dbc | goto label_3;
| }
| do {
0x00011d34 lw t9, -0x7d74(gp) | t9 = sym.imp.fdopendir;
0x00011d38 move a0, s2 | a0 = s2;
0x00011d3c jalr t9 | t9 ();
0x00011d40 move s1, v0 | s1 = v0;
0x00011d44 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00011d48 beqz v0, 0x11e6c | goto label_4;
| }
0x00011d4c lw ra, 0x2c(sp) | ra = *(var_1ch);
| if (s0 == 0) {
0x00011d50 beqz s0, 0x11e44 | goto label_5;
| }
| label_1:
0x00011d54 move v0, s1 | v0 = s1;
0x00011d58 lw s2, 0x28(sp) | s2 = *(var_18h);
0x00011d5c lw s1, 0x24(sp) | s1 = *(var_24h);
0x00011d60 lw s0, 0x20(sp) | s0 = *(var_10h);
0x00011d64 addiu sp, sp, 0x30 |
0x00011d68 jr ra | return v0;
| label_2:
0x00011d6c lw v0, 4(a0) | v0 = *((a0 + 1));
0x00011d70 move s1, a0 | s1 = a0;
| if (v0 == 0) {
0x00011d74 beqz v0, 0x11dbc | goto label_3;
| }
0x00011d78 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00011d7c lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x00011d80 andi v0, v0, 4 | v0 &= 4;
0x00011d84 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x00011d88 bnez v0, 0x11ddc | goto label_6;
| }
| label_0:
0x00011d8c lw t9, -0x7ee0(gp) | t9 = sym.ul_path_get_dirfd;
0x00011d90 move a0, s1 | a0 = s1;
0x00011d94 bal 0x10bc4 | sym_ul_path_get_dirfd ();
0x00011d98 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 < 0) {
0x00011d9c bltz v0, 0x11dbc | goto label_3;
| }
0x00011da0 lw t9, -0x7eb8(gp) | t9 = sym.dup_fd_cloexec;
0x00011da4 addiu a1, zero, 3 | a1 = 3;
0x00011da8 move a0, v0 | a0 = v0;
0x00011dac bal 0x17f08 | sym_dup_fd_cloexec ();
0x00011db0 move s2, v0 | s2 = v0;
0x00011db4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00011db8 bgez s2, 0x11d34 |
| } while (s2 >= 0);
| label_3:
0x00011dbc lw ra, 0x2c(sp) | ra = *(var_1ch);
0x00011dc0 move s1, zero | s1 = 0;
0x00011dc4 move v0, s1 | v0 = s1;
0x00011dc8 lw s2, 0x28(sp) | s2 = *(var_18h);
0x00011dcc lw s1, 0x24(sp) | s1 = *(var_24h);
0x00011dd0 lw s0, 0x20(sp) | s0 = *(var_10h);
0x00011dd4 addiu sp, sp, 0x30 |
0x00011dd8 jr ra | return v0;
| label_6:
0x00011ddc lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00011de0 lw s2, (v0) | s2 = *(v0);
0x00011de4 jalr t9 | t9 ();
0x00011de8 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00011dec move a3, v0 | a3 = v0;
0x00011df0 addiu a1, zero, 1 | a1 = 1;
0x00011df4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00011df8 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00011dfc addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00011e00 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00011e04 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00011e08 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulpath */
0x00011e0c addiu v0, v0, -0x2b18 | v0 += -0x2b18;
| /* str._d:__s:__8s:_ */
0x00011e10 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00011e14 move a0, s2 | a0 = s2;
0x00011e18 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00011e1c jalr t9 | t9 ();
0x00011e20 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00011e24 move a0, s1 | a0 = s1;
0x00011e28 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00011e2c lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00010320 */
0x00011e30 addiu t9, t9, 0x320 | t9 += 0x320;
| /* str.duplicate_dir_path */
0x00011e34 addiu a1, a1, -0x2a08 | a1 += -0x2a08;
0x00011e38 bal 0x10320 | fcn_00010320 ();
0x00011e3c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00011e40 b 0x11d8c | goto label_0;
| label_5:
0x00011e44 lw t9, -0x7df4(gp) | t9 = sym.imp.rewinddir;
0x00011e48 move a0, v0 | a0 = v0;
0x00011e4c jalr t9 | t9 ();
0x00011e50 lw ra, 0x2c(sp) | ra = *(var_1ch);
0x00011e54 move v0, s1 | v0 = s1;
0x00011e58 lw s2, 0x28(sp) | s2 = *(var_18h);
0x00011e5c lw s1, 0x24(sp) | s1 = *(var_24h);
0x00011e60 lw s0, 0x20(sp) | s0 = *(var_10h);
0x00011e64 addiu sp, sp, 0x30 |
0x00011e68 jr ra | return v0;
| label_4:
0x00011e6c lw t9, -0x7dd4(gp) | t9 = sym.imp.close;
0x00011e70 move a0, s2 | a0 = s2;
0x00011e74 jalr t9 | t9 ();
0x00011e78 lw ra, 0x2c(sp) | ra = *(var_1ch);
0x00011e7c b 0x11d54 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x11cec */
| #include <stdint.h>
|
; (fcn) sym.ul_path_opendir () | void ul_path_opendir () {
0x00011cec lui gp, 2 |
0x00011cf0 addiu gp, gp, 0x4364 |
0x00011cf4 addu gp, gp, t9 | gp += t9;
0x00011cf8 addiu sp, sp, -0x30 |
0x00011cfc sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00011d00 sw s0, 0x20(sp) | *(var_10h) = s0;
0x00011d04 sw ra, 0x2c(sp) | *(var_1ch) = ra;
0x00011d08 sw s2, 0x28(sp) | *(var_18h) = s2;
0x00011d0c sw s1, 0x24(sp) | *(var_24h) = s1;
0x00011d10 move s0, a1 | s0 = a1;
| if (a1 == 0) {
0x00011d14 beqz a1, 0x11d6c | goto label_2;
| }
0x00011d18 lw t9, -0x7ed8(gp) | t9 = sym.ul_path_open;
0x00011d1c move a2, a1 | a2 = a1;
0x00011d20 lui a1, 8 | a1 = 0x80000;
0x00011d24 bal 0x11538 | sym_ul_path_open ();
0x00011d28 move s2, v0 | s2 = v0;
0x00011d2c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (s2 < 0) {
0x00011d30 bltz s2, 0x11dbc | goto label_3;
| }
| do {
0x00011d34 lw t9, -0x7d74(gp) | t9 = sym.imp.fdopendir;
0x00011d38 move a0, s2 | a0 = s2;
0x00011d3c jalr t9 | t9 ();
0x00011d40 move s1, v0 | s1 = v0;
0x00011d44 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00011d48 beqz v0, 0x11e6c | goto label_4;
| }
0x00011d4c lw ra, 0x2c(sp) | ra = *(var_1ch);
| if (s0 == 0) {
0x00011d50 beqz s0, 0x11e44 | goto label_5;
| }
| label_1:
0x00011d54 move v0, s1 | v0 = s1;
0x00011d58 lw s2, 0x28(sp) | s2 = *(var_18h);
0x00011d5c lw s1, 0x24(sp) | s1 = *(var_24h);
0x00011d60 lw s0, 0x20(sp) | s0 = *(var_10h);
0x00011d64 addiu sp, sp, 0x30 |
0x00011d68 jr ra | return v0;
| label_2:
0x00011d6c lw v0, 4(a0) | v0 = *((a0 + 1));
0x00011d70 move s1, a0 | s1 = a0;
| if (v0 == 0) {
0x00011d74 beqz v0, 0x11dbc | goto label_3;
| }
0x00011d78 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00011d7c lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x00011d80 andi v0, v0, 4 | v0 &= 4;
0x00011d84 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x00011d88 bnez v0, 0x11ddc | goto label_6;
| }
| label_0:
0x00011d8c lw t9, -0x7ee0(gp) | t9 = sym.ul_path_get_dirfd;
0x00011d90 move a0, s1 | a0 = s1;
0x00011d94 bal 0x10bc4 | sym_ul_path_get_dirfd ();
0x00011d98 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 < 0) {
0x00011d9c bltz v0, 0x11dbc | goto label_3;
| }
0x00011da0 lw t9, -0x7eb8(gp) | t9 = sym.dup_fd_cloexec;
0x00011da4 addiu a1, zero, 3 | a1 = 3;
0x00011da8 move a0, v0 | a0 = v0;
0x00011dac bal 0x17f08 | sym_dup_fd_cloexec ();
0x00011db0 move s2, v0 | s2 = v0;
0x00011db4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00011db8 bgez s2, 0x11d34 |
| } while (s2 >= 0);
| label_3:
0x00011dbc lw ra, 0x2c(sp) | ra = *(var_1ch);
0x00011dc0 move s1, zero | s1 = 0;
0x00011dc4 move v0, s1 | v0 = s1;
0x00011dc8 lw s2, 0x28(sp) | s2 = *(var_18h);
0x00011dcc lw s1, 0x24(sp) | s1 = *(var_24h);
0x00011dd0 lw s0, 0x20(sp) | s0 = *(var_10h);
0x00011dd4 addiu sp, sp, 0x30 |
0x00011dd8 jr ra | return v0;
| label_6:
0x00011ddc lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00011de0 lw s2, (v0) | s2 = *(v0);
0x00011de4 jalr t9 | t9 ();
0x00011de8 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00011dec move a3, v0 | a3 = v0;
0x00011df0 addiu a1, zero, 1 | a1 = 1;
0x00011df4 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00011df8 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00011dfc addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00011e00 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00011e04 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00011e08 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulpath */
0x00011e0c addiu v0, v0, -0x2b18 | v0 += -0x2b18;
| /* str._d:__s:__8s:_ */
0x00011e10 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00011e14 move a0, s2 | a0 = s2;
0x00011e18 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00011e1c jalr t9 | t9 ();
0x00011e20 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00011e24 move a0, s1 | a0 = s1;
0x00011e28 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00011e2c lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00010320 */
0x00011e30 addiu t9, t9, 0x320 | t9 += 0x320;
| /* str.duplicate_dir_path */
0x00011e34 addiu a1, a1, -0x2a08 | a1 += -0x2a08;
0x00011e38 bal 0x10320 | fcn_00010320 ();
0x00011e3c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00011e40 b 0x11d8c | goto label_0;
| label_5:
0x00011e44 lw t9, -0x7df4(gp) | t9 = sym.imp.rewinddir;
0x00011e48 move a0, v0 | a0 = v0;
0x00011e4c jalr t9 | t9 ();
0x00011e50 lw ra, 0x2c(sp) | ra = *(var_1ch);
0x00011e54 move v0, s1 | v0 = s1;
0x00011e58 lw s2, 0x28(sp) | s2 = *(var_18h);
0x00011e5c lw s1, 0x24(sp) | s1 = *(var_24h);
0x00011e60 lw s0, 0x20(sp) | s0 = *(var_10h);
0x00011e64 addiu sp, sp, 0x30 |
0x00011e68 jr ra | return v0;
| label_4:
0x00011e6c lw t9, -0x7dd4(gp) | t9 = sym.imp.close;
0x00011e70 move a0, s2 | a0 = s2;
0x00011e74 jalr t9 | t9 ();
0x00011e78 lw ra, 0x2c(sp) | ra = *(var_1ch);
0x00011e7c b 0x11d54 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x11f50 */
| #include <stdint.h>
|
; (fcn) sym.ul_path_readlink () | void ul_path_readlink () {
0x00011f50 lui gp, 2 |
0x00011f54 addiu gp, gp, 0x4100 |
0x00011f58 addu gp, gp, t9 | gp += t9;
0x00011f5c addiu sp, sp, -0x28 |
0x00011f60 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00011f64 sw s2, 0x20(sp) | *(var_20h) = s2;
0x00011f68 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x00011f6c sw ra, 0x24(sp) | *(var_24h) = ra;
0x00011f70 sw s0, 0x18(sp) | *(var_18h) = s0;
0x00011f74 move s1, a1 | s1 = a1;
0x00011f78 move s2, a2 | s2 = a2;
| if (a3 != 0) {
0x00011f7c beqz a3, 0x11fc0 |
0x00011f80 lw t9, -0x7ee0(gp) | t9 = sym.ul_path_get_dirfd;
0x00011f84 move s0, a3 | s0 = a3;
0x00011f88 bal 0x10bc4 | sym_ul_path_get_dirfd ();
0x00011f8c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00011f90 bltz v0, 0x12014 | goto label_0;
| }
0x00011f94 lw ra, 0x24(sp) | ra = *(var_24h);
0x00011f98 move a3, s2 | a3 = s2;
0x00011f9c move a2, s1 | a2 = s1;
0x00011fa0 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00011fa4 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00011fa8 move a1, s0 | a1 = s0;
0x00011fac lw t9, -0x7c74(gp) | t9 = sym.imp.readlinkat;
0x00011fb0 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00011fb4 move a0, v0 | a0 = v0;
0x00011fb8 addiu sp, sp, 0x28 |
0x00011fbc jr t9 | t9 ();
| }
0x00011fc0 lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00010584 */
0x00011fc4 addiu t9, t9, 0x584 | t9 += 0x584;
0x00011fc8 bal 0x10584 | fcn_00010584 ();
0x00011fcc nop |
0x00011fd0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00011fd4 beqz v0, 0x12000 |
0x00011fd8 lw ra, 0x24(sp) | ra = *(var_24h);
0x00011fdc lw s0, 0x18(sp) | s0 = *(var_18h);
0x00011fe0 move a2, s2 | a2 = s2;
0x00011fe4 move a1, s1 | a1 = s1;
0x00011fe8 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00011fec lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00011ff0 lw t9, -0x7c10(gp) | t9 = sym.imp.readlink;
0x00011ff4 move a0, v0 | a0 = v0;
0x00011ff8 addiu sp, sp, 0x28 |
0x00011ffc jr t9 | t9 ();
| }
0x00012000 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x00012004 jalr t9 | t9 ();
0x00012008 nop |
0x0001200c lw v0, (v0) | v0 = *(v0);
0x00012010 negu v0, v0 | __asm ("negu v0, v0");
| label_0:
0x00012014 lw ra, 0x24(sp) | ra = *(var_24h);
0x00012018 lw s2, 0x20(sp) | s2 = *(var_20h);
0x0001201c lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00012020 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00012024 addiu sp, sp, 0x28 |
0x00012028 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x120fc */
| #include <stdint.h>
|
; (fcn) sym.ul_path_read () | void ul_path_read () {
0x000120fc lui gp, 2 |
0x00012100 addiu gp, gp, 0x3f54 |
0x00012104 addu gp, gp, t9 | gp += t9;
0x00012108 addiu sp, sp, -0x60 |
0x0001210c lw t9, -0x7ed8(gp) | t9 = sym.ul_path_open;
0x00012110 sw s4, 0x48(sp) | *(var_48h) = s4;
0x00012114 lw s4, -0x7bc0(gp) | s4 = *((gp - 7920));
0x00012118 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0001211c sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x00012120 lw v0, (s4) | v0 = *(s4);
0x00012124 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x00012128 sw s3, 0x44(sp) | *(var_44h) = s3;
0x0001212c sw s2, 0x40(sp) | *(var_40h) = s2;
0x00012130 sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x00012134 sw s0, 0x38(sp) | *(var_38h) = s0;
0x00012138 sw fp, 0x58(sp) | *(var_58h) = fp;
0x0001213c sw s7, 0x54(sp) | *(var_54h) = s7;
0x00012140 sw s6, 0x50(sp) | *(var_50h) = s6;
0x00012144 move s1, a1 | s1 = a1;
0x00012148 move s0, a2 | s0 = a2;
0x0001214c lui a1, 8 | a1 = 0x80000;
0x00012150 move a2, a3 | a2 = a3;
0x00012154 sw v0, 0x34(sp) | *(var_34h) = v0;
0x00012158 move s5, a3 | s5 = a3;
0x0001215c bal 0x11538 | sym_ul_path_open ();
0x00012160 lw gp, 0x18(sp) | gp = *(var_18h);
0x00012164 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x00012168 move s2, v0 | s2 = v0;
0x0001216c jalr t9 | t9 ();
0x00012170 move s3, v0 | s3 = v0;
0x00012174 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s2 < 0) {
0x00012178 bltz s2, 0x12320 | goto label_3;
| }
0x0001217c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00012180 lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x00012184 andi v0, v0, 4 | v0 &= 4;
0x00012188 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x0001218c bnez v0, 0x12294 | goto label_4;
| }
| label_0:
0x00012190 lw t9, -0x7cf0(gp) | t9 = sym.imp.memset;
0x00012194 move a2, s0 | a2 = s0;
0x00012198 move a1, zero | a1 = 0;
0x0001219c move a0, s1 | a0 = s1;
0x000121a0 jalr t9 | t9 ();
0x000121a4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s0 == 0) {
0x000121a8 beqz s0, 0x12334 | goto label_5;
| }
0x000121ac lui s5, 0xee6 | s5 = 0xee60000;
0x000121b0 ori v0, s5, 0xb280 | v0 = s5 | 0xb280;
0x000121b4 move fp, zero | fp = 0;
0x000121b8 move s6, zero | s6 = 0;
0x000121bc sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x000121c0 addiu s7, sp, 0x2c | s7 = sp + 0x2c;
| label_1:
0x000121c4 lw t9, -0x7b74(gp) | t9 = sym.imp.read;
0x000121c8 move a2, s0 | a2 = s0;
0x000121cc move a1, s1 | a1 = s1;
0x000121d0 move a0, s2 | a0 = s2;
0x000121d4 jalr t9 | t9 ();
0x000121d8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 <= 0) {
0x000121dc blez v0, 0x12210 | goto label_6;
| }
| do {
0x000121e0 subu s0, s0, v0 | __asm ("subu s0, s0, v0");
0x000121e4 addu s1, s1, v0 | s1 += v0;
0x000121e8 addu fp, fp, v0 | fp += v0;
| if (s0 == 0) {
0x000121ec beqz s0, 0x1232c | goto label_7;
| }
0x000121f0 lw t9, -0x7b74(gp) | t9 = sym.imp.read;
0x000121f4 move a2, s0 | a2 = s0;
0x000121f8 move a1, s1 | a1 = s1;
0x000121fc move a0, s2 | a0 = s2;
0x00012200 jalr t9 | t9 ();
0x00012204 move s6, zero | s6 = 0;
0x00012208 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001220c bgtz v0, 0x121e0 |
| } while (v0 > 0);
| label_6:
0x00012210 lw s5, (s3) | s5 = *(s3);
| if (v0 != 0) {
0x00012214 beqz v0, 0x12238 |
0x00012218 addiu v0, zero, 0xb | v0 = 0xb;
0x0001221c addiu v0, zero, 4 | v0 = 4;
| if (s5 != v0) {
0x00012220 beq s5, v0, 0x1222c |
| if (s5 != v0) {
0x00012224 bne s5, v0, 0x12238 | goto label_8;
| }
0x00012228 nop |
| }
0x0001222c slti v0, s6, 5 | v0 = (s6 < 5) ? 1 : 0;
0x00012230 lw v0, 0x24(sp) | v0 = *(var_24h_2);
| if (v0 != 0) {
0x00012234 bnez v0, 0x122fc | goto label_9;
| }
| }
| if (fp != 0) {
| label_8:
0x00012238 beql fp, zero, 0x12240 |
0x0001223c addiu fp, zero, -1 | fp = -1;
| }
| label_2:
0x00012240 lw t9, -0x7dd4(gp) | t9 = sym.imp.close;
0x00012244 move a0, s2 | a0 = s2;
0x00012248 jalr t9 | t9 ();
0x0001224c lw gp, 0x18(sp) | gp = *(var_18h);
0x00012250 sw s5, (s3) | *(s3) = s5;
| do {
0x00012254 lw a0, 0x34(sp) | a0 = *(var_34h);
0x00012258 lw v1, (s4) | v1 = *(s4);
0x0001225c move v0, fp | v0 = fp;
| if (a0 != v1) {
0x00012260 bne a0, v1, 0x12340 | goto label_10;
| }
0x00012264 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x00012268 lw fp, 0x58(sp) | fp = *(var_58h);
0x0001226c lw s7, 0x54(sp) | s7 = *(var_54h);
0x00012270 lw s6, 0x50(sp) | s6 = *(var_50h);
0x00012274 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x00012278 lw s4, 0x48(sp) | s4 = *(var_48h);
0x0001227c lw s3, 0x44(sp) | s3 = *(var_44h);
0x00012280 lw s2, 0x40(sp) | s2 = *(var_40h);
0x00012284 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x00012288 lw s0, 0x38(sp) | s0 = *(var_38h);
0x0001228c addiu sp, sp, 0x60 |
0x00012290 jr ra | return v0;
| label_4:
0x00012294 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00012298 lw s6, (v0) | s6 = *(v0);
0x0001229c jalr t9 | t9 ();
0x000122a0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000122a4 move a3, v0 | a3 = v0;
0x000122a8 addiu a1, zero, 1 | a1 = 1;
0x000122ac lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x000122b0 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x000122b4 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x000122b8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000122bc lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x000122c0 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulpath */
0x000122c4 addiu v0, v0, -0x2b18 | v0 += -0x2b18;
| /* str._d:__s:__8s:_ */
0x000122c8 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x000122cc move a0, s6 | a0 = s6;
0x000122d0 sw v0, 0x10(sp) | *(var_38h_2) = v0;
0x000122d4 jalr t9 | t9 ();
0x000122d8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000122dc move a1, s5 | a1 = s5;
0x000122e0 lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x000122e4 lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00010408 */
0x000122e8 addiu t9, t9, 0x408 | t9 += 0x408;
| /* str._reading__s */
0x000122ec addiu a0, a0, -0x29f4 | a0 += -0x29f4;
0x000122f0 bal 0x10408 | fcn_00010408 ();
0x000122f4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000122f8 b 0x12190 | goto label_0;
| label_9:
0x000122fc lw t9, -0x7d98(gp) | t9 = sym.imp.nanosleep;
0x00012300 move a1, zero | a1 = 0;
0x00012304 move a0, s7 | a0 = s7;
0x00012308 sw zero, 0x2c(sp) | *(var_2ch) = 0;
0x0001230c sw v0, 0x30(sp) | *(var_30h) = v0;
0x00012310 jalr t9 | t9 ();
0x00012314 addiu s6, s6, 1 | s6++;
0x00012318 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001231c b 0x121c4 | goto label_1;
| label_3:
0x00012320 lw fp, (v0) | fp = *(v0);
0x00012324 negu fp, fp | __asm ("negu fp, fp");
0x00012328 b 0x12254 |
| } while (1);
| label_7:
0x0001232c lw s5, (s3) | s5 = *(s3);
0x00012330 b 0x12240 | goto label_2;
| label_5:
0x00012334 lw s5, (s3) | s5 = *(s3);
0x00012338 move fp, zero | fp = 0;
0x0001233c b 0x12240 | goto label_2;
| label_10:
0x00012340 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00012344 jalr t9 | t9 ();
0x00012348 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x1245c */
| #include <stdint.h>
|
; (fcn) sym.ul_path_read_string () | void ul_path_read_string () {
| label_1:
0x0001245c lui gp, 2 |
0x00012460 addiu gp, gp, 0x3bf4 |
0x00012464 addu gp, gp, t9 | gp += t9;
0x00012468 addiu sp, sp, -0x2038 |
0x0001246c sw s2, 0x202c(sp) | *(arg_202ch) = s2;
0x00012470 lw s2, -0x7bc0(gp) | s2 = *((gp - 7920));
0x00012474 sw gp, 0x10(sp) | *(arg_10h) = gp;
0x00012478 sw ra, 0x2034(sp) | *(arg_2034h) = ra;
0x0001247c lw v0, (s2) | v0 = *(s2);
0x00012480 sw s3, 0x2030(sp) | *(arg_2030h) = s3;
0x00012484 sw s1, 0x2028(sp) | *(arg_2028h) = s1;
0x00012488 sw s0, 0x2024(sp) | *(arg_2024h) = s0;
0x0001248c sw v0, 0x201c(sp) | *(arg_201ch) = v0;
0x00012490 lw t9, -0x7ea8(gp) | t9 = sym.ul_path_read;
| if (a1 == 0) {
0x00012494 beqz a1, 0x12534 | goto label_2;
| }
0x00012498 addiu s3, sp, 0x1c | s3 = sp + 0x1c;
0x0001249c sw zero, (a1) | *(a1) = 0;
0x000124a0 move a3, a2 | a3 = a2;
0x000124a4 move s1, a1 | s1 = a1;
0x000124a8 addiu a2, zero, 0x1fff | a2 = 0x1fff;
0x000124ac move a1, s3 | a1 = s3;
0x000124b0 bal 0x120fc | sym_ul_path_read ();
0x000124b4 move s0, v0 | s0 = v0;
0x000124b8 lw gp, 0x10(sp) | gp = *(arg_10h);
| if (v0 < 0) {
0x000124bc bltz v0, 0x124fc | goto label_0;
| }
0x000124c0 addiu v0, sp, 0x2020 | v0 = sp + 0x2020;
| if (s0 == 0) {
0x000124c4 beqz s0, 0x124dc | goto label_3;
| }
0x000124c8 addu v0, v0, s0 | v0 += s0;
0x000124cc addiu v1, zero, 0xa | v1 = 0xa;
0x000124d0 lb a0, -0x2005(v0) | a0 = *((v0 - 8197));
| if (a0 == v1) {
0x000124d4 beql a0, v1, 0x12528 | goto label_4;
| }
0x000124d8 addiu s0, s0, -1 | s0 += -1;
| do {
| label_3:
0x000124dc lw t9, -0x7bac(gp) | t9 = sym.imp.strdup;
0x000124e0 move a0, s3 | a0 = s3;
0x000124e4 sb zero, -0x2004(v0) | *((v0 - 8196)) = 0;
0x000124e8 jalr t9 | t9 ();
0x000124ec addiu v1, zero, -0xc | v1 = -0xc;
0x000124f0 lw gp, 0x10(sp) | gp = *(arg_10h);
| if (v0 != 0) {
0x000124f4 movz s0, v1, v0 | s0 = v1;
| }
0x000124f8 sw v0, (s1) | *(s1) = v0;
| label_0:
0x000124fc lw a0, 0x201c(sp) | a0 = *(arg_201ch);
0x00012500 lw v1, (s2) | v1 = *(s2);
0x00012504 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00012508 bne a0, v1, 0x1253c | goto label_5;
| }
0x0001250c lw ra, 0x2034(sp) | ra = *(arg_2034h);
0x00012510 lw s3, 0x2030(sp) | s3 = *(arg_2030h);
0x00012514 lw s2, 0x202c(sp) | s2 = *(arg_202ch);
0x00012518 lw s1, 0x2028(sp) | s1 = *(arg_2028h);
0x0001251c lw s0, 0x2024(sp) | s0 = *(arg_2024h);
0x00012520 addiu sp, sp, 0x2038 |
0x00012524 jr ra | return v0;
| label_4:
0x00012528 addiu v0, sp, 0x2020 | v0 = sp + 0x2020;
0x0001252c addu v0, v0, s0 | v0 += s0;
0x00012530 b 0x124dc |
| } while (1);
| label_2:
0x00012534 addiu s0, zero, -0x16 | s0 = -0x16;
0x00012538 b 0x124fc | goto label_0;
| label_5:
0x0001253c lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00012540 jalr t9 | t9 ();
0x00012544 nop |
0x00012548 lui gp, 2 |
0x0001254c addiu gp, gp, 0x3b08 |
0x00012550 addu gp, gp, t9 | gp += t9;
0x00012554 addiu sp, sp, -0x30 |
0x00012558 lw t9, -0x7f74(gp) | t9 = *(gp);
0x0001255c sw s0, 0x20(sp) | *(var_20h) = s0;
0x00012560 lw s0, -0x7bc0(gp) | s0 = *((gp - 7920));
0x00012564 move t0, a2 | t0 = a2;
0x00012568 addiu v0, sp, 0x3c | v0 = sp + 0x3c;
0x0001256c lw v1, (s0) | v1 = *(s0);
0x00012570 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00012574 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00012578 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0001257c sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00012580 move s2, a1 | s2 = a1;
0x00012584 move a2, v0 | a2 = v0;
0x00012588 move a1, t0 | a1 = t0;
0x0001258c sw a3, 0x3c(sp) | *(arg_3ch) = a3;
0x00012590 sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x00012594 sw v0, 0x18(sp) | *(var_18h) = v0;
| /* fcn.000104a8 */
0x00012598 addiu t9, t9, 0x4a8 | t9 += 0x4a8;
0x0001259c move s1, a0 | s1 = a0;
0x000125a0 bal 0x104a8 | fcn_000104a8 ();
0x000125a4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000125a8 beqz v0, 0x125e8 | goto label_6;
| }
0x000125ac lw t9, -0x7f4c(gp) | t9 = sym.ul_path_read_string;
0x000125b0 move a2, v0 | a2 = v0;
0x000125b4 move a1, s2 | a1 = s2;
0x000125b8 move a0, s1 | a0 = s1;
0x000125bc bal 0x1245c | sym_ul_path_read_string ();
| goto label_1;
0x000125c0 lw gp, 0x10(sp) | gp = *(var_10h);
| do {
0x000125c4 lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x000125c8 lw v1, (s0) | v1 = *(s0);
0x000125cc lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (a0 != v1) {
0x000125d0 bne a0, v1, 0x12604 | goto label_7;
| }
0x000125d4 lw s2, 0x28(sp) | s2 = *(var_28h);
0x000125d8 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000125dc lw s0, 0x20(sp) | s0 = *(var_20h);
0x000125e0 addiu sp, sp, 0x30 |
0x000125e4 jr ra | return v0;
| label_6:
0x000125e8 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x000125ec jalr t9 | t9 ();
0x000125f0 nop |
0x000125f4 lw v0, (v0) | v0 = *(v0);
0x000125f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000125fc negu v0, v0 | __asm ("negu v0, v0");
0x00012600 b 0x125c4 |
| } while (1);
| label_7:
0x00012604 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00012608 jalr t9 | t9 ();
0x0001260c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x12610 */
| #include <stdint.h>
|
; (fcn) sym.ul_path_read_buffer () | void ul_path_read_buffer () {
0x00012610 lui gp, 2 |
0x00012614 addiu gp, gp, 0x3a40 |
0x00012618 addu gp, gp, t9 | gp += t9;
0x0001261c addiu sp, sp, -0x20 |
0x00012620 lw t9, -0x7ea8(gp) | t9 = sym.ul_path_read;
0x00012624 addiu a2, a2, -1 | a2 += -1;
0x00012628 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0001262c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00012630 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x00012634 move s0, a1 | s0 = a1;
0x00012638 bal 0x120fc | sym_ul_path_read ();
0x0001263c lw ra, 0x1c(sp) | ra = *(var_1ch);
| if (v0 < 0) {
0x00012640 bltz v0, 0x12668 | goto label_0;
| }
0x00012644 addu v1, s0, v0 | v1 = s0 + v0;
| if (v0 == 0) {
0x00012648 beqz v0, 0x12660 | goto label_1;
| }
0x0001264c addiu a0, zero, 0xa | a0 = 0xa;
0x00012650 lb a1, -1(v1) | a1 = *((v1 - 1));
| if (a1 == a0) {
0x00012654 beql a1, a0, 0x12674 | goto label_2;
| }
0x00012658 addiu v0, v0, -1 | v0 += -1;
0x0001265c move s0, v1 | s0 = v1;
| do {
| label_1:
0x00012660 sb zero, (s0) | *(s0) = 0;
0x00012664 lw ra, 0x1c(sp) | ra = *(var_1ch);
| label_0:
0x00012668 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0001266c addiu sp, sp, 0x20 |
0x00012670 jr ra | return v0;
| label_2:
0x00012674 addu s0, s0, v0 | s0 += v0;
0x00012678 b 0x12660 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x12978 */
| #include <stdint.h>
|
; (fcn) sym.ul_path_read_s64 () | void ul_path_read_s64 () {
| label_0:
0x00012978 lui gp, 2 |
0x0001297c addiu gp, gp, 0x36d8 |
0x00012980 addu gp, gp, t9 | gp += t9;
0x00012984 addiu sp, sp, -0x38 |
0x00012988 move v1, a2 | v1 = a2;
0x0001298c sw s0, 0x2c(sp) | *(var_2ch) = s0;
0x00012990 lw s0, -0x7bc0(gp) | s0 = *((gp - 7920));
0x00012994 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00012998 lw t9, -0x7e9c(gp) | t9 = sym.ul_path_scanf;
0x0001299c lw v0, (s0) | v0 = *(s0);
0x000129a0 sw s1, 0x30(sp) | *(var_30h) = s1;
0x000129a4 sw v0, 0x24(sp) | *(var_24h) = v0;
0x000129a8 move s1, a1 | s1 = a1;
0x000129ac move v0, zero | v0 = 0;
0x000129b0 move a1, v1 | a1 = v1;
0x000129b4 move v1, zero | v1 = 0;
0x000129b8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000129bc sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x000129c0 sw ra, 0x34(sp) | *(var_34h) = ra;
0x000129c4 addiu a3, sp, 0x18 | a3 = sp + 0x18;
0x000129c8 sw v0, 0x18(sp) | *(var_18h) = v0;
| /* str._lld */
0x000129cc addiu a2, a2, -0x29d0 | a2 += -0x29d0;
0x000129d0 bal 0x1274c | sym_ul_path_scanf ();
0x000129d4 addiu v1, zero, 1 | v1 = 1;
0x000129d8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != v1) {
0x000129dc bne v0, v1, 0x12a18 | goto label_1;
| }
0x000129e0 move v0, zero | v0 = 0;
| if (s1 == 0) {
0x000129e4 beqz s1, 0x129f8 | goto label_2;
| }
0x000129e8 lw a0, 0x18(sp) | a0 = *(var_18h);
0x000129ec lw a1, 0x1c(sp) | a1 = *(var_1ch);
0x000129f0 sw a0, (s1) | *(s1) = a0;
0x000129f4 sw a1, 4(s1) | *((s1 + 1)) = a1;
| do {
| label_2:
0x000129f8 lw a0, 0x24(sp) | a0 = *(var_24h);
0x000129fc lw v1, (s0) | v1 = *(s0);
0x00012a00 lw ra, 0x34(sp) | ra = *(var_34h);
| if (a0 != v1) {
0x00012a04 bne a0, v1, 0x12a20 | goto label_3;
| }
0x00012a08 lw s1, 0x30(sp) | s1 = *(var_30h);
0x00012a0c lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x00012a10 addiu sp, sp, 0x38 |
0x00012a14 jr ra | return v0;
| label_1:
0x00012a18 addiu v0, zero, -1 | v0 = -1;
0x00012a1c b 0x129f8 |
| } while (1);
| label_3:
0x00012a20 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00012a24 jalr t9 | t9 ();
0x00012a28 nop |
0x00012a2c lui gp, 2 |
0x00012a30 addiu gp, gp, 0x3624 |
0x00012a34 addu gp, gp, t9 | gp += t9;
0x00012a38 addiu sp, sp, -0x30 |
0x00012a3c lw t9, -0x7f74(gp) | t9 = *(gp);
0x00012a40 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00012a44 lw s0, -0x7bc0(gp) | s0 = *((gp - 7920));
0x00012a48 move t0, a2 | t0 = a2;
0x00012a4c addiu v0, sp, 0x3c | v0 = sp + 0x3c;
0x00012a50 lw v1, (s0) | v1 = *(s0);
0x00012a54 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00012a58 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00012a5c sw s1, 0x24(sp) | *(var_24h_2) = s1;
0x00012a60 sw ra, 0x2c(sp) | *(var_2ch_2) = ra;
0x00012a64 move s2, a1 | s2 = a1;
0x00012a68 move a2, v0 | a2 = v0;
0x00012a6c move a1, t0 | a1 = t0;
0x00012a70 sw a3, 0x3c(sp) | *(var_3ch) = a3;
0x00012a74 sw v1, 0x1c(sp) | *(var_1ch_2) = v1;
0x00012a78 sw v0, 0x18(sp) | *(var_18h_2) = v0;
| /* fcn.000104a8 */
0x00012a7c addiu t9, t9, 0x4a8 | t9 += 0x4a8;
0x00012a80 move s1, a0 | s1 = a0;
0x00012a84 bal 0x104a8 | fcn_000104a8 ();
0x00012a88 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00012a8c beqz v0, 0x12acc | goto label_4;
| }
0x00012a90 lw t9, -0x7e98(gp) | t9 = sym.ul_path_read_s64;
0x00012a94 move a2, v0 | a2 = v0;
0x00012a98 move a1, s2 | a1 = s2;
0x00012a9c move a0, s1 | a0 = s1;
0x00012aa0 bal 0x12978 | sym_ul_path_read_s64 ();
| goto label_0;
0x00012aa4 lw gp, 0x10(sp) | gp = *(var_10h_2);
| do {
0x00012aa8 lw a0, 0x1c(sp) | a0 = *(var_1ch_2);
0x00012aac lw v1, (s0) | v1 = *(s0);
0x00012ab0 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
| if (a0 != v1) {
0x00012ab4 bne a0, v1, 0x12ae8 | goto label_5;
| }
0x00012ab8 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00012abc lw s1, 0x24(sp) | s1 = *(var_24h_2);
0x00012ac0 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00012ac4 addiu sp, sp, 0x30 |
0x00012ac8 jr ra | return v0;
| label_4:
0x00012acc lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x00012ad0 jalr t9 | t9 ();
0x00012ad4 nop |
0x00012ad8 lw v0, (v0) | v0 = *(v0);
0x00012adc lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00012ae0 negu v0, v0 | __asm ("negu v0, v0");
0x00012ae4 b 0x12aa8 |
| } while (1);
| label_5:
0x00012ae8 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00012aec jalr t9 | t9 ();
0x00012af0 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x12af4 */
| #include <stdint.h>
|
; (fcn) sym.ul_path_read_u64 () | void ul_path_read_u64 () {
| label_0:
0x00012af4 lui gp, 2 |
0x00012af8 addiu gp, gp, 0x355c |
0x00012afc addu gp, gp, t9 | gp += t9;
0x00012b00 addiu sp, sp, -0x38 |
0x00012b04 move v1, a2 | v1 = a2;
0x00012b08 sw s0, 0x2c(sp) | *(var_2ch_3) = s0;
0x00012b0c lw s0, -0x7bc0(gp) | s0 = *((gp - 7920));
0x00012b10 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00012b14 lw t9, -0x7e9c(gp) | t9 = sym.ul_path_scanf;
0x00012b18 lw v0, (s0) | v0 = *(s0);
0x00012b1c sw s1, 0x30(sp) | *(var_30h_2) = s1;
0x00012b20 sw v0, 0x24(sp) | *(var_24h_3) = v0;
0x00012b24 move s1, a1 | s1 = a1;
0x00012b28 move v0, zero | v0 = 0;
0x00012b2c move a1, v1 | a1 = v1;
0x00012b30 move v1, zero | v1 = 0;
0x00012b34 sw gp, 0x10(sp) | *(var_10h_3) = gp;
0x00012b38 sw v1, 0x1c(sp) | *(var_1ch_3) = v1;
0x00012b3c sw ra, 0x34(sp) | *(var_34h_2) = ra;
0x00012b40 addiu a3, sp, 0x18 | a3 = sp + 0x18;
0x00012b44 sw v0, 0x18(sp) | *(var_18h_3) = v0;
| /* str._llu */
0x00012b48 addiu a2, a2, -0x29c8 | a2 += -0x29c8;
0x00012b4c bal 0x1274c | sym_ul_path_scanf ();
0x00012b50 addiu v1, zero, 1 | v1 = 1;
0x00012b54 lw gp, 0x10(sp) | gp = *(var_10h_3);
| if (v0 != v1) {
0x00012b58 bne v0, v1, 0x12b94 | goto label_1;
| }
0x00012b5c move v0, zero | v0 = 0;
| if (s1 == 0) {
0x00012b60 beqz s1, 0x12b74 | goto label_2;
| }
0x00012b64 lw a0, 0x18(sp) | a0 = *(var_18h_3);
0x00012b68 lw a1, 0x1c(sp) | a1 = *(var_1ch_3);
0x00012b6c sw a0, (s1) | *(s1) = a0;
0x00012b70 sw a1, 4(s1) | *((s1 + 1)) = a1;
| do {
| label_2:
0x00012b74 lw a0, 0x24(sp) | a0 = *(var_24h_3);
0x00012b78 lw v1, (s0) | v1 = *(s0);
0x00012b7c lw ra, 0x34(sp) | ra = *(var_34h_2);
| if (a0 != v1) {
0x00012b80 bne a0, v1, 0x12b9c | goto label_3;
| }
0x00012b84 lw s1, 0x30(sp) | s1 = *(var_30h_2);
0x00012b88 lw s0, 0x2c(sp) | s0 = *(var_2ch_3);
0x00012b8c addiu sp, sp, 0x38 |
0x00012b90 jr ra | return v0;
| label_1:
0x00012b94 addiu v0, zero, -1 | v0 = -1;
0x00012b98 b 0x12b74 |
| } while (1);
| label_3:
0x00012b9c lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00012ba0 jalr t9 | t9 ();
0x00012ba4 nop |
0x00012ba8 lui gp, 2 |
0x00012bac addiu gp, gp, 0x34a8 |
0x00012bb0 addu gp, gp, t9 | gp += t9;
0x00012bb4 addiu sp, sp, -0x30 |
0x00012bb8 lw t9, -0x7f74(gp) | t9 = *(gp);
0x00012bbc sw s0, 0x20(sp) | *(var_20h_2) = s0;
0x00012bc0 lw s0, -0x7bc0(gp) | s0 = *((gp - 7920));
0x00012bc4 move t0, a2 | t0 = a2;
0x00012bc8 addiu v0, sp, 0x3c | v0 = sp + 0x3c;
0x00012bcc lw v1, (s0) | v1 = *(s0);
0x00012bd0 sw gp, 0x10(sp) | *(var_10h_4) = gp;
0x00012bd4 sw s2, 0x28(sp) | *(var_28h_2) = s2;
0x00012bd8 sw s1, 0x24(sp) | *(var_24h_4) = s1;
0x00012bdc sw ra, 0x2c(sp) | *(var_2ch_4) = ra;
0x00012be0 move s2, a1 | s2 = a1;
0x00012be4 move a2, v0 | a2 = v0;
0x00012be8 move a1, t0 | a1 = t0;
0x00012bec sw a3, 0x3c(sp) | *(var_3ch_2) = a3;
0x00012bf0 sw v1, 0x1c(sp) | *(var_1ch_4) = v1;
0x00012bf4 sw v0, 0x18(sp) | *(var_18h_4) = v0;
| /* fcn.000104a8 */
0x00012bf8 addiu t9, t9, 0x4a8 | t9 += 0x4a8;
0x00012bfc move s1, a0 | s1 = a0;
0x00012c00 bal 0x104a8 | fcn_000104a8 ();
0x00012c04 lw gp, 0x10(sp) | gp = *(var_10h_4);
| if (v0 == 0) {
0x00012c08 beqz v0, 0x12c48 | goto label_4;
| }
0x00012c0c lw t9, -0x7f44(gp) | t9 = sym.ul_path_read_u64;
0x00012c10 move a2, v0 | a2 = v0;
0x00012c14 move a1, s2 | a1 = s2;
0x00012c18 move a0, s1 | a0 = s1;
0x00012c1c bal 0x12af4 | sym_ul_path_read_u64 ();
| goto label_0;
0x00012c20 lw gp, 0x10(sp) | gp = *(var_10h_4);
| do {
0x00012c24 lw a0, 0x1c(sp) | a0 = *(var_1ch_4);
0x00012c28 lw v1, (s0) | v1 = *(s0);
0x00012c2c lw ra, 0x2c(sp) | ra = *(var_2ch_4);
| if (a0 != v1) {
0x00012c30 bne a0, v1, 0x12c64 | goto label_5;
| }
0x00012c34 lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x00012c38 lw s1, 0x24(sp) | s1 = *(var_24h_4);
0x00012c3c lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x00012c40 addiu sp, sp, 0x30 |
0x00012c44 jr ra | return v0;
| label_4:
0x00012c48 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x00012c4c jalr t9 | t9 ();
0x00012c50 nop |
0x00012c54 lw v0, (v0) | v0 = *(v0);
0x00012c58 lw gp, 0x10(sp) | gp = *(var_10h_4);
0x00012c5c negu v0, v0 | __asm ("negu v0, v0");
0x00012c60 b 0x12c24 |
| } while (1);
| label_5:
0x00012c64 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00012c68 jalr t9 | t9 ();
0x00012c6c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x12c70 */
| #include <stdint.h>
|
; (fcn) sym.ul_path_read_s32 () | void ul_path_read_s32 () {
0x00012c70 lui gp, 2 |
0x00012c74 addiu gp, gp, 0x33e0 |
0x00012c78 addu gp, gp, t9 | gp += t9;
0x00012c7c addiu sp, sp, -0x30 |
0x00012c80 move v1, a2 | v1 = a2;
0x00012c84 sw s0, 0x24(sp) | *(var_24h) = s0;
0x00012c88 lw s0, -0x7bc0(gp) | s0 = *((gp - 7920));
0x00012c8c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00012c90 lw t9, -0x7e9c(gp) | t9 = sym.ul_path_scanf;
0x00012c94 lw v0, (s0) | v0 = *(s0);
0x00012c98 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00012c9c sw s1, 0x28(sp) | *(var_28h) = s1;
0x00012ca0 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00012ca4 move s1, a1 | s1 = a1;
0x00012ca8 addiu a3, sp, 0x18 | a3 = sp + 0x18;
0x00012cac move a1, v1 | a1 = v1;
| /* esilref: '&d' */
0x00012cb0 addiu a2, a2, -0x3174 | a2 += -0x3174;
0x00012cb4 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00012cb8 sw zero, 0x18(sp) | *(var_18h) = 0;
0x00012cbc bal 0x1274c | sym_ul_path_scanf ();
0x00012cc0 nop |
0x00012cc4 addiu v1, zero, 1 | v1 = 1;
0x00012cc8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != v1) {
0x00012ccc bne v0, v1, 0x12d00 | goto label_0;
| }
0x00012cd0 move v0, zero | v0 = 0;
| if (s1 == 0) {
0x00012cd4 beqz s1, 0x12ce0 | goto label_1;
| }
0x00012cd8 lw v1, 0x18(sp) | v1 = *(var_18h);
0x00012cdc sw v1, (s1) | *(s1) = v1;
| do {
| label_1:
0x00012ce0 lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x00012ce4 lw v1, (s0) | v1 = *(s0);
0x00012ce8 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (a0 != v1) {
0x00012cec bne a0, v1, 0x12d08 | goto label_2;
| }
0x00012cf0 lw s1, 0x28(sp) | s1 = *(var_28h);
0x00012cf4 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00012cf8 addiu sp, sp, 0x30 |
0x00012cfc jr ra | return v0;
| label_0:
0x00012d00 addiu v0, zero, -1 | v0 = -1;
0x00012d04 b 0x12ce0 |
| } while (1);
| label_2:
0x00012d08 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00012d0c jalr t9 | t9 ();
0x00012d10 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x12d14 */
| #include <stdint.h>
|
; (fcn) sym.ul_path_readf_s32 () | void ul_path_readf_s32 () {
0x00012d14 lui gp, 2 |
0x00012d18 addiu gp, gp, 0x333c |
0x00012d1c addu gp, gp, t9 | gp += t9;
0x00012d20 addiu sp, sp, -0x30 |
0x00012d24 lw t9, -0x7f74(gp) | t9 = *(gp);
0x00012d28 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00012d2c lw s0, -0x7bc0(gp) | s0 = *((gp - 7920));
0x00012d30 move t0, a2 | t0 = a2;
0x00012d34 addiu v0, sp, 0x3c | v0 = sp + 0x3c;
0x00012d38 lw v1, (s0) | v1 = *(s0);
0x00012d3c sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00012d40 sw s2, 0x28(sp) | *(var_28h_2) = s2;
0x00012d44 sw s1, 0x24(sp) | *(var_24h_2) = s1;
0x00012d48 sw ra, 0x2c(sp) | *(var_2ch_2) = ra;
0x00012d4c move s2, a1 | s2 = a1;
0x00012d50 move a2, v0 | a2 = v0;
0x00012d54 move a1, t0 | a1 = t0;
0x00012d58 sw a3, 0x3c(sp) | *(var_3ch) = a3;
0x00012d5c sw v1, 0x1c(sp) | *(var_1ch_2) = v1;
0x00012d60 sw v0, 0x18(sp) | *(var_18h_2) = v0;
| /* fcn.000104a8 */
0x00012d64 addiu t9, t9, 0x4a8 | t9 += 0x4a8;
0x00012d68 move s1, a0 | s1 = a0;
0x00012d6c bal 0x104a8 | fcn_000104a8 ();
0x00012d70 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v0 == 0) {
0x00012d74 beqz v0, 0x12db4 | goto label_0;
| }
0x00012d78 lw t9, -0x7f34(gp) | t9 = sym.ul_path_read_s32;
0x00012d7c move a2, v0 | a2 = v0;
0x00012d80 move a1, s2 | a1 = s2;
0x00012d84 move a0, s1 | a0 = s1;
0x00012d88 bal 0x12c70 | sym_ul_path_read_s32 ();
0x00012d8c lw gp, 0x10(sp) | gp = *(var_10h_2);
| do {
0x00012d90 lw a0, 0x1c(sp) | a0 = *(var_1ch_2);
0x00012d94 lw v1, (s0) | v1 = *(s0);
0x00012d98 lw ra, 0x2c(sp) | ra = *(var_2ch_2);
| if (a0 != v1) {
0x00012d9c bne a0, v1, 0x12dd0 | goto label_1;
| }
0x00012da0 lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x00012da4 lw s1, 0x24(sp) | s1 = *(var_24h_2);
0x00012da8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00012dac addiu sp, sp, 0x30 |
0x00012db0 jr ra | return v0;
| label_0:
0x00012db4 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x00012db8 jalr t9 | t9 ();
0x00012dbc nop |
0x00012dc0 lw v0, (v0) | v0 = *(v0);
0x00012dc4 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00012dc8 negu v0, v0 | __asm ("negu v0, v0");
0x00012dcc b 0x12d90 |
| } while (1);
| label_1:
0x00012dd0 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00012dd4 jalr t9 | t9 ();
0x00012dd8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x12ddc */
| #include <stdint.h>
|
; (fcn) sym.ul_path_read_u32 () | void ul_path_read_u32 () {
| label_0:
0x00012ddc lui gp, 2 |
0x00012de0 addiu gp, gp, 0x3274 |
0x00012de4 addu gp, gp, t9 | gp += t9;
0x00012de8 addiu sp, sp, -0x30 |
0x00012dec move v1, a2 | v1 = a2;
0x00012df0 sw s0, 0x24(sp) | *(var_24h_3) = s0;
0x00012df4 lw s0, -0x7bc0(gp) | s0 = *((gp - 7920));
0x00012df8 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00012dfc lw t9, -0x7e9c(gp) | t9 = sym.ul_path_scanf;
0x00012e00 lw v0, (s0) | v0 = *(s0);
0x00012e04 sw gp, 0x10(sp) | *(var_10h_3) = gp;
0x00012e08 sw s1, 0x28(sp) | *(var_28h_3) = s1;
0x00012e0c sw ra, 0x2c(sp) | *(var_2ch_3) = ra;
0x00012e10 move s1, a1 | s1 = a1;
0x00012e14 addiu a3, sp, 0x18 | a3 = sp + 0x18;
0x00012e18 move a1, v1 | a1 = v1;
| /* esilref: '&u' */
0x00012e1c addiu a2, a2, -0x3430 | a2 += -0x3430;
0x00012e20 sw v0, 0x1c(sp) | *(var_1ch_3) = v0;
0x00012e24 bal 0x1274c | sym_ul_path_scanf ();
0x00012e28 nop |
0x00012e2c addiu v1, zero, 1 | v1 = 1;
0x00012e30 lw gp, 0x10(sp) | gp = *(var_10h_3);
| if (v0 != v1) {
0x00012e34 bne v0, v1, 0x12e68 | goto label_1;
| }
0x00012e38 move v0, zero | v0 = 0;
| if (s1 == 0) {
0x00012e3c beqz s1, 0x12e48 | goto label_2;
| }
0x00012e40 lw v1, 0x18(sp) | v1 = *(var_18h_3);
0x00012e44 sw v1, (s1) | *(s1) = v1;
| do {
| label_2:
0x00012e48 lw a0, 0x1c(sp) | a0 = *(var_1ch_3);
0x00012e4c lw v1, (s0) | v1 = *(s0);
0x00012e50 lw ra, 0x2c(sp) | ra = *(var_2ch_3);
| if (a0 != v1) {
0x00012e54 bne a0, v1, 0x12e70 | goto label_3;
| }
0x00012e58 lw s1, 0x28(sp) | s1 = *(var_28h_3);
0x00012e5c lw s0, 0x24(sp) | s0 = *(var_24h_3);
0x00012e60 addiu sp, sp, 0x30 |
0x00012e64 jr ra | return v0;
| label_1:
0x00012e68 addiu v0, zero, -1 | v0 = -1;
0x00012e6c b 0x12e48 |
| } while (1);
| label_3:
0x00012e70 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00012e74 jalr t9 | t9 ();
0x00012e78 nop |
0x00012e7c lui gp, 2 |
0x00012e80 addiu gp, gp, 0x31d4 |
0x00012e84 addu gp, gp, t9 | gp += t9;
0x00012e88 addiu sp, sp, -0x30 |
0x00012e8c lw t9, -0x7f74(gp) | t9 = *(gp);
0x00012e90 sw s0, 0x20(sp) | *(var_20h_2) = s0;
0x00012e94 lw s0, -0x7bc0(gp) | s0 = *((gp - 7920));
0x00012e98 move t0, a2 | t0 = a2;
0x00012e9c addiu v0, sp, 0x3c | v0 = sp + 0x3c;
0x00012ea0 lw v1, (s0) | v1 = *(s0);
0x00012ea4 sw gp, 0x10(sp) | *(var_10h_4) = gp;
0x00012ea8 sw s2, 0x28(sp) | *(var_28h_4) = s2;
0x00012eac sw s1, 0x24(sp) | *(var_24h_4) = s1;
0x00012eb0 sw ra, 0x2c(sp) | *(var_2ch_4) = ra;
0x00012eb4 move s2, a1 | s2 = a1;
0x00012eb8 move a2, v0 | a2 = v0;
0x00012ebc move a1, t0 | a1 = t0;
0x00012ec0 sw a3, 0x3c(sp) | *(var_3ch_2) = a3;
0x00012ec4 sw v1, 0x1c(sp) | *(var_1ch_4) = v1;
0x00012ec8 sw v0, 0x18(sp) | *(var_18h_4) = v0;
| /* fcn.000104a8 */
0x00012ecc addiu t9, t9, 0x4a8 | t9 += 0x4a8;
0x00012ed0 move s1, a0 | s1 = a0;
0x00012ed4 bal 0x104a8 | fcn_000104a8 ();
0x00012ed8 lw gp, 0x10(sp) | gp = *(var_10h_4);
| if (v0 == 0) {
0x00012edc beqz v0, 0x12f1c | goto label_4;
| }
0x00012ee0 lw t9, -0x7e94(gp) | t9 = sym.ul_path_read_u32;
0x00012ee4 move a2, v0 | a2 = v0;
0x00012ee8 move a1, s2 | a1 = s2;
0x00012eec move a0, s1 | a0 = s1;
0x00012ef0 bal 0x12ddc | sym_ul_path_read_u32 ();
| goto label_0;
0x00012ef4 lw gp, 0x10(sp) | gp = *(var_10h_4);
| do {
0x00012ef8 lw a0, 0x1c(sp) | a0 = *(var_1ch_4);
0x00012efc lw v1, (s0) | v1 = *(s0);
0x00012f00 lw ra, 0x2c(sp) | ra = *(var_2ch_4);
| if (a0 != v1) {
0x00012f04 bne a0, v1, 0x12f38 | goto label_5;
| }
0x00012f08 lw s2, 0x28(sp) | s2 = *(var_28h_4);
0x00012f0c lw s1, 0x24(sp) | s1 = *(var_24h_4);
0x00012f10 lw s0, 0x20(sp) | s0 = *(var_20h_2);
0x00012f14 addiu sp, sp, 0x30 |
0x00012f18 jr ra | return v0;
| label_4:
0x00012f1c lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x00012f20 jalr t9 | t9 ();
0x00012f24 nop |
0x00012f28 lw v0, (v0) | v0 = *(v0);
0x00012f2c lw gp, 0x10(sp) | gp = *(var_10h_4);
0x00012f30 negu v0, v0 | __asm ("negu v0, v0");
0x00012f34 b 0x12ef8 |
| } while (1);
| label_5:
0x00012f38 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00012f3c jalr t9 | t9 ();
0x00012f40 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x12f44 */
| #include <stdint.h>
|
; (fcn) sym.ul_path_read_majmin () | void ul_path_read_majmin () {
0x00012f44 lui gp, 2 |
0x00012f48 addiu gp, gp, 0x310c |
0x00012f4c addu gp, gp, t9 | gp += t9;
0x00012f50 addiu sp, sp, -0x40 |
0x00012f54 move v1, a2 | v1 = a2;
0x00012f58 sw s1, 0x38(sp) | *(var_38h) = s1;
0x00012f5c lw s1, -0x7bc0(gp) | s1 = *((gp - 7920));
0x00012f60 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
0x00012f64 lw t9, -0x7e9c(gp) | t9 = sym.ul_path_scanf;
0x00012f68 lw v0, (s1) | v0 = *(s1);
0x00012f6c sw s0, 0x34(sp) | *(var_34h) = s0;
0x00012f70 move s0, a1 | s0 = a1;
0x00012f74 addiu a1, sp, 0x28 | a1 = sp + 0x28;
0x00012f78 sw gp, 0x18(sp) | *(var_18h_5) = gp;
0x00012f7c sw a1, 0x10(sp) | *(var_10h_5) = a1;
0x00012f80 sw ra, 0x3c(sp) | *(var_3ch_3) = ra;
0x00012f84 move a1, v1 | a1 = v1;
0x00012f88 addiu a3, sp, 0x24 | a3 = sp + 0x24;
| /* str._d:_d */
0x00012f8c addiu a2, a2, -0x29c0 | a2 += -0x29c0;
0x00012f90 sw v0, 0x2c(sp) | *(var_2ch_5) = v0;
0x00012f94 bal 0x1274c | sym_ul_path_scanf ();
0x00012f98 nop |
0x00012f9c addiu v1, zero, 2 | v1 = 2;
0x00012fa0 lw gp, 0x18(sp) | gp = *(var_18h_5);
| if (v0 != v1) {
0x00012fa4 bne v0, v1, 0x13020 | goto label_1;
| }
0x00012fa8 lw a0, 0x24(sp) | a0 = *(var_24h_5);
| if (s0 == 0) {
0x00012fac beqz s0, 0x13018 | goto label_2;
| }
0x00012fb0 lw v0, 0x28(sp) | v0 = *(var_28h_5);
0x00012fb4 lui a2, 0xf | a2 = 0xf0000;
0x00012fb8 sll a1, a0, 8 | a1 = a0 << 8;
0x00012fbc ori a2, a2, 0xff00 | a2 |= 0xff00;
0x00012fc0 and a2, a1, a2 | a2 = a1 & a2;
0x00012fc4 andi a1, v0, 0xff | a1 = v0 & 0xff;
0x00012fc8 sll v1, v0, 0xc | v1 = v0 << 0xc;
0x00012fcc or a1, a1, a2 | a1 |= a2;
0x00012fd0 addiu a3, zero, -0x1000 | a3 = -0x1000;
0x00012fd4 lui a2, 0xfff0 | a2 = 0xfff00000;
0x00012fd8 and a0, a0, a3 | a0 &= a3;
0x00012fdc and v1, v1, a2 | v1 &= a2;
0x00012fe0 srl v0, v0, 0x14 | v0 >>= 0x14;
0x00012fe4 or v0, v0, a0 | v0 |= a0;
0x00012fe8 or v1, v1, a1 | v1 |= a1;
0x00012fec sw v0, 4(s0) | *((s0 + 1)) = v0;
0x00012ff0 sw v1, (s0) | *(s0) = v1;
0x00012ff4 move v0, zero | v0 = 0;
| do {
| label_0:
0x00012ff8 lw a0, 0x2c(sp) | a0 = *(var_2ch_5);
0x00012ffc lw v1, (s1) | v1 = *(s1);
0x00013000 lw ra, 0x3c(sp) | ra = *(var_3ch_3);
| if (a0 != v1) {
0x00013004 bne a0, v1, 0x13028 | goto label_3;
| }
0x00013008 lw s1, 0x38(sp) | s1 = *(var_38h);
0x0001300c lw s0, 0x34(sp) | s0 = *(var_34h);
0x00013010 addiu sp, sp, 0x40 |
0x00013014 jr ra | return v0;
| label_2:
0x00013018 move v0, zero | v0 = 0;
0x0001301c b 0x12ff8 |
| } while (1);
| label_1:
0x00013020 addiu v0, zero, -1 | v0 = -1;
0x00013024 b 0x12ff8 | goto label_0;
| label_3:
0x00013028 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x0001302c jalr t9 | t9 ();
0x00013030 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x13034 */
| #include <stdint.h>
|
; (fcn) sym.ul_path_readf_majmin () | void ul_path_readf_majmin () {
0x00013034 lui gp, 2 |
0x00013038 addiu gp, gp, 0x301c |
0x0001303c addu gp, gp, t9 | gp += t9;
0x00013040 addiu sp, sp, -0x30 |
0x00013044 lw t9, -0x7f74(gp) | t9 = *(gp);
0x00013048 sw s0, 0x20(sp) | *(var_20h_3) = s0;
0x0001304c lw s0, -0x7bc0(gp) | s0 = *((gp - 7920));
0x00013050 move t0, a2 | t0 = a2;
0x00013054 addiu v0, sp, 0x3c | v0 = sp + 0x3c;
0x00013058 lw v1, (s0) | v1 = *(s0);
0x0001305c sw gp, 0x10(sp) | *(var_10h_6) = gp;
0x00013060 sw s2, 0x28(sp) | *(var_28h_6) = s2;
0x00013064 sw s1, 0x24(sp) | *(var_24h_6) = s1;
0x00013068 sw ra, 0x2c(sp) | *(var_2ch_6) = ra;
0x0001306c move s2, a1 | s2 = a1;
0x00013070 move a2, v0 | a2 = v0;
0x00013074 move a1, t0 | a1 = t0;
0x00013078 sw a3, 0x3c(sp) | *(var_3ch_4) = a3;
0x0001307c sw v1, 0x1c(sp) | *(var_1ch_5) = v1;
0x00013080 sw v0, 0x18(sp) | *(var_18h_6) = v0;
| /* fcn.000104a8 */
0x00013084 addiu t9, t9, 0x4a8 | t9 += 0x4a8;
0x00013088 move s1, a0 | s1 = a0;
0x0001308c bal 0x104a8 | fcn_000104a8 ();
0x00013090 lw gp, 0x10(sp) | gp = *(var_10h_6);
| if (v0 == 0) {
0x00013094 beqz v0, 0x130d4 | goto label_0;
| }
0x00013098 lw t9, -0x7e90(gp) | t9 = sym.ul_path_read_majmin;
0x0001309c move a2, v0 | a2 = v0;
0x000130a0 move a1, s2 | a1 = s2;
0x000130a4 move a0, s1 | a0 = s1;
0x000130a8 bal 0x12f44 | sym_ul_path_read_majmin ();
0x000130ac lw gp, 0x10(sp) | gp = *(var_10h_6);
| do {
0x000130b0 lw a0, 0x1c(sp) | a0 = *(var_1ch_5);
0x000130b4 lw v1, (s0) | v1 = *(s0);
0x000130b8 lw ra, 0x2c(sp) | ra = *(var_2ch_6);
| if (a0 != v1) {
0x000130bc bne a0, v1, 0x130f0 | goto label_1;
| }
0x000130c0 lw s2, 0x28(sp) | s2 = *(var_28h_6);
0x000130c4 lw s1, 0x24(sp) | s1 = *(var_24h_6);
0x000130c8 lw s0, 0x20(sp) | s0 = *(var_20h_3);
0x000130cc addiu sp, sp, 0x30 |
0x000130d0 jr ra | return v0;
| label_0:
0x000130d4 lw t9, -0x7d04(gp) | t9 = sym.imp.__errno_location;
0x000130d8 jalr t9 | t9 ();
0x000130dc nop |
0x000130e0 lw v0, (v0) | v0 = *(v0);
0x000130e4 lw gp, 0x10(sp) | gp = *(var_10h_6);
0x000130e8 negu v0, v0 | __asm ("negu v0, v0");
0x000130ec b 0x130b0 |
| } while (1);
| label_1:
0x000130f0 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x000130f4 jalr t9 | t9 ();
0x000130f8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x1274c */
| #include <stdint.h>
|
; (fcn) sym.ul_path_scanf () | void ul_path_scanf () {
0x0001274c lui gp, 2 |
0x00012750 addiu gp, gp, 0x3904 |
0x00012754 addu gp, gp, t9 | gp += t9;
0x00012758 addiu sp, sp, -0x40 |
0x0001275c lw t9, -0x7ed0(gp) | t9 = sym.ul_path_fopen;
0x00012760 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x00012764 lw s1, -0x7bc0(gp) | s1 = *((gp - 7920));
0x00012768 sw s3, 0x34(sp) | *(var_34h) = s3;
0x0001276c sw s2, 0x30(sp) | *(var_30h) = s2;
0x00012770 lw v0, (s1) | v0 = *(s1);
0x00012774 move s2, a1 | s2 = a1;
0x00012778 move s3, a2 | s3 = a2;
0x0001277c move a2, a1 | a2 = a1;
0x00012780 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00012784 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00012788 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x0001278c sw s4, 0x38(sp) | *(var_38h) = s4;
0x00012790 sw s0, 0x28(sp) | *(var_28h) = s0;
0x00012794 sw a3, 0x4c(sp) | *(arg_4ch) = a3;
| /* esilref: 're' */
0x00012798 addiu a1, a1, -0x3558 | a1 += -0x3558;
0x0001279c sw v0, 0x24(sp) | *(var_24h) = v0;
0x000127a0 bal 0x118e8 | sym_ul_path_fopen ();
0x000127a4 nop |
0x000127a8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000127ac beqz v0, 0x12898 | goto label_1;
| }
0x000127b0 move s0, v0 | s0 = v0;
0x000127b4 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x000127b8 lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x000127bc andi v0, v0, 4 | v0 &= 4;
0x000127c0 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x000127c4 bnel v0, zero, 0x1282c |
| while (1) {
0x000127c8 lw t9, -0x7c18(gp) | t9 = sym.imp.vfscanf;
0x000127cc addiu v0, sp, 0x4c | v0 = sp + 0x4c;
0x000127d0 move a0, s0 | a0 = s0;
0x000127d4 move a2, v0 | a2 = v0;
0x000127d8 move a1, s3 | a1 = s3;
0x000127dc sw v0, 0x20(sp) | *(var_20h_2) = v0;
0x000127e0 jalr t9 | t9 ();
0x000127e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000127e8 move a0, s0 | a0 = s0;
0x000127ec lw t9, -0x7d78(gp) | t9 = sym.imp.fclose;
0x000127f0 move s0, v0 | s0 = v0;
0x000127f4 jalr t9 | t9 ();
0x000127f8 lw gp, 0x18(sp) | gp = *(var_18h);
| label_0:
0x000127fc lw a0, 0x24(sp) | a0 = *(var_24h);
0x00012800 lw v1, (s1) | v1 = *(s1);
0x00012804 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00012808 bne a0, v1, 0x128a0 | goto label_2;
| }
0x0001280c lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00012810 lw s4, 0x38(sp) | s4 = *(var_38h);
0x00012814 lw s3, 0x34(sp) | s3 = *(var_34h);
0x00012818 lw s2, 0x30(sp) | s2 = *(var_30h);
0x0001281c lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00012820 lw s0, 0x28(sp) | s0 = *(var_28h);
0x00012824 addiu sp, sp, 0x40 |
0x00012828 jr ra | return v0;
0x0001282c lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00012830 lw s4, (v0) | s4 = *(v0);
0x00012834 jalr t9 | t9 ();
0x00012838 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001283c move a3, v0 | a3 = v0;
0x00012840 addiu a1, zero, 1 | a1 = 1;
0x00012844 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00012848 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x0001284c addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00012850 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00012854 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00012858 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulpath */
0x0001285c addiu v0, v0, -0x2b18 | v0 += -0x2b18;
| /* str._d:__s:__8s:_ */
0x00012860 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00012864 move a0, s4 | a0 = s4;
0x00012868 sw v0, 0x10(sp) | *(var_40h) = v0;
0x0001286c jalr t9 | t9 ();
0x00012870 lw gp, 0x18(sp) | gp = *(var_18h);
0x00012874 move a2, s2 | a2 = s2;
0x00012878 move a1, s3 | a1 = s3;
0x0001287c lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x00012880 lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00010408 */
0x00012884 addiu t9, t9, 0x408 | t9 += 0x408;
| /* str._fscanf___s___s */
0x00012888 addiu a0, a0, -0x29e4 | a0 += -0x29e4;
0x0001288c bal 0x10408 | fcn_00010408 ();
0x00012890 lw gp, 0x18(sp) | gp = *(var_18h);
0x00012894 b 0x127c8 |
| }
| label_1:
0x00012898 addiu s0, zero, -0x16 | s0 = -0x16;
0x0001289c b 0x127fc | goto label_0;
| label_2:
0x000128a0 lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x000128a4 jalr t9 | t9 ();
0x000128a8 nop |
0x000128ac lui gp, 2 |
0x000128b0 addiu gp, gp, 0x37a4 |
0x000128b4 addu gp, gp, t9 | gp += t9;
0x000128b8 addiu sp, sp, -0x30 |
0x000128bc lw t9, -0x7ecc(gp) | t9 = sym.ul_path_vfopenf;
0x000128c0 sw s1, 0x24(sp) | *(var_24h_2) = s1;
0x000128c4 lw s1, -0x7bc0(gp) | s1 = *((gp - 7920));
0x000128c8 sw s2, 0x28(sp) | *(var_28h_2) = s2;
0x000128cc move s2, a3 | s2 = a3;
0x000128d0 lw v0, (s1) | v0 = *(s1);
0x000128d4 move a3, a2 | a3 = a2;
0x000128d8 move a2, a1 | a2 = a1;
0x000128dc lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x000128e0 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000128e4 sw ra, 0x2c(sp) | *(var_2ch_2) = ra;
0x000128e8 sw s0, 0x20(sp) | *(var_20h) = s0;
| /* esilref: 're' */
0x000128ec addiu a1, a1, -0x3558 | a1 += -0x3558;
0x000128f0 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x000128f4 bal 0x119f8 | sym_ul_path_vfopenf ();
0x000128f8 nop |
0x000128fc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00012900 beqz v0, 0x12964 | goto label_3;
| }
0x00012904 move s0, v0 | s0 = v0;
0x00012908 lw t9, -0x7c18(gp) | t9 = sym.imp.vfscanf;
0x0001290c addiu v0, sp, 0x40 | v0 = sp + 0x40;
0x00012910 move a0, s0 | a0 = s0;
0x00012914 move a2, v0 | a2 = v0;
0x00012918 move a1, s2 | a1 = s2;
0x0001291c sw v0, 0x18(sp) | *(var_18h_3) = v0;
0x00012920 jalr t9 | t9 ();
0x00012924 lw gp, 0x10(sp) | gp = *(var_10h);
0x00012928 move a0, s0 | a0 = s0;
0x0001292c lw t9, -0x7d78(gp) | t9 = sym.imp.fclose;
0x00012930 move s0, v0 | s0 = v0;
0x00012934 jalr t9 | t9 ();
0x00012938 lw gp, 0x10(sp) | gp = *(var_10h);
| do {
0x0001293c lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x00012940 lw v1, (s1) | v1 = *(s1);
0x00012944 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x00012948 bne a0, v1, 0x1296c | goto label_4;
| }
0x0001294c lw ra, 0x2c(sp) | ra = *(var_2ch_2);
0x00012950 lw s2, 0x28(sp) | s2 = *(var_28h_2);
0x00012954 lw s1, 0x24(sp) | s1 = *(var_24h_2);
0x00012958 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001295c addiu sp, sp, 0x30 |
0x00012960 jr ra | return v0;
| label_3:
0x00012964 addiu s0, zero, -0x16 | s0 = -0x16;
0x00012968 b 0x1293c |
| } while (1);
| label_4:
0x0001296c lw t9, -0x7bec(gp) | t9 = sym.imp.__stack_chk_fail;
0x00012970 jalr t9 | t9 ();
0x00012974 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x10ad0 */
| #include <stdint.h>
|
; (fcn) sym.ul_path_set_dialect () | void ul_path_set_dialect () {
0x00010ad0 lui gp, 2 |
0x00010ad4 addiu gp, gp, 0x5580 |
0x00010ad8 addu gp, gp, t9 | gp += t9;
0x00010adc lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00010ae0 addiu sp, sp, -0x30 |
0x00010ae4 lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x00010ae8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00010aec andi v0, v0, 4 | v0 &= 4;
0x00010af0 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00010af4 sw s1, 0x28(sp) | *(var_28h) = s1;
0x00010af8 sw s0, 0x24(sp) | *(var_24h) = s0;
0x00010afc sw a1, 0x1010(a0) | *(a0) = a1;
0x00010b00 sw a2, 0x1014(a0) | *((a0 + 1029)) = a2;
| if (v0 == 0) {
0x00010b04 bnez v0, 0x10b20 |
0x00010b08 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00010b0c lw s1, 0x28(sp) | s1 = *(var_28h);
0x00010b10 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00010b14 move v0, zero | v0 = 0;
0x00010b18 addiu sp, sp, 0x30 |
0x00010b1c jr ra | return v0;
| }
0x00010b20 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x00010b24 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00010b28 move s0, a0 | s0 = a0;
0x00010b2c lw s1, (v0) | s1 = *(v0);
0x00010b30 jalr t9 | t9 ();
0x00010b34 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010b38 move a3, v0 | a3 = v0;
0x00010b3c move a0, s1 | a0 = s1;
0x00010b40 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00010b44 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00010b48 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00010b4c sw v0, 0x14(sp) | *(var_14h) = v0;
0x00010b50 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00010b54 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulpath */
0x00010b58 addiu v0, v0, -0x2b18 | v0 += -0x2b18;
| /* str._d:__s:__8s:_ */
0x00010b5c addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00010b60 addiu a1, zero, 1 | a1 = 1;
0x00010b64 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00010b68 jalr t9 | t9 ();
0x00010b6c lw gp, 0x18(sp) | gp = *(var_18h);
0x00010b70 move a0, s0 | a0 = s0;
0x00010b74 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00010b78 lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00010320 */
0x00010b7c addiu t9, t9, 0x320 | t9 += 0x320;
| /* str._re_set_dialect */
0x00010b80 addiu a1, a1, -0x2abc | a1 += -0x2abc;
0x00010b84 bal 0x10320 | fcn_00010320 ();
0x00010b88 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00010b8c lw s1, 0x28(sp) | s1 = *(var_28h);
0x00010b90 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00010b94 move v0, zero | v0 = 0;
0x00010b98 addiu sp, sp, 0x30 |
0x00010b9c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x10980 */
| #include <stdint.h>
|
; (fcn) sym.ul_path_set_dir () | void ul_path_set_dir () {
0x00010980 lui gp, 2 |
0x00010984 addiu gp, gp, 0x56d0 |
0x00010988 addu gp, gp, t9 | gp += t9;
0x0001098c addiu sp, sp, -0x30 |
0x00010990 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00010994 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00010998 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0001099c sw s2, 0x28(sp) | *(var_28h) = s2;
0x000109a0 sw s1, 0x24(sp) | *(var_24h) = s1;
0x000109a4 move s0, a0 | s0 = a0;
| if (a1 == 0) {
0x000109a8 beqz a1, 0x10a28 | goto label_1;
| }
0x000109ac lw t9, -0x7bac(gp) | t9 = sym.imp.strdup;
0x000109b0 move a0, a1 | a0 = a1;
0x000109b4 jalr t9 | t9 ();
0x000109b8 move s1, v0 | s1 = v0;
0x000109bc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000109c0 beqz v0, 0x10ab0 | goto label_2;
| }
| do {
0x000109c4 lw a0, (s0) | a0 = *(s0);
0x000109c8 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
| if (a0 >= 0) {
0x000109cc bltz a0, 0x109ec |
0x000109d0 lw t9, -0x7dd4(gp) | t9 = sym.imp.close;
0x000109d4 jalr t9 | t9 ();
0x000109d8 nop |
0x000109dc addiu v0, zero, -1 | v0 = -1;
0x000109e0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000109e4 sw v0, (s0) | *(s0) = v0;
0x000109e8 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
| }
0x000109ec lw a0, 4(s0) | a0 = *((s0 + 1));
0x000109f0 jalr t9 | t9 ();
0x000109f4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000109f8 sw s1, 4(s0) | *((s0 + 1)) = s1;
0x000109fc lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00010a00 lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x00010a04 andi v0, v0, 4 | v0 &= 4;
0x00010a08 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 == 0) {
0x00010a0c bnel v0, zero, 0x10a30 | goto label_3;
| }
| label_0:
0x00010a10 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00010a14 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00010a18 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00010a1c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00010a20 addiu sp, sp, 0x30 |
0x00010a24 jr ra | return v0;
| label_1:
0x00010a28 move s1, zero | s1 = 0;
0x00010a2c b 0x109c4 |
| } while (1);
| label_3:
0x00010a30 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00010a34 lw s2, (v0) | s2 = *(v0);
0x00010a38 jalr t9 | t9 ();
0x00010a3c lw gp, 0x18(sp) | gp = *(var_18h);
0x00010a40 move a3, v0 | a3 = v0;
0x00010a44 move a0, s2 | a0 = s2;
0x00010a48 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00010a4c lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00010a50 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00010a54 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00010a58 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00010a5c lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulpath */
0x00010a60 addiu v0, v0, -0x2b18 | v0 += -0x2b18;
| /* str._d:__s:__8s:_ */
0x00010a64 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00010a68 addiu a1, zero, 1 | a1 = 1;
0x00010a6c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00010a70 jalr t9 | t9 ();
0x00010a74 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010a78 move a2, s1 | a2 = s1;
0x00010a7c move a0, s0 | a0 = s0;
0x00010a80 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00010a84 lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00010320 */
0x00010a88 addiu t9, t9, 0x320 | t9 += 0x320;
| /* str.new_dir:__s */
0x00010a8c addiu a1, a1, -0x2acc | a1 += -0x2acc;
0x00010a90 bal 0x10320 | fcn_00010320 ();
0x00010a94 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00010a98 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00010a9c lw s1, 0x24(sp) | s1 = *(var_24h);
0x00010aa0 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00010aa4 move v0, zero | v0 = 0;
0x00010aa8 addiu sp, sp, 0x30 |
0x00010aac jr ra | return v0;
| label_2:
0x00010ab0 addiu v0, zero, -0xc | v0 = -0xc;
0x00010ab4 b 0x10a10 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x10828 */
| #include <stdint.h>
|
; (fcn) sym.ul_path_set_prefix () | void ul_path_set_prefix () {
0x00010828 lui gp, 2 |
0x0001082c addiu gp, gp, 0x5828 |
0x00010830 addu gp, gp, t9 | gp += t9;
0x00010834 addiu sp, sp, -0x30 |
0x00010838 lw v0, (a0) | v0 = *(a0);
0x0001083c sw gp, 0x18(sp) | *(var_18h) = gp;
0x00010840 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00010844 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00010848 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0001084c sw s0, 0x20(sp) | *(var_20h) = s0;
0x00010850 lw a3, -0x7fd0(gp) | a3 = *((gp - 8180));
| if (v0 >= 0) {
0x00010854 bgez v0, 0x10948 | goto label_1;
| }
0x00010858 move s0, a0 | s0 = a0;
| if (a1 == 0) {
0x0001085c beqz a1, 0x10938 | goto label_2;
| }
0x00010860 lw t9, -0x7bac(gp) | t9 = sym.imp.strdup;
0x00010864 move a0, a1 | a0 = a1;
0x00010868 jalr t9 | t9 ();
0x0001086c move s1, v0 | s1 = v0;
0x00010870 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00010874 beqz v0, 0x10940 | goto label_3;
| }
| do {
0x00010878 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x0001087c lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x00010880 jalr t9 | t9 ();
0x00010884 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010888 sw s1, 0xc(s0) | *((s0 + 3)) = s1;
0x0001088c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00010890 lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x00010894 andi v0, v0, 4 | v0 &= 4;
0x00010898 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
| if (v0 != 0) {
0x0001089c bnel v0, zero, 0x108b8 |
| label_0:
0x000108a0 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000108a4 lw s2, 0x28(sp) | s2 = *(var_28h);
0x000108a8 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000108ac lw s0, 0x20(sp) | s0 = *(var_20h);
0x000108b0 addiu sp, sp, 0x30 |
0x000108b4 jr ra | return v0;
| }
0x000108b8 lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x000108bc lw s2, (v0) | s2 = *(v0);
0x000108c0 jalr t9 | t9 ();
0x000108c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000108c8 move a3, v0 | a3 = v0;
0x000108cc move a0, s2 | a0 = s2;
0x000108d0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x000108d4 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x000108d8 addiu v0, v0, -0x3490 | v0 += -0x3490;
0x000108dc sw v0, 0x14(sp) | *(var_14h) = v0;
0x000108e0 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x000108e4 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulpath */
0x000108e8 addiu v0, v0, -0x2b18 | v0 += -0x2b18;
| /* str._d:__s:__8s:_ */
0x000108ec addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x000108f0 addiu a1, zero, 1 | a1 = 1;
0x000108f4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000108f8 jalr t9 | t9 ();
0x000108fc lw gp, 0x18(sp) | gp = *(var_18h);
0x00010900 move a2, s1 | a2 = s1;
0x00010904 move a0, s0 | a0 = s0;
0x00010908 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0001090c lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00010320 */
0x00010910 addiu t9, t9, 0x320 | t9 += 0x320;
| /* str.new_prefix:__s */
0x00010914 addiu a1, a1, -0x2ae0 | a1 += -0x2ae0;
0x00010918 bal 0x10320 | fcn_00010320 ();
0x0001091c lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00010920 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00010924 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00010928 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0001092c move v0, zero | v0 = 0;
0x00010930 addiu sp, sp, 0x30 |
0x00010934 jr ra | return v0;
| label_2:
0x00010938 move s1, zero | s1 = 0;
0x0001093c b 0x10878 |
| } while (1);
| label_3:
0x00010940 addiu v0, zero, -0xc | v0 = -0xc;
0x00010944 b 0x108a0 | goto label_0;
| label_1:
0x00010948 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x0001094c lw a0, -0x7fd0(gp) | a0 = *((gp - 8180));
0x00010950 lw t9, -0x7de8(gp) | t9 = sym.imp.__assert_fail;
| /* str.ul_path_set_prefix */
0x00010954 addiu a3, a3, -0x2988 | a3 += -0x2988;
0x00010958 addiu a2, zero, 0x6d | a2 = 0x6d;
| /* str..._util_linux_2.34_lib_path.c */
0x0001095c addiu a1, a1, -0x2b10 | a1 += -0x2b10;
| /* str.pc__dir_fd___0 */
0x00010960 addiu a0, a0, -0x2af0 | a0 += -0x2af0;
0x00010964 jalr t9 | return t9 ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/blkid.util-linux @ 0x10e3c */
| #include <stdint.h>
|
; (fcn) sym.ul_unref_path () | void ul_unref_path () {
0x00010e3c lui gp, 2 |
0x00010e40 addiu gp, gp, 0x5214 |
0x00010e44 addu gp, gp, t9 | gp += t9;
| if (a0 != 0) {
0x00010e48 beqz a0, 0x10e60 |
0x00010e4c nop |
0x00010e50 lw v0, 8(a0) | v0 = *((a0 + 2));
0x00010e54 addiu v0, v0, -1 | v0 += -1;
0x00010e58 sw v0, 8(a0) | *((a0 + 2)) = v0;
| if (v0 <= 0) {
0x00010e5c blez v0, 0x10e68 | goto label_0;
| }
| }
0x00010e60 jr ra | return v0;
0x00010e64 nop |
| label_0:
0x00010e68 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00010e6c addiu sp, sp, -0x30 |
0x00010e70 lw v0, -0x1ae0(v0) | v0 = *((v0 - 1720));
0x00010e74 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00010e78 andi v0, v0, 4 | v0 &= 4;
0x00010e7c sw s0, 0x24(sp) | *(var_24h) = s0;
0x00010e80 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00010e84 sw s1, 0x28(sp) | *(var_28h) = s1;
0x00010e88 move s0, a0 | s0 = a0;
0x00010e8c bnez v0, 0x10ef8 |
| while (1) {
0x00010e90 lw v0, 0x1010(s0) | v0 = *(s0);
0x00010e94 lw t9, -0x7ee4(gp) | t9 = sym.ul_path_close_dirfd;
| if (v0 != 0) {
0x00010e98 beqz v0, 0x10eb0 |
0x00010e9c lw t9, 0x1014(s0) | t9 = *((s0 + 1029));
0x00010ea0 move a0, s0 | a0 = s0;
0x00010ea4 jalr t9 | t9 ();
0x00010ea8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010eac lw t9, -0x7ee4(gp) | t9 = sym.ul_path_close_dirfd;
| }
0x00010eb0 move a0, s0 | a0 = s0;
0x00010eb4 bal 0x10d3c | sym_ul_path_close_dirfd ();
0x00010eb8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010ebc lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x00010ec0 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00010ec4 jalr t9 | t9 ();
0x00010ec8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010ecc lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x00010ed0 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x00010ed4 jalr t9 | t9 ();
0x00010ed8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010edc lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00010ee0 lw s1, 0x28(sp) | s1 = *(var_28h);
0x00010ee4 move a0, s0 | a0 = s0;
0x00010ee8 lw t9, -0x7ba8(gp) | t9 = sym.imp.free;
0x00010eec lw s0, 0x24(sp) | s0 = *(var_24h);
0x00010ef0 addiu sp, sp, 0x30 |
0x00010ef4 jr t9 | t9 ();
0x00010ef8 lw v0, -0x7b90(gp) | v0 = *((gp - 7908));
0x00010efc lw t9, -0x7c4c(gp) | t9 = sym.imp.getpid;
0x00010f00 lw s1, (v0) | s1 = *(v0);
0x00010f04 jalr t9 | t9 ();
0x00010f08 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010f0c move a3, v0 | a3 = v0;
0x00010f10 addiu a1, zero, 1 | a1 = 1;
0x00010f14 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00010f18 lw a2, -0x7fd0(gp) | a2 = *((gp - 8180));
| /* esilref: 'CXT' */
0x00010f1c addiu v0, v0, -0x3490 | v0 += -0x3490;
0x00010f20 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00010f24 lw v0, -0x7fd0(gp) | v0 = *((gp - 8180));
0x00010f28 lw t9, -0x7da0(gp) | t9 = sym.imp.__fprintf_chk
| /* str.ulpath */
0x00010f2c addiu v0, v0, -0x2b18 | v0 += -0x2b18;
| /* str._d:__s:__8s:_ */
0x00010f30 addiu a2, a2, -0x34a0 | a2 += -0x34a0;
0x00010f34 move a0, s1 | a0 = s1;
0x00010f38 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00010f3c jalr t9 | t9 ();
0x00010f40 lw gp, 0x18(sp) | gp = *(var_18h);
0x00010f44 move a0, s0 | a0 = s0;
0x00010f48 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
0x00010f4c lw t9, -0x7f74(gp) | t9 = *(gp);
| /* fcn.00010320 */
0x00010f50 addiu t9, t9, 0x320 | t9 += 0x320;
| /* str.dealloc */
0x00010f54 addiu a1, a1, -0x2a70 | a1 += -0x2a70;
0x00010f58 bal 0x10320 | fcn_00010320 ();
0x00010f5c lw gp, 0x18(sp) | gp = *(var_18h);
0x00010f60 b 0x10e90 |
| }
| }
[*] Function fprintf used 80 times blkid.util-linux