[*] Binary protection state of ext4.ko

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


[*] Function sprintf tear down of ext4.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/fs/ext4/ext4.ko @ 0x8027dd4 */
                                                                                 | #include <stdint.h>
                                                                                 |  
                                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                                 |  
    ; (fcn) sym.__ext4_ioctl ()                                                  | void ext4_ioctl (int32_t arg1, uint32_t arg2) {
                                                                                 |     int32_t var_0h;
                                                                                 |     int32_t var_4h;
                                                                                 |     int32_t var_8h;
                                                                                 |     int32_t var_8h_2;
                                                                                 |     int32_t var_10h;
                                                                                 |     int32_t var_40h;
                                                                                 |     int32_t var_54h;
                                                                                 |     int32_t var_58h;
                                                                                 |     int32_t var_5ch;
                                                                                 |     int32_t var_60h;
                                                                                 |     int32_t var_70h;
                                                                                 |     int32_t var_74h;
                                                                                 |     int32_t var_78h;
                                                                                 |     int32_t var_78h_2;
                                                                                 |     int32_t var_80h;
                                                                                 |     int32_t var_84h;
                                                                                 |     int32_t var_88h;
                                                                                 |     int32_t var_88h_2;
                                                                                 |     int32_t var_90h;
                                                                                 |     int32_t var_90h_2;
                                                                                 |     int32_t var_a4h;
                                                                                 |     r0 = arg1;
                                                                                 |     r1 = arg2;
    0x08027dd4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}                         |     
    0x08027dd8 movw r3, 0x587d                                                   |     
    0x08027ddc movt r3, 0x8004                                                   |     r3 = 0x8004587d;
    0x08027de0 ldr r6, [r0, 0x10]                                                |     r6 = *((r0 + 0x10));
    0x08027de4 sub sp, sp, 0xa4                                                  |     
    0x08027de8 mov r8, r2                                                        |     r8 = r2;
    0x08027dec cmp r1, r3                                                        |     
    0x08027df0 ldr r7, [r6, 0x14]                                                |     r7 = *((r6 + 0x14));
                                                                                 |     if (r1 == r3) {
    0x08027df4 beq 0x8028ebc                                                     |         goto label_22;
                                                                                 |     }
    0x08027df8 mov r5, r0                                                        |     r5 = r0;
                                                                                 |     if (r1 > r3) {
    0x08027dfc bhi 0x8028018                                                     |         goto label_23;
                                                                                 |     }
    0x08027e00 movw r3, 0x6629                                                   |     
    0x08027e04 movt r3, 0x4004                                                   |     r3 = 0x40046629;
    0x08027e08 cmp r1, r3                                                        |     
                                                                                 |     if (r1 == r3) {
    0x08027e0c beq 0x8028e8c                                                     |         goto label_24;
                                                                                 |     }
                                                                                 |     if (r1 < r3) {
    0x08027e10 bls 0x8027e58                                                     |         goto label_25;
                                                                                 |     }
    0x08027e14 movw r3, 0x6614                                                   |     
    0x08027e18 movt r3, 0x4010                                                   |     r3 = 0x40106614;
    0x08027e1c cmp r1, r3                                                        |     
                                                                                 |     if (r1 != r3) {
    0x08027e20 beq 0x8027e48                                                     |         
                                                                                 |         if (r1 < r3) {
    0x08027e24 bls 0x8028500                                                     |             goto label_26;
                                                                                 |         }
    0x08027e28 movw r3, 0x6608                                                   |         
    0x08027e2c movt r3, 0x4028                                                   |         r3 = 0x40286608;
    0x08027e30 cmp r1, r3                                                        |         
                                                                                 |         if (r1 == r3) {
    0x08027e34 beq 0x8028d8c                                                     |             goto label_27;
                                                                                 |         }
    0x08027e38 movw r3, 0x6685                                                   |         
    0x08027e3c movt r3, 0x4080                                                   |         r3 = 0x40806685;
    0x08027e40 cmp r1, r3                                                        |         
                                                                                 |         if (r1 != r3) {
    0x08027e44 bne 0x8028380                                                     |             goto label_28;
                                                                                 |         }
                                                                                 |     }
                                                                                 | label_1:
    0x08027e48 mvn r4, 0x5e                                                      |     r4 = ~0x5e;
                                                                                 |     do {
                                                                                 | label_0:
    0x08027e4c mov r0, r4                                                        |         r0 = r4;
    0x08027e50 add sp, sp, 0xa4                                                  |         
    0x08027e54 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                          |         
                                                                                 | label_25:
    0x08027e58 movw r3, 0x6628                                                   |         r3 = 0x6628;
    0x08027e5c cmp r1, r3                                                        |         
                                                                                 |         if (r1 <= r3) {
    0x08027e60 bhi 0x8027f14                                                     |             
    0x08027e64 movw r3, 0x6608                                                   |             r3 = 0x6608;
    0x08027e68 cmp r1, r3                                                        |             
                                                                                 |             if (r1 >= r3) {
    0x08027e6c bls 0x8027f04                                                     |                 
    0x08027e70 sub r1, r1, 0x6600                                                |                 r1 -= 0x6600;
    0x08027e74 sub r1, r1, 9                                                     |                 r1 -= 9;
    0x08027e78 cmp r1, 0x1f                                                      |                 
                                                                                 |                 if (r1 > 0x1f) {
                                                                                 |                     /* switch table (32 cases) at 0x8027e84 */
    0x08027e7c ldrls pc, [pc, r1, lsl 2]                                         |                     offset_0 = r1 << 2;
                                                                                 |                     pc = *((pc + offset_0));
                                                                                 |                 }
    0x08027e80 b 0x8027f04                                                       |                 
                                                                                 |             }
                                                                                 | label_2:
    0x08027f04 mvn r4, 0x18                                                      |             r4 = ~0x18;
    0x08027f08 mov r0, r4                                                        |             r0 = r4;
    0x08027f0c add sp, sp, 0xa4                                                  |             
    0x08027f10 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                          |             
                                                                                 |         }
    0x08027f14 movw r3, 0x6604                                                   |         
    0x08027f18 movt r3, 0x4004                                                   |         r3 = 0x40046604;
    0x08027f1c cmp r1, r3                                                        |         
                                                                                 |         if (r1 == r3) {
    0x08027f20 beq 0x8028530                                                     |             goto label_29;
                                                                                 |         }
    0x08027f24 movw r3, 0x6607                                                   |         
    0x08027f28 movt r3, 0x4004                                                   |         r3 = 0x40046607;
    0x08027f2c cmp r1, r3                                                        |         
                                                                                 |         if (r1 != r3) {
    0x08027f30 bne 0x8028084                                                     |             goto label_30;
                                                                                 |         }
    0x08027f34 mov r0, r7                                                        |         r0 = r7;
    0x08027f38 stmdaeq r4, {r2, r4, sp}                                          |         __asm ("stmdaeq r4, {r2, r4, sp}");
    0x08027f3c subs r4, r0, 0                                                    |         r4 = r0 - 0;
    0x08027f40 bne 0x8027e4c                                                     |         
                                                                                 |     } while (r4 != r0);
    0x08027f44 mov r3, sp                                                        |     r3 = sp;
    0x08027f48 mov r0, r8                                                        |     r0 = r8;
    0x08027f4c bic r3, r3, 0x1fc0                                                |     r3 = BIT_MASK (r3, 0x1fc0);
    0x08027f50 bic r3, r3, 0x3f                                                  |     r3 = BIT_MASK (r3, 0x3f);
    0x08027f54 mrc p15, 0, ip, c3, c0, 0                                         |     __asm ("mrc p15, 0, ip, c3, c0, 0");
    0x08027f58 ldr r1, [r3, 8]                                                   |     r1 = *((r3 + 8));
    0x08027f5c bic r3, ip, 0xc                                                   |     r3 = BIT_MASK (ip, 0xc);
    0x08027f60 orr r3, r3, 4                                                     |     r3 |= 4;
    0x08027f64 sub r1, r1, 1                                                     |     r1--;
    0x08027f68 mcr p15, 0, r3, c3, c0, 0                                         |     __asm ("mcr p15, 0, r3, c3, c0, 0");
    0x08027f6c isb sy                                                            |     __asm ("isb sy");
    0x08027f70 stmdaeq r8, {r3, sb, fp, ip, sp, lr}                              |     __asm ("stmdaeq r8, {r3, sb, fp, ip, sp, lr}");
    0x08027f74 mcr p15, 0, ip, c3, c0, 0                                         |     __asm ("mcr p15, 0, ip, c3, c0, 0");
    0x08027f78 isb sy                                                            |     __asm ("isb sy");
    0x08027f7c cmp r0, 0                                                         |     
    0x08027f80 mov r6, r2                                                        |     r6 = r2;
                                                                                 |     if (r0 == 0) {
    0x08027f84 mvnne r4, 0xd                                                     |         r4 = ~0xd;
                                                                                 |     }
                                                                                 |     if (r0 == 0) {
    0x08027f88 bne 0x802800c                                                     |         
    0x08027f8c ldr r3, [r7, 0x1f0]                                               |         r3 = *((r7 + 0x1f0));
    0x08027f90 ldr r3, [r3, 0x44]                                                |         r3 = *((r3 + 0x44));
    0x08027f94 ldr r3, [r3, 0x64]                                                |         r3 = *((r3 + 0x64));
    0x08027f98 tst r3, 0x200                                                     |         
                                                                                 |         if ((r3 & 0x200) != 0) {
    0x08027f9c bne 0x8029198                                                     |             goto label_31;
                                                                                 |         }
    0x08027fa0 mov r0, r5                                                        |         r0 = r5;
    0x08027fa4 stmdaeq r8, {r2, r3, sb, fp, ip, sp, lr}                          |         __asm ("stmdaeq r8, {r2, r3, sb, fp, ip, sp, lr}");
    0x08027fa8 subs r4, r0, 0                                                    |         r4 = r0 - 0;
                                                                                 |         if (r4 != r0) {
    0x08027fac bne 0x802800c                                                     |             goto label_6;
                                                                                 |         }
    0x08027fb0 ldr r3, [r7, 0x1f0]                                               |         r3 = *((r7 + 0x1f0));
    0x08027fb4 mov r2, r6                                                        |         r2 = r6;
    0x08027fb8 mov r0, r7                                                        |         r0 = r7;
    0x08027fbc ldr r1, [r3, 0x44]                                                |         r1 = *((r3 + 0x44));
    0x08027fc0 mov r3, r4                                                        |         r3 = r4;
    0x08027fc4 stmdaeq r4, {r3, r7, r8, fp, sp}                                  |         __asm ("stmdaeq r4, {r3, r7, r8, fp, sp}");
    0x08027fc8 ldr r3, [r7, 0x1f0]                                               |         r3 = *((r7 + 0x1f0));
    0x08027fcc mov r6, r0                                                        |         r6 = r0;
    0x08027fd0 ldr r0, [r3, 0x118]                                               |         r0 = *((r3 + 0x118));
    0x08027fd4 cmp r0, 0                                                         |         
                                                                                 |         if (r0 != 0) {
    0x08027fd8 beq 0x8027ffc                                                     |             
    0x08027fdc stmdaeq r8, {r2, r5, r8, fp, ip, sp, lr}                          |             __asm ("stmdaeq r8, {r2, r5, r8, fp, ip, sp, lr}");
    0x08027fe0 ldr r3, [r7, 0x1f0]                                               |             r3 = *((r7 + 0x1f0));
    0x08027fe4 ldr r0, [r3, 0x118]                                               |             r0 = *((r3 + 0x118));
    0x08027fe8 stmdaeq r8, {r3, r5, r8, fp, ip, sp, lr}                          |             __asm ("stmdaeq r8, {r3, r5, r8, fp, ip, sp, lr}");
    0x08027fec ldr r3, [r7, 0x1f0]                                               |             r3 = *((r7 + 0x1f0));
    0x08027ff0 mov r4, r0                                                        |             r4 = r0;
    0x08027ff4 ldr r0, [r3, 0x118]                                               |             r0 = *((r3 + 0x118));
    0x08027ff8 stmdaeq r8, {r2, r3, r5, r8, fp, ip, sp, lr}                      |             __asm ("stmdaeq r8, {r2, r3, r5, r8, fp, ip, sp, lr}");
                                                                                 |         }
    0x08027ffc cmp r6, 0                                                         |         
    0x08028000 mov r0, r5                                                        |         r0 = r5;
                                                                                 |         if (r6 == 0) {
    0x08028004 movne r4, r6                                                      |             r4 = r6;
                                                                                 |         }
    0x08028008 stmdaeq r8, {r4, sb, fp, ip, sp, lr}                              |         __asm ("stmdaeq r8, {r4, sb, fp, ip, sp, lr}");
                                                                                 |     }
                                                                                 | label_6:
    0x0802800c mov r0, r7                                                        |     r0 = r7;
    0x08028010 stmdaeq r4, {r2, r3, r4, r8, sp}                                  |     __asm ("stmdaeq r4, {r2, r3, r4, r8, sp}");
    0x08028014 b 0x8027e4c                                                       |     goto label_0;
                                                                                 | label_23:
    0x08028018 movw r3, 0x6616                                                   |     
    0x0802801c movt r3, 0xc009                                                   |     r3 = 0xc0096616;
    0x08028020 cmp r1, r3                                                        |     
                                                                                 |     if (r1 == r3) {
    0x08028024 beq 0x8027e48                                                     |         goto label_1;
                                                                                 |     }
                                                                                 |     if (r1 < r3) {
    0x08028028 bls 0x8028300                                                     |         goto label_32;
                                                                                 |     }
    0x0802802c movw r3, 0x6619                                                   |     
    0x08028030 movt r3, 0xc040                                                   |     r3 = 0xc0406619;
    0x08028034 cmp r1, r3                                                        |     
                                                                                 |     if (r1 > r3) {
    0x08028038 bhi 0x80282cc                                                     |         goto label_33;
                                                                                 |     }
    0x0802803c movw r3, 0x6617                                                   |     
    0x08028040 movt r3, 0xc040                                                   |     r3 = 0xc0406617;
    0x08028044 cmp r1, r3                                                        |     
                                                                                 |     if (r1 > r3) {
    0x08028048 bhi 0x8027e48                                                     |         goto label_1;
                                                                                 |     }
    0x0802804c movw r3, 0x662a                                                   |     
    0x08028050 movt r3, 0xc020                                                   |     r3 = 0xc020662a;
    0x08028054 cmp r1, r3                                                        |     
                                                                                 |     if (r1 == r3) {
    0x08028058 beq 0x8028c68                                                     |         goto label_34;
                                                                                 |     }
    0x0802805c movw r3, 0x660f                                                   |     
    0x08028060 movt r3, 0xc028                                                   |     r3 = 0xc028660f;
    0x08028064 cmp r1, r3                                                        |     
                                                                                 |     if (r1 != r3) {
    0x08028068 bne 0x8028188                                                     |         goto label_35;
                                                                                 |     }
    0x0802806c ldr r3, [r0, 0x24]                                                |     r3 = *((r0 + 0x24));
    0x08028070 and r3, r3, 3                                                     |     r3 &= 3;
    0x08028074 cmp r3, 3                                                         |     
                                                                                 |     if (r3 == 3) {
    0x08028078 beq 0x8028a14                                                     |         goto label_36;
                                                                                 |     }
                                                                                 | label_5:
    0x0802807c mvn r4, 8                                                         |     r4 = ~8;
    0x08028080 b 0x8027e4c                                                       |     goto label_0;
                                                                                 | label_30:
    0x08028084 movw r3, 0x6602                                                   |     
    0x08028088 movt r3, 0x4004                                                   |     r3 = 0x40046602;
    0x0802808c cmp r1, r3                                                        |     
                                                                                 |     if (r1 != r3) {
    0x08028090 bne 0x8027f04                                                     |         goto label_2;
                                                                                 |     }
    0x08028094 mov r0, r6                                                        |     r0 = r6;
    0x08028098 stmdaeq r8, {r2, r4, sb, fp, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r2, r4, sb, fp, ip, sp, lr}");
    0x0802809c cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x080280a0 beq 0x8028b30                                                     |         goto label_37;
                                                                                 |     }
    0x080280a4 mov r3, sp                                                        |     r3 = sp;
    0x080280a8 mov r0, r8                                                        |     r0 = r8;
    0x080280ac bic r3, r3, 0x1fc0                                                |     r3 = BIT_MASK (r3, 0x1fc0);
    0x080280b0 bic r3, r3, 0x3f                                                  |     r3 = BIT_MASK (r3, 0x3f);
    0x080280b4 mrc p15, 0, ip, c3, c0, 0                                         |     __asm ("mrc p15, 0, ip, c3, c0, 0");
    0x080280b8 ldr r1, [r3, 8]                                                   |     r1 = *((r3 + 8));
    0x080280bc bic r3, ip, 0xc                                                   |     r3 = BIT_MASK (ip, 0xc);
    0x080280c0 orr r3, r3, 4                                                     |     r3 |= 4;
    0x080280c4 sub r1, r1, 1                                                     |     r1--;
    0x080280c8 mcr p15, 0, r3, c3, c0, 0                                         |     __asm ("mcr p15, 0, r3, c3, c0, 0");
    0x080280cc isb sy                                                            |     __asm ("isb sy");
    0x080280d0 stmdaeq r8, {r3, sb, fp, ip, sp, lr}                              |     __asm ("stmdaeq r8, {r3, sb, fp, ip, sp, lr}");
    0x080280d4 mcr p15, 0, ip, c3, c0, 0                                         |     __asm ("mcr p15, 0, ip, c3, c0, 0");
    0x080280d8 isb sy                                                            |     __asm ("isb sy");
    0x080280dc cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x080280e0 bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x080280e4 mov r3, 0x2000                                                    |     
    0x080280e8 movt r3, 0x8da4                                                   |     r3 = 0x-725be000;
    0x080280ec and r3, r3, r2                                                    |     r3 &= r2;
    0x080280f0 cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x080280f4 bne 0x8027e48                                                     |         goto label_1;
                                                                                 |     }
    0x080280f8 ldrh r3, [r6]                                                     |     r3 = *(r6);
    0x080280fc movw r7, 0xc0ff                                                   |     
    0x08028100 movt r7, 0x624b                                                   |     r7 = 0x624bc0ff;
    0x08028104 and r3, r3, 0xf000                                                |     r3 &= 0xf000;
    0x08028108 and r7, r7, r2                                                    |     r7 &= r2;
    0x0802810c cmp r3, 0x4000                                                    |     
                                                                                 |     if (r3 == 0x4000) {
    0x08028110 beq 0x8028130                                                     |         goto label_38;
                                                                                 |     }
    0x08028114 cmp r3, 0x8000                                                    |     
                                                                                 |     if (r3 == 0x8000) {
    0x08028118 andne r3, r2, 0xc0                                                |         r3 = r2 & 0xc0;
                                                                                 |     }
    0x0802811c movweq r3, 0xc0ff                                                 |     __asm ("movweq r3, 0xc0ff");
    0x08028120 movteq r3, 0x248                                                  |     __asm ("movteq r3, 0x248");
                                                                                 |     if (r3 != 0x8000) {
    0x08028124 andeq r3, r3, r2                                                  |         r3 &= r2;
                                                                                 |     }
    0x08028128 cmp r7, r3                                                        |     
                                                                                 |     if (r7 != r3) {
    0x0802812c bne 0x8027e48                                                     |         goto label_1;
                                                                                 |     }
                                                                                 | label_38:
    0x08028130 mov r0, r5                                                        |     r0 = r5;
    0x08028134 stmdaeq r8, {r2, r3, sb, fp, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r2, r3, sb, fp, ip, sp, lr}");
    0x08028138 subs r4, r0, 0                                                    |     r4 = r0 - 0;
                                                                                 |     if (r4 != r0) {
    0x0802813c bne 0x8027e4c                                                     |         goto label_0;
                                                                                 |     }
    0x08028140 add r8, r6, 0x7c                                                  |     r8 = r6 + 0x7c;
    0x08028144 mov r0, r8                                                        |     r0 = r8;
    0x08028148 stmdaeq r8, {r2, r6, r7, r8, sb, sl, ip, sp, lr}                  |     __asm ("stmdaeq r8, {r2, r6, r7, r8, sb, sl, ip, sp, lr}");
    0x0802814c ldr r1, [r6, 0x1e4]                                               |     r1 = *((r6 + 0x1e4));
    0x08028150 stmdaeq r8, {r2, r3, r5, r7, fp, ip, sp, lr}                      |     __asm ("stmdaeq r8, {r2, r3, r5, r7, fp, ip, sp, lr}");
    0x08028154 stmdaeq r8, {r2, r3, r5, r7, fp, ip, sp, lr}                      |     __asm ("stmdaeq r8, {r2, r3, r5, r7, fp, ip, sp, lr}");
    0x08028158 stmdaeq r8, {r4, r7, r8, fp, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r4, r7, r8, fp, ip, sp, lr}");
    0x0802815c mov r2, r7                                                        |     r2 = r7;
    0x08028160 mov r1, r0                                                        |     r1 = r0;
    0x08028164 mov r0, r6                                                        |     r0 = r6;
    0x08028168 bl 0x80273c8                                                      |     r0 = ext4_ioctl_check_immutable ();
    0x0802816c subs r4, r0, 0                                                    |     r4 = r0 - 0;
                                                                                 |     if (r4 == r0) {
    0x08028170 beq 0x8029184                                                     |         goto label_39;
                                                                                 |     }
                                                                                 | label_14:
    0x08028174 mov r0, r8                                                        |     r0 = r8;
    0x08028178 stmdaeq r8, {r3, r6, r7, r8, sb, sl, ip, sp, lr}                  |     __asm ("stmdaeq r8, {r3, r6, r7, r8, sb, sl, ip, sp, lr}");
    0x0802817c mov r0, r5                                                        |     r0 = r5;
    0x08028180 stmdaeq r8, {r4, sb, fp, ip, sp, lr}                              |     __asm ("stmdaeq r8, {r4, sb, fp, ip, sp, lr}");
    0x08028184 b 0x8027e4c                                                       |     goto label_0;
                                                                                 | label_35:
    0x08028188 movw r3, 0x5879                                                   |     
    0x0802818c movt r3, 0xc018                                                   |     r3 = 0xc0185879;
    0x08028190 cmp r1, r3                                                        |     
                                                                                 |     if (r1 != r3) {
    0x08028194 bne 0x8027f04                                                     |         goto label_2;
                                                                                 |     }
    0x08028198 ldr r3, [r7, 0x70]                                                |     r3 = *((r7 + 0x70));
    0x0802819c mov r0, 0x15                                                      |     r0 = 0x15;
    0x080281a0 ldr r3, [r3, 0x44]                                                |     r3 = *((r3 + 0x44));
    0x080281a4 ldr r4, [r3, 0x244]                                               |     r4 = *((r3 + 0x244));
    0x080281a8 stmdaeq r8, {r2, r6, r7, sb, sl, ip, sp, lr}                      |     __asm ("stmdaeq r8, {r2, r6, r7, sb, sl, ip, sp, lr}");
    0x080281ac cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x080281b0 beq 0x8028540                                                     |         goto label_8;
                                                                                 |     }
    0x080281b4 ldr r3, [r4, 0x34]                                                |     r3 = *((r4 + 0x34));
    0x080281b8 tst r3, 0x100                                                     |     
                                                                                 |     if ((r3 & 0x100) == 0) {
    0x080281bc beq 0x8027e48                                                     |         goto label_1;
                                                                                 |     }
    0x080281c0 ldr r3, [r7, 0x1f0]                                               |     r3 = *((r7 + 0x1f0));
    0x080281c4 ldr r2, [r3, 0x4c]                                                |     r2 = *((r3 + 0x4c));
    0x080281c8 tst r2, 0x100                                                     |     
                                                                                 |     if ((r2 & 0x100) == 0) {
    0x080281cc beq 0x80281e4                                                     |         goto label_40;
                                                                                 |     }
    0x080281d0 ldr r3, [r3, 0x44]                                                |     r3 = *((r3 + 0x44));
    0x080281d4 ldr r3, [r3, 0x5c]                                                |     r3 = *((r3 + 0x5c));
    0x080281d8 tst r3, 4                                                         |     
                                                                                 |     if ((r3 & 4) != 0) {
    0x080281dc mvnne r4, 0x1d                                                    |         r4 = ~0x1d;
                                                                                 |         goto label_41;
                                                                                 |     }
                                                                                 |     if ((r3 & 4) != 0) {
                                                                                 | label_41:
    0x080281e0 bne 0x8027e4c                                                     |         goto label_0;
                                                                                 |     }
                                                                                 | label_40:
    0x080281e4 mov r3, sp                                                        |     r3 = sp;
    0x080281e8 mov r5, 0xe000                                                    |     
    0x080281ec movt r5, 0xffff                                                   |     r5 = 0x-2000;
    0x080281f0 and r2, r3, r5                                                    |     r2 = r3 & r5;
    0x080281f4 ldr r3, [r2, 8]                                                   |     r3 = *((r2 + 8));
    0x080281f8 adds r1, r8, 0x18                                                 |     r1 = r8 + 0x18;
    0x080281fc sbcslo r1, r1, r3                                                 |     __asm ("sbcslo r1, r1, r3");
                                                                                 |     if (r1 >= r8) {
    0x08028200 movlo r3, 0                                                       |         r3 = 0;
                                                                                 |     }
    0x08028204 cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x08028208 bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x0802820c mrc p15, 0, r6, c3, c0, 0                                         |     __asm ("mrc p15, 0, r6, c3, c0, 0");
    0x08028210 bic r3, r6, 0xc                                                   |     r3 = BIT_MASK (r6, 0xc);
    0x08028214 orr r3, r3, 4                                                     |     r3 |= 4;
    0x08028218 mcr p15, 0, r3, c3, c0, 0                                         |     __asm ("mcr p15, 0, r3, c3, c0, 0");
    0x0802821c isb sy                                                            |     __asm ("isb sy");
    0x08028220 mov r2, 0x18                                                      |     r2 = 0x18;
    0x08028224 mov r1, r8                                                        |     r1 = r8;
    0x08028228 add r0, sp, 0x70                                                  |     r0 += var_70h;
    0x0802822c stmdaeq r8, {sb, fp, ip, sp, lr}                                  |     __asm ("stmdaeq r8, {sb, fp, ip, sp, lr}");
    0x08028230 mcr p15, 0, r6, c3, c0, 0                                         |     __asm ("mcr p15, 0, r6, c3, c0, 0");
    0x08028234 isb sy                                                            |     __asm ("isb sy");
    0x08028238 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x0802823c bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x08028240 ldr r2, [r4, 0x398]                                               |     r2 = *((r4 + 0x398));
    0x08028244 add r1, sp, 0x70                                                  |     r1 += var_70h;
    0x08028248 ldr r3, [sp, 0x80]                                                |     r3 = var_80h;
    0x0802824c str r0, [sp, 0x84]                                                |     var_84h = r0;
    0x08028250 mov r0, r7                                                        |     r0 = r7;
    0x08028254 cmp r3, r2                                                        |     
                                                                                 |     if (r3 >= r2) {
    0x08028258 movlo r3, r2                                                      |         r3 = r2;
                                                                                 |     }
    0x0802825c str r3, [sp, 0x80]                                                |     var_80h = r3;
    0x08028260 stmdaeq r3, {r2, r3, r6, r7, sl, fp, sp}                          |     __asm ("stmdaeq r3, {r2, r3, r6, r7, sl, fp, sp}");
    0x08028264 subs r4, r0, 0                                                    |     r4 = r0 - 0;
                                                                                 |     if (r4 < r0) {
    0x08028268 blt 0x8027e4c                                                     |         goto label_0;
                                                                                 |     }
    0x0802826c mov r3, sp                                                        |     r3 = sp;
    0x08028270 and r5, r5, r3                                                    |     r5 &= r3;
    0x08028274 ldr r3, [r5, 8]                                                   |     r3 = *((r5 + 8));
    0x08028278 adds r2, r8, 0x18                                                 |     r2 = r8 + 0x18;
    0x0802827c sbcslo r2, r2, r3                                                 |     __asm ("sbcslo r2, r2, r3");
                                                                                 |     if (r2 >= r8) {
    0x08028280 movlo r3, 0                                                       |         r3 = 0;
                                                                                 |     }
    0x08028284 cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x08028288 bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x0802828c mrc p15, 0, r5, c3, c0, 0                                         |     __asm ("mrc p15, 0, r5, c3, c0, 0");
    0x08028290 bic r3, r5, 0xc                                                   |     r3 = BIT_MASK (r5, 0xc);
    0x08028294 orr r3, r3, 4                                                     |     r3 |= 4;
    0x08028298 mcr p15, 0, r3, c3, c0, 0                                         |     __asm ("mcr p15, 0, r3, c3, c0, 0");
    0x0802829c isb sy                                                            |     __asm ("isb sy");
    0x080282a0 mov r2, 0x18                                                      |     r2 = 0x18;
                                                                                 | label_9:
    0x080282a4 add r1, sp, 0x70                                                  |     r1 += var_70h;
    0x080282a8 mov r0, r8                                                        |     r0 = r8;
    0x080282ac stmdaeq r8, {r2, r3, r4, r5, r6, r7, r8, fp, ip, sp, lr}          |     __asm ("stmdaeq r8, {r2, r3, r4, r5, r6, r7, r8, fp, ip, sp, lr}");
    0x080282b0 mov r4, r0                                                        |     r4 = r0;
    0x080282b4 mcr p15, 0, r5, c3, c0, 0                                         |     __asm ("mcr p15, 0, r5, c3, c0, 0");
    0x080282b8 isb sy                                                            |     __asm ("isb sy");
    0x080282bc cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x080282c0 beq 0x8027e4c                                                     |         goto label_0;
                                                                                 |     }
                                                                                 | label_3:
    0x080282c4 mvn r4, 0xd                                                       |     r4 = ~0xd;
    0x080282c8 b 0x8027e4c                                                       |     goto label_0;
                                                                                 | label_33:
    0x080282cc movw r3, 0x661a                                                   |     
    0x080282d0 movt r3, 0xc080                                                   |     r3 = 0xc080661a;
    0x080282d4 cmp r1, r3                                                        |     
                                                                                 |     if (r1 == r3) {
    0x080282d8 beq 0x8027e48                                                     |         goto label_1;
                                                                                 |     }
    0x080282dc movw r3, 0x583b                                                   |     
    0x080282e0 movt r3, 0xc0c0                                                   |     r3 = 0xc0c0583b;
    0x080282e4 cmp r1, r3                                                        |     
                                                                                 |     if (r1 != r3) {
    0x080282e8 bne 0x802833c                                                     |         goto label_42;
                                                                                 |     }
    0x080282ec mov r1, r2                                                        |     r1 = r2;
    0x080282f0 mov r0, r7                                                        |     r0 = r7;
    0x080282f4 add sp, sp, 0xa4                                                  |     
    0x080282f8 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}                          |     
    0x080282fc b 0x8027a78                                                       |     void (*0x8027a78)() ();
                                                                                 | label_32:
    0x08028300 movw r3, 0x661b                                                   |     
    0x08028304 movt r3, 0x8010                                                   |     r3 = 0x8010661b;
    0x08028308 cmp r1, r3                                                        |     
                                                                                 |     if (r1 == r3) {
    0x0802830c beq 0x8027e48                                                     |         goto label_1;
                                                                                 |     }
                                                                                 |     if (r1 >= r3) {
    0x08028310 bls 0x8028354                                                     |         
    0x08028314 movw r3, 0x581f                                                   |         
    0x08028318 movt r3, 0x801c                                                   |         r3 = 0x801c581f;
    0x0802831c cmp r1, r3                                                        |         
                                                                                 |         if (r1 == r3) {
    0x08028320 beq 0x8028f98                                                     |             goto label_43;
                                                                                 |         }
    0x08028324 movw r3, 0x6686                                                   |         
    0x08028328 movt r3, 0xc004                                                   |         r3 = 0xc0046686;
    0x0802832c cmp r1, r3                                                        |         
                                                                                 |         if (r1 == r3) {
    0x08028330 mvnne r4, 0x18                                                    |             r4 = ~0x18;
                                                                                 |         }
                                                                                 |         if (r1 != r3) {
    0x08028334 mvneq r4, 0x5e                                                    |             r4 = ~0x5e;
                                                                                 |         }
    0x08028338 b 0x8027e4c                                                       |         goto label_0;
                                                                                 | label_42:
    0x0802833c movw r3, 0x6617                                                   |         
    0x08028340 movt r3, 0xc050                                                   |         r3 = 0xc0506617;
    0x08028344 cmp r1, r3                                                        |         
                                                                                 |         if (r1 == r3) {
    0x08028348 mvnne r4, 0x18                                                    |             r4 = ~0x18;
                                                                                 |         }
                                                                                 |         if (r1 != r3) {
    0x0802834c mvneq r4, 0x5e                                                    |             r4 = ~0x5e;
                                                                                 |         }
    0x08028350 b 0x8027e4c                                                       |         goto label_0;
                                                                                 |     }
    0x08028354 movw r3, 0x7601                                                   |     
    0x08028358 movt r3, 0x8004                                                   |     r3 = 0x80047601;
    0x0802835c cmp r1, r3                                                        |     
                                                                                 |     if (r1 == r3) {
    0x08028360 beq 0x80285c8                                                     |         goto label_44;
                                                                                 |     }
                                                                                 |     if (r1 < r3) {
    0x08028364 bls 0x8028548                                                     |         goto label_45;
                                                                                 |     }
    0x08028368 movw r3, 0x6613                                                   |     
    0x0802836c movt r3, 0x800c                                                   |     r3 = 0x800c6613;
    0x08028370 cmp r1, r3                                                        |     
                                                                                 |     if (r1 == r3) {
    0x08028374 mvnne r4, 0x18                                                    |         r4 = ~0x18;
                                                                                 |     }
                                                                                 |     if (r1 != r3) {
    0x08028378 mvneq r4, 0x5e                                                    |         r4 = ~0x5e;
                                                                                 |     }
    0x0802837c b 0x8027e4c                                                       |     goto label_0;
                                                                                 | label_28:
    0x08028380 movw r3, 0x5820                                                   |     
    0x08028384 movt r3, 0x401c                                                   |     r3 = 0x401c5820;
    0x08028388 cmp r1, r3                                                        |     
                                                                                 |     if (r1 != r3) {
    0x0802838c bne 0x8027f04                                                     |         goto label_2;
                                                                                 |     }
    0x08028390 mov r3, sp                                                        |     r3 = sp;
    0x08028394 bic r2, r3, 0x1fc0                                                |     r2 = BIT_MASK (r3, 0x1fc0);
    0x08028398 bic r2, r2, 0x3f                                                  |     r2 = BIT_MASK (r2, 0x3f);
    0x0802839c ldr r3, [r2, 8]                                                   |     r3 = *((r2 + 8));
    0x080283a0 adds r1, r8, 0x1c                                                 |     r1 = r8 + 0x1c;
    0x080283a4 sbcslo r1, r1, r3                                                 |     __asm ("sbcslo r1, r1, r3");
                                                                                 |     if (r1 >= r8) {
    0x080283a8 movlo r3, 0                                                       |         r3 = 0;
                                                                                 |     }
    0x080283ac cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x080283b0 bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x080283b4 mrc p15, 0, r4, c3, c0, 0                                         |     __asm ("mrc p15, 0, r4, c3, c0, 0");
    0x080283b8 bic r3, r4, 0xc                                                   |     r3 = BIT_MASK (r4, 0xc);
    0x080283bc orr r3, r3, 4                                                     |     r3 |= 4;
    0x080283c0 mcr p15, 0, r3, c3, c0, 0                                         |     __asm ("mcr p15, 0, r3, c3, c0, 0");
    0x080283c4 isb sy                                                            |     __asm ("isb sy");
    0x080283c8 add r7, sp, 0x54                                                  |     r7 += var_54h;
    0x080283cc mov r1, r8                                                        |     r1 = r8;
    0x080283d0 mov r0, r7                                                        |     r0 = r7;
    0x080283d4 mov r2, 0x1c                                                      |     r2 = 0x1c;
    0x080283d8 stmdaeq r8, {sb, fp, ip, sp, lr}                                  |     __asm ("stmdaeq r8, {sb, fp, ip, sp, lr}");
    0x080283dc mcr p15, 0, r4, c3, c0, 0                                         |     __asm ("mcr p15, 0, r4, c3, c0, 0");
    0x080283e0 isb sy                                                            |     __asm ("isb sy");
    0x080283e4 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x080283e8 bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x080283ec mov r0, r6                                                        |     r0 = r6;
    0x080283f0 stmdaeq r8, {r2, r4, sb, fp, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r2, r4, sb, fp, ip, sp, lr}");
    0x080283f4 cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x080283f8 beq 0x8028b30                                                     |         goto label_37;
                                                                                 |     }
    0x080283fc ldr r3, [sp, 0x54]                                                |     r3 = var_54h;
    0x08028400 bic r2, r3, 0x8200                                                |     r2 = BIT_MASK (r3, 0x8200);
    0x08028404 bic r2, r2, 0xf8                                                  |     r2 = BIT_MASK (r2, 0xf8);
    0x08028408 cmp r2, 0                                                         |     
                                                                                 |     if (r2 != 0) {
    0x0802840c bne 0x8027e48                                                     |         goto label_1;
                                                                                 |     }
    0x08028410 ubfx r8, r3, 5, 1                                                 |     r8 = (r3 >> 5) & ((1 << 1) - 1);
    0x08028414 tst r3, 8                                                         |     
    0x08028418 lsl r8, r8, 3                                                     |     r8 <<= 3;
                                                                                 |     if ((r3 & 8) == 0) {
    0x0802841c orrne r8, r8, 0x10                                                |         r8 |= 0x10;
                                                                                 |     }
    0x08028420 tst r3, 0x10                                                      |     
                                                                                 |     if ((r3 & 0x10) == 0) {
    0x08028424 orrne r8, r8, 0x20                                                |         r8 |= 0x20;
                                                                                 |     }
    0x08028428 tst r3, 0x80                                                      |     
                                                                                 |     if ((r3 & 0x80) == 0) {
    0x0802842c orrne r8, r8, 0x40                                                |         r8 |= 0x40;
                                                                                 |     }
    0x08028430 tst r3, 0x40                                                      |     
                                                                                 |     if ((r3 & 0x40) == 0) {
    0x08028434 orrne r8, r8, 0x80                                                |         r8 |= 0x80;
                                                                                 |     }
    0x08028438 tst r3, 0x200                                                     |     
                                                                                 |     if ((r3 & 0x200) == 0) {
    0x0802843c orrne r8, r8, 0x20000000                                          |         r8 |= 0x20000000;
                                                                                 |     }
    0x08028440 tst r3, 0x8000                                                    |     
    0x08028444 ldrh r3, [r6]                                                     |     r3 = *(r6);
                                                                                 |     if ((r3 & 0x8000) == 0) {
    0x08028448 orrne r8, r8, 0x2000000                                           |         r8 |= 0x2000000;
                                                                                 |     }
    0x0802844c and r3, r3, 0xf000                                                |     r3 &= 0xf000;
    0x08028450 cmp r3, 0x4000                                                    |     
                                                                                 |     if (r3 == 0x4000) {
    0x08028454 beq 0x8028470                                                     |         goto label_46;
                                                                                 |     }
    0x08028458 cmp r3, 0x8000                                                    |     
    0x0802845c biceq r3, r8, 0x60000000                                          |     __asm ("biceq r3, r8, 0x60000000");
                                                                                 |     if (r3 == 0x8000) {
    0x08028460 andne r3, r8, 0xc0                                                |         r3 = r8 & 0xc0;
                                                                                 |     }
    0x08028464 biceq r3, r3, 0x30000                                             |     __asm ("biceq r3, r3, 0x30000");
    0x08028468 cmp r3, r8                                                        |     
                                                                                 |     if (r3 != r8) {
    0x0802846c bne 0x8027e48                                                     |         goto label_1;
                                                                                 |     }
                                                                                 | label_46:
    0x08028470 mov r0, r5                                                        |     r0 = r5;
    0x08028474 stmdaeq r8, {r2, r3, sb, fp, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r2, r3, sb, fp, ip, sp, lr}");
    0x08028478 subs r4, r0, 0                                                    |     r4 = r0 - 0;
                                                                                 |     if (r4 != r0) {
    0x0802847c bne 0x8027e4c                                                     |         goto label_0;
                                                                                 |     }
    0x08028480 add sb, r6, 0x7c                                                  |     sb = r6 + 0x7c;
    0x08028484 mov r0, sb                                                        |     r0 = sb;
    0x08028488 stmdaeq r8, {r2, r6, r7, r8, sb, sl, ip, sp, lr}                  |     __asm ("stmdaeq r8, {r2, r6, r7, r8, sb, sl, ip, sp, lr}");
    0x0802848c mov r0, r6                                                        |     r0 = r6;
    0x08028490 add r1, sp, 0x70                                                  |     r1 += var_70h;
    0x08028494 bl 0x8027334                                                      |     ext4_fill_fsxattr ();
    0x08028498 mov r2, r7                                                        |     r2 = r7;
    0x0802849c add r1, sp, 0x70                                                  |     r1 += var_70h;
    0x080284a0 mov r0, r6                                                        |     r0 = r6;
    0x080284a4 stmdaeq r8, {r3, r4, sb, fp, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r3, r4, sb, fp, ip, sp, lr}");
    0x080284a8 subs r4, r0, 0                                                    |     r4 = r0 - 0;
                                                                                 |     if (r4 == r0) {
    0x080284ac bne 0x80284f4                                                     |         
    0x080284b0 ldr r3, [r6, -0x6c]                                               |         r3 = *((r6 - 0x6c));
    0x080284b4 mov r0, r6                                                        |         r0 = r6;
    0x080284b8 ldr r1, [sp, 0x60]                                                |         r1 = var_60h;
    0x080284bc bic r3, r3, 0x22000000                                            |         r3 = BIT_MASK (r3, 0x22000000);
    0x080284c0 bic r3, r3, 0xf8                                                  |         r3 = BIT_MASK (r3, 0xf8);
    0x080284c4 orr r2, r3, r8                                                    |         r2 = r3 | r8;
    0x080284c8 bl 0x80273c8                                                      |         r0 = ext4_ioctl_check_immutable ();
    0x080284cc subs r4, r0, 0                                                    |         r4 = r0 - 0;
                                                                                 |         if (r4 != r0) {
    0x080284d0 bne 0x80284f4                                                     |             goto label_12;
                                                                                 |         }
    0x080284d4 mov r1, r2                                                        |         r1 = r2;
    0x080284d8 mov r0, r6                                                        |         r0 = r6;
    0x080284dc bl 0x8027424                                                      |         r0 = ext4_ioctl_setflags ();
    0x080284e0 subs r4, r0, 0                                                    |         r4 = r0 - 0;
                                                                                 |         if (r4 != r0) {
    0x080284e4 bne 0x80284f4                                                     |             goto label_12;
                                                                                 |         }
    0x080284e8 ldr r3, [sp, 0x60]                                                |         r3 = var_60h;
    0x080284ec cmp r3, 0                                                         |         
                                                                                 |         if (r3 != 0) {
    0x080284f0 mvnne r4, 0x5e                                                    |             r4 = ~0x5e;
                                                                                 |             goto label_12;
                                                                                 |         }
                                                                                 |     }
                                                                                 | label_12:
    0x080284f4 mov r0, sb                                                        |     r0 = sb;
    0x080284f8 stmdaeq r8, {r3, r6, r7, r8, sb, sl, ip, sp, lr}                  |     __asm ("stmdaeq r8, {r3, r6, r7, r8, sb, sl, ip, sp, lr}");
    0x080284fc b 0x8028938                                                       |     goto label_11;
                                                                                 | label_26:
    0x08028500 movw r3, 0x6610                                                   |     
    0x08028504 movt r3, 0x4008                                                   |     r3 = 0x40086610;
    0x08028508 cmp r1, r3                                                        |     
                                                                                 |     if (r1 == r3) {
    0x0802850c beq 0x8028b38                                                     |         goto label_47;
                                                                                 |     }
    0x08028510 movw r3, 0x6615                                                   |     
    0x08028514 movt r3, 0x400c                                                   |     r3 = 0x400c6615;
    0x08028518 cmp r1, r3                                                        |     
                                                                                 |     if (r1 == r3) {
    0x0802851c beq 0x8027e48                                                     |         goto label_1;
                                                                                 |     }
    0x08028520 movw r3, 0x7602                                                   |     
    0x08028524 movt r3, 0x4004                                                   |     r3 = 0x40047602;
    0x08028528 cmp r1, r3                                                        |     
                                                                                 |     if (r1 != r3) {
    0x0802852c bne 0x8027f04                                                     |         goto label_2;
                                                                                 |     }
                                                                                 | label_29:
    0x08028530 mov r0, r6                                                        |     r0 = r6;
    0x08028534 stmdaeq r8, {r2, r4, sb, fp, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r2, r4, sb, fp, ip, sp, lr}");
    0x08028538 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x0802853c bne 0x80289d0                                                     |         goto label_48;
                                                                                 |     }
                                                                                 | label_8:
    0x08028540 mvn r4, 0                                                         |     r4 = ~0;
    0x08028544 b 0x8027e4c                                                       |     goto label_0;
                                                                                 | label_45:
    0x08028548 movw r3, 0x6601                                                   |     
    0x0802854c movt r3, 0x8004                                                   |     r3 = 0x80046601;
    0x08028550 cmp r1, r3                                                        |     
                                                                                 |     if (r1 == r3) {
    0x08028554 bne 0x80285b8                                                     |         
    0x08028558 ldrh r3, [r6]                                                     |         r3 = *(r6);
    0x0802855c movw r2, 0xdfff                                                   |         r2 = 0xdfff;
    0x08028560 ldr r1, [r6, -0x6c]                                               |         r1 = *((r6 - 0x6c));
    0x08028564 and r3, r3, 0xf000                                                |         r3 &= 0xf000;
    0x08028568 cmp r3, 0x8000                                                    |         
    0x0802856c movtne r2, 0x725b                                                 |         __asm ("movtne r2, 0x725b");
    0x08028570 movteq r2, 0x525b                                                 |         __asm ("movteq r2, 0x525b");
    0x08028574 and r2, r2, r1                                                    |         r2 &= r1;
                                                                                 | label_7:
    0x08028578 mov r3, sp                                                        |         r3 = sp;
    0x0802857c bic r3, r3, 0x1fc0                                                |         r3 = BIT_MASK (r3, 0x1fc0);
                                                                                 | label_4:
    0x08028580 bic r3, r3, 0x3f                                                  |         r3 = BIT_MASK (r3, 0x3f);
    0x08028584 mrc p15, 0, r5, c3, c0, 0                                         |         __asm ("mrc p15, 0, r5, c3, c0, 0");
    0x08028588 bic r1, r5, 0xc                                                   |         r1 = BIT_MASK (r5, 0xc);
    0x0802858c orr r1, r1, 4                                                     |         r1 |= 4;
    0x08028590 mcr p15, 0, r1, c3, c0, 0                                         |         __asm ("mcr p15, 0, r1, c3, c0, 0");
    0x08028594 isb sy                                                            |         __asm ("isb sy");
    0x08028598 ldr r1, [r3, 8]                                                   |         r1 = *((r3 + 8));
    0x0802859c mov r0, r8                                                        |         r0 = r8;
    0x080285a0 sub r1, r1, 1                                                     |         r1--;
    0x080285a4 stmdaeq r8, {r2, r3, r4, sb, fp, ip, sp, lr}                      |         __asm ("stmdaeq r8, {r2, r3, r4, sb, fp, ip, sp, lr}");
    0x080285a8 mov r4, r0                                                        |         r4 = r0;
    0x080285ac mcr p15, 0, r5, c3, c0, 0                                         |         __asm ("mcr p15, 0, r5, c3, c0, 0");
    0x080285b0 isb sy                                                            |         __asm ("isb sy");
    0x080285b4 b 0x8027e4c                                                       |         goto label_0;
                                                                                 |     }
    0x080285b8 movw r3, 0x6603                                                   |     
    0x080285bc movt r3, 0x8004                                                   |     r3 = 0x80046603;
    0x080285c0 cmp r1, r3                                                        |     
                                                                                 |     if (r1 != r3) {
    0x080285c4 bne 0x8027f04                                                     |         goto label_2;
                                                                                 |     }
                                                                                 | label_44:
    0x080285c8 mov r3, sp                                                        |     r3 = sp;
    0x080285cc ldr r2, [r6, 0x154]                                               |     r2 = *((r6 + 0x154));
    0x080285d0 bic r3, r3, 0x1fc0                                                |     r3 = BIT_MASK (r3, 0x1fc0);
    0x080285d4 b 0x8028580                                                       |     goto label_4;
                                                                                 | label_11:
    0x08028938 mov r0, r5                                                        |     r0 = r5;
    0x0802893c stmdaeq r8, {r4, sb, fp, ip, sp, lr}                              |     __asm ("stmdaeq r8, {r4, sb, fp, ip, sp, lr}");
    0x08028940 b 0x8027e4c                                                       |     goto label_0;
                                                                                 | label_48:
    0x080289d0 ldr r4, [r6, 0x14]                                                |     r4 = *((r6 + 0x14));
    0x080289d4 ldr r3, [r4, 0x1f0]                                               |     r3 = *((r4 + 0x1f0));
    0x080289d8 ldr r2, [r3, 0x44]                                                |     r2 = *((r3 + 0x44));
    0x080289dc ldr r2, [r2, 0x64]                                                |     r2 = *((r2 + 0x64));
    0x080289e0 tst r2, 0x400                                                     |     
                                                                                 |     if ((r2 & 0x400) == 0) {
    0x080289e4 beq 0x802903c                                                     |         goto label_49;
                                                                                 |     }
    0x080289e8 ldr r3, [r3, 0x220]                                               |     r3 = *((r3 + 0x220));
    0x080289ec cmp r3, 0                                                         |     
                                                                                 |     if (r3 == 0) {
    0x080289f0 beq 0x8028fec                                                     |         goto label_50;
                                                                                 |     }
                                                                                 | label_10:
    0x080289f4 ldr r1, [pc, 0xaa4]                                               |     r1 = "ext4_validate_block_bitmap";
    0x080289f8 mov r0, r7                                                        |     r0 = r7;
    0x080289fc stmdaeq r5, {r2, r3, sb, fp, sp, pc}                              |     __asm ("stmdaeq r5, {r2, r3, sb, fp, sp, pc}");
    0x08028a00 stmdaeq r5, {r2, r3, sb, fp, sp, pc}                              |     __asm ("stmdaeq r5, {r2, r3, sb, fp, sp, pc}");
    0x08028a04 mov r2, 0x374                                                     |     r2 = 0x374;
    0x08028a08 mvn r4, 0x18                                                      |     r4 = ~0x18;
    0x08028a0c stmdaeq r4, {r3, r4, r5, r6, r7, r8, sb, fp, ip, sp, lr}          |     __asm ("stmdaeq r4, {r3, r4, r5, r6, r7, r8, sb, fp, ip, sp, lr}");
    0x08028a10 b 0x8027e4c                                                       |     goto label_0;
                                                                                 | label_36:
    0x08028a14 mov r3, sp                                                        |     r3 = sp;
    0x08028a18 bic r2, r3, 0x1fc0                                                |     r2 = BIT_MASK (r3, 0x1fc0);
    0x08028a1c bic r2, r2, 0x3f                                                  |     r2 = BIT_MASK (r2, 0x3f);
    0x08028a20 ldr r3, [r2, 8]                                                   |     r3 = *((r2 + 8));
    0x08028a24 adds r1, r8, 0x28                                                 |     r1 = r8 + 0x28;
    0x08028a28 sbcslo r1, r1, r3                                                 |     __asm ("sbcslo r1, r1, r3");
                                                                                 |     if (r1 >= r8) {
    0x08028a2c movlo r3, 0                                                       |         r3 = 0;
                                                                                 |     }
    0x08028a30 cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x08028a34 bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x08028a38 mrc p15, 0, r4, c3, c0, 0                                         |     __asm ("mrc p15, 0, r4, c3, c0, 0");
    0x08028a3c bic r3, r4, 0xc                                                   |     r3 = BIT_MASK (r4, 0xc);
    0x08028a40 orr r3, r3, 4                                                     |     r3 |= 4;
    0x08028a44 mcr p15, 0, r3, c3, c0, 0                                         |     __asm ("mcr p15, 0, r3, c3, c0, 0");
    0x08028a48 isb sy                                                            |     __asm ("isb sy");
    0x08028a4c mov r2, 0x28                                                      |     r2 = 0x28;
    0x08028a50 mov r1, r8                                                        |     r1 = r8;
    0x08028a54 add r0, sp, 0x70                                                  |     r0 += var_70h;
    0x08028a58 stmdaeq r8, {sb, fp, ip, sp, lr}                                  |     __asm ("stmdaeq r8, {sb, fp, ip, sp, lr}");
    0x08028a5c mcr p15, 0, r4, c3, c0, 0                                         |     __asm ("mcr p15, 0, r4, c3, c0, 0");
    0x08028a60 isb sy                                                            |     __asm ("isb sy");
    0x08028a64 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x08028a68 bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x08028a6c ldr r0, [sp, 0x74]                                                |     r0 = var_74h;
    0x08028a70 mov r2, 0                                                         |     r2 = 0;
    0x08028a74 mov r3, 0                                                         |     r3 = 0;
    0x08028a78 strd r2, r3, [sp, 0x90]                                           |     __asm ("strd r2, r3, [var_90h]");
    0x08028a7c stmdaeq r8, {r3, r5, sb, fp, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r3, r5, sb, fp, ip, sp, lr}");
    0x08028a80 mov r6, r0                                                        |     r6 = r0;
    0x08028a84 bics sb, r0, 3                                                    |     __asm ("bics sb, r0, 3");
                                                                                 |     if (r0 == 0) {
    0x08028a88 beq 0x802807c                                                     |         goto label_5;
                                                                                 |     }
    0x08028a8c ldr r3, [sb, 0x24]                                                |     r3 = *((sb + 0x24));
    0x08028a90 tst r3, 2                                                         |     
                                                                                 |     if ((r3 & 2) != 0) {
    0x08028a94 mvneq r4, 8                                                       |         r4 = ~8;
                                                                                 |     }
                                                                                 |     if ((r3 & 2) != 0) {
    0x08028a98 beq 0x8028b1c                                                     |         
    0x08028a9c ldr r3, [r7, 0x1f0]                                               |         r3 = *((r7 + 0x1f0));
    0x08028aa0 ldr r3, [r3, 0x44]                                                |         r3 = *((r3 + 0x44));
    0x08028aa4 ldr r3, [r3, 0x64]                                                |         r3 = *((r3 + 0x64));
    0x08028aa8 tst r3, 0x200                                                     |         
                                                                                 |         if ((r3 & 0x200) != 0) {
    0x08028aac bne 0x8029298                                                     |             goto label_51;
                                                                                 |         }
    0x08028ab0 mov r0, r5                                                        |         r0 = r5;
    0x08028ab4 stmdaeq r8, {r2, r3, sb, fp, ip, sp, lr}                          |         __asm ("stmdaeq r8, {r2, r3, sb, fp, ip, sp, lr}");
    0x08028ab8 subs r4, r0, 0                                                    |         r4 = r0 - 0;
                                                                                 |         if (r4 != r0) {
    0x08028abc bne 0x8028b1c                                                     |             goto label_18;
                                                                                 |         }
    0x08028ac0 add r3, sp, 0x90                                                  |         r3 += var_90h;
    0x08028ac4 str r3, [sp, 0x10]                                                |         var_10h = r3;
    0x08028ac8 ldrd r2, r3, [sp, 0x88]                                           |         __asm ("ldrd r2, r3, [var_88h]");
    0x08028acc strd r2, r3, [sp, 8]                                              |         __asm ("strd r2, r3, [var_8h]");
    0x08028ad0 ldrd r2, r3, [sp, 0x80]                                           |         __asm ("ldrd r2, r3, [var_80h]");
    0x08028ad4 mov r1, sb                                                        |         r1 = sb;
    0x08028ad8 strd r2, r3, [sp]                                                 |         __asm ("strd r2, r3, [sp]");
    0x08028adc mov r0, r5                                                        |         r0 = r5;
    0x08028ae0 ldrd r2, r3, [sp, 0x78]                                           |         __asm ("ldrd r2, r3, [var_78h]");
    0x08028ae4 stmdaeq r3, {r2, r6, r7, sb, sl, ip, lr}                          |         __asm ("stmdaeq r3, {r2, r6, r7, sb, sl, ip, lr}");
    0x08028ae8 mov r4, r0                                                        |         r4 = r0;
    0x08028aec mov r0, r5                                                        |         r0 = r5;
    0x08028af0 stmdaeq r8, {r4, sb, fp, ip, sp, lr}                              |         __asm ("stmdaeq r8, {r4, sb, fp, ip, sp, lr}");
    0x08028af4 mov r3, sp                                                        |         r3 = sp;
    0x08028af8 bic r2, r3, 0x1fc0                                                |         r2 = BIT_MASK (r3, 0x1fc0);
    0x08028afc bic r2, r2, 0x3f                                                  |         r2 = BIT_MASK (r2, 0x3f);
    0x08028b00 ldr r3, [r2, 8]                                                   |         r3 = *((r2 + 8));
    0x08028b04 adds r1, r8, 0x28                                                 |         r1 = r8 + 0x28;
    0x08028b08 sbcslo r1, r1, r3                                                 |         __asm ("sbcslo r1, r1, r3");
                                                                                 |         if (r1 >= r8) {
    0x08028b0c movlo r3, 0                                                       |             r3 = 0;
                                                                                 |         }
    0x08028b10 cmp r3, 0                                                         |         
                                                                                 |         if (r3 == 0) {
    0x08028b14 beq 0x8029320                                                     |             goto label_52;
                                                                                 |         }
                                                                                 | label_20:
    0x08028b18 mvn r4, 0xd                                                       |         r4 = ~0xd;
                                                                                 |     }
                                                                                 | label_18:
    0x08028b1c tst r6, 1                                                         |     
                                                                                 |     if ((r6 & 1) == 0) {
    0x08028b20 beq 0x8027e4c                                                     |         goto label_0;
                                                                                 |     }
    0x08028b24 mov r0, sb                                                        |     r0 = sb;
    0x08028b28 stmdaeq r8, {r2, r3, r5, sb, fp, ip, sp, lr}                      |     __asm ("stmdaeq r8, {r2, r3, r5, sb, fp, ip, sp, lr}");
    0x08028b2c b 0x8027e4c                                                       |     goto label_0;
                                                                                 | label_37:
    0x08028b30 mvn r4, 0xc                                                       |     r4 = ~0xc;
    0x08028b34 b 0x8027e4c                                                       |     goto label_0;
                                                                                 | label_47:
    0x08028b38 mov r3, sp                                                        |     r3 = sp;
    0x08028b3c bic r2, r3, 0x1fc0                                                |     r2 = BIT_MASK (r3, 0x1fc0);
    0x08028b40 ldr r3, [r7, 0x1f0]                                               |     r3 = *((r7 + 0x1f0));
    0x08028b44 bic r2, r2, 0x3f                                                  |     r2 = BIT_MASK (r2, 0x3f);
    0x08028b48 ldr r6, [r3, 0x20]                                                |     r6 = *((r3 + 0x20));
    0x08028b4c ldr r3, [r2, 8]                                                   |     r3 = *((r2 + 8));
    0x08028b50 adds r1, r8, 8                                                    |     r1 = r8 + 8;
    0x08028b54 sbcslo r1, r1, r3                                                 |     __asm ("sbcslo r1, r1, r3");
                                                                                 |     if (r1 >= r8) {
    0x08028b58 movlo r3, 0                                                       |         r3 = 0;
                                                                                 |     }
    0x08028b5c cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x08028b60 bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x08028b64 mrc p15, 0, r4, c3, c0, 0                                         |     __asm ("mrc p15, 0, r4, c3, c0, 0");
    0x08028b68 bic r3, r4, 0xc                                                   |     r3 = BIT_MASK (r4, 0xc);
    0x08028b6c orr r3, r3, 4                                                     |     r3 |= 4;
    0x08028b70 mcr p15, 0, r3, c3, c0, 0                                         |     __asm ("mcr p15, 0, r3, c3, c0, 0");
    0x08028b74 isb sy                                                            |     __asm ("isb sy");
    0x08028b78 mov r2, 8                                                         |     r2 = 8;
    0x08028b7c mov r1, r8                                                        |     r1 = r8;
    0x08028b80 add r0, sp, 0x70                                                  |     r0 += var_70h;
    0x08028b84 stmdaeq r8, {sb, fp, ip, sp, lr}                                  |     __asm ("stmdaeq r8, {sb, fp, ip, sp, lr}");
    0x08028b88 mcr p15, 0, r4, c3, c0, 0                                         |     __asm ("mcr p15, 0, r4, c3, c0, 0");
    0x08028b8c isb sy                                                            |     __asm ("isb sy");
    0x08028b90 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x08028b94 bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x08028b98 mov r0, r7                                                        |     r0 = r7;
    0x08028b9c stmdaeq r4, {r2, r4, sp}                                          |     __asm ("stmdaeq r4, {r2, r4, sp}");
    0x08028ba0 subs r4, r0, 0                                                    |     r4 = r0 - 0;
                                                                                 |     if (r4 != r0) {
    0x08028ba4 bne 0x8027e4c                                                     |         goto label_0;
                                                                                 |     }
    0x08028ba8 mov r0, r5                                                        |     r0 = r5;
    0x08028bac stmdaeq r8, {r2, r3, sb, fp, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r2, r3, sb, fp, ip, sp, lr}");
    0x08028bb0 subs r4, r0, 0                                                    |     r4 = r0 - 0;
                                                                                 |     if (r4 != r0) {
    0x08028bb4 bne 0x802800c                                                     |         goto label_6;
                                                                                 |     }
    0x08028bb8 ldrd r2, r3, [sp, 0x70]                                           |     __asm ("ldrd r2, r3, [var_70h]");
    0x08028bbc mov r0, r7                                                        |     r0 = r7;
    0x08028bc0 stmdaeq r4, {r2, r4, r6, r7, r8, sb, fp, sp}                      |     __asm ("stmdaeq r4, {r2, r4, r6, r7, r8, sb, fp, sp}");
    0x08028bc4 ldr r3, [r7, 0x1f0]                                               |     r3 = *((r7 + 0x1f0));
    0x08028bc8 mov sb, r0                                                        |     sb = r0;
    0x08028bcc ldr r3, [r3, 0x118]                                               |     r3 = *((r3 + 0x118));
    0x08028bd0 cmp r3, 0                                                         |     
                                                                                 |     if (r3 == 0) {
    0x08028bd4 beq 0x80291e8                                                     |         goto label_53;
                                                                                 |     }
    0x08028bd8 mov r1, 5                                                         |     r1 = 5;
    0x08028bdc mov r0, r7                                                        |     r0 = r7;
    0x08028be0 stmdaeq r5, {r4, r5, r7, r8, ip, lr}                              |     __asm ("stmdaeq r5, {r4, r5, r7, r8, ip, lr}");
    0x08028be4 ldr r3, [r7, 0x1f0]                                               |     r3 = *((r7 + 0x1f0));
    0x08028be8 ldr r0, [r3, 0x118]                                               |     r0 = *((r3 + 0x118));
    0x08028bec stmdaeq r8, {r2, r5, r8, fp, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r2, r5, r8, fp, ip, sp, lr}");
    0x08028bf0 ldr r3, [r7, 0x1f0]                                               |     r3 = *((r7 + 0x1f0));
    0x08028bf4 ldr r0, [r3, 0x118]                                               |     r0 = *((r3 + 0x118));
    0x08028bf8 stmdaeq r8, {r3, r5, r8, fp, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r3, r5, r8, fp, ip, sp, lr}");
    0x08028bfc ldr r3, [r7, 0x1f0]                                               |     r3 = *((r7 + 0x1f0));
    0x08028c00 mov r8, r0                                                        |     r8 = r0;
    0x08028c04 ldr r0, [r3, 0x118]                                               |     r0 = *((r3 + 0x118));
    0x08028c08 stmdaeq r8, {r2, r3, r5, r8, fp, ip, sp, lr}                      |     __asm ("stmdaeq r8, {r2, r3, r5, r8, fp, ip, sp, lr}");
    0x08028c0c cmp sb, 0                                                         |     
                                                                                 |     if (sb != 0) {
    0x08028c10 bne 0x80291d8                                                     |         goto label_54;
                                                                                 |     }
    0x08028c14 mov r0, r5                                                        |     r0 = r5;
    0x08028c18 stmdaeq r8, {r4, sb, fp, ip, sp, lr}                              |     __asm ("stmdaeq r8, {r4, sb, fp, ip, sp, lr}");
    0x08028c1c cmp r8, 0                                                         |     
                                                                                 |     if (r8 != 0) {
    0x08028c20 movne r4, r8                                                      |         r4 = r8;
                                                                                 |         goto label_55;
                                                                                 |     }
                                                                                 |     if (r8 != 0) {
                                                                                 | label_55:
    0x08028c24 bne 0x802800c                                                     |         goto label_6;
                                                                                 |     }
                                                                                 | label_16:
    0x08028c28 ldr r3, [r7, 0x1f0]                                               |     r3 = *((r7 + 0x1f0));
    0x08028c2c ldr r2, [r3, 0x20]                                                |     r2 = *((r3 + 0x20));
    0x08028c30 cmp r2, r6                                                        |     
                                                                                 |     if (r2 < r6) {
    0x08028c34 bls 0x802800c                                                     |         goto label_6;
                                                                                 |     }
    0x08028c38 ldr r2, [r3, 0x44]                                                |     r2 = *((r3 + 0x44));
    0x08028c3c ldr r2, [r2, 0x64]                                                |     r2 = *((r2 + 0x64));
    0x08028c40 tst r2, 0x10                                                      |     
                                                                                 |     if ((r2 & 0x10) == 0) {
    0x08028c44 beq 0x8029358                                                     |         goto label_56;
                                                                                 |     }
                                                                                 | label_21:
    0x08028c48 ldr r3, [r3, 0x4c]                                                |     r3 = *((r3 + 0x4c));
    0x08028c4c cmp r3, 0                                                         |     
                                                                                 |     if (r3 >= 0) {
    0x08028c50 bge 0x802800c                                                     |         goto label_6;
                                                                                 |     }
    0x08028c54 mov r1, r6                                                        |     r1 = r6;
    0x08028c58 mov r0, r7                                                        |     r0 = r7;
    0x08028c5c stmdaeq r4, {r4, r5, r7, fp, pc}                                  |     __asm ("stmdaeq r4, {r4, r5, r7, fp, pc}");
    0x08028c60 mov r4, r0                                                        |     r4 = r0;
    0x08028c64 b 0x802800c                                                       |     goto label_6;
                                                                                 | label_34:
    0x08028c68 add r7, sp, 0x54                                                  |     r7 += var_54h;
    0x08028c6c mov r3, sp                                                        |     r3 = sp;
    0x08028c70 bic r2, r3, 0x1fc0                                                |     r2 = BIT_MASK (r3, 0x1fc0);
    0x08028c74 mov r3, 0                                                         |     r3 = 0;
    0x08028c78 bic r2, r2, 0x3f                                                  |     r2 = BIT_MASK (r2, 0x3f);
    0x08028c7c str r3, [sp, 0x54]                                                |     var_54h = r3;
    0x08028c80 str r3, [r7, 4]                                                   |     var_58h = r3;
    0x08028c84 str r3, [r7, 8]                                                   |     var_5ch = r3;
    0x08028c88 str r3, [r7, 0xc]                                                 |     var_60h = r3;
    0x08028c8c ldr r3, [r2, 8]                                                   |     r3 = *((r2 + 8));
    0x08028c90 adds r1, r8, 0x20                                                 |     r1 = r8 + 0x20;
    0x08028c94 sbcslo r1, r1, r3                                                 |     __asm ("sbcslo r1, r1, r3");
                                                                                 |     if (r1 >= r8) {
    0x08028c98 movlo r3, 0                                                       |         r3 = 0;
                                                                                 |     }
    0x08028c9c cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x08028ca0 bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x08028ca4 mrc p15, 0, r4, c3, c0, 0                                         |     __asm ("mrc p15, 0, r4, c3, c0, 0");
    0x08028ca8 bic r3, r4, 0xc                                                   |     r3 = BIT_MASK (r4, 0xc);
    0x08028cac orr r3, r3, 4                                                     |     r3 |= 4;
    0x08028cb0 mcr p15, 0, r3, c3, c0, 0                                         |     __asm ("mcr p15, 0, r3, c3, c0, 0");
    0x08028cb4 isb sy                                                            |     __asm ("isb sy");
    0x08028cb8 add sb, sp, 0x70                                                  |     sb += var_70h;
    0x08028cbc mov r1, r8                                                        |     r1 = r8;
    0x08028cc0 mov r0, sb                                                        |     r0 = sb;
    0x08028cc4 mov r2, 0x20                                                      |     r2 = 0x20;
    0x08028cc8 stmdaeq r8, {sb, fp, ip, sp, lr}                                  |     __asm ("stmdaeq r8, {sb, fp, ip, sp, lr}");
    0x08028ccc mcr p15, 0, r4, c3, c0, 0                                         |     __asm ("mcr p15, 0, r4, c3, c0, 0");
    0x08028cd0 isb sy                                                            |     __asm ("isb sy");
    0x08028cd4 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x08028cd8 bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x08028cdc ldr r2, [sp, 0x88]                                                |     r2 = var_88h;
    0x08028ce0 movw r3, 0x4924                                                   |     
    0x08028ce4 movt r3, 0x492                                                    |     r3 = 0x4924924;
    0x08028ce8 cmp r2, r3                                                        |     
                                                                                 |     if (r2 > r3) {
    0x08028cec bhi 0x8029290                                                     |         goto label_57;
                                                                                 |     }
    0x08028cf0 add r3, r8, 0x20                                                  |     r3 = r8 + 0x20;
    0x08028cf4 str r2, [sp, 0x5c]                                                |     var_5ch = r2;
    0x08028cf8 str r3, [sp, 0x60]                                                |     var_60h = r3;
    0x08028cfc mov r1, r7                                                        |     r1 = r7;
    0x08028d00 ldrd r2, r3, [sp, 0x78]                                           |     __asm ("ldrd r2, r3, [var_78h]");
    0x08028d04 strd r2, r3, [sp]                                                 |     __asm ("strd r2, r3, [sp]");
    0x08028d08 ldr r3, [sp, 0x80]                                                |     r3 = var_80h;
    0x08028d0c mov r0, r6                                                        |     r0 = r6;
    0x08028d10 str r3, [sp, 0x54]                                                |     var_54h = r3;
    0x08028d14 ldrd r2, r3, [sp, 0x70]                                           |     __asm ("ldrd r2, r3, [var_70h]");
    0x08028d18 stmdaeq r0, {r2, r3, r5, r7, sb, lr, pc}                          |     __asm ("stmdaeq r0, {r2, r3, r5, r7, sb, lr, pc}");
    0x08028d1c mov r3, sp                                                        |     r3 = sp;
    0x08028d20 mov r4, r0                                                        |     r4 = r0;
    0x08028d24 bic r2, r3, 0x1fc0                                                |     r2 = BIT_MASK (r3, 0x1fc0);
    0x08028d28 ldr r3, [sp, 0x54]                                                |     r3 = var_54h;
    0x08028d2c str r3, [sp, 0x80]                                                |     var_80h = r3;
    0x08028d30 bic r2, r2, 0x3f                                                  |     r2 = BIT_MASK (r2, 0x3f);
    0x08028d34 ldr r3, [sp, 0x58]                                                |     r3 = var_58h;
    0x08028d38 str r3, [sp, 0x84]                                                |     var_84h = r3;
    0x08028d3c ldr r3, [r2, 8]                                                   |     r3 = *((r2 + 8));
    0x08028d40 adds r1, r8, 0x20                                                 |     r1 = r8 + 0x20;
    0x08028d44 sbcslo r1, r1, r3                                                 |     __asm ("sbcslo r1, r1, r3");
                                                                                 |     if (r1 >= r8) {
    0x08028d48 movlo r3, 0                                                       |         r3 = 0;
                                                                                 |     }
    0x08028d4c cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x08028d50 bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x08028d54 mrc p15, 0, r5, c3, c0, 0                                         |     __asm ("mrc p15, 0, r5, c3, c0, 0");
    0x08028d58 bic r3, r5, 0xc                                                   |     r3 = BIT_MASK (r5, 0xc);
    0x08028d5c orr r3, r3, 4                                                     |     r3 |= 4;
    0x08028d60 mcr p15, 0, r3, c3, c0, 0                                         |     __asm ("mcr p15, 0, r3, c3, c0, 0");
    0x08028d64 isb sy                                                            |     __asm ("isb sy");
    0x08028d68 mov r2, 0x20                                                      |     r2 = 0x20;
    0x08028d6c mov r1, sb                                                        |     r1 = sb;
    0x08028d70 mov r0, r8                                                        |     r0 = r8;
    0x08028d74 stmdaeq r8, {r2, r3, r4, r5, r6, r7, r8, fp, ip, sp, lr}          |     __asm ("stmdaeq r8, {r2, r3, r4, r5, r6, r7, r8, fp, ip, sp, lr}");
    0x08028d78 mcr p15, 0, r5, c3, c0, 0                                         |     __asm ("mcr p15, 0, r5, c3, c0, 0");
    0x08028d7c isb sy                                                            |     __asm ("isb sy");
    0x08028d80 cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x08028d84 beq 0x8027e4c                                                     |         goto label_0;
                                                                                 |     }
    0x08028d88 b 0x80282c4                                                       |     goto label_3;
                                                                                 | label_27:
    0x08028d8c mov r3, sp                                                        |     r3 = sp;
    0x08028d90 bic r2, r3, 0x1fc0                                                |     r2 = BIT_MASK (r3, 0x1fc0);
    0x08028d94 bic r2, r2, 0x3f                                                  |     r2 = BIT_MASK (r2, 0x3f);
    0x08028d98 ldr r3, [r2, 8]                                                   |     r3 = *((r2 + 8));
    0x08028d9c adds r1, r8, 0x30                                                 |     r1 = r8 + 0x30;
    0x08028da0 sbcslo r1, r1, r3                                                 |     __asm ("sbcslo r1, r1, r3");
                                                                                 |     if (r1 >= r8) {
    0x08028da4 movlo r3, 0                                                       |         r3 = 0;
                                                                                 |     }
    0x08028da8 cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x08028dac bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x08028db0 mrc p15, 0, r4, c3, c0, 0                                         |     __asm ("mrc p15, 0, r4, c3, c0, 0");
    0x08028db4 bic r3, r4, 0xc                                                   |     r3 = BIT_MASK (r4, 0xc);
    0x08028db8 orr r3, r3, 4                                                     |     r3 |= 4;
    0x08028dbc mcr p15, 0, r3, c3, c0, 0                                         |     __asm ("mcr p15, 0, r3, c3, c0, 0");
    0x08028dc0 isb sy                                                            |     __asm ("isb sy");
    0x08028dc4 add sb, sp, 0x70                                                  |     sb += var_70h;
    0x08028dc8 mov r1, r8                                                        |     r1 = r8;
    0x08028dcc mov r0, sb                                                        |     r0 = sb;
    0x08028dd0 mov r2, 0x30                                                      |     r2 = 0x30;
    0x08028dd4 stmdaeq r8, {sb, fp, ip, sp, lr}                                  |     __asm ("stmdaeq r8, {sb, fp, ip, sp, lr}");
    0x08028dd8 mcr p15, 0, r4, c3, c0, 0                                         |     __asm ("mcr p15, 0, r4, c3, c0, 0");
    0x08028ddc isb sy                                                            |     __asm ("isb sy");
    0x08028de0 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x08028de4 bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x08028de8 ldr r3, [r5, 0x10]                                                |     r3 = *((r5 + 0x10));
    0x08028dec ldr r6, [r3, 0x14]                                                |     r6 = *((r3 + 0x14));
    0x08028df0 mov r0, r6                                                        |     r0 = r6;
    0x08028df4 stmdaeq r4, {r2, r4, sp}                                          |     __asm ("stmdaeq r4, {r2, r4, sp}");
    0x08028df8 subs r4, r0, 0                                                    |     r4 = r0 - 0;
                                                                                 |     if (r4 != r0) {
    0x08028dfc bne 0x8027e4c                                                     |         goto label_0;
                                                                                 |     }
    0x08028e00 ldr r3, [r6, 0x1f0]                                               |     r3 = *((r6 + 0x1f0));
    0x08028e04 ldr r3, [r3, 0x44]                                                |     r3 = *((r3 + 0x44));
    0x08028e08 ldr r3, [r3, 0x64]                                                |     r3 = *((r3 + 0x64));
    0x08028e0c tst r3, 0x200                                                     |     
                                                                                 |     if ((r3 & 0x200) != 0) {
    0x08028e10 bne 0x80291b8                                                     |         goto label_58;
                                                                                 |     }
    0x08028e14 mov r0, r5                                                        |     r0 = r5;
    0x08028e18 stmdaeq r8, {r2, r3, sb, fp, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r2, r3, sb, fp, ip, sp, lr}");
    0x08028e1c subs r4, r0, 0                                                    |     r4 = r0 - 0;
                                                                                 |     if (r4 == r0) {
    0x08028e20 bne 0x8028e80                                                     |         
    0x08028e24 mov r1, sb                                                        |         r1 = sb;
    0x08028e28 mov r0, r6                                                        |         r0 = r6;
    0x08028e2c stmdaeq r4, {r6, r8, sp}                                          |         __asm ("stmdaeq r4, {r6, r8, sp}");
    0x08028e30 ldr r3, [r6, 0x1f0]                                               |         r3 = *((r6 + 0x1f0));
    0x08028e34 mov r7, r0                                                        |         r7 = r0;
    0x08028e38 ldr r0, [r3, 0x118]                                               |         r0 = *((r3 + 0x118));
    0x08028e3c cmp r0, 0                                                         |         
                                                                                 |         if (r0 == 0) {
    0x08028e40 beq 0x802920c                                                     |             goto label_59;
                                                                                 |         }
    0x08028e44 stmdaeq r8, {r2, r5, r8, fp, ip, sp, lr}                          |         __asm ("stmdaeq r8, {r2, r5, r8, fp, ip, sp, lr}");
    0x08028e48 ldr r3, [r6, 0x1f0]                                               |         r3 = *((r6 + 0x1f0));
    0x08028e4c ldr r0, [r3, 0x118]                                               |         r0 = *((r3 + 0x118));
    0x08028e50 stmdaeq r8, {r3, r5, r8, fp, ip, sp, lr}                          |         __asm ("stmdaeq r8, {r3, r5, r8, fp, ip, sp, lr}");
    0x08028e54 ldr r3, [r6, 0x1f0]                                               |         r3 = *((r6 + 0x1f0));
    0x08028e58 mov r8, r0                                                        |         r8 = r0;
    0x08028e5c ldr r0, [r3, 0x118]                                               |         r0 = *((r3 + 0x118));
    0x08028e60 stmdaeq r8, {r2, r3, r5, r8, fp, ip, sp, lr}                      |         __asm ("stmdaeq r8, {r2, r3, r5, r8, fp, ip, sp, lr}");
    0x08028e64 cmp r7, 0                                                         |         
                                                                                 |         if (r7 != 0) {
    0x08028e68 bne 0x80291fc                                                     |             goto label_60;
                                                                                 |         }
    0x08028e6c mov r0, r5                                                        |         r0 = r5;
    0x08028e70 stmdaeq r8, {r4, sb, fp, ip, sp, lr}                              |         __asm ("stmdaeq r8, {r4, sb, fp, ip, sp, lr}");
    0x08028e74 cmp r8, 0                                                         |         
                                                                                 |         if (r8 == 0) {
    0x08028e78 movne r4, r8                                                      |             r4 = r8;
                                                                                 |         }
                                                                                 |         if (r8 == 0) {
    0x08028e7c beq 0x802921c                                                     |             goto label_61;
                                                                                 |         }
                                                                                 |     }
                                                                                 | label_15:
    0x08028e80 mov r0, r6                                                        |     r0 = r6;
    0x08028e84 stmdaeq r4, {r2, r3, r4, r8, sp}                                  |     __asm ("stmdaeq r4, {r2, r3, r4, r8, sp}");
    0x08028e88 b 0x8027e4c                                                       |     goto label_0;
                                                                                 | label_24:
    0x08028e8c ldr r2, [r6, -0x70]                                               |     r2 = *((r6 - 0x70));
    0x08028e90 ldr r3, [r6, -0x70]                                               |     r3 = *((r6 - 0x70));
    0x08028e94 tst r3, 2                                                         |     
    0x08028e98 ldr r3, [r6, -0x70]                                               |     r3 = *((r6 - 0x70));
    0x08028e9c ubfx r2, r2, 8, 1                                                 |     r2 = (r2 >> 8) & ((1 << 1) - 1);
                                                                                 |     if ((r3 & 2) == 0) {
    0x08028ea0 orrne r2, r2, 2                                                   |         r2 |= 2;
                                                                                 |     }
    0x08028ea4 tst r3, 0x40                                                      |     
    0x08028ea8 ldr r3, [r6, -0x70]                                               |     r3 = *((r6 - 0x70));
                                                                                 |     if ((r3 & 0x40) == 0) {
    0x08028eac orrne r2, r2, 4                                                   |         r2 |= 4;
                                                                                 |     }
    0x08028eb0 tst r3, 0x10                                                      |     
                                                                                 |     if ((r3 & 0x10) == 0) {
    0x08028eb4 orrne r2, r2, 8                                                   |         r2 |= 8;
                                                                                 |     }
    0x08028eb8 b 0x8028578                                                       |     goto label_7;
                                                                                 | label_22:
    0x08028ebc mov r0, 0x15                                                      |     r0 = 0x15;
    0x08028ec0 ldr r6, [r7, 0x1f0]                                               |     r6 = *((r7 + 0x1f0));
    0x08028ec4 stmdaeq r8, {r2, r6, r7, sb, sl, ip, sp, lr}                      |     __asm ("stmdaeq r8, {r2, r6, r7, sb, sl, ip, sp, lr}");
    0x08028ec8 cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x08028ecc beq 0x8028540                                                     |         goto label_8;
                                                                                 |     }
    0x08028ed0 mov r3, sp                                                        |     r3 = sp;
    0x08028ed4 mov r0, r8                                                        |     r0 = r8;
    0x08028ed8 bic r3, r3, 0x1fc0                                                |     r3 = BIT_MASK (r3, 0x1fc0);
    0x08028edc bic r3, r3, 0x3f                                                  |     r3 = BIT_MASK (r3, 0x3f);
    0x08028ee0 mrc p15, 0, ip, c3, c0, 0                                         |     __asm ("mrc p15, 0, ip, c3, c0, 0");
    0x08028ee4 ldr r1, [r3, 8]                                                   |     r1 = *((r3 + 8));
    0x08028ee8 bic r3, ip, 0xc                                                   |     r3 = BIT_MASK (ip, 0xc);
    0x08028eec orr r3, r3, 4                                                     |     r3 |= 4;
    0x08028ef0 sub r1, r1, 1                                                     |     r1--;
    0x08028ef4 mcr p15, 0, r3, c3, c0, 0                                         |     __asm ("mcr p15, 0, r3, c3, c0, 0");
    0x08028ef8 isb sy                                                            |     __asm ("isb sy");
    0x08028efc stmdaeq r8, {r3, sb, fp, ip, sp, lr}                              |     __asm ("stmdaeq r8, {r3, sb, fp, ip, sp, lr}");
    0x08028f00 mcr p15, 0, ip, c3, c0, 0                                         |     __asm ("mcr p15, 0, ip, c3, c0, 0");
    0x08028f04 isb sy                                                            |     __asm ("isb sy");
    0x08028f08 mov r5, r2                                                        |     r5 = r2;
    0x08028f0c subs r4, r0, 0                                                    |     r4 = r0 - 0;
                                                                                 |     if (r4 != r0) {
    0x08028f10 bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x08028f14 cmp r2, 2                                                         |     
                                                                                 |     if (r2 > 2) {
    0x08028f18 bhi 0x8029290                                                     |         goto label_57;
                                                                                 |     }
    0x08028f1c ldr r3, [r6, 0x130]                                               |     r3 = *((r6 + 0x130));
    0x08028f20 tst r3, 2                                                         |     
                                                                                 |     if ((r3 & 2) != 0) {
    0x08028f24 bne 0x8027e4c                                                     |         goto label_0;
                                                                                 |     }
    0x08028f28 mov r3, r2                                                        |     r3 = r2;
    0x08028f2c mov r0, r7                                                        |     r0 = r7;
    0x08028f30 stmdaeq r5, {r2, r4, r6, r7, sb, fp, sp, pc}                      |     __asm ("stmdaeq r5, {r2, r4, r6, r7, sb, fp, sp, pc}");
    0x08028f34 stmdaeq r5, {r2, r4, r6, r7, sb, fp, sp, pc}                      |     __asm ("stmdaeq r5, {r2, r4, r6, r7, sb, fp, sp, pc}");
    0x08028f38 stmdaeq r5, {r4, r5, r6, r7, sb, fp, sp, pc}                      |     __asm ("stmdaeq r5, {r4, r5, r6, r7, sb, fp, sp, pc}");
    0x08028f3c stmdaeq r5, {r4, r5, r6, r7, sb, fp, sp, pc}                      |     __asm ("stmdaeq r5, {r4, r5, r6, r7, sb, fp, sp, pc}");
    0x08028f40 stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}              |     __asm ("stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}");
    0x08028f44 cmp r5, 1                                                         |     
                                                                                 |     if (r5 == 1) {
    0x08028f48 beq 0x802913c                                                     |         goto label_62;
                                                                                 |     }
    0x08028f4c cmp r5, 2                                                         |     
                                                                                 |     if (r5 == 2) {
    0x08028f50 beq 0x8029100                                                     |         goto label_63;
                                                                                 |     }
    0x08028f54 ldr r0, [r7, 0x70]                                                |     r0 = *((r7 + 0x70));
    0x08028f58 stmdaeq r8, {r4, r5, sb, fp, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r4, r5, sb, fp, ip, sp, lr}");
    0x08028f5c mrs r2, apsr                                                      |     r2 = apsr;
    0x08028f60 cpsid i                                                           |     __asm ("cpsid i");
    0x08028f64 ldr r3, [r6, 0x130]                                               |     r3 = *((r6 + 0x130));
    0x08028f68 orr r3, r3, 2                                                     |     r3 |= 2;
    0x08028f6c str r3, [r6, 0x130]                                               |     *((r6 + 0x130)) = r3;
    0x08028f70 msr cpsr_c, r2                                                    |     cpsr_c = r2;
    0x08028f74 ldr r0, [r7, 0x70]                                                |     r0 = *((r7 + 0x70));
    0x08028f78 mov r1, r7                                                        |     r1 = r7;
    0x08028f7c stmdaeq r8, {r2, r4, r5, sb, fp, ip, sp, lr}                      |     __asm ("stmdaeq r8, {r2, r4, r5, sb, fp, ip, sp, lr}");
                                                                                 | label_13:
    0x08028f80 ldr r2, [r7, 0x1f0]                                               |     r2 = *((r7 + 0x1f0));
    0x08028f84 mov r4, 0                                                         |     r4 = 0;
    0x08028f88 ldr r3, [r2, 0x4c]                                                |     r3 = *((r2 + 0x4c));
    0x08028f8c bic r3, r3, 0x40000000                                            |     r3 = BIT_MASK (r3, 0x40000000);
    0x08028f90 str r3, [r2, 0x4c]                                                |     *((r2 + 0x4c)) = r3;
    0x08028f94 b 0x8027e4c                                                       |     goto label_0;
                                                                                 | label_43:
    0x08028f98 add r1, sp, 0x70                                                  |     r1 += var_70h;
    0x08028f9c mov r0, r6                                                        |     r0 = r6;
    0x08028fa0 bl 0x8027334                                                      |     ext4_fill_fsxattr ();
    0x08028fa4 mov r3, sp                                                        |     r3 = sp;
    0x08028fa8 bic r2, r3, 0x1fc0                                                |     r2 = BIT_MASK (r3, 0x1fc0);
    0x08028fac bic r2, r2, 0x3f                                                  |     r2 = BIT_MASK (r2, 0x3f);
    0x08028fb0 ldr r3, [r2, 8]                                                   |     r3 = *((r2 + 8));
    0x08028fb4 adds r1, r8, 0x1c                                                 |     r1 = r8 + 0x1c;
    0x08028fb8 sbcslo r1, r1, r3                                                 |     __asm ("sbcslo r1, r1, r3");
                                                                                 |     if (r1 >= r8) {
    0x08028fbc movlo r3, 0                                                       |         r3 = 0;
                                                                                 |     }
    0x08028fc0 cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x08028fc4 bne 0x80282c4                                                     |         goto label_3;
                                                                                 |     }
    0x08028fc8 mrc p15, 0, r5, c3, c0, 0                                         |     __asm ("mrc p15, 0, r5, c3, c0, 0");
    0x08028fcc bic r3, r5, 0xc                                                   |     r3 = BIT_MASK (r5, 0xc);
    0x08028fd0 orr r3, r3, 4                                                     |     r3 |= 4;
    0x08028fd4 mcr p15, 0, r3, c3, c0, 0                                         |     __asm ("mcr p15, 0, r3, c3, c0, 0");
    0x08028fd8 isb sy                                                            |     __asm ("isb sy");
    0x08028fdc mov r2, 0x1c                                                      |     r2 = 0x1c;
    0x08028fe0 b 0x80282a4                                                       |     goto label_9;
                                                                                 | label_50:
    0x08028fec stmdaeq r6, {r1, r2, r3, r4, r6, r8}                              |     __asm ("stmdaeq r6, {r1, r2, r3, r4, r6, r8}");
    0x08028ff0 stmdaeq r6, {r1, r2, r3, r4, r6, r8}                              |     __asm ("stmdaeq r6, {r1, r2, r3, r4, r6, r8}");
    0x08028ff4 ldrb r3, [ip]                                                     |     r3 = *(ip);
    0x08028ff8 cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x08028ffc bne 0x802903c                                                     |         goto label_49;
                                                                                 |     }
    0x08029000 mov r2, 9                                                         |     r2 = 9;
    0x08029004 movw r1, 0xc34                                                    |     r1 = 0xc34;
    0x08029008 stmdaeq r5, {r2, r3, r4, r5, r6, r7, r8, fp, sp, pc}              |     __asm ("stmdaeq r5, {r2, r3, r4, r5, r6, r7, r8, fp, sp, pc}");
    0x0802900c stmdaeq r5, {r2, r3, r4, r5, r6, r7, r8, fp, sp, pc}              |     __asm ("stmdaeq r5, {r2, r3, r4, r5, r6, r7, r8, fp, sp, pc}");
    0x08029010 mov lr, 1                                                         |     lr = 1;
    0x08029014 strb lr, [ip]                                                     |     
    0x08029018 stmdaeq r8, {r2, r8, sb, sl, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r2, r8, sb, sl, ip, sp, lr}");
    0x0802901c ldr r3, [r4, 0x1f0]                                               |     r3 = *((r4 + 0x1f0));
    0x08029020 ldr r2, [r3, 0x44]                                                |     r2 = *((r3 + 0x44));
    0x08029024 ldr r2, [r2, 0x64]                                                |     r2 = *((r2 + 0x64));
    0x08029028 tst r2, 0x400                                                     |     
                                                                                 |     if ((r2 & 0x400) == 0) {
    0x0802902c beq 0x802903c                                                     |         goto label_49;
                                                                                 |     }
    0x08029030 ldr r3, [r3, 0x220]                                               |     r3 = *((r3 + 0x220));
    0x08029034 cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x08029038 bne 0x80289f4                                                     |         goto label_10;
                                                                                 |     }
                                                                                 | label_49:
    0x0802903c mov r0, r5                                                        |     r0 = r5;
    0x08029040 stmdaeq r8, {r2, r3, sb, fp, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r2, r3, sb, fp, ip, sp, lr}");
    0x08029044 subs r4, r0, 0                                                    |     r4 = r0 - 0;
                                                                                 |     if (r4 != r0) {
    0x08029048 bne 0x8027e4c                                                     |         goto label_0;
                                                                                 |     }
    0x0802904c mov r3, sp                                                        |     r3 = sp;
    0x08029050 mov r0, r8                                                        |     r0 = r8;
    0x08029054 bic r3, r3, 0x1fc0                                                |     r3 = BIT_MASK (r3, 0x1fc0);
    0x08029058 bic r3, r3, 0x3f                                                  |     r3 = BIT_MASK (r3, 0x3f);
    0x0802905c mrc p15, 0, ip, c3, c0, 0                                         |     __asm ("mrc p15, 0, ip, c3, c0, 0");
    0x08029060 ldr r1, [r3, 8]                                                   |     r1 = *((r3 + 8));
    0x08029064 bic r3, ip, 0xc                                                   |     r3 = BIT_MASK (ip, 0xc);
    0x08029068 orr r3, r3, 4                                                     |     r3 |= 4;
    0x0802906c sub r1, r1, 1                                                     |     r1--;
    0x08029070 mcr p15, 0, r3, c3, c0, 0                                         |     __asm ("mcr p15, 0, r3, c3, c0, 0");
    0x08029074 isb sy                                                            |     __asm ("isb sy");
    0x08029078 stmdaeq r8, {r3, sb, fp, ip, sp, lr}                              |     __asm ("stmdaeq r8, {r3, sb, fp, ip, sp, lr}");
    0x0802907c mcr p15, 0, ip, c3, c0, 0                                         |     __asm ("mcr p15, 0, ip, c3, c0, 0");
    0x08029080 isb sy                                                            |     __asm ("isb sy");
    0x08029084 cmp r0, 0                                                         |     
    0x08029088 mov r8, r2                                                        |     r8 = r2;
                                                                                 |     if (r0 != 0) {
    0x0802908c mvnne r4, 0xd                                                     |         r4 = ~0xd;
                                                                                 |         goto label_64;
                                                                                 |     }
                                                                                 |     if (r0 != 0) {
                                                                                 | label_64:
    0x08029090 bne 0x8028938                                                     |         goto label_11;
                                                                                 |     }
    0x08029094 add sb, r6, 0x7c                                                  |     sb = r6 + 0x7c;
    0x08029098 mov r0, sb                                                        |     r0 = sb;
    0x0802909c stmdaeq r8, {r2, r6, r7, r8, sb, sl, ip, sp, lr}                  |     __asm ("stmdaeq r8, {r2, r6, r7, r8, sb, sl, ip, sp, lr}");
    0x080290a0 ldr r0, [r6, 0x14]                                                |     r0 = *((r6 + 0x14));
    0x080290a4 mov r3, 1                                                         |     r3 = 1;
    0x080290a8 movw r1, 0x382                                                    |     r1 = 0x382;
    0x080290ac mov r2, r3                                                        |     r2 = r3;
    0x080290b0 ldr ip, [r0, 0x1f0]                                               |     ip = *((r0 + 0x1f0));
    0x080290b4 ldr ip, [ip, 0x2c]                                                |     ip = *((ip + 0x2c));
    0x080290b8 str r4, [sp]                                                      |     *(sp) = r4;
    0x080290bc lsl ip, ip, 3                                                     |     
    0x080290c0 str ip, [sp, 4]                                                   |     var_4h = ip;
    0x080290c4 stmdaeq r0, {r4, r5, r6, r7, r8, sb, sl, ip, sp}                  |     __asm ("stmdaeq r0, {r4, r5, r6, r7, r8, sb, sl, ip, sp}");
    0x080290c8 cmn r0, 0x1000                                                    |     
    0x080290cc mov r7, r0                                                        |     r7 = r0;
                                                                                 |     if (r0 > 0x1000) {
    0x080290d0 movhi r4, r0                                                      |         r4 = r0;
                                                                                 |         goto label_65;
                                                                                 |     }
                                                                                 |     if (r0 > 0x1000) {
                                                                                 | label_65:
    0x080290d4 bhi 0x80284f4                                                     |         goto label_12;
                                                                                 |     }
    0x080290d8 mov r1, r6                                                        |     r1 = r6;
    0x080290dc add r2, sp, 0x70                                                  |     r2 += var_70h;
    0x080290e0 stmdaeq r2, {r3, r6, r7, r8, sb, sl, fp, ip}                      |     __asm ("stmdaeq r2, {r3, r6, r7, r8, sb, sl, fp, ip}");
    0x080290e4 subs r4, r0, 0                                                    |     r4 = r0 - 0;
                                                                                 |     if (r4 == r0) {
    0x080290e8 beq 0x8029250                                                     |         goto label_66;
                                                                                 |     }
                                                                                 | label_17:
    0x080290ec mov r2, r7                                                        |     r2 = r7;
    0x080290f0 movw r1, 0x38d                                                    |     r1 = 0x38d;
    0x080290f4 ldr r0, [pc, 0x3a4]                                               |     r0 = "ext4_validate_block_bitmap";
    0x080290f8 stmdaeq r0, {r2, r3, r8, fp, ip, sp}                              |     __asm ("stmdaeq r0, {r2, r3, r8, fp, ip, sp}");
    0x080290fc b 0x80284f4                                                       |     goto label_12;
                                                                                 | label_63:
    0x08029100 mrs r2, apsr                                                      |     r2 = apsr;
    0x08029104 cpsid i                                                           |     __asm ("cpsid i");
    0x08029108 ldr r3, [r6, 0x130]                                               |     r3 = *((r6 + 0x130));
    0x0802910c orr r3, r3, 2                                                     |     r3 |= 2;
    0x08029110 str r3, [r6, 0x130]                                               |     *((r6 + 0x130)) = r3;
    0x08029114 msr cpsr_c, r2                                                    |     cpsr_c = r2;
    0x08029118 ldr r0, [r6, 0x118]                                               |     r0 = *((r6 + 0x118));
    0x0802911c cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x08029120 beq 0x8028f80                                                     |         goto label_13;
                                                                                 |     }
    0x08029124 ldr r3, [r0]                                                      |     r3 = *(r0);
    0x08029128 tst r3, 2                                                         |     
                                                                                 |     if ((r3 & 2) != 0) {
    0x0802912c bne 0x8028f80                                                     |         goto label_13;
                                                                                 |     }
    0x08029130 mvn r1, 0x6b                                                      |     r1 = ~0x6b;
    0x08029134 stmdaeq r8, {r3, r4, r5, sb, fp, ip, sp, lr}                      |     __asm ("stmdaeq r8, {r3, r4, r5, sb, fp, ip, sp, lr}");
    0x08029138 b 0x8028f80                                                       |     goto label_13;
                                                                                 | label_62:
    0x0802913c mrs r2, apsr                                                      |     r2 = apsr;
    0x08029140 cpsid i                                                           |     __asm ("cpsid i");
    0x08029144 ldr r3, [r6, 0x130]                                               |     r3 = *((r6 + 0x130));
    0x08029148 orr r3, r3, 2                                                     |     r3 |= 2;
    0x0802914c str r3, [r6, 0x130]                                               |     *((r6 + 0x130)) = r3;
    0x08029150 msr cpsr_c, r2                                                    |     cpsr_c = r2;
    0x08029154 ldr r3, [r6, 0x118]                                               |     r3 = *((r6 + 0x118));
    0x08029158 cmp r3, 0                                                         |     
                                                                                 |     if (r3 == 0) {
    0x0802915c beq 0x8028f80                                                     |         goto label_13;
                                                                                 |     }
    0x08029160 ldr r3, [r3]                                                      |     r3 = *(r3);
    0x08029164 tst r3, 2                                                         |     
                                                                                 |     if ((r3 & 2) != 0) {
    0x08029168 bne 0x8028f80                                                     |         goto label_13;
                                                                                 |     }
    0x0802916c mov r0, r7                                                        |     r0 = r7;
    0x08029170 stmdaeq r4, {r4, ip, lr, pc}                                      |     __asm ("stmdaeq r4, {r4, ip, lr, pc}");
    0x08029174 ldr r0, [r6, 0x118]                                               |     r0 = *((r6 + 0x118));
    0x08029178 mvn r1, 0x6b                                                      |     r1 = ~0x6b;
    0x0802917c stmdaeq r8, {r3, r4, r5, sb, fp, ip, sp, lr}                      |     __asm ("stmdaeq r8, {r3, r4, r5, sb, fp, ip, sp, lr}");
    0x08029180 b 0x8028f80                                                       |     goto label_13;
                                                                                 | label_39:
    0x08029184 mov r1, r7                                                        |     r1 = r7;
    0x08029188 mov r0, r6                                                        |     r0 = r6;
    0x0802918c bl 0x8027424                                                      |     r0 = ext4_ioctl_setflags ();
    0x08029190 mov r4, r0                                                        |     r4 = r0;
    0x08029194 b 0x8028174                                                       |     goto label_14;
                                                                                 | label_31:
    0x08029198 mov r0, r7                                                        |     r0 = r7;
    0x0802919c stmdaeq r5, {r4, r6, sb, fp, sp, pc}                              |     __asm ("stmdaeq r5, {r4, r6, sb, fp, sp, pc}");
    0x080291a0 stmdaeq r5, {r4, r6, sb, fp, sp, pc}                              |     __asm ("stmdaeq r5, {r4, r6, sb, fp, sp, pc}");
    0x080291a4 stmdaeq r5, {r2, r3, r4, r5, r6, sb, fp, sp, pc}                  |     __asm ("stmdaeq r5, {r2, r3, r4, r5, r6, sb, fp, sp, pc}");
    0x080291a8 stmdaeq r5, {r2, r3, r4, r5, r6, sb, fp, sp, pc}                  |     __asm ("stmdaeq r5, {r2, r3, r4, r5, r6, sb, fp, sp, pc}");
    0x080291ac mvn r4, 0x5e                                                      |     r4 = ~0x5e;
    0x080291b0 stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}              |     __asm ("stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}");
    0x080291b4 b 0x802800c                                                       |     goto label_6;
                                                                                 | label_58:
    0x080291b8 mov r0, r6                                                        |     r0 = r6;
    0x080291bc stmdaeq r5, {r4, r6, sb, fp, sp, pc}                              |     __asm ("stmdaeq r5, {r4, r6, sb, fp, sp, pc}");
    0x080291c0 stmdaeq r5, {r4, r6, sb, fp, sp, pc}                              |     __asm ("stmdaeq r5, {r4, r6, sb, fp, sp, pc}");
    0x080291c4 stmdaeq r5, {r2, r3, r4, r5, r6, sb, fp, sp, pc}                  |     __asm ("stmdaeq r5, {r2, r3, r4, r5, r6, sb, fp, sp, pc}");
    0x080291c8 stmdaeq r5, {r2, r3, r4, r5, r6, sb, fp, sp, pc}                  |     __asm ("stmdaeq r5, {r2, r3, r4, r5, r6, sb, fp, sp, pc}");
    0x080291cc mvn r4, 0x5e                                                      |     r4 = ~0x5e;
    0x080291d0 stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}              |     __asm ("stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}");
    0x080291d4 b 0x8028e80                                                       |     goto label_15;
                                                                                 |     do {
                                                                                 | label_54:
    0x080291d8 mov r0, r5                                                        |         r0 = r5;
    0x080291dc mov r4, sb                                                        |         r4 = sb;
    0x080291e0 stmdaeq r8, {r4, sb, fp, ip, sp, lr}                              |         __asm ("stmdaeq r8, {r4, sb, fp, ip, sp, lr}");
    0x080291e4 b 0x802800c                                                       |         goto label_6;
                                                                                 | label_53:
    0x080291e8 cmp r0, 0                                                         |         
    0x080291ec bne 0x80291d8                                                     |         
                                                                                 |     } while (r0 != 0);
    0x080291f0 mov r0, r5                                                        |     r0 = r5;
    0x080291f4 stmdaeq r8, {r4, sb, fp, ip, sp, lr}                              |     __asm ("stmdaeq r8, {r4, sb, fp, ip, sp, lr}");
    0x080291f8 b 0x8028c28                                                       |     goto label_16;
                                                                                 |     do {
                                                                                 | label_60:
    0x080291fc mov r0, r5                                                        |         r0 = r5;
    0x08029200 mov r4, r7                                                        |         r4 = r7;
    0x08029204 stmdaeq r8, {r4, sb, fp, ip, sp, lr}                              |         __asm ("stmdaeq r8, {r4, sb, fp, ip, sp, lr}");
    0x08029208 b 0x8028e80                                                       |         goto label_15;
                                                                                 | label_59:
    0x0802920c cmp r7, 0                                                         |         
    0x08029210 bne 0x80291fc                                                     |         
                                                                                 |     } while (r7 != 0);
    0x08029214 mov r0, r5                                                        |     r0 = r5;
    0x08029218 stmdaeq r8, {r4, sb, fp, ip, sp, lr}                              |     __asm ("stmdaeq r8, {r4, sb, fp, ip, sp, lr}");
                                                                                 | label_61:
    0x0802921c ldr r3, [r6, 0x1f0]                                               |     r3 = *((r6 + 0x1f0));
    0x08029220 ldr r2, [r3, 0x44]                                                |     r2 = *((r3 + 0x44));
    0x08029224 ldr r2, [r2, 0x64]                                                |     r2 = *((r2 + 0x64));
    0x08029228 tst r2, 0x10                                                      |     
                                                                                 |     if ((r2 & 0x10) == 0) {
    0x0802922c beq 0x80292b8                                                     |         goto label_67;
                                                                                 |     }
                                                                                 | label_19:
    0x08029230 ldr r3, [r3, 0x4c]                                                |     r3 = *((r3 + 0x4c));
    0x08029234 cmp r3, 0                                                         |     
                                                                                 |     if (r3 >= 0) {
    0x08029238 bge 0x8028e80                                                     |         goto label_15;
                                                                                 |     }
    0x0802923c ldr r1, [sp, 0x70]                                                |     r1 = var_70h;
    0x08029240 mov r0, r6                                                        |     r0 = r6;
    0x08029244 stmdaeq r4, {r4, r5, r7, fp, pc}                                  |     __asm ("stmdaeq r4, {r4, r5, r7, fp, pc}");
    0x08029248 mov r4, r0                                                        |     r4 = r0;
    0x0802924c b 0x8028e80                                                       |     goto label_15;
                                                                                 | label_66:
    0x08029250 add r4, sp, 0x40                                                  |     r4 += var_40h;
    0x08029254 mov r1, r6                                                        |     r1 = r6;
    0x08029258 mov r0, r4                                                        |     r0 = r4;
    0x0802925c stmdaeq r8, {r6, r7, r8, sb, sl, ip, sp, lr}                      |     __asm ("stmdaeq r8, {r6, r7, r8, sb, sl, ip, sp, lr}");
    0x08029260 add ip, r6, 0x58                                                  |     
    0x08029264 ldm r4, {r0, r1, r2, r3}                                          |     r0 = *(r4);
                                                                                 |     r1 = *((r4 + 4));
                                                                                 |     r2 = *((r4 + 8));
                                                                                 |     r3 = *((r4 + 12));
    0x08029268 stm ip, {r0, r1, r2, r3}                                          |     *(ip) = r0;
                                                                                 |     *((ip + 4)) = r1;
                                                                                 |     *((ip + 8)) = r2;
                                                                                 |     *((ip + 12)) = r3;
    0x0802926c add r2, sp, 0x70                                                  |     r2 += var_70h;
    0x08029270 mov r1, r6                                                        |     r1 = r6;
    0x08029274 mov r0, r7                                                        |     r0 = r7;
    0x08029278 str r8, [r6, 0x154]                                               |     *((r6 + 0x154)) = r8;
    0x0802927c stmdaeq r2, {r2, r5, r7, r8, sl, ip}                              |     __asm ("stmdaeq r2, {r2, r5, r7, r8, sl, ip}");
    0x08029280 mov r4, r0                                                        |     r4 = r0;
    0x08029284 b 0x80290ec                                                       |     goto label_17;
                                                                                 | label_57:
    0x08029290 mvn r4, 0x15                                                      |     r4 = ~0x15;
    0x08029294 b 0x8027e4c                                                       |     goto label_0;
                                                                                 | label_51:
    0x08029298 mov r0, r7                                                        |     r0 = r7;
    0x0802929c stmdaeq r5, {r7, sb, fp, sp, pc}                                  |     __asm ("stmdaeq r5, {r7, sb, fp, sp, pc}");
    0x080292a0 stmdaeq r5, {r7, sb, fp, sp, pc}                                  |     __asm ("stmdaeq r5, {r7, sb, fp, sp, pc}");
    0x080292a4 stmdaeq r5, {r2, r3, r4, r5, r6, sb, fp, sp, pc}                  |     __asm ("stmdaeq r5, {r2, r3, r4, r5, r6, sb, fp, sp, pc}");
    0x080292a8 stmdaeq r5, {r2, r3, r4, r5, r6, sb, fp, sp, pc}                  |     __asm ("stmdaeq r5, {r2, r3, r4, r5, r6, sb, fp, sp, pc}");
    0x080292ac mvn r4, 0x5e                                                      |     r4 = ~0x5e;
    0x080292b0 stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}              |     __asm ("stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}");
    0x080292b4 b 0x8028b1c                                                       |     goto label_18;
                                                                                 | label_67:
    0x080292b8 tst r2, 0x400                                                     |     
                                                                                 |     if ((r2 & 0x400) == 0) {
    0x080292bc beq 0x8028e80                                                     |         goto label_15;
                                                                                 |     }
    0x080292c0 ldr r2, [r3, 0x220]                                               |     r2 = *((r3 + 0x220));
    0x080292c4 cmp r2, 0                                                         |     
                                                                                 |     if (r2 != 0) {
    0x080292c8 bne 0x8029230                                                     |         goto label_19;
                                                                                 |     }
    0x080292cc stmdaeq r6, {r1, r2, r3, r4, r6, r8}                              |     __asm ("stmdaeq r6, {r1, r2, r3, r4, r6, r8}");
    0x080292d0 stmdaeq r6, {r1, r2, r3, r4, r6, r8}                              |     __asm ("stmdaeq r6, {r1, r2, r3, r4, r6, r8}");
    0x080292d4 ldrb r3, [r2]                                                     |     r3 = *(r2);
    0x080292d8 cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x080292dc bne 0x8028e80                                                     |         goto label_15;
                                                                                 |     }
    0x080292e0 mov r1, 1                                                         |     r1 = 1;
    0x080292e4 stmdaeq r5, {r2, r3, r4, r5, r6, r7, r8, fp, sp, pc}              |     __asm ("stmdaeq r5, {r2, r3, r4, r5, r6, r7, r8, fp, sp, pc}");
    0x080292e8 stmdaeq r5, {r2, r3, r4, r5, r6, r7, r8, fp, sp, pc}              |     __asm ("stmdaeq r5, {r2, r3, r4, r5, r6, r7, r8, fp, sp, pc}");
    0x080292ec strb r1, [r2]                                                     |     *(r2) = r1;
    0x080292f0 mov r2, 9                                                         |     r2 = 9;
    0x080292f4 movw r1, 0xc34                                                    |     r1 = 0xc34;
    0x080292f8 stmdaeq r8, {r2, r8, sb, sl, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r2, r8, sb, sl, ip, sp, lr}");
    0x080292fc ldr r3, [r6, 0x1f0]                                               |     r3 = *((r6 + 0x1f0));
    0x08029300 ldr r2, [r3, 0x44]                                                |     r2 = *((r3 + 0x44));
    0x08029304 ldr r2, [r2, 0x64]                                                |     r2 = *((r2 + 0x64));
    0x08029308 tst r2, 0x400                                                     |     
                                                                                 |     if ((r2 & 0x400) == 0) {
    0x0802930c beq 0x8028e80                                                     |         goto label_15;
                                                                                 |     }
    0x08029310 ldr r2, [r3, 0x220]                                               |     r2 = *((r3 + 0x220));
    0x08029314 cmp r2, 0                                                         |     
                                                                                 |     if (r2 == 0) {
    0x08029318 beq 0x8028e80                                                     |         goto label_15;
                                                                                 |     }
    0x0802931c b 0x8029230                                                       |     goto label_19;
                                                                                 | label_52:
    0x08029320 mrc p15, 0, r5, c3, c0, 0                                         |     __asm ("mrc p15, 0, r5, c3, c0, 0");
    0x08029324 bic r3, r5, 0xc                                                   |     r3 = BIT_MASK (r5, 0xc);
    0x08029328 orr r3, r3, 4                                                     |     r3 |= 4;
    0x0802932c mcr p15, 0, r3, c3, c0, 0                                         |     __asm ("mcr p15, 0, r3, c3, c0, 0");
    0x08029330 isb sy                                                            |     __asm ("isb sy");
    0x08029334 mov r2, 0x28                                                      |     r2 = 0x28;
    0x08029338 add r1, sp, 0x70                                                  |     r1 += var_70h;
    0x0802933c mov r0, r8                                                        |     r0 = r8;
    0x08029340 stmdaeq r8, {r2, r3, r4, r5, r6, r7, r8, fp, ip, sp, lr}          |     __asm ("stmdaeq r8, {r2, r3, r4, r5, r6, r7, r8, fp, ip, sp, lr}");
    0x08029344 mcr p15, 0, r5, c3, c0, 0                                         |     __asm ("mcr p15, 0, r5, c3, c0, 0");
    0x08029348 isb sy                                                            |     __asm ("isb sy");
    0x0802934c cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x08029350 beq 0x8028b1c                                                     |         goto label_18;
                                                                                 |     }
    0x08029354 b 0x8028b18                                                       |     goto label_20;
                                                                                 | label_56:
    0x08029358 tst r2, 0x400                                                     |     
                                                                                 |     if ((r2 & 0x400) == 0) {
    0x0802935c beq 0x802800c                                                     |         goto label_6;
                                                                                 |     }
    0x08029360 ldr r2, [r3, 0x220]                                               |     r2 = *((r3 + 0x220));
    0x08029364 cmp r2, 0                                                         |     
                                                                                 |     if (r2 != 0) {
    0x08029368 bne 0x8028c48                                                     |         goto label_21;
                                                                                 |     }
    0x0802936c stmdaeq r6, {r1, r2, r3, r4, r6, r8}                              |     __asm ("stmdaeq r6, {r1, r2, r3, r4, r6, r8}");
    0x08029370 stmdaeq r6, {r1, r2, r3, r4, r6, r8}                              |     __asm ("stmdaeq r6, {r1, r2, r3, r4, r6, r8}");
    0x08029374 ldrb r3, [ip]                                                     |     r3 = *(ip);
    0x08029378 cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x0802937c bne 0x802800c                                                     |         goto label_6;
                                                                                 |     }
    0x08029380 mov r2, 9                                                         |     r2 = 9;
    0x08029384 movw r1, 0xc34                                                    |     r1 = 0xc34;
    0x08029388 stmdaeq r5, {r2, r3, r4, r5, r6, r7, r8, fp, sp, pc}              |     __asm ("stmdaeq r5, {r2, r3, r4, r5, r6, r7, r8, fp, sp, pc}");
    0x0802938c stmdaeq r5, {r2, r3, r4, r5, r6, r7, r8, fp, sp, pc}              |     __asm ("stmdaeq r5, {r2, r3, r4, r5, r6, r7, r8, fp, sp, pc}");
    0x08029390 mov lr, 1                                                         |     lr = 1;
    0x08029394 strb lr, [ip]                                                     |     
    0x08029398 stmdaeq r8, {r2, r8, sb, sl, ip, sp, lr}                          |     __asm ("stmdaeq r8, {r2, r8, sb, sl, ip, sp, lr}");
    0x0802939c ldr r3, [r7, 0x1f0]                                               |     r3 = *((r7 + 0x1f0));
    0x080293a0 ldr r2, [r3, 0x44]                                                |     r2 = *((r3 + 0x44));
    0x080293a4 ldr r2, [r2, 0x64]                                                |     r2 = *((r2 + 0x64));
    0x080293a8 tst r2, 0x400                                                     |     
                                                                                 |     if ((r2 & 0x400) == 0) {
    0x080293ac beq 0x802800c                                                     |         goto label_6;
                                                                                 |     }
    0x080293b0 ldr r2, [r3, 0x220]                                               |     r2 = *((r3 + 0x220));
    0x080293b4 cmp r2, 0                                                         |     
                                                                                 |     if (r2 == 0) {
    0x080293b8 beq 0x802800c                                                     |         goto label_6;
                                                                                 |     }
    0x080293bc b 0x8028c48                                                       |     goto label_21;
                                                                                 | }
    ; 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/fs/ext4/ext4.ko @ 0x804d304 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.ext4_attr_show ()                | void ext4_attr_show (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0804d304 push {r4, r6, r7, lr}             |     
    0x0804d308 mov r4, r2                        |     r4 = r2;
    0x0804d30c ldrsh r3, [r1, 0xa]               |     r3 = *((r1 + 0xa));
    0x0804d310 sub sp, sp, 8                     |     
    0x0804d314 cmp r3, 1                         |     
                                                 |     if (r3 == 1) {
    0x0804d318 beq 0x804d388                     |         goto label_1;
                                                 |     }
    0x0804d31c cmp r3, 2                         |     
                                                 |     if (r3 == 2) {
    0x0804d320 beq 0x804d398                     |         goto label_2;
                                                 |     }
    0x0804d324 cmp r3, 0                         |     
                                                 |     if (r3 != 0) {
    0x0804d328 ldreq ip, [r1, 0x10]              |         ip = *((r1 + 0x10));
                                                 |     }
    0x0804d32c movne ip, 0                       |     
                                                 |     while (1) {
                                                 | label_0:
    0x0804d330 ldrsh r3, [r1, 8]                 |         r3 = *((r1 + 8));
    0x0804d334 sub r3, r3, 1                     |         r3--;
    0x0804d338 cmp r3, 0x10                      |         
                                                 |         if (r3 > 0x10) {
                                                 |             /* switch table (17 cases) at 0x804d344 */
    0x0804d33c ldrls pc, [pc, r3, lsl 2]         |             offset_0 = r3 << 2;
                                                 |             pc = *((pc + offset_0));
                                                 |         }
    0x0804d340 b 0x804d63c                       |         goto label_3;
                                                 | label_1:
    0x0804d388 ldr ip, [r1, 0x10]                |         ip = *((r1 + 0x10));
    0x0804d38c sub ip, ip, 0xe0                  |         
    0x0804d390 add ip, r0, ip                    |         
    0x0804d394 b 0x804d330                       |         
                                                 |     }
                                                 | label_2:
    0x0804d398 ldr ip, [r0, -0x9c]               |     ip = *((r0 - 0x9c));
    0x0804d39c ldr r3, [r1, 0x10]                |     r3 = *((r1 + 0x10));
    0x0804d3a0 add ip, ip, r3                    |     
    0x0804d3a4 b 0x804d330                       |     goto label_0;
                                                 |     do {
    0x0804d3f8 mov r0, ip                        |         r0 = ip;
    0x0804d3fc add sp, sp, 8                     |         
    0x0804d400 pop {r4, r6, r7, pc}              |         
                                                 | label_3:
    0x0804d63c mov ip, 0                         |         
    0x0804d640 b 0x804d3f8                       |         
                                                 |     } 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/fs/ext4/ext4.ko @ 0x804d0cc */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.ext4_attr_store ()                       | void ext4_attr_store (int32_t arg1, int32_t arg2) {
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0804d0cc push {r4, r5, r6, r7, r8, sb, lr}         |     
    0x0804d0d0 mov r5, r0                                |     r5 = r0;
    0x0804d0d4 mov r6, r2                                |     r6 = r2;
    0x0804d0d8 ldrsh ip, [r1, 0xa]                       |     ip = *((r1 + 0xa));
    0x0804d0dc sub sp, sp, 0x24                          |     
    0x0804d0e0 mov r7, r3                                |     r7 = r3;
    0x0804d0e4 cmp ip, 1                                 |     
                                                         |     if (ip == 1) {
    0x0804d0e8 beq 0x804d194                             |         goto label_1;
                                                         |     }
    0x0804d0ec cmp ip, 2                                 |     
                                                         |     if (ip == 2) {
    0x0804d0f0 beq 0x804d184                             |         goto label_2;
                                                         |     }
    0x0804d0f4 cmp ip, 0                                 |     
                                                         |     if (ip != 0) {
    0x0804d0f8 ldreq r8, [r1, 0x10]                      |         r8 = *((r1 + 0x10));
                                                         |     }
    0x0804d0fc movne r8, 0                               |     r8 = 0;
                                                         |     while (1) {
                                                         | label_0:
    0x0804d100 ldrsh r1, [r1, 8]                         |         r1 = *((r1 + 8));
    0x0804d104 sub r1, r1, 4                             |         r1 -= 4;
    0x0804d108 cmp r1, 8                                 |         
                                                         |         if (r1 > 8) {
                                                         |             /* switch table (9 cases) at 0x804d114 */
    0x0804d10c ldrls pc, [pc, r1, lsl 2]                 |             offset_0 = r1 << 2;
                                                         |             pc = *((pc + offset_0));
                                                         |         }
    0x0804d110 b 0x804d138                               |         
    0x0804d138 mov r4, 0                                 |         r4 = 0;
    0x0804d13c mov r0, r4                                |         r0 = r4;
    0x0804d140 add sp, sp, 0x24                          |         
    0x0804d144 pop {r4, r5, r6, r7, r8, sb, pc}          |         
                                                         | label_2:
    0x0804d184 ldr r3, [r0, -0x9c]                       |         r3 = *((r0 - 0x9c));
    0x0804d188 ldr r2, [r1, 0x10]                        |         r2 = *((r1 + 0x10));
    0x0804d18c add r8, r3, r2                            |         r8 = r3 + r2;
    0x0804d190 b 0x804d100                               |         
                                                         |     }
                                                         | label_1:
    0x0804d194 ldr r3, [r1, 0x10]                        |     r3 = *((r1 + 0x10));
    0x0804d198 sub r3, r3, 0xe0                          |     r3 -= 0xe0;
    0x0804d19c add r8, r0, r3                            |     r8 = r0 + r3;
    0x0804d1a0 b 0x804d100                               |     goto label_0;
                                                         | }
    ; 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/fs/ext4/ext4.ko @ 0x80537f0 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.ext4_fc_replay_link_internal ()                          | void ext4_fc_replay_link_internal (uint32_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;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
    0x080537f0 push {r4, r5, r6, r7, r8, lr}                             |     
    0x080537f4 movw ip, 0x513                                            |     ip = 0x513;
    0x080537f8 mov r4, 0                                                 |     r4 = 0;
    0x080537fc sub sp, sp, 0x18                                          |     
    0x08053800 ldr r3, [r1, 4]                                           |     r3 = *((r1 + 4));
    0x08053804 mov r8, r2                                                |     r8 = r2;
    0x08053808 mov r2, r4                                                |     r2 = r4;
    0x0805380c str r3, [sp, 0xc]                                         |     var_ch = r3;
    0x08053810 ldr r3, [r1, 0x10]                                        |     r3 = *((r1 + 0x10));
    0x08053814 str r3, [sp, 0x10]                                        |     var_10h = r3;
    0x08053818 ldr r1, [r1]                                              |     r1 = *(r1);
    0x0805381c ldr r3, [pc, 0xd8]                                        |     r3 = *(0x80538f8);
    0x08053820 str ip, [sp]                                              |     *(sp) = ip;
    0x08053824 str r4, [sp, 8]                                           |     var_8h = r4;
    0x08053828 str r4, [sp, 0x14]                                        |     var_14h = r4;
    0x0805382c stmdaeq r2, {r2, r3, r4, r7, r8, sb}                      |     __asm ("stmdaeq r2, {r2, r3, r4, r7, r8, sb}");
    0x08053830 cmn r0, 0x1000                                            |     
                                                                         |     if (r0 > 0x1000) {
    0x08053834 bhi 0x80538d0                                             |         goto label_3;
                                                                         |     }
    0x08053838 mov r7, r0                                                |     r7 = r0;
    0x0805383c stmdaeq r8, {r6, r7, sb, fp, ip, sp, lr}                  |     __asm ("stmdaeq r8, {r6, r7, sb, fp, ip, sp, lr}");
    0x08053840 mov r6, r0                                                |     r6 = r0;
    0x08053844 cmn r0, 0x1000                                            |     
                                                                         |     if (r0 > 0x1000) {
    0x08053848 bhi 0x80538e0                                             |         goto label_4;
                                                                         |     }
    0x0805384c add r1, sp, 8                                             |     r1 += var_8h;
    0x08053850 stmdaeq r8, {r2, r4, r6, r7, sl, fp, ip, sp, lr}          |     __asm ("stmdaeq r8, {r2, r4, r6, r7, sl, fp, ip, sp, lr}");
    0x08053854 subs r5, r0, 0                                            |     r5 = r0 - 0;
                                                                         |     if (r5 == r0) {
    0x08053858 beq 0x80538f4                                             |         goto label_5;
                                                                         |     }
    0x0805385c mov r2, r5                                                |     r2 = r5;
    0x08053860 mov r1, r8                                                |     r1 = r8;
    0x08053864 mov r0, r7                                                |     r0 = r7;
    0x08053868 stmdaeq r3, {r4, r8, sb, fp, ip, lr, pc}                  |     __asm ("stmdaeq r3, {r4, r8, sb, fp, ip, lr, pc}");
    0x0805386c cmp r0, 0                                                 |     
    0x08053870 cmnne r0, 0x11                                            |     __asm ("cmnne r0, 0x11");
    0x08053874 mov r4, r0                                                |     r4 = r0;
                                                                         |     if (r0 == 0) {
    0x08053878 movne r4, r0                                              |         r4 = r0;
                                                                         |     }
                                                                         |     if (r0 != 0) {
    0x0805387c moveq r4, 0                                               |         r4 = 0;
                                                                         |     }
                                                                         | label_2:
    0x08053880 cmp r6, 0                                                 |     
                                                                         |     if (r6 == 0) {
    0x08053884 beq 0x80538bc                                             |         goto label_6;
                                                                         |     }
    0x08053888 mov r0, r6                                                |     r0 = r6;
    0x0805388c stmdaeq r8, {r3, r4, r6, r7, sl, fp, ip, sp, lr}          |     __asm ("stmdaeq r8, {r3, r4, r6, r7, sl, fp, ip, sp, lr}");
    0x08053890 mov r0, r6                                                |     r0 = r6;
    0x08053894 stmdaeq r8, {r2, r7, fp, ip, sp, lr}                      |     __asm ("stmdaeq r8, {r2, r7, fp, ip, sp, lr}");
                                                                         |     do {
                                                                         | label_0:
    0x08053898 cmp r5, 0                                                 |         
                                                                         |         if (r5 != 0) {
    0x0805389c beq 0x80538b0                                             |             
    0x080538a0 mov r0, r5                                                |             r0 = r5;
    0x080538a4 stmdaeq r8, {r3, r4, r6, r7, sl, fp, ip, sp, lr}          |             __asm ("stmdaeq r8, {r3, r4, r6, r7, sl, fp, ip, sp, lr}");
    0x080538a8 mov r0, r5                                                |             r0 = r5;
    0x080538ac stmdaeq r8, {r2, r7, fp, ip, sp, lr}                      |             __asm ("stmdaeq r8, {r2, r7, fp, ip, sp, lr}");
                                                                         |         }
                                                                         | label_1:
    0x080538b0 mov r0, r4                                                |         r0 = r4;
    0x080538b4 add sp, sp, 0x18                                          |         
    0x080538b8 pop {r4, r5, r6, r7, r8, pc}                              |         
                                                                         | label_6:
    0x080538bc cmp r7, 0                                                 |         
    0x080538c0 beq 0x8053898                                             |         
                                                                         |     } while (r7 == 0);
    0x080538c4 mov r0, r7                                                |     r0 = r7;
    0x080538c8 stmdaeq r8, {r3, r6, r8, sb, sl, ip, sp, lr}              |     __asm ("stmdaeq r8, {r3, r6, r8, sb, sl, ip, sp, lr}");
    0x080538cc b 0x8053898                                               |     goto label_0;
                                                                         |     do {
                                                                         | label_3:
    0x080538d0 mov r4, 0                                                 |         r4 = 0;
    0x080538d4 mov r0, r4                                                |         r0 = r4;
    0x080538d8 add sp, sp, 0x18                                          |         
    0x080538dc pop {r4, r5, r6, r7, r8, pc}                              |         
                                                                         | label_4:
    0x080538e0 cmp r7, 0                                                 |         
    0x080538e4 beq 0x80538d0                                             |         
                                                                         |     } while (r7 == 0);
    0x080538e8 mov r0, r7                                                |     r0 = r7;
    0x080538ec stmdaeq r8, {r3, r6, r8, sb, sl, ip, sp, lr}              |     __asm ("stmdaeq r8, {r3, r6, r8, sb, sl, ip, sp, lr}");
    0x080538f0 b 0x80538b0                                               |     goto label_1;
                                                                         | label_5:
    0x080538f4 mvn r4, 0xb                                               |     r4 = ~0xb;
    0x080538f8 b 0x8053880                                               |     goto label_2;
                                                                         | }
    ; 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/fs/ext4/ext4.ko @ 0x8053cb0 */
                                                                             | #include <stdint.h>
                                                                             |  
                                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                             |  
    ; (fcn) sym.ext4_fc_replay ()                                            | void ext4_fc_replay (int32_t arg1, int32_t arg2) {
                                                                             |     int32_t var_0h;
                                                                             |     int32_t var_8h;
                                                                             |     int32_t var_ch;
                                                                             |     int32_t var_14h;
                                                                             |     int32_t var_18h;
                                                                             |     int32_t var_1ch;
                                                                             |     int32_t var_30h;
                                                                             |     int32_t var_74h;
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
    0x08053cb0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}                     |     
    0x08053cb4 cmp r2, 0                                                     |     
    0x08053cb8 ldr sl, [r0, 0x2a8]                                           |     sl = *((r0 + 0x2a8));
    0x08053cbc sub sp, sp, 0x74                                              |     
    0x08053cc0 ldr r7, [sl, 0x1f0]                                           |     r7 = *((sl + 0x1f0));
                                                                             |     if (r2 != 0) {
    0x08053cc4 beq 0x8054398                                                 |         
    0x08053cc8 ldr r3, [r7, 0x390]                                           |         r3 = *((r7 + 0x390));
    0x08053ccc ldr sb, [r7, 0x388]                                           |         sb = *((r7 + 0x388));
    0x08053cd0 cmp r3, r2                                                    |         
                                                                             |         if (r3 == r2) {
    0x08053cd4 strne r2, [r7, 0x390]                                         |             *((r7 + 0x390)) = r2;
                                                                             |         }
    0x08053cd8 ldrhne r3, [r7, 0x78]                                         |         __asm ("ldrhne r3, [r7, 0x78]");
                                                                             |         if (r3 == r2) {
    0x08053cdc orrne r3, r3, 0x20                                            |             r3 |= 0x20;
                                                                             |         }
    0x08053ce0 strhne r3, [r7, 0x78]                                         |         __asm ("strhne r3, [r7, 0x78]");
    0x08053ce4 cmp sb, 0                                                     |         
                                                                             |         if (sb != 0) {
    0x08053ce8 beq 0x8054384                                                 |             
    0x08053cec ldr r3, [r0, 0x19c]                                           |             r3 = *((r0 + 0x19c));
    0x08053cf0 ldr fp, [r1, 0x1c]                                            |             fp = *((r1 + 0x1c));
    0x08053cf4 sub r3, r3, 1                                                 |             r3--;
    0x08053cf8 add r3, fp, r3                                                |             r3 = fp + r3;
    0x08053cfc str r3, [sp, 0xc]                                             |             var_ch = r3;
    0x08053d00 cmp fp, r3                                                    |             
                                                                             |             if (fp >= r3) {
    0x08053d04 bhs 0x80546f0                                                 |                 goto label_1;
                                                                             |             }
    0x08053d08 mov r3, sp                                                    |             r3 = sp;
    0x08053d0c str r7, [sp, 8]                                               |             var_8h = r7;
    0x08053d10 bic r3, r3, 0x1fc0                                            |             r3 = BIT_MASK (r3, 0x1fc0);
    0x08053d14 bic r3, r3, 0x3f                                              |             r3 = BIT_MASK (r3, 0x3f);
    0x08053d18 str r3, [sp, 0x14]                                            |             var_14h = r3;
    0x08053d1c stmdaeq r5, {r2, r3, r4, r5, r7, fp, ip, sp, lr, pc}          |             __asm ("stmdaeq r5, {r2, r3, r4, r5, r7, fp, ip, sp, lr, pc}");
    0x08053d20 stmdaeq r5, {r2, r3, r4, r5, r7, fp, ip, sp, lr, pc}          |             __asm ("stmdaeq r5, {r2, r3, r4, r5, r7, fp, ip, sp, lr, pc}");
    0x08053d24 str r3, [sp, 0x1c]                                            |             var_1ch = r3;
    0x08053d28 mov r3, 0x8000                                                |             
    0x08053d2c movt r3, 0xffff                                               |             r3 = 0x-8000;
    0x08053d30 str r3, [sp, 0x18]                                            |             var_18h = r3;
    0x08053d34 mov ip, fp                                                    |             
    0x08053d38 cmp sb, 0                                                     |             
    0x08053d3c ldr r5, [ip], 4                                               |             r5 = *(ip);
                                                                             |             ip += 4;
    0x08053d40 str r5, [sp, 0x30]                                            |             var_30h = r5;
                                                                             |             if (sb == 0) {
    0x08053d44 beq 0x8054384                                                 |                 goto label_2;
                                                                             |             }
    0x08053d48 ldr r2, [sp, 8]                                               |             r2 = var_8h;
    0x08053d4c uxth r3, r5                                                   |             r3 = (int16_t) r5;
    0x08053d50 sub r3, r3, 1                                                 |             r3--;
    0x08053d54 sub sb, sb, 1                                                 |             sb--;
    0x08053d58 str sb, [r2, 0x388]                                           |             *((r2 + 0x388)) = sb;
    0x08053d5c cmp r3, 8                                                     |             
                                                                             |             if (r3 > 8) {
                                                                             |                 /* switch table (9 cases) at 0x8053d68 */
    0x08053d60 ldrls pc, [pc, r3, lsl 2]                                     |                 offset_0 = r3 << 2;
                                                                             |                 pc = *((pc + offset_0));
                                                                             |             }
    0x08053d64 b 0x8054a10                                                   |             goto label_3;
                                                                             |         }
                                                                             | label_2:
    0x08054384 mov r0, sl                                                    |         r0 = sl;
    0x08054388 bl 0x80536a0                                                  |         ext4_fc_set_bitmaps_and_counters ();
                                                                             | label_0:
    0x0805438c mov r0, sb                                                    |         r0 = sb;
    0x08054390 add sp, sp, 0x74                                              |         
    0x08054394 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                      |         
                                                                             |     }
    0x08054398 str r2, [r7, 0x390]                                           |     *((r7 + 0x390)) = r2;
    0x0805439c ldr r8, [r0, 0x2a8]                                           |     r8 = *((r0 + 0x2a8));
    0x080543a0 ldr r5, [r1, 0x1c]                                            |     r5 = *((r1 + 0x1c));
    0x080543a4 ldr r7, [r0, 0x19c]                                           |     r7 = *((r0 + 0x19c));
    0x080543a8 ldr r4, [r8, 0x1f0]                                           |     r4 = *((r8 + 0x1f0));
    0x080543ac ldr r2, [r4, 0x38c]                                           |     r2 = *((r4 + 0x38c));
    0x080543b0 cmp r2, 0                                                     |     
    0x080543b4 beq 0x8054700                                                 |     
                                                                             |     while (r1 == 9) {
    0x080543b8 cmp r3, r2                                                    |         
                                                                             |         if (r3 != r2) {
    0x080543bc bne 0x80549ec                                                 |             goto label_4;
                                                                             |         }
    0x080543c0 sub r7, r7, 1                                                 |         r7--;
    0x080543c4 add r3, r3, 1                                                 |         r3++;
    0x080543c8 add r7, r5, r7                                                |         r7 = r5 + r7;
    0x080543cc str r3, [r4, 0x38c]                                           |         *((r4 + 0x38c)) = r3;
    0x080543d0 cmp r5, r7                                                    |         
                                                                             |         if (r5 < r7) {
    0x080543d4 bhs 0x80546f0                                                 |             
    0x080543d8 mov ip, r5                                                    |             
    0x080543dc ldr r6, [ip], 4                                               |             r6 = *(ip);
                                                                             |             ip += 4;
    0x080543e0 uxth r3, r6                                                   |             r3 = (int16_t) r6;
    0x080543e4 sub r3, r3, 1                                                 |             r3--;
    0x080543e8 cmp r3, 8                                                     |             
                                                                             |             if (r3 > 8) {
                                                                             |                 /* switch table (9 cases) at 0x80543f4 */
    0x080543ec ldrls pc, [pc, r3, lsl 2]                                     |                 offset_1 = r3 << 2;
                                                                             |                 pc = *((pc + offset_1));
                                                                             |             }
    0x080543f0 b 0x8054a04                                                   |             goto label_5;
                                                                             |         }
                                                                             | label_1:
    0x080546f0 mov sb, 1                                                     |         sb = 1;
    0x080546f4 mov r0, sb                                                    |         r0 = sb;
    0x080546f8 add sp, sp, 0x74                                              |         
    0x080546fc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                      |         
    0x08054700 str r2, [r4, 0x394]                                           |         *((r4 + 0x394)) = r2;
    0x08054704 str r2, [r4, 0x388]                                           |         *((r4 + 0x388)) = r2;
    0x08054708 str r2, [r4, 0x398]                                           |         *((r4 + 0x398)) = r2;
    0x0805470c str r2, [r4, 0x39c]                                           |         *((r4 + 0x39c)) = r2;
    0x08054710 str r2, [r4, 0x3a0]                                           |         *((r4 + 0x3a0)) = r2;
    0x08054714 str r2, [r4, 0x3a4]                                           |         *((r4 + 0x3a4)) = r2;
    0x08054718 str r2, [r4, 0x3a8]                                           |         *((r4 + 0x3a8)) = r2;
    0x0805471c ldrh r1, [r5]                                                 |         r1 = *(r5);
    0x08054720 cmp r1, 9                                                     |         
    0x08054724 beq 0x80543b8                                                 |         
                                                                             |     }
                                                                             |     do {
    0x08054728 mov sb, 0                                                     |         sb = 0;
    0x0805472c mov r0, sb                                                    |         r0 = sb;
    0x08054730 add sp, sp, 0x74                                              |         
    0x08054734 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                      |         
                                                                             | label_4:
    0x080549ec mvn sb, 0x74                                                  |         sb = ~0x74;
    0x080549f0 b 0x805438c                                                   |         goto label_0;
                                                                             | label_5:
    0x08054a04 ldr r3, [r4, 0x388]                                           |         r3 = *((r4 + 0x388));
    0x08054a08 cmp r3, 0                                                     |         
    0x08054a0c bne 0x8054728                                                 |         
                                                                             |     } while (r3 != 0);
                                                                             | label_3:
    0x08054a10 mvn sb, 0x7c                                                  |     sb = ~0x7c;
    0x08054a14 b 0x805438c                                                   |     goto label_0;
                                                                             | }
    ; 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/fs/ext4/ext4.ko @ 0x805626c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.ext4_fc_replay_check_excluded ()         | void ext4_fc_replay_check_excluded (int32_t arg1) {
                                                         |     r0 = arg1;
    0x0805626c push {r4, r5, r6, lr}                     |     
    0x08056270 ldr r1, [r0, 0x1f0]                       |     r1 = *((r0 + 0x1f0));
    0x08056274 ldr r5, [r1, 0x3a8]                       |     r5 = *((r1 + 0x3a8));
    0x08056278 cmp r5, 0                                 |     
                                                         |     if (r5 <= 0) {
    0x0805627c ble 0x80562d8                             |         goto label_0;
                                                         |     }
    0x08056280 ldr r1, [r1, 0x39c]                       |     r1 = *((r1 + 0x39c));
    0x08056284 mov r0, 0                                 |     r0 = 0;
                                                         |     do {
    0x08056288 ldr ip, [r1, 0x10]                        |         ip = *((r1 + 0x10));
    0x0805628c add r0, r0, 1                             |         r0++;
    0x08056290 cmp ip, 0                                 |         
                                                         |         if (ip != 0) {
    0x08056294 beq 0x80562cc                             |             
    0x08056298 ldr ip, [r1, 0x14]                        |             ip = *((r1 + 0x14));
    0x0805629c cmp ip, 0                                 |             
                                                         |             if (ip == 0) {
    0x080562a0 beq 0x80562cc                             |                 goto label_1;
                                                         |             }
    0x080562a4 ldr r4, [r1, 8]                           |             r4 = *((r1 + 8));
    0x080562a8 ldr lr, [r1, 0xc]                         |             
    0x080562ac cmp r2, r4                                |             
    0x080562b0 sbcs r6, r3, lr                           |             __asm ("sbcs r6, r3, lr");
                                                         |             if (r2 <= r4) {
    0x080562b4 blo 0x80562cc                             |                 goto label_1;
                                                         |             }
    0x080562b8 adds r4, ip, r4                           |             r4 = ip + r4;
    0x080562bc adc lr, lr, ip, asr 31                    |             __asm ("adc lr, lr, ip, asr 31");
    0x080562c0 cmp r2, r4                                |             
    0x080562c4 sbcs lr, r3, lr                           |             __asm ("sbcs lr, r3, lr");
                                                         |             if (r2 <= r4) {
    0x080562c8 blo 0x80562e0                             |                 goto label_2;
                                                         |             }
                                                         |         }
                                                         | label_1:
    0x080562cc add r1, r1, 0x18                          |         r1 += 0x18;
    0x080562d0 cmp r0, r5                                |         
    0x080562d4 bne 0x8056288                             |         
                                                         |     } while (r0 != r5);
                                                         | label_0:
    0x080562d8 mov r0, 0                                 |     r0 = 0;
    0x080562dc pop {r4, r5, r6, pc}                      |     
                                                         | label_2:
    0x080562e0 mov r0, 1                                 |     r0 = 1;
    0x080562e4 pop {r4, r5, r6, pc}                      |     
                                                         | }
    ; 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/fs/ext4/ext4.ko @ 0x80562e8 */
                                                                     | #include <stdint.h>
                                                                     |  
                                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                     |  
    ; (fcn) sym.ext4_fc_replay_cleanup ()                            | void ext4_fc_replay_cleanup (int32_t arg1, int32_t arg2) {
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x080562e8 push {r4, lr}                                         |     
    0x080562ec ldr r4, [r0, 0x1f0]                                   |     r4 = *((r0 + 0x1f0));
    0x080562f0 ldrh r3, [r4, 0x78]                                   |     r3 = *((r4 + 0x78));
    0x080562f4 ldr r0, [r4, 0x39c]                                   |     r0 = *((r4 + 0x39c));
    0x080562f8 bic r3, r3, 0x20                                      |     r3 = BIT_MASK (r3, 0x20);
    0x080562fc strh r3, [r4, 0x78]                                   |     *((r4 + 0x78)) = r3;
    0x08056300 stmdaeq r8, {r4, r5, r8, sb, sl, ip, sp, lr}          |     __asm ("stmdaeq r8, {r4, r5, r8, sb, sl, ip, sp, lr}");
    0x08056304 ldr r0, [r4, 0x3ac]                                   |     r0 = *((r4 + 0x3ac));
    0x08056308 pop {r4, lr}                                          |     
    0x0805630c stmdaeq r8, {r4, r5, r8, sb, sl, ip, sp, lr}          |     __asm ("stmdaeq r8, {r4, r5, r8, sb, sl, ip, sp, lr}");
                                                                     | }
    ; 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/fs/ext4/ext4.ko @ 0x8000870 */
                                                                         | #include <stdint.h>
                                                                         |  
                                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                         |  
    ; (fcn) sym.ext4_should_retry_alloc ()                               | void ext4_should_retry_alloc (int32_t arg1, int32_t arg2) {
                                                                         |     int32_t var_0h;
                                                                         |     int32_t var_8h;
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
    0x08000870 push {r4, lr}                                             |     
    0x08000874 ldr r0, [r0, 0x1f0]                                       |     r0 = *((r0 + 0x1f0));
    0x08000878 sub sp, sp, 8                                             |     
    0x0800087c ldr r3, [r0, 0x118]                                       |     r3 = *((r0 + 0x118));
    0x08000880 cmp r3, 0                                                 |     
                                                                         |     if (r3 == 0) {
    0x08000884 beq 0x8000930                                             |         goto label_0;
                                                                         |     }
    0x08000888 ldr r3, [r1]                                              |     r3 = *(r1);
    0x0800088c add r3, r3, 1                                             |     r3++;
    0x08000890 str r3, [r1]                                              |     *(r1) = r3;
    0x08000894 cmp r3, 3                                                 |     
                                                                         |     if (r3 > 3) {
    0x08000898 bgt 0x80008e0                                             |         goto label_1;
                                                                         |     }
    0x0800089c ldr r1, [r0, 0x160]                                       |     r1 = *((r0 + 0x160));
    0x080008a0 cmp r1, 0                                                 |     
                                                                         |     if (r1 == 0) {
    0x080008a4 beq 0x80008c0                                             |         goto label_2;
                                                                         |     }
    0x080008a8 ldr r0, [r0, 0x118]                                       |     r0 = *((r0 + 0x118));
    0x080008ac mov r4, 1                                                 |     r4 = 1;
    0x080008b0 stmdaeq r8, {r2, r5, r6, r7, sb, sl, ip, sp, lr}          |     __asm ("stmdaeq r8, {r2, r5, r6, r7, sb, sl, ip, sp, lr}");
                                                                         |     do {
    0x080008b4 mov r0, r4                                                |         r0 = r4;
    0x080008b8 add sp, sp, 8                                             |         
    0x080008bc pop {r4, pc}                                              |         
                                                                         | label_2:
    0x080008c0 mov r2, 1                                                 |         r2 = 1;
    0x080008c4 mov r3, 0                                                 |         r3 = 0;
    0x080008c8 str r1, [sp]                                              |         *(sp) = r1;
    0x080008cc bl 0x8000070                                              |         r0 = ext4_has_free_clusters ();
    0x080008d0 mov r4, r0                                                |         r4 = r0;
    0x080008d4 mov r0, r4                                                |         r0 = r4;
    0x080008d8 add sp, sp, 8                                             |         
    0x080008dc pop {r4, pc}                                              |         
                                                                         | label_1:
    0x080008e0 mov r3, sp                                                |         r3 = sp;
    0x080008e4 bic r3, r3, 0x1fc0                                        |         r3 = BIT_MASK (r3, 0x1fc0);
    0x080008e8 bic r3, r3, 0x3f                                          |         r3 = BIT_MASK (r3, 0x3f);
    0x080008ec ldr r2, [r3, 4]                                           |         r2 = *((r3 + 4));
    0x080008f0 add r2, r2, 1                                             |         r2++;
    0x080008f4 str r2, [r3, 4]                                           |         *((r3 + 4)) = r2;
    0x080008f8 ldr r2, [r0, 0xd0]                                        |         r2 = *((r0 + 0xd0));
    0x080008fc ldr r1, [r0, 0xd4]                                        |         r1 = *((r0 + 0xd4));
    0x08000900 adds r2, r2, 1                                            |         r2++;
    0x08000904 str r2, [r0, 0xd0]                                        |         *((r0 + 0xd0)) = r2;
    0x08000908 adc r2, r1, 0                                             |         __asm ("adc r2, r1, 0");
    0x0800090c str r2, [r0, 0xd4]                                        |         *((r0 + 0xd4)) = r2;
    0x08000910 ldr r4, [r3, 4]                                           |         r4 = *((r3 + 4));
    0x08000914 sub r4, r4, 1                                             |         r4--;
    0x08000918 str r4, [r3, 4]                                           |         *((r3 + 4)) = r4;
    0x0800091c cmp r4, 0                                                 |         
                                                                         |         if (r4 == 0) {
    0x08000920 bne 0x8000930                                             |             
    0x08000924 ldr r3, [r3]                                              |             r3 = *(r3);
    0x08000928 tst r3, 2                                                 |             
                                                                         |             if ((r3 & 2) != 0) {
    0x0800092c bne 0x8000940                                             |                 goto label_3;
                                                                         |             }
                                                                         |         }
                                                                         | label_0:
    0x08000930 mov r4, 0                                                 |         r4 = 0;
    0x08000934 mov r0, r4                                                |         r0 = r4;
    0x08000938 add sp, sp, 8                                             |         
    0x0800093c pop {r4, pc}                                              |         
                                                                         | label_3:
    0x08000940 stmdaeq r8, {r4, r6, r7, sb, sl, ip, sp, lr}              |         __asm ("stmdaeq r8, {r4, r6, r7, sb, sl, ip, sp, lr}");
    0x08000944 b 0x80008b4                                               |         
                                                                         |     } 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/fs/ext4/ext4.ko @ 0x80128cc */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.ext4fs_dirhash ()                                | void ext4fs_dirhash (int32_t arg2) {
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_28h;
                                                                 |     int32_t var_2ch;
                                                                 |     int32_t var_30h;
                                                                 |     int32_t var_34h;
                                                                 |     int32_t var_5ch;
                                                                 |     r1 = arg2;
    0x080128cc push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x080128d0 mov lr, r3                                        |     lr = r3;
    0x080128d4 movw r0, 0x2301                                   |     
    0x080128d8 movt r0, 0x6745                                   |     r0 = 0x67452301;
    0x080128dc sub sp, sp, 0x5c                                  |     
    0x080128e0 ldr lr, [lr, 0xc]                                 |     
    0x080128e4 mov ip, r1                                        |     
    0x080128e8 mov r7, r2                                        |     r7 = r2;
    0x080128ec str r3, [sp, 0x20]                                |     var_20h = r3;
    0x080128f0 cmp lr, 0                                         |     
    0x080128f4 movw r3, 0xab89                                   |     
    0x080128f8 movt r3, 0xefcd                                   |     r3 = 0xefcdab89;
    0x080128fc str r0, [sp, 0x28]                                |     var_28h = r0;
    0x08012900 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x08012904 movw r3, 0xdcfe                                   |     
    0x08012908 movt r3, 0x98ba                                   |     r3 = 0x98badcfe;
    0x0801290c str r3, [sp, 0x30]                                |     var_30h = r3;
    0x08012910 movw r3, 0x5476                                   |     
    0x08012914 movt r3, 0x1032                                   |     r3 = 0x10325476;
    0x08012918 str r3, [sp, 0x34]                                |     var_34h = r3;
                                                                 |     if (lr == 0) {
    0x0801291c beq 0x801293c                                     |         goto label_1;
                                                                 |     }
    0x08012920 sub r3, lr, 4                                     |     r3 = lr - 4;
    0x08012924 add r1, lr, 0xc                                   |     r1 = lr + 0xc;
                                                                 |     do {
    0x08012928 ldr r2, [r3, 4]!                                  |         r2 = *((r3 += 4));
    0x0801292c cmp r2, 0                                         |         
                                                                 |         if (r2 != 0) {
    0x08012930 bne 0x8012ec8                                     |             goto label_2;
                                                                 |         }
    0x08012934 cmp r1, r3                                        |         
    0x08012938 bne 0x8012928                                     |         
                                                                 |     } while (r1 != r3);
                                                                 |     do {
                                                                 | label_1:
    0x0801293c ldr r3, [sp, 0x20]                                |         r3 = var_20h;
    0x08012940 ldr r3, [r3, 8]                                   |         r3 = *((r3 + 8));
    0x08012944 cmp r3, 5                                         |         
                                                                 |         if (r3 > 5) {
                                                                 |             /* switch table (6 cases) at 0x8012950 */
    0x08012948 ldrls pc, [pc, r3, lsl 2]                         |             offset_0 = r3 << 2;
                                                                 |             pc = *((pc + offset_0));
                                                                 |         }
    0x0801294c b 0x8012ef4                                       |         goto label_3;
                                                                 | label_0:
    0x08012a60 add sp, sp, 0x5c                                  |         
    0x08012a64 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_2:
    0x08012ec8 add r4, sp, 0x28                                  |         r4 += var_28h;
    0x08012ecc ldr r0, [lr]                                      |         r0 = *(lr);
    0x08012ed0 ldr r1, [lr, 4]                                   |         r1 = *((lr + 4));
    0x08012ed4 ldr r2, [lr, 8]                                   |         r2 = *((lr + 8));
    0x08012ed8 ldr r3, [lr, 0xc]                                 |         r3 = *((lr + 0xc));
    0x08012edc stm r4!, {r0, r1, r2, r3}                         |         *(r4!) = r0;
                                                                 |         *((r4! + 4)) = r1;
                                                                 |         *((r4! + 8)) = r2;
                                                                 |         *((r4! + 12)) = r3;
    0x08012ee0 b 0x801293c                                       |         
                                                                 |     } while (1);
                                                                 | label_3:
    0x08012ef4 ldr r2, [sp, 0x20]                                |     r2 = var_20h;
    0x08012ef8 mov r3, 0                                         |     r3 = 0;
    0x08012efc mvn r0, 0                                         |     r0 = ~0;
    0x08012f00 str r3, [r2]                                      |     *(r2) = r3;
    0x08012f04 b 0x8012a60                                       |     goto label_0;
                                                                 | }
    ; 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/fs/ext4/ext4.ko @ 0x8047030 */
                                                                             | #include <stdint.h>
                                                                             |  
                                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                             |  
    ; (fcn) sym.parse_options ()                                             | void parse_options (int32_t arg_70h, uint32_t arg1, int32_t arg2) {
                                                                             |     int32_t var_0h;
                                                                             |     int32_t var_8h;
                                                                             |     int32_t var_ch;
                                                                             |     int32_t var_ch_2;
                                                                             |     int32_t var_14h;
                                                                             |     int32_t var_6h;
                                                                             |     int32_t var_4h;
                                                                             |     int32_t var_1ch;
                                                                             |     int32_t var_24h;
                                                                             |     int32_t var_30h;
                                                                             |     int32_t var_34h;
                                                                             |     int32_t var_4ch;
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
    0x08047030 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}                     |     
    0x08047034 cmp r0, 0                                                     |     
    0x08047038 sub sp, sp, 0x4c                                              |     
    0x0804703c strd r2, r3, [sp, 0xc]                                        |     __asm ("strd r2, r3, [var_ch]");
    0x08047040 ldr r3, [r1, 0x1f0]                                           |     r3 = *((r1 + 0x1f0));
    0x08047044 str r0, [sp, 0x1c]                                            |     var_1ch = r0;
    0x08047048 str r3, [sp, 8]                                               |     var_8h = r3;
                                                                             |     if (arg_70h == ) {
    0x0804704c beq 0x8047440                                                 |         goto label_1;
                                                                             |     }
    0x08047050 mov r3, sp                                                    |     r3 = sp;
    0x08047054 ldr r8, [pc, 0xa58]                                           |     r8 = *(0x8047ab0);
    0x08047058 bic r3, r3, 0x1fc0                                            |     r3 = BIT_MASK (r3, 0x1fc0);
    0x0804705c stmdaeq r5, {r4, r5, r6, r8, sb, sl, fp, lr, pc}              |     __asm ("stmdaeq r5, {r4, r5, r6, r8, sb, sl, fp, lr, pc}");
    0x08047060 stmdaeq r5, {r4, r5, r6, r8, sb, sl, fp, lr, pc}              |     __asm ("stmdaeq r5, {r4, r5, r6, r8, sb, sl, fp, lr, pc}");
    0x08047064 movw fp, 0xae14                                               |     
    0x08047068 movt fp, 0x147                                                |     fp = 0x147ae14;
    0x0804706c mov r5, r1                                                    |     r5 = r1;
    0x08047070 bic r3, r3, 0x3f                                              |     r3 = BIT_MASK (r3, 0x3f);
    0x08047074 str r3, [sp, 0x14]                                            |     var_14h = r3;
                                                                             |     do {
                                                                             | label_2:
    0x08047078 mov r1, r6                                                    |         r1 = r6;
    0x0804707c add r0, sp, 0x1c                                              |         r0 += var_1ch;
    0x08047080 stmdaeq r8, {r6, r7, r8, sb, fp, ip, sp, lr}                  |         __asm ("stmdaeq r8, {r6, r7, r8, sb, fp, ip, sp, lr}");
    0x08047084 subs sl, r0, 0                                                |         sl -= var_1ch;
                                                                             |         if (sl == var_1ch) {
    0x08047088 beq 0x8047430                                                 |             goto label_6;
                                                                             |         }
    0x0804708c ldrb r3, [sl]                                                 |         r3 = *(sl);
    0x08047090 cmp r3, 0                                                     |         
    0x08047094 beq 0x8047078                                                 |         
                                                                             |     } while (r3 == 0);
    0x08047098 add r2, sp, 0x30                                              |     r2 += var_30h;
    0x0804709c mov r1, r8                                                    |     r1 = r8;
    0x080470a0 mov r7, 0                                                     |     r7 = 0;
    0x080470a4 str r7, [sp, 0x30]                                            |     var_30h = r7;
    0x080470a8 str r7, [sp, 0x34]                                            |     var_34h = r7;
    0x080470ac stmdaeq r8, {r2, r6, r7, r8, sb, fp, ip, sp, lr}              |     __asm ("stmdaeq r8, {r2, r6, r7, r8, sb, fp, ip, sp, lr}");
    0x080470b0 sub r3, r0, 6                                                 |     r3 -= var_6h;
    0x080470b4 str r7, [sp, 0x24]                                            |     var_24h = r7;
    0x080470b8 mov r4, r0                                                    |     r4 = r0;
    0x080470bc ldr r7, [r5, 0x1f0]                                           |     r7 = *((r5 + 0x1f0));
    0x080470c0 cmp r3, 0x38                                                  |     
                                                                             |     if (r3 > 0x38) {
                                                                             |         /* switch table (57 cases) at 0x80470cc */
    0x080470c4 ldrls pc, [pc, r3, lsl 2]                                     |         offset_0 = r3 << 2;
                                                                             |         pc = *((pc + offset_0));
                                                                             |     }
    0x080470c8 b 0x80471d4                                                   |     
    0x080471d4 ldr sb, [pc, 0x8e0]                                           |     sb = loc..LANCHOR0;
    0x080471d8 mov r3, 1                                                     |     r3 = 1;
    0x080471dc b 0x80471ec                                                   |     
                                                                             |     while (r4 != r3) {
    0x080471e0 ldr r3, [sb, 0xc]!                                            |         r3 = *((sb += 0xc));
    0x080471e4 cmp r3, 0x2e                                                  |         
                                                                             |         if (r3 == 0x2e) {
    0x080471e8 beq 0x8047540                                                 |             goto label_7;
                                                                             |         }
    0x080471ec cmp r4, r3                                                    |         
    0x080471f0 bne 0x80471e0                                                 |         
                                                                             |     }
    0x080471f4 ldr r2, [sb, 8]                                               |     r2 = *((sb + 8));
    0x080471f8 tst r2, 0x200                                                 |     
    0x080471fc bne 0x8047450                                                 |     
                                                                             |     while (r1 != r3) {
    0x08047200 ldr r1, [sp, 0x30]                                            |         r1 = var_30h;
    0x08047204 cmp r1, 0                                                     |         
                                                                             |         if (r1 != 0) {
    0x08047208 beq 0x8047228                                                 |             
    0x0804720c tst r2, 0x400                                                 |             
                                                                             |             if ((r2 & 0x400) == 0) {
    0x08047210 beq 0x80474e8                                                 |                 goto label_8;
                                                                             |             }
    0x08047214 tst r2, 0x20                                                  |             
                                                                             |             if ((r2 & 0x20) == 0) {
    0x08047218 beq 0x8047228                                                 |                 goto label_3;
                                                                             |             }
                                                                             | label_4:
    0x0804721c ldr r3, [sp, 0x24]                                            |             r3 = var_24h;
    0x08047220 cmp r3, 0                                                     |             
                                                                             |             if (r3 < 0) {
    0x08047224 blt 0x8047518                                                 |                 goto label_9;
                                                                             |             }
                                                                             |         }
                                                                             | label_3:
    0x08047228 tst r2, 8                                                     |         
                                                                             |         if ((r2 & 8) != 0) {
    0x0804722c beq 0x8047258                                                 |             
    0x08047230 ldr r3, [sb, 4]                                               |             r3 = *((sb + 4));
    0x08047234 tst r3, 0x8000000                                             |             
                                                                             |             if ((r3 & loc.imp.fs_overflowgid) != 0) {
    0x08047238 bne 0x8047528                                                 |                 goto label_10;
                                                                             |             }
    0x0804723c tst r3, 0x800000                                              |             
                                                                             |             if ((r3 & 0x800000) == 0) {
    0x08047240 beq 0x8047518                                                 |                 goto label_9;
                                                                             |             }
    0x08047244 ldr r2, [r5, 0x1f0]                                           |             r2 = *((r5 + 0x1f0));
    0x08047248 ldr r3, [r2, 0x50]                                            |             r3 = *((r2 + 0x50));
    0x0804724c orr r3, r3, 8                                                 |             r3 |= 8;
    0x08047250 str r3, [r2, 0x50]                                            |             *((r2 + 0x50)) = r3;
    0x08047254 ldr r2, [sb, 8]                                               |             r2 = *((sb + 8));
                                                                             |         }
                                                                             | label_5:
    0x08047258 tst r2, 0x10                                                  |         
                                                                             |         if ((r2 & 0x10) == 0) {
    0x0804725c ldrne r2, [r5, 0x1f0]                                         |             r2 = *((r5 + 0x1f0));
                                                                             |         }
                                                                             |         if ((r2 & 0x10) == 0) {
    0x08047260 ldrne r3, [r2, 0x4c]                                          |             r3 = *((r2 + 0x4c));
                                                                             |         }
    0x08047264 bicne r3, r3, 0x70                                            |         __asm ("bicne r3, r3, 0x70");
                                                                             |         if ((r2 & 0x10) == 0) {
    0x08047268 strne r3, [r2, 0x4c]                                          |             *((r2 + 0x4c)) = r3;
                                                                             |         }
                                                                             |         if ((r2 & 0x10) == 0) {
    0x0804726c ldrne r2, [sb, 8]                                             |             r2 = *((sb + 8));
                                                                             |         }
    0x08047270 ands r3, r2, 4                                                |         r3 = r2 & 4;
                                                                             |         if (r3 != r2) {
    0x08047274 bne 0x80474c8                                                 |             goto label_11;
                                                                             |         }
    0x08047278 sub r0, r4, 4                                                 |         r0 -= var_4h;
    0x0804727c cmp r0, 0x47                                                  |         
                                                                             |         if (r0 > 0x47) {
                                                                             |             /* switch table (72 cases) at 0x8047288 */
    0x08047280 ldrls pc, [pc, r0, lsl 2]                                     |             offset_1 = r0 << 2;
                                                                             |             pc = *((pc + offset_1));
                                                                             |         }
    0x08047284 b 0x804756c                                                   |         goto label_12;
                                                                             | label_6:
    0x08047430 ldr r3, [r5, 0x1f0]                                           |         r3 = *((r5 + 0x1f0));
    0x08047434 ldr r3, [r3, 0x4c]                                            |         r3 = *((r3 + 0x4c));
    0x08047438 tst r3, 0x400000                                              |         
                                                                             |         if ((r3 & 0x400000) != 0) {
    0x0804743c bne 0x804748c                                                 |             goto label_13;
                                                                             |         }
                                                                             | label_1:
    0x08047440 mov sb, 1                                                     |         sb = 1;
                                                                             | label_0:
    0x08047444 mov r0, sb                                                    |         r0 = sb;
    0x08047448 add sp, sp, 0x4c                                              |         
    0x0804744c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                      |         
    0x08047450 ldr r3, [r5, 0x70]                                            |         r3 = *((r5 + 0x70));
    0x08047454 ldr r1, [r3, 0x20]                                            |         r1 = *((r3 + 0x20));
    0x08047458 stmdaeq r5, {r3, r6, sl, fp, ip, sp, lr, pc}                  |         __asm ("stmdaeq r5, {r3, r6, sl, fp, ip, sp, lr, pc}");
    0x0804745c stmdaeq r5, {r3, r6, sl, fp, ip, sp, lr, pc}                  |         __asm ("stmdaeq r5, {r3, r6, sl, fp, ip, sp, lr, pc}");
    0x08047460 cmp r1, r3                                                    |         
    0x08047464 bne 0x8047200                                                 |         
                                                                             |     }
    0x08047468 mov r3, sl                                                    |     r3 = sl;
    0x0804746c mov r0, r5                                                    |     r0 = r5;
    0x08047470 stmdaeq r5, {r2, r3, r5, r7, sl, fp, lr, pc}                  |     __asm ("stmdaeq r5, {r2, r3, r5, r7, sl, fp, lr, pc}");
    0x08047474 stmdaeq r5, {r2, r3, r5, r7, sl, fp, lr, pc}                  |     __asm ("stmdaeq r5, {r2, r3, r5, r7, sl, fp, lr, pc}");
    0x08047478 stmdaeq r5, {r3, r4, fp, lr, pc}                              |     __asm ("stmdaeq r5, {r3, r4, fp, lr, pc}");
    0x0804747c stmdaeq r5, {r3, r4, fp, lr, pc}                              |     __asm ("stmdaeq r5, {r3, r4, fp, lr, pc}");
    0x08047480 mov sb, 0                                                     |     sb = 0;
    0x08047484 stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}          |     __asm ("stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}");
    0x08047488 b 0x8047444                                                   |     goto label_0;
                                                                             | label_13:
    0x0804748c ldr r3, [sp, 8]                                               |     r3 = var_8h;
    0x08047490 ldr r2, [r3, 0x44]                                            |     r2 = *((r3 + 0x44));
    0x08047494 mov r3, 0x400                                                 |     r3 = 0x400;
    0x08047498 ldr r2, [r2, 0x18]                                            |     r2 = *((r2 + 0x18));
    0x0804749c lsl r3, r3, r2                                                |     r3 <<= r2;
    0x080474a0 cmp r3, 0x1000                                                |     
                                                                             |     if (r3 >= 0x1000) {
    0x080474a4 bhs 0x8047440                                                 |         goto label_1;
                                                                             |     }
    0x080474a8 mov r0, r5                                                    |     r0 = r5;
    0x080474ac stmdaeq r5, {r2, r4, r5, r6, r8, sb, sl, fp, lr, pc}          |     __asm ("stmdaeq r5, {r2, r4, r5, r6, r8, sb, sl, fp, lr, pc}");
    0x080474b0 stmdaeq r5, {r2, r4, r5, r6, r8, sb, sl, fp, lr, pc}          |     __asm ("stmdaeq r5, {r2, r4, r5, r6, r8, sb, sl, fp, lr, pc}");
    0x080474b4 stmdaeq r5, {r3, r5, r6, sl, fp, lr, pc}                      |     __asm ("stmdaeq r5, {r3, r5, r6, sl, fp, lr, pc}");
    0x080474b8 stmdaeq r5, {r3, r5, r6, sl, fp, lr, pc}                      |     __asm ("stmdaeq r5, {r3, r5, r6, sl, fp, lr, pc}");
    0x080474bc mov sb, 1                                                     |     sb = 1;
    0x080474c0 stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}          |     __asm ("stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}");
    0x080474c4 b 0x8047444                                                   |     goto label_0;
                                                                             | label_11:
    0x080474c8 mov r3, sl                                                    |     r3 = sl;
    0x080474cc mov r0, r5                                                    |     r0 = r5;
    0x080474d0 stmdaeq r5, {r3, r4, r6, r7, sl, fp, lr, pc}                  |     __asm ("stmdaeq r5, {r3, r4, r6, r7, sl, fp, lr, pc}");
    0x080474d4 stmdaeq r5, {r3, r4, r6, r7, sl, fp, lr, pc}                  |     __asm ("stmdaeq r5, {r3, r4, r6, r7, sl, fp, lr, pc}");
    0x080474d8 stmdaeq r5, {r3, r4, fp, lr, pc}                              |     __asm ("stmdaeq r5, {r3, r4, fp, lr, pc}");
    0x080474dc stmdaeq r5, {r3, r4, fp, lr, pc}                              |     __asm ("stmdaeq r5, {r3, r4, fp, lr, pc}");
    0x080474e0 stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}          |     __asm ("stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}");
    0x080474e4 b 0x8047078                                                   |     goto label_2;
                                                                             | label_8:
    0x080474e8 add r1, sp, 0x24                                              |     r1 += var_24h;
    0x080474ec add r0, sp, 0x30                                              |     r0 += var_30h;
    0x080474f0 stmdaeq r8, {r3, r6, r7, r8, sb, fp, ip, sp, lr}              |     __asm ("stmdaeq r8, {r3, r6, r7, r8, sb, fp, ip, sp, lr}");
    0x080474f4 cmp r0, 0                                                     |     
                                                                             |     if (r0 != 0) {
    0x080474f8 bne 0x8047518                                                 |         goto label_9;
                                                                             |     }
    0x080474fc ldr r1, [sp, 0x30]                                            |     r1 = var_30h;
    0x08047500 ldr r2, [sb, 8]                                               |     r2 = *((sb + 8));
    0x08047504 cmp r1, 0                                                     |     
                                                                             |     if (r1 == 0) {
    0x08047508 beq 0x8047228                                                 |         goto label_3;
                                                                             |     }
    0x0804750c tst r2, 0x20                                                  |     
                                                                             |     if ((r2 & 0x20) == 0) {
    0x08047510 beq 0x8047228                                                 |         goto label_3;
                                                                             |     }
    0x08047514 b 0x804721c                                                   |     goto label_4;
                                                                             | label_9:
    0x08047518 mov sb, 0                                                     |     sb = 0;
    0x0804751c mov r0, sb                                                    |     r0 = sb;
    0x08047520 add sp, sp, 0x4c                                              |     
    0x08047524 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                      |     
                                                                             | label_10:
    0x08047528 ldr r2, [r5, 0x1f0]                                           |     r2 = *((r5 + 0x1f0));
    0x0804752c ldr r3, [r2, 0x50]                                            |     r3 = *((r2 + 0x50));
    0x08047530 orr r3, r3, 1                                                 |     r3 |= 1;
    0x08047534 str r3, [r2, 0x50]                                            |     *((r2 + 0x50)) = r3;
    0x08047538 ldr r2, [sb, 8]                                               |     r2 = *((sb + 8));
    0x0804753c b 0x8047258                                                   |     goto label_5;
                                                                             | label_7:
    0x08047540 mov r0, r5                                                    |     r0 = r5;
    0x08047544 mov r3, sl                                                    |     r3 = sl;
    0x08047548 stmdaeq r5, {r2, r4, r6, r7, r8, sb, sl, fp, lr, pc}          |     __asm ("stmdaeq r5, {r2, r4, r6, r7, r8, sb, sl, fp, lr, pc}");
    0x0804754c stmdaeq r5, {r2, r4, r6, r7, r8, sb, sl, fp, lr, pc}          |     __asm ("stmdaeq r5, {r2, r4, r6, r7, r8, sb, sl, fp, lr, pc}");
    0x08047550 stmdaeq r5, {r3, r4, fp, lr, pc}                              |     __asm ("stmdaeq r5, {r3, r4, fp, lr, pc}");
    0x08047554 stmdaeq r5, {r3, r4, fp, lr, pc}                              |     __asm ("stmdaeq r5, {r3, r4, fp, lr, pc}");
    0x08047558 mov sb, 0                                                     |     sb = 0;
    0x0804755c stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}          |     __asm ("stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}");
    0x08047560 mov r0, sb                                                    |     r0 = sb;
    0x08047564 add sp, sp, 0x4c                                              |     
    0x08047568 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                      |     
                                                                             | label_12:
    0x0804756c ands ip, r2, 0x80                                             |     
                                                                             |     if (ip == r2) {
    0x08047570 beq 0x8047838                                                 |         goto label_14;
                                                                             |     }
    0x08047574 ldr r2, [sp, 0x70]                                            |     r2 = *(arg_70h);
    0x08047578 cmp r2, 0                                                     |     
                                                                             |     if (r2 == 0) {
    0x0804757c beq 0x80478a4                                                 |         goto label_15;
                                                                             |     }
    0x08047580 ldr r2, [r7, 0x118]                                           |     r2 = *((r7 + 0x118));
    0x08047584 cmp r2, 0                                                     |     
                                                                             |     if (r2 == 0) {
    0x08047588 beq 0x8047a5c                                                 |         goto label_16;
                                                                             |     }
    0x0804758c ldr r2, [r5, 0x1f0]                                           |     r2 = *((r5 + 0x1f0));
    0x08047590 ldr r1, [sb, 4]                                               |     r1 = *((sb + 4));
    0x08047594 ldr r2, [r2, 0x4c]                                            |     r2 = *((r2 + 0x4c));
    0x08047598 and r2, r2, 0xc00                                             |     r2 &= 0xc00;
    0x0804759c cmp r2, r1                                                    |     
                                                                             |     if (r2 == r1) {
    0x080475a0 beq 0x8047078                                                 |         goto label_2;
                                                                             |     }
    0x080475a4 mov r0, r5                                                    |     r0 = r5;
    0x080475a8 stmdaeq r5, {r2, r4, r8, sb, sl, fp, lr, pc}                  |     __asm ("stmdaeq r5, {r2, r4, r8, sb, sl, fp, lr, pc}");
    0x080475ac stmdaeq r5, {r2, r4, r8, sb, sl, fp, lr, pc}                  |     __asm ("stmdaeq r5, {r2, r4, r8, sb, sl, fp, lr, pc}");
    0x080475b0 stmdaeq r5, {r3, r4, fp, lr, pc}                              |     __asm ("stmdaeq r5, {r3, r4, fp, lr, pc}");
    0x080475b4 stmdaeq r5, {r3, r4, fp, lr, pc}                              |     __asm ("stmdaeq r5, {r3, r4, fp, lr, pc}");
    0x080475b8 mov sb, r3                                                    |     sb = r3;
    0x080475bc stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}          |     __asm ("stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}");
    0x080475c0 b 0x8047444                                                   |     goto label_0;
                                                                             | label_14:
    0x08047838 sub r3, r4, 0x33                                              |     r3 = r4 - 0x33;
    0x0804783c cmp r3, 3                                                     |     
                                                                             |     if (r3 < 3) {
    0x08047840 bls 0x8047958                                                 |         goto label_17;
                                                                             |     }
    0x08047844 cmp r4, 0x1f                                                  |     
                                                                             |     if (r4 == 0x1f) {
    0x08047848 beq 0x8047944                                                 |         goto label_18;
                                                                             |     }
    0x0804784c cmp r4, 0x20                                                  |     
                                                                             |     if (r4 == 0x20) {
    0x08047850 beq 0x80479bc                                                 |         goto label_19;
                                                                             |     }
    0x08047854 cmp r1, 0                                                     |     
                                                                             |     if (r1 != 0) {
    0x08047858 moveq r3, 1                                                   |         r3 = 1;
                                                                             |     }
                                                                             |     if (r1 != 0) {
    0x0804785c streq r3, [sp, 0x24]                                          |         var_24h = r3;
                                                                             |     }
    0x08047860 ands r3, r2, 2                                                |     r3 = r2 & 2;
                                                                             |     if (r3 == r2) {
    0x08047864 beq 0x80479ac                                                 |         goto label_20;
                                                                             |     }
    0x08047868 ldr r3, [sp, 0x24]                                            |     r3 = var_24h;
    0x0804786c clz r3, r3                                                    |     r3 &= r3;
    0x08047870 lsr r3, r3, 5                                                 |     r3 >>= 5;
    0x08047874 str r3, [sp, 0x24]                                            |     var_24h = r3;
                                                                             |     do {
    0x08047878 tst r2, 0x1000                                                |         
    0x0804787c ldr r2, [sb, 4]                                               |         r2 = *((sb + 4));
                                                                             |         if ((r2 & 0x1000) == 0) {
    0x08047880 beq 0x8047a44                                                 |             goto label_21;
                                                                             |         }
    0x08047884 cmp r3, 0                                                     |         
    0x08047888 ldr r3, [r7, 0x50]                                            |         r3 = *((r7 + 0x50));
                                                                             |         if (r3 == 0) {
    0x0804788c orrne r3, r3, r2                                              |             r3 |= r2;
                                                                             |         }
    0x08047890 biceq r3, r3, r2                                              |         __asm ("biceq r3, r3, r2");
    0x08047894 str r3, [r7, 0x50]                                            |         *((r7 + 0x50)) = r3;
    0x08047898 b 0x8047078                                                   |         goto label_2;
                                                                             | label_15:
    0x080478a4 ldr r2, [r5, 0x1f0]                                           |         r2 = *((r5 + 0x1f0));
    0x080478a8 ldr r3, [r2, 0x4c]                                            |         r3 = *((r2 + 0x4c));
    0x080478ac bic r3, r3, 0xc00                                             |         r3 = BIT_MASK (r3, 0xc00);
    0x080478b0 str r3, [r2, 0x4c]                                            |         *((r2 + 0x4c)) = r3;
    0x080478b4 ldr r2, [sb, 4]                                               |         r2 = *((sb + 4));
    0x080478b8 ldr r3, [r7, 0x4c]                                            |         r3 = *((r7 + 0x4c));
    0x080478bc orr r3, r3, r2                                                |         r3 |= r2;
    0x080478c0 str r3, [r7, 0x4c]                                            |         *((r7 + 0x4c)) = r3;
    0x080478c4 b 0x8047078                                                   |         goto label_2;
                                                                             | label_18:
    0x08047944 ldr r2, [sb, 4]                                               |         r2 = *((sb + 4));
    0x08047948 ldr r3, [r7, 0x4c]                                            |         r3 = *((r7 + 0x4c));
    0x0804794c orr r3, r3, r2                                                |         r3 |= r2;
    0x08047950 str r3, [r7, 0x4c]                                            |         *((r7 + 0x4c)) = r3;
    0x08047954 b 0x8047078                                                   |         goto label_2;
                                                                             | label_17:
    0x08047958 mov r0, r5                                                    |         r0 = r5;
    0x0804795c stmdaeq r5, {r3, r4, r5, r8, sb, sl, fp, lr, pc}              |         __asm ("stmdaeq r5, {r3, r4, r5, r8, sb, sl, fp, lr, pc}");
    0x08047960 stmdaeq r5, {r3, r4, r5, r8, sb, sl, fp, lr, pc}              |         __asm ("stmdaeq r5, {r3, r4, r5, r8, sb, sl, fp, lr, pc}");
    0x08047964 stmdaeq r5, {r2, r4, r5, r7, r8, sb, fp, lr, pc}              |         __asm ("stmdaeq r5, {r2, r4, r5, r7, r8, sb, fp, lr, pc}");
    0x08047968 stmdaeq r5, {r2, r4, r5, r7, r8, sb, fp, lr, pc}              |         __asm ("stmdaeq r5, {r2, r4, r5, r7, r8, sb, fp, lr, pc}");
    0x0804796c mov sb, ip                                                    |         sb = ip;
    0x08047970 stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}          |         __asm ("stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}");
    0x08047974 ldr r3, [r7, 0x50]                                            |         r3 = *((r7 + 0x50));
    0x08047978 orr r3, r3, 0x20                                              |         r3 |= 0x20;
    0x0804797c str r3, [r7, 0x50]                                            |         *((r7 + 0x50)) = r3;
    0x08047980 b 0x8047444                                                   |         goto label_0;
                                                                             | label_20:
    0x080479ac tst r2, 1                                                     |         
                                                                             |         if ((r2 & 1) == 0) {
    0x080479b0 beq 0x8047a78                                                 |             goto label_22;
                                                                             |         }
    0x080479b4 ldr r3, [sp, 0x24]                                            |         r3 = var_24h;
    0x080479b8 b 0x8047878                                                   |         
                                                                             |     } while (1);
                                                                             | label_19:
    0x080479bc ldr r2, [sb, 4]                                               |     r2 = *((sb + 4));
    0x080479c0 ldr r3, [r7, 0x4c]                                            |     r3 = *((r7 + 0x4c));
    0x080479c4 bic r3, r3, r2                                                |     r3 = BIT_MASK (r3, r2);
    0x080479c8 str r3, [r7, 0x4c]                                            |     *((r7 + 0x4c)) = r3;
    0x080479cc b 0x8047078                                                   |     goto label_2;
                                                                             | label_21:
    0x08047a44 cmp r3, 0                                                     |     
    0x08047a48 ldr r3, [r7, 0x4c]                                            |     r3 = *((r7 + 0x4c));
                                                                             |     if (r3 == 0) {
    0x08047a4c orrne r3, r3, r2                                              |         r3 |= r2;
                                                                             |     }
    0x08047a50 biceq r3, r3, r2                                              |     __asm ("biceq r3, r3, r2");
    0x08047a54 str r3, [r7, 0x4c]                                            |     *((r7 + 0x4c)) = r3;
    0x08047a58 b 0x8047078                                                   |     goto label_2;
                                                                             | label_16:
    0x08047a5c mov r0, r5                                                    |     r0 = r5;
    0x08047a60 stmdaeq r5, {r3, r6, r7, sb, sl, fp, lr, pc}                  |     __asm ("stmdaeq r5, {r3, r6, r7, sb, sl, fp, lr, pc}");
    0x08047a64 stmdaeq r5, {r3, r6, r7, sb, sl, fp, lr, pc}                  |     __asm ("stmdaeq r5, {r3, r6, r7, sb, sl, fp, lr, pc}");
    0x08047a68 stmdaeq r5, {r3, r5, r6, sl, fp, lr, pc}                      |     __asm ("stmdaeq r5, {r3, r5, r6, sl, fp, lr, pc}");
    0x08047a6c stmdaeq r5, {r3, r5, r6, sl, fp, lr, pc}                      |     __asm ("stmdaeq r5, {r3, r5, r6, sl, fp, lr, pc}");
    0x08047a70 stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}          |     __asm ("stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}");
    0x08047a74 b 0x8047078                                                   |     goto label_2;
                                                                             | label_22:
    0x08047a78 mov sb, r3                                                    |     sb = r3;
    0x08047a7c mov r0, r5                                                    |     r0 = r5;
    0x08047a80 mov r3, sl                                                    |     r3 = sl;
    0x08047a84 stmdaeq r5, {r2, r4, r6, r8, sb, sl, fp, lr, pc}              |     __asm ("stmdaeq r5, {r2, r4, r6, r8, sb, sl, fp, lr, pc}");
    0x08047a88 stmdaeq r5, {r2, r4, r6, r8, sb, sl, fp, lr, pc}              |     __asm ("stmdaeq r5, {r2, r4, r6, r8, sb, sl, fp, lr, pc}");
    0x08047a8c stmdaeq r5, {r3, r5, r6, sl, fp, lr, pc}                      |     __asm ("stmdaeq r5, {r3, r5, r6, sl, fp, lr, pc}");
    0x08047a90 stmdaeq r5, {r3, r5, r6, sl, fp, lr, pc}                      |     __asm ("stmdaeq r5, {r3, r5, r6, sl, fp, lr, pc}");
    0x08047a94 stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}          |     __asm ("stmdaeq r4, {r3, r4, r5, r6, r7, sb, sl, fp, ip, lr}");
    0x08047a98 mov r3, sb                                                    |     r3 = sb;
    0x08047a9c mov r2, 9                                                     |     r2 = 9;
    0x08047aa0 movw r1, 0x96b                                                |     r1 = 0x96b;
    0x08047aa4 stmdaeq r5, {r4, r5, r6, r7, sb, sl, lr, pc}                  |     __asm ("stmdaeq r5, {r4, r5, r6, r7, sb, sl, lr, pc}");
    0x08047aa8 stmdaeq r5, {r4, r5, r6, r7, sb, sl, lr, pc}                  |     __asm ("stmdaeq r5, {r4, r5, r6, r7, sb, sl, lr, pc}");
    0x08047aac stmdaeq r8, {r2, r8, sb, sl, ip, sp, lr}                      |     __asm ("stmdaeq r8, {r2, r8, sb, sl, ip, sp, lr}");
    0x08047ab0 b 0x8047444                                                   |     goto label_0;
                                                                             | }

[*] Function sprintf used 1 times ext4.ko