[*] Binary protection state of librtsnm.so
No RELRO No Canary found NX disabled DSO RPATH No RUNPATH No Symbols
[*] Function popen tear down of librtsnm.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/librtsnm.so @ 0x1f1c */
| #include <stdint.h>
|
; (fcn) sym.rtsnm_lcl_set () | void rtsnm_lcl_set () {
0x00001f1c lui gp, 3 |
0x00001f20 addiu gp, gp, -0x7a8c |
0x00001f24 addu gp, gp, t9 | gp += t9;
0x00001f28 addiu sp, sp, -0x48 |
0x00001f2c sw ra, 0x44(sp) | *(var_44h) = ra;
0x00001f30 sw s4, 0x40(sp) | *(var_40h) = s4;
0x00001f34 sw s3, 0x3c(sp) | *(var_3ch) = s3;
0x00001f38 sw s2, 0x38(sp) | *(var_38h) = s2;
0x00001f3c sw s1, 0x34(sp) | *(var_34h) = s1;
0x00001f40 sw s0, 0x30(sp) | *(var_30h) = s0;
0x00001f44 move s3, a1 | s3 = a1;
0x00001f48 lw t9, -0x7fb0(gp) | t9 = *((gp - 8172));
0x00001f4c sw gp, 0x18(sp) | *(var_18h) = gp;
0x00001f50 move s2, a2 | s2 = a2;
0x00001f54 jalr t9 | t9 ();
0x00001f58 lw gp, 0x18(sp) | gp = *(var_18h);
0x00001f5c move s1, v0 | s1 = v0;
| if (v0 == 0) {
0x00001f60 bnez v0, 0x1f8c |
0x00001f64 lw t8, -0x7e98(gp) | t8 = *((gp - 8102));
0x00001f68 lui s0, 0xfd00 | s0 = 0xfd000000;
0x00001f6c lw t8, (t8) | t8 = *(t8);
0x00001f70 ori s0, s0, 0xfffc | s0 |= 0xfffc;
| if (t8 < 0) {
0x00001f74 bltz t8, 0x219c | goto label_0;
| }
0x00001f78 lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
0x00001f7c addiu a0, zero, 3 | a0 = 3;
0x00001f80 sw s0, 0x10(sp) | *(var_10h) = s0;
0x00001f84 addiu a1, a1, -0x2a78 | a1 += -0x2a78;
0x00001f88 b 0x202c | goto label_1;
| }
0x00001f8c lw t9, 4(v0) | t9 = *((v0 + 1));
0x00001f90 move a0, v0 | a0 = v0;
0x00001f94 bnez t9, 0x1fcc |
| while (v0 >= 0) {
0x00001f98 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00001f9c addiu t8, zero, 0x7d0 | t8 = 0x7d0;
0x00001fa0 lw a1, 0x28(s1) | a1 = *((s1 + 10));
0x00001fa4 addiu s4, sp, 0x20 | s4 = sp + 0x20;
0x00001fa8 move a0, s4 | a0 = s4;
0x00001fac addiu t9, t9, 0x1df0 | t9 += 0x1df0;
| if (a1 != 0) {
0x00001fb0 movz a1, t8, a1 | a1 = t8;
| }
0x00001fb4 jalr t9 | t9 ();
0x00001fb8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00001fbc move s0, v0 | s0 = v0;
| if (v0 >= 0) {
0x00001fc0 bgez v0, 0x1fec | goto label_2;
| }
0x00001fc4 move v0, s0 | v0 = s0;
0x00001fc8 b 0x21a0 | goto label_3;
0x00001fcc move a1, s3 | a1 = s3;
0x00001fd0 move a2, s2 | a2 = s2;
0x00001fd4 jalr t9 | t9 ();
0x00001fd8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00001fdc move s0, v0 | s0 = v0;
0x00001fe0 bgez v0, 0x1f98 |
| }
0x00001fe4 move v0, s0 | v0 = s0;
0x00001fe8 b 0x21a0 | goto label_3;
| label_2:
0x00001fec lw t9, -0x7e90(gp) | t9 = *((gp - 8100));
0x00001ff0 move a1, s4 | a1 = s4;
0x00001ff4 lw a0, 0x24(s1) | a0 = *((s1 + 9));
0x00001ff8 jalr t9 | t9 ();
0x00001ffc lw gp, 0x18(sp) | gp = *(var_18h);
0x00002000 move s0, v0 | s0 = v0;
| if (v0 < 0) {
0x00002004 bgez v0, 0x2048 |
0x00002008 lw t8, -0x7e98(gp) | t8 = *((gp - 8102));
0x0000200c lui s0, 0xfd00 | s0 = 0xfd000000;
0x00002010 lw t8, (t8) | t8 = *(t8);
0x00002014 ori s0, s0, 0xfffa | s0 |= 0xfffa;
| if (t8 < 0) {
0x00002018 bltz t8, 0x219c | goto label_0;
| }
0x0000201c lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
0x00002020 addiu a0, zero, 3 | a0 = 3;
0x00002024 sw s0, 0x10(sp) | *(var_10h) = s0;
0x00002028 addiu a1, a1, -0x2a4c | a1 += -0x2a4c;
| label_1:
0x0000202c lw a2, -0x7fd4(gp) | a2 = *((gp - 8181));
0x00002030 lw t9, -0x7f6c(gp) | t9 = *((gp - 8155));
0x00002034 addiu a2, a2, -0x2904 | a2 += -0x2904;
0x00002038 move a3, a2 | a3 = a2;
0x0000203c jalr t9 | t9 ();
0x00002040 b 0x219c | goto label_0;
0x00002044 nop |
| }
0x00002048 lw t9, 8(s1) | t9 = *((s1 + 2));
0x0000204c move a0, s1 | a0 = s1;
| if (t9 != 0) {
0x00002050 beqz t9, 0x20b0 |
0x00002054 sw zero, 0x28(sp) | *(var_28h) = 0;
0x00002058 move a1, s3 | a1 = s3;
0x0000205c addiu a3, sp, 0x28 | a3 = sp + 0x28;
0x00002060 move a2, s2 | a2 = s2;
0x00002064 jalr t9 | t9 ();
0x00002068 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000206c move s0, v0 | s0 = v0;
| if (v0 < 0) {
0x00002070 bltz v0, 0x2190 | goto label_4;
| }
0x00002074 lw t8, 0x28(sp) | t8 = *(var_28h);
0x00002078 lw t8, -0x7e98(gp) | t8 = *((gp - 8102));
| if (t8 == 0) {
0x0000207c bnez t8, 0x20b0 |
0x00002080 lw t8, (t8) | t8 = *(t8);
0x00002084 move s0, zero | s0 = 0;
| if (t8 <= 0) {
0x00002088 blez t8, 0x2190 | goto label_4;
| }
0x0000208c lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
0x00002090 addiu a0, zero, 3 | a0 = 3;
0x00002094 lw a2, -0x7fd4(gp) | a2 = *((gp - 8181));
0x00002098 lw t9, -0x7f6c(gp) | t9 = *((gp - 8155));
0x0000209c addiu a1, a1, -0x2a24 | a1 += -0x2a24;
0x000020a0 addiu a2, a2, -0x2904 | a2 += -0x2904;
0x000020a4 jalr t9 | t9 ();
0x000020a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000020ac b 0x2190 |
| }
| } else {
0x000020b0 lw t9, 0xc(s1) | t9 = *((s1 + 3));
0x000020b4 lw s4, -0x7fe4(gp) | s4 = *((gp - 8185));
| if (t9 != 0) {
0x000020b8 beqz t9, 0x20dc |
0x000020bc lw a3, 0x2690(s4) | a3 = *((s4 + 2468));
0x000020c0 move a0, s1 | a0 = s1;
0x000020c4 move a1, s3 | a1 = s3;
0x000020c8 move a2, s2 | a2 = s2;
0x000020cc jalr t9 | t9 ();
0x000020d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000020d4 move s0, v0 | s0 = v0;
| if (v0 < 0) {
0x000020d8 bltz v0, 0x2190 | goto label_4;
| }
| }
0x000020dc lw t8, 0x2690(s4) | t8 = *((s4 + 2468));
0x000020e0 lw t8, (t8) | t8 = *(t8);
0x000020e4 lw t8, -0x7e98(gp) | t8 = *((gp - 8102));
| if (t8 == 0) {
0x000020e8 bnez t8, 0x2128 |
0x000020ec lw t8, (t8) | t8 = *(t8);
0x000020f0 lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
| if (t8 > 0) {
0x000020f4 blez t8, 0x2114 |
0x000020f8 addiu a0, zero, 3 | a0 = 3;
0x000020fc lw a2, -0x7fd4(gp) | a2 = *((gp - 8181));
0x00002100 lw t9, -0x7f6c(gp) | t9 = *((gp - 8155));
0x00002104 addiu a1, a1, -0x2a04 | a1 += -0x2a04;
0x00002108 addiu a2, a2, -0x2904 | a2 += -0x2904;
0x0000210c jalr t9 | t9 ();
0x00002110 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00002114 lw t9, 0x10(s1) | t9 = *((s1 + 4));
0x00002118 move a0, s1 | a0 = s1;
| if (t9 == 0) {
0x0000211c bnez t9, 0x217c |
0x00002120 move s0, zero | s0 = 0;
0x00002124 b 0x2190 |
| } else {
0x00002128 lw t9, 0x14(s1) | t9 = *((s1 + 5));
0x0000212c move a0, s1 | a0 = s1;
| if (t9 != 0) {
0x00002130 beqz t9, 0x214c |
0x00002134 move a1, s3 | a1 = s3;
0x00002138 move a2, s2 | a2 = s2;
0x0000213c jalr t9 | t9 ();
0x00002140 lw gp, 0x18(sp) | gp = *(var_18h);
0x00002144 move s0, v0 | s0 = v0;
| if (v0 < 0) {
0x00002148 bltz v0, 0x2190 | goto label_4;
| }
| }
0x0000214c lw t9, 0x18(s1) | t9 = *((s1 + 6));
0x00002150 move a0, s1 | a0 = s1;
| if (t9 != 0) {
0x00002154 beqz t9, 0x2170 |
0x00002158 move a1, s3 | a1 = s3;
0x0000215c move a2, s2 | a2 = s2;
0x00002160 jalr t9 | t9 ();
0x00002164 lw gp, 0x18(sp) | gp = *(var_18h);
0x00002168 move s0, v0 | s0 = v0;
| if (v0 < 0) {
0x0000216c bltz v0, 0x2190 | goto label_4;
| }
| }
0x00002170 lw t9, 0x10(s1) | t9 = *((s1 + 4));
0x00002174 move a0, s1 | a0 = s1;
| if (t9 == 0) {
0x00002178 beqz t9, 0x2190 | goto label_4;
| }
| }
0x0000217c move a1, s3 | a1 = s3;
0x00002180 move a2, s2 | a2 = s2;
0x00002184 jalr t9 | t9 ();
0x00002188 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000218c move s0, v0 | s0 = v0;
| }
| }
| label_4:
0x00002190 lw t9, -0x7ec4(gp) | t9 = *((gp - 8113));
0x00002194 lw a0, 0x24(s1) | a0 = *((s1 + 9));
0x00002198 jalr t9 | t9 ();
| label_0:
0x0000219c move v0, s0 | v0 = s0;
| label_3:
0x000021a0 lw ra, 0x44(sp) | ra = *(var_44h);
0x000021a4 lw s4, 0x40(sp) | s4 = *(var_40h);
0x000021a8 lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x000021ac lw s2, 0x38(sp) | s2 = *(var_38h);
0x000021b0 lw s1, 0x34(sp) | s1 = *(var_34h);
0x000021b4 lw s0, 0x30(sp) | s0 = *(var_30h);
0x000021b8 addiu sp, sp, 0x48 |
0x000021bc jr ra | return v0;
| }
[*] Function popen used 1 times librtsnm.so