[*] Binary protection state of ccm.ko

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


[*] Function system tear down of ccm.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/crypto/ccm.ko @ 0x80007d0 */
                                                                                 | #include <stdint.h>
                                                                                 |  
    ; (fcn) sym.crypto_ccm_create_common ()                                      | void crypto_ccm_create_common (int32_t arg_1ch, int32_t arg_20h, int32_t arg_28h, int32_t arg_2fh, int32_t arg_a8h, int32_t arg1, int32_t arg2) {
                                                                                 |     int32_t var_40h;
                                                                                 |     int32_t var_0h;
                                                                                 |     int32_t var_ch;
                                                                                 |     int32_t var_14h;
                                                                                 |     r0 = arg1;
                                                                                 |     r1 = arg2;
    0x080007d0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}                         |     
    0x080007d4 mov r7, r0                                                        |     r7 = r0;
    0x080007d8 mov r6, r2                                                        |     r6 = r2;
    0x080007dc sub sp, sp, 0x14                                                  |     
    0x080007e0 mov r0, r1                                                        |     r0 = r1;
    0x080007e4 add r2, sp, 0xc                                                   |     r2 += var_ch;
    0x080007e8 mov r1, 3                                                         |     r1 = 3;
    0x080007ec mov r5, r3                                                        |     r5 = r3;
    0x080007f0 stmdaeq r0, {r0, r1, r4, r6, r8, sb, ip, sp}                      |     __asm ("stmdaeq r0, {r0, r1, r4, r6, r8, sb, ip, sp}");
    0x080007f4 subs r4, r0, 0                                                    |     r4 = r0 - 0;
                                                                                 |     if (r4 != r0) {
    0x080007f8 beq 0x8000808                                                     |         
                                                                                 | label_1:
    0x080007fc mov r0, r4                                                        |         r0 = r4;
    0x08000800 add sp, sp, 0x14                                                  |         
    0x08000804 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                          |         
                                                                                 |     }
    0x08000808 stmdaeq r0, {r0, r1, r2, r4, r6, r8, sb, ip, sp}                  |     __asm ("stmdaeq r0, {r0, r1, r2, r4, r6, r8, sb, ip, sp}");
    0x0800080c stmdaeq r0, {r0, r1, r2, r4, r6, r8, sb, ip, sp}                  |     __asm ("stmdaeq r0, {r0, r1, r2, r4, r6, r8, sb, ip, sp}");
    0x08000810 mov r1, 0xdc0                                                     |     r1 = 0xdc0;
    0x08000814 ldr r0, [r3, 0x28]                                                |     r0 = *((r3 + 0x28));
    0x08000818 stmdaeq r0, {r0, r1, r3, r4, r6, r8, sb, ip, sp}                  |     __asm ("stmdaeq r0, {r0, r1, r3, r4, r6, r8, sb, ip, sp}");
    0x0800081c subs r8, r0, 0                                                    |     r8 = r0 - 0;
                                                                                 |     if (r8 == r0) {
    0x08000820 beq 0x8000a1c                                                     |         goto label_3;
                                                                                 |     }
    0x08000824 ldr r1, [sp, 0xc]                                                 |     r1 = var_ch;
    0x08000828 mov r2, r5                                                        |     r2 = r5;
    0x0800082c add sb, r8, 0x80                                                  |     sb = r8 + 0x80;
    0x08000830 add r5, r8, 0x25c                                                 |     r5 = r8 + 0x25c;
    0x08000834 mov r3, r4                                                        |     r3 = r4;
    0x08000838 orr r1, r1, 0x80                                                  |     r1 |= 0x80;
    0x0800083c mov r0, r5                                                        |     r0 = r5;
    0x08000840 str r1, [sp]                                                      |     *(sp) = r1;
    0x08000844 mov r1, sb                                                        |     r1 = sb;
    0x08000848 add sl, r8, 0x240                                                 |     sl = r8 + 0x240;
    0x0800084c stmdaeq r0, {r0, r1, r2, r3, r4, r5, r6, r8, sb, ip, sp}          |     __asm ("stmdaeq r0, {r0, r1, r2, r3, r4, r5, r6, r8, sb, ip, sp}");
    0x08000850 subs r4, r0, 0                                                    |     r4 = r0 - 0;
                                                                                 |     if (r4 != r0) {
    0x08000854 bne 0x8000888                                                     |         goto label_2;
                                                                                 |     }
    0x08000858 ldr fp, [r8, 0x264]                                               |     fp = *((r8 + 0x264));
    0x0800085c mov r2, 7                                                         |     r2 = 7;
    0x08000860 stmdaeq r0, {r5, r6, r7, r8, sl, ip}                              |     __asm ("stmdaeq r0, {r5, r6, r7, r8, sl, ip}");
    0x08000864 stmdaeq r0, {r5, r6, r7, r8, sl, ip}                              |     __asm ("stmdaeq r0, {r5, r6, r7, r8, sl, ip}");
    0x08000868 add r0, fp, 0x28                                                  |     r0 += arg_28h;
    0x0800086c stmdaeq r0, {r0, r1, r7, r8, sb, ip, sp}                          |     __asm ("stmdaeq r0, {r0, r1, r7, r8, sb, ip, sp}");
    0x08000870 subs r3, r0, 0                                                    |     r3 = r0 - 0;
                                                                                 |     if (r3 == r0) {
    0x08000874 bne 0x8000884                                                     |         
    0x08000878 ldr r2, [fp, -0x40]                                               |         r2 = var_40h;
    0x0800087c cmp r2, 0x10                                                      |         
                                                                                 |         if (r2 == 0x10) {
    0x08000880 beq 0x80008ac                                                     |             goto label_4;
                                                                                 |         }
                                                                                 |     }
                                                                                 | label_0:
    0x08000884 mvn r4, 0x15                                                      |     r4 = ~0x15;
                                                                                 |     do {
                                                                                 | label_2:
    0x08000888 mov r0, r5                                                        |         r0 = r5;
    0x0800088c stmdaeq r0, {r0, r1, r3, r5, r8, sb, ip, sp}                      |         __asm ("stmdaeq r0, {r0, r1, r3, r5, r8, sb, ip, sp}");
    0x08000890 mov r0, sl                                                        |         r0 = sl;
    0x08000894 stmdaeq r0, {r0, r1, r3, r5, r8, sb, ip, sp}                      |         __asm ("stmdaeq r0, {r0, r1, r3, r5, r8, sb, ip, sp}");
    0x08000898 mov r0, r8                                                        |         r0 = r8;
    0x0800089c stmdaeq r0, {r0, r1, r2, r3, r5, r8, sb, ip, sp}                  |         __asm ("stmdaeq r0, {r0, r1, r2, r3, r5, r8, sb, ip, sp}");
    0x080008a0 mov r0, r4                                                        |         r0 = r4;
    0x080008a4 add sp, sp, 0x14                                                  |         
    0x080008a8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                          |         
                                                                                 | label_4:
    0x080008ac ldr r0, [sp, 0xc]                                                 |         r0 = var_ch;
    0x080008b0 mov r2, r6                                                        |         r2 = r6;
    0x080008b4 str r0, [sp]                                                      |         *(sp) = r0;
    0x080008b8 mov r1, sb                                                        |         r1 = sb;
    0x080008bc mov r0, sl                                                        |         r0 = sl;
    0x080008c0 stmdaeq r0, {r0, r1, r2, r7, r8, sb, ip, sp}                      |         __asm ("stmdaeq r0, {r0, r1, r2, r7, r8, sb, ip, sp}");
    0x080008c4 subs r4, r0, 0                                                    |         r4 = r0 - 0;
    0x080008c8 bne 0x8000888                                                     |         
                                                                                 |     } while (r4 != r0);
    0x080008cc ldr r4, [r8, 0x248]                                               |     r4 = *((r8 + 0x248));
    0x080008d0 mov r2, 4                                                         |     r2 = 4;
    0x080008d4 stmdaeq r0, {r3, r5, r6, r7, r8, sl, ip}                          |     __asm ("stmdaeq r0, {r3, r5, r6, r7, r8, sl, ip}");
    0x080008d8 stmdaeq r0, {r3, r5, r6, r7, r8, sl, ip}                          |     __asm ("stmdaeq r0, {r3, r5, r6, r7, r8, sl, ip}");
    0x080008dc add r0, r4, 0x28                                                  |     r0 = r4 + 0x28;
    0x080008e0 stmdaeq r0, {r0, r1, r7, r8, sb, ip, sp}                          |     __asm ("stmdaeq r0, {r0, r1, r7, r8, sb, ip, sp}");
    0x080008e4 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x080008e8 bne 0x8000884                                                     |         goto label_0;
                                                                                 |     }
    0x080008ec ldr r3, [r4, -0x24]                                               |     r3 = *((r4 - 0x24));
    0x080008f0 cmp r3, 0x10                                                      |     
                                                                                 |     if (r3 != 0x10) {
    0x080008f4 bne 0x8000884                                                     |         goto label_0;
                                                                                 |     }
    0x080008f8 ldr r3, [r4, 0x14]                                                |     r3 = *((r4 + 0x14));
    0x080008fc cmp r3, 1                                                         |     
                                                                                 |     if (r3 != 1) {
    0x08000900 bne 0x8000884                                                     |         goto label_0;
                                                                                 |     }
    0x08000904 add r6, r4, 0x2c                                                  |     r6 = r4 + 0x2c;
    0x08000908 add r1, fp, 0x2f                                                  |     r1 += arg_2fh;
    0x0800090c mov r0, r6                                                        |     r0 = r6;
    0x08000910 stmdaeq r0, {r0, r1, r3, r7, r8, sb, ip, sp}                      |     __asm ("stmdaeq r0, {r0, r1, r3, r7, r8, sb, ip, sp}");
    0x08000914 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x08000918 bne 0x8000884                                                     |         goto label_0;
                                                                                 |     }
    0x0800091c mov r3, r6                                                        |     r3 = r6;
    0x08000920 add r0, r8, 0xa8                                                  |     r0 = r8 + 0xa8;
    0x08000924 stmdaeq r0, {r4, r5, r6, r7, r8, sl, ip}                          |     __asm ("stmdaeq r0, {r4, r5, r6, r7, r8, sl, ip}");
    0x08000928 stmdaeq r0, {r4, r5, r6, r7, r8, sl, ip}                          |     __asm ("stmdaeq r0, {r4, r5, r6, r7, r8, sl, ip}");
    0x0800092c mov r1, 0x80                                                      |     r1 = 0x80;
    0x08000930 stmdaeq r0, {r0, r1, r2, r4, r5, r6, r8, sb, ip, sp}              |     __asm ("stmdaeq r0, {r0, r1, r2, r4, r5, r6, r8, sb, ip, sp}");
    0x08000934 cmp r0, 0x7f                                                      |     
                                                                                 |     if (r0 > 0x7f) {
    0x08000938 bgt 0x8000a24                                                     |         goto label_5;
                                                                                 |     }
    0x0800093c add r3, fp, 0xa8                                                  |     r3 += arg_a8h;
    0x08000940 add r0, r8, 0x128                                                 |     r0 = r8 + 0x128;
    0x08000944 str r3, [sp]                                                      |     *(sp) = r3;
    0x08000948 stmdaeq r0, {r3, r4, r5, r6, r7, r8, sl, ip}                      |     __asm ("stmdaeq r0, {r3, r4, r5, r6, r7, r8, sl, ip}");
    0x0800094c stmdaeq r0, {r3, r4, r5, r6, r7, r8, sl, ip}                      |     __asm ("stmdaeq r0, {r3, r4, r5, r6, r7, r8, sl, ip}");
    0x08000950 add r3, r4, 0xa8                                                  |     r3 = r4 + 0xa8;
    0x08000954 mov r1, 0x80                                                      |     r1 = 0x80;
    0x08000958 stmdaeq r0, {r0, r1, r2, r4, r5, r6, r8, sb, ip, sp}              |     __asm ("stmdaeq r0, {r0, r1, r2, r4, r5, r6, r8, sb, ip, sp}");
    0x0800095c cmp r0, 0x7f                                                      |     
                                                                                 |     if (r0 > 0x7f) {
    0x08000960 bgt 0x8000a24                                                     |         goto label_5;
                                                                                 |     }
    0x08000964 ldr r2, [r4, 0x20]                                                |     r2 = *((r4 + 0x20));
    0x08000968 mov r0, r7                                                        |     r0 = r7;
    0x0800096c ldr r3, [fp, 0x20]                                                |     r3 = *(arg_20h);
    0x08000970 mov r1, r8                                                        |     r1 = r8;
    0x08000974 add r3, r3, r2                                                    |     r3 += r2;
    0x08000978 add r3, r3, r3, lsr 31                                            |     r3 += (r3 >> 31);
    0x0800097c asr r3, r3, 1                                                     |     r3 >>= 1;
    0x08000980 str r3, [r8, 0xa0]                                                |     *((r8 + 0xa0)) = r3;
    0x08000984 mov r3, 1                                                         |     r3 = 1;
    0x08000988 str r3, [r8, 0x94]                                                |     *((r8 + 0x94)) = r3;
    0x0800098c ldr r3, [fp, 0x1c]                                                |     r3 = *(arg_1ch);
    0x08000990 ldr r2, [r4, 0x1c]                                                |     r2 = *((r4 + 0x1c));
    0x08000994 orr r3, r3, r2                                                    |     r3 |= r2;
    0x08000998 str r3, [r8, 0x9c]                                                |     *((r8 + 0x9c)) = r3;
    0x0800099c mov r3, 0x10                                                      |     r3 = 0x10;
    0x080009a0 str r3, [r8, 0x58]                                                |     *((r8 + 0x58)) = r3;
    0x080009a4 ldr r2, [r4, -0x20]                                               |     r2 = *((r4 - 0x20));
    0x080009a8 str r2, [r8, 0x60]                                                |     *((r8 + 0x60)) = r2;
    0x080009ac str r3, [r8, 0x5c]                                                |     *((r8 + 0x5c)) = r3;
    0x080009b0 mov r3, 8                                                         |     r3 = 8;
    0x080009b4 str r3, [r8, 0x98]                                                |     *((r8 + 0x98)) = r3;
    0x080009b8 stmdaeq r0, {r5, sb}                                              |     __asm ("stmdaeq r0, {r5, sb}");
    0x080009bc stmdaeq r0, {r5, sb}                                              |     __asm ("stmdaeq r0, {r5, sb}");
    0x080009c0 str r3, [r8, 0x50]                                                |     *((r8 + 0x50)) = r3;
    0x080009c4 stmdaeq r0, {r5, r7, r8}                                          |     __asm ("stmdaeq r0, {r5, r7, r8}");
    0x080009c8 stmdaeq r0, {r5, r7, r8}                                          |     __asm ("stmdaeq r0, {r5, r7, r8}");
    0x080009cc str r3, [r8, 0x54]                                                |     *((r8 + 0x54)) = r3;
    0x080009d0 stmdaeq r0, {r2, r3, r4, r8, sb}                                  |     __asm ("stmdaeq r0, {r2, r3, r4, r8, sb}");
    0x080009d4 stmdaeq r0, {r2, r3, r4, r8, sb}                                  |     __asm ("stmdaeq r0, {r2, r3, r4, r8, sb}");
    0x080009d8 str r3, [r8, 0x40]                                                |     *((r8 + 0x40)) = r3;
    0x080009dc stmdaeq r0, {r4, r5, r6}                                          |     __asm ("stmdaeq r0, {r4, r5, r6}");
    0x080009e0 stmdaeq r0, {r4, r5, r6}                                          |     __asm ("stmdaeq r0, {r4, r5, r6}");
    0x080009e4 str r3, [r8, 0x44]                                                |     *((r8 + 0x44)) = r3;
    0x080009e8 stmdaeq r0, {r2, r3, r6, r7, r8, sb, ip}                          |     __asm ("stmdaeq r0, {r2, r3, r6, r7, r8, sb, ip}");
    0x080009ec stmdaeq r0, {r2, r3, r6, r7, r8, sb, ip}                          |     __asm ("stmdaeq r0, {r2, r3, r6, r7, r8, sb, ip}");
    0x080009f0 str r3, [r8, 0x48]                                                |     *((r8 + 0x48)) = r3;
    0x080009f4 stmdaeq r0, {r2, r3, r5, r6, r7, r8, ip}                          |     __asm ("stmdaeq r0, {r2, r3, r5, r6, r7, r8, ip}");
    0x080009f8 stmdaeq r0, {r2, r3, r5, r6, r7, r8, ip}                          |     __asm ("stmdaeq r0, {r2, r3, r5, r6, r7, r8, ip}");
    0x080009fc str r3, [r8, 0x4c]                                                |     *((r8 + 0x4c)) = r3;
    0x08000a00 stmdaeq r0, {r6, r7, sb}                                          |     __asm ("stmdaeq r0, {r6, r7, sb}");
    0x08000a04 stmdaeq r0, {r6, r7, sb}                                          |     __asm ("stmdaeq r0, {r6, r7, sb}");
    0x08000a08 str r3, [r8]                                                      |     *(r8) = r3;
    0x08000a0c stmdaeq r0, {r0, r1, r3, r4, r5, r6, r8, sb, ip, sp}              |     __asm ("stmdaeq r0, {r0, r1, r3, r4, r5, r6, r8, sb, ip, sp}");
    0x08000a10 subs r4, r0, 0                                                    |     r4 = r0 - 0;
                                                                                 |     if (r4 == r0) {
    0x08000a14 beq 0x80007fc                                                     |         goto label_1;
                                                                                 |     }
    0x08000a18 b 0x8000888                                                       |     goto label_2;
                                                                                 | label_3:
    0x08000a1c mvn r4, 0xb                                                       |     r4 = ~0xb;
    0x08000a20 b 0x80007fc                                                       |     goto label_1;
                                                                                 | label_5:
    0x08000a24 mvn r4, 0x23                                                      |     r4 = ~0x23;
    0x08000a28 b 0x8000888                                                       |     goto label_2;
                                                                                 | }

[*] Function system used 1 times ccm.ko