[*] Binary protection state of ip_set_hash_netiface.ko

  
  	No RELRO       No Canary found   NX disabled  REL          No RPATH     No RUNPATH   Symbols


[*] Function sprintf tear down of ip_set_hash_netiface.ko

    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/modules/5.10.52-axis8/kernel/net/netfilter/ipset/ip_set_hash_netiface.ko @ 0x8000e90 */
                                                                     | #include <stdint.h>
                                                                     |  
                                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                     |  
    ; (fcn) sym.hash_netiface4_flush ()                              | void hash_netiface4_flush (int32_t arg_8h, int32_t arg_10h, int32_t arg1) {
                                                                     |     int32_t var_0h_2;
                                                                     |     int32_t var_4h;
                                                                     |     int32_t var_8h;
                                                                     |     int32_t var_ch;
                                                                     |     int32_t var_14h;
                                                                     |     r0 = arg1;
    0x08000e90 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}             |     
    0x08000e94 mov r5, r0                                            |     r5 = r0;
    0x08000e98 mov r7, 0                                             |     r7 = 0;
    0x08000e9c sub sp, sp, 0x14                                      |     
    0x08000ea0 mov r3, sp                                            |     r3 = sp;
    0x08000ea4 bic r3, r3, 0x1fc0                                    |     r3 = BIT_MASK (r3, 0x1fc0);
    0x08000ea8 bic r3, r3, 0x3f                                      |     r3 = BIT_MASK (r3, 0x3f);
    0x08000eac str r3, [sp, 8]                                       |     var_8h = r3;
    0x08000eb0 ldr r3, [r0, 0x54]                                    |     r3 = *((r0 + 0x54));
    0x08000eb4 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x08000eb8 ldr fp, [r3]                                          |     fp = *(r3);
                                                                     | label_1:
    0x08000ebc ldrb r3, [fp, 8]                                      |     r3 = *(arg_8h);
    0x08000ec0 cmp r3, 9                                             |     
                                                                     |     if (r3 <= 9) {
    0x08000ec4 subhi r3, r3, 0xa                                     |         r3 -= 0xa;
                                                                     |     }
                                                                     |     if (r3 <= 9) {
    0x08000ec8 movhi r1, 1                                           |         r1 = 1;
                                                                     |     }
                                                                     |     if (r3 > 9) {
    0x08000ecc movls r3, 1                                           |         r3 = 1;
                                                                     |     }
                                                                     |     if (r3 <= 9) {
    0x08000ed0 lslhi r3, r1, r3                                      |         r3 = r1 << r3;
                                                                     |     }
    0x08000ed4 cmp r7, r3                                            |     
                                                                     |     if (r7 >= r3) {
    0x08000ed8 bhs 0x8000fb4                                         |         goto label_2;
                                                                     |     }
    0x08000edc ldr r2, [sp, 8]                                       |     r2 = var_8h;
    0x08000ee0 lsl r1, r7, 3                                         |     r1 = r7 << 3;
    0x08000ee4 str r1, [sp]                                          |     *(sp) = r1;
    0x08000ee8 ldr r3, [r2, 4]                                       |     r3 = *((r2 + 4));
    0x08000eec add r3, r3, 0x200                                     |     r3 += 0x200;
    0x08000ef0 add r3, r3, 1                                         |     r3++;
    0x08000ef4 str r3, [r2, 4]                                       |     *((r2 + 4)) = r3;
    0x08000ef8 ldrb r0, [fp, 8]                                      |     r0 = *(arg_8h);
    0x08000efc mov sb, 1                                             |     sb = 1;
    0x08000f00 mov r6, 0                                             |     r6 = 0;
    0x08000f04 cmp r0, 9                                             |     
                                                                     |     if (r0 <= 9) {
    0x08000f08 lslhi r4, r7, 0xa                                     |         r4 = r7 << 0xa;
                                                                     |     }
    0x08000f0c add r7, r7, 1                                         |     r7++;
                                                                     |     if (r0 > 9) {
    0x08000f10 movls r4, 0                                           |         r4 = 0;
                                                                     |     }
    0x08000f14 str r7, [sp, 4]                                       |     var_4h = r7;
    0x08000f18 add r3, fp, r4, lsl 2                                 |     r3 = fp + (r4 << 2);
    0x08000f1c lsl r8, r7, 0xa                                       |     r8 = r7 << 0xa;
    0x08000f20 add sl, r3, 0x10                                      |     sl = r3 + 0x10;
    0x08000f24 b 0x8000f48                                           |     goto label_3;
                                                                     | label_0:
    0x08000f28 add r3, r4, 4                                         |     r3 = r4 + 4;
    0x08000f2c mov r0, r7                                            |     r0 = r7;
    0x08000f30 mov r1, 0                                             |     r1 = 0;
    0x08000f34 add r3, fp, r3, lsl 2                                 |     r3 = fp + (r3 << 2);
    0x08000f38 str r6, [r3, 4]                                       |     *((r3 + 4)) = r6;
    0x08000f3c stmdaeq r0, {r1, r2, r4, r5, sb, sl, fp, pc}          |     __asm ("stmdaeq r0, {r1, r2, r4, r5, sb, sl, fp, pc}");
    0x08000f40 ldrb r0, [fp, 8]                                      |     r0 = *(arg_8h);
                                                                     |     do {
    0x08000f44 add r4, r4, 1                                         |         r4++;
                                                                     | label_3:
    0x08000f48 cmp r0, 9                                             |         
                                                                     |         if (r0 > 9) {
    0x08000f4c lslls r3, sb, r0                                      |             r3 = sb << r0;
                                                                     |         }
                                                                     |         if (r0 <= 9) {
    0x08000f50 movhi r3, r8                                          |             r3 = r8;
                                                                     |         }
    0x08000f54 cmp r4, r3                                            |         
                                                                     |         if (r4 >= r3) {
    0x08000f58 bhs 0x8000f84                                         |             goto label_4;
                                                                     |         }
    0x08000f5c ldr r7, [sl, 4]!                                      |         r7 = *((sl += 4));
    0x08000f60 cmp r7, 0                                             |         
    0x08000f64 beq 0x8000f44                                         |         
                                                                     |     } while (r7 == 0);
    0x08000f68 ldrsb r3, [r5, 0x32]                                  |     r3 = *((r5 + 0x32));
    0x08000f6c cmp r3, 0                                             |     
                                                                     |     if (r3 >= 0) {
    0x08000f70 bge 0x8000f28                                         |         goto label_0;
                                                                     |     }
    0x08000f74 mov r1, r7                                            |     r1 = r7;
    0x08000f78 mov r0, r5                                            |     r0 = r5;
    0x08000f7c bl 0x8000b3c                                          |     hash_netiface4_ext_cleanup ();
    0x08000f80 b 0x8000f28                                           |     goto label_0;
                                                                     | label_4:
    0x08000f84 ldr r3, [fp, 0x10]                                    |     r3 = *(arg_10h);
    0x08000f88 mov ip, 0                                             |     
    0x08000f8c ldr r2, [sp]                                          |     r2 = *(sp);
    0x08000f90 movw r1, 0x201                                        |     r1 = 0x201;
    0x08000f94 ldr r0, [pc, 0x34]                                    |     r0 = *(0x8000fcc);
    0x08000f98 ldr r7, [sp, 4]                                       |     r7 = var_4h;
    0x08000f9c str ip, [r3, r2]                                      |     *((r3 + r2)) = ip;
    0x08000fa0 ldr r3, [fp, 0x10]                                    |     r3 = *(arg_10h);
    0x08000fa4 add r3, r3, r2                                        |     r3 += r2;
    0x08000fa8 str ip, [r3, 4]                                       |     *((r3 + 4)) = ip;
    0x08000fac stmdaeq r0, {r1, r3, sb, sl, fp, pc}                  |     __asm ("stmdaeq r0, {r1, r3, sb, sl, fp, pc}");
    0x08000fb0 b 0x8000ebc                                           |     goto label_1;
                                                                     | label_2:
    0x08000fb4 ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x08000fb8 mov r2, 0x108                                         |     r2 = 0x108;
    0x08000fbc mov r1, 0                                             |     r1 = 0;
    0x08000fc0 add r0, r3, 0x68                                      |     r0 = r3 + 0x68;
    0x08000fc4 add sp, sp, 0x14                                      |     
    0x08000fc8 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}              |     
    0x08000fcc stmdaeq r0, {r1, r2, r3, sb, sl, fp, pc}              |     __asm ("stmdaeq r0, {r1, r2, r3, sb, sl, fp, pc}");
    0x08000fd0 stmdaeq r0, {r4, r5, r6}                              |     __asm ("stmdaeq r0, {r4, r5, r6}");
                                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/modules/5.10.52-axis8/kernel/net/netfilter/ipset/ip_set_hash_netiface.ko @ 0x8000bc0 */
                                                                     | #include <stdint.h>
                                                                     |  
                                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                     |  
    ; (fcn) sym.hash_netiface6_flush ()                              | void hash_netiface6_flush (int32_t arg_8h, int32_t arg_10h, int32_t arg1) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_4h;
                                                                     |     int32_t var_8h;
                                                                     |     int32_t var_ch;
                                                                     |     int32_t var_14h;
                                                                     |     r0 = arg1;
    0x08000bc0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}             |     
    0x08000bc4 mov r5, r0                                            |     r5 = r0;
    0x08000bc8 mov r7, 0                                             |     r7 = 0;
    0x08000bcc sub sp, sp, 0x14                                      |     
    0x08000bd0 mov r3, sp                                            |     r3 = sp;
    0x08000bd4 bic r3, r3, 0x1fc0                                    |     r3 = BIT_MASK (r3, 0x1fc0);
    0x08000bd8 bic r3, r3, 0x3f                                      |     r3 = BIT_MASK (r3, 0x3f);
    0x08000bdc str r3, [sp, 8]                                       |     var_8h = r3;
    0x08000be0 ldr r3, [r0, 0x54]                                    |     r3 = *((r0 + 0x54));
    0x08000be4 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x08000be8 ldr fp, [r3]                                          |     fp = *(r3);
                                                                     | label_1:
    0x08000bec ldrb r3, [fp, 8]                                      |     r3 = *(arg_8h);
    0x08000bf0 cmp r3, 9                                             |     
                                                                     |     if (r3 <= 9) {
    0x08000bf4 subhi r3, r3, 0xa                                     |         r3 -= 0xa;
                                                                     |     }
                                                                     |     if (r3 <= 9) {
    0x08000bf8 movhi r1, 1                                           |         r1 = 1;
                                                                     |     }
                                                                     |     if (r3 > 9) {
    0x08000bfc movls r3, 1                                           |         r3 = 1;
                                                                     |     }
                                                                     |     if (r3 <= 9) {
    0x08000c00 lslhi r3, r1, r3                                      |         r3 = r1 << r3;
                                                                     |     }
    0x08000c04 cmp r7, r3                                            |     
                                                                     |     if (r7 >= r3) {
    0x08000c08 bhs 0x8000ce4                                         |         goto label_2;
                                                                     |     }
    0x08000c0c ldr r2, [sp, 8]                                       |     r2 = var_8h;
    0x08000c10 lsl r1, r7, 3                                         |     r1 = r7 << 3;
    0x08000c14 str r1, [sp]                                          |     *(sp) = r1;
    0x08000c18 ldr r3, [r2, 4]                                       |     r3 = *((r2 + 4));
    0x08000c1c add r3, r3, 0x200                                     |     r3 += 0x200;
    0x08000c20 add r3, r3, 1                                         |     r3++;
    0x08000c24 str r3, [r2, 4]                                       |     *((r2 + 4)) = r3;
    0x08000c28 ldrb r0, [fp, 8]                                      |     r0 = *(arg_8h);
    0x08000c2c mov sb, 1                                             |     sb = 1;
    0x08000c30 mov r6, 0                                             |     r6 = 0;
    0x08000c34 cmp r0, 9                                             |     
                                                                     |     if (r0 <= 9) {
    0x08000c38 lslhi r4, r7, 0xa                                     |         r4 = r7 << 0xa;
                                                                     |     }
    0x08000c3c add r7, r7, 1                                         |     r7++;
                                                                     |     if (r0 > 9) {
    0x08000c40 movls r4, 0                                           |         r4 = 0;
                                                                     |     }
    0x08000c44 str r7, [sp, 4]                                       |     var_4h = r7;
    0x08000c48 add r3, fp, r4, lsl 2                                 |     r3 = fp + (r4 << 2);
    0x08000c4c lsl r8, r7, 0xa                                       |     r8 = r7 << 0xa;
    0x08000c50 add sl, r3, 0x10                                      |     sl = r3 + 0x10;
    0x08000c54 b 0x8000c78                                           |     goto label_3;
                                                                     | label_0:
    0x08000c58 add r3, r4, 4                                         |     r3 = r4 + 4;
    0x08000c5c mov r0, r7                                            |     r0 = r7;
    0x08000c60 mov r1, 0                                             |     r1 = 0;
    0x08000c64 add r3, fp, r3, lsl 2                                 |     r3 = fp + (r3 << 2);
    0x08000c68 str r6, [r3, 4]                                       |     *((r3 + 4)) = r6;
    0x08000c6c stmdaeq r0, {r1, r2, r4, r5, sb, sl, fp, pc}          |     __asm ("stmdaeq r0, {r1, r2, r4, r5, sb, sl, fp, pc}");
    0x08000c70 ldrb r0, [fp, 8]                                      |     r0 = *(arg_8h);
                                                                     |     do {
    0x08000c74 add r4, r4, 1                                         |         r4++;
                                                                     | label_3:
    0x08000c78 cmp r0, 9                                             |         
                                                                     |         if (r0 > 9) {
    0x08000c7c lslls r3, sb, r0                                      |             r3 = sb << r0;
                                                                     |         }
                                                                     |         if (r0 <= 9) {
    0x08000c80 movhi r3, r8                                          |             r3 = r8;
                                                                     |         }
    0x08000c84 cmp r4, r3                                            |         
                                                                     |         if (r4 >= r3) {
    0x08000c88 bhs 0x8000cb4                                         |             goto label_4;
                                                                     |         }
    0x08000c8c ldr r7, [sl, 4]!                                      |         r7 = *((sl += 4));
    0x08000c90 cmp r7, 0                                             |         
    0x08000c94 beq 0x8000c74                                         |         
                                                                     |     } while (r7 == 0);
    0x08000c98 ldrsb r3, [r5, 0x32]                                  |     r3 = *((r5 + 0x32));
    0x08000c9c cmp r3, 0                                             |     
                                                                     |     if (r3 >= 0) {
    0x08000ca0 bge 0x8000c58                                         |         goto label_0;
                                                                     |     }
    0x08000ca4 mov r1, r7                                            |     r1 = r7;
    0x08000ca8 mov r0, r5                                            |     r0 = r5;
    0x08000cac bl 0x8000b3c                                          |     hash_netiface4_ext_cleanup ();
    0x08000cb0 b 0x8000c58                                           |     goto label_0;
                                                                     | label_4:
    0x08000cb4 ldr r3, [fp, 0x10]                                    |     r3 = *(arg_10h);
    0x08000cb8 mov ip, 0                                             |     
    0x08000cbc ldr r2, [sp]                                          |     r2 = *(sp);
    0x08000cc0 movw r1, 0x201                                        |     r1 = 0x201;
    0x08000cc4 ldr r0, [pc, 0x34]                                    |     r0 = *(0x8000cfc);
    0x08000cc8 ldr r7, [sp, 4]                                       |     r7 = var_4h;
    0x08000ccc str ip, [r3, r2]                                      |     *((r3 + r2)) = ip;
    0x08000cd0 ldr r3, [fp, 0x10]                                    |     r3 = *(arg_10h);
    0x08000cd4 add r3, r3, r2                                        |     r3 += r2;
    0x08000cd8 str ip, [r3, 4]                                       |     *((r3 + 4)) = ip;
    0x08000cdc stmdaeq r0, {r1, r3, sb, sl, fp, pc}                  |     __asm ("stmdaeq r0, {r1, r3, sb, sl, fp, pc}");
    0x08000ce0 b 0x8000bec                                           |     goto label_1;
                                                                     | label_2:
    0x08000ce4 ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x08000ce8 movw r2, 0x408                                        |     r2 = 0x408;
    0x08000cec mov r1, 0                                             |     r1 = 0;
    0x08000cf0 add r0, r3, 0x74                                      |     r0 = r3 + 0x74;
    0x08000cf4 add sp, sp, 0x14                                      |     
    0x08000cf8 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}              |     
    0x08000cfc stmdaeq r0, {r1, r2, r3, sb, sl, fp, pc}              |     __asm ("stmdaeq r0, {r1, r2, r3, sb, sl, fp, pc}");
    0x08000d00 stmdaeq r0, {r4, r5, r6}                              |     __asm ("stmdaeq r0, {r4, r5, r6}");
                                                                     | }

[*] Function sprintf used 1 times ip_set_hash_netiface.ko