[*] Binary protection state of libopkg.so.1.0.0
Full RELRO Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function mmap tear down of libopkg.so.1.0.0
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libopkg.so.1.0.0 @ 0x56f4 */
| #include <stdint.h>
|
; (fcn) entry.fini0 () | void entry_fini0 () {
0x000056f4 lui gp, 4 |
0x000056f8 addiu gp, gp, -0x2a4 |
0x000056fc addu gp, gp, t9 | gp += t9;
0x00005700 addiu sp, sp, -0x20 |
0x00005704 sw s0, 0x18(sp) | *(var_18h) = s0;
0x00005708 lw s0, -0x7fe4(gp) | s0 = *((gp - 8185));
0x0000570c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00005710 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x00005714 lbu v0, -0x2540(s0) | v0 = *((s0 - 9536));
0x00005718 lw v0, -0x79ec(gp) | v0 = *((gp - 7803));
| if (v0 == 0) {
0x0000571c bnez v0, 0x5750 |
0x00005720 lw v0, -0x7fe0(gp) | v0 = *((gp - 8184));
| if (v0 != 0) {
0x00005724 beqz v0, 0x5738 |
0x00005728 lw t9, -0x79ec(gp) | t9 = *((gp - 7803));
0x0000572c lw a0, (v0) | a0 = *(v0);
0x00005730 jalr t9 | t9 ();
0x00005734 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00005738 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x0000573c addiu t9, t9, 0x5670 | t9 += entry0;
0x00005740 bal 0x5670 | entry0 ();
0x00005744 nop |
0x00005748 addiu v0, zero, 1 | v0 = 1;
0x0000574c sb v0, -0x2540(s0) | *((s0 - 9536)) = v0;
| }
0x00005750 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x00005754 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00005758 addiu sp, sp, 0x20 |
0x0000575c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libopkg.so.1.0.0 @ 0x23508 */
| #include <stdint.h>
|
; (fcn) sym.internal_solver_solv () | void internal_solver_solv () {
0x00023508 lui gp, 2 |
0x0002350c addiu gp, gp, 0x1f48 |
0x00023510 addu gp, gp, t9 | gp += t9;
0x00023514 addiu sp, sp, -0x50 |
0x00023518 addiu v0, zero, 2 | v0 = 2;
0x0002351c sw gp, 0x20(sp) | *(var_20h) = gp;
0x00023520 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x00023524 sw fp, 0x48(sp) | *(var_48h) = fp;
0x00023528 sw s7, 0x44(sp) | *(var_44h) = s7;
0x0002352c sw s6, 0x40(sp) | *(var_40h) = s6;
0x00023530 sw s5, 0x3c(sp) | *(var_3ch) = s5;
0x00023534 sw s4, 0x38(sp) | *(var_38h) = s4;
0x00023538 sw s3, 0x34(sp) | *(var_34h) = s3;
0x0002353c sw s2, 0x30(sp) | *(var_30h) = s2;
0x00023540 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x00023544 sw s0, 0x28(sp) | *(var_28h) = s0;
0x00023548 move s3, a0 | s3 = a0;
| if (a0 == v0) {
0x0002354c beq a0, v0, 0x238f4 | goto label_10;
| }
0x00023550 lw v0, 0x18(a1) | v0 = *((a1 + 6));
0x00023554 move s0, a1 | s0 = a1;
0x00023558 move s5, a2 | s5 = a2;
0x0002355c move s4, a3 | s4 = a3;
0x00023560 lw s1, -0x7a54(gp) | s1 = *((gp - 7829));
| if (v0 == 0) {
0x00023564 beqz v0, 0x23720 | goto label_11;
| }
| label_5:
0x00023568 lw v1, 0x3c(s0) | v1 = *((s0 + 15));
0x0002356c addiu v0, zero, 4 | v0 = 4;
0x00023570 lw t9, -0x79d8(gp) | t9 = *((gp - 7798));
| if (v1 == v0) {
0x00023574 bne v1, v0, 0x23588 |
0x00023578 lw v0, (s1) | v0 = *(s1);
0x0002357c lw v0, 0xc4(v0) | v0 = *((v0 + 49));
| if (v0 == 0) {
0x00023580 beql v0, zero, 0x23730 | goto label_12;
| }
0x00023584 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
| }
0x00023588 lw a0, (s0) | a0 = *(s0);
0x0002358c jalr t9 | t9 ();
0x00023590 move s2, v0 | s2 = v0;
0x00023594 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00023598 beqz v0, 0x235ec | goto label_13;
| }
0x0002359c lw t9, -0x7fa8(gp) | t9 = *((gp - 8170));
0x000235a0 move a1, v0 | a1 = v0;
0x000235a4 move a0, s0 | a0 = s0;
0x000235a8 jalr t9 | t9 ();
0x000235ac lw v1, (s1) | v1 = *(s1);
0x000235b0 move s6, v0 | s6 = v0;
0x000235b4 lw v0, 0xe4(v1) | v0 = *((v1 + 57));
0x000235b8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000235bc beqz v0, 0x237a8 | goto label_14;
| }
| if (s6 == 0) {
| label_6:
0x000235c0 beql s6, zero, 0x235e4 | goto label_15;
| }
0x000235c4 addiu v0, zero, 1 | v0 = 1;
0x000235c8 lw v0, (s1) | v0 = *(s1);
| if (s6 >= 0) {
0x000235cc bgez s6, 0x23714 | goto label_16;
| }
0x000235d0 lw v1, 0x8c(v0) | v1 = *((v0 + 35));
0x000235d4 lw v1, 0x18(s2) | v1 = *((s2 + 6));
| if (v1 == 0) {
0x000235d8 bnel v1, zero, 0x23718 | goto label_17;
| }
| do {
| label_1:
0x000235dc addiu s1, zero, -1 | s1 = -1;
0x000235e0 b 0x23648 | goto label_9;
| label_15:
0x000235e4 lw ra, 0x4c(sp) | ra = *(var_4ch);
| if (s3 != v0) {
0x000235e8 bne s3, v0, 0x236a8 | goto label_18;
| }
| label_13:
0x000235ec lw v0, (s1) | v0 = *(s1);
| label_4:
0x000235f0 lw v1, 0x78(v0) | v1 = *((v0 + 30));
0x000235f4 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
| if (v1 != 0) {
0x000235f8 beqz v1, 0x2367c |
0x000235fc lw v1, 0xc4(v0) | v1 = *((v0 + 49));
0x00023600 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
| if (v1 == 0) {
0x00023604 beqz v1, 0x236dc | goto label_19;
| }
0x00023608 lw s1, 0xe4(v0) | s1 = *((v0 + 57));
| label_0:
0x0002360c lw ra, 0x4c(sp) | ra = *(var_4ch);
| if (s1 != 0) {
0x00023610 bnez s1, 0x236a8 | goto label_18;
| }
| label_2:
0x00023614 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
| if (s2 != 0) {
0x00023618 beqz s2, 0x23634 |
0x0002361c lw a2, 0x60(sp) | a2 = *(arg_60h);
0x00023620 move a1, s2 | a1 = s2;
0x00023624 addiu t9, t9, 0x29a0 | t9 += 0x29a0;
0x00023628 move a0, s0 | a0 = s0;
0x0002362c bal 0x229a0 | fcn_000229a0 ();
0x00023630 lw gp, 0x20(sp) | gp = *(var_20h);
| }
0x00023634 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00023638 move a1, s4 | a1 = s4;
0x0002363c addiu t9, t9, 0x2554 | t9 += 0x2554;
0x00023640 move a0, s0 | a0 = s0;
0x00023644 bal 0x22554 | fcn_00022554 ();
| label_9:
0x00023648 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x0002364c move v0, s1 | v0 = s1;
0x00023650 lw fp, 0x48(sp) | fp = *(var_48h);
0x00023654 lw s7, 0x44(sp) | s7 = *(var_44h);
0x00023658 lw s6, 0x40(sp) | s6 = *(var_40h);
0x0002365c lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x00023660 lw s4, 0x38(sp) | s4 = *(var_38h);
0x00023664 lw s3, 0x34(sp) | s3 = *(var_34h);
0x00023668 lw s2, 0x30(sp) | s2 = *(var_30h);
0x0002366c lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00023670 lw s0, 0x28(sp) | s0 = *(var_28h);
0x00023674 addiu sp, sp, 0x50 |
0x00023678 jr ra | return v0;
| }
0x0002367c addiu t9, t9, 0x2454 | t9 += 0x2454;
0x00023680 move a0, s0 | a0 = s0;
0x00023684 bal 0x22454 | fcn_00022454 ();
0x00023688 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002368c bnez v0, 0x235dc |
| } while (v0 != 0);
0x00023690 lw v0, (s1) | v0 = *(s1);
0x00023694 lw v1, 0xc4(v0) | v1 = *((v0 + 49));
0x00023698 lw s1, 0xe4(v0) | s1 = *((v0 + 57));
| if (v1 == 0) {
0x0002369c bnel v1, zero, 0x2360c | goto label_0;
| }
0x000236a0 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x000236a4 b 0x236dc | goto label_19;
| label_18:
0x000236a8 move s1, zero | s1 = 0;
| label_3:
0x000236ac move v0, s1 | v0 = s1;
0x000236b0 lw fp, 0x48(sp) | fp = *(var_48h);
0x000236b4 lw s7, 0x44(sp) | s7 = *(var_44h);
0x000236b8 lw s6, 0x40(sp) | s6 = *(var_40h);
0x000236bc lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x000236c0 lw s4, 0x38(sp) | s4 = *(var_38h);
0x000236c4 lw s3, 0x34(sp) | s3 = *(var_34h);
0x000236c8 lw s2, 0x30(sp) | s2 = *(var_30h);
0x000236cc lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x000236d0 lw s0, 0x28(sp) | s0 = *(var_28h);
0x000236d4 addiu sp, sp, 0x50 |
0x000236d8 jr ra | return v0;
| label_19:
0x000236dc lw a3, 0x60(sp) | a3 = *(arg_60h);
0x000236e0 move a2, s4 | a2 = s4;
0x000236e4 move a1, s5 | a1 = s5;
0x000236e8 addiu t9, t9, 0x2c50 | t9 += 0x2c50;
0x000236ec move a0, s0 | a0 = s0;
0x000236f0 bal 0x22c50 | fcn_00022c50 ();
0x000236f4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x000236f8 bnez v0, 0x235dc | goto label_1;
| }
0x000236fc lw v0, (s1) | v0 = *(s1);
0x00023700 lw s1, 0xe4(v0) | s1 = *((v0 + 57));
0x00023704 lw ra, 0x4c(sp) | ra = *(var_4ch);
| if (s1 == 0) {
0x00023708 beqz s1, 0x23614 | goto label_2;
| }
0x0002370c move s1, zero | s1 = 0;
0x00023710 b 0x236ac | goto label_3;
| label_16:
0x00023714 lw v1, 0x18(s2) | v1 = *((s2 + 6));
| label_17:
0x00023718 sw v1, 0x18(s0) | *((s0 + 6)) = v1;
0x0002371c b 0x235f0 | goto label_4;
| label_11:
0x00023720 lw v0, (s1) | v0 = *(s1);
0x00023724 lw v0, 0x3c(v0) | v0 = *((v0 + 15));
0x00023728 sw v0, 0x18(a1) | *((a1 + 6)) = v0;
0x0002372c b 0x23568 | goto label_5;
| label_12:
0x00023730 lw a3, 0x60(sp) | a3 = *(arg_60h);
0x00023734 move a2, s4 | a2 = s4;
0x00023738 move a1, s5 | a1 = s5;
0x0002373c addiu t9, t9, 0x2c50 | t9 += 0x2c50;
0x00023740 move a0, s0 | a0 = s0;
0x00023744 bal 0x22c50 | fcn_00022c50 ();
0x00023748 move s1, v0 | s1 = v0;
0x0002374c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00023750 bnez v0, 0x235dc | goto label_1;
| }
0x00023754 lw v0, 0x18(s0) | v0 = *((s0 + 6));
0x00023758 lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
0x0002375c lw t9, -0x79d4(gp) | t9 = *((gp - 7797));
0x00023760 lw a3, (v0) | a3 = *(v0);
0x00023764 lw a2, (s0) | a2 = *(s0);
0x00023768 addiu a1, a1, -0x3b50 | a1 += -0x3b50;
0x0002376c addiu a0, zero, 1 | a0 = 1;
0x00023770 jalr t9 | t9 ();
0x00023774 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x00023778 move v0, s1 | v0 = s1;
0x0002377c lw fp, 0x48(sp) | fp = *(var_48h);
0x00023780 lw s7, 0x44(sp) | s7 = *(var_44h);
0x00023784 lw s6, 0x40(sp) | s6 = *(var_40h);
0x00023788 lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x0002378c lw s4, 0x38(sp) | s4 = *(var_38h);
0x00023790 lw s3, 0x34(sp) | s3 = *(var_34h);
0x00023794 lw s2, 0x30(sp) | s2 = *(var_30h);
0x00023798 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x0002379c lw s0, 0x28(sp) | s0 = *(var_28h);
0x000237a0 addiu sp, sp, 0x50 |
0x000237a4 jr ra | return v0;
| label_14:
0x000237a8 lw t9, -0x7ce4(gp) | t9 = *((gp - 7993));
0x000237ac move a0, s2 | a0 = s2;
0x000237b0 jalr t9 | t9 ();
0x000237b4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000237b8 move a0, s0 | a0 = s0;
0x000237bc lw t9, -0x7ce4(gp) | t9 = *((gp - 7993));
0x000237c0 move fp, v0 | fp = v0;
0x000237c4 jalr t9 | t9 ();
0x000237c8 move s7, v0 | s7 = v0;
0x000237cc lw gp, 0x20(sp) | gp = *(var_20h);
| if (s6 < 0) {
0x000237d0 bltz s6, 0x23850 | goto label_20;
| }
| if (s6 == 0) {
0x000237d4 beql s6, zero, 0x23888 | goto label_21;
| }
0x000237d8 lw v0, 0x18(s2) | v0 = *((s2 + 6));
0x000237dc lw t9, -0x7ec8(gp) | t9 = *((gp - 8114));
0x000237e0 move a1, s2 | a1 = s2;
0x000237e4 move a0, s0 | a0 = s0;
0x000237e8 jalr t9 | t9 ();
0x000237ec lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000237f0 beqz v0, 0x238bc | goto label_22;
| }
0x000237f4 lw v0, 0x18(s2) | v0 = *((s2 + 6));
0x000237f8 lw a2, -0x7fd4(gp) | a2 = *((gp - 8181));
0x000237fc lw t9, -0x79d4(gp) | t9 = *((gp - 7797));
0x00023800 lw v0, (v0) | v0 = *(v0);
0x00023804 lw a3, (s0) | a3 = *(s0);
0x00023808 addiu a2, a2, -0x3ae8 | a2 += -0x3ae8;
0x0002380c sw v0, 0x18(sp) | *(var_18h) = v0;
0x00023810 sw s7, 0x14(sp) | *(var_14h) = s7;
0x00023814 sw fp, 0x10(sp) | *(var_10h) = fp;
| do {
0x00023818 lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
0x0002381c addiu a0, zero, 1 | a0 = 1;
0x00023820 addiu a1, a1, -0x3b28 | a1 += -0x3b28;
0x00023824 jalr t9 | t9 ();
0x00023828 lw gp, 0x20(sp) | gp = *(var_20h);
| label_7:
0x0002382c lw t9, -0x7a78(gp) | t9 = *(gp);
0x00023830 move a0, fp | a0 = fp;
0x00023834 jalr t9 | t9 ();
0x00023838 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002383c lw t9, -0x7a78(gp) | t9 = *(gp);
0x00023840 move a0, s7 | a0 = s7;
0x00023844 jalr t9 | t9 ();
0x00023848 lw gp, 0x20(sp) | gp = *(var_20h);
0x0002384c b 0x235c0 | goto label_6;
| label_20:
0x00023850 lw v0, (s1) | v0 = *(s1);
0x00023854 lw v0, 0x8c(v0) | v0 = *((v0 + 35));
0x00023858 lw a2, -0x7fd4(gp) | a2 = *((gp - 8181));
| if (v0 == 0) {
0x0002385c bnel v0, zero, 0x238b4 | goto label_23;
| }
0x00023860 lw a2, -0x7fd4(gp) | a2 = *((gp - 8181));
0x00023864 addiu a2, a2, -0x3bb4 | a2 += -0x3bb4;
| label_8:
0x00023868 lw v0, 0x18(s2) | v0 = *((s2 + 6));
0x0002386c lw a3, (s0) | a3 = *(s0);
0x00023870 lw t9, -0x79d4(gp) | t9 = *((gp - 7797));
0x00023874 lw v0, (v0) | v0 = *(v0);
0x00023878 sw s7, 0x14(sp) | *(var_14h) = s7;
0x0002387c sw v0, 0x18(sp) | *(var_18h) = v0;
0x00023880 sw fp, 0x10(sp) | *(var_10h) = fp;
0x00023884 b 0x23818 |
| } while (1);
| label_21:
0x00023888 lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
0x0002388c lw t9, -0x79d4(gp) | t9 = *((gp - 7797));
0x00023890 lw v0, (v0) | v0 = *(v0);
0x00023894 lw a2, (s0) | a2 = *(s0);
0x00023898 move a3, s7 | a3 = s7;
0x0002389c sw v0, 0x10(sp) | *(var_10h) = v0;
0x000238a0 addiu a1, a1, -0x3b0c | a1 += -0x3b0c;
0x000238a4 addiu a0, zero, 1 | a0 = 1;
0x000238a8 jalr t9 | t9 ();
0x000238ac lw gp, 0x20(sp) | gp = *(var_20h);
0x000238b0 b 0x2382c | goto label_7;
| label_23:
0x000238b4 addiu a2, a2, -0x3bc0 | a2 += -0x3bc0;
0x000238b8 b 0x23868 | goto label_8;
| label_22:
0x000238bc lw v0, 0x18(s2) | v0 = *((s2 + 6));
0x000238c0 lw a2, -0x7fd4(gp) | a2 = *((gp - 8181));
0x000238c4 lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
0x000238c8 lw v0, (v0) | v0 = *(v0);
0x000238cc lw t9, -0x79d4(gp) | t9 = *((gp - 7797));
0x000238d0 lw a3, (s0) | a3 = *(s0);
0x000238d4 addiu a2, a2, -0x3adc | a2 += -0x3adc;
0x000238d8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000238dc sw s7, 0x10(sp) | *(var_10h) = s7;
0x000238e0 addiu a1, a1, -0x3acc | a1 += -0x3acc;
0x000238e4 addiu a0, zero, 1 | a0 = 1;
0x000238e8 jalr t9 | t9 ();
0x000238ec lw gp, 0x20(sp) | gp = *(var_20h);
0x000238f0 b 0x2382c | goto label_7;
| label_10:
0x000238f4 lw a2, -0x7fd4(gp) | a2 = *((gp - 8181));
0x000238f8 lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
0x000238fc lw t9, -0x79d4(gp) | t9 = *((gp - 7797));
0x00023900 addiu a2, a2, -0x3a64 | a2 += -0x3a64;
0x00023904 addiu a1, a1, -0x3ba4 | a1 += -0x3ba4;
0x00023908 move a0, zero | a0 = 0;
0x0002390c jalr t9 | t9 ();
0x00023910 addiu s1, zero, -1 | s1 = -1;
0x00023914 b 0x23648 | goto label_9;
| }
[*] Function mmap used 1 times libopkg.so.1.0.0