[*] Binary protection state of macsec.ko

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


[*] Function mmap tear down of macsec.ko

    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/modules/5.10.52-axis9/kernel/drivers/net/macsec.ko @ 0x8000328 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.macsec_changelink_common ()                          | void macsec_changelink_common (int32_t arg1, int32_t arg2) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_4h;
                                                                     |     int32_t var_8h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x08000328 push {r4, lr}                                         |     
    0x0800032c mov r4, r0                                            |     r4 = r0;
    0x08000330 ldr r3, [r1, 0x18]                                    |     r3 = *((r1 + 0x18));
    0x08000334 sub sp, sp, 8                                         |     
    0x08000338 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0800033c beq 0x800035c                                         |         
    0x08000340 ldrb r3, [r3, 4]                                      |         r3 = *((r3 + 4));
    0x08000344 strb r3, [r0, 0x561]                                  |         *((r0 + 0x561)) = r3;
    0x08000348 add r3, r0, r3, lsl 2                                 |         r3 = r0 + (r3 << 2);
    0x0800034c ldr r3, [r3, 0x568]                                   |         r3 = *((r3 + 0x568));
    0x08000350 cmp r3, 0                                             |         
                                                                     |         if (r3 == 0) {
    0x08000354 ldrbne r3, [r3, 0x34]                                 |             r3 = *((r3 + 0x34));
                                                                     |         }
    0x08000358 strb r3, [r0, 0x559]                                  |         *((r0 + 0x559)) = r3;
                                                                     |     }
    0x0800035c ldr r3, [r1, 0x14]                                    |     r3 = *((r1 + 0x14));
    0x08000360 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x08000364 ldrne r3, [r3, 4]                                     |         r3 = *((r3 + 4));
                                                                     |     }
                                                                     |     if (r3 == 0) {
    0x08000368 strne r3, [r4, 0x55c]                                 |         *((r4 + 0x55c)) = r3;
                                                                     |     }
    0x0800036c ldr r3, [r1, 0x1c]                                    |     r3 = *((r1 + 0x1c));
    0x08000370 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x08000374 beq 0x8000388                                         |         
    0x08000378 ldrb r3, [r3, 4]                                      |         r3 = *((r3 + 4));
    0x0800037c subs r3, r3, 0                                        |         
                                                                     |         if (r3 == r3) {
    0x08000380 movne r3, 1                                           |             r3 = 1;
                                                                     |         }
    0x08000384 strb r3, [r4, 0x562]                                  |         *((r4 + 0x562)) = r3;
                                                                     |     }
    0x08000388 ldr r3, [r1, 0x20]                                    |     r3 = *((r1 + 0x20));
    0x0800038c cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x08000390 beq 0x80003a4                                         |         
    0x08000394 ldrb r3, [r3, 4]                                      |         r3 = *((r3 + 4));
    0x08000398 subs r3, r3, 0                                        |         
                                                                     |         if (r3 == r3) {
    0x0800039c movne r3, 1                                           |             r3 = 1;
                                                                     |         }
    0x080003a0 strb r3, [r4, 0x55a]                                  |         *((r4 + 0x55a)) = r3;
                                                                     |     }
    0x080003a4 ldr r3, [r1, 0x24]                                    |     r3 = *((r1 + 0x24));
    0x080003a8 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x080003ac beq 0x80003c0                                         |         
    0x080003b0 ldrb r3, [r3, 4]                                      |         r3 = *((r3 + 4));
    0x080003b4 subs r3, r3, 0                                        |         
                                                                     |         if (r3 == r3) {
    0x080003b8 movne r3, 1                                           |             r3 = 1;
                                                                     |         }
    0x080003bc strb r3, [r4, 0x563]                                  |         *((r4 + 0x563)) = r3;
                                                                     |     }
    0x080003c0 ldr r3, [r1, 0x28]                                    |     r3 = *((r1 + 0x28));
    0x080003c4 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x080003c8 beq 0x80003dc                                         |         
    0x080003cc ldrb r3, [r3, 4]                                      |         r3 = *((r3 + 4));
    0x080003d0 subs r3, r3, 0                                        |         
                                                                     |         if (r3 == r3) {
    0x080003d4 movne r3, 1                                           |             r3 = 1;
                                                                     |         }
    0x080003d8 strb r3, [r4, 0x564]                                  |         *((r4 + 0x564)) = r3;
                                                                     |     }
    0x080003dc ldr r3, [r1, 0x2c]                                    |     r3 = *((r1 + 0x2c));
    0x080003e0 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x080003e4 beq 0x80003f8                                         |         
    0x080003e8 ldrb r3, [r3, 4]                                      |         r3 = *((r3 + 4));
    0x080003ec subs r3, r3, 0                                        |         
                                                                     |         if (r3 == r3) {
    0x080003f0 movne r3, 1                                           |             r3 = 1;
                                                                     |         }
    0x080003f4 strb r3, [r4, 0x565]                                  |         *((r4 + 0x565)) = r3;
                                                                     |     }
    0x080003f8 ldr r3, [r1, 0x30]                                    |     r3 = *((r1 + 0x30));
    0x080003fc cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x08000400 beq 0x8000414                                         |         
    0x08000404 ldrb r3, [r3, 4]                                      |         r3 = *((r3 + 4));
    0x08000408 subs r3, r3, 0                                        |         
                                                                     |         if (r3 == r3) {
    0x0800040c movne r3, 1                                           |             r3 = 1;
                                                                     |         }
    0x08000410 strb r3, [r4, 0x55b]                                  |         *((r4 + 0x55b)) = r3;
                                                                     |     }
    0x08000414 ldr r3, [r1, 0x34]                                    |     r3 = *((r1 + 0x34));
    0x08000418 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0800041c ldrbne r3, [r3, 4]                                    |         r3 = *((r3 + 4));
                                                                     |     }
                                                                     |     if (r3 == 0) {
    0x08000420 strne r3, [r4, 0x554]                                 |         *((r4 + 0x554)) = r3;
                                                                     |     }
    0x08000424 ldr r1, [r1, 0x10]                                    |     r1 = *((r1 + 0x10));
    0x08000428 cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x0800042c beq 0x80004c8                                         |         goto label_1;
                                                                     |     }
    0x08000430 mov r2, 8                                             |     r2 = 8;
    0x08000434 mov r0, sp                                            |     r0 = sp;
    0x08000438 stmdaeq r0, {r1, r3, r4, r5, r6, r8, sp, pc}          |     __asm ("stmdaeq r0, {r1, r3, r4, r5, r6, r8, sp, pc}");
    0x0800043c ldr r3, [sp]                                          |     r3 = *(sp);
    0x08000440 ldr r2, [sp, 4]                                       |     r2 = var_4h;
    0x08000444 mov r0, 1                                             |     
    0x08000448 movt r0, 0x100                                        |     r0 = 0x1000001;
    0x0800044c mov r1, 0x200                                         |     
    0x08000450 movt r1, 0x80                                         |     r1 = 0x800200;
    0x08000454 cmp r2, r1                                            |     
    0x08000458 cmpeq r3, r0                                          |     __asm ("cmpeq r3, r0");
                                                                     |     if (r2 == r1) {
    0x0800045c beq 0x8000504                                         |         goto label_2;
                                                                     |     }
    0x08000460 mvn r1, 0x1000000                                     |     r1 = ~0x1000000;
    0x08000464 movw r0, 0x3dff                                       |     
    0x08000468 movt r0, 0xff7f                                       |     r0 = 0xff7f3dff;
    0x0800046c adds r1, r3, r1                                       |     r1 = r3 + r1;
    0x08000470 adc ip, r2, r0                                        |     __asm ("adc ip, r2, r0");
    0x08000474 cmp r1, 4                                             |     
    0x08000478 sbcs ip, ip, 0                                        |     __asm ("sbcs ip, ip, 0");
                                                                     |     if (r1 >= 4) {
    0x0800047c bhs 0x800051c                                         |         goto label_3;
                                                                     |     }
    0x08000480 movw r1, 0xfffe                                       |     
    0x08000484 movt r1, 0xfeff                                       |     r1 = 0xfefffffe;
    0x08000488 adds r3, r3, r1                                       |     r3 += r1;
    0x0800048c adc r2, r2, r0                                        |     __asm ("adc r2, r2, r0");
    0x08000490 cmp r3, 3                                             |     
    0x08000494 sbcs r2, r2, 0                                        |     __asm ("sbcs r2, r2, 0");
                                                                     |     if (r3 >= 3) {
    0x08000498 bhs 0x8000504                                         |         goto label_2;
                                                                     |     }
    0x0800049c cmp r3, 2                                             |     
                                                                     |     if (r3 > 2) {
                                                                     |         /* switch table (3 cases) at 0x80004a8 */
    0x080004a0 ldrls pc, [pc, r3, lsl 2]                             |         offset_0 = r3 << 2;
                                                                     |         pc = *((pc + offset_0));
                                                                     |     }
    0x080004a4 b 0x8000504                                           |     
                                                                     |     while (1) {
                                                                     | label_1:
    0x080004c8 mov r0, 0                                             |         r0 = 0;
                                                                     | label_0:
    0x080004cc add sp, sp, 8                                         |         
    0x080004d0 pop {r4, pc}                                          |         
                                                                     | label_2:
    0x08000504 add r2, r4, 0x540                                     |         r2 = r4 + 0x540;
    0x08000508 mov r1, 0x10                                          |         r1 = 0x10;
    0x0800050c mov r3, 0                                             |         r3 = 0;
    0x08000510 strh r1, [r2, 0x10]                                   |         *((r2 + 0x10)) = r1;
    0x08000514 strb r3, [r4, 0x558]                                  |         *((r4 + 0x558)) = r3;
    0x08000518 b 0x80004c8                                           |         
                                                                     |     }
                                                                     | label_3:
    0x0800051c mvn r0, 0x15                                          |     r0 = ~0x15;
    0x08000520 b 0x80004cc                                           |     goto label_0;
                                                                     | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/modules/5.10.52-axis9/kernel/drivers/net/macsec.ko @ 0x8002474 */
                                                                         | #include <stdint.h>
                                                                         |  
                                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                         |  
    ; (fcn) sym.macsec_newlink ()                                        | void macsec_newlink (int32_t arg1, int32_t arg2) {
                                                                         |     int32_t var_d0h;
                                                                         |     int32_t var_4h;
                                                                         |     int32_t var_8h;
                                                                         |     int32_t var_ch;
                                                                         |     int32_t var_eh;
                                                                         |     int32_t var_10h;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
    0x08002474 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}                 |     
    0x08002478 mov r6, r3                                                |     r6 = r3;
    0x0800247c ldr r3, [r2, 0x14]                                        |     r3 = *((r2 + 0x14));
    0x08002480 sub sp, sp, 0xac                                          |     
    0x08002484 cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x08002488 beq 0x8002834                                             |         goto label_9;
                                                                         |     }
    0x0800248c mov r4, r1                                                |     r4 = r1;
    0x08002490 add sb, r1, 0x540                                         |     sb = r1 + 0x540;
    0x08002494 ldr r1, [r3, 4]                                           |     r1 = *((r3 + 4));
    0x08002498 stmdaeq r0, {r1, r2, r3, sb, sp, pc}                      |     __asm ("stmdaeq r0, {r1, r2, r3, sb, sp, pc}");
    0x0800249c subs r5, r0, 0                                            |     r5 = r0 - 0;
                                                                         |     if (r5 == r0) {
    0x080024a0 beq 0x8002844                                             |         goto label_10;
                                                                         |     }
    0x080024a4 add r3, r5, 0x14c                                         |     r3 = r5 + 0x14c;
    0x080024a8 ldrh r3, [r3]                                             |     r3 = *(r3);
    0x080024ac cmp r3, 1                                                 |     
                                                                         |     if (r3 != 1) {
    0x080024b0 bne 0x8002834                                             |         goto label_9;
                                                                         |     }
    0x080024b4 ldr r3, [r4, 0x134]                                       |     r3 = *((r4 + 0x134));
    0x080024b8 cmp r6, 0                                                 |     
    0x080024bc str r5, [r4, 0x580]                                       |     *((r4 + 0x580)) = r5;
    0x080024c0 orr r3, r3, 0x2000000                                     |     r3 |= 0x2000000;
    0x080024c4 str r3, [r4, 0x134]                                       |     *((r4 + 0x134)) = r3;
                                                                         |     if (r6 == 0) {
    0x080024c8 beq 0x8002720                                             |         goto label_11;
                                                                         |     }
    0x080024cc ldr r3, [r6, 0x3c]                                        |     r3 = *((r6 + 0x3c));
    0x080024d0 cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x080024d4 beq 0x8002604                                             |         goto label_12;
                                                                         |     }
    0x080024d8 ldrb r0, [r3, 4]                                          |     r0 = *((r3 + 4));
    0x080024dc str r0, [r4, 0x594]                                       |     *((r4 + 0x594)) = r0;
    0x080024e0 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x080024e4 beq 0x80024f8                                             |         
    0x080024e8 mov r1, sb                                                |         r1 = sb;
    0x080024ec bl 0x8000070                                              |         r0 = macsec_check_offload ();
    0x080024f0 cmp r0, 0                                                 |         
                                                                         |         if (r0 == 0) {
    0x080024f4 beq 0x800284c                                             |             goto label_13;
                                                                         |         }
                                                                         |     }
                                                                         | label_0:
    0x080024f8 ldr r3, [r6, 0xc]                                         |     r3 = *((r6 + 0xc));
    0x080024fc cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x08002500 ldrbne sl, [r3, 4]                                        |         sl = *((r3 + 4));
                                                                         |     }
                                                                         |     if (r3 == 0) {
    0x08002504 movne r2, sl                                              |         r2 = sl;
                                                                         |     }
                                                                         |     if (r3 == 0) {
    0x08002508 beq 0x8002724                                             |         goto label_14;
                                                                         |     }
                                                                         | label_1:
    0x0800250c ldr r3, [r5, 0x140]                                       |     r3 = *((r5 + 0x140));
    0x08002510 sub r3, r3, 0x10                                          |     r3 -= 0x10;
    0x08002514 sub r3, r3, r2                                            |     r3 -= r2;
    0x08002518 bic r3, r3, r3, asr 31                                    |     r3 = BIT_MASK (r3, r3);
    0x0800251c str r3, [r4, 0x140]                                       |     *((r4 + 0x140)) = r3;
    0x08002520 stmdaeq r0, {r2, r3, r4, r5, r8, sl, lr}                  |     __asm ("stmdaeq r0, {r2, r3, r4, r5, r8, sl, lr}");
    0x08002524 stmdaeq r0, {r2, r3, r4, r5, r8, sl, lr}                  |     __asm ("stmdaeq r0, {r2, r3, r4, r5, r8, sl, lr}");
    0x08002528 ldr r8, [r5, 0x1e4]                                       |     r8 = *((r5 + 0x1e4));
    0x0800252c cmp r8, r3                                                |     
    0x08002530 cmpne r8, 0                                               |     __asm ("cmpne r8, 0");
                                                                         |     if (r8 != r3) {
    0x08002534 bne 0x800283c                                             |         goto label_15;
                                                                         |     }
    0x08002538 mov r0, r4                                                |     r0 = r4;
    0x0800253c stmdaeq r0, {r1, r4, r5, sb, sp, pc}                      |     __asm ("stmdaeq r0, {r1, r4, r5, sb, sp, pc}");
    0x08002540 subs r7, r0, 0                                            |     r7 = r0 - 0;
                                                                         |     if (r7 < r0) {
    0x08002544 blt 0x80025f8                                             |         goto label_8;
                                                                         |     }
    0x08002548 ldr r2, [sp, 0xd0]                                        |     r2 = var_d0h;
    0x0800254c mov r1, r4                                                |     r1 = r4;
    0x08002550 mov r0, r5                                                |     r0 = r5;
    0x08002554 stmdaeq r0, {r2, r6, r8, sb, sl, fp, sp, lr}              |     __asm ("stmdaeq r0, {r2, r6, r8, sb, sl, fp, sp, lr}");
    0x08002558 stmdaeq r0, {r2, r6, r8, sb, sl, fp, sp, lr}              |     __asm ("stmdaeq r0, {r2, r6, r8, sb, sl, fp, sp, lr}");
    0x0800255c str r3, [r4, 0x4fc]                                       |     *((r4 + 0x4fc)) = r3;
    0x08002560 str r3, [r4, 0x500]                                       |     *((r4 + 0x500)) = r3;
    0x08002564 stmdaeq r0, {r1, r2, r4, r5, sb, sp, pc}                  |     __asm ("stmdaeq r0, {r1, r2, r4, r5, sb, sp, pc}");
    0x08002568 subs r7, r0, 0                                            |     r7 = r0 - 0;
                                                                         |     if (r7 < r0) {
    0x0800256c blt 0x80025ec                                             |         goto label_16;
                                                                         |     }
    0x08002570 cmp r6, 0                                                 |     
                                                                         |     if (r6 == 0) {
    0x08002574 beq 0x80027a8                                             |         goto label_17;
                                                                         |     }
    0x08002578 ldr r1, [r6, 4]                                           |     r1 = *((r6 + 4));
    0x0800257c cmp r1, 0                                                 |     
                                                                         |     if (r1 == 0) {
    0x08002580 beq 0x800276c                                             |         goto label_18;
                                                                         |     }
    0x08002584 add r0, sp, 8                                             |     r0 += var_8h;
    0x08002588 mov r2, 8                                                 |     r2 = 8;
    0x0800258c str r0, [sp, 4]                                           |     var_4h = r0;
    0x08002590 stmdaeq r0, {r1, r3, r4, r5, r6, r8, sp, pc}              |     __asm ("stmdaeq r0, {r1, r3, r4, r5, r6, r8, sp, pc}");
    0x08002594 ldr fp, [sp, 8]                                           |     fp = var_8h;
    0x08002598 ldr r7, [sp, 0xc]                                         |     r7 = var_ch;
                                                                         | label_4:
    0x0800259c cmp r8, 0                                                 |     
                                                                         |     if (r8 == 0) {
    0x080025a0 beq 0x800260c                                             |         goto label_19;
                                                                         |     }
    0x080025a4 ldr ip, [r5, 0x1e8]                                       |     ip = *((r5 + 0x1e8));
    0x080025a8 ldr r2, [ip]                                              |     r2 = *(ip);
    0x080025ac cmp ip, r2                                                |     
    0x080025b0 sub r2, r2, 0x48                                          |     r2 -= 0x48;
                                                                         |     if (ip != r2) {
    0x080025b4 bne 0x80025cc                                             |         goto label_20;
                                                                         |     }
    0x080025b8 b 0x800260c                                               |     goto label_19;
                                                                         |     do {
    0x080025bc ldr r1, [r2, 0x48]                                        |         r1 = *((r2 + 0x48));
    0x080025c0 sub r2, r1, 0x48                                          |         r2 = r1 - 0x48;
    0x080025c4 cmp ip, r1                                                |         
                                                                         |         if (ip == r1) {
    0x080025c8 beq 0x800260c                                             |             goto label_19;
                                                                         |         }
                                                                         | label_20:
    0x080025cc ldrd r0, r1, [r2, 8]                                      |         __asm ("ldrd r0, r1, [r2, 8]");
    0x080025d0 cmp r7, r1                                                |         
    0x080025d4 cmpeq fp, r0                                              |         __asm ("cmpeq fp, r0");
    0x080025d8 bne 0x80025bc                                             |         
                                                                         |     } while (r7 != r1);
    0x080025dc mvn r7, 0xf                                               |     r7 = ~0xf;
                                                                         | label_3:
    0x080025e0 mov r1, r4                                                |     r1 = r4;
    0x080025e4 mov r0, r5                                                |     r0 = r5;
    0x080025e8 stmdaeq r0, {r1, r2, r3, r5, r6, r7, r8, sp, pc}          |     __asm ("stmdaeq r0, {r1, r2, r3, r5, r6, r7, r8, sp, pc}");
                                                                         | label_16:
    0x080025ec mov r0, r4                                                |     r0 = r4;
    0x080025f0 mov r1, 0                                                 |     r1 = 0;
    0x080025f4 stmdaeq r0, {r1, r3, r5, r6, r7, r8, sp, pc}              |     __asm ("stmdaeq r0, {r1, r3, r5, r6, r7, r8, sp, pc}");
                                                                         | label_8:
    0x080025f8 mov r0, r7                                                |     r0 = r7;
    0x080025fc add sp, sp, 0xac                                          |     
    0x08002600 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                  |     
                                                                         | label_12:
    0x08002604 str r3, [r4, 0x594]                                       |     *((r4 + 0x594)) = r3;
    0x08002608 b 0x80024f8                                               |     goto label_0;
                                                                         | label_19:
    0x0800260c mov r2, 0xcc0                                             |     r2 = 0xcc0;
    0x08002610 mov r1, 8                                                 |     r1 = 8;
    0x08002614 mov r0, 0x40                                              |     r0 = 0x40;
    0x08002618 stmdaeq r0, {r1, r2, r3, r6, r7, r8, sp, pc}              |     __asm ("stmdaeq r0, {r1, r2, r3, r6, r7, r8, sp, pc}");
    0x0800261c cmp r0, 0                                                 |     
    0x08002620 str r0, [r4, 0x584]                                       |     *((r4 + 0x584)) = r0;
                                                                         |     if (r0 == 0) {
    0x08002624 beq 0x800285c                                             |         goto label_21;
                                                                         |     }
    0x08002628 mov r2, 0xcc0                                             |     r2 = 0xcc0;
    0x0800262c mov r1, 8                                                 |     r1 = 8;
    0x08002630 mov r0, 0x20                                              |     r0 = 0x20;
    0x08002634 stmdaeq r0, {r1, r2, r3, r6, r7, r8, sp, pc}              |     __asm ("stmdaeq r0, {r1, r2, r3, r6, r7, r8, sp, pc}");
    0x08002638 cmp r0, 0                                                 |     
    0x0800263c str r0, [r4, 0x578]                                       |     *((r4 + 0x578)) = r0;
                                                                         |     if (r0 == 0) {
    0x08002640 beq 0x8002854                                             |         goto label_22;
                                                                         |     }
    0x08002644 cmn r7, 1                                                 |     
    0x08002648 cmneq fp, 1                                               |     __asm ("cmneq fp, 1");
                                                                         |     if (r7 == 1) {
    0x0800264c beq 0x80027b4                                             |         goto label_23;
                                                                         |     }
                                                                         | label_5:
    0x08002650 movw r2, 0x564                                            |     r2 = 0x564;
    0x08002654 str r4, [r4, 0x540]                                       |     *((r4 + 0x540)) = r4;
    0x08002658 mov r3, 2                                                 |     r3 = 2;
    0x0800265c strh sl, [sb, 0x12]                                       |     *((sb + 0x12)) = sl;
    0x08002660 mov r1, 0x10                                              |     r1 = 0x10;
    0x08002664 cmp r6, 0                                                 |     
    0x08002668 strh r1, [sb, 0x10]                                       |     *((sb + 0x10)) = r1;
    0x0800266c str r3, [r4, 0x554]                                       |     *((r4 + 0x554)) = r3;
    0x08002670 mov r3, 0x100                                             |     
    0x08002674 movt r3, 1                                                |     r3 = 0x10100;
    0x08002678 str fp, [r4, 0x548]                                       |     *((r4 + 0x548)) = fp;
    0x0800267c str r3, [r4, 0x558]                                       |     *((r4 + 0x558)) = r3;
    0x08002680 mov r3, 1                                                 |     
    0x08002684 movt r3, 0x100                                            |     r3 = 0x1000001;
    0x08002688 str r7, [r4, 0x54c]                                       |     *((r4 + 0x54c)) = r7;
    0x0800268c str r3, [r4, 0x560]                                       |     *((r4 + 0x560)) = r3;
    0x08002690 mov r3, 0                                                 |     r3 = 0;
    0x08002694 strh r3, [r4, r2]                                         |     *((r4 + r2)) = r3;
                                                                         |     if (r6 != 0) {
    0x08002698 beq 0x80026b0                                             |         
    0x0800269c mov r1, r6                                                |         r1 = r6;
    0x080026a0 mov r0, r4                                                |         r0 = r4;
    0x080026a4 bl 0x8000328                                              |         r0 = macsec_changelink_common ();
    0x080026a8 subs r7, r0, 0                                            |         r7 = r0 - 0;
                                                                         |         if (r7 != r0) {
    0x080026ac bne 0x8002760                                             |             goto label_7;
                                                                         |         }
                                                                         |     }
    0x080026b0 ldr r3, [r4, 0x594]                                       |     r3 = *((r4 + 0x594));
    0x080026b4 sub r3, r3, 1                                             |     r3--;
    0x080026b8 cmp r3, 1                                                 |     
    0x080026bc bls 0x8002730                                             |     
                                                                         |     while (r0 == 0) {
                                                                         | label_2:
    0x080026c0 ldr r6, [r5, 0x1e8]                                       |         r6 = *((r5 + 0x1e8));
    0x080026c4 cmp r6, 0                                                 |         
                                                                         |         if (r6 == 0) {
    0x080026c8 movne r1, r6                                              |             r1 = r6;
                                                                         |         }
                                                                         |         if (r6 == 0) {
    0x080026cc beq 0x80027e0                                             |             goto label_24;
                                                                         |         }
                                                                         | label_6:
    0x080026d0 ldr r3, [r6, 4]                                           |         r3 = *((r6 + 4));
    0x080026d4 add sb, sb, 0x48                                          |         sb += 0x48;
    0x080026d8 str r1, [r4, 0x588]                                       |         *((r4 + 0x588)) = r1;
    0x080026dc str r3, [r4, 0x58c]                                       |         *((r4 + 0x58c)) = r3;
    0x080026e0 str sb, [r3]                                              |         *(r3) = sb;
    0x080026e4 mov r1, r4                                                |         r1 = r4;
    0x080026e8 mov r0, r5                                                |         r0 = r5;
    0x080026ec str sb, [r6, 4]                                           |         *((r6 + 4)) = sb;
    0x080026f0 stmdaeq r0, {r1, r5, r6, r7, r8, sp, pc}                  |         __asm ("stmdaeq r0, {r1, r5, r6, r7, r8, sp, pc}");
    0x080026f4 mov r0, r4                                                |         r0 = r4;
    0x080026f8 stmdaeq r0, {r1, r3, r4, r5, sb, sp, pc}                  |         __asm ("stmdaeq r0, {r1, r3, r4, r5, sb, sp, pc}");
    0x080026fc stmdaeq r0, {r3, r6, sl, fp, sp, lr}                      |         __asm ("stmdaeq r0, {r3, r6, sl, fp, sp, lr}");
    0x08002700 stmdaeq r0, {r3, r6, sl, fp, sp, lr}                      |         __asm ("stmdaeq r0, {r3, r6, sl, fp, sp, lr}");
    0x08002704 mov r7, 0                                                 |         r7 = 0;
    0x08002708 mov r0, r7                                                |         r0 = r7;
    0x0800270c ldr r2, [r3]                                              |         r2 = *(r3);
    0x08002710 add r2, r2, 1                                             |         r2++;
    0x08002714 str r2, [r3]                                              |         *(r3) = r2;
    0x08002718 add sp, sp, 0xac                                          |         
    0x0800271c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                  |         
                                                                         | label_11:
    0x08002720 str r6, [r4, 0x594]                                       |         *((r4 + 0x594)) = r6;
                                                                         | label_14:
    0x08002724 mov r2, 0x10                                              |         r2 = 0x10;
    0x08002728 mov sl, r2                                                |         sl = r2;
    0x0800272c b 0x800250c                                               |         goto label_1;
    0x08002730 ldr r6, [sp, 4]                                           |         r6 = var_4h;
    0x08002734 mov r0, sb                                                |         r0 = sb;
    0x08002738 mov r1, r6                                                |         r1 = r6;
    0x0800273c bl 0x80017ec                                              |         r0 = macsec_get_ops ();
    0x08002740 cmp r0, 0                                                 |         
    0x08002744 beq 0x80026c0                                             |         
                                                                         |     }
    0x08002748 str sb, [sp, 0x10]                                        |     var_10h = sb;
    0x0800274c mov r1, r6                                                |     r1 = r6;
    0x08002750 ldr r0, [r0, 8]                                           |     r0 = *((r0 + 8));
    0x08002754 bl 0x800025c                                              |     r0 = macsec_offload ();
    0x08002758 subs r7, r0, 0                                            |     r7 = r0 - 0;
                                                                         |     if (r7 == r0) {
    0x0800275c beq 0x80026c0                                             |         goto label_2;
                                                                         |     }
                                                                         | label_7:
    0x08002760 mov r0, sb                                                |     r0 = sb;
    0x08002764 bl 0x8001298                                              |     macsec_del_dev ();
    0x08002768 b 0x80025e0                                               |     goto label_3;
                                                                         | label_18:
    0x0800276c ldr r3, [r6, 8]                                           |     r3 = *((r6 + 8));
    0x08002770 cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x08002774 beq 0x80027a8                                             |         goto label_17;
                                                                         |     }
    0x08002778 ldrh r2, [r3, 4]                                          |     r2 = *((r3 + 4));
    0x0800277c ldr r3, [r4, 0x1c8]                                       |     r3 = *((r4 + 0x1c8));
                                                                         |     do {
    0x08002780 add r1, sp, 8                                             |         r1 += var_8h;
    0x08002784 str r1, [sp, 4]                                           |         var_4h = r1;
    0x08002788 ldr r0, [r3]                                              |         r0 = *(r3);
    0x0800278c str r0, [sp, 8]                                           |         var_8h = r0;
    0x08002790 mov fp, r0                                                |         
    0x08002794 ldrh r3, [r3, 4]                                          |         r3 = *((r3 + 4));
    0x08002798 strh r3, [sp, 0xc]                                        |         var_ch = r3;
    0x0800279c strh r2, [sp, 0xe]                                        |         var_eh = r2;
    0x080027a0 ldr r7, [sp, 0xc]                                         |         r7 = var_ch;
    0x080027a4 b 0x800259c                                               |         goto label_4;
                                                                         | label_17:
    0x080027a8 ldr r3, [r4, 0x1c8]                                       |         r3 = *((r4 + 0x1c8));
    0x080027ac mov r2, 0x100                                             |         r2 = 0x100;
    0x080027b0 b 0x8002780                                               |         
                                                                         |     } while (1);
                                                                         | label_23:
    0x080027b4 ldr r3, [r4, 0x1c8]                                       |     r3 = *((r4 + 0x1c8));
    0x080027b8 mov r2, 0x100                                             |     r2 = 0x100;
    0x080027bc ldr r1, [sp, 4]                                           |     r1 = var_4h;
    0x080027c0 ldr r0, [r3]                                              |     r0 = *(r3);
    0x080027c4 str r0, [sp, 8]                                           |     var_8h = r0;
    0x080027c8 ldrh r3, [r3, 4]                                          |     r3 = *((r3 + 4));
    0x080027cc strh r3, [r1, 4]                                          |     *((r1 + 4)) = r3;
    0x080027d0 strh r2, [sp, 0xe]                                        |     var_eh = r2;
    0x080027d4 ldr fp, [sp, 8]                                           |     fp = var_8h;
    0x080027d8 ldr r7, [sp, 0xc]                                         |     r7 = var_ch;
    0x080027dc b 0x8002650                                               |     goto label_5;
                                                                         | label_24:
    0x080027e0 stmdaeq r0, {r1, r2, r3, r4, sb, sp, pc}                  |     __asm ("stmdaeq r0, {r1, r2, r3, r4, sb, sp, pc}");
    0x080027e4 stmdaeq r0, {r1, r2, r3, r4, sb, sp, pc}                  |     __asm ("stmdaeq r0, {r1, r2, r3, r4, sb, sp, pc}");
    0x080027e8 mov r1, 0xcc0                                             |     r1 = 0xcc0;
    0x080027ec ldr r0, [r3, 0x18]                                        |     r0 = *((r3 + 0x18));
    0x080027f0 stmdaeq r0, {r1, r5, sb, sp, pc}                          |     __asm ("stmdaeq r0, {r1, r5, sb, sp, pc}");
    0x080027f4 mov r8, r0                                                |     r8 = r0;
    0x080027f8 subs r6, r0, 0                                            |     r6 = r0 - 0;
                                                                         |     if (r6 == r0) {
    0x080027fc beq 0x8002864                                             |         goto label_25;
                                                                         |     }
    0x08002800 mov r2, r0                                                |     r2 = r0;
    0x08002804 str r0, [r0]                                              |     *(r0) = r0;
    0x08002808 str r0, [r0, 4]                                           |     *((r0 + 4)) = r0;
    0x0800280c stmdaeq r0, {r2, r3, r4, r5, r8, sl, lr}                  |     __asm ("stmdaeq r0, {r2, r3, r4, r5, r8, sl, lr}");
    0x08002810 stmdaeq r0, {r2, r3, r4, r5, r8, sl, lr}                  |     __asm ("stmdaeq r0, {r2, r3, r4, r5, r8, sl, lr}");
    0x08002814 mov r0, r5                                                |     r0 = r5;
    0x08002818 stmdaeq r0, {r1, r2, r3, r4, r5, sb, sp, pc}              |     __asm ("stmdaeq r0, {r1, r2, r3, r4, r5, sb, sp, pc}");
    0x0800281c mov r1, r8                                                |     r1 = r8;
    0x08002820 subs r7, r0, 0                                            |     r7 = r0 - 0;
                                                                         |     if (r7 >= r0) {
    0x08002824 bge 0x80026d0                                             |         goto label_6;
                                                                         |     }
    0x08002828 mov r0, r8                                                |     r0 = r8;
    0x0800282c stmdaeq r0, {r1, r7, r8, sp, pc}                          |     __asm ("stmdaeq r0, {r1, r7, r8, sp, pc}");
    0x08002830 b 0x8002760                                               |     goto label_7;
                                                                         | label_9:
    0x08002834 mvn r7, 0x15                                              |     r7 = ~0x15;
    0x08002838 b 0x80025f8                                               |     goto label_8;
                                                                         | label_15:
    0x0800283c mvn r7, 0xf                                               |     r7 = ~0xf;
    0x08002840 b 0x80025f8                                               |     goto label_8;
                                                                         | label_10:
    0x08002844 mvn r7, 0x12                                              |     r7 = ~0x12;
    0x08002848 b 0x80025f8                                               |     goto label_8;
                                                                         | label_13:
    0x0800284c mvn r7, 0x5e                                              |     r7 = ~0x5e;
    0x08002850 b 0x80025f8                                               |     goto label_8;
                                                                         | label_22:
    0x08002854 ldr r0, [r4, 0x584]                                       |     r0 = *((r4 + 0x584));
    0x08002858 stmdaeq r0, {r1, r2, r3, r4, r5, r6, r8, sp, pc}          |     __asm ("stmdaeq r0, {r1, r2, r3, r4, r5, r6, r8, sp, pc}");
                                                                         | label_21:
    0x0800285c mvn r7, 0xb                                               |     r7 = ~0xb;
    0x08002860 b 0x80025e0                                               |     goto label_3;
                                                                         | label_25:
    0x08002864 mvn r7, 0xb                                               |     r7 = ~0xb;
    0x08002868 b 0x8002760                                               |     goto label_7;
                                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/modules/5.10.52-axis9/kernel/drivers/net/macsec.ko @ 0x8001338 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.macsec_notify ()                                 | void macsec_notify (uint32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_8h;
                                                                 |     r1 = arg2;
    0x08001338 push {r4, r5, r6, r7, r8, sb, sl, lr}             |     
    0x0800133c stmdaeq r0, {r2, r3, r4, r5, r8, sl, lr}          |     __asm ("stmdaeq r0, {r2, r3, r4, r5, r8, sl, lr}");
    0x08001340 stmdaeq r0, {r2, r3, r4, r5, r8, sl, lr}          |     __asm ("stmdaeq r0, {r2, r3, r4, r5, r8, sl, lr}");
    0x08001344 ldr r5, [r2]                                      |     r5 = *(r2);
    0x08001348 sub sp, sp, 8                                     |     
    0x0800134c ldr r2, [r5, 0x1e4]                               |     r2 = *((r5 + 0x1e4));
    0x08001350 str sp, [sp]                                      |     *(sp) = sp;
    0x08001354 cmp r2, r3                                        |     
    0x08001358 str sp, [sp, 4]                                   |     var_4h = sp;
                                                                 |     if (r2 == r3) {
    0x0800135c movne r0, 0                                       |         r0 = 0;
                                                                 |     }
                                                                 |     if (r2 != r3) {
    0x08001360 beq 0x800136c                                     |         
    0x08001364 add sp, sp, 8                                     |         
    0x08001368 pop {r4, r5, r6, r7, r8, sb, sl, pc}              |         
                                                                 |     }
    0x0800136c sub r1, r1, 1                                     |     r1--;
    0x08001370 cmp r1, 6                                         |     
                                                                 |     if (r1 > 6) {
                                                                 |         /* switch table (7 cases) at 0x800137c */
    0x08001374 ldrls pc, [pc, r1, lsl 2]                         |         offset_0 = r1 << 2;
                                                                 |         pc = *((pc + offset_0));
                                                                 |     }
    0x08001378 b 0x80013d4                                       |     
    0x080013d4 mov r0, 1                                         |     r0 = 1;
    0x080013d8 add sp, sp, 8                                     |     
    0x080013dc pop {r4, r5, r6, r7, r8, sb, sl, pc}              |     
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/modules/5.10.52-axis9/kernel/drivers/net/macsec.ko @ 0x80031f8 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.macsec_upd_offload ()                                | void macsec_upd_offload (int32_t arg2) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_4h;
                                                                     |     int32_t var_8h;
                                                                     |     int32_t var_14h;
                                                                     |     int32_t var_18h;
                                                                     |     int32_t var_20h;
                                                                     |     int32_t var_24h;
                                                                     |     int32_t var_28h;
                                                                     |     int32_t var_c0h;
                                                                     |     r1 = arg2;
    0x080031f8 push {r4, r5, r6, lr}                                 |     
    0x080031fc ldr r5, [r1, 0x14]                                    |     r5 = *((r1 + 0x14));
    0x08003200 sub sp, sp, 0xc0                                      |     
    0x08003204 ldr r3, [r5, 4]                                       |     r3 = *((r5 + 4));
    0x08003208 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0800320c beq 0x80033c4                                         |         goto label_3;
                                                                     |     }
    0x08003210 ldr r2, [r5, 0x24]                                    |     r2 = *((r5 + 0x24));
    0x08003214 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x08003218 beq 0x80033c4                                         |         goto label_3;
                                                                     |     }
    0x0800321c ldrh r3, [r2], 4                                      |     r3 = *(r2);
                                                                     |     r2 += 4;
    0x08003220 mov r4, r1                                            |     r4 = r1;
    0x08003224 ldr r1, [pc, 0x1a8]                                   |     r1 = *(0x80033d0);
    0x08003228 mov r0, 0                                             |     r0 = 0;
    0x0800322c str r1, [sp]                                          |     *(sp) = r1;
    0x08003230 sub r3, r3, 4                                         |     r3 -= 4;
    0x08003234 str r0, [sp, 8]                                       |     var_8h = r0;
    0x08003238 mov r1, 2                                             |     r1 = 2;
    0x0800323c str r0, [sp, 4]                                       |     var_4h = r0;
    0x08003240 add r0, sp, 0x14                                      |     r0 += var_14h;
    0x08003244 stmdaeq r0, {r1, r2, r4, sb, sp, pc}                  |     __asm ("stmdaeq r0, {r1, r2, r4, sb, sp, pc}");
    0x08003248 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0800324c bne 0x80033c4                                         |         goto label_3;
                                                                     |     }
    0x08003250 ldr r3, [r5, 4]                                       |     r3 = *((r5 + 4));
    0x08003254 ldr r0, [r4, 0x18]                                    |     r0 = *((r4 + 0x18));
    0x08003258 ldr r1, [r3, 4]                                       |     r1 = *((r3 + 4));
    0x0800325c stmdaeq r0, {r1, r2, r3, sb, sp, pc}                  |     __asm ("stmdaeq r0, {r1, r2, r3, sb, sp, pc}");
    0x08003260 subs r4, r0, 0                                        |     r4 = r0 - 0;
                                                                     |     if (r4 == r0) {
    0x08003264 beq 0x8003398                                         |         goto label_4;
                                                                     |     }
    0x08003268 ldr r3, [r4, 0x134]                                   |     r3 = *((r4 + 0x134));
    0x0800326c tst r3, 0x2000000                                     |     
                                                                     |     if ((r3 & 0x2000000) == 0) {
    0x08003270 beq 0x8003398                                         |         goto label_4;
                                                                     |     }
    0x08003274 cmn r4, 0x1000                                        |     
                                                                     |     if (r4 <= 0x1000) {
    0x08003278 movhi r5, r4                                          |         r5 = r4;
                                                                     |     }
                                                                     |     if (r4 > 0x1000) {
    0x0800327c bhi 0x8003358                                         |         goto label_1;
                                                                     |     }
    0x08003280 ldr r3, [sp, 0x18]                                    |     r3 = var_18h;
    0x08003284 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x08003288 beq 0x80033c4                                         |         goto label_3;
                                                                     |     }
    0x0800328c ldrb r5, [r3, 4]                                      |     r5 = *((r3 + 4));
    0x08003290 ldr r3, [r4, 0x594]                                   |     r3 = *((r4 + 0x594));
    0x08003294 cmp r3, r5                                            |     
                                                                     |     if (r3 == r5) {
    0x08003298 beq 0x8003354                                         |         goto label_5;
                                                                     |     }
    0x0800329c cmp r5, 0                                             |     
                                                                     |     if (r5 != 0) {
    0x080032a0 bne 0x8003364                                         |         goto label_6;
                                                                     |     }
                                                                     | label_0:
    0x080032a4 ldr r3, [r4, 0x28]                                    |     r3 = *((r4 + 0x28));
    0x080032a8 tst r3, 1                                             |     
                                                                     |     if ((r3 & 1) != 0) {
    0x080032ac bne 0x80033cc                                         |         goto label_7;
                                                                     |     }
    0x080032b0 stmdaeq r0, {r1, r3, r4, sb, sp, pc}                  |     __asm ("stmdaeq r0, {r1, r3, r4, sb, sp, pc}");
    0x080032b4 ldr r3, [r4, 0x544]                                   |     r3 = *((r4 + 0x544));
    0x080032b8 ldr r6, [r4, 0x594]                                   |     r6 = *((r4 + 0x594));
    0x080032bc cmp r3, 0                                             |     
    0x080032c0 str r5, [r4, 0x594]                                   |     *((r4 + 0x594)) = r5;
                                                                     |     if (r3 != 0) {
    0x080032c4 bne 0x8003380                                         |         goto label_8;
                                                                     |     }
    0x080032c8 add r3, r4, 0x560                                     |     r3 = r4 + 0x560;
    0x080032cc add r2, r4, 0x570                                     |     r2 = r4 + 0x570;
    0x080032d0 add r3, r3, 4                                         |     r3 += 4;
    0x080032d4 add r2, r2, 4                                         |     r2 += 4;
                                                                     |     do {
    0x080032d8 ldr r1, [r3, 4]!                                      |         r1 = *((r3 += 4));
    0x080032dc cmp r1, 0                                             |         
                                                                     |         if (r1 != 0) {
    0x080032e0 bne 0x8003380                                         |             goto label_8;
                                                                     |         }
    0x080032e4 cmp r3, r2                                            |         
    0x080032e8 bne 0x80032d8                                         |         
                                                                     |     } while (r3 != r2);
    0x080032ec cmp r5, 0                                             |     
    0x080032f0 add r0, sp, 0x20                                      |     r0 += var_20h;
                                                                     |     if (r5 != 0) {
    0x080032f4 moveq r5, r6                                          |         r5 = r6;
                                                                     |     }
    0x080032f8 mov r2, 0xa0                                          |     r2 = 0xa0;
    0x080032fc stmdaeq r0, {r1, r4, sb, sp, pc}                      |     __asm ("stmdaeq r0, {r1, r4, sb, sp, pc}");
    0x08003300 cmp r5, 1                                             |     
    0x08003304 str r5, [sp, 0x24]                                    |     var_24h = r5;
                                                                     |     if (r5 == 1) {
    0x08003308 beq 0x80033a8                                         |         goto label_9;
                                                                     |     }
    0x0800330c ldr r3, [r4, 0x580]                                   |     r3 = *((r4 + 0x580));
    0x08003310 cmp r5, 2                                             |     
                                                                     |     if (r5 != 2) {
    0x08003314 streq r3, [sp, 0x20]                                  |         var_20h = r3;
                                                                     |     }
    0x08003318 ldr r3, [r3, 0x510]                                   |     r3 = *((r3 + 0x510));
                                                                     | label_2:
    0x0800331c cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x08003320 beq 0x80033bc                                         |         goto label_10;
                                                                     |     }
    0x08003324 cmp r6, 0                                             |     
    0x08003328 add r1, sp, 0x20                                      |     r1 += var_20h;
                                                                     |     if (r6 != 0) {
    0x0800332c ldreq r0, [r3, 8]                                     |         r0 = *((r3 + 8));
                                                                     |     }
                                                                     |     if (r6 == 0) {
    0x08003330 ldrne r0, [r3, 0x10]                                  |         r0 = *((r3 + 0x10));
                                                                     |     }
    0x08003334 add r3, r4, 0x540                                     |     r3 = r4 + 0x540;
    0x08003338 str r3, [sp, 0x28]                                    |     var_28h = r3;
    0x0800333c bl 0x800025c                                          |     r0 = macsec_offload ();
    0x08003340 subs r5, r0, 0                                        |     r5 = r0 - 0;
                                                                     |     if (r5 != r0) {
    0x08003344 bne 0x8003384                                         |         goto label_11;
                                                                     |     }
    0x08003348 mov r0, r4                                            |     r0 = r4;
    0x0800334c stmdaeq r0, {r1, r3, r4, r5, r6, sb, sp, pc}          |     __asm ("stmdaeq r0, {r1, r3, r4, r5, r6, sb, sp, pc}");
    0x08003350 stmdaeq r0, {r1, r3, r5, sb, sp, pc}                  |     __asm ("stmdaeq r0, {r1, r3, r5, sb, sp, pc}");
                                                                     | label_5:
    0x08003354 mov r5, 0                                             |     r5 = 0;
                                                                     | label_1:
    0x08003358 mov r0, r5                                            |     r0 = r5;
    0x0800335c add sp, sp, 0xc0                                      |     
    0x08003360 pop {r4, r5, r6, pc}                                  |     
                                                                     | label_6:
    0x08003364 add r1, r4, 0x540                                     |     r1 = r4 + 0x540;
    0x08003368 mov r0, r5                                            |     r0 = r5;
    0x0800336c bl 0x8000070                                          |     r0 = macsec_check_offload ();
    0x08003370 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x08003374 bne 0x80032a4                                         |         goto label_0;
                                                                     |     }
    0x08003378 mvn r5, 0x5e                                          |     r5 = ~0x5e;
    0x0800337c b 0x8003358                                           |     goto label_1;
                                                                     | label_8:
    0x08003380 mvn r5, 0xf                                           |     r5 = ~0xf;
                                                                     |     do {
                                                                     | label_11:
    0x08003384 str r6, [r4, 0x594]                                   |         *((r4 + 0x594)) = r6;
    0x08003388 stmdaeq r0, {r1, r3, r5, sb, sp, pc}                  |         __asm ("stmdaeq r0, {r1, r3, r5, sb, sp, pc}");
    0x0800338c mov r0, r5                                            |         r0 = r5;
    0x08003390 add sp, sp, 0xc0                                      |         
    0x08003394 pop {r4, r5, r6, pc}                                  |         
                                                                     | label_4:
    0x08003398 mvn r5, 0x12                                          |         r5 = ~0x12;
    0x0800339c mov r0, r5                                            |         r0 = r5;
    0x080033a0 add sp, sp, 0xc0                                      |         
    0x080033a4 pop {r4, r5, r6, pc}                                  |         
                                                                     | label_9:
    0x080033a8 ldr r3, [r4, 0x580]                                   |         r3 = *((r4 + 0x580));
    0x080033ac ldr r3, [r3, 0x4f4]                                   |         r3 = *((r3 + 0x4f4));
    0x080033b0 str r3, [sp, 0x20]                                    |         var_20h = r3;
    0x080033b4 ldr r3, [r3, 0x35c]                                   |         r3 = *((r3 + 0x35c));
    0x080033b8 b 0x800331c                                           |         goto label_2;
                                                                     | label_10:
    0x080033bc mvn r5, 0x5e                                          |         r5 = ~0x5e;
    0x080033c0 b 0x8003384                                           |         
                                                                     |     } while (1);
                                                                     | label_3:
    0x080033c4 mvn r5, 0x15                                          |     r5 = ~0x15;
    0x080033c8 b 0x8003358                                           |     goto label_1;
                                                                     | label_7:
    0x080033cc mvn r5, 0xf                                           |     r5 = ~0xf;
    0x080033d0 b 0x8003358                                           |     goto label_1;
                                                                     | }

[*] Function mmap used 1 times macsec.ko