[*] Binary protection state of libssl.so.1.1
Full RELRO No Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function strcat tear down of libssl.so.1.1
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libssl.so.1.1 @ 0x2a0a0 */
| #include <stdint.h>
|
; (fcn) sym.SSL_do_handshake () | void SSL_do_handshake () {
0x0002a0a0 lui gp, 6 |
0x0002a0a4 addiu gp, gp, -0x6250 |
0x0002a0a8 addu gp, gp, t9 | gp += t9;
0x0002a0ac addiu sp, sp, -0x40 |
0x0002a0b0 lw v0, 0x18(a0) | v0 = *((a0 + 6));
0x0002a0b4 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0002a0b8 sw ra, 0x3c(sp) | *(var_1ch) = ra;
0x0002a0bc sw s0, 0x38(sp) | *(var_18h) = s0;
0x0002a0c0 lw t9, -0x7c34(gp) | t9 = *((gp - 7949));
| if (v0 != 0) {
0x0002a0c4 bnez v0, 0x2a100 | goto label_3;
| }
0x0002a0c8 lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
0x0002a0cc addiu v0, zero, 0xdff | v0 = 0xdff;
0x0002a0d0 lw t9, -0x75e8(gp) | t9 = *((gp - 7546));
0x0002a0d4 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0002a0d8 addiu a3, a3, 0x3d70 | a3 += 0x3d70;
0x0002a0dc addiu a2, zero, 0x90 | a2 = 0x90;
0x0002a0e0 addiu a1, zero, 0xb4 | a1 = 0xb4;
0x0002a0e4 addiu a0, zero, 0x14 | a0 = 0x14;
0x0002a0e8 jalr t9 | t9 ();
0x0002a0ec addiu v0, zero, -1 | v0 = -1;
| label_1:
0x0002a0f0 lw ra, 0x3c(sp) | ra = *(var_1ch);
| do {
0x0002a0f4 lw s0, 0x38(sp) | s0 = *(var_18h);
0x0002a0f8 addiu sp, sp, 0x40 |
0x0002a0fc jr ra | return v0;
| label_3:
0x0002a100 move s0, a0 | s0 = a0;
0x0002a104 addiu a1, zero, -1 | a1 = -1;
0x0002a108 bal 0x40784 | fcn_00040784 ();
0x0002a10c lw v0, 4(s0) | v0 = *((s0 + 1));
0x0002a110 move a1, zero | a1 = 0;
0x0002a114 lw t9, 0x34(v0) | t9 = *((v0 + 13));
0x0002a118 move a0, s0 | a0 = s0;
0x0002a11c jalr t9 | t9 ();
0x0002a120 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0002a124 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x0002a128 move a0, s0 | a0 = s0;
0x0002a12c bal 0x3f9e8 | sym_SSL_in_init ();
0x0002a130 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0002a134 beqz v0, 0x2a180 | goto label_4;
| }
| label_0:
0x0002a138 lw v0, 0x4ec(s0) | v0 = *((s0 + 315));
0x0002a13c andi v0, v0, 0x100 | v0 &= aav.0x00000100;
0x0002a140 lw t9, -0x7214(gp) | t9 = *((gp - 7301));
| if (v0 == 0) {
0x0002a144 beqz v0, 0x2a19c | goto label_5;
| }
0x0002a148 jalr t9 | t9 ();
0x0002a14c nop |
0x0002a150 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x0002a154 bnez v0, 0x2a19c | goto label_5;
| }
0x0002a158 lw a2, -0x7db0(gp) | a2 = *((gp - 8044));
0x0002a15c lw t9, -0x7db0(gp) | t9 = *((gp - 8044));
0x0002a160 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0002a164 addiu a2, a2, 0x5488 | a2 += 0x5488;
0x0002a168 addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x0002a16c addiu t9, t9, 0x55ec | t9 += 0x55ec;
0x0002a170 move a0, s0 | a0 = s0;
0x0002a174 bal 0x255ec | fcn_000255ec ();
| label_2:
0x0002a178 lw ra, 0x3c(sp) | ra = *(var_1ch);
0x0002a17c b 0x2a0f4 |
| } while (1);
| label_4:
0x0002a180 lw t9, -0x7d70(gp) | t9 = *((gp - 8028));
0x0002a184 move a0, s0 | a0 = s0;
0x0002a188 bal 0x3fa18 | sym_SSL_in_before ();
0x0002a18c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x0002a190 bnez v0, 0x2a138 | goto label_0;
| }
0x0002a194 addiu v0, zero, 1 | v0 = 1;
0x0002a198 b 0x2a0f0 | goto label_1;
| label_5:
0x0002a19c lw t9, 0x18(s0) | t9 = *((s0 + 6));
0x0002a1a0 move a0, s0 | a0 = s0;
0x0002a1a4 jalr t9 | t9 ();
0x0002a1a8 b 0x2a178 | goto label_2;
0x0002a1ac nop |
| }
[*] Function strcat used 1 times libssl.so.1.1