[*] Binary protection state of ctr.ko
No RELRO No Canary found NX disabled REL No RPATH No RUNPATH Symbols
[*] Function system 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 system used 1 times ctr.ko