[*] Binary protection state of libsoap.so

  
  	Full RELRO     Canary found      NX disabled  DSO          No RPATH     No RUNPATH   No Symbols


[*] Function mmap tear down of libsoap.so

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libsoap.so @ 0x58a4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) entry.fini0 ()               | void entry_fini0 () {
    0x000058a4 lui gp, 4                 |     
    0x000058a8 addiu gp, gp, 0x174c      |     
    0x000058ac addu gp, gp, t9           |     gp += t9;
    0x000058b0 addiu sp, sp, -0x20       |     
    0x000058b4 sw s0, 0x18(sp)           |     *(var_18h) = s0;
    0x000058b8 lw s0, -0x7fe4(gp)        |     s0 = *((gp - 8185));
    0x000058bc sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x000058c0 sw ra, 0x1c(sp)           |     *(var_1ch) = ra;
    0x000058c4 lbu v0, -0xab0(s0)        |     v0 = *((s0 - 2736));
    0x000058c8 lw v0, -0x7cf0(gp)        |     v0 = *((gp - 7996));
                                         |     if (v0 == 0) {
    0x000058cc bnez v0, 0x5900           |         
    0x000058d0 lw v0, -0x7fe0(gp)        |         v0 = *((gp - 8184));
                                         |         if (v0 != 0) {
    0x000058d4 beqz v0, 0x58e8           |             
    0x000058d8 lw t9, -0x7cf0(gp)        |             t9 = *((gp - 7996));
    0x000058dc lw a0, (v0)               |             a0 = *(v0);
    0x000058e0 jalr t9                   |             t9 ();
    0x000058e4 lw gp, 0x10(sp)           |             gp = *(var_10h);
                                         |         }
    0x000058e8 lw t9, -0x7fdc(gp)        |         t9 = *((gp - 8183));
    0x000058ec addiu t9, t9, 0x5820      |         t9 += entry0;
    0x000058f0 bal 0x5820                |         entry0 ();
    0x000058f4 nop                       |         
    0x000058f8 addiu v0, zero, 1         |         v0 = 1;
    0x000058fc sb v0, -0xab0(s0)         |         *((s0 - 2736)) = v0;
                                         |     }
    0x00005900 lw ra, 0x1c(sp)           |     ra = *(var_1ch);
    0x00005904 lw s0, 0x18(sp)           |     s0 = *(var_18h);
    0x00005908 addiu sp, sp, 0x20        |     
    0x0000590c jr ra                     |     return v0;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libsoap.so @ 0x217d0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.soap_base642s ()             | void soap_base642s () {
    0x000217d0 lui gp, 2                     |     
    0x000217d4 addiu gp, gp, 0x5820          |     
    0x000217d8 addu gp, gp, t9               |     gp += t9;
    0x000217dc addiu sp, sp, -0x30           |     
    0x000217e0 sw gp, 0x10(sp)               |     *(var_10h_2) = gp;
    0x000217e4 sw s2, 0x24(sp)               |     *(var_24h_2) = s2;
    0x000217e8 sw s1, 0x20(sp)               |     *(var_20h_2) = s1;
    0x000217ec sw ra, 0x2c(sp)               |     *(var_2ch_2) = ra;
    0x000217f0 sw s3, 0x28(sp)               |     *(var_28h_2) = s3;
    0x000217f4 sw s0, 0x1c(sp)               |     *(var_1ch_2) = s0;
    0x000217f8 move s2, a0                   |     s2 = a0;
    0x000217fc lw s1, 0x40(sp)               |     s1 = *(var_10h);
                                             |     if (a1 == 0) {
    0x00021800 beqz a1, 0x218d8              |         goto label_6;
                                             |     }
    0x00021804 lb v0, (a1)                   |     v0 = *(a1);
    0x00021808 move s0, a1                   |     s0 = a1;
                                             |     if (v0 == 0) {
    0x0002180c beqz v0, 0x218d8              |         goto label_6;
                                             |     }
    0x00021810 lw t9, -0x7d1c(gp)            |     t9 = *((gp - 8007));
                                             |     if (a2 == 0) {
    0x00021814 beqz a2, 0x21918              |         goto label_7;
                                             |     }
                                             | label_1:
    0x00021818 sw zero, (s1)                 |     *(s1) = 0;
                                             |     if (s1 != 0) {
    0x0002181c bnel s1, zero, 0x21820        |         
                                             |     }
    0x00021820 lw t4, -0x7fd8(gp)            |     t4 = *((gp - 8182));
    0x00021824 move v0, a2                   |     v0 = a2;
    0x00021828 addiu t5, zero, 0x3d          |     t5 = 0x3d;
    0x0002182c addiu t4, t4, -0x1f28         |     t4 += -0x1f28;
    0x00021830 addiu t6, zero, 4             |     t6 = 4;
                                             | label_5:
    0x00021834 addiu a0, a3, 3               |     a0 = a3 + 3;
    0x00021838 move t7, v0                   |     t7 = v0;
    0x0002183c addiu t8, v0, 0x300           |     t8 = v0 + aav.0x00000300;
    0x00021840 move t9, zero                 |     t9 = 0;
    0x00021844 addu s3, a0, v0               |     s3 = a0 + v0;
    0x00021848 addu a3, a3, v0               |     a3 += v0;
                                             | label_4:
    0x0002184c move t3, zero                 |     t3 = 0;
    0x00021850 move a1, zero                 |     a1 = 0;
    0x00021854 b 0x21870                     |     
                                             |     while (a0 == 0) {
    0x00021858 slti v0, a1, 0x40             |         v0 = (a1 < 0x40) ? 1 : 0;
    0x0002185c addiu t3, t3, 1               |         t3++;
                                             |         if (v0 == 0) {
    0x00021860 beqz v0, 0x218a8              |             goto label_8;
                                             |         }
    0x00021864 addu a1, a1, t2               |         a1 += t2;
                                             | label_0:
    0x00021868 srl v0, a1, 8                 |         v0 = a1 >> 8;
                                             |         if (t3 == t6) {
    0x0002186c beq t3, t6, 0x219f0           |             goto label_9;
                                             |         }
    0x00021870 addiu s0, s0, 1               |         s0++;
    0x00021874 lb v1, -1(s0)                 |         v1 = *((s0 - 1));
    0x00021878 sll t2, a1, 6                 |         t2 = a1 << 6;
    0x0002187c addiu a0, v1, -0x2b           |         a0 = v1 + -0x2b;
    0x00021880 addu t1, a0, t4               |         t1 = a0 + t4;
    0x00021884 sltiu t0, v1, 0x21            |         t0 = (v1 < 0x21) ? 1 : 0;
    0x00021888 sltiu a0, a0, 0x50            |         a0 = (a0 < 0x50) ? 1 : 0;
                                             |         if (v1 == t5) {
    0x0002188c beq v1, t5, 0x21978           |             goto label_10;
                                             |         }
                                             |         if (v1 == 0) {
    0x00021890 beql v1, zero, 0x2197c        |             goto label_11;
                                             |         }
    0x00021894 sll v1, t9, 1                 |         v1 = t9 << 1;
    0x00021898 lb a1, (t1)                   |         a1 = *(t1);
    0x0002189c bnel a0, zero, 0x21858        |         
                                             |     }
                                             |     if (t0 != 0) {
    0x000218a0 bnez t0, 0x21868              |         goto label_0;
                                             |     }
    0x000218a4 nop                           |     
                                             | label_8:
    0x000218a8 lui a0, 1                     |     a0 = 0x10000;
    0x000218ac addu a0, s2, a0               |     a0 = s2 + a0;
    0x000218b0 lw ra, 0x2c(sp)               |     ra = *(var_2ch_2);
    0x000218b4 addiu v0, zero, 4             |     v0 = 4;
    0x000218b8 sw v0, 0x6180(a0)             |     *((a0 + 6240)) = v0;
    0x000218bc lw s3, 0x28(sp)               |     s3 = *(var_28h_2);
    0x000218c0 lw s2, 0x24(sp)               |     s2 = *(var_24h_2);
    0x000218c4 lw s1, 0x20(sp)               |     s1 = *(var_20h_2);
    0x000218c8 lw s0, 0x1c(sp)               |     s0 = *(var_1ch_2);
    0x000218cc move v0, zero                 |     v0 = 0;
    0x000218d0 addiu sp, sp, 0x30            |     
    0x000218d4 jr ra                         |     return v1;
                                             | label_6:
    0x000218d8 sw zero, (s1)                 |     *(s1) = 0;
                                             |     if (s1 != 0) {
    0x000218dc bnel s1, zero, 0x218e0        |         
                                             |     }
    0x000218e0 lui a0, 1                     |     a0 = 0x10000;
    0x000218e4 addu a0, s2, a0               |     a0 = s2 + a0;
    0x000218e8 lw v0, 0x6180(a0)             |     v0 = *((a0 + 6240));
    0x000218ec lw ra, 0x2c(sp)               |     ra = *(var_2ch_2);
                                             |     if (v0 != 0) {
    0x000218f0 bnez v0, 0x2195c              |         goto label_12;
                                             |     }
    0x000218f4 lw a2, -0x7fd8(gp)            |     a2 = *((gp - 8182));
    0x000218f8 addiu v0, a2, -0x1f38         |     v0 = a2 + -0x1f38;
                                             | label_3:
    0x000218fc lw ra, 0x2c(sp)               |     ra = *(var_2ch_2);
    0x00021900 lw s3, 0x28(sp)               |     s3 = *(var_28h_2);
    0x00021904 lw s2, 0x24(sp)               |     s2 = *(var_24h_2);
    0x00021908 lw s1, 0x20(sp)               |     s1 = *(var_20h_2);
    0x0002190c lw s0, 0x1c(sp)               |     s0 = *(var_1ch_2);
    0x00021910 addiu sp, sp, 0x30            |     
    0x00021914 jr ra                         |     return v1;
                                             | label_7:
    0x00021918 move a0, a1                   |     a0 = a1;
    0x0002191c jalr t9                       |     t9 ();
    0x00021920 addiu v0, v0, 3               |     v0 += 3;
    0x00021924 lw gp, 0x10(sp)               |     gp = *(var_10h_2);
    0x00021928 srl v0, v0, 2                 |     v0 >>= 2;
    0x0002192c sll a3, v0, 1                 |     a3 = v0 << 1;
    0x00021930 addu a3, a3, v0               |     a3 += v0;
    0x00021934 lw t9, -0x7d28(gp)            |     t9 = *((gp - 8010));
    0x00021938 move a1, a3                   |     a1 = a3;
    0x0002193c sw a3, 0x3c(sp)               |     *(var_3ch_2) = a3;
    0x00021940 move a0, s2                   |     a0 = s2;
    0x00021944 jalr t9                       |     t9 ();
    0x00021948 move a2, v0                   |     a2 = v0;
    0x0002194c lw gp, 0x10(sp)               |     gp = *(var_10h_2);
    0x00021950 lw a3, 0x3c(sp)               |     a3 = *(var_3ch_2);
                                             |     if (v0 != 0) {
    0x00021954 bnez v0, 0x21818              |         goto label_1;
                                             |     }
    0x00021958 lw ra, 0x2c(sp)               |     ra = *(var_2ch_2);
                                             | label_12:
    0x0002195c lw s3, 0x28(sp)               |     s3 = *(var_28h_2);
    0x00021960 lw s2, 0x24(sp)               |     s2 = *(var_24h_2);
    0x00021964 lw s1, 0x20(sp)               |     s1 = *(var_20h_2);
    0x00021968 lw s0, 0x1c(sp)               |     s0 = *(var_1ch_2);
    0x0002196c move v0, zero                 |     v0 = 0;
    0x00021970 addiu sp, sp, 0x30            |     
    0x00021974 jr ra                         |     return v1;
                                             | label_10:
    0x00021978 sll v1, t9, 1                 |     v1 = t9 << 1;
                                             | label_11:
    0x0002197c addiu v0, zero, 2             |     v0 = 2;
    0x00021980 addu v1, v1, t9               |     v1 += t9;
                                             |     if (t3 == v0) {
    0x00021984 beq t3, v0, 0x219d8           |         goto label_13;
                                             |     }
    0x00021988 addiu v0, zero, 3             |     v0 = 3;
    0x0002198c srl v0, a1, 0xa               |     v0 = a1 >> 0xa;
    0x00021990 beq t3, v0, 0x219c4           |     
                                             |     while (1) {
                                             | label_2:
    0x00021994 lw ra, 0x2c(sp)               |         ra = *(var_2ch_2);
                                             |         if (s1 == 0) {
    0x00021998 beqz s1, 0x219e8              |             goto label_14;
                                             |         }
    0x0002199c lw a0, (s1)                   |         a0 = *(s1);
    0x000219a0 addu v1, a0, v1               |         v1 = a0 + v1;
    0x000219a4 sw v1, (s1)                   |         *(s1) = v1;
    0x000219a8 lw s3, 0x28(sp)               |         s3 = *(var_28h_2);
    0x000219ac lw s2, 0x24(sp)               |         s2 = *(var_24h_2);
    0x000219b0 lw s1, 0x20(sp)               |         s1 = *(var_20h_2);
    0x000219b4 lw s0, 0x1c(sp)               |         s0 = *(var_1ch_2);
    0x000219b8 move v0, a2                   |         v0 = a2;
    0x000219bc addiu sp, sp, 0x30            |         
    0x000219c0 jr ra                         |         return v1;
    0x000219c4 srl a1, a1, 2                 |         a1 >>= 2;
    0x000219c8 sb v0, (t7)                   |         *(t7) = v0;
    0x000219cc sb a1, 1(t7)                  |         *((t7 + 1)) = a1;
    0x000219d0 addiu v1, v1, 2               |         v1 += 2;
    0x000219d4 b 0x21994                     |         
                                             |     }
                                             | label_13:
    0x000219d8 srl a1, a1, 4                 |     a1 >>= 4;
    0x000219dc sb a1, (t7)                   |     *(t7) = a1;
    0x000219e0 addiu v1, v1, 1               |     v1++;
    0x000219e4 b 0x21994                     |     goto label_2;
                                             | label_14:
    0x000219e8 move v0, a2                   |     v0 = a2;
    0x000219ec b 0x218fc                     |     goto label_3;
                                             | label_9:
    0x000219f0 srl v1, a1, 0x10              |     v1 = a1 >> 0x10;
    0x000219f4 sb v1, (t7)                   |     *(t7) = v1;
    0x000219f8 sb v0, 1(t7)                  |     *((t7 + 1)) = v0;
    0x000219fc addiu t7, t7, 3               |     t7 += 3;
    0x00021a00 subu v0, s3, t7               |     __asm ("subu v0, s3, t7");
    0x00021a04 sltiu v0, v0, 3               |     v0 = (v0 < 3) ? 1 : 0;
    0x00021a08 sb a1, -1(t7)                 |     *((t7 - 1)) = a1;
                                             |     if (v0 != 0) {
    0x00021a0c bnez v0, 0x21a38              |         goto label_15;
                                             |     }
    0x00021a10 subu v0, a3, t7               |     __asm ("subu v0, a3, t7");
    0x00021a14 addiu t9, t9, 1               |     t9++;
                                             |     if (t8 != t7) {
    0x00021a18 bne t8, t7, 0x2184c           |         goto label_4;
                                             |     }
    0x00021a1c move a3, v0                   |     a3 = v0;
                                             |     if (s1 != 0) {
    0x00021a20 beqz s1, 0x21a30              |         
    0x00021a24 lw v1, (s1)                   |         v1 = *(s1);
    0x00021a28 addiu v1, v1, 0x300           |         v1 += aav.0x00000300;
    0x00021a2c sw v1, (s1)                   |         *(s1) = v1;
                                             |     }
    0x00021a30 move v0, t7                   |     v0 = t7;
    0x00021a34 b 0x21834                     |     goto label_5;
                                             | label_15:
    0x00021a38 move v0, a2                   |     v0 = a2;
                                             |     if (s1 == 0) {
    0x00021a3c beqz s1, 0x218fc              |         goto label_3;
                                             |     }
    0x00021a40 lw v1, (s1)                   |     v1 = *(s1);
    0x00021a44 addu v1, v1, t9               |     v1 += t9;
    0x00021a48 sw v1, (s1)                   |     *(s1) = v1;
    0x00021a4c b 0x218fc                     |     goto label_3;
                                             | }

[*] Function mmap used 1 times libsoap.so