[*] Binary protection state of ctr.ko

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


[*] Function sprintf tear down of ctr.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/ctr.ko @ 0x800024c */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) sym.crypto_rfc3686_create ()                                     | void crypto_rfc3686_create (int32_t arg1, int32_t arg2) {
                                                                             |     int32_t var_0h;
                                                                             |     int32_t var_ch;
                                                                             |     int32_t var_10h;
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
    0x0800024c push {r4, r5, r6, r7, r8, lr}                                 |     
    0x08000250 mov r7, r0                                                    |     r7 = r0;
    0x08000254 mov r5, r1                                                    |     r5 = r1;
    0x08000258 sub sp, sp, 0x10                                              |     
    0x0800025c mov r0, r1                                                    |     r0 = r1;
    0x08000260 add r2, sp, 0xc                                               |     r2 += var_ch;
    0x08000264 mov r1, 5                                                     |     r1 = 5;
    0x08000268 stmdaeq r0, {r0, r1, r2, r3, r4, r5, r7, r8, sl, ip}          |     __asm ("stmdaeq r0, {r0, r1, r2, r3, r4, r5, r7, r8, sl, ip}");
    0x0800026c subs r4, r0, 0                                                |     r4 = r0 - 0;
                                                                             |     if (r4 != r0) {
    0x08000270 beq 0x8000280                                                 |         
                                                                             | label_1:
    0x08000274 mov r0, r4                                                    |         r0 = r4;
    0x08000278 add sp, sp, 0x10                                              |         
    0x0800027c pop {r4, r5, r6, r7, r8, pc}                                  |         
                                                                             |     }
    0x08000280 stmdaeq r0, {r0, r1, r6, r7, r8, sl, ip}                      |     __asm ("stmdaeq r0, {r0, r1, r6, r7, r8, sl, ip}");
    0x08000284 stmdaeq r0, {r0, r1, r6, r7, r8, sl, ip}                      |     __asm ("stmdaeq r0, {r0, r1, r6, r7, r8, sl, ip}");
    0x08000288 mov r1, 0xdc0                                                 |     r1 = 0xdc0;
    0x0800028c ldr r0, [r3, 0x28]                                            |     r0 = *((r3 + 0x28));
    0x08000290 stmdaeq r0, {r0, r1, r2, r6, r7, r8, sl, ip}                  |     __asm ("stmdaeq r0, {r0, r1, r2, r6, r7, r8, sl, ip}");
    0x08000294 subs r6, r0, 0                                                |     r6 = r0 - 0;
                                                                             |     if (r6 == r0) {
    0x08000298 beq 0x80003ec                                                 |         goto label_2;
                                                                             |     }
    0x0800029c ldr r0, [r5, 4]                                               |     r0 = *((r5 + 4));
    0x080002a0 add r5, r6, 0x80                                              |     r5 = r6 + 0x80;
    0x080002a4 stmdaeq r0, {r0, r1, r3, r6, r7, r8, sl, ip}                  |     __asm ("stmdaeq r0, {r0, r1, r3, r6, r7, r8, sl, ip}");
    0x080002a8 mov r1, r5                                                    |     r1 = r5;
    0x080002ac mov r2, r0                                                    |     r2 = r0;
    0x080002b0 add r5, r6, 0x240                                             |     r5 = r6 + 0x240;
    0x080002b4 ldr r0, [sp, 0xc]                                             |     r0 = var_ch;
    0x080002b8 mov r3, r4                                                    |     r3 = r4;
    0x080002bc str r0, [sp]                                                  |     *(sp) = r0;
    0x080002c0 mov r0, r5                                                    |     r0 = r5;
    0x080002c4 stmdaeq r0, {r0, r1, r2, r3, r6, r7, r8, sl, ip}              |     __asm ("stmdaeq r0, {r0, r1, r2, r3, r6, r7, r8, sl, ip}");
    0x080002c8 subs r4, r0, 0                                                |     r4 = r0 - 0;
                                                                             |     if (r4 != r0) {
    0x080002cc bne 0x80002e4                                                 |         goto label_0;
                                                                             |     }
    0x080002d0 ldr r4, [r6, 0x248]                                           |     r4 = *((r6 + 0x248));
    0x080002d4 ldr r3, [r4, -0x24]                                           |     r3 = *((r4 - 0x24));
    0x080002d8 cmp r3, 0x10                                                  |     
    0x080002dc beq 0x8000300                                                 |     
                                                                             |     while (r8 != 1) {
    0x080002e0 mvn r4, 0x15                                                  |         r4 = ~0x15;
                                                                             | label_0:
    0x080002e4 mov r0, r5                                                    |         r0 = r5;
    0x080002e8 stmdaeq r0, {r0, r1, r2, r3, r5, r7, r8, sl, ip}              |         __asm ("stmdaeq r0, {r0, r1, r2, r3, r5, r7, r8, sl, ip}");
    0x080002ec mov r0, r6                                                    |         r0 = r6;
    0x080002f0 stmdaeq r0, {r0, r1, r4, r5, r7, r8, sl, ip}                  |         __asm ("stmdaeq r0, {r0, r1, r4, r5, r7, r8, sl, ip}");
    0x080002f4 mov r0, r4                                                    |         r0 = r4;
    0x080002f8 add sp, sp, 0x10                                              |         
    0x080002fc pop {r4, r5, r6, r7, r8, pc}                                  |         
    0x08000300 ldr r8, [r4, 0x14]                                            |         r8 = *((r4 + 0x14));
    0x08000304 cmp r8, 1                                                     |         
    0x08000308 bne 0x80002e0                                                 |         
                                                                             |     }
    0x0800030c add r3, r4, 0x28                                              |     r3 = r4 + 0x28;
    0x08000310 add r0, r6, 0xa8                                              |     r0 = r6 + 0xa8;
    0x08000314 stmdaeq r0, {r2, r4, r6, r7, r8, sl}                          |     __asm ("stmdaeq r0, {r2, r4, r6, r7, r8, sl}");
    0x08000318 stmdaeq r0, {r2, r4, r6, r7, r8, sl}                          |     __asm ("stmdaeq r0, {r2, r4, r6, r7, r8, sl}");
    0x0800031c mov r1, 0x80                                                  |     r1 = 0x80;
    0x08000320 stmdaeq r0, {r0, r1, r4, r6, r7, r8, sl, ip}                  |     __asm ("stmdaeq r0, {r0, r1, r4, r6, r7, r8, sl, ip}");
    0x08000324 cmp r0, 0x7f                                                  |     
    0x08000328 ble 0x8000334                                                 |     
                                                                             |     while (r0 > 0x7f) {
    0x0800032c mvn r4, 0x23                                                  |         r4 = ~0x23;
    0x08000330 b 0x80002e4                                                   |         goto label_0;
    0x08000334 add r3, r4, 0xa8                                              |         r3 = r4 + 0xa8;
    0x08000338 add r0, r6, 0x128                                             |         r0 = r6 + 0x128;
    0x0800033c stmdaeq r0, {r2, r4, r6, r7, r8, sl}                          |         __asm ("stmdaeq r0, {r2, r4, r6, r7, r8, sl}");
    0x08000340 stmdaeq r0, {r2, r4, r6, r7, r8, sl}                          |         __asm ("stmdaeq r0, {r2, r4, r6, r7, r8, sl}");
    0x08000344 mov r1, 0x80                                                  |         r1 = 0x80;
    0x08000348 stmdaeq r0, {r0, r1, r4, r6, r7, r8, sl, ip}                  |         __asm ("stmdaeq r0, {r0, r1, r4, r6, r7, r8, sl, ip}");
    0x0800034c cmp r0, 0x7f                                                  |         
    0x08000350 bgt 0x800032c                                                 |         
                                                                             |     }
    0x08000354 ldr r3, [r4, 0x20]                                            |     r3 = *((r4 + 0x20));
    0x08000358 mov r0, r7                                                    |     r0 = r7;
    0x0800035c str r3, [r6, 0xa0]                                            |     *((r6 + 0xa0)) = r3;
    0x08000360 mov r7, 8                                                     |     r7 = 8;
    0x08000364 str r8, [r6, 0x94]                                            |     *((r6 + 0x94)) = r8;
    0x08000368 mov r1, r6                                                    |     r1 = r6;
    0x0800036c stmdaeq r0, {r4, r6, r8}                                      |     __asm ("stmdaeq r0, {r4, r6, r8}");
    0x08000370 stmdaeq r0, {r4, r6, r8}                                      |     __asm ("stmdaeq r0, {r4, r6, r8}");
    0x08000374 ldr r3, [r4, 0x1c]                                            |     r3 = *((r4 + 0x1c));
    0x08000378 stmdaeq r0, {r2, r3, r4, r5, r6}                              |     __asm ("stmdaeq r0, {r2, r3, r4, r5, r6}");
    0x0800037c stmdaeq r0, {r2, r3, r4, r5, r6}                              |     __asm ("stmdaeq r0, {r2, r3, r4, r5, r6}");
    0x08000380 str r3, [r6, 0x9c]                                            |     *((r6 + 0x9c)) = r3;
    0x08000384 str r7, [r6, 0x5c]                                            |     *((r6 + 0x5c)) = r7;
    0x08000388 ldr r3, [r4, -0x20]                                           |     r3 = *((r4 - 0x20));
    0x0800038c str r3, [r6, 0x60]                                            |     *((r6 + 0x60)) = r3;
    0x08000390 stmdaeq r0, {r6, r7}                                          |     __asm ("stmdaeq r0, {r6, r7}");
    0x08000394 stmdaeq r0, {r6, r7}                                          |     __asm ("stmdaeq r0, {r6, r7}");
    0x08000398 ldr r2, [r4, -0x2c]                                           |     r2 = *((r4 - 0x2c));
    0x0800039c add r2, r2, 4                                                 |     r2 += 4;
    0x080003a0 str r2, [r6, 0x54]                                            |     *((r6 + 0x54)) = r2;
    0x080003a4 ldr r2, [r4, -0x28]                                           |     r2 = *((r4 - 0x28));
    0x080003a8 str r3, [r6, 0x44]                                            |     *((r6 + 0x44)) = r3;
    0x080003ac add r2, r2, 4                                                 |     r2 += 4;
    0x080003b0 str r3, [r6, 0x48]                                            |     *((r6 + 0x48)) = r3;
    0x080003b4 str lr, [r6, 0x40]                                            |     
    0x080003b8 stmdaeq r0, {r4, r5, r6}                                      |     __asm ("stmdaeq r0, {r4, r5, r6}");
    0x080003bc stmdaeq r0, {r4, r5, r6}                                      |     __asm ("stmdaeq r0, {r4, r5, r6}");
    0x080003c0 str r7, [r6, 0x98]                                            |     *((r6 + 0x98)) = r7;
    0x080003c4 str r3, [r6, 0x50]                                            |     *((r6 + 0x50)) = r3;
    0x080003c8 stmdaeq r0, {r3, r5, r7, r8}                                  |     __asm ("stmdaeq r0, {r3, r5, r7, r8}");
    0x080003cc stmdaeq r0, {r3, r5, r7, r8}                                  |     __asm ("stmdaeq r0, {r3, r5, r7, r8}");
    0x080003d0 str ip, [r6, 0x4c]                                            |     *((r6 + 0x4c)) = ip;
    0x080003d4 str r2, [r6, 0x58]                                            |     *((r6 + 0x58)) = r2;
    0x080003d8 str r3, [r6]                                                  |     *(r6) = r3;
    0x080003dc stmdaeq r0, {r0, r1, r3, r4, r5, r7, r8, sl, ip}              |     __asm ("stmdaeq r0, {r0, r1, r3, r4, r5, r7, r8, sl, ip}");
    0x080003e0 subs r4, r0, 0                                                |     r4 = r0 - 0;
                                                                             |     if (r4 == r0) {
    0x080003e4 beq 0x8000274                                                 |         goto label_1;
                                                                             |     }
    0x080003e8 b 0x80002e4                                                   |     goto label_0;
                                                                             | label_2:
    0x080003ec mvn r4, 0xb                                                   |     r4 = ~0xb;
    0x080003f0 b 0x8000274                                                   |     goto label_1;
                                                                             | }

[*] Function sprintf used 1 times ctr.ko