[*] Binary protection state of llc.ko

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


[*] Function strcpy tear down of llc.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/llc/llc.ko @ 0x800030c */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) sym.llc_rcv ()                                                   | void llc_rcv (int32_t arg1, int32_t arg2) {
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
    0x0800030c push {r4, r5, r6, r7, r8, sb, sl, lr}                         |     
    0x08000310 mov r5, r1                                                    |     r5 = r1;
    0x08000314 mov r4, r0                                                    |     r4 = r0;
    0x08000318 ldr ip, [r1, 0x2b4]                                           |     ip = *((r1 + 0x2b4));
    0x0800031c stmdaeq r0, {r1, r2, r6, r7, r8, sl, fp, ip}                  |     __asm ("stmdaeq r0, {r1, r2, r6, r7, r8, sl, fp, ip}");
    0x08000320 stmdaeq r0, {r1, r2, r6, r7, r8, sl, fp, ip}                  |     __asm ("stmdaeq r0, {r1, r2, r6, r7, r8, sl, fp, ip}");
    0x08000324 cmp ip, r1                                                    |     
    0x08000328 beq 0x800033c                                                 |     
                                                                             |     while (r3 == 3) {
                                                                             | label_1:
    0x0800032c mov r0, r4                                                    |         r0 = r4;
                                                                             | label_4:
    0x08000330 stmdaeq r0, {r1, r3, r6, r7, r8, sl, fp, ip}                  |         __asm ("stmdaeq r0, {r1, r3, r6, r7, r8, sl, fp, ip}");
                                                                             | label_0:
    0x08000334 mov r0, 0                                                     |         r0 = 0;
    0x08000338 pop {r4, r5, r6, r7, r8, sb, sl, pc}                          |         
    0x0800033c mov r7, r3                                                    |         r7 = r3;
    0x08000340 ldrb r3, [r0, 0x64]                                           |         r3 = *((r0 + 0x64));
    0x08000344 and r3, r3, 7                                                 |         r3 &= 7;
    0x08000348 cmp r3, 3                                                     |         
    0x0800034c beq 0x800032c                                                 |         
                                                                             |     }
    0x08000350 ldr r3, [r0, 0xb0]                                            |     r3 = *((r0 + 0xb0));
    0x08000354 mov r8, r2                                                    |     r8 = r2;
    0x08000358 cmp r3, 1                                                     |     
                                                                             |     if (r3 != 1) {
    0x0800035c bne 0x800052c                                                 |         goto label_12;
                                                                             |     }
    0x08000360 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x08000364 beq 0x8000334                                                 |         goto label_0;
                                                                             |     }
                                                                             | label_5:
    0x08000368 ldr r1, [r4, 0x54]                                            |     r1 = *((r4 + 0x54));
    0x0800036c ldr r2, [r4, 0x58]                                            |     r2 = *((r4 + 0x58));
    0x08000370 sub r3, r1, r2                                                |     r3 = r1 - r2;
    0x08000374 cmp r3, 2                                                     |     
                                                                             |     if (r3 < 2) {
    0x08000378 bls 0x8000588                                                 |         goto label_13;
                                                                             |     }
                                                                             | label_9:
    0x0800037c ldr r0, [r4, 0xa8]                                            |     r0 = *((r4 + 0xa8));
    0x08000380 ldrb r6, [r0, 2]                                              |     r6 = *((r0 + 2));
    0x08000384 and r6, r6, 3                                                 |     r6 &= 3;
    0x08000388 cmp r6, 3                                                     |     
                                                                             |     if (r6 == 3) {
    0x0800038c movne r6, 4                                                   |         r6 = 4;
                                                                             |     }
    0x08000390 mov sb, r6                                                    |     sb = r6;
    0x08000394 cmp r3, r6                                                    |     
                                                                             |     if (r3 <= r6) {
    0x08000398 blo 0x80005d8                                                 |         goto label_14;
                                                                             |     }
                                                                             | label_10:
    0x0800039c ldrh r3, [r4, 0x96]                                           |     r3 = *((r4 + 0x96));
    0x080003a0 mov r1, r6                                                    |     r1 = r6;
    0x080003a4 mov r0, r4                                                    |     r0 = r4;
    0x080003a8 add r3, r3, sb                                                |     r3 += sb;
    0x080003ac strh r3, [r4, 0x96]                                           |     *((r4 + 0x96)) = r3;
    0x080003b0 stmdaeq r0, {r1, r2, r3, r6, r7, r8, sl, fp, ip}              |     __asm ("stmdaeq r0, {r1, r2, r3, r6, r7, r8, sl, fp, ip}");
    0x080003b4 ldrh r3, [r4, 0x94]                                           |     r3 = *((r4 + 0x94));
    0x080003b8 cmp r3, 0x400                                                 |     
                                                                             |     if (r3 == 0x400) {
    0x080003bc beq 0x80004d8                                                 |         goto label_15;
                                                                             |     }
                                                                             | label_3:
    0x080003c0 ldrh r3, [r4, 0x98]                                           |     r3 = *((r4 + 0x98));
    0x080003c4 ldr r2, [r4, 0xa4]                                            |     r2 = *((r4 + 0xa4));
    0x080003c8 ldrb r0, [r2, r3]                                             |     r0 = *((r2 + r3));
    0x080003cc cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x080003d0 beq 0x80005b8                                                 |         goto label_16;
                                                                             |     }
    0x080003d4 stmdaeq r0, {r2, r5, r6, r7, r8}                              |     __asm ("stmdaeq r0, {r2, r5, r6, r7, r8}");
    0x080003d8 subs r6, r0, 0                                                |     r6 = r0 - 0;
                                                                             |     if (r6 == r0) {
    0x080003dc beq 0x800032c                                                 |         goto label_1;
                                                                             |     }
    0x080003e0 ldrh r2, [r4, 0x98]                                           |     r2 = *((r4 + 0x98));
    0x080003e4 ldr r3, [r4, 0xa4]                                            |     r3 = *((r4 + 0xa4));
    0x080003e8 ldr sb, [r6, 8]                                               |     sb = *((r6 + 8));
    0x080003ec add r3, r3, r2                                                |     r3 += r2;
    0x080003f0 ldrb r2, [r3, 2]                                              |     r2 = *((r3 + 2));
    0x080003f4 and r3, r2, 3                                                 |     r3 = r2 & 3;
    0x080003f8 cmp r3, 3                                                     |     
                                                                             |     if (r3 != 3) {
    0x080003fc bne 0x8000450                                                 |         goto label_17;
                                                                             |     }
    0x08000400 and r3, r2, 0xec                                              |     r3 = r2 & 0xec;
    0x08000404 cmp r3, 0x6c                                                  |     
                                                                             |     if (r3 == 0x6c) {
    0x08000408 beq 0x8000450                                                 |         goto label_17;
                                                                             |     }
                                                                             |     if (r3 > 0x6c) {
    0x0800040c bhi 0x800054c                                                 |         goto label_18;
                                                                             |     }
    0x08000410 cmp r3, 0xc                                                   |     
                                                                             |     if (r3 == 0xc) {
    0x08000414 beq 0x8000450                                                 |         goto label_17;
                                                                             |     }
                                                                             |     if (r3 < 0xc) {
    0x08000418 bls 0x8000564                                                 |         goto label_19;
                                                                             |     }
    0x0800041c and r2, r2, 0xcc                                              |     r2 &= 0xcc;
    0x08000420 cmp r2, 0x40                                                  |     
                                                                             |     if (r2 == 0x40) {
    0x08000424 beq 0x8000450                                                 |         goto label_17;
                                                                             |     }
                                                                             |     do {
                                                                             | label_2:
    0x08000428 cmp sb, 0                                                     |         
                                                                             |         if (sb == 0) {
    0x0800042c beq 0x800057c                                                 |             goto label_20;
                                                                             |         }
    0x08000430 mov r3, r7                                                    |         r3 = r7;
    0x08000434 mov r2, r8                                                    |         r2 = r8;
    0x08000438 mov r1, r5                                                    |         r1 = r5;
    0x0800043c mov r0, r4                                                    |         r0 = r4;
    0x08000440 blx sb                                                        |         sb (r0, r1, r2, r3);
    0x08000444 b 0x80004a0                                                   |         goto label_8;
                                                                             | label_6:
    0x08000448 cmp r3, 0x84                                                  |         
    0x0800044c bne 0x8000428                                                 |         
                                                                             |     } while (r3 != 0x84);
                                                                             | label_17:
    0x08000450 mov r3, 1                                                     |     r3 = 1;
                                                                             | label_7:
    0x08000454 stmdaeq r0, {r2, r3, sl, fp}                                  |     __asm ("stmdaeq r0, {r2, r3, sl, fp}");
    0x08000458 stmdaeq r0, {r2, r3, sl, fp}                                  |     __asm ("stmdaeq r0, {r2, r3, sl, fp}");
    0x0800045c ldr sl, [r2, r3, lsl 2]                                       |     offset_0 = r3 << 2;
                                                                             |     sl = *((r2 + offset_0));
    0x08000460 cmp sl, 0                                                     |     
                                                                             |     if (sl == 0) {
    0x08000464 beq 0x8000428                                                 |         goto label_2;
                                                                             |     }
    0x08000468 cmp sb, 0                                                     |     
                                                                             |     if (sb != 0) {
    0x0800046c beq 0x8000494                                                 |         
    0x08000470 mov r0, r4                                                    |         r0 = r4;
    0x08000474 mov r1, 0xa20                                                 |         r1 = 0xa20;
    0x08000478 stmdaeq r0, {r1, r4, r6, r7, r8, sl, fp, ip}                  |         __asm ("stmdaeq r0, {r1, r4, r6, r7, r8, sl, fp, ip}");
    0x0800047c cmp r0, 0                                                     |         
                                                                             |         if (r0 == 0) {
    0x08000480 beq 0x8000494                                                 |             goto label_21;
                                                                             |         }
    0x08000484 mov r3, r7                                                    |         r3 = r7;
    0x08000488 mov r2, r8                                                    |         r2 = r8;
    0x0800048c mov r1, r5                                                    |         r1 = r5;
    0x08000490 blx sb                                                        |         sb (r1, r2, r3);
                                                                             |     }
                                                                             | label_21:
    0x08000494 mov r1, r4                                                    |     r1 = r4;
    0x08000498 mov r0, r6                                                    |     r0 = r6;
    0x0800049c blx sl                                                        |     sl (r0, r1);
                                                                             | label_8:
    0x080004a0 add r0, r6, 4                                                 |     r0 = r6 + 4;
    0x080004a4 pld [r0]                                                      |     __asm ("pld [r0]");
                                                                             |     do {
    0x080004a8 ldrex r3, [r0]                                                |         __asm ("ldrex r3, [r0]");
    0x080004ac sub r2, r3, 1                                                 |         r2 = r3 - 1;
    0x080004b0 strex r1, r2, [r0]                                            |         __asm ("strex r1, r2, [r0]");
    0x080004b4 teq r1, 0                                                     |         __asm ("teq r1, 0");
    0x080004b8 bne 0x80004a8                                                 |         
                                                                             |     } while (r0 != 0);
    0x080004bc cmp r3, 1                                                     |     
                                                                             |     if (r3 == 1) {
    0x080004c0 beq 0x8000570                                                 |         goto label_22;
                                                                             |     }
    0x080004c4 cmp r3, 0                                                     |     
                                                                             |     if (r3 > 0) {
    0x080004c8 bgt 0x8000334                                                 |         goto label_0;
                                                                             |     }
    0x080004cc mov r1, 3                                                     |     r1 = 3;
    0x080004d0 stmdaeq r0, {r1, r2, r3, r4, r5, r7, r8, sl, fp, ip}          |     __asm ("stmdaeq r0, {r1, r2, r3, r4, r5, r7, r8, sl, fp, ip}");
    0x080004d4 b 0x8000334                                                   |     goto label_0;
                                                                             | label_15:
    0x080004d8 ldrh r2, [r4, 0x9a]                                           |     r2 = *((r4 + 0x9a));
    0x080004dc ldr r3, [r4, 0xa4]                                            |     r3 = *((r4 + 0xa4));
    0x080004e0 add r3, r3, r2                                                |     r3 += r2;
    0x080004e4 ldrh r3, [r3, 0xc]                                            |     r3 = *((r3 + 0xc));
    0x080004e8 rev16 r3, r3                                                  |     __asm ("rev16 r3, r3");
    0x080004ec uxth r3, r3                                                   |     r3 = (int16_t) r3;
    0x080004f0 subs sb, r3, sb                                               |     sb = r3 - sb;
                                                                             |     if (sb < r3) {
    0x080004f4 bmi 0x800032c                                                 |         goto label_1;
                                                                             |     }
    0x080004f8 ldr r3, [r4, 0x54]                                            |     r3 = *((r4 + 0x54));
    0x080004fc ldr r2, [r4, 0x58]                                            |     r2 = *((r4 + 0x58));
    0x08000500 sub r1, r3, r2                                                |     r1 = r3 - r2;
    0x08000504 cmp sb, r1                                                    |     
                                                                             |     if (sb > r1) {
    0x08000508 bhi 0x80005fc                                                 |         goto label_23;
                                                                             |     }
                                                                             | label_11:
    0x0800050c cmp sb, r3                                                    |     
                                                                             |     if (sb >= r3) {
    0x08000510 bhs 0x80003c0                                                 |         goto label_3;
                                                                             |     }
    0x08000514 mov r1, sb                                                    |     r1 = sb;
    0x08000518 mov r0, r4                                                    |     r0 = r4;
    0x0800051c stmdaeq r0, {r1, r2, r4, r6, r7, r8, sl, fp, ip}              |     __asm ("stmdaeq r0, {r1, r2, r4, r6, r7, r8, sl, fp, ip}");
    0x08000520 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x08000524 beq 0x80003c0                                                 |         goto label_3;
                                                                             |     }
    0x08000528 b 0x800032c                                                   |     goto label_1;
                                                                             | label_12:
    0x0800052c mov r1, 0xa20                                                 |     r1 = 0xa20;
    0x08000530 stmdaeq r0, {r1, r4, r6, r7, r8, sl, fp, ip}                  |     __asm ("stmdaeq r0, {r1, r4, r6, r7, r8, sl, fp, ip}");
    0x08000534 subs r3, r0, 0                                                |     r3 = r0 - 0;
    0x08000538 mov r0, r4                                                    |     r0 = r4;
                                                                             |     if (r3 == r0) {
    0x0800053c beq 0x8000330                                                 |         goto label_4;
                                                                             |     }
    0x08000540 mov r4, r3                                                    |     r4 = r3;
    0x08000544 stmdaeq r0, {r1, r3, r6, r7, r8, sl, fp, ip}                  |     __asm ("stmdaeq r0, {r1, r3, r6, r7, r8, sl, fp, ip}");
    0x08000548 b 0x8000368                                                   |     goto label_5;
                                                                             | label_18:
    0x0800054c cmp r3, 0xac                                                  |     
                                                                             |     if (r3 == 0xac) {
    0x08000550 beq 0x800055c                                                 |         goto label_24;
                                                                             |     }
    0x08000554 cmp r3, 0xe0                                                  |     
                                                                             |     if (r3 != 0xe0) {
    0x08000558 bne 0x8000448                                                 |         goto label_6;
                                                                             |     }
                                                                             | label_24:
    0x0800055c mov r3, 0                                                     |     r3 = 0;
    0x08000560 b 0x8000454                                                   |     goto label_7;
                                                                             | label_19:
    0x08000564 cmp r3, 0                                                     |     
                                                                             |     if (r3 == 0) {
    0x08000568 beq 0x8000454                                                 |         goto label_7;
                                                                             |     }
    0x0800056c b 0x8000428                                                   |     goto label_2;
                                                                             | label_22:
    0x08000570 mov r0, r6                                                    |     r0 = r6;
    0x08000574 stmdaeq r0, {r4, r5, r6}                                      |     __asm ("stmdaeq r0, {r4, r5, r6}");
    0x08000578 b 0x8000334                                                   |     goto label_0;
                                                                             | label_20:
    0x0800057c mov r0, r4                                                    |     r0 = r4;
    0x08000580 stmdaeq r0, {r1, r3, r6, r7, r8, sl, fp, ip}                  |     __asm ("stmdaeq r0, {r1, r3, r6, r7, r8, sl, fp, ip}");
    0x08000584 b 0x80004a0                                                   |     goto label_8;
                                                                             | label_13:
    0x08000588 cmp r1, 2                                                     |     
                                                                             |     if (r1 < 2) {
    0x0800058c bls 0x800032c                                                 |         goto label_1;
                                                                             |     }
    0x08000590 add r2, r2, 3                                                 |     r2 += 3;
    0x08000594 mov r0, r4                                                    |     r0 = r4;
    0x08000598 sub r1, r2, r1                                                |     r1 = r2 - r1;
    0x0800059c stmdaeq r0, {r1, r3, r4, r6, r7, r8, sl, fp, ip}              |     __asm ("stmdaeq r0, {r1, r3, r4, r6, r7, r8, sl, fp, ip}");
    0x080005a0 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x080005a4 beq 0x800032c                                                 |         goto label_1;
                                                                             |     }
    0x080005a8 ldr r1, [r4, 0x54]                                            |     r1 = *((r4 + 0x54));
    0x080005ac ldr r2, [r4, 0x58]                                            |     r2 = *((r4 + 0x58));
    0x080005b0 sub r3, r1, r2                                                |     r3 = r1 - r2;
    0x080005b4 b 0x800037c                                                   |     goto label_9;
                                                                             | label_16:
    0x080005b8 stmdaeq r0, {r2, r3, sl, fp}                                  |     __asm ("stmdaeq r0, {r2, r3, sl, fp}");
    0x080005bc stmdaeq r0, {r2, r3, sl, fp}                                  |     __asm ("stmdaeq r0, {r2, r3, sl, fp}");
    0x080005c0 ldr r3, [r3, 8]                                               |     r3 = *((r3 + 8));
    0x080005c4 cmp r3, 0                                                     |     
                                                                             |     if (r3 == 0) {
    0x080005c8 beq 0x800032c                                                 |         goto label_1;
                                                                             |     }
    0x080005cc mov r0, r4                                                    |     r0 = r4;
    0x080005d0 blx r3                                                        |     uint32_t (*r3)(uint32_t) (r0);
    0x080005d4 b 0x8000334                                                   |     goto label_0;
                                                                             | label_14:
    0x080005d8 cmp r6, r1                                                    |     
                                                                             |     if (r6 > r1) {
    0x080005dc bhi 0x800032c                                                 |         goto label_1;
                                                                             |     }
    0x080005e0 sub r1, r2, r1                                                |     r1 = r2 - r1;
    0x080005e4 mov r0, r4                                                    |     r0 = r4;
    0x080005e8 add r1, r1, r6                                                |     r1 += r6;
    0x080005ec stmdaeq r0, {r1, r3, r4, r6, r7, r8, sl, fp, ip}              |     __asm ("stmdaeq r0, {r1, r3, r4, r6, r7, r8, sl, fp, ip}");
    0x080005f0 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x080005f4 beq 0x800032c                                                 |         goto label_1;
                                                                             |     }
    0x080005f8 b 0x800039c                                                   |     goto label_10;
                                                                             | label_23:
    0x080005fc cmp sb, r3                                                    |     
                                                                             |     if (sb > r3) {
    0x08000600 bhi 0x800032c                                                 |         goto label_1;
                                                                             |     }
    0x08000604 sub r2, r2, r3                                                |     r2 -= r3;
    0x08000608 mov r0, r4                                                    |     r0 = r4;
    0x0800060c add r1, r2, sb                                                |     r1 = r2 + sb;
    0x08000610 stmdaeq r0, {r1, r3, r4, r6, r7, r8, sl, fp, ip}              |     __asm ("stmdaeq r0, {r1, r3, r4, r6, r7, r8, sl, fp, ip}");
    0x08000614 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x08000618 beq 0x800032c                                                 |         goto label_1;
                                                                             |     }
    0x0800061c ldr r3, [r4, 0x54]                                            |     r3 = *((r4 + 0x54));
    0x08000620 b 0x800050c                                                   |     goto label_11;
                                                                             | }

[*] Function strcpy used 1 times llc.ko