[*] Binary protection state of nf_conntrack.ko

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


[*] Function popen tear down of nf_conntrack.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/netfilter/nf_conntrack.ko @ 0x800279c */
                                                                             | #include <stdint.h>
                                                                             |  
                                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                             |  
    ; (fcn) sym.__nf_conntrack_confirm ()                                    | void nf_conntrack_confirm (int32_t arg1) {
                                                                             |     int32_t var_0h;
                                                                             |     r0 = arg1;
    0x0800279c push {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}                 |     
    0x080027a0 ldr r3, [r0, 0x50]                                            |     r3 = *((r0 + 0x50));
    0x080027a4 bic r4, r3, 7                                                 |     r4 = BIT_MASK (r3, 7);
    0x080027a8 and r3, r3, 7                                                 |     r3 &= 7;
    0x080027ac cmp r3, 2                                                     |     
    0x080027b0 ldr r7, [r4, 0x74]                                            |     r7 = *((r4 + 0x74));
                                                                             |     if (r3 > 2) {
    0x080027b4 bhi 0x8002ba4                                                 |         goto label_5;
                                                                             |     }
    0x080027b8 mov r3, sp                                                    |     r3 = sp;
    0x080027bc mov r8, r0                                                    |     r8 = r0;
    0x080027c0 bic r3, r3, 0x1fc0                                            |     r3 = BIT_MASK (r3, 0x1fc0);
    0x080027c4 bic r3, r3, 0x3f                                              |     r3 = BIT_MASK (r3, 0x3f);
    0x080027c8 ldr r2, [r3, 4]                                               |     r2 = *((r3 + 4));
    0x080027cc add r2, r2, 0x200                                             |     r2 += 0x200;
    0x080027d0 str r2, [r3, 4]                                               |     *((r3 + 4)) = r2;
    0x080027d4 stmdaeq r0, {r4, r5, r6, r7, r8, sl, fp, sp, lr, pc}          |     __asm ("stmdaeq r0, {r4, r5, r6, r7, r8, sl, fp, sp, lr, pc}");
    0x080027d8 stmdaeq r0, {r4, r5, r6, r7, r8, sl, fp, sp, lr, pc}          |     __asm ("stmdaeq r0, {r4, r5, r6, r7, r8, sl, fp, sp, lr, pc}");
    0x080027dc add sb, r4, 0x44                                              |     sb = r4 + 0x44;
                                                                             |     do {
                                                                             | label_4:
    0x080027e0 ldr fp, [sl, 0x10]                                            |         fp = *((sl + 0x10));
    0x080027e4 tst fp, 1                                                     |         
                                                                             |         if ((fp & 1) != 0) {
    0x080027e8 bne 0x8002bb0                                                 |             goto label_12;
                                                                             |         }
    0x080027ec ldr r3, [r4, 0x40]                                            |         r3 = *((r4 + 0x40));
    0x080027f0 mov r1, r7                                                    |         r1 = r7;
    0x080027f4 ldr r5, [sl, 0x18]                                            |         r5 = *((sl + 0x18));
    0x080027f8 mov r0, sb                                                    |         r0 = sb;
    0x080027fc umull r3, r5, r3, r5                                          |         r3:r5 = r3 * r5;
    0x08002800 bl 0x80006f0                                                  |         hash_conntrack_raw ();
    0x08002804 ldr r6, [sl, 0x18]                                            |         r6 = *((sl + 0x18));
    0x08002808 mov r3, r0                                                    |         r3 = r0;
    0x0800280c mov r2, fp                                                    |         r2 = fp;
    0x08002810 mov r0, r5                                                    |         r0 = r5;
    0x08002814 umull r3, r6, r3, r6                                          |         r3:r6 = r3 * r6;
    0x08002818 mov r1, r6                                                    |         r1 = r6;
    0x0800281c bl 0x8000674                                                  |         r0 = nf_conntrack_double_lock_constprop_0 ();
    0x08002820 cmp r0, 0                                                     |         
    0x08002824 bne 0x80027e0                                                 |         
                                                                             |     } while (r0 != 0);
    0x08002828 ldr sb, [r4, 0x6c]                                            |     sb = *((r4 + 0x6c));
    0x0800282c ubfx sb, sb, 3, 1                                             |     sb = (sb >> 3) & ((1 << 1) - 1);
    0x08002830 cmp sb, 0                                                     |     
                                                                             |     if (sb != 0) {
    0x08002834 bne 0x8002c08                                                 |         goto label_13;
                                                                             |     }
    0x08002838 mov r0, r4                                                    |     r0 = r4;
    0x0800283c bl 0x8000210                                                  |     nf_ct_del_from_dying_or_unconfirmed_list ();
    0x08002840 ldr r3, [r4, 0x6c]                                            |     r3 = *((r4 + 0x6c));
    0x08002844 tst r3, 0x200                                                 |     
                                                                             |     if ((r3 & 0x200) != 0) {
    0x08002848 bne 0x8002c3c                                                 |         goto label_14;
                                                                             |     }
    0x0800284c ldr lr, [sl]                                                  |     
    0x08002850 ldr r3, [lr, r5, lsl 2]                                       |     offset_0 = r5 << 2;
                                                                             |     r3 = *((lr + offset_0));
    0x08002854 tst r3, 1                                                     |     
                                                                             |     if ((r3 & 1) != 0) {
    0x08002858 bne 0x80029a4                                                 |         goto label_15;
                                                                             |     }
    0x0800285c ldr r1, [r4, 0x14]                                            |     r1 = *((r4 + 0x14));
    0x08002860 mvn ip, 0xb                                                   |     
    0x08002864 mov r0, 1                                                     |     r0 = 1;
    0x08002868 b 0x8002878                                                   |     
                                                                             |     while (r1 != r2) {
                                                                             | label_0:
    0x0800286c ldr r3, [r3]                                                  |         r3 = *(r3);
    0x08002870 tst r3, 1                                                     |         
                                                                             |         if ((r3 & 1) != 0) {
    0x08002874 bne 0x80029a4                                                 |             goto label_15;
                                                                             |         }
    0x08002878 ldr r2, [r3, 8]                                               |         r2 = *((r3 + 8));
    0x0800287c cmp r1, r2                                                    |         
    0x08002880 bne 0x800286c                                                 |         
                                                                             |     }
    0x08002884 ldr sb, [r4, 0x18]                                            |     sb = *((r4 + 0x18));
    0x08002888 ldr r2, [r3, 0xc]                                             |     r2 = *((r3 + 0xc));
    0x0800288c cmp sb, r2                                                    |     
                                                                             |     if (sb != r2) {
    0x08002890 bne 0x800286c                                                 |         goto label_0;
                                                                             |     }
    0x08002894 ldr sb, [r4, 0x1c]                                            |     sb = *((r4 + 0x1c));
    0x08002898 ldr r2, [r3, 0x10]                                            |     r2 = *((r3 + 0x10));
    0x0800289c cmp sb, r2                                                    |     
                                                                             |     if (sb != r2) {
    0x080028a0 bne 0x800286c                                                 |         goto label_0;
                                                                             |     }
    0x080028a4 ldr sb, [r4, 0x20]                                            |     sb = *((r4 + 0x20));
    0x080028a8 ldr r2, [r3, 0x14]                                            |     r2 = *((r3 + 0x14));
    0x080028ac cmp sb, r2                                                    |     
                                                                             |     if (sb != r2) {
    0x080028b0 bne 0x800286c                                                 |         goto label_0;
                                                                             |     }
    0x080028b4 ldr sb, [r4, 0x24]                                            |     sb = *((r4 + 0x24));
    0x080028b8 ldr r2, [r3, 0x18]                                            |     r2 = *((r3 + 0x18));
    0x080028bc cmp sb, r2                                                    |     
                                                                             |     if (sb != r2) {
    0x080028c0 bne 0x800286c                                                 |         goto label_0;
                                                                             |     }
    0x080028c4 ldr sb, [r4, 0x28]                                            |     sb = *((r4 + 0x28));
    0x080028c8 ldr r2, [r3, 0x1c]                                            |     r2 = *((r3 + 0x1c));
    0x080028cc cmp sb, r2                                                    |     
                                                                             |     if (sb != r2) {
    0x080028d0 bne 0x800286c                                                 |         goto label_0;
                                                                             |     }
    0x080028d4 ldr sb, [r4, 0x2c]                                            |     sb = *((r4 + 0x2c));
    0x080028d8 ldr r2, [r3, 0x20]                                            |     r2 = *((r3 + 0x20));
    0x080028dc cmp sb, r2                                                    |     
                                                                             |     if (sb != r2) {
    0x080028e0 bne 0x800286c                                                 |         goto label_0;
                                                                             |     }
    0x080028e4 ldr sb, [r4, 0x30]                                            |     sb = *((r4 + 0x30));
    0x080028e8 ldr r2, [r3, 0x24]                                            |     r2 = *((r3 + 0x24));
    0x080028ec cmp sb, r2                                                    |     
                                                                             |     if (sb != r2) {
    0x080028f0 bne 0x800286c                                                 |         goto label_0;
                                                                             |     }
    0x080028f4 ldr sb, [r4, 0x34]                                            |     sb = *((r4 + 0x34));
    0x080028f8 ldr r2, [r3, 0x28]                                            |     r2 = *((r3 + 0x28));
    0x080028fc cmp sb, r2                                                    |     
                                                                             |     if (sb != r2) {
    0x08002900 bne 0x800286c                                                 |         goto label_0;
                                                                             |     }
    0x08002904 ldr r2, [r4, 0x38]                                            |     r2 = *((r4 + 0x38));
    0x08002908 ldr sb, [r3, 0x2c]                                            |     sb = *((r3 + 0x2c));
    0x0800290c eor r2, r2, sb                                                |     r2 ^= sb;
    0x08002910 bics r2, r2, 0xff000000                                       |     __asm ("bics r2, r2, 0xff000000");
                                                                             |     if (sb != r2) {
    0x08002914 bne 0x800286c                                                 |         goto label_0;
                                                                             |     }
    0x08002918 ldrb r2, [r3, 0x2f]                                           |     r2 = *((r3 + 0x2f));
    0x0800291c ldrb sb, [r3, 0x2f]                                           |     sb = *((r3 + 0x2f));
    0x08002920 ldrb fp, [r4, 0xb]                                            |     fp = *((r4 + 0xb));
    0x08002924 add r2, r2, r2, lsl 1                                         |     r2 += (r2 << 1);
    0x08002928 lsl sb, r0, sb                                                |     sb = r0 << sb;
    0x0800292c sub r2, ip, r2, lsl 4                                         |     r2 = ip - (r2 << 4);
    0x08002930 and fp, fp, sb                                                |     
    0x08002934 add r2, r3, r2                                                |     r2 = r3 + r2;
    0x08002938 ldrb sl, [r2, 0xb]                                            |     sl = *((r2 + 0xb));
    0x0800293c ands sl, sl, sb                                               |     sl &= sb;
                                                                             |     if (sl == sl) {
    0x08002940 beq 0x8002bfc                                                 |         goto label_16;
                                                                             |     }
    0x08002944 ldrh sl, [r2, 8]                                              |     sl = *((r2 + 8));
    0x08002948 cmp fp, 0                                                     |     
                                                                             |     if (fp != 0) {
    0x0800294c beq 0x8002954                                                 |         
                                                                             | label_9:
    0x08002950 ldrh fp, [r4, 8]                                              |         fp = *((r4 + 8));
                                                                             |     }
    0x08002954 cmp fp, sl                                                    |     
                                                                             |     if (fp != sl) {
    0x08002958 bne 0x800286c                                                 |         goto label_0;
                                                                             |     }
                                                                             | label_8:
    0x0800295c ldr sb, [r2, 0x6c]                                            |     sb = *((r2 + 0x6c));
    0x08002960 tst sb, 8                                                     |     
                                                                             |     if ((sb & 8) == 0) {
    0x08002964 beq 0x800286c                                                 |         goto label_0;
                                                                             |     }
    0x08002968 ldr r2, [r2, 0x74]                                            |     r2 = *((r2 + 0x74));
    0x0800296c cmp r7, r2                                                    |     
                                                                             |     if (r7 != r2) {
    0x08002970 bne 0x800286c                                                 |         goto label_0;
                                                                             |     }
                                                                             | label_2:
    0x08002974 mov r2, r6                                                    |     r2 = r6;
    0x08002978 mov r1, r3                                                    |     r1 = r3;
    0x0800297c mov r0, r8                                                    |     r0 = r8;
    0x08002980 stmdaeq r0, {r3, r5, r6, r8, sb, sl, fp, ip, sp, pc}          |     __asm ("stmdaeq r0, {r3, r5, r6, r8, sb, sl, fp, ip, sp, pc}");
    0x08002984 mov sb, r0                                                    |     sb = r0;
                                                                             | label_11:
    0x08002988 mov r1, r6                                                    |     r1 = r6;
    0x0800298c mov r0, r5                                                    |     r0 = r5;
    0x08002990 bl 0x800049c                                                  |     nf_conntrack_double_unlock ();
    0x08002994 ldr r0, [pc, 0x2ec]                                           |     r0 = *(0x8002c84);
    0x08002998 mov r1, 0x200                                                 |     r1 = 0x200;
    0x0800299c stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}                      |     __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x080029a0 b 0x8002ba8                                                   |     goto label_10;
                                                                             | label_15:
    0x080029a4 ldr r3, [lr, r6, lsl 2]                                       |     offset_1 = r6 << 2;
                                                                             |     r3 = *((lr + offset_1));
    0x080029a8 tst r3, 1                                                     |     
                                                                             |     if ((r3 & 1) != 0) {
    0x080029ac bne 0x8002ad4                                                 |         goto label_17;
                                                                             |     }
    0x080029b0 ldr r0, [r4, 0x44]                                            |     r0 = *((r4 + 0x44));
    0x080029b4 mvn lr, 0xb                                                   |     lr = ~0xb;
    0x080029b8 mov ip, 1                                                     |     
    0x080029bc b 0x80029cc                                                   |     
                                                                             |     while (r0 != r2) {
                                                                             | label_1:
    0x080029c0 ldr r3, [r3]                                                  |         r3 = *(r3);
    0x080029c4 tst r3, 1                                                     |         
                                                                             |         if ((r3 & 1) != 0) {
    0x080029c8 bne 0x8002ad4                                                 |             goto label_17;
                                                                             |         }
                                                                             | label_3:
    0x080029cc ldr r2, [r3, 8]                                               |         r2 = *((r3 + 8));
    0x080029d0 cmp r0, r2                                                    |         
    0x080029d4 bne 0x80029c0                                                 |         
                                                                             |     }
    0x080029d8 ldr r1, [r4, 0x48]                                            |     r1 = *((r4 + 0x48));
    0x080029dc ldr r2, [r3, 0xc]                                             |     r2 = *((r3 + 0xc));
    0x080029e0 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x080029e4 bne 0x80029c0                                                 |         goto label_1;
                                                                             |     }
    0x080029e8 ldr r1, [r4, 0x4c]                                            |     r1 = *((r4 + 0x4c));
    0x080029ec ldr r2, [r3, 0x10]                                            |     r2 = *((r3 + 0x10));
    0x080029f0 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x080029f4 bne 0x80029c0                                                 |         goto label_1;
                                                                             |     }
    0x080029f8 ldr r1, [r4, 0x50]                                            |     r1 = *((r4 + 0x50));
    0x080029fc ldr r2, [r3, 0x14]                                            |     r2 = *((r3 + 0x14));
    0x08002a00 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x08002a04 bne 0x80029c0                                                 |         goto label_1;
                                                                             |     }
    0x08002a08 ldr r1, [r4, 0x54]                                            |     r1 = *((r4 + 0x54));
    0x08002a0c ldr r2, [r3, 0x18]                                            |     r2 = *((r3 + 0x18));
    0x08002a10 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x08002a14 bne 0x80029c0                                                 |         goto label_1;
                                                                             |     }
    0x08002a18 ldr r1, [r4, 0x58]                                            |     r1 = *((r4 + 0x58));
    0x08002a1c ldr r2, [r3, 0x1c]                                            |     r2 = *((r3 + 0x1c));
    0x08002a20 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x08002a24 bne 0x80029c0                                                 |         goto label_1;
                                                                             |     }
    0x08002a28 ldr r1, [r4, 0x5c]                                            |     r1 = *((r4 + 0x5c));
    0x08002a2c ldr r2, [r3, 0x20]                                            |     r2 = *((r3 + 0x20));
    0x08002a30 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x08002a34 bne 0x80029c0                                                 |         goto label_1;
                                                                             |     }
    0x08002a38 ldr r1, [r4, 0x60]                                            |     r1 = *((r4 + 0x60));
    0x08002a3c ldr r2, [r3, 0x24]                                            |     r2 = *((r3 + 0x24));
    0x08002a40 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x08002a44 bne 0x80029c0                                                 |         goto label_1;
                                                                             |     }
    0x08002a48 ldr r1, [r4, 0x64]                                            |     r1 = *((r4 + 0x64));
    0x08002a4c ldr r2, [r3, 0x28]                                            |     r2 = *((r3 + 0x28));
    0x08002a50 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x08002a54 bne 0x80029c0                                                 |         goto label_1;
                                                                             |     }
    0x08002a58 ldr r2, [r4, 0x68]                                            |     r2 = *((r4 + 0x68));
    0x08002a5c ldr r1, [r3, 0x2c]                                            |     r1 = *((r3 + 0x2c));
    0x08002a60 eor r2, r2, r1                                                |     r2 ^= r1;
    0x08002a64 bics r2, r2, 0xff000000                                       |     __asm ("bics r2, r2, 0xff000000");
                                                                             |     if (r1 != r2) {
    0x08002a68 bne 0x80029c0                                                 |         goto label_1;
                                                                             |     }
    0x08002a6c ldrb r2, [r3, 0x2f]                                           |     r2 = *((r3 + 0x2f));
    0x08002a70 ldrb r1, [r3, 0x2f]                                           |     r1 = *((r3 + 0x2f));
    0x08002a74 ldrb sb, [r4, 0xb]                                            |     sb = *((r4 + 0xb));
    0x08002a78 add r2, r2, r2, lsl 1                                         |     r2 += (r2 << 1);
    0x08002a7c lsl r1, ip, r1                                                |     r1 = ip << r1;
    0x08002a80 sub r2, lr, r2, lsl 4                                         |     r2 = lr - (r2 << 4);
    0x08002a84 and sb, sb, r1                                                |     sb &= r1;
    0x08002a88 add r2, r3, r2                                                |     r2 = r3 + r2;
    0x08002a8c ldrb sl, [r2, 0xb]                                            |     sl = *((r2 + 0xb));
    0x08002a90 ands sl, sl, r1                                               |     sl &= r1;
                                                                             |     if (sl == sl) {
    0x08002a94 beq 0x8002bf0                                                 |         goto label_18;
                                                                             |     }
    0x08002a98 ldrh sl, [r2, 8]                                              |     sl = *((r2 + 8));
    0x08002a9c cmp sb, 0                                                     |     
                                                                             |     if (sb != 0) {
    0x08002aa0 beq 0x8002aa8                                                 |         
                                                                             | label_7:
    0x08002aa4 ldrh sb, [r4, 8]                                              |         sb = *((r4 + 8));
                                                                             |     }
    0x08002aa8 cmp sb, sl                                                    |     
                                                                             |     if (sb != sl) {
    0x08002aac bne 0x80029c0                                                 |         goto label_1;
                                                                             |     }
                                                                             | label_6:
    0x08002ab0 ldr r1, [r2, 0x6c]                                            |     r1 = *((r2 + 0x6c));
    0x08002ab4 tst r1, 8                                                     |     
                                                                             |     if ((r1 & 8) == 0) {
    0x08002ab8 beq 0x80029c0                                                 |         goto label_1;
                                                                             |     }
    0x08002abc ldr r2, [r2, 0x74]                                            |     r2 = *((r2 + 0x74));
    0x08002ac0 cmp r7, r2                                                    |     
                                                                             |     if (r7 == r2) {
    0x08002ac4 beq 0x8002974                                                 |         goto label_2;
                                                                             |     }
    0x08002ac8 ldr r3, [r3]                                                  |     r3 = *(r3);
    0x08002acc tst r3, 1                                                     |     
                                                                             |     if ((r3 & 1) == 0) {
    0x08002ad0 beq 0x80029cc                                                 |         goto label_3;
                                                                             |     }
                                                                             | label_17:
    0x08002ad4 stmdaeq r1, {r2, r4, r5, r6, r7, sl, fp, lr, pc}              |     __asm ("stmdaeq r1, {r2, r4, r5, r6, r7, sl, fp, lr, pc}");
    0x08002ad8 stmdaeq r1, {r2, r4, r5, r6, r7, sl, fp, lr, pc}              |     __asm ("stmdaeq r1, {r2, r4, r5, r6, r7, sl, fp, lr, pc}");
    0x08002adc ldr r3, [r4, 4]                                               |     r3 = *((r4 + 4));
    0x08002ae0 mov r0, r4                                                    |     r0 = r4;
    0x08002ae4 ldr r2, [r2]                                                  |     r2 = *(r2);
    0x08002ae8 add r3, r3, r2                                                |     r3 += r2;
    0x08002aec str r3, [r4, 4]                                               |     *((r4 + 4)) = r3;
    0x08002af0 bl 0x8000f2c                                                  |     nf_conntrack_insert_prepare ();
    0x08002af4 mov r2, r6                                                    |     r2 = r6;
    0x08002af8 mov r1, r5                                                    |     r1 = r5;
    0x08002afc mov r0, r4                                                    |     r0 = r4;
    0x08002b00 bl 0x8000070                                                  |     nf_conntrack_hash_insert ();
    0x08002b04 mov r1, r6                                                    |     r1 = r6;
    0x08002b08 mov r0, r5                                                    |     r0 = r5;
    0x08002b0c bl 0x800049c                                                  |     nf_conntrack_double_unlock ();
    0x08002b10 ldr r0, [pc, 0x174]                                           |     r0 = .text;
    0x08002b14 mov r1, 0x200                                                 |     r1 = 0x200;
    0x08002b18 stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}                      |     __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x08002b1c ldr r3, [r4, 0x8c]                                            |     r3 = *((r4 + 0x8c));
    0x08002b20 cmp r3, 0                                                     |     
                                                                             |     if (r3 == 0) {
    0x08002b24 beq 0x8002c58                                                 |         goto label_19;
                                                                             |     }
    0x08002b28 ldrb r2, [r3]                                                 |     r2 = *(r3);
    0x08002b2c ldr r1, [r4, 0x74]                                            |     r1 = *((r4 + 0x74));
    0x08002b30 cmp r2, 0                                                     |     
                                                                             |     if (r2 == 0) {
    0x08002b34 beq 0x8002bb4                                                 |         goto label_20;
                                                                             |     }
    0x08002b38 cmn r3, r2                                                    |     
                                                                             |     if (r3 == r2) {
    0x08002b3c beq 0x8002bb4                                                 |         goto label_20;
                                                                             |     }
    0x08002b40 ldr r2, [r3, r2]                                              |     r2 = *((r3 + r2));
    0x08002b44 cmp r2, 0                                                     |     
                                                                             |     if (r2 == 0) {
    0x08002b48 beq 0x8002bb4                                                 |         goto label_20;
                                                                             |     }
    0x08002b4c ldr r2, [r1, 0x660]                                           |     r2 = *((r1 + 0x660));
    0x08002b50 cmp r2, 0                                                     |     
                                                                             |     if (r2 == 0) {
    0x08002b54 beq 0x8002bb4                                                 |         goto label_20;
                                                                             |     }
    0x08002b58 ldrb r2, [r3, 4]                                              |     r2 = *((r3 + 4));
    0x08002b5c cmp r2, 0                                                     |     
                                                                             |     if (r2 == 0) {
    0x08002b60 beq 0x8002bb4                                                 |         goto label_20;
                                                                             |     }
    0x08002b64 cmn r3, r2                                                    |     
                                                                             |     if (r3 == r2) {
    0x08002b68 beq 0x8002bb4                                                 |         goto label_20;
                                                                             |     }
    0x08002b6c mrs r0, apsr                                                  |     r0 = apsr;
    0x08002b70 cpsid i                                                       |     __asm ("cpsid i");
    0x08002b74 ldr r1, [r3, r2]                                              |     r1 = *((r3 + r2));
    0x08002b78 orr r1, r1, 0x40                                              |     r1 |= 0x40;
    0x08002b7c str r1, [r3, r2]                                              |     *((r3 + r2)) = r1;
    0x08002b80 msr cpsr_c, r0                                                |     cpsr_c = r0;
    0x08002b84 ldr r3, [r4, 0x74]                                            |     r3 = *((r4 + 0x74));
    0x08002b88 ldr r0, [r4, 0x80]                                            |     r0 = *((r4 + 0x80));
    0x08002b8c ldr r3, [r3, 0x660]                                           |     r3 = *((r3 + 0x660));
    0x08002b90 cmp r3, 0                                                     |     
                                                                             |     if (r3 == 0) {
    0x08002b94 beq 0x8002ba4                                                 |         goto label_5;
                                                                             |     }
    0x08002b98 ldr r3, [r4, 0x8c]                                            |     r3 = *((r4 + 0x8c));
    0x08002b9c cmp r3, 0                                                     |     
                                                                             |     if (r3 != 0) {
    0x08002ba0 bne 0x8002bc4                                                 |         goto label_21;
                                                                             |     }
                                                                             |     do {
                                                                             | label_5:
    0x08002ba4 mov sb, 1                                                     |         sb = 1;
                                                                             | label_10:
    0x08002ba8 mov r0, sb                                                    |         r0 = sb;
    0x08002bac pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}                  |         
                                                                             | label_12:
    0x08002bb0 b 0x80027e0                                                   |         goto label_4;
                                                                             | label_20:
    0x08002bb4 ldr r2, [r1, 0x660]                                           |         r2 = *((r1 + 0x660));
    0x08002bb8 ldr r0, [r4, 0x80]                                            |         r0 = *((r4 + 0x80));
    0x08002bbc cmp r2, 0                                                     |         
    0x08002bc0 beq 0x8002ba4                                                 |         
                                                                             |     } while (r2 == 0);
                                                                             | label_21:
    0x08002bc4 subs r0, r0, 0                                                |     
    0x08002bc8 ldrb r1, [r3, 4]                                              |     r1 = *((r3 + 4));
                                                                             |     if (r0 == r0) {
    0x08002bcc movne r0, 1                                                   |         r0 = 1;
                                                                             |     }
    0x08002bd0 cmp r1, 0                                                     |     
                                                                             |     if (r1 == 0) {
    0x08002bd4 beq 0x8002ba4                                                 |         goto label_5;
                                                                             |     }
    0x08002bd8 adds r1, r3, r1                                               |     r1 = r3 + r1;
                                                                             |     if (r1 == r3) {
    0x08002bdc beq 0x8002ba4                                                 |         goto label_5;
                                                                             |     }
    0x08002be0 mov sb, 1                                                     |     sb = 1;
    0x08002be4 stmdaeq r1, {r6, r8, sl, fp, lr, pc}                          |     __asm ("stmdaeq r1, {r6, r8, sl, fp, lr, pc}");
    0x08002be8 mov r0, sb                                                    |     r0 = sb;
    0x08002bec pop {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}                  |     
                                                                             | label_18:
    0x08002bf0 cmp sb, 0                                                     |     
                                                                             |     if (sb == 0) {
    0x08002bf4 beq 0x8002ab0                                                 |         goto label_6;
                                                                             |     }
    0x08002bf8 b 0x8002aa4                                                   |     goto label_7;
                                                                             | label_16:
    0x08002bfc cmp fp, 0                                                     |     
                                                                             |     if (fp == 0) {
    0x08002c00 beq 0x800295c                                                 |         goto label_8;
                                                                             |     }
    0x08002c04 b 0x8002950                                                   |     goto label_9;
                                                                             | label_13:
    0x08002c08 stmdaeq r0, {r4, r7, sb, sl, fp, sp, lr, pc}                  |     __asm ("stmdaeq r0, {r4, r7, sb, sl, fp, sp, lr, pc}");
    0x08002c0c stmdaeq r0, {r4, r7, sb, sl, fp, sp, lr, pc}                  |     __asm ("stmdaeq r0, {r4, r7, sb, sl, fp, sp, lr, pc}");
    0x08002c10 ldrb r3, [r2]                                                 |     r3 = *(r2);
    0x08002c14 cmp r3, 0                                                     |     
    0x08002c18 beq 0x8002c68                                                 |     
                                                                             |     while (1) {
    0x08002c1c mov r1, r6                                                    |         r1 = r6;
    0x08002c20 mov r0, r5                                                    |         r0 = r5;
    0x08002c24 bl 0x800049c                                                  |         nf_conntrack_double_unlock ();
    0x08002c28 ldr r0, [pc, 0x60]                                            |         r0 = .text;
    0x08002c2c mov r1, 0x200                                                 |         r1 = 0x200;
    0x08002c30 mov sb, 0                                                     |         sb = 0;
    0x08002c34 stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}                      |         __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x08002c38 b 0x8002ba8                                                   |         goto label_10;
                                                                             | label_14:
    0x08002c3c mov r0, r4                                                    |         r0 = r4;
    0x08002c40 bl 0x80000dc                                                  |         nf_ct_add_to_dying_list ();
    0x08002c44 ldr r2, [r7, 0x65c]                                           |         r2 = *((r7 + 0x65c));
    0x08002c48 ldr r3, [r2, 0xc]                                             |         r3 = *((r2 + 0xc));
    0x08002c4c add r3, r3, 1                                                 |         r3++;
    0x08002c50 str r3, [r2, 0xc]                                             |         *((r2 + 0xc)) = r3;
    0x08002c54 b 0x8002988                                                   |         goto label_11;
                                                                             | label_19:
    0x08002c58 ldr r3, [r4, 0x74]                                            |         r3 = *((r4 + 0x74));
    0x08002c5c mov sb, 1                                                     |         sb = 1;
    0x08002c60 ldr r3, [r3, 0x660]                                           |         r3 = *((r3 + 0x660));
    0x08002c64 b 0x8002ba8                                                   |         goto label_10;
    0x08002c68 mov r1, 1                                                     |         r1 = 1;
    0x08002c6c stmdaeq r0, {r2, r3, r5, r6, sb, sl, ip, lr, pc}              |         __asm ("stmdaeq r0, {r2, r3, r5, r6, sb, sl, ip, lr, pc}");
    0x08002c70 stmdaeq r0, {r2, r3, r5, r6, sb, sl, ip, lr, pc}              |         __asm ("stmdaeq r0, {r2, r3, r5, r6, sb, sl, ip, lr, pc}");
    0x08002c74 strb r1, [r2]                                                 |         *(r2) = r1;
    0x08002c78 mov r2, 9                                                     |         r2 = 9;
    0x08002c7c mov r1, 0x460                                                 |         r1 = 0x460;
    0x08002c80 stmdaeq r1, {r3, r4, r5, r7, sl, fp, lr, pc}                  |         __asm ("stmdaeq r1, {r3, r4, r5, r7, sl, fp, lr, pc}");
    0x08002c84 b 0x8002c1c                                                   |         
                                                                             |     }
                                                                             | }
    ; 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/netfilter/nf_conntrack.ko @ 0x8001074 */
                                                                         | #include <stdint.h>
                                                                         |  
                                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                         |  
    ; (fcn) sym.destroy_conntrack ()                                     | void destroy_conntrack (int32_t arg1) {
                                                                         |     int32_t var_0h;
                                                                         |     r0 = arg1;
    0x08001074 push {r4, lr}                                             |     
    0x08001078 mov r4, r0                                                |     r4 = r0;
    0x0800107c ldr r3, [r0]                                              |     r3 = *(r0);
    0x08001080 cmp r3, 0                                                 |     
                                                                         |     if (r3 != 0) {
    0x08001084 bne 0x8001108                                             |         goto label_1;
                                                                         |     }
    0x08001088 ldr r3, [r4, 0x6c]                                        |     r3 = *((r4 + 0x6c));
    0x0800108c tst r3, 0x800                                             |     
                                                                         |     if ((r3 & 0x800) != 0) {
    0x08001090 bne 0x800112c                                             |         goto label_2;
                                                                         |     }
                                                                         | label_0:
    0x08001094 mov r3, sp                                                |     r3 = sp;
    0x08001098 bic r3, r3, 0x1fc0                                        |     r3 = BIT_MASK (r3, 0x1fc0);
    0x0800109c bic r3, r3, 0x3f                                          |     r3 = BIT_MASK (r3, 0x3f);
    0x080010a0 ldr r2, [r3, 4]                                           |     r2 = *((r3 + 4));
    0x080010a4 add r2, r2, 0x200                                         |     r2 += 0x200;
    0x080010a8 str r2, [r3, 4]                                           |     *((r3 + 4)) = r2;
    0x080010ac mov r0, r4                                                |     r0 = r4;
    0x080010b0 stmdaeq r0, {r2, r5, r7, fp, ip, lr}                      |     __asm ("stmdaeq r0, {r2, r5, r7, fp, ip, lr}");
    0x080010b4 mov r0, r4                                                |     r0 = r4;
    0x080010b8 bl 0x8000210                                              |     nf_ct_del_from_dying_or_unconfirmed_list ();
    0x080010bc ldr r0, [pc, 0x7c]                                        |     r0 = *(0x800113c);
    0x080010c0 mov r1, 0x200                                             |     r1 = 0x200;
    0x080010c4 stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}                  |     __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x080010c8 ldr r0, [r4, 0x80]                                        |     r0 = *((r4 + 0x80));
    0x080010cc cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x080010d0 beq 0x80010f4                                             |         goto label_3;
                                                                         |     }
    0x080010d4 pld [r0]                                                  |     __asm ("pld [r0]");
                                                                         |     do {
    0x080010d8 ldrex r3, [r0]                                            |         __asm ("ldrex r3, [r0]");
    0x080010dc sub r3, r3, 1                                             |         r3--;
    0x080010e0 strex r2, r3, [r0]                                        |         __asm ("strex r2, r3, [r0]");
    0x080010e4 teq r2, 0                                                 |         __asm ("teq r2, 0");
    0x080010e8 bne 0x80010d8                                             |         
                                                                         |     } while (r0 != 0);
    0x080010ec cmp r3, 0                                                 |     
    0x080010f0 beq 0x8001100                                             |     
                                                                         |     while (1) {
                                                                         | label_3:
    0x080010f4 mov r0, r4                                                |         r0 = r4;
    0x080010f8 pop {r4, lr}                                              |         
    0x080010fc stmdaeq r0, {r2, r3, r8, sb}                              |         __asm ("stmdaeq r0, {r2, r3, r8, sb}");
    0x08001100 stmdaeq r1, {r2, r8, sl, fp, lr, pc}                      |         __asm ("stmdaeq r1, {r2, r8, sl, fp, lr, pc}");
    0x08001104 b 0x80010f4                                               |         
                                                                         |     }
                                                                         | label_1:
    0x08001108 mov r3, 0                                                 |     r3 = 0;
    0x0800110c stmdaeq r0, {r2, r3, r5, r6, sb, sl, ip, lr, pc}          |     __asm ("stmdaeq r0, {r2, r3, r5, r6, sb, sl, ip, lr, pc}");
    0x08001110 stmdaeq r0, {r2, r3, r5, r6, sb, sl, ip, lr, pc}          |     __asm ("stmdaeq r0, {r2, r3, r5, r6, sb, sl, ip, lr, pc}");
    0x08001114 mov r2, 9                                                 |     r2 = 9;
    0x08001118 movw r1, 0x25a                                            |     r1 = 0x25a;
    0x0800111c stmdaeq r1, {r3, r4, r5, r7, sl, fp, lr, pc}              |     __asm ("stmdaeq r1, {r3, r4, r5, r7, sl, fp, lr, pc}");
    0x08001120 ldr r3, [r4, 0x6c]                                        |     r3 = *((r4 + 0x6c));
    0x08001124 tst r3, 0x800                                             |     
                                                                         |     if ((r3 & 0x800) == 0) {
    0x08001128 beq 0x8001094                                             |         goto label_0;
                                                                         |     }
                                                                         | label_2:
    0x0800112c mov r0, r4                                                |     r0 = r4;
    0x08001130 stmdaeq r0, {r3, r5, r6, r7, fp, sp, pc}                  |     __asm ("stmdaeq r0, {r3, r5, r6, r7, fp, sp, pc}");
    0x08001134 mov r0, r4                                                |     r0 = r4;
    0x08001138 pop {r4, lr}                                              |     
    0x0800113c stmdaeq r1, {r2, r3, r5, r7, sl, fp, lr, pc}              |     __asm ("stmdaeq r1, {r2, r3, r5, r7, sl, fp, lr, pc}");
    0x08001140 stmdaeq r0, {r4, r5, r6}                                  |     __asm ("stmdaeq r0, {r4, r5, r6}");
                                                                         | }
    ; 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/netfilter/nf_conntrack.ko @ 0x800ba70 */
                                                                     | #include <stdint.h>
                                                                     |  
                                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                     |  
    ; (fcn) sym.ecache_work_evict_list ()                            | void ecache_work_evict_list (int32_t arg1) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_100h;
                                                                     |     r0 = arg1;
    0x0800ba70 push {r4, r5, r6, r7, r8, lr}                         |     
    0x0800ba74 sub sp, sp, 0x100                                     |     
    0x0800ba78 mov r3, sp                                            |     r3 = sp;
    0x0800ba7c bic r3, r3, 0x1fc0                                    |     r3 = BIT_MASK (r3, 0x1fc0);
    0x0800ba80 bic r3, r3, 0x3f                                      |     r3 = BIT_MASK (r3, 0x3f);
    0x0800ba84 ldr r2, [r3, 4]                                       |     r2 = *((r3 + 4));
    0x0800ba88 add r2, r2, 1                                         |     r2++;
    0x0800ba8c str r2, [r3, 4]                                       |     *((r3 + 4)) = r2;
    0x0800ba90 ldr r5, [r0, 4]                                       |     r5 = *((r0 + 4));
    0x0800ba94 ands r6, r5, 1                                        |     r6 = r5 & 1;
                                                                     |     if (r6 == r5) {
    0x0800ba98 movne r6, 0                                           |         r6 = 0;
                                                                     |     }
                                                                     |     if (r6 == r5) {
    0x0800ba9c movne r5, 2                                           |         r5 = 2;
                                                                     |     }
                                                                     |     if (r6 != r5) {
    0x0800baa0 bne 0x800bb50                                         |         goto label_3;
                                                                     |     }
    0x0800baa4 mvn r7, 0xb                                           |     r7 = ~0xb;
    0x0800baa8 b 0x800bab8                                           |     
                                                                     |     while ((r3 & 8) == 0) {
                                                                     | label_0:
    0x0800baac ldr r5, [r5]                                          |         r5 = *(r5);
    0x0800bab0 tst r5, 1                                             |         
                                                                     |         if ((r5 & 1) != 0) {
    0x0800bab4 bne 0x800bbf0                                         |             goto label_5;
                                                                     |         }
    0x0800bab8 ldrb r4, [r5, 0x2f]                                   |         r4 = *((r5 + 0x2f));
    0x0800babc add r4, r4, r4, lsl 1                                 |         r4 += (r4 << 1);
    0x0800bac0 sub r4, r7, r4, lsl 4                                 |         r4 = r7 - (r4 << 4);
    0x0800bac4 add r4, r5, r4                                        |         r4 = r5 + r4;
    0x0800bac8 ldr r3, [r4, 0x6c]                                    |         r3 = *((r4 + 0x6c));
    0x0800bacc tst r3, 8                                             |         
    0x0800bad0 beq 0x800baac                                         |         
                                                                     |     }
    0x0800bad4 ldr r3, [r4, 0x8c]                                    |     r3 = *((r4 + 0x8c));
    0x0800bad8 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0800badc beq 0x800baac                                         |         goto label_0;
                                                                     |     }
    0x0800bae0 ldrb r2, [r3, 4]                                      |     r2 = *((r3 + 4));
    0x0800bae4 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0800bae8 beq 0x800baac                                         |         goto label_0;
                                                                     |     }
    0x0800baec adds r8, r3, r2                                       |     r8 = r3 + r2;
                                                                     |     if (r8 == r3) {
    0x0800baf0 beq 0x800baac                                         |         goto label_0;
                                                                     |     }
    0x0800baf4 ldrb r3, [r8, 0xa]                                    |     r3 = *((r8 + 0xa));
    0x0800baf8 cmp r3, 1                                             |     
                                                                     |     if (r3 != 1) {
    0x0800bafc bne 0x800baac                                         |         goto label_0;
                                                                     |     }
    0x0800bb00 ldr r3, [r4, 0x74]                                    |     r3 = *((r4 + 0x74));
    0x0800bb04 ldr r3, [r3, 0x660]                                   |     r3 = *((r3 + 0x660));
    0x0800bb08 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0800bb0c beq 0x800bb2c                                         |         
    0x0800bb10 mov r3, 0                                             |         r3 = 0;
    0x0800bb14 mov r1, r4                                            |         r1 = r4;
    0x0800bb18 mov r2, r3                                            |         r2 = r3;
    0x0800bb1c mov r0, 4                                             |         r0 = 4;
    0x0800bb20 stmdaeq r0, {r4, r8, fp, ip, sp, pc}                  |         __asm ("stmdaeq r0, {r4, r8, fp, ip, sp, pc}");
    0x0800bb24 cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0800bb28 bne 0x800bc0c                                         |             goto label_6;
                                                                     |         }
                                                                     |     }
    0x0800bb2c add r3, sp, 0x100                                     |     r3 += var_100h;
    0x0800bb30 mov r2, 2                                             |     r2 = 2;
    0x0800bb34 add r3, r3, r6, lsl 2                                 |     r3 += (r6 << 2);
    0x0800bb38 add r6, r6, 1                                         |     r6++;
    0x0800bb3c cmp r6, 0x3f                                          |     
    0x0800bb40 strb r2, [r8, 0xa]                                    |     *((r8 + 0xa)) = r2;
    0x0800bb44 str r4, [r3, -0x100]                                  |     var_0h = r4;
                                                                     |     if (r6 < 0x3f) {
    0x0800bb48 bls 0x800baac                                         |         goto label_0;
                                                                     |     }
    0x0800bb4c mov r5, 1                                             |     r5 = 1;
                                                                     | label_3:
    0x0800bb50 mov r3, sp                                            |     r3 = sp;
    0x0800bb54 bic r3, r3, 0x1fc0                                    |     r3 = BIT_MASK (r3, 0x1fc0);
    0x0800bb58 bic r3, r3, 0x3f                                      |     r3 = BIT_MASK (r3, 0x3f);
    0x0800bb5c ldr r2, [r3, 4]                                       |     r2 = *((r3 + 4));
    0x0800bb60 sub r2, r2, 1                                         |     r2--;
    0x0800bb64 str r2, [r3, 4]                                       |     *((r3 + 4)) = r2;
    0x0800bb68 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0800bb6c beq 0x800bbf8                                         |         goto label_7;
                                                                     |     }
                                                                     | label_4:
    0x0800bb70 cmp r6, 0                                             |     
                                                                     |     if (r6 == 0) {
    0x0800bb74 beq 0x800bbcc                                         |         goto label_8;
                                                                     |     }
    0x0800bb78 stmdaeq r0, {r4, r8, sl, sp, lr, pc}                  |     __asm ("stmdaeq r0, {r4, r8, sl, sp, lr, pc}");
    0x0800bb7c stmdaeq r0, {r4, r8, sl, sp, lr, pc}                  |     __asm ("stmdaeq r0, {r4, r8, sl, sp, lr, pc}");
    0x0800bb80 add r4, sp, r6, lsl 2                                 |     r4 = sp + (r6 << 2);
    0x0800bb84 b 0x800bb90                                           |     goto label_2;
                                                                     | label_1:
    0x0800bb88 cmp r6, 0                                             |     
                                                                     |     if (r6 == 0) {
    0x0800bb8c beq 0x800bbcc                                         |         goto label_8;
                                                                     |     }
                                                                     | label_2:
    0x0800bb90 ldr r0, [r4, -4]!                                     |     r0 = *((r4 -= 4));
    0x0800bb94 sub r6, r6, 1                                         |     r6--;
    0x0800bb98 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0800bb9c beq 0x800bbd8                                         |         goto label_9;
                                                                     |     }
    0x0800bba0 pld [r0]                                              |     __asm ("pld [r0]");
                                                                     |     do {
    0x0800bba4 ldrex r3, [r0]                                        |         __asm ("ldrex r3, [r0]");
    0x0800bba8 sub r3, r3, 1                                         |         r3--;
    0x0800bbac strex r2, r3, [r0]                                    |         __asm ("strex r2, r3, [r0]");
    0x0800bbb0 teq r2, 0                                             |         __asm ("teq r2, 0");
    0x0800bbb4 bne 0x800bba4                                         |         
                                                                     |     } while (r0 != 0);
    0x0800bbb8 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0800bbbc bne 0x800bb88                                         |         goto label_1;
                                                                     |     }
    0x0800bbc0 stmdaeq r1, {r2, r8, sl, fp, lr, pc}                  |     __asm ("stmdaeq r1, {r2, r8, sl, fp, lr, pc}");
    0x0800bbc4 cmp r6, 0                                             |     
                                                                     |     if (r6 != 0) {
    0x0800bbc8 bne 0x800bb90                                         |         goto label_2;
                                                                     |     }
                                                                     | label_8:
    0x0800bbcc mov r0, r5                                            |     r0 = r5;
    0x0800bbd0 add sp, sp, 0x100                                     |     
    0x0800bbd4 pop {r4, r5, r6, r7, r8, pc}                          |     
                                                                     | label_9:
    0x0800bbd8 mov r3, r0                                            |     r3 = r0;
    0x0800bbdc mov r2, 9                                             |     r2 = 9;
    0x0800bbe0 mov r0, r7                                            |     r0 = r7;
    0x0800bbe4 mov r1, 0xa1                                          |     r1 = 0xa1;
    0x0800bbe8 stmdaeq r1, {r3, r4, r5, r7, sl, fp, lr, pc}          |     __asm ("stmdaeq r1, {r3, r4, r5, r7, sl, fp, lr, pc}");
    0x0800bbec b 0x800bb88                                           |     goto label_1;
                                                                     | label_5:
    0x0800bbf0 mov r5, 2                                             |     r5 = 2;
    0x0800bbf4 b 0x800bb50                                           |     goto label_3;
                                                                     | label_7:
    0x0800bbf8 ldr r3, [r3]                                          |     r3 = *(r3);
    0x0800bbfc tst r3, 2                                             |     
                                                                     |     if ((r3 & 2) == 0) {
    0x0800bc00 beq 0x800bb70                                         |         goto label_4;
                                                                     |     }
    0x0800bc04 stmdaeq r1, {r2, r5, r7, sl, fp, lr, pc}              |     __asm ("stmdaeq r1, {r2, r5, r7, sl, fp, lr, pc}");
    0x0800bc08 b 0x800bb70                                           |     goto label_4;
                                                                     | label_6:
    0x0800bc0c mov r5, 0                                             |     r5 = 0;
    0x0800bc10 b 0x800bb50                                           |     goto label_3;
                                                                     | }
    ; 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/netfilter/nf_conntrack.ko @ 0x800bc14 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.ecache_work ()                                   | void ecache_work (int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     r0 = arg1;
    0x0800bc14 push {r4, lr}                                     |     
    0x0800bc18 mov r4, r0                                        |     r4 = r0;
    0x0800bc1c mov r3, sp                                        |     r3 = sp;
    0x0800bc20 bic r3, r3, 0x1fc0                                |     r3 = BIT_MASK (r3, 0x1fc0);
    0x0800bc24 bic r3, r3, 0x3f                                  |     r3 = BIT_MASK (r3, 0x3f);
    0x0800bc28 ldr r2, [r3, 4]                                   |     r2 = *((r3 + 4));
    0x0800bc2c add r2, r2, 0x200                                 |     r2 += 0x200;
    0x0800bc30 str r2, [r3, 4]                                   |     *((r3 + 4)) = r2;
    0x0800bc34 ldr r0, [r0, 0x4c]                                |     r0 = *((r0 + 0x4c));
    0x0800bc38 bl 0x800ba70                                      |     r0 = ecache_work_evict_list ();
    0x0800bc3c mov r3, r0                                        |     r3 = r0;
    0x0800bc40 cmp r3, 0                                         |     
    0x0800bc44 ldr r0, [pc, 0x60]                                |     r0 = *(0x800bca8);
                                                                 |     if (r3 == 0) {
    0x0800bc48 beq 0x800bc98                                     |         goto label_0;
                                                                 |     }
    0x0800bc4c cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x0800bc50 beq 0x800bc68                                     |         
    0x0800bc54 mov r1, 0x200                                     |         r1 = 0x200;
    0x0800bc58 stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}          |         __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x0800bc5c mov r3, 0                                         |         r3 = 0;
    0x0800bc60 strb r3, [r4, 0x2c]                               |         *((r4 + 0x2c)) = r3;
    0x0800bc64 pop {r4, pc}                                      |         
                                                                 |     }
    0x0800bc68 mov r1, 0x200                                     |     r1 = 0x200;
    0x0800bc6c stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}          |     __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x0800bc70 mov r1, 0                                         |     r1 = 0;
    0x0800bc74 mov r3, r1                                        |     r3 = r1;
                                                                 |     do {
    0x0800bc78 stmdaeq r1, {r3, r8, sl, fp, lr, pc}              |         __asm ("stmdaeq r1, {r3, r8, sl, fp, lr, pc}");
    0x0800bc7c stmdaeq r1, {r3, r8, sl, fp, lr, pc}              |         __asm ("stmdaeq r1, {r3, r8, sl, fp, lr, pc}");
    0x0800bc80 strb r1, [r4, 0x2c]                               |         *((r4 + 0x2c)) = r1;
    0x0800bc84 mov r2, r4                                        |         r2 = r4;
    0x0800bc88 ldr r1, [r0]                                      |         r1 = *(r0);
    0x0800bc8c mov r0, 1                                         |         r0 = 1;
    0x0800bc90 pop {r4, lr}                                      |         
    0x0800bc94 stmdaeq r1, {r2, r3, r8, sl, fp, lr, pc}          |         __asm ("stmdaeq r1, {r2, r3, r8, sl, fp, lr, pc}");
                                                                 | label_0:
    0x0800bc98 mov r1, 0x200                                     |         r1 = 0x200;
    0x0800bc9c stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}          |         __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x0800bca0 mov r1, 1                                         |         r1 = 1;
    0x0800bca4 mov r3, 0xa                                       |         r3 = 0xa;
    0x0800bca8 b 0x800bc78                                       |         
                                                                 |     } while (1);
                                                                 | }
    ; 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/netfilter/nf_conntrack.ko @ 0x8002150 */
                                                                             | #include <stdint.h>
                                                                             |  
                                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                             |  
    ; (fcn) sym.nf_conntrack_hash_check_insert ()                            | void nf_conntrack_hash_check_insert (int32_t arg1) {
                                                                             |     int32_t var_0h;
                                                                             |     r0 = arg1;
    0x08002150 push {r4, r5, r6, r7, r8, sb, sl, lr}                         |     
    0x08002154 mov r5, r0                                                    |     r5 = r0;
    0x08002158 mov r3, sp                                                    |     r3 = sp;
    0x0800215c ldr r6, [r0, 0x74]                                            |     r6 = *((r0 + 0x74));
    0x08002160 bic r3, r3, 0x1fc0                                            |     r3 = BIT_MASK (r3, 0x1fc0);
    0x08002164 bic r3, r3, 0x3f                                              |     r3 = BIT_MASK (r3, 0x3f);
    0x08002168 ldr r2, [r3, 4]                                               |     r2 = *((r3 + 4));
    0x0800216c add r2, r2, 0x200                                             |     r2 += 0x200;
    0x08002170 str r2, [r3, 4]                                               |     *((r3 + 4)) = r2;
    0x08002174 stmdaeq r0, {r4, r5, r6, r7, r8, sl, fp, sp, lr, pc}          |     __asm ("stmdaeq r0, {r4, r5, r6, r7, r8, sl, fp, sp, lr, pc}");
    0x08002178 stmdaeq r0, {r4, r5, r6, r7, r8, sl, fp, sp, lr, pc}          |     __asm ("stmdaeq r0, {r4, r5, r6, r7, r8, sl, fp, sp, lr, pc}");
    0x0800217c add r8, r0, 0x14                                              |     r8 = r0 + 0x14;
    0x08002180 add r7, r0, 0x44                                              |     r7 = r0 + 0x44;
                                                                             |     do {
                                                                             | label_1:
    0x08002184 ldr sl, [sb, 0x10]                                            |         sl = *((sb + 0x10));
    0x08002188 tst sl, 1                                                     |         
                                                                             |         if ((sl & 1) != 0) {
    0x0800218c bne 0x8002320                                                 |             goto label_9;
                                                                             |         }
    0x08002190 mov r1, r6                                                    |         r1 = r6;
    0x08002194 mov r0, r8                                                    |         r0 = r8;
    0x08002198 bl 0x80006f0                                                  |         hash_conntrack_raw ();
    0x0800219c ldr r4, [sb, 0x18]                                            |         r4 = *((sb + 0x18));
    0x080021a0 mov r3, r0                                                    |         r3 = r0;
    0x080021a4 mov r1, r6                                                    |         r1 = r6;
    0x080021a8 mov r0, r7                                                    |         r0 = r7;
    0x080021ac umull r3, r4, r3, r4                                          |         r3:r4 = r3 * r4;
    0x080021b0 bl 0x80006f0                                                  |         hash_conntrack_raw ();
    0x080021b4 ldr r1, [sb, 0x18]                                            |         r1 = *((sb + 0x18));
    0x080021b8 mov r3, r0                                                    |         r3 = r0;
    0x080021bc mov r2, sl                                                    |         r2 = sl;
    0x080021c0 mov r0, r4                                                    |         r0 = r4;
    0x080021c4 umull r3, sl, r3, r1                                          |         r3:sl = r3 * r1;
    0x080021c8 mov r1, sl                                                    |         r1 = sl;
    0x080021cc bl 0x8000674                                                  |         r0 = nf_conntrack_double_lock_constprop_0 ();
    0x080021d0 cmp r0, 0                                                     |         
    0x080021d4 bne 0x8002184                                                 |         
                                                                             |     } while (r0 != 0);
    0x080021d8 ldr r7, [sb]                                                  |     r7 = *(sb);
    0x080021dc ldr r3, [r7, r4, lsl 2]                                       |     offset_0 = r4 << 2;
                                                                             |     r3 = *((r7 + offset_0));
    0x080021e0 tst r3, 1                                                     |     
                                                                             |     if ((r3 & 1) != 0) {
    0x080021e4 bne 0x8002324                                                 |         goto label_10;
                                                                             |     }
    0x080021e8 ldr r0, [r5, 0x14]                                            |     r0 = *((r5 + 0x14));
    0x080021ec mvn lr, 0xb                                                   |     lr = ~0xb;
    0x080021f0 mov ip, 1                                                     |     
    0x080021f4 b 0x8002204                                                   |     
                                                                             |     while (r0 != r2) {
                                                                             | label_0:
    0x080021f8 ldr r3, [r3]                                                  |         r3 = *(r3);
    0x080021fc tst r3, 1                                                     |         
                                                                             |         if ((r3 & 1) != 0) {
    0x08002200 bne 0x8002324                                                 |             goto label_10;
                                                                             |         }
    0x08002204 ldr r2, [r3, 8]                                               |         r2 = *((r3 + 8));
    0x08002208 cmp r0, r2                                                    |         
    0x0800220c bne 0x80021f8                                                 |         
                                                                             |     }
    0x08002210 ldr r1, [r5, 0x18]                                            |     r1 = *((r5 + 0x18));
    0x08002214 ldr r2, [r3, 0xc]                                             |     r2 = *((r3 + 0xc));
    0x08002218 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x0800221c bne 0x80021f8                                                 |         goto label_0;
                                                                             |     }
    0x08002220 ldr r1, [r5, 0x1c]                                            |     r1 = *((r5 + 0x1c));
    0x08002224 ldr r2, [r3, 0x10]                                            |     r2 = *((r3 + 0x10));
    0x08002228 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x0800222c bne 0x80021f8                                                 |         goto label_0;
                                                                             |     }
    0x08002230 ldr r1, [r5, 0x20]                                            |     r1 = *((r5 + 0x20));
    0x08002234 ldr r2, [r3, 0x14]                                            |     r2 = *((r3 + 0x14));
    0x08002238 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x0800223c bne 0x80021f8                                                 |         goto label_0;
                                                                             |     }
    0x08002240 ldr r1, [r5, 0x24]                                            |     r1 = *((r5 + 0x24));
    0x08002244 ldr r2, [r3, 0x18]                                            |     r2 = *((r3 + 0x18));
    0x08002248 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x0800224c bne 0x80021f8                                                 |         goto label_0;
                                                                             |     }
    0x08002250 ldr r1, [r5, 0x28]                                            |     r1 = *((r5 + 0x28));
    0x08002254 ldr r2, [r3, 0x1c]                                            |     r2 = *((r3 + 0x1c));
    0x08002258 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x0800225c bne 0x80021f8                                                 |         goto label_0;
                                                                             |     }
    0x08002260 ldr r1, [r5, 0x2c]                                            |     r1 = *((r5 + 0x2c));
    0x08002264 ldr r2, [r3, 0x20]                                            |     r2 = *((r3 + 0x20));
    0x08002268 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x0800226c bne 0x80021f8                                                 |         goto label_0;
                                                                             |     }
    0x08002270 ldr r1, [r5, 0x30]                                            |     r1 = *((r5 + 0x30));
    0x08002274 ldr r2, [r3, 0x24]                                            |     r2 = *((r3 + 0x24));
    0x08002278 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x0800227c bne 0x80021f8                                                 |         goto label_0;
                                                                             |     }
    0x08002280 ldr r1, [r5, 0x34]                                            |     r1 = *((r5 + 0x34));
    0x08002284 ldr r2, [r3, 0x28]                                            |     r2 = *((r3 + 0x28));
    0x08002288 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x0800228c bne 0x80021f8                                                 |         goto label_0;
                                                                             |     }
    0x08002290 ldr r2, [r5, 0x38]                                            |     r2 = *((r5 + 0x38));
    0x08002294 ldr r1, [r3, 0x2c]                                            |     r1 = *((r3 + 0x2c));
    0x08002298 eor r2, r2, r1                                                |     r2 ^= r1;
    0x0800229c bics r2, r2, 0xff000000                                       |     __asm ("bics r2, r2, 0xff000000");
                                                                             |     if (r1 != r2) {
    0x080022a0 bne 0x80021f8                                                 |         goto label_0;
                                                                             |     }
    0x080022a4 ldrb r2, [r3, 0x2f]                                           |     r2 = *((r3 + 0x2f));
    0x080022a8 ldrb r8, [r5, 0xb]                                            |     r8 = *((r5 + 0xb));
    0x080022ac mov r1, r2                                                    |     r1 = r2;
    0x080022b0 add r2, r2, r2, lsl 1                                         |     r2 += (r2 << 1);
    0x080022b4 lsl r1, ip, r1                                                |     r1 = ip << r1;
    0x080022b8 sub r2, lr, r2, lsl 4                                         |     r2 = lr - (r2 << 4);
    0x080022bc and r8, r8, r1                                                |     r8 &= r1;
    0x080022c0 add r2, r3, r2                                                |     r2 = r3 + r2;
    0x080022c4 ldrb sb, [r2, 0xb]                                            |     sb = *((r2 + 0xb));
    0x080022c8 ands sb, sb, r1                                               |     sb &= r1;
                                                                             |     if (sb == sb) {
    0x080022cc beq 0x800249c                                                 |         goto label_11;
                                                                             |     }
    0x080022d0 ldrh sb, [r2, 8]                                              |     sb = *((r2 + 8));
    0x080022d4 cmp r8, 0                                                     |     
                                                                             |     if (r8 != 0) {
    0x080022d8 beq 0x80022e0                                                 |         
                                                                             | label_5:
    0x080022dc ldrh r8, [r5, 8]                                              |         r8 = *((r5 + 8));
                                                                             |     }
    0x080022e0 cmp r8, sb                                                    |     
                                                                             |     if (r8 != sb) {
    0x080022e4 bne 0x80021f8                                                 |         goto label_0;
                                                                             |     }
                                                                             | label_6:
    0x080022e8 ldr r1, [r2, 0x6c]                                            |     r1 = *((r2 + 0x6c));
    0x080022ec tst r1, 8                                                     |     
                                                                             |     if ((r1 & 8) == 0) {
    0x080022f0 beq 0x80021f8                                                 |         goto label_0;
                                                                             |     }
    0x080022f4 ldr r2, [r2, 0x74]                                            |     r2 = *((r2 + 0x74));
    0x080022f8 cmp r6, r2                                                    |     
                                                                             |     if (r6 != r2) {
    0x080022fc bne 0x80021f8                                                 |         goto label_0;
                                                                             |     }
                                                                             | label_3:
    0x08002300 mov r1, sl                                                    |     r1 = sl;
    0x08002304 mov r0, r4                                                    |     r0 = r4;
    0x08002308 bl 0x800049c                                                  |     nf_conntrack_double_unlock ();
    0x0800230c ldr r0, [pc, 0x1a0]                                           |     r0 = *(0x80024b0);
    0x08002310 mov r1, 0x200                                                 |     r1 = 0x200;
    0x08002314 stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}                      |     __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x08002318 mvn r0, 0x10                                                  |     r0 = ~0x10;
    0x0800231c pop {r4, r5, r6, r7, r8, sb, sl, pc}                          |     
                                                                             | label_9:
    0x08002320 b 0x8002184                                                   |     goto label_1;
                                                                             | label_10:
    0x08002324 ldr r3, [r7, sl, lsl 2]                                       |     offset_1 = sl << 2;
                                                                             |     r3 = *((r7 + offset_1));
    0x08002328 tst r3, 1                                                     |     
                                                                             |     if ((r3 & 1) != 0) {
    0x0800232c bne 0x8002454                                                 |         goto label_12;
                                                                             |     }
    0x08002330 ldr ip, [r5, 0x44]                                            |     ip = *((r5 + 0x44));
    0x08002334 mvn r7, 0xb                                                   |     r7 = ~0xb;
    0x08002338 mov lr, 1                                                     |     lr = 1;
    0x0800233c b 0x800234c                                                   |     
                                                                             |     while (ip != r2) {
                                                                             | label_2:
    0x08002340 ldr r3, [r3]                                                  |         r3 = *(r3);
    0x08002344 tst r3, 1                                                     |         
                                                                             |         if ((r3 & 1) != 0) {
    0x08002348 bne 0x8002454                                                 |             goto label_12;
                                                                             |         }
                                                                             | label_4:
    0x0800234c ldr r2, [r3, 8]                                               |         r2 = *((r3 + 8));
    0x08002350 cmp ip, r2                                                    |         
    0x08002354 bne 0x8002340                                                 |         
                                                                             |     }
    0x08002358 ldr r1, [r5, 0x48]                                            |     r1 = *((r5 + 0x48));
    0x0800235c ldr r2, [r3, 0xc]                                             |     r2 = *((r3 + 0xc));
    0x08002360 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x08002364 bne 0x8002340                                                 |         goto label_2;
                                                                             |     }
    0x08002368 ldr r1, [r5, 0x4c]                                            |     r1 = *((r5 + 0x4c));
    0x0800236c ldr r2, [r3, 0x10]                                            |     r2 = *((r3 + 0x10));
    0x08002370 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x08002374 bne 0x8002340                                                 |         goto label_2;
                                                                             |     }
    0x08002378 ldr r1, [r5, 0x50]                                            |     r1 = *((r5 + 0x50));
    0x0800237c ldr r2, [r3, 0x14]                                            |     r2 = *((r3 + 0x14));
    0x08002380 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x08002384 bne 0x8002340                                                 |         goto label_2;
                                                                             |     }
    0x08002388 ldr r1, [r5, 0x54]                                            |     r1 = *((r5 + 0x54));
    0x0800238c ldr r2, [r3, 0x18]                                            |     r2 = *((r3 + 0x18));
    0x08002390 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x08002394 bne 0x8002340                                                 |         goto label_2;
                                                                             |     }
    0x08002398 ldr r1, [r5, 0x58]                                            |     r1 = *((r5 + 0x58));
    0x0800239c ldr r2, [r3, 0x1c]                                            |     r2 = *((r3 + 0x1c));
    0x080023a0 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x080023a4 bne 0x8002340                                                 |         goto label_2;
                                                                             |     }
    0x080023a8 ldr r1, [r5, 0x5c]                                            |     r1 = *((r5 + 0x5c));
    0x080023ac ldr r2, [r3, 0x20]                                            |     r2 = *((r3 + 0x20));
    0x080023b0 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x080023b4 bne 0x8002340                                                 |         goto label_2;
                                                                             |     }
    0x080023b8 ldr r1, [r5, 0x60]                                            |     r1 = *((r5 + 0x60));
    0x080023bc ldr r2, [r3, 0x24]                                            |     r2 = *((r3 + 0x24));
    0x080023c0 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x080023c4 bne 0x8002340                                                 |         goto label_2;
                                                                             |     }
    0x080023c8 ldr r1, [r5, 0x64]                                            |     r1 = *((r5 + 0x64));
    0x080023cc ldr r2, [r3, 0x28]                                            |     r2 = *((r3 + 0x28));
    0x080023d0 cmp r1, r2                                                    |     
                                                                             |     if (r1 != r2) {
    0x080023d4 bne 0x8002340                                                 |         goto label_2;
                                                                             |     }
    0x080023d8 ldr r2, [r5, 0x68]                                            |     r2 = *((r5 + 0x68));
    0x080023dc ldr r1, [r3, 0x2c]                                            |     r1 = *((r3 + 0x2c));
    0x080023e0 eor r2, r2, r1                                                |     r2 ^= r1;
    0x080023e4 bics r2, r2, 0xff000000                                       |     __asm ("bics r2, r2, 0xff000000");
                                                                             |     if (r1 != r2) {
    0x080023e8 bne 0x8002340                                                 |         goto label_2;
                                                                             |     }
    0x080023ec ldrb r2, [r3, 0x2f]                                           |     r2 = *((r3 + 0x2f));
    0x080023f0 ldrb r0, [r5, 0xb]                                            |     r0 = *((r5 + 0xb));
    0x080023f4 mov r1, r2                                                    |     r1 = r2;
    0x080023f8 add r2, r2, r2, lsl 1                                         |     r2 += (r2 << 1);
    0x080023fc lsl r1, lr, r1                                                |     r1 = lr << r1;
    0x08002400 sub r2, r7, r2, lsl 4                                         |     r2 = r7 - (r2 << 4);
    0x08002404 and r0, r0, r1                                                |     r0 &= r1;
    0x08002408 add r2, r3, r2                                                |     r2 = r3 + r2;
    0x0800240c ldrb r8, [r2, 0xb]                                            |     r8 = *((r2 + 0xb));
    0x08002410 ands r8, r8, r1                                               |     r8 &= r1;
                                                                             |     if (r8 == r8) {
    0x08002414 beq 0x80024a8                                                 |         goto label_13;
                                                                             |     }
    0x08002418 ldrh r8, [r2, 8]                                              |     r8 = *((r2 + 8));
    0x0800241c cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x08002420 beq 0x8002428                                                 |         
                                                                             | label_7:
    0x08002424 ldrh r0, [r5, 8]                                              |         r0 = *((r5 + 8));
                                                                             |     }
    0x08002428 cmp r0, r8                                                    |     
                                                                             |     if (r0 != r8) {
    0x0800242c bne 0x8002340                                                 |         goto label_2;
                                                                             |     }
                                                                             | label_8:
    0x08002430 ldr r1, [r2, 0x6c]                                            |     r1 = *((r2 + 0x6c));
    0x08002434 tst r1, 8                                                     |     
                                                                             |     if ((r1 & 8) == 0) {
    0x08002438 beq 0x8002340                                                 |         goto label_2;
                                                                             |     }
    0x0800243c ldr r2, [r2, 0x74]                                            |     r2 = *((r2 + 0x74));
    0x08002440 cmp r6, r2                                                    |     
                                                                             |     if (r6 == r2) {
    0x08002444 beq 0x8002300                                                 |         goto label_3;
                                                                             |     }
    0x08002448 ldr r3, [r3]                                                  |     r3 = *(r3);
    0x0800244c tst r3, 1                                                     |     
                                                                             |     if ((r3 & 1) == 0) {
    0x08002450 beq 0x800234c                                                 |         goto label_4;
                                                                             |     }
                                                                             | label_12:
    0x08002454 mov r3, 2                                                     |     r3 = 2;
    0x08002458 mov r2, sl                                                    |     r2 = sl;
    0x0800245c str r3, [r5]                                                  |     *(r5) = r3;
    0x08002460 mov r0, r5                                                    |     r0 = r5;
    0x08002464 mov r1, r4                                                    |     r1 = r4;
    0x08002468 bl 0x8000070                                                  |     nf_conntrack_hash_insert ();
    0x0800246c mov r1, sl                                                    |     r1 = sl;
    0x08002470 mov r0, r4                                                    |     r0 = r4;
    0x08002474 bl 0x800049c                                                  |     nf_conntrack_double_unlock ();
    0x08002478 ldr r2, [r6, 0x65c]                                           |     r2 = *((r6 + 0x65c));
    0x0800247c ldr r0, [pc, 0x34]                                            |     r0 = .text;
    0x08002480 mov r1, 0x200                                                 |     r1 = 0x200;
    0x08002484 ldr r3, [r2, 8]                                               |     r3 = *((r2 + 8));
    0x08002488 add r3, r3, 1                                                 |     r3++;
    0x0800248c str r3, [r2, 8]                                               |     *((r2 + 8)) = r3;
    0x08002490 stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}                      |     __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x08002494 mov r0, 0                                                     |     r0 = 0;
    0x08002498 pop {r4, r5, r6, r7, r8, sb, sl, pc}                          |     
                                                                             | label_11:
    0x0800249c cmp r8, 0                                                     |     
                                                                             |     if (r8 != 0) {
    0x080024a0 bne 0x80022dc                                                 |         goto label_5;
                                                                             |     }
    0x080024a4 b 0x80022e8                                                   |     goto label_6;
                                                                             | label_13:
    0x080024a8 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x080024ac bne 0x8002424                                                 |         goto label_7;
                                                                             |     }
    0x080024b0 b 0x8002430                                                   |     goto label_8;
                                                                             | }
    ; 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/netfilter/nf_conntrack.ko @ 0x80088e0 */
                                                                         | #include <stdint.h>
                                                                         |  
                                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                         | #define SWAP32(n) ((uint32_t) (((n & 0x000000ff) << 24) | \
                                                                         |                                ((n & 0x0000ff00) <<  8) | \
                                                                         |                                ((n & 0x00ff0000) >>  8) | \
                                                                         |                                ((n & 0xff000000) >> 24)))
                                                                         |  
    ; (fcn) sym.nf_conntrack_tcp_packet ()                               | void nf_conntrack_tcp_packet (int32_t arg_b0h, int32_t arg1, int32_t arg2) {
                                                                         |     int32_t var_0h;
                                                                         |     int32_t var_8h;
                                                                         |     int32_t var_ch;
                                                                         |     int32_t var_10h;
                                                                         |     int32_t var_14h;
                                                                         |     int32_t var_18h;
                                                                         |     int32_t var_1ch;
                                                                         |     int32_t var_20h;
                                                                         |     int32_t var_24h;
                                                                         |     int32_t var_28h;
                                                                         |     int32_t var_2ch;
                                                                         |     int32_t var_30h;
                                                                         |     int32_t var_34h;
                                                                         |     int32_t var_38h;
                                                                         |     int32_t var_3ch;
                                                                         |     int32_t var_40h;
                                                                         |     int32_t var_46h;
                                                                         |     int32_t var_4ch;
                                                                         |     int32_t var_60h;
                                                                         |     int32_t var_8ch;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
    0x080088e0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}                 |     
    0x080088e4 mov r7, r2                                                |     r7 = r2;
    0x080088e8 mov r6, r1                                                |     r6 = r1;
    0x080088ec sub sp, sp, 0x8c                                          |     
    0x080088f0 ldr r5, [r1, 0xa8]                                        |     r5 = *((r1 + 0xa8));
    0x080088f4 mov r4, r0                                                |     r4 = r0;
    0x080088f8 str r3, [sp, 8]                                           |     var_8h = r3;
    0x080088fc ldrd r2, r3, [r1, 0x54]                                   |     __asm ("ldrd r2, r3, [r1, 0x54]");
    0x08008900 ldr r8, [sp, 0xb0]                                        |     r8 = *(arg_b0h);
    0x08008904 sub r3, r2, r3                                            |     r3 = r2 - r3;
    0x08008908 sub r3, r3, r7                                            |     r3 -= r7;
    0x0800890c cmp r3, 0x13                                              |     
    0x08008910 ldr r3, [r0, 0x74]                                        |     r3 = *((r0 + 0x74));
    0x08008914 str r3, [sp, 0x24]                                        |     var_24h = r3;
                                                                         |     if (r3 > 0x13) {
    0x08008918 bgt 0x8008a80                                             |         goto label_28;
                                                                         |     }
    0x0800891c cmp r1, 0                                                 |     
                                                                         |     if (r1 == 0) {
    0x08008920 beq 0x8008a88                                             |         goto label_1;
                                                                         |     }
    0x08008924 mov r1, r7                                                |     r1 = r7;
    0x08008928 add r2, sp, 0x4c                                          |     r2 += var_4ch;
    0x0800892c mov r0, r6                                                |     r0 = r6;
    0x08008930 mov r3, 0x14                                              |     r3 = 0x14;
    0x08008934 stmdaeq r1, {r2, r3, r5, r6, r7, sl, fp, lr, pc}          |     __asm ("stmdaeq r1, {r2, r3, r5, r6, r7, sl, fp, lr, pc}");
    0x08008938 cmp r0, 0                                                 |     
                                                                         |     if (r0 < 0) {
    0x0800893c blt 0x8008a88                                             |         goto label_1;
                                                                         |     }
    0x08008940 ldr r2, [r6, 0x54]                                        |     r2 = *((r6 + 0x54));
    0x08008944 add r5, sp, 0x4c                                          |     r5 += var_4ch;
                                                                         |     do {
    0x08008948 ldrb r3, [r5, 0xc]                                        |         r3 = *((r5 + 0xc));
    0x0800894c sub r2, r2, r7                                            |         r2 -= r7;
    0x08008950 ldr r1, [r8, 0x14]                                        |         r1 = *((r8 + 0x14));
    0x08008954 lsr r3, r3, 4                                             |         r3 >>= 4;
    0x08008958 lsl r3, r3, 2                                             |         r3 <<= 2;
    0x0800895c cmp r3, 0x13                                              |         
                                                                         |         if (r3 <= 0x13) {
    0x08008960 movgt r0, 0                                               |             r0 = 0;
                                                                         |         }
                                                                         |         if (r3 > 0x13) {
    0x08008964 movle r0, 1                                               |             r0 = 1;
                                                                         |         }
    0x08008968 cmp r2, r3                                                |         
                                                                         |         if (r2 >= r3) {
    0x0800896c orrlo r0, r0, 1                                           |             r0 |= 1;
                                                                         |         }
    0x08008970 cmp r0, 0                                                 |         
                                                                         |         if (r0 != 0) {
    0x08008974 bne 0x8009c30                                             |             goto label_29;
                                                                         |         }
    0x08008978 ldr r3, [r1, 0x654]                                       |         r3 = *((r1 + 0x654));
    0x0800897c cmp r3, 0                                                 |         
                                                                         |         if (r3 != 0) {
    0x08008980 beq 0x8008990                                             |             
    0x08008984 ldr r1, [r8]                                              |             r1 = *(r8);
    0x08008988 cmp r1, 0                                                 |             
                                                                         |             if (r1 == 0) {
    0x0800898c beq 0x80093c8                                             |                 goto label_30;
                                                                         |             }
                                                                         |         }
                                                                         | label_13:
    0x08008990 ldrb r3, [r5, 0xd]                                        |         r3 = *((r5 + 0xd));
    0x08008994 stmdaeq r0, {r2, r3, r4, r5, r7, r8, fp, lr, pc}          |         __asm ("stmdaeq r0, {r2, r3, r4, r5, r7, r8, fp, lr, pc}");
    0x08008998 stmdaeq r0, {r2, r3, r4, r5, r7, r8, fp, lr, pc}          |         __asm ("stmdaeq r0, {r2, r3, r4, r5, r7, r8, fp, lr, pc}");
    0x0800899c and r3, r3, 0x37                                          |         r3 &= 0x37;
    0x080089a0 add r3, sb, r3                                            |         r3 = sb + r3;
    0x080089a4 ldrb r3, [r3, 0xd0]                                       |         r3 = *((r3 + 0xd0));
    0x080089a8 cmp r3, 0                                                 |         
                                                                         |         if (r3 == 0) {
    0x080089ac beq 0x8009b8c                                             |             goto label_31;
                                                                         |         }
    0x080089b0 ldr r3, [r4, 0x6c]                                        |         r3 = *((r4 + 0x6c));
    0x080089b4 tst r3, 8                                                 |         
                                                                         |         if ((r3 & 8) == 0) {
    0x080089b8 beq 0x8008a94                                             |             goto label_32;
                                                                         |         }
                                                                         | label_0:
    0x080089bc mov r3, sp                                                |         r3 = sp;
    0x080089c0 bic r2, r3, 0x1fc0                                        |         r2 = BIT_MASK (r3, 0x1fc0);
    0x080089c4 bic r2, r2, 0x3f                                          |         r2 = BIT_MASK (r2, 0x3f);
    0x080089c8 ldr r3, [r2, 4]                                           |         r3 = *((r2 + 4));
    0x080089cc add r3, r3, 0x200                                         |         r3 += 0x200;
    0x080089d0 add r3, r3, 1                                             |         r3++;
    0x080089d4 str r3, [r2, 4]                                           |         *((r2 + 4)) = r3;
    0x080089d8 ldr r3, [sp, 8]                                           |         r3 = var_8h;
    0x080089dc ldrb r2, [r5, 0xd]                                        |         r2 = *((r5 + 0xd));
    0x080089e0 cmp r3, 2                                                 |         
    0x080089e4 ldrb sl, [r4, 0xb8]                                       |         sl = *((r4 + 0xb8));
    0x080089e8 str sl, [sp, 0x18]                                        |         var_18h = sl;
                                                                         |         if (r3 > 2) {
    0x080089ec movls fp, 0                                               |             
                                                                         |         }
                                                                         |         if (r3 <= 2) {
    0x080089f0 movhi fp, 1                                               |             
                                                                         |         }
    0x080089f4 tst r2, 4                                                 |         
                                                                         |         if ((r2 & 4) != 0) {
    0x080089f8 bne 0x8008ab4                                             |             goto label_33;
                                                                         |         }
    0x080089fc tst r2, 2                                                 |         
    0x08008a00 ubfxne r3, r2, 4, 1                                       |         __asm ("ubfxne r3, r2, 4, 1");
                                                                         |         if ((r2 & 2) == 0) {
    0x08008a04 strne r3, [sp, 0xc]                                       |             var_ch = r3;
                                                                         |         }
                                                                         |         if ((r2 & 2) == 0) {
    0x08008a08 bne 0x8008a24                                             |             
    0x08008a0c tst r2, 1                                                 |             
                                                                         |             if ((r2 & 1) != 0) {
    0x08008a10 bne 0x8009674                                             |                 goto label_34;
                                                                         |             }
    0x08008a14 tst r2, 0x10                                              |             
                                                                         |             if ((r2 & 0x10) != 0) {
    0x08008a18 moveq r3, 5                                               |                 r3 = 5;
                                                                         |             }
                                                                         |             if ((r2 & 0x10) == 0) {
    0x08008a1c movne r3, 3                                               |                 r3 = 3;
                                                                         |             }
    0x08008a20 str r3, [sp, 0xc]                                         |             var_ch = r3;
                                                                         |         }
                                                                         | label_2:
    0x08008a24 ldr r0, [sp, 0xc]                                         |         r0 = var_ch;
    0x08008a28 mov r3, 0x3c                                              |         r3 = 0x3c;
    0x08008a2c mov r1, 0xa                                               |         r1 = 0xa;
    0x08008a30 mul r3, r3, fp                                            |         r3 *= fp;
    0x08008a34 mla r3, r1, r0, r3                                        |         __asm ("mla r3, r1, r0, r3");
    0x08008a38 add r3, sb, r3                                            |         r3 = sb + r3;
    0x08008a3c add r3, r3, sl                                            |         r3 += sl;
    0x08008a40 ldrb r8, [r3, 0x58]                                       |         r8 = *((r3 + 0x58));
    0x08008a44 sub r3, r8, 1                                             |         r3 = r8 - 1;
    0x08008a48 cmp r3, r1                                                |         
                                                                         |         if (r3 > r1) {
    0x08008a4c ldrls pc, [pc, r3, lsl 2]                                 |             offset_0 = r3 << 2;
                                                                         |             pc = *((pc + offset_0));
                                                                         |         }
    0x08008a50 b 0x8008ac0                                               |         goto label_35;
    0x08008a54 stmdaeq r0, {r4, r5, r6}                                  |         __asm ("stmdaeq r0, {r4, r5, r6}");
    0x08008a58 stmdaeq r0, {r4, r5, r6}                                  |         __asm ("stmdaeq r0, {r4, r5, r6}");
    0x08008a5c stmdaeq r0, {r4, r5, r6}                                  |         __asm ("stmdaeq r0, {r4, r5, r6}");
    0x08008a60 stmdaeq r0, {r4, r5, r6}                                  |         __asm ("stmdaeq r0, {r4, r5, r6}");
    0x08008a64 stmdaeq r0, {r4, r5, r6}                                  |         __asm ("stmdaeq r0, {r4, r5, r6}");
    0x08008a68 stmdaeq r0, {r4, r5, r6}                                  |         __asm ("stmdaeq r0, {r4, r5, r6}");
    0x08008a6c stmdaeq r0, {r4, r5, r6}                                  |         __asm ("stmdaeq r0, {r4, r5, r6}");
    0x08008a70 stmdaeq r0, {r4, r5, r6}                                  |         __asm ("stmdaeq r0, {r4, r5, r6}");
    0x08008a74 stmdaeq r0, {r4, r5, r6}                                  |         __asm ("stmdaeq r0, {r4, r5, r6}");
    0x08008a78 stmdaeq r0, {r4, r5, r6}                                  |         __asm ("stmdaeq r0, {r4, r5, r6}");
    0x08008a7c stmdaeq r0, {r4, r5, r6}                                  |         __asm ("stmdaeq r0, {r4, r5, r6}");
                                                                         | label_28:
    0x08008a80 adds r5, r5, r7                                           |         r5 += r7;
    0x08008a84 bne 0x8008948                                             |         
                                                                         |     } while (r5 != r5);
                                                                         | label_1:
    0x08008a88 mvn r0, 0                                                 |     r0 = ~0;
    0x08008a8c add sp, sp, 0x8c                                          |     
    0x08008a90 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                  |     
                                                                         | label_32:
    0x08008a94 mov r3, r5                                                |     r3 = r5;
    0x08008a98 mov r2, r7                                                |     r2 = r7;
    0x08008a9c mov r1, r6                                                |     r1 = r6;
    0x08008aa0 mov r0, r4                                                |     r0 = r4;
    0x08008aa4 bl 0x8008760                                              |     r0 = tcp_new ();
    0x08008aa8 cmp r0, 0                                                 |     
                                                                         |     if (r0 != 0) {
    0x08008aac bne 0x80089bc                                             |         goto label_0;
                                                                         |     }
    0x08008ab0 b 0x8008a88                                               |     goto label_1;
                                                                         | label_33:
    0x08008ab4 mov r3, 4                                                 |     r3 = 4;
    0x08008ab8 str r3, [sp, 0xc]                                         |     var_ch = r3;
    0x08008abc b 0x8008a24                                               |     goto label_2;
                                                                         | label_35:
    0x08008ac0 ldr r3, [sp, 8]                                           |     r3 = var_8h;
    0x08008ac4 cmp r3, 2                                                 |     
                                                                         |     if (r3 > 2) {
    0x08008ac8 movls r3, 1                                               |         r3 = 1;
                                                                         |     }
                                                                         |     if (r3 <= 2) {
    0x08008acc movhi r3, 0                                               |         r3 = 0;
                                                                         |     }
    0x08008ad0 mov r1, r3                                                |     r1 = r3;
    0x08008ad4 str r3, [sp, 0x10]                                        |     var_10h = r3;
    0x08008ad8 mov r3, 0x14                                              |     r3 = 0x14;
    0x08008adc mla r3, r3, r1, r4                                        |     __asm ("mla r3, r3, r1, r4");
    0x08008ae0 ldr r1, [r5, 4]                                           |     r1 = *((r5 + 4));
    0x08008ae4 rev r1, r1                                                |     r1 = SWAP32 (r1);
    0x08008ae8 str r1, [sp, 0x14]                                        |     var_14h = r1;
    0x08008aec ldr r1, [r5, 8]                                           |     r1 = *((r5 + 8));
    0x08008af0 ldrb r3, [r3, 0xa1]                                       |     r3 = *((r3 + 0xa1));
    0x08008af4 rev r1, r1                                                |     r1 = SWAP32 (r1);
    0x08008af8 str r1, [sp, 0x1c]                                        |     var_1ch = r1;
                                                                         |     if (r3 <= 2) {
    0x08008afc movhi r1, 0x14                                            |         r1 = 0x14;
                                                                         |     }
                                                                         |     if (r3 > 2) {
    0x08008b00 movls r1, 0                                               |         r1 = 0;
                                                                         |     }
    0x08008b04 str r1, [sp, 0x20]                                        |     var_20h = r1;
    0x08008b08 ldrb sb, [r5, 0xc]                                        |     sb = *((r5 + 0xc));
    0x08008b0c tst r3, 2                                                 |     
    0x08008b10 ldr r1, [r6, 0x54]                                        |     r1 = *((r6 + 0x54));
    0x08008b14 ldrh r3, [r5, 0xe]                                        |     r3 = *((r5 + 0xe));
    0x08008b18 lsr sb, sb, 4                                             |     sb >>= 4;
    0x08008b1c ldr r0, [sp, 0x14]                                        |     r0 = var_14h;
    0x08008b20 rev16 ip, r3                                              |     __asm ("rev16 ip, r3");
    0x08008b24 sub r3, r1, r7                                            |     r3 = r1 - r7;
    0x08008b28 lsl sb, sb, 2                                             |     sb <<= 2;
    0x08008b2c strh ip, [sp, 0x46]                                       |     var_46h = ip;
    0x08008b30 sub r3, r3, sb                                            |     r3 -= sb;
    0x08008b34 add r3, r3, r0                                            |     r3 += r0;
    0x08008b38 and r0, r2, 1                                             |     r0 = r2 & 1;
    0x08008b3c add r3, r3, r0                                            |     r3 += r0;
    0x08008b40 ubfx r2, r2, 1, 1                                         |     r2 = (r2 >> 1) & ((1 << 1) - 1);
    0x08008b44 add r3, r3, r2                                            |     r3 += r2;
    0x08008b48 ldr r2, [sp, 0x20]                                        |     r2 = var_20h;
    0x08008b4c str r3, [sp, 0x28]                                        |     var_28h = r3;
    0x08008b50 add r3, r4, 0x90                                          |     r3 = r4 + 0x90;
    0x08008b54 add r3, r3, r2                                            |     r3 += r2;
    0x08008b58 ldr r2, [r4, 0x74]                                        |     r2 = *((r4 + 0x74));
    0x08008b5c str r3, [sp, 0x3c]                                        |     var_3ch = r3;
    0x08008b60 uxth r3, ip                                               |     r3 = (int16_t) ip;
    0x08008b64 str r2, [sp, 0x34]                                        |     var_34h = r2;
    0x08008b68 str r3, [sp, 0x30]                                        |     var_30h = r3;
    0x08008b6c str r3, [sp, 0x40]                                        |     var_40h = r3;
                                                                         |     if ((r3 & 2) != 0) {
    0x08008b70 bne 0x80092b4                                             |         goto label_36;
                                                                         |     }
                                                                         | label_9:
    0x08008b74 ldr sb, [sp, 0x1c]                                        |     sb = var_1ch;
                                                                         | label_11:
    0x08008b78 ldr r3, [sp, 0x1c]                                        |     r3 = var_1ch;
    0x08008b7c mov sl, 0x14                                              |     sl = 0x14;
    0x08008b80 ldr r1, [sp, 0x10]                                        |     r1 = var_10h;
    0x08008b84 mov r0, r4                                                |     r0 = r4;
    0x08008b88 sub r2, r3, 1                                             |     r2 = r3 - 1;
    0x08008b8c stmdaeq r0, {r2, r3, r7, r8, fp, sp, pc}                  |     __asm ("stmdaeq r0, {r2, r3, r7, r8, fp, sp, pc}");
    0x08008b90 sub r3, sb, r0                                            |     r3 = sb - r0;
    0x08008b94 mla sb, sl, fp, r4                                        |     __asm ("mla sb, sl, fp, r4");
    0x08008b98 str r3, [sp, 0x2c]                                        |     var_2ch = r3;
    0x08008b9c str r0, [sp, 0x38]                                        |     var_38h = r0;
    0x08008ba0 ldr r3, [sb, 0x98]                                        |     r3 = *((sb + 0x98));
    0x08008ba4 cmp r3, 0                                                 |     
                                                                         |     if (r3 != 0) {
    0x08008ba8 bne 0x80091cc                                             |         goto label_37;
                                                                         |     }
    0x08008bac ldrb r3, [r5, 0xd]                                        |     r3 = *((r5 + 0xd));
    0x08008bb0 tst r3, 2                                                 |     
                                                                         |     if ((r3 & 2) != 0) {
    0x08008bb4 bne 0x80095ec                                             |         goto label_38;
                                                                         |     }
    0x08008bb8 ldr r3, [sp, 0x10]                                        |     r3 = var_10h;
    0x08008bbc ldr r1, [sp, 0x28]                                        |     r1 = var_28h;
    0x08008bc0 ldr r0, [sp, 0x30]                                        |     r0 = var_30h;
    0x08008bc4 mla sl, sl, r3, r4                                        |     __asm ("mla sl, sl, r3, r4");
    0x08008bc8 ldr r3, [sp, 0x20]                                        |     r3 = var_20h;
    0x08008bcc add r2, r4, r3                                            |     r2 = r4 + r3;
    0x08008bd0 str r1, [r2, 0x90]                                        |     *((r2 + 0x90)) = r1;
    0x08008bd4 ldrb r3, [sb, 0xa0]                                       |     r3 = *((sb + 0xa0));
    0x08008bd8 lsl r3, r0, r3                                            |     r3 = r0 << r3;
    0x08008bdc cmp r3, 1                                                 |     
                                                                         |     if (r3 >= 1) {
    0x08008be0 movlo r3, 1                                               |         r3 = 1;
                                                                         |     }
    0x08008be4 str r3, [sb, 0x98]                                        |     *((sb + 0x98)) = r3;
    0x08008be8 add r3, r1, r3                                            |     r3 = r1 + r3;
    0x08008bec str r3, [r2, 0x94]                                        |     *((r2 + 0x94)) = r3;
    0x08008bf0 ldr r1, [sl, 0x98]                                        |     r1 = *((sl + 0x98));
    0x08008bf4 cmp r1, 0                                                 |     
                                                                         |     if (r1 != 0) {
    0x08008bf8 bne 0x80095d0                                             |         goto label_39;
                                                                         |     }
    0x08008bfc ldr r3, [sp, 0x2c]                                        |     r3 = var_2ch;
    0x08008c00 str r3, [sl, 0x94]                                        |     *((sl + 0x94)) = r3;
    0x08008c04 str r3, [sl, 0x90]                                        |     *((sl + 0x90)) = r3;
    0x08008c08 ldr r3, [r2, 0x94]                                        |     r3 = *((r2 + 0x94));
                                                                         | label_17:
    0x08008c0c ldrb r1, [r5, 0xd]                                        |     r1 = *((r5 + 0xd));
    0x08008c10 tst r1, 0x10                                              |     
                                                                         |     if ((r1 & 0x10) != 0) {
    0x08008c14 bne 0x80091fc                                             |         goto label_18;
                                                                         |     }
                                                                         | label_6:
    0x08008c18 ldr r0, [sp, 0x10]                                        |     r0 = var_10h;
    0x08008c1c mov r2, 0x14                                              |     r2 = 0x14;
    0x08008c20 mla r2, r2, r0, r4                                        |     __asm ("mla r2, r2, r0, r4");
    0x08008c24 ldr r2, [r2, 0x90]                                        |     r2 = *((r2 + 0x90));
    0x08008c28 str r2, [sp, 0x2c]                                        |     var_2ch = r2;
    0x08008c2c mov sl, r2                                                |     sl = r2;
                                                                         | label_7:
    0x08008c30 ldr r2, [sp, 0x14]                                        |     r2 = var_14h;
    0x08008c34 clz r2, r2                                                |     r2 &= r2;
    0x08008c38 lsr r2, r2, 5                                             |     r2 >>= 5;
    0x08008c3c ands r2, r2, r1, lsr 2                                    |     r2 &= (r1 >> 2);
                                                                         |     if (r2 != r2) {
    0x08008c40 bne 0x80093a0                                             |         goto label_40;
                                                                         |     }
                                                                         | label_12:
    0x08008c44 ldr ip, [sp, 0x10]                                        |     ip = var_10h;
    0x08008c48 mov r0, 0x14                                              |     r0 = 0x14;
    0x08008c4c ldr r2, [sp, 0x14]                                        |     r2 = var_14h;
    0x08008c50 sub r2, r2, r3                                            |     r2 -= r3;
    0x08008c54 mla ip, r0, ip, r4                                        |     __asm ("mla ip, r0, ip, r4");
    0x08008c58 sub r2, r2, 1                                             |     r2--;
    0x08008c5c ldr ip, [ip, 0x98]                                        |     ip = *((ip + 0x98));
    0x08008c60 cmp ip, 0                                                 |     
                                                                         |     if (ip == 0) {
    0x08008c64 beq 0x80091bc                                             |         goto label_41;
                                                                         |     }
    0x08008c68 mla r0, r0, fp, r4                                        |     __asm ("mla r0, r0, fp, r4");
    0x08008c6c ldr r0, [r0, 0x90]                                        |     r0 = *((r0 + 0x90));
    0x08008c70 sub r0, r0, 1                                             |     r0--;
    0x08008c74 sub r0, r0, ip                                            |     r0 -= ip;
    0x08008c78 ldr ip, [sp, 0x28]                                        |     ip = var_28h;
    0x08008c7c sub r0, r0, ip                                            |     r0 -= ip;
    0x08008c80 cmp r0, 0                                                 |     
                                                                         |     if (r0 < 0) {
    0x08008c84 movge ip, 0                                               |         
                                                                         |     }
                                                                         |     if (r0 < 0) {
    0x08008c88 blt 0x80091bc                                             |         goto label_41;
                                                                         |     }
                                                                         | label_5:
    0x08008c8c mov r3, 0x14                                              |     r3 = 0x14;
    0x08008c90 mla r1, r3, fp, r4                                        |     __asm ("mla r1, r3, fp, r4");
    0x08008c94 ldrb r0, [r1, 0xa1]                                       |     r0 = *((r1 + 0xa1));
    0x08008c98 tst r0, 8                                                 |     
                                                                         |     if ((r0 & 8) == 0) {
    0x08008c9c bne 0x8008cb0                                             |         
    0x08008ca0 ldr r0, [sp, 0x34]                                        |         r0 = var_34h;
    0x08008ca4 ldr r0, [r0, 0x6a8]                                       |         r0 = *((r0 + 0x6a8));
    0x08008ca8 cmp r0, 0                                                 |         
                                                                         |         if (r0 == 0) {
    0x08008cac beq 0x8009ba4                                             |             goto label_42;
                                                                         |         }
                                                                         |     }
                                                                         | label_19:
    0x08008cb0 ldr r2, [sp, 0x18]                                        |     r2 = var_18h;
    0x08008cb4 sub r3, r8, 4                                             |     r3 = r8 - 4;
    0x08008cb8 clz r3, r3                                                |     r3 &= r3;
    0x08008cbc ldrb r1, [r4, 0xba]                                       |     r1 = *((r4 + 0xba));
    0x08008cc0 cmp r8, r2                                                |     
    0x08008cc4 lsr r3, r3, 5                                             |     r3 >>= 5;
                                                                         |     if (r8 != r2) {
    0x08008cc8 moveq r3, 0                                               |         r3 = 0;
                                                                         |     }
                                                                         | label_15:
    0x08008ccc cmp r3, 0                                                 |     
    0x08008cd0 ldr r3, [sp, 0xc]                                         |     r3 = var_ch;
    0x08008cd4 strb r3, [r4, 0xbb]                                       |     *((r4 + 0xbb)) = r3;
                                                                         |     if (r3 == 0) {
    0x08008cd8 movne r3, 0x14                                            |         r3 = 0x14;
                                                                         |     }
    0x08008cdc strb fp, [r4, 0xb9]                                       |     *((r4 + 0xb9)) = fp;
    0x08008ce0 strb r8, [r4, 0xb8]                                       |     *((r4 + 0xb8)) = r8;
    0x08008ce4 mlane r3, r3, fp, r4                                      |     __asm ("mlane r3, r3, fp, r4");
                                                                         |     if (r3 == 0) {
    0x08008ce8 ldrbne r2, [r3, 0xa1]                                     |         r2 = *((r3 + 0xa1));
                                                                         |     }
                                                                         |     if (r3 == 0) {
    0x08008cec orrne r2, r2, 4                                           |         r2 |= 4;
                                                                         |     }
                                                                         |     if (r3 == 0) {
    0x08008cf0 strbne r2, [r3, 0xa1]                                     |         *((r3 + 0xa1)) = r2;
                                                                         |     }
    0x08008cf4 ldr r3, [r4, 0x8c]                                        |     r3 = *((r4 + 0x8c));
    0x08008cf8 cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x08008cfc beq 0x8008d0c                                             |         goto label_3;
                                                                         |     }
    0x08008d00 ldrb r2, [r3, 6]                                          |     r2 = *((r3 + 6));
    0x08008d04 cmp r2, 0                                                 |     
    0x08008d08 bne 0x800919c                                             |     
                                                                         |     while (r3 == r2) {
                                                                         | label_3:
    0x08008d0c ldr r3, [sp, 0x24]                                        |         r3 = var_24h;
    0x08008d10 add r7, r3, 0x660                                         |         r7 = r3 + 0x660;
    0x08008d14 add r7, r7, 0xc                                           |         r7 += 0xc;
                                                                         | label_4:
    0x08008d18 ldr r3, [sp, 0x24]                                        |         r3 = var_24h;
    0x08008d1c ldr r3, [r3, 0x6ac]                                       |         r3 = *((r3 + 0x6ac));
    0x08008d20 cmp r3, r1                                                |         
                                                                         |         if (r3 <= r1) {
    0x08008d24 bgt 0x8008d38                                             |             
    0x08008d28 ldr sb, [r7, 0x30]                                        |             sb = *((r7 + 0x30));
    0x08008d2c ldr r3, [r7, r8, lsl 2]                                   |             offset_1 = r8 << 2;
                                                                         |             r3 = *((r7 + offset_1));
    0x08008d30 cmp r3, sb                                                |             
                                                                         |             if (r3 > sb) {
    0x08008d34 bhi 0x8008d88                                             |                 goto label_43;
                                                                         |             }
                                                                         |         }
    0x08008d38 ldr r3, [sp, 0xc]                                         |         r3 = var_ch;
    0x08008d3c cmp r3, 4                                                 |         
                                                                         |         if (r3 != 4) {
    0x08008d40 ldreq sb, [r7, 0x20]                                      |             sb = *((r7 + 0x20));
                                                                         |         }
                                                                         |         if (r3 != 4) {
    0x08008d44 beq 0x8008d88                                             |             
    0x08008d48 ldrb r3, [r4, 0xa1]                                       |             r3 = *((r4 + 0xa1));
    0x08008d4c ldrb r2, [r4, 0xb5]                                       |             r2 = *((r4 + 0xb5));
    0x08008d50 ldr sb, [r7, r8, lsl 2]                                   |             offset_2 = r8 << 2;
                                                                         |             sb = *((r7 + offset_2));
    0x08008d54 orr r3, r3, r2                                            |             r3 |= r2;
    0x08008d58 tst r3, 0x10                                              |             
                                                                         |             if ((r3 & 0x10) != 0) {
    0x08008d5c beq 0x8008d70                                             |                 
    0x08008d60 ldr r3, [r7, 0x34]                                        |                 r3 = *((r7 + 0x34));
    0x08008d64 cmp r3, sb                                                |                 
                                                                         |                 if (r3 >= sb) {
    0x08008d68 movlo sb, r3                                              |                     sb = r3;
                                                                         |                 }
                                                                         |                 if (r3 <= sb) {
    0x08008d6c blo 0x8008d88                                             |                     goto label_43;
                                                                         |                 }
                                                                         |             }
    0x08008d70 ldrh r3, [r4, 0xc8]                                       |             r3 = *((r4 + 0xc8));
    0x08008d74 cmp r3, 0                                                 |             
                                                                         |             if (r3 != 0) {
    0x08008d78 bne 0x8008d88                                             |                 goto label_43;
                                                                         |             }
    0x08008d7c ldr r3, [r7, 0x30]                                        |             r3 = *((r7 + 0x30));
    0x08008d80 cmp sb, r3                                                |             
                                                                         |             if (sb >= r3) {
    0x08008d84 movhs sb, r3                                              |                 sb = r3;
                                                                         |                 goto label_43;
                                                                         |             }
                                                                         |         }
                                                                         | label_43:
    0x08008d88 ldr r0, [pc, 0xed8]                                       |         r0 = *(0x8009c64);
    0x08008d8c movw r1, 0x201                                            |         r1 = 0x201;
    0x08008d90 stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}                  |         __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x08008d94 ldr r3, [sp, 0x18]                                        |         r3 = var_18h;
    0x08008d98 cmp r3, r8                                                |         
                                                                         |         if (r3 != r8) {
    0x08008d9c beq 0x8008de8                                             |             
    0x08008da0 ldr r3, [r4, 0x74]                                        |             r3 = *((r4 + 0x74));
    0x08008da4 ldr r3, [r3, 0x660]                                       |             r3 = *((r3 + 0x660));
    0x08008da8 cmp r3, 0                                                 |             
                                                                         |             if (r3 == 0) {
    0x08008dac beq 0x8008de8                                             |                 goto label_44;
                                                                         |             }
    0x08008db0 ldr r3, [r4, 0x8c]                                        |             r3 = *((r4 + 0x8c));
    0x08008db4 cmp r3, 0                                                 |             
                                                                         |             if (r3 == 0) {
    0x08008db8 beq 0x8008de8                                             |                 goto label_44;
                                                                         |             }
    0x08008dbc ldrb r2, [r3, 4]                                          |             r2 = *((r3 + 4));
    0x08008dc0 cmp r2, 0                                                 |             
                                                                         |             if (r2 == 0) {
    0x08008dc4 beq 0x8008de8                                             |                 goto label_44;
                                                                         |             }
    0x08008dc8 cmn r3, r2                                                |             
                                                                         |             if (r3 == r2) {
    0x08008dcc beq 0x8008de8                                             |                 goto label_44;
                                                                         |             }
    0x08008dd0 mrs r0, apsr                                              |             r0 = apsr;
    0x08008dd4 cpsid i                                                   |             __asm ("cpsid i");
    0x08008dd8 ldr r1, [r3, r2]                                          |             r1 = *((r3 + r2));
    0x08008ddc orr r1, r1, 0x20                                          |             r1 |= 0x20;
    0x08008de0 str r1, [r3, r2]                                          |             *((r3 + r2)) = r1;
    0x08008de4 msr cpsr_c, r0                                            |             cpsr_c = r0;
                                                                         |         }
                                                                         | label_44:
    0x08008de8 ldr r3, [r4, 0x6c]                                        |         r3 = *((r4 + 0x6c));
    0x08008dec tst r3, 2                                                 |         
                                                                         |         if ((r3 & 2) != 0) {
    0x08008df0 bne 0x8009230                                             |             goto label_45;
                                                                         |         }
    0x08008df4 ldrb r3, [r5, 0xd]                                        |         r3 = *((r5 + 0xd));
    0x08008df8 tst r3, 4                                                 |         
                                                                         |         if ((r3 & 4) != 0) {
    0x08008dfc bne 0x8009680                                             |             goto label_46;
                                                                         |         }
    0x08008e00 cmp r8, 3                                                 |         
                                                                         |         if (r8 == 3) {
    0x08008e04 bne 0x8008e14                                             |             
    0x08008e08 ldr r3, [r7, 0x34]                                        |             r3 = *((r7 + 0x34));
    0x08008e0c cmp sb, r3                                                |             
                                                                         |             if (sb >= r3) {
    0x08008e10 movhs sb, r3                                              |                 sb = r3;
                                                                         |                 goto label_8;
                                                                         |             }
                                                                         |         }
                                                                         | label_8:
    0x08008e14 mov r0, r4                                                |         r0 = r4;
    0x08008e18 mov r5, 1                                                 |         r5 = 1;
    0x08008e1c ldr r1, [sp, 8]                                           |         r1 = var_8h;
    0x08008e20 mov r3, sb                                                |         r3 = sb;
    0x08008e24 mov r2, r6                                                |         r2 = r6;
    0x08008e28 str r5, [sp]                                              |         *(sp) = r5;
    0x08008e2c stmdaeq r0, {r4, r6, r7, sb, sl, fp}                      |         __asm ("stmdaeq r0, {r4, r6, r7, sb, sl, fp}");
    0x08008e30 mov r0, r5                                                |         r0 = r5;
                                                                         | label_20:
    0x08008e34 add sp, sp, 0x8c                                          |         
    0x08008e38 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                  |         
    0x0800919c cmn r3, r2                                                |         
    0x080091a0 beq 0x8008d0c                                             |         
                                                                         |     }
    0x080091a4 ldr r7, [r3, r2]                                          |     r7 = *((r3 + r2));
    0x080091a8 cmp r7, 0                                                 |     
                                                                         |     if (r7 == 0) {
    0x080091ac beq 0x8008d0c                                             |         goto label_3;
                                                                         |     }
    0x080091b0 adds r7, r7, 8                                            |     r7 += 8;
                                                                         |     if (r7 != r7) {
    0x080091b4 bne 0x8008d18                                             |         goto label_4;
                                                                         |     }
    0x080091b8 b 0x8008d0c                                               |     goto label_3;
                                                                         | label_41:
    0x080091bc cmp r2, 0                                                 |     
                                                                         |     if (r2 < 0) {
    0x080091c0 blt 0x8009414                                             |         goto label_47;
                                                                         |     }
                                                                         | label_14:
    0x080091c4 mov ip, 1                                                 |     
    0x080091c8 b 0x8008c8c                                               |     goto label_5;
                                                                         | label_37:
    0x080091cc ldrb r3, [r4, 0xb8]                                       |     r3 = *((r4 + 0xb8));
    0x080091d0 cmp r3, 1                                                 |     
                                                                         |     if (r3 == 1) {
    0x080091d4 beq 0x80095a0                                             |         goto label_48;
                                                                         |     }
    0x080091d8 cmp r3, 2                                                 |     
                                                                         |     if (r3 == 2) {
    0x080091dc movne r2, 0                                               |         r2 = 0;
                                                                         |     }
                                                                         |     if (r3 != 2) {
    0x080091e0 andeq r2, fp, 1                                           |         r2 = fp & 1;
                                                                         |     }
    0x080091e4 cmp r2, 0                                                 |     
                                                                         |     if (r2 != 0) {
    0x080091e8 bne 0x80095ac                                             |         goto label_49;
                                                                         |     }
                                                                         | label_16:
    0x080091ec ldrb r1, [r5, 0xd]                                        |     r1 = *((r5 + 0xd));
    0x080091f0 ldr r3, [sb, 0x94]                                        |     r3 = *((sb + 0x94));
    0x080091f4 tst r1, 0x10                                              |     
                                                                         |     if ((r1 & 0x10) == 0) {
    0x080091f8 beq 0x8008c18                                             |         goto label_6;
                                                                         |     }
                                                                         | label_18:
    0x080091fc ldr r2, [sp, 0x1c]                                        |     r2 = var_1ch;
    0x08009200 ldr r0, [sp, 0x38]                                        |     r0 = var_38h;
    0x08009204 subs sl, r2, r0                                           |     sl = r2 - r0;
    0x08009208 ldr r0, [r5, 0xc]                                         |     r0 = *((r5 + 0xc));
    0x0800920c and r0, r0, 0x1400                                        |     r0 &= 0x1400;
                                                                         |     if (sl != r2) {
    0x08009210 moveq r2, 1                                               |         r2 = 1;
                                                                         |     }
                                                                         |     if (sl == r2) {
    0x08009214 movne r2, 0                                               |         r2 = 0;
                                                                         |     }
    0x08009218 cmp r0, 0x1400                                            |     
                                                                         |     if (r0 == 0x1400) {
    0x0800921c movne r2, 0                                               |         r2 = 0;
                                                                         |     }
                                                                         |     if (r0 != 0x1400) {
    0x08009220 andeq r2, r2, 1                                           |         r2 &= 1;
                                                                         |     }
    0x08009224 cmp r2, 0                                                 |     
                                                                         |     if (r2 == 0) {
    0x08009228 beq 0x8008c30                                             |         goto label_7;
                                                                         |     }
    0x0800922c b 0x8008c18                                               |     goto label_6;
                                                                         | label_45:
    0x08009230 ldr r3, [r4, 0x6c]                                        |     r3 = *((r4 + 0x6c));
    0x08009234 tst r3, 4                                                 |     
                                                                         |     if ((r3 & 4) != 0) {
    0x08009238 bne 0x8008e14                                             |         goto label_8;
                                                                         |     }
    0x0800923c ldr r3, [sp, 0x18]                                        |     r3 = var_18h;
    0x08009240 sub r3, r3, 2                                             |     r3 -= 2;
    0x08009244 cmp r3, 1                                                 |     
    0x08009248 cmpls r8, 3                                               |     __asm ("cmpls r8, 3");
                                                                         |     if (r3 != 1) {
    0x0800924c bne 0x8008e14                                             |         goto label_8;
                                                                         |     }
    0x08009250 mrs r2, apsr                                              |     r2 = apsr;
    0x08009254 cpsid i                                                   |     __asm ("cpsid i");
    0x08009258 ldr r3, [r4, 0x6c]                                        |     r3 = *((r4 + 0x6c));
    0x0800925c orr r3, r3, 4                                             |     r3 |= 4;
    0x08009260 str r3, [r4, 0x6c]                                        |     *((r4 + 0x6c)) = r3;
    0x08009264 msr cpsr_c, r2                                            |     cpsr_c = r2;
    0x08009268 ldr r3, [r4, 0x74]                                        |     r3 = *((r4 + 0x74));
    0x0800926c ldr r3, [r3, 0x660]                                       |     r3 = *((r3 + 0x660));
    0x08009270 cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x08009274 beq 0x8008e14                                             |         goto label_8;
                                                                         |     }
    0x08009278 ldr r3, [r4, 0x8c]                                        |     r3 = *((r4 + 0x8c));
    0x0800927c cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x08009280 beq 0x8008e14                                             |         goto label_8;
                                                                         |     }
    0x08009284 ldrb r2, [r3, 4]                                          |     r2 = *((r3 + 4));
    0x08009288 cmp r2, 0                                                 |     
                                                                         |     if (r2 == 0) {
    0x0800928c beq 0x8008e14                                             |         goto label_8;
                                                                         |     }
    0x08009290 cmn r3, r2                                                |     
                                                                         |     if (r3 == r2) {
    0x08009294 beq 0x8008e14                                             |         goto label_8;
                                                                         |     }
    0x08009298 mrs r0, apsr                                              |     r0 = apsr;
    0x0800929c cpsid i                                                   |     __asm ("cpsid i");
    0x080092a0 ldr r1, [r3, r2]                                          |     r1 = *((r3 + r2));
    0x080092a4 orr r1, r1, 0x10                                          |     r1 |= 0x10;
    0x080092a8 str r1, [r3, r2]                                          |     *((r3 + r2)) = r1;
    0x080092ac msr cpsr_c, r0                                            |     cpsr_c = r0;
    0x080092b0 b 0x8008e14                                               |     goto label_8;
                                                                         | label_36:
    0x080092b4 subs sb, sb, 0x14                                         |     sb -= 0x14;
                                                                         |     if (sb == sb) {
    0x080092b8 beq 0x8008b74                                             |         goto label_9;
                                                                         |     }
    0x080092bc ldr r3, [r6, 0x58]                                        |     r3 = *((r6 + 0x58));
    0x080092c0 sub r3, r1, r3                                            |     r3 = r1 - r3;
    0x080092c4 add r1, r7, 0x14                                          |     r1 = r7 + 0x14;
    0x080092c8 sub r3, r3, r1                                            |     r3 -= r1;
    0x080092cc cmp sb, r3                                                |     
    0x080092d0 ldr r3, [r6, 0xa8]                                        |     r3 = *((r6 + 0xa8));
                                                                         |     if (sb <= r3) {
    0x080092d4 ble 0x80097c0                                             |         goto label_50;
                                                                         |     }
    0x080092d8 cmp r6, 0                                                 |     
                                                                         |     if (r6 == 0) {
    0x080092dc beq 0x80097c8                                             |         goto label_51;
                                                                         |     }
    0x080092e0 mov r3, sb                                                |     r3 = sb;
    0x080092e4 add r2, sp, 0x60                                          |     r2 += var_60h;
    0x080092e8 mov r0, r6                                                |     r0 = r6;
    0x080092ec stmdaeq r1, {r2, r3, r5, r6, r7, sl, fp, lr, pc}          |     __asm ("stmdaeq r1, {r2, r3, r5, r6, r7, sl, fp, lr, pc}");
    0x080092f0 cmp r0, 0                                                 |     
                                                                         |     if (r0 < 0) {
    0x080092f4 blt 0x80097c8                                             |         goto label_51;
                                                                         |     }
    0x080092f8 add r3, sp, 0x60                                          |     r3 += var_60h;
                                                                         | label_21:
    0x080092fc cmp sb, 0xc                                               |     
                                                                         |     if (sb == 0xc) {
    0x08009300 beq 0x8009820                                             |         goto label_52;
                                                                         |     }
                                                                         | label_10:
    0x08009304 cmp sb, 0                                                 |     
                                                                         |     if (sb <= 0) {
    0x08009308 ble 0x8008b74                                             |         goto label_9;
                                                                         |     }
                                                                         | label_22:
    0x0800930c ldrb r2, [r3]                                             |     r2 = *(r3);
    0x08009310 cmp r2, 0                                                 |     
                                                                         |     if (r2 == 0) {
    0x08009314 beq 0x8008b74                                             |         goto label_9;
                                                                         |     }
    0x08009318 cmp r2, 1                                                 |     
                                                                         |     if (r2 != 1) {
    0x0800931c addeq r3, r3, 1                                           |         r3++;
                                                                         |     }
                                                                         |     if (r2 == 1) {
    0x08009320 subeq sb, sb, 1                                           |         sb--;
                                                                         |         goto label_53;
                                                                         |     }
                                                                         |     if (r2 == 1) {
                                                                         | label_53:
    0x08009324 beq 0x8009304                                             |         goto label_10;
                                                                         |     }
    0x08009328 cmp sb, 1                                                 |     
                                                                         |     if (sb == 1) {
    0x0800932c beq 0x8008b74                                             |         goto label_9;
                                                                         |     }
    0x08009330 ldrb r1, [r3, 1]                                          |     r1 = *((r3 + 1));
    0x08009334 cmp sb, r1                                                |     
    0x08009338 cmpge r1, 1                                               |     __asm ("cmpge r1, 1");
                                                                         |     if (sb <= r1) {
    0x0800933c ble 0x8008b74                                             |         goto label_9;
                                                                         |     }
    0x08009340 sub r2, r2, 5                                             |     r2 -= 5;
    0x08009344 cmp r1, 9                                                 |     
    0x08009348 clz r2, r2                                                |     r2 &= r2;
    0x0800934c lsr r2, r2, 5                                             |     r2 >>= 5;
                                                                         |     if (r1 > 9) {
    0x08009350 movle r2, 0                                               |         r2 = 0;
                                                                         |     }
    0x08009354 cmp r2, 0                                                 |     
                                                                         |     if (r2 == 0) {
    0x08009358 beq 0x8009394                                             |         goto label_54;
                                                                         |     }
    0x0800935c sub r2, r1, 2                                             |     r2 = r1 - 2;
    0x08009360 ands r0, r2, 7                                            |     r0 = r2 & 7;
                                                                         |     if (r0 != r2) {
    0x08009364 bne 0x8009394                                             |         goto label_54;
                                                                         |     }
    0x08009368 ldr sb, [sp, 0x1c]                                        |     sb = var_1ch;
                                                                         |     do {
    0x0800936c add r1, r3, r0                                            |         r1 = r3 + r0;
    0x08009370 add r0, r0, 8                                             |         r0 += 8;
    0x08009374 ldr r1, [r1, 6]                                           |         r1 = *((r1 + 6));
    0x08009378 rev r1, r1                                                |         r1 = SWAP32 (r1);
    0x0800937c sub ip, sb, r1                                            |         
    0x08009380 cmp ip, 0                                                 |         
                                                                         |         if (ip >= 0) {
    0x08009384 movlt sb, r1                                              |             sb = r1;
                                                                         |         }
    0x08009388 cmp r2, r0                                                |         
    0x0800938c bgt 0x800936c                                             |         
                                                                         |     } while (r2 > r0);
    0x08009390 b 0x8008b78                                               |     goto label_11;
                                                                         | label_54:
    0x08009394 add r3, r3, r1                                            |     r3 += r1;
    0x08009398 sub sb, sb, r1                                            |     sb -= r1;
    0x0800939c b 0x8009304                                               |     goto label_10;
                                                                         | label_40:
    0x080093a0 ldrb r2, [r4, 0xb8]                                       |     r2 = *((r4 + 0xb8));
    0x080093a4 cmp r2, 1                                                 |     
                                                                         |     if (r2 != 1) {
    0x080093a8 moveq r2, 0x14                                            |         r2 = 0x14;
                                                                         |     }
                                                                         |     if (r2 == 1) {
    0x080093ac movne r2, 0                                               |         r2 = 0;
                                                                         |     }
                                                                         |     if (r2 == 1) {
    0x080093b0 strne r2, [sp, 0x14]                                      |         var_14h = r2;
                                                                         |     }
    0x080093b4 mlaeq r2, r2, fp, r4                                      |     __asm ("mlaeq r2, r2, fp, r4");
                                                                         |     if (r2 != 1) {
    0x080093b8 ldreq r2, [r2, 0x90]                                      |         r2 = *((r2 + 0x90));
                                                                         |     }
                                                                         |     if (r2 != 1) {
    0x080093bc streq r2, [sp, 0x14]                                      |         var_14h = r2;
                                                                         |     }
                                                                         |     if (r2 != 1) {
    0x080093c0 streq r2, [sp, 0x28]                                      |         var_28h = r2;
                                                                         |     }
    0x080093c4 b 0x8008c44                                               |     goto label_12;
                                                                         | label_30:
    0x080093c8 ldrb r3, [r8, 4]                                          |     r3 = *((r8 + 4));
    0x080093cc mov r2, r7                                                |     r2 = r7;
    0x080093d0 str r3, [sp]                                              |     *(sp) = r3;
    0x080093d4 mov r0, r6                                                |     r0 = r6;
    0x080093d8 mov r3, 6                                                 |     r3 = 6;
    0x080093dc stmdaeq r1, {r2, r3, r5, sb, sl, fp, lr, pc}              |     __asm ("stmdaeq r1, {r2, r3, r5, sb, sl, fp, lr, pc}");
    0x080093e0 cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x080093e4 beq 0x8008990                                             |         goto label_13;
                                                                         |     }
    0x080093e8 ldrb r2, [r8, 4]                                          |     r2 = *((r8 + 4));
    0x080093ec stmdaeq r0, {r2, r6, r8, sp, lr, pc}                      |     __asm ("stmdaeq r0, {r2, r6, r8, sp, lr, pc}");
    0x080093f0 stmdaeq r0, {r2, r6, r8, sp, lr, pc}                      |     __asm ("stmdaeq r0, {r2, r6, r8, sp, lr, pc}");
    0x080093f4 ldr r1, [r8, 0x14]                                        |     r1 = *((r8 + 0x14));
    0x080093f8 mov r0, r6                                                |     r0 = r6;
                                                                         | label_26:
    0x080093fc stmdaeq r0, {r6, r8, sp, lr, pc}                          |     __asm ("stmdaeq r0, {r6, r8, sp, lr, pc}");
    0x08009400 stmdaeq r0, {r6, r8, sp, lr, pc}                          |     __asm ("stmdaeq r0, {r6, r8, sp, lr, pc}");
    0x08009404 stm sp, {r3, ip}                                          |     *(sp) = r3;
                                                                         |     *((sp + 4)) = ip;
    0x08009408 mov r3, 6                                                 |     r3 = 6;
    0x0800940c stmdaeq r0, {r2, r3, r4, r5, r7, r8, lr, pc}              |     __asm ("stmdaeq r0, {r2, r3, r4, r5, r7, r8, lr, pc}");
    0x08009410 b 0x8008a88                                               |     goto label_1;
                                                                         | label_47:
    0x08009414 ldr ip, [sp, 0x10]                                        |     ip = var_10h;
    0x08009418 mov r0, 0x14                                              |     r0 = 0x14;
    0x0800941c ldr sb, [sp, 0x2c]                                        |     sb = var_2ch;
    0x08009420 mla r7, r0, ip, r4                                        |     __asm ("mla r7, r0, ip, r4");
    0x08009424 ldr ip, [r7, 0x90]                                        |     ip = *((r7 + 0x90));
    0x08009428 sub lr, sb, ip                                            |     lr = sb - ip;
    0x0800942c cmp lr, 1                                                 |     
                                                                         |     if (lr >= 1) {
    0x08009430 bpl 0x80091c4                                             |         goto label_14;
                                                                         |     }
    0x08009434 mla r0, r0, fp, r4                                        |     __asm ("mla r0, r0, fp, r4");
    0x08009438 mov lr, 0x1d0                                             |     
    0x0800943c movt lr, 1                                                |     lr = 0x101d0;
    0x08009440 str r0, [sp, 0x1c]                                        |     var_1ch = r0;
    0x08009444 mvn sb, sb                                                |     sb = ~sb;
    0x08009448 ldr r0, [r0, 0x98]                                        |     r0 = *((r0 + 0x98));
    0x0800944c cmp r0, lr                                                |     
                                                                         |     if (r0 < lr) {
    0x08009450 subhs ip, ip, r0                                          |         
                                                                         |     }
                                                                         |     if (r0 >= lr) {
    0x08009454 sublo ip, ip, lr                                          |         
                                                                         |     }
    0x08009458 cmn sb, ip                                                |     
                                                                         |     if (sb >= ip) {
    0x0800945c bpl 0x80091c4                                             |         goto label_14;
                                                                         |     }
    0x08009460 tst r1, 2                                                 |     
                                                                         |     if ((r1 & 2) != 0) {
    0x08009464 ldreq r2, [sp, 0x1c]                                      |         r2 = var_1ch;
                                                                         |     }
                                                                         |     if ((r1 & 2) != 0) {
    0x08009468 ldreq r1, [sp, 0x30]                                      |         r1 = var_30h;
                                                                         |     }
                                                                         |     if ((r1 & 2) != 0) {
    0x0800946c ldrbeq r2, [r2, 0xa0]                                     |         r2 = *((r2 + 0xa0));
                                                                         |     }
                                                                         |     if ((r1 & 2) != 0) {
    0x08009470 lsleq r2, r1, r2                                          |         r2 = r1 << r2;
                                                                         |     }
                                                                         |     if ((r1 & 2) != 0) {
    0x08009474 streq r2, [sp, 0x40]                                      |         var_40h = r2;
                                                                         |     }
    0x08009478 ldr r2, [sp, 0x2c]                                        |     r2 = var_2ch;
    0x0800947c ldr r1, [sp, 0x40]                                        |     r1 = var_40h;
    0x08009480 sub r2, r2, sl                                            |     r2 -= sl;
    0x08009484 add r2, r2, r1                                            |     r2 += r1;
    0x08009488 cmp r0, r2                                                |     
    0x0800948c ldr r0, [sp, 0x28]                                        |     r0 = var_28h;
                                                                         |     if (r0 >= r2) {
    0x08009490 movlo r1, 0x14                                            |         r1 = 0x14;
                                                                         |     }
    0x08009494 mlalo r1, r1, fp, r4                                      |     __asm ("mlalo r1, r1, fp, r4");
                                                                         |     if (r0 >= r2) {
    0x08009498 strlo r2, [r1, 0x98]                                      |         *((r1 + 0x98)) = r2;
                                                                         |     }
    0x0800949c ldr r2, [sp, 0x20]                                        |     r2 = var_20h;
    0x080094a0 add r1, r4, r2                                            |     r1 = r4 + r2;
    0x080094a4 ldr r2, [r1, 0x90]                                        |     r2 = *((r1 + 0x90));
    0x080094a8 sub r2, r2, r0                                            |     r2 -= r0;
    0x080094ac cmp r2, 0                                                 |     
                                                                         |     if (r2 < 0) {
    0x080094b0 bge 0x80094cc                                             |         
    0x080094b4 mov r2, 0x14                                              |         r2 = 0x14;
    0x080094b8 str r0, [r1, 0x90]                                        |         *((r1 + 0x90)) = r0;
    0x080094bc mla r2, r2, fp, r4                                        |         __asm ("mla r2, r2, fp, r4");
    0x080094c0 ldrb r1, [r2, 0xa1]                                       |         r1 = *((r2 + 0xa1));
    0x080094c4 orr r1, r1, 0x10                                          |         r1 |= 0x10;
    0x080094c8 strb r1, [r2, 0xa1]                                       |         *((r2 + 0xa1)) = r1;
                                                                         |     }
    0x080094cc ldrb r2, [r5, 0xd]                                        |     r2 = *((r5 + 0xd));
    0x080094d0 tst r2, 0x10                                              |     
                                                                         |     if ((r2 & 0x10) != 0) {
    0x080094d4 beq 0x80094f8                                             |         
    0x080094d8 mov r2, 0x14                                              |         r2 = 0x14;
    0x080094dc mla r2, r2, fp, r4                                        |         __asm ("mla r2, r2, fp, r4");
    0x080094e0 ldrb r1, [r2, 0xa1]                                       |         r1 = *((r2 + 0xa1));
    0x080094e4 tst r1, 0x20                                              |         
                                                                         |         if ((r1 & 0x20) != 0) {
    0x080094e8 bne 0x80099c4                                             |             goto label_55;
                                                                         |         }
    0x080094ec orr r1, r1, 0x20                                          |         r1 |= 0x20;
    0x080094f0 str sl, [r2, 0x9c]                                        |         *((r2 + 0x9c)) = sl;
    0x080094f4 strb r1, [r2, 0xa1]                                       |         *((r2 + 0xa1)) = r1;
                                                                         |     }
                                                                         | label_24:
    0x080094f8 ldr r1, [sp, 0x10]                                        |     r1 = var_10h;
    0x080094fc mov r2, 0x14                                              |     r2 = 0x14;
    0x08009500 mla r2, r2, r1, r4                                        |     __asm ("mla r2, r2, r1, r4");
    0x08009504 ldr r1, [r2, 0x98]                                        |     r1 = *((r2 + 0x98));
    0x08009508 cmp r1, 0                                                 |     
                                                                         |     if (r1 != 0) {
    0x0800950c beq 0x8009528                                             |         
    0x08009510 ldr ip, [sp, 0x28]                                        |         ip = var_28h;
    0x08009514 sub r0, r3, ip                                            |         r0 = r3 - ip;
    0x08009518 cmp r0, 0                                                 |         
                                                                         |         if (r0 >= 0) {
    0x0800951c sublt r3, r1, r3                                          |             r3 = r1 - r3;
                                                                         |         }
                                                                         |         if (r0 >= 0) {
    0x08009520 addlt r3, r3, ip                                          |             r3 += ip;
                                                                         |         }
                                                                         |         if (r0 < 0) {
    0x08009524 strlt r3, [r2, 0x98]                                      |             *((r2 + 0x98)) = r3;
                                                                         |             goto label_56;
                                                                         |         }
                                                                         |     }
                                                                         | label_56:
    0x08009528 ldr r0, [sp, 0x40]                                        |     r0 = var_40h;
    0x0800952c ldr r3, [sp, 0x2c]                                        |     r3 = var_2ch;
    0x08009530 ldr r2, [r7, 0x94]                                        |     r2 = *((r7 + 0x94));
    0x08009534 add r3, r0, r3                                            |     r3 = r0 + r3;
    0x08009538 mvn r1, r3                                                |     r1 = ~r3;
    0x0800953c cmn r1, r2                                                |     
                                                                         |     if (r1 < r2) {
    0x08009540 bpl 0x8009554                                             |         
    0x08009544 cmp r0, 0                                                 |         
                                                                         |         if (r0 != 0) {
    0x08009548 ldreq r3, [sp, 0x2c]                                      |             r3 = var_2ch;
                                                                         |         }
                                                                         |         if (r0 != 0) {
    0x0800954c addeq r3, r3, 1                                           |             r3++;
                                                                         |         }
    0x08009550 str r3, [r7, 0x94]                                        |         *((r7 + 0x94)) = r3;
                                                                         |     }
    0x08009554 ldr r3, [r7, 0x90]                                        |     r3 = *((r7 + 0x90));
    0x08009558 cmp sl, r3                                                |     
                                                                         |     if (sl == r3) {
    0x0800955c bne 0x8009578                                             |         
    0x08009560 ldr r2, [sp, 0x10]                                        |         r2 = var_10h;
    0x08009564 mov r3, 0x14                                              |         r3 = 0x14;
    0x08009568 mla r3, r3, r2, r4                                        |         __asm ("mla r3, r3, r2, r4");
    0x0800956c ldrb r2, [r3, 0xa1]                                       |         r2 = *((r3 + 0xa1));
    0x08009570 bic r2, r2, 0x10                                          |         r2 = BIT_MASK (r2, 0x10);
    0x08009574 strb r2, [r3, 0xa1]                                       |         *((r3 + 0xa1)) = r2;
                                                                         |     }
    0x08009578 ldr r3, [sp, 0x18]                                        |     r3 = var_18h;
    0x0800957c ldr r2, [sp, 0xc]                                         |     r2 = var_ch;
    0x08009580 subs r3, r8, r3                                           |     r3 = r8 - r3;
                                                                         |     if (r3 == r8) {
    0x08009584 movne r3, 1                                               |         r3 = 1;
                                                                         |     }
    0x08009588 cmp r8, 4                                                 |     
                                                                         |     if (r8 == 4) {
    0x0800958c movne r3, 0                                               |         r3 = 0;
                                                                         |     }
    0x08009590 cmp r2, 3                                                 |     
                                                                         |     if (r2 == 3) {
    0x08009594 beq 0x8009918                                             |         goto label_57;
                                                                         |     }
    0x08009598 ldrb r1, [r4, 0xba]                                       |     r1 = *((r4 + 0xba));
    0x0800959c b 0x8008ccc                                               |     goto label_15;
                                                                         | label_48:
    0x080095a0 ldr r3, [sp, 8]                                           |     r3 = var_8h;
    0x080095a4 cmp r3, 2                                                 |     
                                                                         |     if (r3 > 2) {
    0x080095a8 bhi 0x80091ec                                             |         goto label_16;
                                                                         |     }
                                                                         | label_49:
    0x080095ac ldr r3, [sp, 0x20]                                        |     r3 = var_20h;
    0x080095b0 ldr r2, [sp, 0x28]                                        |     r2 = var_28h;
    0x080095b4 add sl, r4, r3                                            |     sl = r4 + r3;
    0x080095b8 ldr r3, [sl, 0x90]                                        |     r3 = *((sl + 0x90));
    0x080095bc sub r3, r3, r2                                            |     r3 -= r2;
    0x080095c0 cmp r3, 0                                                 |     
                                                                         |     if (r3 < 0) {
    0x080095c4 blt 0x8009838                                             |         goto label_58;
                                                                         |     }
                                                                         | label_23:
    0x080095c8 ldr r3, [sl, 0x94]                                        |     r3 = *((sl + 0x94));
    0x080095cc b 0x8008c0c                                               |     goto label_17;
                                                                         | label_39:
    0x080095d0 ldr r1, [sl, 0x90]                                        |     r1 = *((sl + 0x90));
    0x080095d4 ldr r0, [sp, 0x2c]                                        |     r0 = var_2ch;
    0x080095d8 add r1, r1, 1                                             |     r1++;
    0x080095dc cmp r0, r1                                                |     
                                                                         |     if (r0 != r1) {
    0x080095e0 streq r0, [sl, 0x90]                                      |         *((sl + 0x90)) = r0;
                                                                         |     }
                                                                         |     if (r0 != r1) {
    0x080095e4 ldreq r3, [r2, 0x94]                                      |         r3 = *((r2 + 0x94));
                                                                         |     }
    0x080095e8 b 0x8008c0c                                               |     goto label_17;
                                                                         | label_38:
    0x080095ec ldr r0, [sp, 0x20]                                        |     r0 = var_20h;
    0x080095f0 mov r1, r7                                                |     r1 = r7;
    0x080095f4 ldr r2, [sp, 0x30]                                        |     r2 = var_30h;
    0x080095f8 add r7, r4, r0                                            |     r7 = r4 + r0;
    0x080095fc ldr r0, [sp, 0x28]                                        |     r0 = var_28h;
    0x08009600 cmp r2, 1                                                 |     
    0x08009604 ldr r3, [sp, 0x3c]                                        |     r3 = var_3ch;
                                                                         |     if (r2 >= 1) {
    0x08009608 movlo r2, 1                                               |         r2 = 1;
                                                                         |     }
    0x0800960c str r0, [r7, 0x94]                                        |     *((r7 + 0x94)) = r0;
    0x08009610 str r0, [r7, 0x90]                                        |     *((r7 + 0x90)) = r0;
    0x08009614 mov r0, r6                                                |     r0 = r6;
    0x08009618 str r2, [sb, 0x98]                                        |     *((sb + 0x98)) = r2;
    0x0800961c mov r2, r5                                                |     r2 = r5;
    0x08009620 bl 0x8008640                                              |     tcp_options ();
    0x08009624 ldrb r3, [sb, 0xa1]                                       |     r3 = *((sb + 0xa1));
    0x08009628 tst r3, 1                                                 |     
                                                                         |     if ((r3 & 1) != 0) {
    0x0800962c beq 0x8009644                                             |         
    0x08009630 ldr r3, [sp, 0x10]                                        |         r3 = var_10h;
    0x08009634 mla sl, sl, r3, r4                                        |         __asm ("mla sl, sl, r3, r4");
    0x08009638 ldrb r3, [sl, 0xa1]                                       |         r3 = *((sl + 0xa1));
    0x0800963c tst r3, 1                                                 |         
                                                                         |         if ((r3 & 1) != 0) {
    0x08009640 bne 0x8009660                                             |             goto label_59;
                                                                         |         }
                                                                         |     }
    0x08009644 ldr r1, [sp, 0x10]                                        |     r1 = var_10h;
    0x08009648 mov r3, 0x14                                              |     r3 = 0x14;
    0x0800964c mov r2, 0                                                 |     r2 = 0;
    0x08009650 mla r1, r3, r1, r4                                        |     __asm ("mla r1, r3, r1, r4");
    0x08009654 mla r3, r3, fp, r4                                        |     __asm ("mla r3, r3, fp, r4");
    0x08009658 strb r2, [r1, 0xa0]                                       |     *((r1 + 0xa0)) = r2;
    0x0800965c strb r2, [r3, 0xa0]                                       |     *((r3 + 0xa0)) = r2;
                                                                         | label_59:
    0x08009660 ldrb r1, [r5, 0xd]                                        |     r1 = *((r5 + 0xd));
    0x08009664 tst r1, 0x10                                              |     
                                                                         |     if ((r1 & 0x10) != 0) {
    0x08009668 ldrne r3, [r7, 0x94]                                      |         r3 = *((r7 + 0x94));
                                                                         |         goto label_60;
                                                                         |     }
                                                                         |     if ((r1 & 0x10) != 0) {
                                                                         | label_60:
    0x0800966c bne 0x80091fc                                             |         goto label_18;
                                                                         |     }
    0x08009670 b 0x8008cb0                                               |     goto label_19;
                                                                         | label_34:
    0x08009674 mov r3, 2                                                 |     r3 = 2;
    0x08009678 str r3, [sp, 0xc]                                         |     var_ch = r3;
    0x0800967c b 0x8008a24                                               |     goto label_2;
                                                                         | label_46:
    0x08009680 ldr r1, [sp, 8]                                           |     r1 = var_8h;
    0x08009684 mov r2, r6                                                |     r2 = r6;
    0x08009688 mov r0, r4                                                |     r0 = r4;
    0x0800968c stmdaeq r0, {r2, sb, sl, fp, ip}                          |     __asm ("stmdaeq r0, {r2, sb, sl, fp, ip}");
    0x08009690 mov r0, 1                                                 |     r0 = 1;
    0x08009694 b 0x8008e34                                               |     goto label_20;
                                                                         | label_50:
    0x080097c0 adds r3, r3, r1                                           |     r3 += r1;
                                                                         |     if (r3 != r3) {
    0x080097c4 bne 0x80092fc                                             |         goto label_21;
                                                                         |     }
                                                                         | label_51:
    0x080097c8 udf 0x12                                                  |     __asm ("udf 0x12");
                                                                         | label_52:
    0x08009820 ldr r1, [r3]                                              |     r1 = *(r3);
    0x08009824 movw r2, 0x101                                            |     
    0x08009828 movt r2, 0xa08                                            |     r2 = 0xa080101;
    0x0800982c cmp r1, r2                                                |     
                                                                         |     if (r1 != r2) {
    0x08009830 bne 0x800930c                                             |         goto label_22;
                                                                         |     }
    0x08009834 b 0x8008b74                                               |     goto label_9;
                                                                         | label_58:
    0x08009838 mov r2, 0x14                                              |     r2 = 0x14;
    0x0800983c ldr r0, [sp, 0x30]                                        |     r0 = var_30h;
    0x08009840 ldr r3, [sp, 0x28]                                        |     r3 = var_28h;
    0x08009844 mov r1, r7                                                |     r1 = r7;
    0x08009848 mla r2, r2, fp, r4                                        |     __asm ("mla r2, r2, fp, r4");
    0x0800984c cmp r0, 1                                                 |     
    0x08009850 str r3, [sl, 0x94]                                        |     *((sl + 0x94)) = r3;
    0x08009854 str r3, [sl, 0x90]                                        |     *((sl + 0x90)) = r3;
                                                                         |     if (r0 >= 1) {
    0x08009858 movlo r0, 1                                               |         r0 = 1;
                                                                         |     }
    0x0800985c ldr r3, [sp, 0x3c]                                        |     r3 = var_3ch;
    0x08009860 str r0, [r2, 0x98]                                        |     *((r2 + 0x98)) = r0;
    0x08009864 mov r2, r5                                                |     r2 = r5;
    0x08009868 mov r0, r6                                                |     r0 = r6;
    0x0800986c bl 0x8008640                                              |     tcp_options ();
    0x08009870 b 0x80095c8                                               |     goto label_23;
                                                                         | label_57:
    0x08009918 ldrb r2, [r4, 0xb9]                                       |     r2 = *((r4 + 0xb9));
    0x0800991c cmp fp, r2                                                |     
    0x08009920 beq 0x80099d8                                             |     
                                                                         |     while (r1 != r2) {
                                                                         | label_25:
    0x08009924 ldr r2, [sp, 0x14]                                        |         r2 = var_14h;
    0x08009928 mov r1, 0                                                 |         r1 = 0;
    0x0800992c str r2, [r4, 0xbc]                                        |         *((r4 + 0xbc)) = r2;
    0x08009930 ldr r2, [sp, 0x28]                                        |         r2 = var_28h;
    0x08009934 str r2, [r4, 0xc4]                                        |         *((r4 + 0xc4)) = r2;
    0x08009938 ldrh r2, [sp, 0x46]                                       |         r2 = var_46h;
    0x0800993c str sl, [r4, 0xc0]                                        |         *((r4 + 0xc0)) = sl;
    0x08009940 strh r2, [r4, 0xc8]                                       |         *((r4 + 0xc8)) = r2;
    0x08009944 strb r1, [r4, 0xba]                                       |         *((r4 + 0xba)) = r1;
    0x08009948 b 0x8008ccc                                               |         goto label_15;
                                                                         | label_55:
    0x080099c4 ldr r1, [r2, 0x9c]                                        |         r1 = *((r2 + 0x9c));
    0x080099c8 sub r1, r1, sl                                            |         r1 -= sl;
    0x080099cc cmp r1, 0                                                 |         
                                                                         |         if (r1 >= 0) {
    0x080099d0 strlt sl, [r2, 0x9c]                                      |             *((r2 + 0x9c)) = sl;
                                                                         |         }
    0x080099d4 b 0x80094f8                                               |         goto label_24;
    0x080099d8 ldr r2, [r4, 0xbc]                                        |         r2 = *((r4 + 0xbc));
    0x080099dc ldr r1, [sp, 0x14]                                        |         r1 = var_14h;
    0x080099e0 cmp r1, r2                                                |         
    0x080099e4 bne 0x8009924                                             |         
                                                                         |     }
    0x080099e8 ldr r2, [r4, 0xc0]                                        |     r2 = *((r4 + 0xc0));
    0x080099ec cmp sl, r2                                                |     
                                                                         |     if (sl != r2) {
    0x080099f0 bne 0x8009924                                             |         goto label_25;
                                                                         |     }
    0x080099f4 ldr r2, [r4, 0xc4]                                        |     r2 = *((r4 + 0xc4));
    0x080099f8 ldr r1, [sp, 0x28]                                        |     r1 = var_28h;
    0x080099fc cmp r1, r2                                                |     
                                                                         |     if (r1 != r2) {
    0x08009a00 bne 0x8009924                                             |         goto label_25;
                                                                         |     }
    0x08009a04 ldrh r2, [r4, 0xc8]                                       |     r2 = *((r4 + 0xc8));
    0x08009a08 ldr r1, [sp, 0x30]                                        |     r1 = var_30h;
    0x08009a0c cmp r2, r1                                                |     
                                                                         |     if (r2 != r1) {
    0x08009a10 bne 0x8009924                                             |         goto label_25;
                                                                         |     }
    0x08009a14 ldrb r1, [r4, 0xba]                                       |     r1 = *((r4 + 0xba));
    0x08009a18 add r1, r1, 1                                             |     r1++;
    0x08009a1c uxtb r1, r1                                               |     r1 = (int8_t) r1;
    0x08009a20 strb r1, [r4, 0xba]                                       |     *((r4 + 0xba)) = r1;
    0x08009a24 b 0x8008ccc                                               |     goto label_15;
                                                                         | label_31:
    0x08009b8c stmdaeq r0, {r2, r4, r6, r8, sp, lr, pc}                  |     __asm ("stmdaeq r0, {r2, r4, r6, r8, sp, lr, pc}");
    0x08009b90 stmdaeq r0, {r2, r4, r6, r8, sp, lr, pc}                  |     __asm ("stmdaeq r0, {r2, r4, r6, r8, sp, lr, pc}");
    0x08009b94 ldrb r2, [r8, 4]                                          |     r2 = *((r8 + 4));
    0x08009b98 mov r0, r6                                                |     r0 = r6;
    0x08009b9c ldr r1, [r8, 0x14]                                        |     r1 = *((r8 + 0x14));
    0x08009ba0 b 0x80093fc                                               |     goto label_26;
                                                                         | label_42:
    0x08009ba4 cmp r2, 0                                                 |     
                                                                         |     if (r2 >= 0) {
    0x08009ba8 bge 0x8009c44                                             |         goto label_61;
                                                                         |     }
    0x08009bac cmp ip, 0                                                 |     
                                                                         |     if (ip == 0) {
    0x08009bb0 beq 0x8009c50                                             |         goto label_62;
                                                                         |     }
    0x08009bb4 ldr r2, [sp, 0x10]                                        |     r2 = var_10h;
    0x08009bb8 mla r3, r3, r2, r4                                        |     __asm ("mla r3, r3, r2, r4");
    0x08009bbc ldr r2, [sp, 0x2c]                                        |     r2 = var_2ch;
    0x08009bc0 ldr r3, [r3, 0x90]                                        |     r3 = *((r3 + 0x90));
    0x08009bc4 sub r2, r2, r3                                            |     r2 -= r3;
    0x08009bc8 cmp r2, 1                                                 |     
                                                                         |     if (r2 >= 1) {
    0x08009bcc bpl 0x8009c5c                                             |         goto label_63;
                                                                         |     }
    0x08009bd0 ldr r2, [sp, 0x2c]                                        |     r2 = var_2ch;
    0x08009bd4 ldr r0, [r1, 0x98]                                        |     r0 = *((r1 + 0x98));
    0x08009bd8 mvn r1, r2                                                |     r1 = ~r2;
    0x08009bdc mov r2, 0x1d0                                             |     
    0x08009be0 movt r2, 1                                                |     r2 = 0x101d0;
    0x08009be4 cmp r0, r2                                                |     
                                                                         |     if (r0 >= r2) {
    0x08009be8 sublo r3, r3, r2                                          |         r3 -= r2;
                                                                         |     }
                                                                         |     if (r0 < r2) {
    0x08009bec subhs r3, r3, r0                                          |         r3 -= r0;
                                                                         |     }
    0x08009bf0 cmn r1, r3                                                |     
    0x08009bf4 stmdaeq r0, {r4, r5, r6, r7, sp, lr, pc}                  |     __asm ("stmdaeq r0, {r4, r5, r6, r7, sp, lr, pc}");
    0x08009bf8 stmdaeq r0, {r4, r5, r6, r7, sp, lr, pc}                  |     __asm ("stmdaeq r0, {r4, r5, r6, r7, sp, lr, pc}");
    0x08009bfc stmdaeq r0, {r2, r3, r5, r6, r7, sp, lr, pc}              |     __asm ("stmdaeq r0, {r2, r3, r5, r6, r7, sp, lr, pc}");
    0x08009c00 stmdaeq r0, {r2, r3, r5, r6, r7, sp, lr, pc}              |     __asm ("stmdaeq r0, {r2, r3, r5, r6, r7, sp, lr, pc}");
    0x08009c04 movpl r3, r2                                              |     r3 = r2;
                                                                         |     while (1) {
                                                                         | label_27:
    0x08009c08 mov r1, r4                                                |         r1 = r4;
    0x08009c0c mov r0, r6                                                |         r0 = r6;
    0x08009c10 stmdaeq r0, {r6, r8, sp, lr, pc}                          |         __asm ("stmdaeq r0, {r6, r8, sp, lr, pc}");
    0x08009c14 stmdaeq r0, {r6, r8, sp, lr, pc}                          |         __asm ("stmdaeq r0, {r6, r8, sp, lr, pc}");
    0x08009c18 stmdaeq r0, {r2, r3, r4, r5, sb, lr, pc}                  |         __asm ("stmdaeq r0, {r2, r3, r4, r5, sb, lr, pc}");
    0x08009c1c ldr r0, [pc, 0x60]                                        |         r0 = .text;
    0x08009c20 movw r1, 0x201                                            |         r1 = 0x201;
    0x08009c24 stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}                  |         __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x08009c28 mvn r0, 0                                                 |         r0 = ~0;
    0x08009c2c b 0x8008e34                                               |         goto label_20;
                                                                         | label_29:
    0x08009c30 stmdaeq r0, {r2, r3, r5, r8, sp, lr, pc}                  |         __asm ("stmdaeq r0, {r2, r3, r5, r8, sp, lr, pc}");
    0x08009c34 stmdaeq r0, {r2, r3, r5, r8, sp, lr, pc}                  |         __asm ("stmdaeq r0, {r2, r3, r5, r8, sp, lr, pc}");
    0x08009c38 ldrb r2, [r8, 4]                                          |         r2 = *((r8 + 4));
    0x08009c3c mov r0, r6                                                |         r0 = r6;
    0x08009c40 b 0x80093fc                                               |         goto label_26;
                                                                         | label_61:
    0x08009c44 stmdaeq r0, {r2, r4, r5, sp, lr, pc}                      |         __asm ("stmdaeq r0, {r2, r4, r5, sp, lr, pc}");
    0x08009c48 stmdaeq r0, {r2, r4, r5, sp, lr, pc}                      |         __asm ("stmdaeq r0, {r2, r4, r5, sp, lr, pc}");
    0x08009c4c b 0x8009c08                                               |         
                                                                         |     }
                                                                         | label_62:
    0x08009c50 stmdaeq r0, {r2, r4, r5, r6, sp, lr, pc}                  |     __asm ("stmdaeq r0, {r2, r4, r5, r6, sp, lr, pc}");
    0x08009c54 stmdaeq r0, {r2, r4, r5, r6, sp, lr, pc}                  |     __asm ("stmdaeq r0, {r2, r4, r5, r6, sp, lr, pc}");
    0x08009c58 b 0x8009c08                                               |     goto label_27;
                                                                         | label_63:
    0x08009c5c stmdaeq r0, {r2, r4, r5, r7, sp, lr, pc}                  |     __asm ("stmdaeq r0, {r2, r4, r5, r7, sp, lr, pc}");
    0x08009c60 stmdaeq r0, {r2, r4, r5, r7, sp, lr, pc}                  |     __asm ("stmdaeq r0, {r2, r4, r5, r7, sp, lr, pc}");
    0x08009c64 b 0x8009c08                                               |     goto label_27;
                                                                         | }
    ; 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/netfilter/nf_conntrack.ko @ 0x80056d0 */
                                                                         | #include <stdint.h>
                                                                         |  
                                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                         |  
    ; (fcn) sym.nf_ct_expect_iterate_destroy ()                          | void nf_ct_expect_iterate_destroy (int32_t arg1, int32_t arg2) {
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
    0x080056d0 push {r4, r5, r6, r7, r8, sb, sl, lr}                     |     
    0x080056d4 mov r3, sp                                                |     r3 = sp;
    0x080056d8 bic r2, r3, 0x1fc0                                        |     r2 = BIT_MASK (r3, 0x1fc0);
    0x080056dc bic r2, r2, 0x3f                                          |     r2 = BIT_MASK (r2, 0x3f);
    0x080056e0 ldr r3, [r2, 4]                                           |     r3 = *((r2 + 4));
    0x080056e4 add r3, r3, 0x200                                         |     r3 += 0x200;
    0x080056e8 add r3, r3, 1                                             |     r3++;
    0x080056ec str r3, [r2, 4]                                           |     *((r2 + 4)) = r3;
    0x080056f0 stmdaeq r0, {r3, r4, r5, sb, sl, fp, sp, lr, pc}          |     __asm ("stmdaeq r0, {r3, r4, r5, sb, sl, fp, sp, lr, pc}");
    0x080056f4 stmdaeq r0, {r3, r4, r5, sb, sl, fp, sp, lr, pc}          |     __asm ("stmdaeq r0, {r3, r4, r5, sb, sl, fp, sp, lr, pc}");
    0x080056f8 ldr r3, [sb]                                              |     r3 = *(sb);
    0x080056fc cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x08005700 beq 0x8005794                                             |         goto label_3;
                                                                         |     }
    0x08005704 mov r6, r0                                                |     r6 = r0;
    0x08005708 mov r7, r1                                                |     r7 = r1;
    0x0800570c mov r8, 0                                                 |     r8 = 0;
                                                                         | label_2:
    0x08005710 ldr r3, [sb, 4]                                           |     r3 = *((sb + 4));
    0x08005714 ldr r4, [r3, r8, lsl 2]                                   |     offset_0 = r8 << 2;
                                                                         |     r4 = *((r3 + offset_0));
    0x08005718 cmp r4, 0                                                 |     
                                                                         |     if (r4 == 0) {
    0x0800571c beq 0x8005784                                             |         goto label_4;
                                                                         |     }
    0x08005720 subs r4, r4, 8                                            |     r4 -= 8;
                                                                         |     if (r4 != r4) {
    0x08005724 bne 0x800573c                                             |         goto label_5;
                                                                         |     }
    0x08005728 b 0x8005784                                               |     goto label_4;
                                                                         |     do {
                                                                         | label_0:
    0x0800572c cmp r5, 0                                                 |         
                                                                         |         if (r5 == 0) {
    0x08005730 beq 0x8005784                                             |             goto label_4;
                                                                         |         }
                                                                         | label_1:
    0x08005734 subs r4, r5, 8                                            |         r4 = r5 - 8;
                                                                         |         if (r4 == r5) {
    0x08005738 beq 0x8005784                                             |             goto label_4;
                                                                         |         }
                                                                         | label_5:
    0x0800573c mov r1, r7                                                |         r1 = r7;
    0x08005740 mov r0, r4                                                |         r0 = r4;
    0x08005744 ldr r5, [r4, 8]                                           |         r5 = *((r4 + 8));
    0x08005748 blx r6                                                    |         r0 = uint32_t (*r6)(uint32_t, uint32_t) (r0, r1);
    0x0800574c cmp r0, 0                                                 |         
    0x08005750 beq 0x800572c                                             |         
                                                                         |     } while (r0 == 0);
    0x08005754 add r0, r4, 0x58                                          |     r0 = r4 + 0x58;
    0x08005758 stmdaeq r1, {r3, r6, r7, r8, sl, fp, lr, pc}              |     __asm ("stmdaeq r1, {r3, r6, r7, r8, sl, fp, lr, pc}");
    0x0800575c cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x08005760 beq 0x800572c                                             |         goto label_0;
                                                                         |     }
    0x08005764 mov r2, 0                                                 |     r2 = 0;
    0x08005768 mov r0, r4                                                |     r0 = r4;
    0x0800576c mov r1, r2                                                |     r1 = r2;
    0x08005770 stmdaeq r0, {r3, r4, r5, r8, sl, ip, lr}                  |     __asm ("stmdaeq r0, {r3, r4, r5, r8, sl, ip, lr}");
    0x08005774 mov r0, r4                                                |     r0 = r4;
    0x08005778 stmdaeq r0, {r2, r3, r5, sb, ip, lr}                      |     __asm ("stmdaeq r0, {r2, r3, r5, sb, ip, lr}");
    0x0800577c cmp r5, 0                                                 |     
                                                                         |     if (r5 != 0) {
    0x08005780 bne 0x8005734                                             |         goto label_1;
                                                                         |     }
                                                                         | label_4:
    0x08005784 ldr r3, [sb]                                              |     r3 = *(sb);
    0x08005788 add r8, r8, 1                                             |     r8++;
    0x0800578c cmp r3, r8                                                |     
                                                                         |     if (r3 > r8) {
    0x08005790 bhi 0x8005710                                             |         goto label_2;
                                                                         |     }
                                                                         | label_3:
    0x08005794 pop {r4, r5, r6, r7, r8, sb, sl, lr}                      |     
    0x08005798 movw r1, 0x201                                            |     r1 = 0x201;
    0x0800579c ldr r0, [pc]                                              |     r0 = *(0x800579c);
    0x080057a0 stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}                  |     __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x080057a4 stmdaeq r0, {r4, r5, r6}                                  |     __asm ("stmdaeq r0, {r4, r5, r6}");
                                                                         | }
    ; 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/netfilter/nf_conntrack.ko @ 0x80057a8 */
                                                                         | #include <stdint.h>
                                                                         |  
                                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                         |  
    ; (fcn) sym.nf_ct_expect_iterate_net ()                              | void nf_ct_expect_iterate_net (int32_t arg_30h, int32_t arg1, int32_t arg2) {
                                                                         |     int32_t var_4h;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
    0x080057a8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}                 |     
    0x080057ac mov r7, r2                                                |     r7 = r2;
    0x080057b0 sub sp, sp, 0xc                                           |     
    0x080057b4 str r3, [sp, 4]                                           |     var_4h = r3;
    0x080057b8 mov r3, sp                                                |     r3 = sp;
    0x080057bc bic r2, r3, 0x1fc0                                        |     r2 = BIT_MASK (r3, 0x1fc0);
    0x080057c0 ldr fp, [sp, 0x30]                                        |     fp = *(arg_30h);
    0x080057c4 bic r2, r2, 0x3f                                          |     r2 = BIT_MASK (r2, 0x3f);
    0x080057c8 ldr r3, [r2, 4]                                           |     r3 = *((r2 + 4));
    0x080057cc add r3, r3, 0x200                                         |     r3 += 0x200;
    0x080057d0 add r3, r3, 1                                             |     r3++;
    0x080057d4 str r3, [r2, 4]                                           |     *((r2 + 4)) = r3;
    0x080057d8 stmdaeq r0, {r3, r4, r5, sb, sl, fp, sp, lr, pc}          |     __asm ("stmdaeq r0, {r3, r4, r5, sb, sl, fp, sp, lr, pc}");
    0x080057dc stmdaeq r0, {r3, r4, r5, sb, sl, fp, sp, lr, pc}          |     __asm ("stmdaeq r0, {r3, r4, r5, sb, sl, fp, sp, lr, pc}");
    0x080057e0 ldr r3, [sb]                                              |     r3 = *(sb);
    0x080057e4 cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x080057e8 beq 0x800588c                                             |         goto label_3;
                                                                         |     }
    0x080057ec mov r5, r0                                                |     r5 = r0;
    0x080057f0 mov r6, r1                                                |     r6 = r1;
    0x080057f4 mov r8, 0                                                 |     r8 = 0;
                                                                         | label_2:
    0x080057f8 ldr r3, [sb, 4]                                           |     r3 = *((sb + 4));
    0x080057fc ldr r4, [r3, r8, lsl 2]                                   |     offset_0 = r8 << 2;
                                                                         |     r4 = *((r3 + offset_0));
    0x08005800 cmp r4, 0                                                 |     
                                                                         |     if (r4 == 0) {
    0x08005804 beq 0x800587c                                             |         goto label_4;
                                                                         |     }
    0x08005808 subs r4, r4, 8                                            |     r4 -= 8;
                                                                         |     if (r4 != r4) {
    0x0800580c bne 0x8005824                                             |         goto label_5;
                                                                         |     }
    0x08005810 b 0x800587c                                               |     goto label_4;
                                                                         |     do {
                                                                         | label_0:
    0x08005814 cmp sl, 0                                                 |         
                                                                         |         if (sl == 0) {
    0x08005818 beq 0x800587c                                             |             goto label_4;
                                                                         |         }
                                                                         | label_1:
    0x0800581c subs r4, sl, 8                                            |         r4 = sl - 8;
                                                                         |         if (r4 == sl) {
    0x08005820 beq 0x800587c                                             |             goto label_4;
                                                                         |         }
                                                                         | label_5:
    0x08005824 ldr r2, [r4, 0x54]                                        |         r2 = *((r4 + 0x54));
    0x08005828 ldr sl, [r4, 8]                                           |         sl = *((r4 + 8));
    0x0800582c ldr r2, [r2, 0x74]                                        |         r2 = *((r2 + 0x74));
    0x08005830 cmp r5, r2                                                |         
    0x08005834 bne 0x8005814                                             |         
                                                                         |     } while (r5 != r2);
    0x08005838 mov r1, r7                                                |     r1 = r7;
    0x0800583c mov r0, r4                                                |     r0 = r4;
    0x08005840 blx r6                                                    |     r0 = uint32_t (*r6)(uint32_t, uint32_t) (r0, r1);
    0x08005844 cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x08005848 beq 0x8005814                                             |         goto label_0;
                                                                         |     }
    0x0800584c add r0, r4, 0x58                                          |     r0 = r4 + 0x58;
    0x08005850 stmdaeq r1, {r3, r6, r7, r8, sl, fp, lr, pc}              |     __asm ("stmdaeq r1, {r3, r6, r7, r8, sl, fp, lr, pc}");
    0x08005854 cmp r0, 0                                                 |     
                                                                         |     if (r0 == 0) {
    0x08005858 beq 0x8005814                                             |         goto label_0;
                                                                         |     }
    0x0800585c ldr r1, [sp, 4]                                           |     r1 = var_4h;
    0x08005860 mov r2, fp                                                |     r2 = fp;
    0x08005864 mov r0, r4                                                |     r0 = r4;
    0x08005868 stmdaeq r0, {r3, r4, r5, r8, sl, ip, lr}                  |     __asm ("stmdaeq r0, {r3, r4, r5, r8, sl, ip, lr}");
    0x0800586c mov r0, r4                                                |     r0 = r4;
    0x08005870 stmdaeq r0, {r2, r3, r5, sb, ip, lr}                      |     __asm ("stmdaeq r0, {r2, r3, r5, sb, ip, lr}");
    0x08005874 cmp sl, 0                                                 |     
                                                                         |     if (sl != 0) {
    0x08005878 bne 0x800581c                                             |         goto label_1;
                                                                         |     }
                                                                         | label_4:
    0x0800587c ldr r3, [sb]                                              |     r3 = *(sb);
    0x08005880 add r8, r8, 1                                             |     r8++;
    0x08005884 cmp r3, r8                                                |     
                                                                         |     if (r3 > r8) {
    0x08005888 bhi 0x80057f8                                             |         goto label_2;
                                                                         |     }
                                                                         | label_3:
    0x0800588c ldr r0, [pc, 0xc]                                         |     r0 = *(0x800589c);
    0x08005890 movw r1, 0x201                                            |     r1 = 0x201;
    0x08005894 add sp, sp, 0xc                                           |     
    0x08005898 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}                  |     
    0x0800589c stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}                  |     __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x080058a0 stmdaeq r0, {r4, r5, r6}                                  |     __asm ("stmdaeq r0, {r4, r5, r6}");
                                                                         | }
    ; 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/netfilter/nf_conntrack.ko @ 0x8005680 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.nf_ct_expectation_timed_out ()                   | void nf_ct_expectation_timed_out (int32_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     r0 = arg1;
    0x08005680 push {r4, r5, r6, lr}                             |     
    0x08005684 movw r5, 0x201                                    |     r5 = 0x201;
    0x08005688 sub r4, r0, 0x58                                  |     r4 = r0 - 0x58;
    0x0800568c mov r3, sp                                        |     r3 = sp;
    0x08005690 bic r3, r3, 0x1fc0                                |     r3 = BIT_MASK (r3, 0x1fc0);
    0x08005694 bic r3, r3, 0x3f                                  |     r3 = BIT_MASK (r3, 0x3f);
    0x08005698 ldr r2, [r3, 4]                                   |     r2 = *((r3 + 4));
    0x0800569c add r2, r2, r5                                    |     r2 += r5;
    0x080056a0 str r2, [r3, 4]                                   |     *((r3 + 4)) = r2;
    0x080056a4 mov r2, 0                                         |     r2 = 0;
    0x080056a8 mov r0, r4                                        |     r0 = r4;
    0x080056ac mov r1, r2                                        |     r1 = r2;
    0x080056b0 stmdaeq r0, {r3, r4, r5, r8, sl, ip, lr}          |     __asm ("stmdaeq r0, {r3, r4, r5, r8, sl, ip, lr}");
    0x080056b4 ldr r0, [pc, 0x10]                                |     r0 = *(0x80056c8);
    0x080056b8 mov r1, r5                                        |     r1 = r5;
    0x080056bc stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}          |     __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x080056c0 mov r0, r4                                        |     r0 = r4;
    0x080056c4 pop {r4, r5, r6, lr}                              |     
    0x080056c8 stmdaeq r0, {r2, r3, r5, sb, ip, lr}              |     __asm ("stmdaeq r0, {r2, r3, r5, sb, ip, lr}");
    0x080056cc stmdaeq r0, {r4, r5, r6}                          |     __asm ("stmdaeq r0, {r4, r5, r6}");
                                                                 | }
    ; 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/netfilter/nf_conntrack.ko @ 0x800660c */
                                                                             | #include <stdint.h>
                                                                             |  
                                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                             |  
    ; (fcn) sym.nf_ct_helper_expectfn_register ()                            | void nf_ct_helper_expectfn_register (int32_t arg1) {
                                                                             |     r0 = arg1;
    0x0800660c mov r3, sp                                                    |     r3 = sp;
    0x08006610 movw r1, 0x201                                                |     r1 = 0x201;
    0x08006614 bic r2, r3, 0x1fc0                                            |     r2 = BIT_MASK (r3, 0x1fc0);
    0x08006618 mov r3, r0                                                    |     r3 = r0;
    0x0800661c bic r2, r2, 0x3f                                              |     r2 = BIT_MASK (r2, 0x3f);
    0x08006620 ldr r0, [r2, 4]                                               |     r0 = *((r2 + 4));
    0x08006624 add r0, r0, r1                                                |     r0 += r1;
    0x08006628 str r0, [r2, 4]                                               |     *((r2 + 4)) = r0;
    0x0800662c stmdaeq r0, {r3, r4, r5, r6, r7, sl, fp, sp, lr, pc}          |     __asm ("stmdaeq r0, {r3, r4, r5, r6, r7, sl, fp, sp, lr, pc}");
    0x08006630 stmdaeq r0, {r3, r4, r5, r6, r7, sl, fp, sp, lr, pc}          |     __asm ("stmdaeq r0, {r3, r4, r5, r6, r7, sl, fp, sp, lr, pc}");
    0x08006634 str r2, [r3, 4]                                               |     *((r3 + 4)) = r2;
    0x08006638 ldr ip, [r2]                                                  |     ip = *(r2);
    0x0800663c str ip, [r3]                                                  |     *(r3) = ip;
    0x08006640 ldr r0, [pc, 8]                                               |     r0 = sym.__nf_conntrack_hash_insert;
    0x08006644 str r3, [ip, 4]                                               |     *((ip + 4)) = r3;
    0x08006648 str r3, [r2]                                                  |     *(r2) = r3;
    0x0800664c stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}                      |     __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x08006650 stmdaeq r0, {r4, r5, r6}                                      |     __asm ("stmdaeq r0, {r4, r5, r6}");
                                                                             | }
    ; 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/netfilter/nf_conntrack.ko @ 0x8006654 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.nf_ct_helper_expectfn_unregister ()              | void nf_ct_helper_expectfn_unregister (int32_t arg1) {
                                                                 |     r0 = arg1;
    0x08006654 mov r3, sp                                        |     r3 = sp;
    0x08006658 movw r1, 0x201                                    |     r1 = 0x201;
    0x0800665c bic r2, r3, 0x1fc0                                |     r2 = BIT_MASK (r3, 0x1fc0);
    0x08006660 mov r3, r0                                        |     r3 = r0;
    0x08006664 bic r2, r2, 0x3f                                  |     r2 = BIT_MASK (r2, 0x3f);
    0x08006668 ldr r0, [r2, 4]                                   |     r0 = *((r2 + 4));
    0x0800666c add r0, r0, r1                                    |     r0 += r1;
    0x08006670 str r0, [r2, 4]                                   |     *((r2 + 4)) = r0;
    0x08006674 ldm r3, {r0, r2}                                  |     r0 = *(r3);
                                                                 |     r2 = *((r3 + 4));
    0x08006678 str r2, [r0, 4]                                   |     *((r0 + 4)) = r2;
    0x0800667c movw ip, 0x122                                    |     ip = 0x122;
    0x08006680 str r0, [r2]                                      |     *(r2) = r0;
    0x08006684 ldr r0, [pc, 4]                                   |     r0 = sym.__nf_conntrack_hash_insert;
    0x08006688 str ip, [r3, 4]                                   |     *((r3 + 4)) = ip;
    0x0800668c stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}          |     __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x08006690 stmdaeq r0, {r4, r5, r6}                          |     __asm ("stmdaeq r0, {r4, r5, r6}");
                                                                 | }
    ; 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/netfilter/nf_conntrack.ko @ 0x80058a4 */
                                                                     | #include <stdint.h>
                                                                     |  
                                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                     |  
    ; (fcn) sym.nf_ct_remove_expectations ()                         | void nf_ct_remove_expectations (int32_t arg1) {
                                                                     |     r0 = arg1;
    0x080058a4 ldr r3, [r0, 0x8c]                                    |     r3 = *((r0 + 0x8c));
    0x080058a8 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x080058ac bxeq lr                                               |         return;
                                                                     |     }
    0x080058b0 ldrb r2, [r3]                                         |     r2 = *(r3);
    0x080058b4 cmp r2, 0                                             |     
                                                                     |     if (r2 != 0) {
    0x080058b8 bxeq lr                                               |         return;
                                                                     |     }
    0x080058bc adds r3, r3, r2                                       |     r3 += r2;
                                                                     |     if (r3 != r3) {
    0x080058c0 bxeq lr                                               |         return;
                                                                     |     }
    0x080058c4 push {r4, r5, r6, lr}                                 |     
    0x080058c8 mov r2, sp                                            |     r2 = sp;
    0x080058cc bic r1, r2, 0x1fc0                                    |     r1 = BIT_MASK (r2, 0x1fc0);
    0x080058d0 bic r1, r1, 0x3f                                      |     r1 = BIT_MASK (r1, 0x3f);
    0x080058d4 ldr r2, [r1, 4]                                       |     r2 = *((r1 + 4));
    0x080058d8 add r2, r2, 0x200                                     |     r2 += 0x200;
    0x080058dc add r2, r2, 1                                         |     r2++;
    0x080058e0 str r2, [r1, 4]                                       |     *((r1 + 4)) = r2;
    0x080058e4 ldr r4, [r3, 4]                                       |     r4 = *((r3 + 4));
                                                                     |     do {
    0x080058e8 cmp r4, 0                                             |         
                                                                     |         if (r4 == 0) {
    0x080058ec beq 0x8005928                                         |             goto label_1;
                                                                     |         }
                                                                     | label_0:
    0x080058f0 mov r5, r4                                            |         r5 = r4;
    0x080058f4 ldr r4, [r4]                                          |         r4 = *(r4);
    0x080058f8 add r0, r5, 0x58                                      |         r0 = r5 + 0x58;
    0x080058fc stmdaeq r1, {r3, r6, r7, r8, sl, fp, lr, pc}          |         __asm ("stmdaeq r1, {r3, r6, r7, r8, sl, fp, lr, pc}");
    0x08005900 cmp r0, 0                                             |         
    0x08005904 beq 0x80058e8                                         |         
                                                                     |     } while (r0 == 0);
    0x08005908 mov r2, 0                                             |     r2 = 0;
    0x0800590c mov r0, r5                                            |     r0 = r5;
    0x08005910 mov r1, r2                                            |     r1 = r2;
    0x08005914 stmdaeq r0, {r3, r4, r5, r8, sl, ip, lr}              |     __asm ("stmdaeq r0, {r3, r4, r5, r8, sl, ip, lr}");
    0x08005918 mov r0, r5                                            |     r0 = r5;
    0x0800591c stmdaeq r0, {r2, r3, r5, sb, ip, lr}                  |     __asm ("stmdaeq r0, {r2, r3, r5, sb, ip, lr}");
    0x08005920 cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x08005924 bne 0x80058f0                                         |         goto label_0;
                                                                     |     }
                                                                     | label_1:
    0x08005928 pop {r4, r5, r6, lr}                                  |     
    0x0800592c movw r1, 0x201                                        |     r1 = 0x201;
    0x08005930 ldr r0, [pc]                                          |     r0 = *(0x8005930);
    0x08005934 stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}              |     __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x08005938 stmdaeq r0, {r4, r5, r6}                              |     __asm ("stmdaeq r0, {r4, r5, r6}");
                                                                     | }
    ; 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/netfilter/nf_conntrack.ko @ 0x8005af4 */
                                                                     | #include <stdint.h>
                                                                     |  
                                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                     |  
    ; (fcn) sym.nf_ct_unexpect_related ()                            | void nf_ct_unexpect_related (uint32_t arg1) {
                                                                     |     int32_t var_ch;
                                                                     |     int32_t var_ch_2;
                                                                     |     int32_t var_1ch;
                                                                     |     int32_t var_20h;
                                                                     |     int32_t var_24h;
                                                                     |     int32_t var_20h_2;
                                                                     |     int32_t var_24h_2;
                                                                     |     int32_t var_0h;
                                                                     |     r0 = arg1;
    0x08005af4 push {r4, lr}                                         |     
    0x08005af8 mov r4, r0                                            |     r4 = r0;
    0x08005afc mov r3, sp                                            |     r3 = sp;
    0x08005b00 bic r2, r3, 0x1fc0                                    |     r2 = BIT_MASK (r3, 0x1fc0);
    0x08005b04 bic r2, r2, 0x3f                                      |     r2 = BIT_MASK (r2, 0x3f);
    0x08005b08 ldr r3, [r2, 4]                                       |     r3 = *((r2 + 4));
    0x08005b0c add r3, r3, 0x200                                     |     r3 += 0x200;
    0x08005b10 add r3, r3, 1                                         |     r3++;
    0x08005b14 str r3, [r2, 4]                                       |     *((r2 + 4)) = r3;
    0x08005b18 add r0, r0, 0x58                                      |     r0 += 0x58;
    0x08005b1c stmdaeq r1, {r3, r6, r7, r8, sl, fp, lr, pc}          |     __asm ("stmdaeq r1, {r3, r6, r7, r8, sl, fp, lr, pc}");
    0x08005b20 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x08005b24 bne 0x8005b38                                         |         
    0x08005b28 pop {r4, lr}                                          |         
    0x08005b2c movw r1, 0x201                                        |         r1 = 0x201;
    0x08005b30 ldr r0, [pc, 0x28]                                    |         r0 = *(0x8005b5c);
    0x08005b34 stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}              |         __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
                                                                     |     }
    0x08005b38 mov r0, r4                                            |     r0 = r4;
    0x08005b3c mov r2, 0                                             |     r2 = 0;
    0x08005b40 mov r1, r2                                            |     r1 = r2;
    0x08005b44 stmdaeq r0, {r3, r4, r5, r8, sl, ip, lr}              |     __asm ("stmdaeq r0, {r3, r4, r5, r8, sl, ip, lr}");
    0x08005b48 mov r0, r4                                            |     r0 = r4;
    0x08005b4c stmdaeq r0, {r2, r3, r5, sb, ip, lr}                  |     __asm ("stmdaeq r0, {r2, r3, r5, sb, ip, lr}");
    0x08005b50 ldr r0, [pc, 8]                                       |     r0 = sym.__nf_conntrack_hash_insert;
    0x08005b54 pop {r4, lr}                                          |     
    0x08005b58 movw r1, 0x201                                        |     r1 = 0x201;
    0x08005b5c stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}              |     __asm ("stmdaeq r1, {r4, r5, r7, sl, fp, lr, pc}");
    0x08005b60 stmdaeq r0, {r4, r5, r6}                              |     __asm ("stmdaeq r0, {r4, r5, r6}");
                                                                     | }

[*] Function popen used 1 times nf_conntrack.ko