[*] Binary protection state of session.so
Full RELRO No Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function system tear down of session.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/php/session.so @ 0xd020 */
| #include <stdint.h>
|
; (fcn) fcn.0000d020 () | void fcn_0000d020 () {
0x0000d020 lui gp, 2 |
0x0000d024 addiu gp, gp, -0x2d30 |
0x0000d028 addu gp, gp, t9 | gp += t9;
0x0000d02c addiu sp, sp, -0x10c8 |
0x0000d030 lw v0, 0x18(a0) | v0 = *((a0 + 6));
0x0000d034 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000d038 sw s2, 0x10bc(sp) | *(var_10bch) = s2;
0x0000d03c sw s1, 0x10b8(sp) | *(var_10b8h) = s1;
0x0000d040 sw s0, 0x10b4(sp) | *(var_10b4h) = s0;
0x0000d044 sw ra, 0x10c4(sp) | *(var_10c4h) = ra;
0x0000d048 sw s3, 0x10c0(sp) | *(var_10c0h) = s3;
0x0000d04c move s0, a0 | s0 = a0;
0x0000d050 move s1, a1 | s1 = a1;
0x0000d054 lw s2, (a0) | s2 = *(a0);
| if (v0 < 0) {
0x0000d058 bltz v0, 0xd094 | goto label_6;
| }
0x0000d05c lw t9, -0x7d1c(gp) | t9 = *((gp - 8007));
| if (s2 == 0) {
0x0000d060 beqz s2, 0xd0b0 | goto label_7;
| }
0x0000d064 move a1, s2 | a1 = s2;
0x0000d068 move a0, s1 | a0 = s1;
0x0000d06c jalr t9 | t9 ();
0x0000d070 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000d074 bnez v0, 0xd09c | goto label_8;
| }
| label_1:
0x0000d078 lw ra, 0x10c4(sp) | ra = *(var_10c4h);
| do {
0x0000d07c lw s3, 0x10c0(sp) | s3 = *(var_10c0h);
0x0000d080 lw s2, 0x10bc(sp) | s2 = *(var_10bch);
0x0000d084 lw s1, 0x10b8(sp) | s1 = *(var_10b8h);
0x0000d088 lw s0, 0x10b4(sp) | s0 = *(var_10b4h);
0x0000d08c addiu sp, sp, 0x10c8 |
0x0000d090 jr ra | return v1;
| if (s2 != 0) {
| label_6:
0x0000d094 beqz s2, 0xd0b0 |
0x0000d098 nop |
| label_8:
0x0000d09c lw t9, -0x7efc(gp) | t9 = *((gp - 8127));
0x0000d0a0 move a0, s2 | a0 = s2;
0x0000d0a4 jalr t9 | t9 ();
0x0000d0a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d0ac sw zero, (s0) | *(s0) = 0;
| }
| label_7:
0x0000d0b0 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x0000d0b4 addiu s2, zero, -1 | s2 = -1;
0x0000d0b8 lw t9, -0x7f9c(gp) | t9 = *((gp - 8167));
| if (a0 != s2) {
0x0000d0bc beq a0, s2, 0xd0d0 |
0x0000d0c0 jalr t9 | t9 ();
0x0000d0c4 nop |
0x0000d0c8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d0cc sw s2, 0x18(s0) | *((s0 + 6)) = s2;
| }
0x0000d0d0 lw t9, -0x7ddc(gp) | t9 = *((gp - 8055));
0x0000d0d4 move a0, s1 | a0 = s1;
0x0000d0d8 jalr t9 | t9 ();
0x0000d0dc addiu s3, zero, -1 | s3 = -1;
0x0000d0e0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == s3) {
0x0000d0e4 bne v0, s3, 0xd108 |
0x0000d0e8 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x0000d0ec addiu a2, a2, 0xb04 | a2 += 0xb04;
| label_0:
0x0000d0f0 lw t9, -0x7e44(gp) | t9 = *((gp - 8081));
0x0000d0f4 addiu a1, zero, 2 | a1 = 2;
0x0000d0f8 move a0, zero | a0 = 0;
0x0000d0fc jalr t9 | t9 ();
0x0000d100 b 0xd148 | goto label_2;
0x0000d104 nop |
| }
0x0000d108 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x0000d10c addiu s2, sp, 0x20 | s2 = sp + 0x20;
0x0000d110 move a2, s1 | a2 = s1;
0x0000d114 move a1, s0 | a1 = s0;
0x0000d118 addiu t9, t9, -0x32d4 | t9 += -0x32d4;
0x0000d11c move a0, s2 | a0 = s2;
0x0000d120 bal 0xcd2c | fcn_0000cd2c ();
0x0000d124 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000d128 bnez v0, 0xd150 | goto label_9;
| }
0x0000d12c lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x0000d130 lw t9, -0x7e44(gp) | t9 = *((gp - 8081));
0x0000d134 addiu a3, zero, 0x1000 | a3 = 0x1000;
0x0000d138 addiu a2, a2, 0xb6c | a2 += 0xb6c;
0x0000d13c addiu a1, zero, 2 | a1 = 2;
0x0000d140 move a0, zero | a0 = 0;
0x0000d144 jalr t9 | t9 ();
| label_2:
0x0000d148 lw ra, 0x10c4(sp) | ra = *(var_10c4h);
0x0000d14c b 0xd07c |
| } while (1);
| label_9:
0x0000d150 lw t9, -0x7d9c(gp) | t9 = *((gp - 8039));
0x0000d154 move a0, s1 | a0 = s1;
0x0000d158 jalr t9 | t9 ();
0x0000d15c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d160 lw a2, 0x14(s0) | a2 = *((s0 + 5));
0x0000d164 lui a1, 2 | a1 = 0x20000;
0x0000d168 lw t9, -0x7e4c(gp) | t9 = *((gp - 8083));
0x0000d16c sw v0, (s0) | *(s0) = v0;
0x0000d170 addiu a1, a1, 0x102 | a1 += 0x102;
0x0000d174 move a0, s2 | a0 = s2;
0x0000d178 jalr t9 | t9 ();
0x0000d17c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d180 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
| if (v0 == s3) {
0x0000d184 beq v0, s3, 0xd2b8 | goto label_10;
| }
0x0000d188 lw t9, -0x7fc8(gp) | t9 = *((gp - 8178));
0x0000d18c addiu a1, sp, 0x1020 | a1 = sp + 0x1020;
0x0000d190 move a0, v0 | a0 = v0;
0x0000d194 bal 0xe6d0 | fcn_0000e6d0 ();
0x0000d198 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000d19c beqz v0, 0xd1c4 |
0x0000d1a0 lw t9, -0x7f9c(gp) | t9 = *((gp - 8167));
| label_4:
0x0000d1a4 lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x0000d1a8 jalr t9 | t9 ();
0x0000d1ac lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d1b0 addiu v0, zero, -1 | v0 = -1;
0x0000d1b4 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
0x0000d1b8 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x0000d1bc addiu a2, a2, 0xbe4 | a2 += 0xbe4;
0x0000d1c0 b 0xd0f0 | goto label_0;
| }
0x0000d1c4 lw s1, 0x103c(sp) | s1 = *(var_103ch);
0x0000d1c8 lw t9, -0x7dc4(gp) | t9 = *((gp - 8049));
| if (s1 != 0) {
0x0000d1cc bnez s1, 0xd278 | goto label_11;
| }
| label_3:
0x0000d1d0 addiu s2, zero, -1 | s2 = -1;
0x0000d1d4 addiu s1, zero, 4 | s1 = 4;
| do {
0x0000d1d8 lw t9, -0x7e54(gp) | t9 = *((gp - 8085));
0x0000d1dc lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x0000d1e0 addiu a1, zero, 2 | a1 = 2;
0x0000d1e4 jalr t9 | t9 ();
0x0000d1e8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != s2) {
0x0000d1ec bne v0, s2, 0xd208 | goto label_12;
| }
0x0000d1f0 lw t9, -0x7ec4(gp) | t9 = *((gp - 8113));
0x0000d1f4 jalr t9 | t9 ();
0x0000d1f8 nop |
0x0000d1fc lw v0, (v0) | v0 = *(v0);
0x0000d200 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d204 beq v0, s1, 0xd1d8 |
| } while (v0 == s1);
| label_12:
0x0000d208 lw t9, -0x7e9c(gp) | t9 = *((gp - 8103));
0x0000d20c lw a0, 0x18(s0) | a0 = *((s0 + 6));
0x0000d210 addiu a2, zero, 1 | a2 = 1;
0x0000d214 addiu a1, zero, 2 | a1 = 2;
0x0000d218 jalr t9 | t9 ();
0x0000d21c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000d220 beqz v0, 0xd078 | goto label_1;
| }
0x0000d224 lw t9, -0x7ec4(gp) | t9 = *((gp - 8113));
0x0000d228 lw s1, 0x18(s0) | s1 = *((s0 + 6));
0x0000d22c jalr t9 | t9 ();
0x0000d230 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d234 lw a0, (v0) | a0 = *(v0);
0x0000d238 lw t9, -0x7e34(gp) | t9 = *((gp - 8077));
0x0000d23c move s0, v0 | s0 = v0;
0x0000d240 jalr t9 | t9 ();
0x0000d244 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d248 lw v1, (s0) | v1 = *(s0);
0x0000d24c move a3, s1 | a3 = s1;
0x0000d250 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x0000d254 sw v1, 0x14(sp) | *(var_14h) = v1;
0x0000d258 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000d25c addiu a2, a2, 0xc14 | a2 += 0xc14;
| label_5:
0x0000d260 lw t9, -0x7e44(gp) | t9 = *((gp - 8081));
0x0000d264 addiu a1, zero, 2 | a1 = 2;
0x0000d268 move a0, zero | a0 = 0;
0x0000d26c jalr t9 | t9 ();
0x0000d270 b 0xd148 | goto label_2;
0x0000d274 nop |
| label_11:
0x0000d278 jalr t9 | t9 ();
0x0000d27c nop |
0x0000d280 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s1 == v0) {
0x0000d284 beq s1, v0, 0xd1d0 | goto label_3;
| }
0x0000d288 lw t9, -0x7dd8(gp) | t9 = *((gp - 8054));
0x0000d28c lw s1, 0x103c(sp) | s1 = *(var_103ch);
0x0000d290 jalr t9 | t9 ();
0x0000d294 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s1 == v0) {
0x0000d298 beq s1, v0, 0xd1d0 | goto label_3;
| }
0x0000d29c lw t9, -0x7dc4(gp) | t9 = *((gp - 8049));
0x0000d2a0 jalr t9 | t9 ();
0x0000d2a4 nop |
0x0000d2a8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000d2ac beqz v0, 0xd1d0 | goto label_3;
| }
0x0000d2b0 lw t9, -0x7f9c(gp) | t9 = *((gp - 8167));
0x0000d2b4 b 0xd1a4 | goto label_4;
| label_10:
0x0000d2b8 lw t9, -0x7ec4(gp) | t9 = *((gp - 8113));
0x0000d2bc jalr t9 | t9 ();
0x0000d2c0 nop |
0x0000d2c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d2c8 lw a0, (v0) | a0 = *(v0);
0x0000d2cc lw t9, -0x7e34(gp) | t9 = *((gp - 8077));
0x0000d2d0 move s0, v0 | s0 = v0;
0x0000d2d4 jalr t9 | t9 ();
0x0000d2d8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000d2dc lw v1, (s0) | v1 = *(s0);
0x0000d2e0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000d2e4 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x0000d2e8 sw v1, 0x14(sp) | *(var_14h) = v1;
0x0000d2ec move a3, s2 | a3 = s2;
0x0000d2f0 addiu a2, a2, 0xc44 | a2 += 0xc44;
0x0000d2f4 b 0xd260 | goto label_5;
| }
[*] Function system used 1 times session.so