[*] Binary protection state of libcrypto.so.1.0.0
No RELRO No Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function mmap tear down of libcrypto.so.1.0.0
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/libcrypto.so.1.0.0 @ 0xa7dc0 */
| #include <stdint.h>
|
; (fcn) sym.DSA_set_method () | void DSA_set_method () {
0x000a7dc0 lui gp, 0x11 |
0x000a7dc4 addiu gp, gp, 0x7630 |
0x000a7dc8 addu gp, gp, t9 | gp += t9;
0x000a7dcc addiu sp, sp, -0x28 |
0x000a7dd0 sw ra, 0x24(sp) | *(var_24h) = ra;
0x000a7dd4 sw s1, 0x20(sp) | *(var_20h) = s1;
0x000a7dd8 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000a7ddc move s0, a0 | s0 = a0;
0x000a7de0 lw t8, 0x3c(a0) | t8 = *((a0 + 15));
0x000a7de4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000a7de8 lw t9, 0x1c(t8) | t9 = *((t8 + 7));
0x000a7dec move s1, a1 | s1 = a1;
| if (t9 != 0) {
0x000a7df0 beqz t9, 0xa7e00 |
0x000a7df4 jalr t9 | t9 ();
0x000a7df8 nop |
0x000a7dfc lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000a7e00 lw a0, 0x40(s0) | a0 = *((s0 + 16));
0x000a7e04 lw t9, -0x76c8(gp) | t9 = *(gp);
| if (a0 != 0) {
0x000a7e08 beqz a0, 0xa7e18 |
0x000a7e0c jalr t9 | t9 ();
0x000a7e10 nop |
0x000a7e14 sw zero, 0x40(s0) | *((s0 + 16)) = 0;
| }
0x000a7e18 lw t9, 0x18(s1) | t9 = *((s1 + 6));
0x000a7e1c sw s1, 0x3c(s0) | *((s0 + 15)) = s1;
| if (t9 != 0) {
0x000a7e20 beqz t9, 0xa7e2c |
0x000a7e24 move a0, s0 | a0 = s0;
0x000a7e28 jalr t9 | t9 ();
| }
0x000a7e2c lw ra, 0x24(sp) | ra = *(var_24h);
0x000a7e30 addiu v0, zero, 1 | v0 = 1;
0x000a7e34 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000a7e38 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000a7e3c addiu sp, sp, 0x28 |
0x000a7e40 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/libcrypto.so.1.0.0 @ 0x14fb70 */
| #include <stdint.h>
|
; (fcn) sym.UI_set_result () | void UI_set_result () {
0x0014fb70 lui gp, 7 |
0x0014fb74 addiu gp, gp, -0x780 |
0x0014fb78 addu gp, gp, t9 | gp += t9;
0x0014fb7c addiu sp, sp, -0x60 |
0x0014fb80 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x0014fb84 sw s6, 0x58(sp) | *(var_58h) = s6;
0x0014fb88 sw s5, 0x54(sp) | *(var_54h) = s5;
0x0014fb8c sw s4, 0x50(sp) | *(var_50h) = s4;
0x0014fb90 sw s3, 0x4c(sp) | *(var_4ch) = s3;
0x0014fb94 sw s2, 0x48(sp) | *(var_48h) = s2;
0x0014fb98 sw s1, 0x44(sp) | *(var_44h) = s1;
0x0014fb9c sw s0, 0x40(sp) | *(var_40h) = s0;
0x0014fba0 move s0, a0 | s0 = a0;
0x0014fba4 lw t9, -0x5bcc(gp) | t9 = *((gp - 5875));
0x0014fba8 move a0, a2 | a0 = a2;
0x0014fbac sw gp, 0x18(sp) | *(var_18h) = gp;
0x0014fbb0 move s1, a2 | s1 = a2;
0x0014fbb4 move s2, a1 | s2 = a1;
0x0014fbb8 jalr t9 | t9 ();
0x0014fbbc lw t8, 0x14(s0) | t8 = *((s0 + 5));
0x0014fbc0 addiu v1, zero, -2 | v1 = -2;
0x0014fbc4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0014fbc8 and t8, t8, v1 | t8 &= v1;
0x0014fbcc sw t8, 0x14(s0) | *((s0 + 5)) = t8;
| if (s2 == 0) {
0x0014fbd0 beqz s2, 0x14fdc0 | goto label_2;
| }
0x0014fbd4 lw t8, (s2) | t8 = *(s2);
0x0014fbd8 sltiu v1, t8, 3 | v1 = (t8 < 3) ? 1 : 0;
| if (t8 == 0) {
0x0014fbdc beqz t8, 0x14fd38 | goto label_3;
| }
0x0014fbe0 lw t9, -0x7f70(gp) | t9 = *((gp - 8156));
| if (v1 != 0) {
0x0014fbe4 bnez v1, 0x14fc94 | goto label_4;
| }
0x0014fbe8 addiu v0, zero, 3 | v0 = 3;
0x0014fbec lw ra, 0x5c(sp) | ra = *(var_5ch);
| if (t8 != v0) {
0x0014fbf0 bne t8, v0, 0x14fd3c | goto label_5;
| }
0x0014fbf4 lw t8, 0xc(s2) | t8 = *((s2 + 3));
0x0014fbf8 lw t9, -0x7fb8(gp) | t9 = *((gp - 8174));
| if (t8 == 0) {
0x0014fbfc beqz t8, 0x14fe58 | goto label_6;
| }
0x0014fc00 sb zero, (t8) | *(t8) = 0;
0x0014fc04 lb s0, (s1) | s0 = *(s1);
0x0014fc08 lw ra, 0x5c(sp) | ra = *(var_5ch);
| if (s0 == 0) {
0x0014fc0c beqz s0, 0x14fd3c | goto label_5;
| }
0x0014fc10 lw s3, 0x14(s2) | s3 = *((s2 + 5));
0x0014fc14 b 0x14fc38 |
| while (v0 == 0) {
0x0014fc18 lw s0, 0x18(s2) | s0 = *((s2 + 6));
0x0014fc1c move a0, s0 | a0 = s0;
0x0014fc20 jalr t9 | t9 ();
0x0014fc24 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0014fc28 bnez v0, 0x14fd64 | goto label_7;
| }
0x0014fc2c lb s0, (s1) | s0 = *(s1);
0x0014fc30 lw ra, 0x5c(sp) | ra = *(var_5ch);
| if (s0 == 0) {
0x0014fc34 beqz s0, 0x14fd3c | goto label_5;
| }
0x0014fc38 lw t9, -0x5b00(gp) | t9 = *((gp - 5824));
0x0014fc3c move a1, s0 | a1 = s0;
0x0014fc40 move a0, s3 | a0 = s3;
0x0014fc44 addiu s1, s1, 1 | s1++;
0x0014fc48 jalr t9 | t9 ();
0x0014fc4c move a1, s0 | a1 = s0;
0x0014fc50 lw gp, 0x18(sp) | gp = *(var_18h);
0x0014fc54 lw t9, -0x5b00(gp) | t9 = *((gp - 5824));
0x0014fc58 beqz v0, 0x14fc18 |
| }
0x0014fc5c lw t8, 0xc(s2) | t8 = *((s2 + 3));
0x0014fc60 move v0, zero | v0 = 0;
0x0014fc64 lb v1, (s3) | v1 = *(s3);
0x0014fc68 sb v1, (t8) | *(t8) = v1;
0x0014fc6c lw ra, 0x5c(sp) | ra = *(var_5ch);
0x0014fc70 lw s6, 0x58(sp) | s6 = *(var_58h);
0x0014fc74 lw s5, 0x54(sp) | s5 = *(var_54h);
0x0014fc78 lw s4, 0x50(sp) | s4 = *(var_50h);
0x0014fc7c lw s3, 0x4c(sp) | s3 = *(var_4ch);
0x0014fc80 lw s2, 0x48(sp) | s2 = *(var_48h);
0x0014fc84 lw s1, 0x44(sp) | s1 = *(var_44h);
0x0014fc88 lw s0, 0x40(sp) | s0 = *(var_40h);
0x0014fc8c addiu sp, sp, 0x60 |
0x0014fc90 jr ra | return v0;
| label_4:
0x0014fc94 lw s4, -0x7db0(gp) | s4 = *((gp - 8044));
0x0014fc98 addiu s6, sp, 0x30 | s6 = sp + 0x30;
0x0014fc9c move a0, s6 | a0 = s6;
0x0014fca0 lw a3, 0x10(s2) | a3 = *((s2 + 4));
0x0014fca4 addiu a1, zero, 0xd | a1 = 0xd;
0x0014fca8 addiu a2, s4, -0x1208 | a2 = s4 + -0x1208;
0x0014fcac move s3, v0 | s3 = v0;
0x0014fcb0 jalr t9 | t9 ();
0x0014fcb4 addiu s5, sp, 0x20 | s5 = sp + 0x20;
0x0014fcb8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0014fcbc move a0, s5 | a0 = s5;
0x0014fcc0 lw a3, 0x14(s2) | a3 = *((s2 + 5));
0x0014fcc4 addiu a1, zero, 0xd | a1 = 0xd;
0x0014fcc8 lw t9, -0x7f70(gp) | t9 = *((gp - 8156));
0x0014fccc addiu a2, s4, -0x1208 | a2 = s4 + -0x1208;
0x0014fcd0 jalr t9 | t9 ();
0x0014fcd4 lw t8, 0x10(s2) | t8 = *((s2 + 4));
0x0014fcd8 slt t8, s3, t8 | t8 = (s3 < t8) ? 1 : 0;
0x0014fcdc lw gp, 0x18(sp) | gp = *(var_18h);
| if (t8 != 0) {
0x0014fce0 bnez t8, 0x14fdc8 | goto label_8;
| }
0x0014fce4 lw a2, 0x14(s2) | a2 = *((s2 + 5));
0x0014fce8 slt s3, a2, s3 | s3 = (a2 < s3) ? 1 : 0;
0x0014fcec addiu a0, zero, 0x28 | a0 = 0x28;
| if (s3 != 0) {
0x0014fcf0 bnez s3, 0x14fe34 | goto label_9;
| }
0x0014fcf4 lw a0, 0xc(s2) | a0 = *((s2 + 3));
0x0014fcf8 lw t9, -0x7f64(gp) | t9 = *((gp - 8153));
| if (a0 == 0) {
0x0014fcfc beqz a0, 0x14fd9c | goto label_10;
| }
0x0014fd00 move a1, s1 | a1 = s1;
0x0014fd04 addiu a2, a2, 1 | a2++;
0x0014fd08 jalr t9 | t9 ();
0x0014fd0c move v0, zero | v0 = 0;
| do {
| label_0:
0x0014fd10 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x0014fd14 lw s6, 0x58(sp) | s6 = *(var_58h);
0x0014fd18 lw s5, 0x54(sp) | s5 = *(var_54h);
0x0014fd1c lw s4, 0x50(sp) | s4 = *(var_50h);
0x0014fd20 lw s3, 0x4c(sp) | s3 = *(var_4ch);
0x0014fd24 lw s2, 0x48(sp) | s2 = *(var_48h);
0x0014fd28 lw s1, 0x44(sp) | s1 = *(var_44h);
0x0014fd2c lw s0, 0x40(sp) | s0 = *(var_40h);
0x0014fd30 addiu sp, sp, 0x60 |
0x0014fd34 jr ra | return v0;
| label_3:
0x0014fd38 lw ra, 0x5c(sp) | ra = *(var_5ch);
| label_5:
0x0014fd3c move v0, zero | v0 = 0;
0x0014fd40 lw s6, 0x58(sp) | s6 = *(var_58h);
0x0014fd44 lw s5, 0x54(sp) | s5 = *(var_54h);
0x0014fd48 lw s4, 0x50(sp) | s4 = *(var_50h);
0x0014fd4c lw s3, 0x4c(sp) | s3 = *(var_4ch);
0x0014fd50 lw s2, 0x48(sp) | s2 = *(var_48h);
0x0014fd54 lw s1, 0x44(sp) | s1 = *(var_44h);
0x0014fd58 lw s0, 0x40(sp) | s0 = *(var_40h);
0x0014fd5c addiu sp, sp, 0x60 |
0x0014fd60 jr ra | return v0;
| label_7:
0x0014fd64 lw t8, 0xc(s2) | t8 = *((s2 + 3));
0x0014fd68 move v0, zero | v0 = 0;
0x0014fd6c lb v1, (s0) | v1 = *(s0);
0x0014fd70 sb v1, (t8) | *(t8) = v1;
0x0014fd74 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x0014fd78 lw s6, 0x58(sp) | s6 = *(var_58h);
0x0014fd7c lw s5, 0x54(sp) | s5 = *(var_54h);
0x0014fd80 lw s4, 0x50(sp) | s4 = *(var_50h);
0x0014fd84 lw s3, 0x4c(sp) | s3 = *(var_4ch);
0x0014fd88 lw s2, 0x48(sp) | s2 = *(var_48h);
0x0014fd8c lw s1, 0x44(sp) | s1 = *(var_44h);
0x0014fd90 lw s0, 0x40(sp) | s0 = *(var_40h);
0x0014fd94 addiu sp, sp, 0x60 |
0x0014fd98 jr ra | return v0;
| label_10:
0x0014fd9c lw t9, -0x7fb8(gp) | t9 = *((gp - 8174));
0x0014fda0 addiu a0, zero, 0x28 | a0 = 0x28;
0x0014fda4 addiu t8, zero, 0x34e | t8 = 0x34e;
| label_1:
0x0014fda8 lw a3, -0x7db0(gp) | a3 = *((gp - 8044));
0x0014fdac addiu a1, zero, 0x69 | a1 = 0x69;
0x0014fdb0 sw t8, 0x10(sp) | *(var_10h) = t8;
0x0014fdb4 addiu a2, zero, 0x69 | a2 = 0x69;
0x0014fdb8 addiu a3, a3, 0x18fc | a3 += 0x18fc;
0x0014fdbc jalr t9 | t9 ();
| label_2:
0x0014fdc0 addiu v0, zero, -1 | v0 = -1;
0x0014fdc4 b 0x14fd10 |
| } while (1);
| label_8:
0x0014fdc8 lw t8, 0x14(s0) | t8 = *((s0 + 5));
0x0014fdcc addiu a0, zero, 0x28 | a0 = 0x28;
0x0014fdd0 lw t9, -0x7fb8(gp) | t9 = *((gp - 8174));
0x0014fdd4 addiu a1, zero, 0x69 | a1 = 0x69;
0x0014fdd8 ori t8, t8, 1 | t8 |= 1;
0x0014fddc addiu a2, zero, 0x65 | a2 = 0x65;
0x0014fde0 sw t8, 0x14(s0) | *((s0 + 5)) = t8;
0x0014fde4 addiu t8, zero, 0x33f | t8 = 0x33f;
0x0014fde8 sw t8, 0x10(sp) | *(var_10h) = t8;
| do {
0x0014fdec lw a3, -0x7db0(gp) | a3 = *((gp - 8044));
0x0014fdf0 addiu a3, a3, 0x18fc | a3 += 0x18fc;
0x0014fdf4 jalr t9 | t9 ();
0x0014fdf8 addiu a0, zero, 5 | a0 = 5;
0x0014fdfc lw gp, 0x18(sp) | gp = *(var_18h);
0x0014fe00 move a2, s6 | a2 = s6;
0x0014fe04 sw s5, 0x10(sp) | *(var_10h) = s5;
0x0014fe08 lw t8, -0x7db0(gp) | t8 = *((gp - 8044));
0x0014fe0c lw a1, -0x7db0(gp) | a1 = *((gp - 8044));
0x0014fe10 lw a3, -0x7db0(gp) | a3 = *((gp - 8044));
0x0014fe14 addiu t8, t8, 0x178c | t8 += 0x178c;
0x0014fe18 lw t9, -0x73e8(gp) | t9 = *((gp - 7418));
0x0014fe1c addiu a1, a1, 0x1908 | a1 += 0x1908;
0x0014fe20 addiu a3, a3, 0x191c | a3 += 0x191c;
0x0014fe24 sw t8, 0x14(sp) | *(var_14h) = t8;
0x0014fe28 jalr t9 | t9 ();
0x0014fe2c addiu v0, zero, -1 | v0 = -1;
0x0014fe30 b 0x14fd10 | goto label_0;
| label_9:
0x0014fe34 lw t8, 0x14(s0) | t8 = *((s0 + 5));
0x0014fe38 lw t9, -0x7fb8(gp) | t9 = *((gp - 8174));
0x0014fe3c addiu a1, zero, 0x69 | a1 = 0x69;
0x0014fe40 ori t8, t8, 1 | t8 |= 1;
0x0014fe44 addiu a2, zero, 0x64 | a2 = 0x64;
0x0014fe48 sw t8, 0x14(s0) | *((s0 + 5)) = t8;
0x0014fe4c addiu t8, zero, 0x346 | t8 = 0x346;
0x0014fe50 sw t8, 0x10(sp) | *(var_10h) = t8;
0x0014fe54 b 0x14fdec |
| } while (1);
| label_6:
0x0014fe58 addiu a0, zero, 0x28 | a0 = 0x28;
0x0014fe5c addiu t8, zero, 0x35a | t8 = 0x35a;
0x0014fe60 b 0x14fda8 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/libcrypto.so.1.0.0 @ 0x1262a0 */
| #include <stdint.h>
|
; (fcn) sym.X509V3_EXT_i2d () | void X509V3_EXT_i2d () {
0x001262a0 lui gp, 0xa |
0x001262a4 addiu gp, gp, -0x6eb0 |
0x001262a8 addu gp, gp, t9 | gp += t9;
0x001262ac addiu sp, sp, -0x48 |
0x001262b0 sw ra, 0x44(sp) | *(var_44h) = ra;
0x001262b4 sw s5, 0x40(sp) | *(var_40h) = s5;
0x001262b8 sw s4, 0x3c(sp) | *(var_3ch) = s4;
0x001262bc sw s3, 0x38(sp) | *(var_38h) = s3;
0x001262c0 sw s2, 0x34(sp) | *(var_34h) = s2;
0x001262c4 sw s1, 0x30(sp) | *(var_30h) = s1;
0x001262c8 sw s0, 0x2c(sp) | *(var_2ch) = s0;
0x001262cc move s4, a0 | s4 = a0;
0x001262d0 lw t9, -0x65d0(gp) | t9 = *((gp - 6516));
0x001262d4 move s3, a1 | s3 = a1;
0x001262d8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x001262dc move s2, a2 | s2 = a2;
0x001262e0 jalr t9 | t9 ();
0x001262e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x001262e8 move s0, v0 | s0 = v0;
| if (v0 == 0) {
0x001262ec beqz v0, 0x126438 | goto label_1;
| }
0x001262f0 lw a2, 8(v0) | a2 = *((v0 + 2));
0x001262f4 lw t9, -0x78e8(gp) | t9 = *(gp);
| if (a2 == 0) {
0x001262f8 beqz a2, 0x126394 | goto label_2;
| }
0x001262fc move a0, s2 | a0 = s2;
0x00126300 addiu a1, sp, 0x24 | a1 = sp + 0x24;
0x00126304 sw zero, 0x24(sp) | *(var_24h) = 0;
0x00126308 jalr t9 | t9 ();
0x0012630c lw gp, 0x18(sp) | gp = *(var_18h);
0x00126310 move s1, v0 | s1 = v0;
| if (v0 < 0) {
0x00126314 bltz v0, 0x1263ec | goto label_3;
| }
| do {
0x00126318 lw t9, -0x78b4(gp) | t9 = *(gp);
0x0012631c addiu a0, zero, 4 | a0 = 4;
0x00126320 jalr t9 | t9 ();
0x00126324 lw gp, 0x18(sp) | gp = *(var_18h);
0x00126328 move s0, v0 | s0 = v0;
| if (v0 == 0) {
0x0012632c beqz v0, 0x1263ec | goto label_3;
| }
0x00126330 lw t8, 0x24(sp) | t8 = *(var_24h);
0x00126334 move a0, zero | a0 = 0;
0x00126338 lw t9, -0x65c4(gp) | t9 = *((gp - 6513));
0x0012633c move a1, s4 | a1 = s4;
0x00126340 sw s1, (v0) | *(v0) = s1;
0x00126344 move a2, s3 | a2 = s3;
0x00126348 sw t8, 8(v0) | *((v0 + 2)) = t8;
0x0012634c move a3, v0 | a3 = v0;
0x00126350 jalr t9 | t9 ();
0x00126354 lw gp, 0x18(sp) | gp = *(var_18h);
0x00126358 move s1, v0 | s1 = v0;
| if (v0 == 0) {
0x0012635c beqz v0, 0x1263ec | goto label_3;
| }
0x00126360 lw t9, -0x7788(gp) | t9 = *((gp - 7650));
0x00126364 move a0, s0 | a0 = s0;
0x00126368 jalr t9 | t9 ();
0x0012636c move v0, s1 | v0 = s1;
| label_0:
0x00126370 lw ra, 0x44(sp) | ra = *(var_44h);
0x00126374 lw s5, 0x40(sp) | s5 = *(var_40h);
0x00126378 lw s4, 0x3c(sp) | s4 = *(var_3ch);
0x0012637c lw s3, 0x38(sp) | s3 = *(var_38h);
0x00126380 lw s2, 0x34(sp) | s2 = *(var_34h);
0x00126384 lw s1, 0x30(sp) | s1 = *(var_30h);
0x00126388 lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x0012638c addiu sp, sp, 0x48 |
0x00126390 jr ra | return v0;
| label_2:
0x00126394 lw t9, 0x18(v0) | t9 = *((v0 + 6));
0x00126398 move a0, s2 | a0 = s2;
0x0012639c move a1, zero | a1 = 0;
0x001263a0 jalr t9 | t9 ();
0x001263a4 addiu a2, zero, 0xc3 | a2 = 0xc3;
0x001263a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x001263ac move a0, v0 | a0 = v0;
0x001263b0 move s1, v0 | s1 = v0;
0x001263b4 lw s5, -0x7db0(gp) | s5 = *((gp - 8044));
0x001263b8 lw t9, -0x7f8c(gp) | t9 = *((gp - 8163));
0x001263bc addiu a1, s5, -0x2024 | a1 = s5 + -0x2024;
0x001263c0 jalr t9 | t9 ();
0x001263c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x001263c8 sw v0, 0x24(sp) | *(var_24h) = v0;
| if (v0 == 0) {
0x001263cc beqz v0, 0x1263f0 | goto label_4;
| }
0x001263d0 lw t9, 0x18(s0) | t9 = *((s0 + 6));
0x001263d4 move a0, s2 | a0 = s2;
0x001263d8 sw v0, 0x20(sp) | *(var_20h) = v0;
0x001263dc addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x001263e0 jalr t9 | t9 ();
0x001263e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x001263e8 b 0x126318 |
| } while (1);
| label_3:
0x001263ec lw s5, -0x7db0(gp) | s5 = *((gp - 8044));
| label_4:
0x001263f0 lw t9, -0x7fb8(gp) | t9 = *((gp - 8174));
0x001263f4 addiu t8, zero, 0xd5 | t8 = 0xd5;
0x001263f8 addiu a3, s5, -0x2024 | a3 = s5 + -0x2024;
0x001263fc addiu a0, zero, 0x22 | a0 = 0x22;
0x00126400 addiu a1, zero, 0x87 | a1 = 0x87;
0x00126404 addiu a2, zero, 0x41 | a2 = 0x41;
0x00126408 sw t8, 0x10(sp) | *(var_10h) = t8;
0x0012640c jalr t9 | t9 ();
0x00126410 move v0, zero | v0 = 0;
0x00126414 lw ra, 0x44(sp) | ra = *(var_44h);
0x00126418 lw s5, 0x40(sp) | s5 = *(var_40h);
0x0012641c lw s4, 0x3c(sp) | s4 = *(var_3ch);
0x00126420 lw s3, 0x38(sp) | s3 = *(var_38h);
0x00126424 lw s2, 0x34(sp) | s2 = *(var_34h);
0x00126428 lw s1, 0x30(sp) | s1 = *(var_30h);
0x0012642c lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x00126430 addiu sp, sp, 0x48 |
0x00126434 jr ra | return v0;
| label_1:
0x00126438 lw a3, -0x7db0(gp) | a3 = *((gp - 8044));
0x0012643c addiu t8, zero, 0xe0 | t8 = 0xe0;
0x00126440 lw t9, -0x7fb8(gp) | t9 = *((gp - 8174));
0x00126444 addiu a0, zero, 0x22 | a0 = 0x22;
0x00126448 sw t8, 0x10(sp) | *(var_10h) = t8;
0x0012644c addiu a1, zero, 0x88 | a1 = 0x88;
0x00126450 addiu a2, zero, 0x81 | a2 = 0x81;
0x00126454 addiu a3, a3, -0x2024 | a3 += -0x2024;
0x00126458 jalr t9 | t9 ();
0x0012645c move v0, zero | v0 = 0;
0x00126460 b 0x126370 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/libcrypto.so.1.0.0 @ 0xeee80 */
| #include <stdint.h>
|
; (fcn) sym.X509_PUBKEY_set () | void X509_PUBKEY_set () {
0x000eee80 lui gp, 0xd |
0x000eee84 addiu gp, gp, 0x570 |
0x000eee88 addu gp, gp, t9 | gp += t9;
0x000eee8c addiu sp, sp, -0x30 |
0x000eee90 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000eee94 sw s2, 0x28(sp) | *(var_28h) = s2;
0x000eee98 sw s1, 0x24(sp) | *(var_24h) = s1;
0x000eee9c sw s0, 0x20(sp) | *(var_20h) = s0;
0x000eeea0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000eeea4 move s1, a0 | s1 = a0;
| if (a0 != 0) {
0x000eeea8 beqz a0, 0xeef24 |
0x000eeeac lw t9, -0x6cd4(gp) | t9 = *((gp - 6965));
0x000eeeb0 move s2, a1 | s2 = a1;
0x000eeeb4 jalr t9 | t9 ();
0x000eeeb8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000eeebc move s0, v0 | s0 = v0;
| if (v0 == 0) {
0x000eeec0 beqz v0, 0xeef24 | goto label_1;
| }
0x000eeec4 lw t8, 0xc(s2) | t8 = *((s2 + 3));
0x000eeec8 lw a3, -0x7db0(gp) | a3 = *((gp - 8044));
| if (t8 == 0) {
0x000eeecc beqz t8, 0xeefb4 | goto label_2;
| }
0x000eeed0 lw t9, 0x18(t8) | t9 = *((t8 + 6));
0x000eeed4 addiu t8, zero, 0x6b | t8 = 0x6b;
| if (t9 == 0) {
0x000eeed8 beqz t9, 0xeef90 | goto label_3;
| }
0x000eeedc move a0, v0 | a0 = v0;
0x000eeee0 move a1, s2 | a1 = s2;
0x000eeee4 jalr t9 | t9 ();
0x000eeee8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000eeeec beqz v0, 0xeef40 | goto label_4;
| }
0x000eeef0 lw a0, (s1) | a0 = *(s1);
0x000eeef4 lw t9, -0x6cd0(gp) | t9 = *(gp);
| if (a0 != 0) {
0x000eeef8 beqz a0, 0xeef04 |
0x000eeefc jalr t9 | t9 ();
0x000eef00 nop |
| }
0x000eef04 sw s0, (s1) | *(s1) = s0;
0x000eef08 addiu v0, zero, 1 | v0 = 1;
0x000eef0c lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000eef10 lw s2, 0x28(sp) | s2 = *(var_28h);
0x000eef14 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000eef18 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000eef1c addiu sp, sp, 0x30 |
0x000eef20 jr ra | return v0;
| }
| label_1:
0x000eef24 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000eef28 move v0, zero | v0 = 0;
0x000eef2c lw s2, 0x28(sp) | s2 = *(var_28h);
0x000eef30 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000eef34 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000eef38 addiu sp, sp, 0x30 |
0x000eef3c jr ra | return v0;
| label_4:
0x000eef40 lw a3, -0x7db0(gp) | a3 = *((gp - 8044));
0x000eef44 addiu t8, zero, 0x67 | t8 = 0x67;
0x000eef48 lw t9, -0x7fb8(gp) | t9 = *((gp - 8174));
0x000eef4c addiu a0, zero, 0xb | a0 = 0xb;
0x000eef50 sw t8, 0x10(sp) | *(var_10h) = t8;
0x000eef54 addiu a1, zero, 0x78 | a1 = 0x78;
0x000eef58 addiu a2, zero, 0x7e | a2 = 0x7e;
0x000eef5c addiu a3, a3, -0x68d4 | a3 += -0x68d4;
0x000eef60 jalr t9 | t9 ();
0x000eef64 lw gp, 0x18(sp) | gp = *(var_18h);
| do {
| label_0:
0x000eef68 lw t9, -0x6cd0(gp) | t9 = *(gp);
0x000eef6c move a0, s0 | a0 = s0;
0x000eef70 jalr t9 | t9 ();
0x000eef74 move v0, zero | v0 = 0;
0x000eef78 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000eef7c lw s2, 0x28(sp) | s2 = *(var_28h);
0x000eef80 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000eef84 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000eef88 addiu sp, sp, 0x30 |
0x000eef8c jr ra | return v0;
| label_3:
0x000eef90 lw t9, -0x7fb8(gp) | t9 = *((gp - 8174));
0x000eef94 addiu a0, zero, 0xb | a0 = 0xb;
0x000eef98 sw t8, 0x10(sp) | *(var_10h) = t8;
0x000eef9c addiu a1, zero, 0x78 | a1 = 0x78;
0x000eefa0 addiu a2, zero, 0x7c | a2 = 0x7c;
0x000eefa4 addiu a3, a3, -0x68d4 | a3 += -0x68d4;
0x000eefa8 jalr t9 | t9 ();
0x000eefac lw gp, 0x18(sp) | gp = *(var_18h);
0x000eefb0 b 0xeef68 |
| } while (1);
| label_2:
0x000eefb4 addiu t8, zero, 0x6f | t8 = 0x6f;
0x000eefb8 lw t9, -0x7fb8(gp) | t9 = *((gp - 8174));
0x000eefbc addiu a0, zero, 0xb | a0 = 0xb;
0x000eefc0 sw t8, 0x10(sp) | *(var_10h) = t8;
0x000eefc4 addiu a1, zero, 0x78 | a1 = 0x78;
0x000eefc8 addiu a2, zero, 0x6f | a2 = 0x6f;
0x000eefcc addiu a3, a3, -0x68d4 | a3 += -0x68d4;
0x000eefd0 jalr t9 | t9 ();
0x000eefd4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000eefd8 b 0xeef68 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/libcrypto.so.1.0.0 @ 0xef8cc */
| #include <stdint.h>
|
; (fcn) sym.X509_PUBKEY_set0_param () | void X509_PUBKEY_set0_param () {
0x000ef8cc lui gp, 0xd |
0x000ef8d0 addiu gp, gp, -0x4dc |
0x000ef8d4 addu gp, gp, t9 | gp += t9;
0x000ef8d8 addiu sp, sp, -0x28 |
0x000ef8dc sw ra, 0x24(sp) | *(var_24h) = ra;
0x000ef8e0 sw s1, 0x20(sp) | *(var_20h) = s1;
0x000ef8e4 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000ef8e8 move s0, a0 | s0 = a0;
0x000ef8ec lw t9, -0x7850(gp) | t9 = *((gp - 7700));
0x000ef8f0 lw a0, (a0) | a0 = *(a0);
0x000ef8f4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000ef8f8 lw s1, 0x38(sp) | s1 = *(arg_38h);
0x000ef8fc jalr t9 | t9 ();
0x000ef900 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000ef904 beqz v0, 0xef950 |
0x000ef908 addiu v0, zero, 1 | v0 = 1;
| if (s1 == 0) {
0x000ef90c beqz s1, 0xef950 | goto label_0;
| }
0x000ef910 lw t8, 4(s0) | t8 = *((s0 + 1));
0x000ef914 lw a0, 8(t8) | a0 = *((t8 + 2));
0x000ef918 lw t9, -0x7fbc(gp) | t9 = *(gp);
| if (a0 != 0) {
0x000ef91c beqz a0, 0xef92c |
0x000ef920 jalr t9 | t9 ();
0x000ef924 nop |
0x000ef928 lw t8, 4(s0) | t8 = *((s0 + 1));
| }
0x000ef92c lw a0, 0xc(t8) | a0 = *((t8 + 3));
0x000ef930 addiu v1, zero, -0x10 | v1 = -0x10;
0x000ef934 sw s1, 8(t8) | *((t8 + 8)) = s1;
0x000ef938 addiu v0, zero, 1 | v0 = 1;
0x000ef93c and v1, a0, v1 | v1 = a0 & v1;
0x000ef940 lw a0, 0x3c(sp) | a0 = *(arg_3ch);
0x000ef944 ori v1, v1, 8 | v1 |= 8;
0x000ef948 sw a0, (t8) | *(t8) = a0;
0x000ef94c sw v1, 0xc(t8) | *((t8 + 12)) = v1;
| }
| label_0:
0x000ef950 lw ra, 0x24(sp) | ra = *(var_24h);
0x000ef954 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000ef958 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000ef95c addiu sp, sp, 0x28 |
0x000ef960 jr ra | return v1;
| }
[*] Function mmap used 1 times libcrypto.so.1.0.0