[*] Binary protection state of axisns
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function system tear down of axisns
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/axisns @ 0x32f8 */
| #include <stdint.h>
|
; (fcn) fcn.000032f8 () | void fcn_000032f8 () {
0x000032f8 lui gp, 2 |
0x000032fc addiu gp, gp, -0x2d8 |
0x00003300 addu gp, gp, t9 | gp += t9;
0x00003304 addiu sp, sp, -0x128 |
0x00003308 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x0000330c sw s0, 0x120(sp) | *(var_120h) = s0;
0x00003310 lw s0, -0x7e40(gp) | s0 = *((gp - 8080));
0x00003314 lw t9, -0x7f1c(gp) | t9 = sym.imp.strcmp;
0x00003318 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x0000331c lw v0, (s0) | v0 = *(s0);
0x00003320 sw ra, 0x124(sp) | *(var_124h) = ra;
0x00003324 addiu a1, a1, -0x7418 | a1 += -0x7418;
0x00003328 sw v0, 0x11c(sp) | *(var_11ch) = v0;
0x0000332c jalr t9 | t9 ();
0x00003330 nop |
0x00003334 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00003338 addiu a0, sp, 0x1c | a0 = sp + 0x1c;
| if (v0 != 0) {
0x0000333c bnez v0, 0x33b8 | goto label_2;
| }
0x00003340 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00003344 move v1, a0 | v1 = a0;
0x00003348 addiu v0, v0, -0x740c | v0 += -0x740c;
0x0000334c addiu t1, v0, 0x90 | t1 = v0 + 0x90;
| do {
0x00003350 lw t0, (v0) | t0 = *(v0);
0x00003354 lw a3, 4(v0) | a3 = *((v0 + 1));
0x00003358 lw a2, 8(v0) | a2 = *((v0 + 2));
0x0000335c lw a1, 0xc(v0) | a1 = *((v0 + 3));
0x00003360 addiu v0, v0, 0x10 | v0 += 0x10;
0x00003364 sw t0, (v1) | *(v1) = t0;
0x00003368 sw a3, 4(v1) | *((v1 + 1)) = a3;
0x0000336c sw a2, 8(v1) | *((v1 + 2)) = a2;
0x00003370 sw a1, 0xc(v1) | *((v1 + 3)) = a1;
0x00003374 addiu v1, v1, 0x10 | v1 += 0x10;
0x00003378 bne v0, t1, 0x3350 |
| } while (v0 != t1);
0x0000337c lw a1, (v0) | a1 = *(v0);
0x00003380 lw v0, 4(v0) | v0 = *((v0 + 1));
0x00003384 sw a1, (v1) | *(v1) = a1;
0x00003388 sw v0, 4(v1) | *((v1 + 1)) = v0;
| label_0:
0x0000338c lw t9, -0x7d80(gp) | t9 = sym.imp.system
0x00003390 jalr t9 | t9 ();
0x00003394 nop |
0x00003398 lw v1, 0x11c(sp) | v1 = *(var_11ch);
0x0000339c lw v0, (s0) | v0 = *(s0);
0x000033a0 lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (v1 != v0) {
0x000033a4 bne v1, v0, 0x3418 | goto label_3;
| }
0x000033a8 lw ra, 0x124(sp) | ra = *(var_124h);
0x000033ac lw s0, 0x120(sp) | s0 = *(var_120h);
0x000033b0 addiu sp, sp, 0x128 |
0x000033b4 jr ra | return v1;
| label_2:
0x000033b8 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x000033bc move v1, a0 | v1 = a0;
0x000033c0 addiu v0, v0, -0x7374 | v0 += -0x7374;
0x000033c4 addiu t1, v0, 0x90 | t1 = v0 + 0x90;
| do {
0x000033c8 lw t0, (v0) | t0 = *(v0);
0x000033cc lw a3, 4(v0) | a3 = *((v0 + 1));
0x000033d0 lw a2, 8(v0) | a2 = *((v0 + 2));
0x000033d4 lw a1, 0xc(v0) | a1 = *((v0 + 3));
0x000033d8 addiu v0, v0, 0x10 | v0 += 0x10;
0x000033dc sw t0, (v1) | *(v1) = t0;
0x000033e0 sw a3, 4(v1) | *((v1 + 1)) = a3;
0x000033e4 sw a2, 8(v1) | *((v1 + 2)) = a2;
0x000033e8 sw a1, 0xc(v1) | *((v1 + 3)) = a1;
0x000033ec addiu v1, v1, 0x10 | v1 += 0x10;
0x000033f0 bne v0, t1, 0x33c8 |
| } while (v0 != t1);
0x000033f4 lw a3, (v0) | a3 = *(v0);
0x000033f8 lw a2, 4(v0) | a2 = *((v0 + 1));
0x000033fc lhu a1, 8(v0) | a1 = *((v0 + 4));
0x00003400 lbu v0, 0xa(v0) | v0 = *((v0 + 10));
0x00003404 sw a3, (v1) | *(v1) = a3;
0x00003408 sw a2, 4(v1) | *((v1 + 1)) = a2;
0x0000340c sh a1, 8(v1) | *((v1 + 4)) = a1;
0x00003410 sb v0, 0xa(v1) | *((v1 + 10)) = v0;
0x00003414 b 0x338c | goto label_0;
| label_3:
0x00003418 lw t9, -0x7e80(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000341c jalr t9 | t9 ();
0x00003420 nop |
0x00003424 lui gp, 2 |
0x00003428 addiu gp, gp, -0x404 |
0x0000342c addu gp, gp, t9 | gp += t9;
0x00003430 addiu sp, sp, -0x20 |
0x00003434 addiu v0, zero, 0x10 | v0 = 0x10;
0x00003438 sw gp, 0x10(sp) | *(var_10h_3) = gp;
0x0000343c sw ra, 0x1c(sp) | *(var_1ch_3) = ra;
0x00003440 sw s0, 0x18(sp) | *(var_18h) = s0;
0x00003444 addiu v0, zero, 0x11 | v0 = 0x11;
| if (a0 == v0) {
0x00003448 beq a0, v0, 0x349c | goto label_4;
| }
0x0000344c lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
| if (a0 != v0) {
0x00003450 bne a0, v0, 0x346c | goto label_5;
| }
0x00003454 addiu v1, zero, 1 | v1 = 1;
0x00003458 sw v1, -0x4ff0(v0) | *((v0 - 5116)) = v1;
0x0000345c lw ra, 0x1c(sp) | ra = *(var_1ch_3);
| do {
| label_1:
0x00003460 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00003464 addiu sp, sp, 0x20 |
0x00003468 jr ra | return v1;
| label_5:
0x0000346c lw t9, -0x7e30(gp) | t9 = sym.imp.__libc_current_sigrtmin;
0x00003470 move s0, a0 | s0 = a0;
0x00003474 jalr t9 | t9 ();
0x00003478 lw gp, 0x10(sp) | gp = *(var_10h_3);
| if (v0 == s0) {
0x0000347c bne v0, s0, 0x34b8 |
0x00003480 lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
0x00003484 lw ra, 0x1c(sp) | ra = *(var_1ch_3);
0x00003488 addiu v1, zero, 1 | v1 = 1;
0x0000348c lw s0, 0x18(sp) | s0 = *(var_18h);
0x00003490 sw v1, -0x4880(v0) | *((v0 - 4640)) = v1;
0x00003494 addiu sp, sp, 0x20 |
0x00003498 jr ra | return v1;
| label_4:
0x0000349c lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
0x000034a0 lw ra, 0x1c(sp) | ra = *(var_1ch_3);
0x000034a4 addiu v1, zero, 1 | v1 = 1;
0x000034a8 lw s0, 0x18(sp) | s0 = *(var_18h);
0x000034ac sw v1, -0x4878(v0) | *((v0 - 4638)) = v1;
0x000034b0 addiu sp, sp, 0x20 |
0x000034b4 jr ra | return v1;
| }
0x000034b8 lw t9, -0x7e30(gp) | t9 = sym.imp.__libc_current_sigrtmin;
0x000034bc jalr t9 | t9 ();
0x000034c0 nop |
0x000034c4 addiu v0, v0, 1 | v0++;
0x000034c8 lw gp, 0x10(sp) | gp = *(var_10h_3);
| if (v0 != s0) {
0x000034cc bne v0, s0, 0x34e4 | goto label_6;
| }
0x000034d0 lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
0x000034d4 addiu v1, zero, 1 | v1 = 1;
0x000034d8 sw v1, -0x487c(v0) | *((v0 - 4639)) = v1;
0x000034dc lw ra, 0x1c(sp) | ra = *(var_1ch_3);
0x000034e0 b 0x3460 |
| } while (1);
| label_6:
0x000034e4 lw t9, -0x7e30(gp) | t9 = sym.imp.__libc_current_sigrtmin;
0x000034e8 jalr t9 | t9 ();
0x000034ec nop |
0x000034f0 addiu v0, v0, 2 | v0 += 2;
0x000034f4 lw gp, 0x10(sp) | gp = *(var_10h_3);
| if (v0 == s0) {
0x000034f8 bne v0, s0, 0x3510 |
0x000034fc lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
0x00003500 addiu v1, zero, 1 | v1 = 1;
0x00003504 sw v1, -0x4884(v0) | *((v0 - 4641)) = v1;
0x00003508 lw ra, 0x1c(sp) | ra = *(var_1ch_3);
0x0000350c b 0x3460 | goto label_1;
| }
0x00003510 lw t9, -0x7e30(gp) | t9 = sym.imp.__libc_current_sigrtmin;
0x00003514 jalr t9 | t9 ();
0x00003518 nop |
0x0000351c addiu v0, v0, 3 | v0 += 3;
0x00003520 lw gp, 0x10(sp) | gp = *(var_10h_3);
| if (v0 == s0) {
0x00003524 bne v0, s0, 0x353c |
0x00003528 lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
0x0000352c addiu v1, zero, 1 | v1 = 1;
0x00003530 sw v1, -0x4888(v0) | *((v0 - 4642)) = v1;
0x00003534 lw ra, 0x1c(sp) | ra = *(var_1ch_3);
0x00003538 b 0x3460 | goto label_1;
| }
0x0000353c lw t9, -0x7e30(gp) | t9 = sym.imp.__libc_current_sigrtmin;
0x00003540 jalr t9 | t9 ();
0x00003544 nop |
0x00003548 addiu v0, v0, 4 | v0 += 4;
0x0000354c lw gp, 0x10(sp) | gp = *(var_10h_3);
| if (s0 != v0) {
0x00003550 beq s0, v0, 0x3568 |
0x00003554 lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
0x00003558 addiu v1, zero, 1 | v1 = 1;
0x0000355c sw v1, -0x4874(v0) | *((v0 - 4637)) = v1;
0x00003560 lw ra, 0x1c(sp) | ra = *(var_1ch_3);
0x00003564 b 0x3460 | goto label_1;
| }
0x00003568 lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
0x0000356c addiu v1, zero, 1 | v1 = 1;
0x00003570 sw v1, -0x488c(v0) | *((v0 - 4643)) = v1;
0x00003574 lw ra, 0x1c(sp) | ra = *(var_1ch_3);
0x00003578 b 0x3460 | goto label_1;
| }
[*] Function system used 2 times axisns