[*] Binary protection state of libnss_compat-2.27.so
Partial RELRO No Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function printf tear down of libnss_compat-2.27.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libnss_compat-2.27.so @ 0xe44 */
| #include <stdint.h>
|
; (fcn) entry.fini0 () | void entry_fini0 () {
0x00000e44 lui gp, 2 |
0x00000e48 addiu gp, gp, -0xd64 |
0x00000e4c addu gp, gp, t9 | gp += t9;
0x00000e50 addiu sp, sp, -0x20 |
0x00000e54 sw s0, 0x18(sp) | *(var_18h) = s0;
0x00000e58 lw s0, -0x7fe4(gp) | s0 = *((gp - 8185));
0x00000e5c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00000e60 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x00000e64 lbu v0, -0x7e50(s0) | v0 = *((s0 - 32336));
0x00000e68 lw v0, -0x7f44(gp) | v0 = *((gp - 8145));
| if (v0 == 0) {
0x00000e6c bnez v0, 0xea0 |
0x00000e70 lw v0, -0x7fe0(gp) | v0 = *((gp - 8184));
| if (v0 != 0) {
0x00000e74 beqz v0, 0xe88 |
0x00000e78 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x00000e7c lw a0, (v0) | a0 = *(v0);
0x00000e80 jalr t9 | t9 ();
0x00000e84 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00000e88 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00000e8c addiu t9, t9, 0xdc0 | t9 += entry0;
0x00000e90 bal 0xdc0 | entry0 ();
0x00000e94 nop |
0x00000e98 addiu v0, zero, 1 | v0 = 1;
0x00000e9c sb v0, -0x7e50(s0) | *((s0 - 32336)) = v0;
| }
0x00000ea0 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x00000ea4 lw s0, 0x18(sp) | s0 = *(var_18h);
0x00000ea8 addiu sp, sp, 0x20 |
0x00000eac jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libnss_compat-2.27.so @ 0x26a4 */
| #include <stdint.h>
|
; (fcn) fcn.000026a4 () | void fcn_000026a4 () {
0x000026a4 lui gp, 2 |
0x000026a8 addiu gp, gp, -0x25c4 |
0x000026ac addu gp, gp, t9 | gp += t9;
0x000026b0 addiu sp, sp, -0x38 |
0x000026b4 sw s3, 0x28(sp) | *(var_28h) = s3;
0x000026b8 lw s3, 4(a1) | s3 = *((a1 + 1));
0x000026bc sw gp, 0x10(sp) | *(var_10h) = gp;
0x000026c0 sw s2, 0x24(sp) | *(var_24h) = s2;
0x000026c4 sw s1, 0x20(sp) | *(var_20h) = s1;
0x000026c8 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000026cc sw ra, 0x34(sp) | *(var_34h) = ra;
0x000026d0 sw s5, 0x30(sp) | *(var_30h) = s5;
0x000026d4 sw s4, 0x2c(sp) | *(var_2ch) = s4;
0x000026d8 move s0, a1 | s0 = a1;
0x000026dc move s2, a0 | s2 = a0;
0x000026e0 move s1, a2 | s1 = a2;
| if (s3 != 0) {
0x000026e4 beqz s3, 0x2760 |
0x000026e8 lb v0, (s3) | v0 = *(s3);
| if (v0 == 0) {
0x000026ec beql v0, zero, 0x2764 | goto label_7;
| }
0x000026f0 lw s3, 0x10(s0) | s3 = *((s0 + 4));
0x000026f4 lw t9, -0x7f58(gp) | t9 = *((gp - 8150));
| if (a2 == 0) {
0x000026f8 beqz a2, 0x29a0 | goto label_8;
| }
0x000026fc lw s5, 4(a0) | s5 = *((a0 + 1));
0x00002700 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
| if (s5 != 0) {
0x00002704 beqz s5, 0x2730 |
0x00002708 move a0, s5 | a0 = s5;
0x0000270c jalr t9 | t9 ();
0x00002710 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002714 move a0, s3 | a0 = s3;
0x00002718 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x0000271c move s4, v0 | s4 = v0;
0x00002720 jalr t9 | t9 ();
0x00002724 sltu s4, s4, v0 | s4 = (s4 < v0) ? 1 : 0;
0x00002728 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s4 == 0) {
0x0000272c beqz s4, 0x2984 | goto label_9;
| }
| }
0x00002730 sw s1, 4(s2) | *((s2 + 1)) = s1;
0x00002734 lw t9, -0x7f78(gp) | t9 = *((gp - 8158));
0x00002738 lw a1, 4(s0) | a1 = *((s0 + 1));
0x0000273c move a0, s1 | a0 = s1;
0x00002740 jalr t9 | t9 ();
0x00002744 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002748 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x0000274c lw a0, 4(s2) | a0 = *((s2 + 1));
0x00002750 jalr t9 | t9 ();
0x00002754 addiu v0, v0, 1 | v0++;
0x00002758 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000275c addu s1, s1, v0 | s1 += v0;
| }
| label_2:
0x00002760 lw s3, 0x10(s0) | s3 = *((s0 + 4));
| if (s3 != 0) {
| label_7:
0x00002764 beql s3, zero, 0x27e8 |
0x00002768 lw s4, 0x14(s0) | s4 = *((s0 + 5));
0x0000276c lb v0, (s3) | v0 = *(s3);
| if (v0 == 0) {
0x00002770 beql v0, zero, 0x27e8 | goto label_10;
| }
0x00002774 lw s4, 0x14(s0) | s4 = *((s0 + 5));
| if (s1 == 0) {
0x00002778 beql s1, zero, 0x2a34 | goto label_11;
| }
0x0000277c lw s4, 0x14(s0) | s4 = *((s0 + 5));
0x00002780 lw s5, 0x10(s2) | s5 = *((s2 + 4));
0x00002784 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
| if (s5 != 0) {
0x00002788 beqz s5, 0x27b4 |
0x0000278c move a0, s5 | a0 = s5;
0x00002790 jalr t9 | t9 ();
0x00002794 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002798 move a0, s3 | a0 = s3;
0x0000279c lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x000027a0 move s4, v0 | s4 = v0;
0x000027a4 jalr t9 | t9 ();
0x000027a8 sltu s4, s4, v0 | s4 = (s4 < v0) ? 1 : 0;
0x000027ac lw gp, 0x10(sp) | gp = *(var_10h);
| if (s4 == 0) {
0x000027b0 beqz s4, 0x2968 | goto label_12;
| }
| }
0x000027b4 sw s1, 0x10(s2) | *((s2 + 4)) = s1;
0x000027b8 lw t9, -0x7f78(gp) | t9 = *((gp - 8158));
0x000027bc lw a1, 0x10(s0) | a1 = *((s0 + 4));
0x000027c0 move a0, s1 | a0 = s1;
0x000027c4 jalr t9 | t9 ();
0x000027c8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000027cc lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x000027d0 lw a0, 0x10(s2) | a0 = *((s2 + 4));
0x000027d4 jalr t9 | t9 ();
0x000027d8 addiu v0, v0, 1 | v0++;
0x000027dc lw gp, 0x10(sp) | gp = *(var_10h);
0x000027e0 addu s1, s1, v0 | s1 += v0;
| label_1:
0x000027e4 lw s4, 0x14(s0) | s4 = *((s0 + 5));
| }
| if (s4 == 0) {
| label_10:
0x000027e8 beql s4, zero, 0x28b0 | goto label_13;
| }
0x000027ec lw s5, 0x18(s0) | s5 = *((s0 + 6));
0x000027f0 lb v0, (s4) | v0 = *(s4);
| if (v0 == 0) {
0x000027f4 beql v0, zero, 0x28b0 | goto label_13;
| }
0x000027f8 lw s5, 0x18(s0) | s5 = *((s0 + 6));
| if (s1 == 0) {
0x000027fc beql s1, zero, 0x2a1c | goto label_14;
| }
0x00002800 lw s5, 0x18(s0) | s5 = *((s0 + 6));
0x00002804 lw s5, 0x14(s2) | s5 = *((s2 + 5));
0x00002808 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
| if (s5 != 0) {
0x0000280c beqz s5, 0x2838 |
0x00002810 move a0, s5 | a0 = s5;
0x00002814 jalr t9 | t9 ();
0x00002818 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000281c move a0, s4 | a0 = s4;
0x00002820 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x00002824 move s3, v0 | s3 = v0;
0x00002828 jalr t9 | t9 ();
0x0000282c sltu s3, s3, v0 | s3 = (s3 < v0) ? 1 : 0;
0x00002830 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s3 == 0) {
0x00002834 beqz s3, 0x2894 | goto label_15;
| }
| }
0x00002838 sw s1, 0x14(s2) | *((s2 + 5)) = s1;
0x0000283c lw t9, -0x7f78(gp) | t9 = *((gp - 8158));
0x00002840 lw a1, 0x14(s0) | a1 = *((s0 + 5));
0x00002844 move a0, s1 | a0 = s1;
0x00002848 jalr t9 | t9 ();
0x0000284c lw gp, 0x10(sp) | gp = *(var_10h);
0x00002850 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x00002854 lw a0, 0x14(s2) | a0 = *((s2 + 5));
0x00002858 jalr t9 | t9 ();
0x0000285c lw s5, 0x18(s0) | s5 = *((s0 + 6));
0x00002860 addiu v0, v0, 1 | v0++;
0x00002864 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002868 addu s1, s1, v0 | s1 += v0;
| if (s5 != 0) {
0x0000286c bnez s5, 0x28b8 | goto label_16;
| }
| label_4:
0x00002870 lw ra, 0x34(sp) | ra = *(var_34h);
| do {
| label_0:
0x00002874 lw s5, 0x30(sp) | s5 = *(var_30h);
| label_3:
0x00002878 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x0000287c lw s3, 0x28(sp) | s3 = *(var_28h);
0x00002880 lw s2, 0x24(sp) | s2 = *(var_24h);
0x00002884 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00002888 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0000288c addiu sp, sp, 0x38 |
0x00002890 jr ra | return v0;
| label_15:
0x00002894 lw t9, -0x7f64(gp) | t9 = *((gp - 8153));
0x00002898 addiu a2, v0, 1 | a2 = v0 + 1;
0x0000289c move a1, s4 | a1 = s4;
0x000028a0 move a0, s5 | a0 = s5;
0x000028a4 jalr t9 | t9 ();
0x000028a8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000028ac lw s5, 0x18(s0) | s5 = *((s0 + 6));
| label_13:
0x000028b0 lw ra, 0x34(sp) | ra = *(var_34h);
0x000028b4 beqz s5, 0x2874 |
| } while (s5 == 0);
| label_16:
0x000028b8 lb v0, (s5) | v0 = *(s5);
0x000028bc lw ra, 0x34(sp) | ra = *(var_34h);
| if (v0 == 0) {
0x000028c0 beqz v0, 0x2874 | goto label_0;
| }
0x000028c4 lw t9, -0x7f58(gp) | t9 = *((gp - 8150));
| if (s1 == 0) {
0x000028c8 beqz s1, 0x2a0c | goto label_17;
| }
0x000028cc lw s4, 0x18(s2) | s4 = *((s2 + 6));
0x000028d0 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
| if (s4 != 0) {
0x000028d4 beqz s4, 0x2900 |
0x000028d8 move a0, s4 | a0 = s4;
0x000028dc jalr t9 | t9 ();
0x000028e0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000028e4 move a0, s5 | a0 = s5;
0x000028e8 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x000028ec move s3, v0 | s3 = v0;
0x000028f0 jalr t9 | t9 ();
0x000028f4 sltu s3, s3, v0 | s3 = (s3 < v0) ? 1 : 0;
0x000028f8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s3 == 0) {
0x000028fc beqz s3, 0x2934 | goto label_18;
| }
| }
0x00002900 sw s1, 0x18(s2) | *((s2 + 6)) = s1;
0x00002904 lw a1, 0x18(s0) | a1 = *((s0 + 6));
0x00002908 lw ra, 0x34(sp) | ra = *(var_34h);
0x0000290c lw s5, 0x30(sp) | s5 = *(var_30h);
0x00002910 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00002914 lw s3, 0x28(sp) | s3 = *(var_28h);
0x00002918 lw s2, 0x24(sp) | s2 = *(var_24h);
0x0000291c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00002920 move a0, s1 | a0 = s1;
0x00002924 lw t9, -0x7f78(gp) | t9 = *((gp - 8158));
0x00002928 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0000292c addiu sp, sp, 0x38 |
0x00002930 jr t9 | t9 ();
| label_18:
0x00002934 lw ra, 0x34(sp) | ra = *(var_34h);
0x00002938 lw s3, 0x28(sp) | s3 = *(var_28h);
0x0000293c lw s2, 0x24(sp) | s2 = *(var_24h);
0x00002940 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00002944 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00002948 move a1, s5 | a1 = s5;
0x0000294c move a0, s4 | a0 = s4;
0x00002950 lw s5, 0x30(sp) | s5 = *(var_30h);
0x00002954 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00002958 lw t9, -0x7f64(gp) | t9 = *((gp - 8153));
0x0000295c addiu a2, v0, 1 | a2 = v0 + 1;
0x00002960 addiu sp, sp, 0x38 |
0x00002964 jr t9 | t9 ();
| label_12:
0x00002968 lw t9, -0x7f64(gp) | t9 = *((gp - 8153));
0x0000296c addiu a2, v0, 1 | a2 = v0 + 1;
0x00002970 move a1, s3 | a1 = s3;
0x00002974 move a0, s5 | a0 = s5;
0x00002978 jalr t9 | t9 ();
0x0000297c lw gp, 0x10(sp) | gp = *(var_10h);
0x00002980 b 0x27e4 | goto label_1;
| label_9:
0x00002984 lw t9, -0x7f64(gp) | t9 = *((gp - 8153));
0x00002988 addiu a2, v0, 1 | a2 = v0 + 1;
0x0000298c move a1, s3 | a1 = s3;
0x00002990 move a0, s5 | a0 = s5;
0x00002994 jalr t9 | t9 ();
0x00002998 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000299c b 0x2760 | goto label_2;
| label_8:
0x000029a0 move a0, s3 | a0 = s3;
0x000029a4 jalr t9 | t9 ();
0x000029a8 lw s3, 0x10(s0) | s3 = *((s0 + 4));
0x000029ac lw gp, 0x10(sp) | gp = *(var_10h);
0x000029b0 sw v0, 4(s2) | *((s2 + 1)) = v0;
0x000029b4 lw s4, 0x14(s0) | s4 = *((s0 + 5));
0x000029b8 lw s5, 0x18(s0) | s5 = *((s0 + 6));
| if (s3 != 0) {
0x000029bc beqz s3, 0x29e0 |
0x000029c0 lb v0, (s3) | v0 = *(s3);
| if (v0 == 0) {
0x000029c4 beqz v0, 0x29e0 | goto label_19;
| }
0x000029c8 nop |
| label_6:
0x000029cc lw t9, -0x7f58(gp) | t9 = *((gp - 8150));
0x000029d0 move a0, s3 | a0 = s3;
0x000029d4 jalr t9 | t9 ();
0x000029d8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000029dc sw v0, 0x10(s2) | *((s2 + 4)) = v0;
| }
| if (s4 != 0) {
| label_19:
0x000029e0 beqz s4, 0x29f4 |
0x000029e4 nop |
0x000029e8 lb v0, (s4) | v0 = *(s4);
0x000029ec lw t9, -0x7f58(gp) | t9 = *((gp - 8150));
| if (v0 != 0) {
0x000029f0 bnez v0, 0x2a20 | goto label_20;
| }
| }
| label_5:
0x000029f4 lw ra, 0x34(sp) | ra = *(var_34h);
| if (s5 == 0) {
0x000029f8 beqz s5, 0x2874 | goto label_0;
| }
0x000029fc lb v0, (s5) | v0 = *(s5);
| if (v0 == 0) {
0x00002a00 beql v0, zero, 0x2878 | goto label_3;
| }
0x00002a04 lw s5, 0x30(sp) | s5 = *(var_30h);
0x00002a08 lw t9, -0x7f58(gp) | t9 = *((gp - 8150));
| label_17:
0x00002a0c move a0, s5 | a0 = s5;
0x00002a10 jalr t9 | t9 ();
0x00002a14 sw v0, 0x18(s2) | *((s2 + 6)) = v0;
0x00002a18 b 0x2870 | goto label_4;
| label_14:
0x00002a1c lw t9, -0x7f58(gp) | t9 = *((gp - 8150));
| label_20:
0x00002a20 move a0, s4 | a0 = s4;
0x00002a24 jalr t9 | t9 ();
0x00002a28 lw gp, 0x10(sp) | gp = *(var_10h);
0x00002a2c sw v0, 0x14(s2) | *((s2 + 5)) = v0;
0x00002a30 b 0x29f4 | goto label_5;
| label_11:
0x00002a34 lw s5, 0x18(s0) | s5 = *((s0 + 6));
0x00002a38 b 0x29cc | goto label_6;
| }
[*] Function printf used 1 times libnss_compat-2.27.so