[*] Binary protection state of udevadm

  
  	Full RELRO     Canary found      NX enabled   PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function fprintf tear down of udevadm

    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x65aac */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00065aac ()                          | void fcn_00065aac (int16_t arg1, int16_t arg2) {
                                                     |     int32_t var_0h_2;
                                                     |     int32_t var_0h_3;
                                                     |     int16_t var_8h_3;
                                                     |     int16_t var_8h_2;
                                                     |     int32_t var_bh;
                                                     |     int32_t var_fh;
                                                     |     int8_t var_13h;
                                                     |     int16_t var_8h;
                                                     |     int32_t var_4h;
                                                     |     int16_t var_8h_4;
                                                     |     int32_t var_ch;
                                                     |     int16_t var_0h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x00065aac push {r4, r5, r7, lr}                 |     
    0x00065aae mov r5, r1                            |     r5 = r1;
    0x00065ab0 ldr r1, [pc, 0xbc]                    |     
    0x00065ab2 sub sp, 0x18                          |     
    0x00065ab4 movs r3, 0                            |     r3 = 0;
    0x00065ab6 ldr r2, [pc, 0xbc]                    |     r2 = *(0x65b76);
    0x00065ab8 add r7, sp, 8                         |     r7 += var_8h;
    0x00065aba add r1, pc                            |     r1 = 0xcb62e;
    0x00065abc ldr r2, [r1, r2]                      |     
    0x00065abe ldr r2, [r2]                          |     r2 = imp.__progname;
    0x00065ac0 str r2, [r7, 0xc]                     |     var_ch = r2;
    0x00065ac2 mov.w r2, 0                           |     r2 = 0;
    0x00065ac6 str r3, [r7, 4]                       |     var_4h = r3;
    0x00065ac8 cmp r5, 0                             |     
                                                     |     if (r5 == 0) {
    0x00065aca beq 0x65b52                           |         goto label_1;
                                                     |     }
                                                     |     if (r0 == 0) {
    0x00065acc cbz r0, 0x65b30                       |         goto label_2;
                                                     |     }
    0x00065ace ldr r1, [pc, 0xa8]                    |     
    0x00065ad0 sub sp, 0x20                          |     
    0x00065ad2 ldr r3, [pc, 0xa8]                    |     
    0x00065ad4 add r4, sp, 8                         |     r4 += var_8h_3;
    0x00065ad6 movs r2, 0x1c                         |     r2 = 0x1c;
    0x00065ad8 add r1, pc                            |     r1 = 0xcb656;
    0x00065ada strd r0, r1, [sp]                     |     __asm ("strd r0, r1, [sp]");
    0x00065ade add r3, pc                            |     r3 = 0xcb660;
    0x00065ae0 movs r1, 1                            |     r1 = 1;
    0x00065ae2 mov r0, r4                            |     r0 = r4;
    0x00065ae4 blx 0x9494                            |     fcn_00009494 ();
                                                     |     do {
    0x00065ae8 mov r0, r4                            |         r0 = r4;
    0x00065aea adds r1, r7, 4                        |         r1 += var_4h;
    0x00065aec bl 0x6b320                            |         fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x00065af0 subs r4, r0, 0                        |         r4 -= var_8h_2;
                                                     |         if (r4 >= var_8h_2) {
    0x00065af2 blt 0x65b0e                           |             
    0x00065af4 ldr r0, [r7, 4]                       |             r0 = var_4h;
    0x00065af6 add.w r1, r7, 8                       |             r1 += var_8h_4;
    0x00065afa bl 0x7d7e8                            |             r0 = fcn_0007d7e8 (r0, r1);
    0x00065afe adds r3, r0, 6                        |             r3 = r0 + 6;
    0x00065b00 mov r4, r0                            |             r4 = r0;
                                                     |             if (r3 == r0) {
    0x00065b02 beq 0x65b66                           |                 goto label_3;
                                                     |             }
    0x00065b04 cmp r0, 0                             |             
                                                     |             if (r0 < 0) {
    0x00065b06 blt 0x65b0e                           |                 goto label_0;
                                                     |             }
    0x00065b08 ldr r3, [r7, 8]                       |             r3 = var_8h_4;
    0x00065b0a movs r4, 0                            |             r4 = 0;
    0x00065b0c str r3, [r5]                          |             *(r5) = r3;
                                                     |         }
                                                     | label_0:
    0x00065b0e ldr r0, [r7, 4]                       |         r0 = var_4h;
    0x00065b10 blx 0x8dac                            |         fcn_00008dac ();
    0x00065b14 ldr r2, [pc, 0x68]                    |         
    0x00065b16 ldr r3, [pc, 0x5c]                    |         r3 = *(0x65b76);
    0x00065b18 add r2, pc                            |         r2 = 0xcb69c;
    0x00065b1a ldr r3, [r2, r3]                      |         r3 = imp.__progname;
    0x00065b1c ldr r2, [r3]                          |         r2 = imp.__progname;
    0x00065b1e ldr r3, [r7, 0xc]                     |         r3 = var_ch;
    0x00065b20 eors r2, r3                           |         r2 ^= r3;
    0x00065b22 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x00065b26 bne 0x65b6c                           |             goto label_4;
                                                     |         }
    0x00065b28 mov r0, r4                            |         r0 = r4;
    0x00065b2a adds r7, 0x10                         |         r7 += 0x10;
    0x00065b2c mov sp, r7                            |         
    0x00065b2e pop {r4, r5, r7, pc}                  |         
                                                     | label_2:
    0x00065b30 ldr r2, [pc, 0x50]                    |         
    0x00065b32 sub sp, 0x18                          |         
    0x00065b34 ldr r3, [pc, 0x50]                    |         
    0x00065b36 add r4, sp, 8                         |         r4 += var_8h_2;
    0x00065b38 add r2, pc                            |         r2 = 0xcb6c0;
    0x00065b3a ldm r2, {r0, r1, r2}                  |         r0 = *(r2);
                                                     |         r1 = *((r2 + 4));
                                                     |         r2 = *((r2 + 8));
    0x00065b3c add r3, pc                            |         r3 = 0xcb6c8;
    0x00065b3e stm.w r4, {r0, r1, r2}                |         *(r4) = r0;
                                                     |         *((r4 + 4)) = r1;
                                                     |         *((r4 + 8)) = r2;
    0x00065b42 ldm r3!, {r0, r1}                     |         r0 = *(r3!);
                                                     |         r1 = *((r3! + 4));
    0x00065b44 ldrb r3, [r3]                         |         r3 = *(r3);
    0x00065b46 str.w r0, [r4, 0xb]                   |         __asm ("str.w r0, [var_bh]");
    0x00065b48 movs r3, r1                           |         r3 = r1;
    0x00065b4a str.w r1, [r4, 0xf]                   |         __asm ("str.w r1, [var_fh]");
    0x00065b4e strb r3, [r4, 0x13]                   |         var_13h = r3;
    0x00065b50 b 0x65ae8                             |         
                                                     |     } while (1);
                                                     | label_1:
    0x00065b52 ldr r1, [pc, 0x38]                    |     
    0x00065b54 movs r2, 0x35                         |     r2 = 0x35;
    0x00065b56 ldr r3, [pc, 0x38]                    |     
    0x00065b58 ldr r0, [pc, 0x38]                    |     
    0x00065b5a add r1, pc                            |     r1 = 0xcb6ec;
    0x00065b5c add r3, pc                            |     r3 = 0xcb6f2;
    0x00065b5e adds r1, 7                            |     r1 += 7;
    0x00065b60 add r0, pc                            |     r0 = 0xcb6f8;
    0x00065b62 bl 0x71518                            |     fcn_00071518 (r0, r1, r2, r3);
                                                     | label_3:
    0x00065b66 mvn r4, 0x3c                          |     r4 = ~0x3c;
    0x00065b6a b 0x65b0e                             |     goto label_0;
                                                     | label_4:
    0x00065b6c blx 0x927c                            |     fprintf_chk ()
    0x00065b70 adds r0, 0xa                          |     r0 += 0xa;
    0x00065b72 movs r6, r0                           |     r6 = r0;
    0x00065b74 lsls r0, r0, 0x13                     |     r0 <<= 0x13;
    0x00065b76 movs r0, r0                           |     
    0x00065b78 stm r0!, {r2, r3, r4, r5, r7}         |     *(r0!) = r2;
                                                     |     *((r0! + 4)) = r3;
                                                     |     *((r0! + 8)) = r4;
                                                     |     *((r0! + 12)) = r5;
                                                     |     *((r0! + 16)) = r7;
    0x00065b7a movs r3, r0                           |     r3 = r0;
    0x00065b7c invalid                               |     
                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x65cf8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00065cf8 ()                      | void fcn_00065cf8 (uint32_t arg1) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     r0 = arg1;
    0x00065cf8 blmi 0xef85e4                     |     __asm ("blmi aav.0x00062dc4");
    0x00065cfc push {r4, r5, lr}                 |     
    0x00065cfe sub sp, 0xc                       |     
    0x00065d00 add r2, pc                        |     r2 += pc;
    0x00065d02 ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x00065d04 ldr r3, [r3]                      |     r3 = *(r3);
    0x00065d06 str r3, [sp, 4]                   |     var_4h = r3;
    0x00065d08 mov.w r3, 0                       |     r3 = 0;
    0x00065d0c cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x00065d0e beq 0x65dbe                       |         goto label_2;
                                                 |     }
    0x00065d10 mov r1, sp                        |     r1 = sp;
    0x00065d12 mov r4, r0                        |     r4 = r0;
    0x00065d14 bl 0x746ac                        |     r0 = fcn_000746ac (r0, r1);
    0x00065d18 cmp r0, 0                         |     
                                                 |     if (r0 < 0) {
    0x00065d1a blt 0x65d3e                       |         goto label_3;
                                                 |     }
    0x00065d1c ldr r0, [sp]                      |     r0 = *(sp);
    0x00065d1e cmp r0, 0x40                      |     
    0x00065d20 it hs                             |     
    0x00065d22 mvnhs r0, 0x15                    |     r0 = ~0x15;
                                                 |     while (1) {
                                                 | label_0:
    0x00065d26 ldr r2, [pc, 0xc0]                |         
    0x00065d28 ldr r3, [pc, 0xb8]                |         r3 = *(0x65de4);
    0x00065d2a add r2, pc                        |         r2 = 0xcbb18;
    0x00065d2c ldr r3, [r2, r3]                  |         r3 = imp.__progname;
    0x00065d2e ldr r2, [r3]                      |         r2 = imp.__progname;
    0x00065d30 ldr r3, [sp, 4]                   |         r3 = var_4h;
    0x00065d32 eors r2, r3                       |         r2 ^= r3;
    0x00065d34 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00065d38 bne 0x65ddc                       |             goto label_4;
                                                 |         }
    0x00065d3a add sp, 0xc                       |         
    0x00065d3c pop {r4, r5, pc}                  |         
                                                 | label_3:
    0x00065d3e mov r0, r4                        |         r0 = r4;
    0x00065d40 blx 0x8f38                        |         fcn_00008f38 ();
    0x00065d42 ldrd r1, pc, [sl], 0x30c          |         __asm ("ldrd r1, pc, [sl], 0x30c");
    0x00065d46 cmp r3, 0xf                       |         
                                                 |         if (r3 > 0xf) {
    0x00065d48 bhi 0x65db8                       |             goto label_5;
                                                 |         }
    0x00065d4a cmp r0, 7                         |         
                                                 |         if (r0 != 7) {
    0x00065d4c beq 0x65d66                       |             
    0x00065d4e cmp r0, 8                         |             
                                                 |             if (r0 != 8) {
    0x00065d50 beq 0x65d5c                       |                 
    0x00065d52 ldr r3, [pc, 0x98]                |                 
    0x00065d54 ldrb r2, [r4, 8]                  |                 r2 = *((r4 + 8));
    0x00065d56 add r3, pc                        |                 r3 = 0xcbb48;
    0x00065d58 ldrb r3, [r3, r2]                 |                 r3 = *((r3 + r2));
    0x00065d5a add r0, r3                        |                 r0 += r3;
                                                 |             }
    0x00065d5c ldr r3, [pc, 0x90]                |             
    0x00065d5e ldrb r2, [r4, 7]                  |             r2 = *((r4 + 7));
    0x00065d60 add r3, pc                        |             r3 = 0xcbb54;
    0x00065d62 ldrb r3, [r3, r2]                 |             r3 = *((r3 + r2));
    0x00065d64 add r0, r3                        |             r0 += r3;
                                                 |         }
    0x00065d66 ldr r3, [pc, 0x8c]                |         
    0x00065d68 ldrb r2, [r4, 4]                  |         r2 = *((r4 + 4));
    0x00065d6a add r3, pc                        |         r3 = 0xcbb64;
    0x00065d6c ldrb r3, [r3, r2]                 |         r3 = *((r3 + r2));
    0x00065d6e add r3, r0                        |         r3 += r0;
    0x00065d70 cmp r3, 0x4a                      |         
                                                 |         if (r3 > 0x4a) {
    0x00065d72 bhi 0x65db8                       |             goto label_5;
                                                 |         }
    0x00065d74 ldr r2, [pc, 0x80]                |         
    0x00065d76 add r2, pc                        |         
    0x00065d78 ldr.w r2, [r2, r3, lsl 3]         |         r2 = imp.__progname;
                                                 |         if (r2 == 0) {
    0x00065d7c cbz r2, 0x65db8                   |             goto label_5;
                                                 |         }
    0x00065d7e ldrb r1, [r4]                     |         r1 = *(r4);
    0x00065d80 ldrb r0, [r2]                     |         r0 = *(r2);
    0x00065d82 eor.w ip, r1, r0                  |         
    0x00065d86 tst.w ip, 0xdf                    |         
                                                 |         if ((ip & 0xdf) != 0) {
    0x00065d8a bne 0x65db8                       |             goto label_5;
                                                 |         }
    0x00065d8c ldr.w ip, [pc, 0x6c]              |         
    0x00065d90 add ip, pc                        |         ip = 0xcbb90;
                                                 | label_1:
    0x00065d92 ldrb.w r1, [ip, r1]               |         r1 = *((ip + r1));
    0x00065d96 ldrb.w r0, [ip, r0]               |         r0 = *((ip + r0));
    0x00065d9a subs r5, r1, 0                    |         r5 = r1 - 0;
    0x00065d9c it ne                             |         
                                                 |         if (r5 == r1) {
    0x00065d9e movne r5, 1                       |             r5 = 1;
                                                 |         }
    0x00065da0 cmp r1, r0                        |         
    0x00065da2 it ne                             |         
                                                 |         if (r1 == r0) {
    0x00065da4 movne r5, 0                       |             r5 = 0;
                                                 |         }
                                                 |         if (r5 != 0) {
    0x00065da6 cbnz r5, 0x65dd2                  |             goto label_6;
                                                 |         }
    0x00065da8 cmp r1, r0                        |         
                                                 |         if (r1 != r0) {
    0x00065daa bne 0x65db8                       |             goto label_5;
                                                 |         }
    0x00065dac ldr r2, [pc, 0x50]                |         
    0x00065dae add r2, pc                        |         r2 = 0xcbbb2;
    0x00065db0 add.w r3, r2, r3, lsl 3           |         r3 = r2 + (r3 << 3);
    0x00065db4 ldr r0, [r3, 4]                   |         r0 = *((r3 + 4));
    0x00065db6 b 0x65d26                         |         
                                                 |     }
                                                 | label_5:
    0x00065db8 mvn r0, 0x15                      |     r0 = ~0x15;
    0x00065dbc b 0x65d26                         |     goto label_0;
                                                 | label_2:
    0x00065dbe ldr r1, [pc, 0x44]                |     
    0x00065dc0 movs r2, 0x22                     |     r2 = 0x22;
    0x00065dc2 ldr r3, [pc, 0x44]                |     
    0x00065dc4 ldr r0, [pc, 0x44]                |     
    0x00065dc6 add r1, pc                        |     r1 = 0xcbbd0;
    0x00065dc8 add r3, pc                        |     r3 = 0xcbbd6;
    0x00065dca adds r1, 7                        |     r1 += 7;
    0x00065dcc add r0, pc                        |     r0 = 0xcbbdc;
    0x00065dce bl 0x71518                        |     fcn_00071518 (r0, r1, r2, r3);
    0x00065dd0 invalid                           |     
                                                 | label_6:
    0x00065dd2 ldrb r1, [r4, 1]!                 |     r1 = *((r4 += 1));
    0x00065dd6 ldrb r0, [r2, 1]!                 |     r0 = *((r2 += 1));
    0x00065dda b 0x65d92                         |     goto label_1;
                                                 | label_4:
    0x00065ddc blx 0x927c                        |     fprintf_chk ()
    0x00065de0 cmp r5, 0xc4                      |     
    0x00065de2 movs r6, r0                       |     r6 = r0;
    0x00065de4 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x00065de6 movs r0, r0                       |     
    0x00065de8 cmp r5, 0x9a                      |     
    0x00065dea movs r6, r0                       |     r6 = r0;
    0x00065dec stm r4!, {r1, r2, r4}             |     *(r4!) = r1;
                                                 |     *((r4! + 4)) = r2;
                                                 |     *((r4! + 8)) = r4;
    0x00065dee movs r3, r0                       |     r3 = r0;
    0x00065df0 stm r4!, {r2, r3}                 |     *(r4!) = r2;
                                                 |     *((r4! + 4)) = r3;
    0x00065df2 movs r3, r0                       |     r3 = r0;
    0x00065df4 stm r4!, {r1}                     |     *(r4!) = r1;
    0x00065df6 movs r3, r0                       |     r3 = r0;
    0x00065df8 asrs r2, r3, 0x20                 |     r2 = r3 >> 0x20;
    0x00065dfa movs r6, r0                       |     r6 = r0;
    0x00065dfc stm r4!, {r2, r3, r4, r6, r7}     |     *(r4!) = r2;
                                                 |     *((r4! + 4)) = r3;
                                                 |     *((r4! + 8)) = r4;
                                                 |     *((r4! + 12)) = r6;
                                                 |     *((r4! + 16)) = r7;
    0x00065dfe movs r3, r0                       |     r3 = r0;
    0x00065e00 lsrs r2, r4, 0x1f                 |     r2 = r4 >> 0x1f;
    0x00065e02 movs r6, r0                       |     r6 = r0;
    0x00065e04 bkpt 0x62                         |     __asm ("bkpt 0x62");
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x65e10 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00065e10 ()                  | void fcn_00065e10 () {
                                             |     int16_t var_4h;
                                             |     int16_t var_8h;
                                             |     int16_t var_ch;
    0x00065e10 blmi 0xef86fc                 |     __asm ("blmi aav.0x00062cae");
    0x00065e14 ldr r0, [pc, 0xd0]            |     
    0x00065e16 add r2, pc                    |     r2 += pc;
    0x00065e18 push {r4, r5, r6, r7, lr}     |     
    0x00065e1a ldr r5, [pc, 0xd0]            |     r5 = *(0x65eee);
    0x00065e1c sub sp, 0x14                  |     
    0x00065e1e movs r4, 0                    |     r4 = 0;
    0x00065e20 add r0, pc                    |     r0 = 0xcbd0c;
    0x00065e22 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x00065e24 ldr r3, [r3]                  |     r3 = *(r3);
    0x00065e26 str r3, [sp, 0xc]             |     var_ch = r3;
    0x00065e28 mov.w r3, 0                   |     r3 = 0;
    0x00065e2c strd r4, r4, [sp, 4]          |     __asm ("strd r4, r4, [var_4h]");
    0x00065e2e add r1, r0                    |     r1 += r0;
    0x00065e30 blx 0x9240                    |     nl_langinfo (r0);
    0x00065e34 ldrb r6, [r5, r0]             |     r6 = *((r5 + r0));
    0x00065e36 mov r7, r0                    |     r7 = r0;
                                             |     if (r6 != 0) {
    0x00065e38 cbz r6, 0x65e5e               |         
    0x00065e3a ldr r3, [pc, 0xb4]            |         r3 = *(0x65ef2);
    0x00065e3c mov r0, r4                    |         r0 = r4;
    0x00065e3e ldr r4, [r3, r7]              |         r4 = *(0x65ef2);
                                             | label_0:
    0x00065e40 blx 0x8dac                    |         fcn_00008dac ();
    0x00065e44 ldr r2, [pc, 0xb8]            |         
    0x00065e46 ldr r3, [pc, 0xb4]            |         r3 = *(0x65efe);
    0x00065e48 add r2, pc                    |         r2 = 0xcbd4c;
    0x00065e4a ldr r3, [r2, r3]              |         r3 = imp.__progname;
    0x00065e4c ldr r2, [r3]                  |         r2 = imp.__progname;
    0x00065e4e ldr r3, [sp, 0xc]             |         r3 = var_ch;
    0x00065e50 eors r2, r3                   |         r2 ^= r3;
    0x00065e52 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00065e56 bne 0x65ee4                   |             goto label_3;
                                             |         }
    0x00065e58 mov r0, r4                    |         r0 = r4;
    0x00065e5a add sp, 0x14                  |         
    0x00065e5c pop {r4, r5, r6, r7, pc}      |         
                                             |     }
    0x00065e5e ldr r0, [pc, 0xa4]            |     
    0x00065e60 add r1, sp, 4                 |     r1 += var_4h;
    0x00065e62 add r0, pc                    |     r0 = 0xcbd6c;
    0x00065e64 bl 0x6b320                    |     r0 = fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x00065e68 cmp r0, 0                     |     
                                             |     if (r0 >= 0) {
    0x00065e6a blt 0x65e7a                   |         
    0x00065e6c ldr r0, [sp, 4]               |         r0 = var_4h;
    0x00065e6e add r2, sp, 8                 |         r2 += var_8h;
    0x00065e70 mov r1, r6                    |         r1 = r6;
    0x00065e72 bl 0x7444c                    |         r0 = fcn_0007444c (r0, r1, r2);
    0x00065e76 cmp r0, 0                     |         
                                             |         if (r0 >= 0) {
    0x00065e78 bge 0x65ed0                   |             goto label_4;
                                             |         }
                                             |     }
    0x00065e7a movs r1, 0x28                 |     r1 = 0x28;
    0x00065e7c movs r0, 0x17                 |     r0 = 0x17;
    0x00065e7e str r1, [sp, 8]               |     var_8h = r1;
    0x00065e80 blx 0x93bc                    |     r0 = fcn_000093bc ();
    0x00065e84 cmp r0, 0                     |     
    0x00065e86 ldr r4, [sp, 8]               |     r4 = var_8h;
                                             |     if (r0 >= 0) {
    0x00065e88 bge 0x65e9e                   |         goto label_5;
                                             |     }
    0x00065e8a b 0x65ec6                     |     goto label_6;
                                             |     do {
    0x00065e8c adds r1, r4, 1                |         r1 = r4 + 1;
    0x00065e8e movs r0, 0x17                 |         r0 = 0x17;
    0x00065e90 blx 0x93bc                    |         r0 = fcn_000093bc ();
    0x00065e94 cmp r0, 0                     |         
    0x00065e96 ldr r4, [sp, 8]               |         r4 = var_8h;
                                             |         if (r0 < 0) {
    0x00065e98 blt 0x65ea2                   |             goto label_2;
                                             |         }
    0x00065e9a adds r4, 1                    |         r4++;
    0x00065e9c str r4, [sp, 8]               |         var_8h = r4;
                                             | label_5:
    0x00065e9e cmp r4, 0x3e                  |         
    0x00065ea0 bls 0x65e8c                   |         
                                             |     } while (r4 < 0x3e);
                                             |     do {
                                             | label_2:
    0x00065ea2 ldr r0, [pc, 0x50]            |         
    0x00065ea4 add r0, pc                    |         r0 = 0xcbd9e;
    0x00065ea6 blx 0x9240                    |         nl_langinfo (r0);
    0x00065ea8 strd r4, sl, [ip, 0x44]       |         __asm ("strd r4, sl, [ip, 0x44]");
    0x00065eaa ldr r2, [pc, 0x44]            |         r2 = *(0x65ef2);
    0x00065eac mov r3, r0                    |         r3 = r0;
    0x00065eae ldr r0, [sp, 4]               |         r0 = var_4h;
    0x00065eb0 str r4, [r2, r3]              |         *((r2 + r3)) = r4;
    0x00065eb2 movs r2, 1                    |         r2 = 1;
    0x00065eb4 strb r2, [r5, r3]             |         *((r5 + r3)) = r2;
    0x00065eb6 b 0x65e40                     |         goto label_0;
                                             | label_1:
    0x00065eb8 mov r1, r4                    |         r1 = r4;
    0x00065eba movs r0, 0x17                 |         r0 = 0x17;
    0x00065ebc blx 0x93bc                    |         r0 = fcn_000093bc ();
    0x00065ec0 cmp r0, 0                     |         
    0x00065ec2 ldr r4, [sp, 8]               |         r4 = var_8h;
    0x00065ec4 bge 0x65ea2                   |         
                                             |     } while (r0 >= 0);
                                             | label_6:
    0x00065ec6 subs r4, 1                    |     r4--;
    0x00065ec8 str r4, [sp, 8]               |     var_8h = r4;
    0x00065eca cmp r4, 0                     |     
                                             |     if (r4 != 0) {
    0x00065ecc bne 0x65eb8                   |         goto label_1;
                                             |     }
    0x00065ece b 0x65ea2                     |     goto label_2;
                                             | label_4:
    0x00065ed0 ldr r4, [sp, 8]               |     r4 = var_8h;
    0x00065ed2 movs r2, 1                    |     r2 = 1;
    0x00065ed4 ldr r3, [pc, 0x18]            |     r3 = *(0x65ef0);
    0x00065ed6 ldr r0, [sp, 4]               |     r0 = var_4h;
    0x00065ed8 cmp r4, 0x3f                  |     
    0x00065eda strb r2, [r5, r7]             |     *((r5 + r7)) = r2;
    0x00065edc it hs                         |     
                                             |     if (r4 < 0x3f) {
    0x00065ede movhs r4, 0x3f                |         r4 = 0x3f;
                                             |     }
    0x00065ee0 str r4, [r3, r7]              |     *((r3 + r7)) = r4;
    0x00065ee2 b 0x65e40                     |     goto label_0;
                                             | label_3:
    0x00065ee4 blx 0x927c                    |     fprintf_chk ()
    0x00065ee8 adds r0, 0xfc                 |     r0 += 0xfc;
    0x00065eea movs r6, r0                   |     r6 = r0;
    0x00065eec lsls r0, r4, 1                |     r0 = r4 << 1;
    0x00065eee movs r0, r0                   |     
    0x00065ef0 lsls r4, r3, 1                |     r4 = r3 << 1;
    0x00065ef2 movs r0, r0                   |     
    0x00065ef4 adds r0, 0x78                 |     r0 += 0x78;
    0x00065ef6 movs r6, r0                   |     r6 = r0;
    0x00065ef8 cmp r4, 0xae                  |     
    0x00065efa movs r6, r0                   |     r6 = r0;
    0x00065efc lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00065efe movs r0, r0                   |     
    0x00065f00 cmp r4, 0x7c                  |     
    0x00065f02 movs r6, r0                   |     r6 = r0;
    0x00065f04 stm r5!, {r1, r3}             |     *(r5!) = r1;
                                             |     *((r5! + 4)) = r3;
    0x00065f06 movs r3, r0                   |     r3 = r0;
                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x65f08 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00065f08 ()                              | void fcn_00065f08 (int16_t arg1, uint32_t arg2) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h_2;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00065f08 blmi 0xa787ac                             |     __asm ("blmi aav.0x00062bb4");
    0x00065f0c push {r4, r5, r6, r7, lr}                 |     
    0x00065f0e sub sp, 0xc                               |     
    0x00065f10 add r2, pc                                |     r2 += pc;
    0x00065f12 ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x00065f14 ldr r3, [r3]                              |     r3 = *(r3);
    0x00065f16 str r3, [sp, 4]                           |     var_4h_2 = r3;
    0x00065f18 mov.w r3, 0                               |     r3 = 0;
                                                         |     if (r0 == 0) {
    0x00065f1c cbz r0, 0x65f7a                           |         goto label_1;
                                                         |     }
    0x00065f1e mov r5, r1                                |     r5 = r1;
    0x00065f20 cmp r1, 0                                 |     
                                                         |     if (r1 == 0) {
    0x00065f22 beq 0x65f8e                               |         goto label_2;
                                                         |     }
    0x00065f24 mov r4, r0                                |     r4 = r0;
    0x00065f26 movs r7, 0                                |     r7 = 0;
    0x00065f28 blx 0x9628                                |     fcn_00009628 ();
    0x00065f2c ldr r1, [pc, 0x80]                        |     
    0x00065f2e mov r6, r0                                |     r6 = r0;
    0x00065f30 str r7, [r0]                              |     *(r0) = r7;
    0x00065f32 mov r2, sp                                |     r2 = sp;
    0x00065f34 mov r0, r4                                |     r0 = r4;
    0x00065f36 add r1, pc                                |     r1 = 0xcbeea;
    0x00065f38 blx 0x8ad8                                |     clock_gettime ();
    0x00065f3a stcl p8, c2, [lr, 4]                      |     __asm ("stcl p8, c2, [lr, 4]");
                                                         |     if (r7 != 0) {
    0x00065f3e bne 0x65f5e                               |         goto label_3;
                                                         |     }
    0x00065f40 ldr r3, [sp]                              |     r3 = *(sp);
                                                         |     if (r3 == 0) {
    0x00065f42 cbz r3, 0x65f70                           |         goto label_4;
                                                         |     }
    0x00065f44 str r3, [r5]                              |     *(r5) = r3;
                                                         |     do {
                                                         | label_0:
    0x00065f46 ldr r2, [pc, 0x6c]                        |         
    0x00065f48 ldr r3, [pc, 0x60]                        |         r3 = *(0x65fac);
    0x00065f4a add r2, pc                                |         r2 = 0xcbf04;
    0x00065f4c ldr r3, [r2, r3]                          |         r3 = imp.__progname;
    0x00065f4e ldr r2, [r3]                              |         r2 = imp.__progname;
    0x00065f50 ldr r3, [sp, 4]                           |         r3 = var_4h_2;
    0x00065f52 eors r2, r3                               |         r2 ^= r3;
    0x00065f54 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00065f58 bne 0x65fa2                               |             goto label_5;
                                                         |         }
    0x00065f5a add sp, 0xc                               |         
    0x00065f5c pop {r4, r5, r6, r7, pc}                  |         
                                                         | label_3:
    0x00065f5e mov r0, r4                                |         r0 = r4;
    0x00065f60 blx 0x8fe4                                |         r0 = fcn_00008fe4 ();
                                                         |         if (r0 != 0) {
    0x00065f64 cbnz r0, 0x65f76                          |             goto label_6;
                                                         |         }
    0x00065f66 ldr r0, [r6]                              |         r0 = *(r6);
    0x00065f68 cmp r0, r7                                |         
    0x00065f6a it gt                                     |         
                                                         |         if (r0 > r7) {
    0x00065f6c rsbgt r0, r0, 0                           |             __asm ("rsbgt r0, r0, 0");
                                                         |         }
    0x00065f6e bgt 0x65f46                               |         
                                                         |     } while (r0 > r7);
                                                         | label_4:
    0x00065f70 mvn r0, 4                                 |     r0 = ~4;
    0x00065f74 b 0x65f46                                 |     goto label_0;
                                                         | label_6:
    0x00065f76 mov r0, r7                                |     r0 = r7;
    0x00065f78 b 0x65f46                                 |     goto label_0;
                                                         | label_1:
    0x00065f7a ldr r1, [pc, 0x3c]                        |     
    0x00065f7c movs r2, 0x47                             |     r2 = 0x47;
    0x00065f7e ldr r3, [pc, 0x3c]                        |     
    0x00065f80 ldr r0, [pc, 0x3c]                        |     
    0x00065f82 add r1, pc                                |     r1 = 0xcbf40;
    0x00065f84 add r3, pc                                |     r3 = 0xcbf46;
    0x00065f86 adds r1, 7                                |     r1 += 7;
    0x00065f88 add r0, pc                                |     r0 = 0xcbf4c;
    0x00065f8a bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
    0x00065f8c invalid                                   |     
                                                         | label_2:
    0x00065f8e ldr r1, [pc, 0x34]                        |     
    0x00065f90 movs r2, 0x48                             |     r2 = 0x48;
    0x00065f92 ldr r3, [pc, 0x34]                        |     
    0x00065f94 ldr r0, [pc, 0x34]                        |     
    0x00065f96 add r1, pc                                |     r1 = 0xcbf60;
    0x00065f98 add r3, pc                                |     r3 = 0xcbf66;
    0x00065f9a adds r1, 7                                |     r1 += 7;
    0x00065f9c add r0, pc                                |     r0 = 0xcbf6c;
    0x00065f9e bl 0x71518                                |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                         | label_5:
    0x00065fa2 blx 0x927c                                |     fprintf_chk ()
    0x00065fa6 nop                                       |     
    0x00065fa8 cmp r3, 0xb4                              |     
    0x00065faa movs r6, r0                               |     r6 = r0;
    0x00065fac lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x00065fae movs r0, r0                               |     
    0x00065fb0 ldcl p0, c0, [r2], -8                     |     __asm ("ldcl p0, c0, [r2], -8");
    0x00065fb2 movs r2, r0                               |     r2 = r0;
    0x00065fb4 cmp r3, 0x7a                              |     
    0x00065fb6 movs r6, r0                               |     r6 = r0;
    0x00065fb8 stm r4!, {r1, r3}                         |     *(r4!) = r1;
                                                         |     *((r4! + 4)) = r3;
    0x00065fba movs r3, r0                               |     r3 = r0;
    0x00065fbc ldm r2!, {r4, r5, r6, r7}                 |     r4 = *(r2!);
                                                         |     r5 = *((r2! + 4));
                                                         |     r6 = *((r2! + 8));
                                                         |     r7 = *((r2! + 12));
    0x00065fbe movs r3, r0                               |     r3 = r0;
    0x00065fc0 add r8, r3                                |     r8 += r3;
    0x00065fc2 movs r2, r0                               |     r2 = r0;
    0x00065fc4 stm r3!, {r1, r2, r4, r5, r6, r7}         |     *(r3!) = r1;
                                                         |     *((r3! + 4)) = r2;
                                                         |     *((r3! + 8)) = r4;
                                                         |     *((r3! + 12)) = r5;
                                                         |     *((r3! + 16)) = r6;
                                                         |     *((r3! + 20)) = r7;
    0x00065fc6 movs r3, r0                               |     r3 = r0;
    0x00065fc8 ldm r2, {r2, r3, r4, r6, r7}              |     r2 = *(r2);
                                                         |     r3 = *((r2 + 4));
                                                         |     r4 = *((r2 + 8));
                                                         |     r6 = *((r2 + 12));
                                                         |     r7 = *((r2 + 16));
    0x00065fca movs r3, r0                               |     r3 = r0;
    0x00065fcc stm r4!, {r4}                             |     *(r4!) = r4;
    0x00065fce movs r3, r0                               |     r3 = r0;
                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x66098 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) fcn.00066098 ()                                  | void fcn_00066098 (uint32_t arg1, uint32_t arg2) {
                                                             |     int16_t var_0h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00066098 blmi 0xcf8964                                 |     __asm ("blmi aav.0x00062a24");
    0x0006609c push {r4, r5, r6, r7, lr}                     |     
    0x0006609e sub sp, 0xc                                   |     
    0x000660a0 add r2, pc                                    |     r2 += pc;
    0x000660a2 add r7, sp, 0                                 |     r7 += var_0h;
    0x000660a4 ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x000660a6 ldr r3, [r3]                                  |     r3 = *(r3);
    0x000660a8 str r3, [r7, 4]                               |     *((r7 + 4)) = r3;
    0x000660aa mov.w r3, 0                                   |     r3 = 0;
    0x000660ae cmp r0, 0                                     |     
                                                             |     if (var_0h == ) {
    0x000660b0 beq 0x66124                                   |         goto label_1;
                                                             |     }
    0x000660b2 mov r5, r1                                    |     r5 = r1;
    0x000660b4 cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x000660b6 beq 0x6613a                                   |         goto label_2;
                                                             |     }
    0x000660b8 ldr r1, [pc, 0xac]                            |     
    0x000660ba mov r4, r0                                    |     r4 = r0;
    0x000660bc add r1, pc                                    |     r1 = 0xcc228;
    0x000660be blx 0x9488                                    |     r0 = fcn_00009488 ();
    0x000660c2 cmp r0, 2                                     |     
    0x000660c4 mov r1, r0                                    |     r1 = r0;
                                                             |     if (r0 < 2) {
    0x000660c6 bls 0x66150                                   |         goto label_3;
                                                             |     }
    0x000660c8 mov r0, r4                                    |     r0 = r4;
    0x000660ca movs r6, 0                                    |     r6 = 0;
    0x000660cc blx 0x92c8                                    |     r0 = fcn_000092c8 ();
    0x000660d0 add.w r3, r0, 8                               |     r3 = r0 + 8;
    0x000660d4 mov r1, r4                                    |     r1 = r4;
    0x000660d6 bic r3, r3, 7                                 |     r3 = BIT_MASK (r3, 7);
    0x000660da mov r2, r0                                    |     r2 = r0;
    0x000660dc sub.w sp, sp, r3                              |     
    0x000660e0 mov r3, sp                                    |     r3 = sp;
    0x000660e2 lsrs r3, r3, 3                                |     r3 >>= 3;
    0x000660e4 strb.w r6, [r0, r3, lsl 3]                    |     offset_0 = r3 << 3;
                                                             |     *((r0 + offset_0)) = r6;
    0x000660e8 mov r0, sp                                    |     r0 = sp;
    0x000660ea blx 0x8f9c                                    |     fcn_00008f9c ();
    0x000660ee bl 0x66068                                    |     fcn_00066068 (r0);
    0x000660f2 movs r1, 5                                    |     r1 = 5;
    0x000660f4 mov r4, r0                                    |     r4 = r0;
    0x000660f6 bl 0x7d37c                                    |     fcn_0007d37c (r0, r1);
    0x000660f8 vst2.16 {d27, d28, d29, d30}, [r1], r8        |     __asm ("vst2.16 {d27, d28, d29, d30}, [r1], r8");
    0x000660fc mov r0, r4                                    |     r0 = r4;
    0x000660fe blx 0x9200                                    |     r0 = fcn_00009200 ();
    0x00066102 mov r3, r0                                    |     r3 = r0;
                                                             |     if (r0 == 0) {
    0x00066104 cbz r0, 0x6615a                               |         goto label_4;
                                                             |     }
    0x00066106 mov r0, r6                                    |     r0 = r6;
    0x00066108 str r3, [r5]                                  |     *(r5) = r3;
                                                             |     do {
                                                             | label_0:
    0x0006610a ldr r2, [pc, 0x60]                            |         
    0x0006610c ldr r3, [pc, 0x54]                            |         r3 = *(0x66164);
    0x0006610e add r2, pc                                    |         r2 = 0xcc280;
    0x00066110 ldr r3, [r2, r3]                              |         r3 = imp.__progname;
    0x00066112 ldr r2, [r3]                                  |         r2 = imp.__progname;
    0x00066114 ldr r3, [r7, 4]                               |         r3 = *((r7 + 4));
    0x00066116 eors r2, r3                                   |         r2 ^= r3;
    0x00066118 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0006611c bne 0x66156                                   |             goto label_5;
                                                             |         }
    0x0006611e adds r7, 0xc                                  |         r7 += 0xc;
    0x00066120 mov sp, r7                                    |         
    0x00066122 pop {r4, r5, r6, r7, pc}                      |         
                                                             | label_1:
    0x00066124 ldr r1, [pc, 0x48]                            |         
    0x00066126 movw r2, 0x437                                |         r2 = 0x437;
    0x0006612a ldr r3, [pc, 0x48]                            |         
    0x0006612c ldr r0, [pc, 0x48]                            |         
    0x0006612e add r1, pc                                    |         r1 = 0xcc2a2;
    0x00066130 add r3, pc                                    |         r3 = 0xcc2aa;
    0x00066132 adds r1, 7                                    |         r1 += 7;
    0x00066134 add r0, pc                                    |         r0 = 0xcc2b0;
    0x00066136 bl 0x71518                                    |         fcn_00071518 (r0, r1, r2, r3);
                                                             | label_2:
    0x0006613a ldr r1, [pc, 0x40]                            |         
    0x0006613c mov.w r2, 0x438                               |         r2 = 0x438;
    0x00066140 ldr r3, [pc, 0x3c]                            |         
    0x00066142 ldr r0, [pc, 0x40]                            |         
    0x00066144 add r1, pc                                    |         r1 = 0xcc2c6;
    0x00066146 add r3, pc                                    |         r3 = 0xcc2ca;
    0x00066148 adds r1, 7                                    |         r1 += 7;
    0x0006614a add r0, pc                                    |         r0 = 0xcc2d4;
    0x0006614c bl 0x71518                                    |         fcn_00071518 (r0, r1, r2, r3);
                                                             | label_3:
    0x00066150 mvn r0, 5                                     |         r0 = ~5;
    0x00066154 b 0x6610a                                     |         
                                                             |     } while (1);
                                                             | label_5:
    0x00066156 blx 0x927c                                    |     fprintf_chk ()
                                                             | label_4:
    0x0006615a mvn r0, 0xb                                   |     r0 = ~0xb;
    0x0006615e b 0x6610a                                     |     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/libexec/udevadm @ 0x66188 */
                                                     | #include <stdint.h>
                                                     |  
                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                     |  
    ; (fcn) fcn.00066188 ()                          | void fcn_00066188 (uint32_t arg1, uint32_t arg2) {
                                                     |     int16_t var_0h_3;
                                                     |     int8_t var_0h_4;
                                                     |     int16_t var_0h;
                                                     |     int32_t var_4h;
                                                     |     int16_t var_0h_2;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x00066188 ldr r2, [pc, 0x8c]                    |     
    0x0006618a cmp r0, 0                             |     
    0x0006618c it ne                                 |     
                                                     |     if (r0 != 0) {
    0x0006618e cmpne r1, 6                           |         __asm ("cmpne r1, 6");
                                                     |     }
    0x00066190 ldr r3, [pc, 0x88]                    |     r3 = *(0x6621c);
    0x00066192 push.w {r4, r5, r6, r7, r8, lr}       |     
    0x00066196 sub sp, 8                             |     
    0x00066198 add r2, pc                            |     r2 = 0xcc3b4;
    0x0006619a add r7, sp, 0                         |     r7 += var_0h;
    0x0006619c it ls                                 |     
                                                     |     if (r0 > 0) {
    0x0006619e movls r6, 1                           |         r6 = 1;
                                                     |     }
    0x000661a0 ldr r3, [r2, r3]                      |     
    0x000661a2 ite hi                                |     
                                                     |     if (r0 <= 0) {
    0x000661a4 movhi r6, 0                           |         r6 = 0;
                                                     |     }
                                                     |     if (r0 > 0) {
    0x000661a6 movls r6, 0                           |         r6 = 0;
                                                     |     }
    0x000661a8 ldr r3, [r3]                          |     r3 = imp.__progname;
    0x000661aa str r3, [r7, 4]                       |     var_4h = r3;
    0x000661ac mov.w r3, 0                           |     r3 = 0;
                                                     |     if (r0 < 0) {
    0x000661b0 bls 0x661c6                           |         goto label_0;
                                                     |     }
    0x000661b2 mov r5, r0                            |     r5 = r0;
    0x000661b4 mov r4, r1                            |     r4 = r1;
    0x000661b6 subs r0, r1, 6                        |     r0 = r1 - 6;
    0x000661b8 ldr r1, [pc, 0x64]                    |     
    0x000661ba movs r2, 6                            |     r2 = 6;
    0x000661bc add r0, r5                            |     r0 += r5;
    0x000661be add r1, pc                            |     r1 = 0xcc3e2;
    0x000661c0 blx 0x8a78                            |     r0 = getauxval ();
    0x000661c4 cbz r0, 0x661e4                       |     
                                                     |     while (1) {
                                                     | label_0:
    0x000661c6 ldr r2, [pc, 0x5c]                    |         
    0x000661c8 ldr r3, [pc, 0x50]                    |         r3 = *(0x6621c);
    0x000661ca add r2, pc                            |         r2 = 0xcc3f4;
    0x000661cc ldr r3, [r2, r3]                      |         r3 = imp.__progname;
    0x000661ce ldr r2, [r3]                          |         r2 = imp.__progname;
    0x000661d0 ldr r3, [r7, 4]                       |         r3 = var_4h;
    0x000661d2 eors r2, r3                           |         r2 ^= r3;
    0x000661d4 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x000661d8 bne 0x66212                           |             goto label_1;
                                                     |         }
    0x000661da mov r0, r6                            |         r0 = r6;
    0x000661dc adds r7, 8                            |         r7 += 8;
    0x000661de mov sp, r7                            |         
    0x000661e0 pop.w {r4, r5, r6, r7, r8, pc}        |         
    0x000661e4 add.w r3, r4, 8                       |         r3 = r4 + 8;
    0x000661e8 mov r8, sp                            |         r8 = sp;
    0x000661ea bic r3, r3, 7                         |         r3 = BIT_MASK (r3, 7);
    0x000661ee mov r2, r4                            |         r2 = r4;
    0x000661f0 sub.w sp, sp, r3                      |         
    0x000661f4 mov r1, r5                            |         r1 = r5;
    0x000661f6 mov r0, sp                            |         r0 = sp;
    0x000661f8 blx 0x8f9c                            |         fcn_00008f9c ();
    0x000661fa cdp p8, 0xd, c15, c0, c13, 0          |         __asm ("cdp p8, 0xd, c15, c0, c13, 0");
    0x000661fe str r4, [r0]                          |         *(r0) = r4;
    0x00066200 mov r0, sp                            |         r0 = sp;
    0x00066202 bl 0x66068                            |         fcn_00066068 (r0);
    0x00066206 movs r1, 1                            |         r1 = 1;
    0x00066208 bl 0x7d37c                            |         fcn_0007d37c (r0, r1);
    0x0006620a ldrh.w r4, [r8, 0x606]                |         r4 = *((r8 + 0x606));
    0x0006620c mov r6, r0                            |         r6 = r0;
    0x0006620e mov sp, r8                            |         
    0x00066210 b 0x661c6                             |         
                                                     |     }
                                                     | label_1:
    0x00066212 blx 0x927c                            |     fprintf_chk ()
    0x00066216 nop                                   |     
    0x00066218 cmp r1, 0x2c                          |     
    0x0006621a movs r6, r0                           |     r6 = r0;
    0x0006621c lsls r0, r0, 0x13                     |     r0 <<= 0x13;
    0x0006621e movs r0, r0                           |     
    0x00066220 stm r2!, {r1, r3, r4, r6}             |     *(r2!) = r1;
                                                     |     *((r2! + 4)) = r3;
                                                     |     *((r2! + 8)) = r4;
                                                     |     *((r2! + 12)) = r6;
    0x00066222 movs r3, r0                           |     r3 = r0;
    0x00066224 cmp r0, 0xfa                          |     
    0x00066226 movs r6, r0                           |     r6 = r0;
                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x66280 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00066280 ()                  | void fcn_00066280 (int16_t arg1, int16_t arg2) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00066280 invalid                       |     
    0x00066284 ldr r1, [pc, 0x90]            |     
    0x00066286 sub sp, 8                     |     
    0x00066288 movs r3, 0                    |     r3 = 0;
    0x0006628a ldr r2, [pc, 0x90]            |     r2 = *(0x6631e);
    0x0006628c add r1, pc                    |     r1 = 0xcc5a8;
    0x0006628e ldr r2, [r1, r2]              |     
    0x00066290 ldr r2, [r2]                  |     r2 = imp.__progname;
    0x00066292 str r2, [sp, 4]               |     var_4h = r2;
    0x00066294 mov.w r2, 0                   |     r2 = 0;
    0x00066298 str r3, [sp]                  |     *(sp) = r3;
                                             |     if (r0 == 0) {
    0x0006629a cbz r0, 0x662e0               |         goto label_0;
                                             |     }
                                             |     if (r5 == 0) {
    0x0006629c cbz r5, 0x662f6               |         goto label_1;
                                             |     }
    0x0006629e bl 0x66228                    |     fcn_00066228 (r0);
    0x000662a2 mov r1, sp                    |     r1 = sp;
    0x000662a4 bl 0x66098                    |     r0 = fcn_00066098 (r0, r1);
    0x000662a8 subs r4, r0, 0                |     r4 = r0 - 0;
    0x000662aa it lt                         |     
                                             |     if (r4 >= r0) {
    0x000662ac ldrlt r0, [sp]                |         r0 = *(sp);
                                             |     }
                                             |     if (r4 < r0) {
    0x000662ae blt 0x662c2                   |         goto label_2;
                                             |     }
    0x000662b0 ldr r6, [sp]                  |     r6 = *(sp);
    0x000662b2 ldr r1, [pc, 0x6c]            |     
    0x000662b4 mov r0, r6                    |     r0 = r6;
    0x000662b6 add r1, pc                    |     r1 = 0xcc5dc;
    0x000662b8 bl 0x80428                    |     r0 = fcn_00080428 (r0, r1);
                                             |     if (r0 != 0) {
    0x000662bc cbnz r0, 0x6630c              |         goto label_3;
                                             |     }
    0x000662be mov r4, r0                    |     r4 = r0;
    0x000662c0 str r6, [r5]                  |     *(r5) = r6;
                                             |     do {
                                             | label_2:
    0x000662c2 blx 0x8dac                    |         fcn_00008dac ();
    0x000662c6 ldr r2, [pc, 0x5c]            |         
    0x000662c8 ldr r3, [pc, 0x50]            |         r3 = *(0x6631c);
    0x000662ca add r2, pc                    |         r2 = 0xcc5f4;
    0x000662cc ldr r3, [r2, r3]              |         r3 = imp.__progname;
    0x000662ce ldr r2, [r3]                  |         r2 = imp.__progname;
    0x000662d0 ldr r3, [sp, 4]               |         r3 = var_4h;
    0x000662d2 eors r2, r3                   |         r2 ^= r3;
    0x000662d4 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x000662d8 bne 0x66314                   |             goto label_4;
                                             |         }
    0x000662da mov r0, r4                    |         r0 = r4;
    0x000662dc add sp, 8                     |         
    0x000662de pop {r4, r5, r6, pc}          |         
                                             | label_0:
    0x000662e0 ldr r1, [pc, 0x44]            |         
    0x000662e2 movw r2, 0x479                |         r2 = 0x479;
    0x000662e6 ldr r3, [pc, 0x44]            |         
    0x000662e8 ldr r0, [pc, 0x44]            |         
    0x000662ea add r1, pc                    |         r1 = 0xcc616;
    0x000662ec add r3, pc                    |         r3 = 0xcc61e;
    0x000662ee adds r1, 7                    |         r1 += 7;
    0x000662f0 add r0, pc                    |         r0 = 0xcc624;
    0x000662f2 bl 0x71518                    |         fcn_00071518 (r0, r1, r2, r3);
                                             | label_1:
    0x000662f6 ldr r1, [pc, 0x3c]            |         
    0x000662f8 movw r2, 0x47a                |         r2 = 0x47a;
    0x000662fa rsbs r2, r7, 0                |         r2 = r7 - ;
    0x000662fc ldr r3, [pc, 0x38]            |         
    0x000662fe ldr r0, [pc, 0x3c]            |         
    0x00066300 add r1, pc                    |         r1 = 0xcc63a;
    0x00066302 add r3, pc                    |         r3 = 0xcc63e;
    0x00066304 adds r1, 7                    |         r1 += 7;
    0x00066306 add r0, pc                    |         r0 = 0xcc648;
    0x00066308 bl 0x71518                    |         fcn_00071518 (r0, r1, r2, r3);
                                             | label_3:
    0x0006630c mov r0, r6                    |         r0 = r6;
    0x0006630e mvn r4, 5                     |         r4 = ~5;
    0x00066312 b 0x662c2                     |         
                                             |     } while (1);
                                             | label_4:
    0x00066314 blx 0x927c                    |     r0 = fprintf_chk ()
    0x00066318 cmp r0, 0x38                  |     
    0x0006631a movs r6, r0                   |     r6 = r0;
    0x0006631c lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x0006631e movs r0, r0                   |     
    0x00066320 stm r1!, {r1, r5, r6}         |     *(r1!) = r1;
                                             |     *((r1! + 4)) = r5;
                                             |     *((r1! + 8)) = r6;
    0x00066322 movs r3, r0                   |     r3 = r0;
    0x00066324 movs r7, 0xfa                 |     r7 = 0xfa;
    0x00066326 movs r6, r0                   |     r6 = r0;
    0x00066328 stm r0!, {r1, r5, r7}         |     *(r0!) = r1;
                                             |     *((r0! + 4)) = r5;
                                             |     *((r0! + 8)) = r7;
    0x0006632a movs r3, r0                   |     r3 = r0;
    0x0006632c stm r6!, {r4, r5, r7}         |     *(r6!) = r4;
                                             |     *((r6! + 4)) = r5;
                                             |     *((r6! + 8)) = r7;
    0x0006632e movs r3, r0                   |     r3 = r0;
    0x00066330 strb r0, [r6, 0x10]           |     *((r6 + 0x10)) = r0;
    0x00066332 movs r3, r0                   |     r3 = r0;
    0x00066334 stm r0!, {r2, r3, r7}         |     *(r0!) = r2;
                                             |     *((r0! + 4)) = r3;
                                             |     *((r0! + 8)) = r7;
    0x00066336 movs r3, r0                   |     r3 = r0;
    0x00066338 stm r6!, {r1, r3, r4, r7}     |     *(r6!) = r1;
                                             |     *((r6! + 4)) = r3;
                                             |     *((r6! + 8)) = r4;
                                             |     *((r6! + 12)) = r7;
    0x0006633a movs r3, r0                   |     r3 = r0;
    0x0006633c b 0x6659c                     |     return void (*0x6659c)() ();
                                             | }


r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x663f4).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6650c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0006650c ()                      | void fcn_0006650c (uint32_t arg1) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     int16_t var_8h;
                                                 |     int16_t var_ch;
                                                 |     int16_t var_10h;
                                                 |     int16_t var_6ch;
                                                 |     r0 = arg1;
    0x0006650c blmi 0xfeff9008                   |     __asm ("blmi aav.0x000625b0");
    0x00066510 push {r4, r5, r6, r7, lr}         |     
    0x00066512 sub sp, 0x74                      |     
    0x00066514 add r2, pc                        |     r2 += pc;
    0x00066516 ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x00066518 ldr r3, [r3]                      |     r3 = *(r3);
    0x0006651a str r3, [sp, 0x6c]                |     var_6ch = r3;
    0x0006651c mov.w r3, 0                       |     r3 = 0;
    0x0006651e lsls r0, r0, 0xc                  |     r0 <<= 0xc;
    0x00066520 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x00066522 beq 0x66590                       |         goto label_10;
                                                 |     }
    0x00066524 ldr r0, [pc, 0x2bc]               |     
    0x00066526 ldr r4, [pc, 0x2c0]               |     r4 = *(0x667ea);
    0x00066528 add r0, pc                        |     r0 = 0xccd10;
    0x0006652a blx 0x9240                        |     nl_langinfo (r0);
    0x0006652e mov.w r3, -1                      |     r3 = -1;
    0x00066532 str r3, [r4, r0]                  |     *((r4 + r0)) = r3;
                                                 |     do {
    0x00066534 ldr r0, [pc, 0x2d4]               |         
    0x00066536 add r7, sp, 0x10                  |         r7 += var_10h;
    0x00066538 mov r1, r7                        |         r1 = r7;
    0x0006653a add r0, pc                        |         r0 = 0xccd4a;
    0x0006653c blx 0x8a44                        |         r0 = fcn_00008a44 ();
    0x00066540 cmp r0, 0                         |         
                                                 |         if (r0 < 0) {
    0x00066542 blt 0x665a2                       |             goto label_11;
                                                 |         }
    0x00066544 ldr r5, [sp, 0x10]                |         r5 = var_10h;
    0x00066546 movw r6, 0x7270                   |         
    0x0006654a movt r6, 0x6367                   |         r6 = 0x63677270;
    0x0006654e cmp r5, r6                        |         
                                                 |         if (r5 == r6) {
    0x00066550 beq 0x665c6                       |             goto label_12;
                                                 |         }
    0x00066552 movw r3, 0x1994                   |         
    0x00066556 movt r3, 0x102                    |         r3 = 0x1021994;
    0x0006655a cmp r5, r3                        |         
                                                 |         if (r5 == r3) {
    0x0006655c beq 0x6665a                       |             goto label_13;
                                                 |         }
    0x0006655e bl 0x70bf8                        |         fcn_00070bf8 ();
    0x00066562 movw r3, 0x6572                   |         
    0x00066566 movt r3, 0x6265                   |         r3 = 0x62656572;
    0x0006656a cmp r5, r3                        |         
                                                 |         if (r5 == r3) {
    0x0006656c beq 0x6662e                       |             goto label_14;
                                                 |         }
    0x0006656e cmp r0, 6                         |         
                                                 |         if (r0 > 6) {
    0x00066570 bgt 0x66600                       |             goto label_15;
                                                 |         }
                                                 | label_2:
    0x00066572 mvn r0, 0x7a                      |         r0 = ~0x7a;
                                                 | label_0:
    0x00066576 ldr r2, [pc, 0x298]               |         
    0x00066578 ldr r3, [pc, 0x28c]               |         r3 = *(0x66808);
    0x0006657a add r2, pc                        |         r2 = 0xccd90;
    0x0006657c ldr r3, [r2, r3]                  |         r3 = imp.__progname;
    0x0006657e ldr r2, [r3]                      |         r2 = imp.__progname;
    0x00066580 ldr r3, [sp, 0x6c]                |         r3 = var_6ch;
    0x00066582 eors r2, r3                       |         r2 ^= r3;
    0x00066584 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00066588 bne.w 0x667b8                     |             goto label_16;
                                                 |         }
    0x0006658c add sp, 0x74                      |         
    0x0006658e pop {r4, r5, r6, r7, pc}          |         
                                                 | label_10:
    0x00066590 ldr r0, [pc, 0x258]               |         
    0x00066592 ldr r4, [pc, 0x254]               |         r4 = *(0x667ea);
    0x00066594 add r0, pc                        |         r0 = 0xccd84;
    0x00066596 blx 0x9240                        |         nl_langinfo (r0);
    0x0006659a ldr r0, [r4, r0]                  |         r0 = *(0x667ea);
    0x0006659c cmp r0, 0                         |         
    0x0006659e blt 0x66534                       |         
                                                 |     } while (r0 < 0);
    0x000665a0 b 0x66576                         |     goto label_0;
                                                 | label_11:
    0x000665a2 blx 0x9628                        |     r0 = fcn_00009628 ();
    0x000665a6 ldr r4, [r0]                      |     r4 = *(r0);
    0x000665a8 bl 0x70bf8                        |     fcn_00070bf8 ();
    0x000665aa smlad r8, r6, r6, r2              |     __asm ("smlad r8, r6, r6, r2");
                                                 |     if (r0 > 0) {
    0x000665ae bgt 0x665e0                       |         goto label_17;
                                                 |     }
                                                 | label_5:
    0x000665b0 eor.w r0, r4, r4, asr 31          |     r0 = r4 ^ (r4 >> 31);
    0x000665b4 sub.w r0, r0, r4, asr 31          |     r0 -= (r4 >> 31);
    0x000665b8 uxtb r0, r0                       |     r0 = (int8_t) r0;
    0x000665ba rsbs r0, r0, 0                    |     r0 -= ;
                                                 | label_1:
    0x000665bc cmp r0, 0                         |     
                                                 |     if (r0 < 0) {
    0x000665be blt 0x66576                       |         goto label_0;
                                                 |     }
                                                 |     do {
                                                 | label_3:
    0x000665c0 mvn r0, 0x55                      |         r0 = ~0x55;
    0x000665c4 b 0x66576                         |         goto label_0;
                                                 | label_12:
    0x000665c6 bl 0x70bf8                        |         r0 = fcn_00070bf8 ();
    0x000665ca cmp r0, 6                         |         
                                                 |         if (r0 > 6) {
    0x000665cc bgt 0x666b0                       |             goto label_18;
                                                 |         }
                                                 | label_4:
    0x000665ce ldr r0, [pc, 0x220]               |         
    0x000665d0 add r0, pc                        |         r0 = 0xccdc6;
    0x000665d2 blx 0x9240                        |         nl_langinfo (r0);
    0x000665d4 cdp p3, 3, c2, c6, c2, 0          |         __asm ("cdp p3, 3, c2, c6, c2, 0");
    0x000665d8 mov r2, r0                        |         r2 = r0;
    0x000665da str r3, [r4, r2]                  |         *((r4 + r2)) = r3;
    0x000665dc mov r0, r3                        |         r0 = r3;
    0x000665de b 0x66576                         |         goto label_0;
                                                 | label_17:
    0x000665e0 ldr r2, [pc, 0x230]               |         
    0x000665e2 movw r3, 0x7fc                    |         r3 = 0x7fc;
    0x000665e6 ldr r5, [pc, 0x230]               |         
    0x000665e8 ldr r0, [pc, 0x230]               |         
    0x000665ea add r2, pc                        |         r2 = 0xcce02;
    0x000665ec add r5, pc                        |         r5 = 0xcce0a;
    0x000665ee add r0, pc                        |         r0 = 0xcce0e;
                                                 | label_6:
    0x000665f0 strd r0, r5, [sp]                 |         __asm ("strd r0, r5, [sp]");
    0x000665f4 mov r1, r4                        |         r1 = r4;
    0x000665f6 adds r2, 7                        |         r2 += 7;
    0x000665f8 movs r0, 7                        |         r0 = 7;
    0x000665fa bl 0x71448                        |         fcn_00071448 ();
    0x000665fe b 0x665bc                         |         goto label_1;
                                                 | label_15:
    0x00066600 ldr r2, [pc, 0x21c]               |         
    0x00066602 asrs r6, r5, 0x1f                 |         r6 = r5 >> 0x1f;
    0x00066604 ldr r0, [pc, 0x21c]               |         
    0x00066606 movs r1, 0x7b                     |         r1 = 0x7b;
    0x00066608 ldr r4, [pc, 0x21c]               |         
    0x0006660a movw r3, 0x822                    |         r3 = 0x822;
    0x0006660c lsls r2, r4, 0xc                  |         r2 = r4 << 0xc;
    0x0006660e add r2, pc                        |         r2 = 0xcce32;
    0x00066610 movt r1, 0x4000                   |         r1 = (r1 & 0xFFFF) | 0x40000000;
    0x00066614 add r0, pc                        |         r0 = 0xcce3c;
    0x00066616 adds r2, 7                        |         r2 += 7;
    0x00066618 add r4, pc                        |         r4 = 0xcce44;
    0x0006661a str r0, [sp, 4]                   |         var_4h = r0;
    0x0006661c str r5, [sp, 8]                   |         var_8h = r5;
    0x0006661e movs r0, 7                        |         r0 = 7;
    0x00066620 str r6, [sp, 0xc]                 |         var_ch = r6;
    0x00066622 str r4, [sp]                      |         *(sp) = r4;
    0x00066624 bl 0x71448                        |         r0 = fcn_00071448 ();
    0x00066628 cmp r0, 0                         |         
    0x0006662a bge 0x665c0                       |         
                                                 |     } while (r0 >= 0);
    0x0006662c b 0x66576                         |     goto label_0;
                                                 | label_14:
    0x0006662e cmp r0, 6                         |     
                                                 |     if (r0 <= 6) {
    0x00066630 ble 0x66572                       |         goto label_2;
                                                 |     }
    0x00066632 ldr r2, [pc, 0x1f8]               |     
    0x00066634 movs r1, 0x7b                     |     r1 = 0x7b;
    0x00066636 ldr r0, [pc, 0x1f8]               |     
    0x00066638 movw r3, 0x81f                    |     r3 = 0x81f;
    0x0006663c ldr r4, [pc, 0x1f4]               |     
    0x0006663e movt r1, 0x4000                   |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x00066642 add r2, pc                        |     r2 = 0xcce74;
    0x00066644 add r0, pc                        |     r0 = 0xcce7a;
    0x00066646 adds r2, 7                        |     r2 += 7;
    0x00066648 add r4, pc                        |     r4 = 0xcce80;
    0x0006664a str r0, [sp, 4]                   |     var_4h = r0;
    0x0006664c str r4, [sp]                      |     *(sp) = r4;
    0x0006664e movs r0, 7                        |     r0 = 7;
    0x00066650 bl 0x71448                        |     fcn_00071448 ();
    0x00066652 cdp2 p8, 0xf, c2, c10, c0, 0      |     __asm ("cdp2 p8, 0xf, c2, c10, c0, 0");
                                                 |     if (r0 >= 7) {
    0x00066656 bge 0x665c0                       |         goto label_3;
                                                 |     }
    0x00066658 b 0x66576                         |     goto label_0;
                                                 | label_13:
    0x0006665a ldr r0, [pc, 0x1dc]               |     
    0x0006665c mov r1, r7                        |     r1 = r7;
    0x0006665e add r0, pc                        |     r0 = 0xcce9c;
    0x00066660 blx 0x8a44                        |     r0 = fcn_00008a44 ();
    0x00066664 mov r5, r0                        |     r5 = r0;
                                                 |     if (r0 == 0) {
    0x00066666 cbnz r0, 0x6666e                  |         
    0x00066668 ldr r3, [sp, 0x10]                |         r3 = var_10h;
    0x0006666a cmp r3, r6                        |         
                                                 |         if (r3 == r6) {
    0x0006666c beq 0x666f6                       |             goto label_19;
                                                 |         }
                                                 |     }
    0x0006666e ldr r0, [pc, 0x1cc]               |     
    0x00066670 mov r1, r7                        |     r1 = r7;
    0x00066672 add r0, pc                        |     r0 = 0xcceb4;
    0x00066674 blx 0x8a44                        |     r0 = fcn_00008a44 ();
    0x00066678 cmp r0, 0                         |     
                                                 |     if (r0 >= 0) {
    0x0006667a blt 0x666d0                       |         
    0x0006667c ldr r5, [sp, 0x10]                |         r5 = var_10h;
    0x0006667e bl 0x70bf8                        |         fcn_00070bf8 ();
    0x00066682 movw r3, 0x7270                   |         
    0x00066686 movt r3, 0x6367                   |         r3 = 0x63677270;
    0x0006668a cmp r5, r3                        |         
                                                 |         if (r5 == r3) {
    0x0006668c beq 0x66714                       |             goto label_20;
                                                 |         }
    0x0006668e movw r3, 0xe0eb                   |         
    0x00066692 movt r3, 0x27                     |         r3 = 0x27e0eb;
    0x00066696 cmp r5, r3                        |         
                                                 |         if (r5 == r3) {
    0x00066698 beq 0x6672e                       |             goto label_21;
                                                 |         }
    0x0006669a cmp r0, 6                         |         
                                                 |         if (r0 > 6) {
    0x0006669c bgt 0x66772                       |             goto label_22;
                                                 |         }
                                                 | label_7:
    0x0006669e ldr r0, [pc, 0x154]               |         
    0x000666a0 add r0, pc                        |         r0 = 0xcce9a;
    0x000666a2 blx 0x9240                        |         nl_langinfo (r0);
    0x000666a6 movs r2, 0                        |         r2 = 0;
    0x000666a8 mov r3, r0                        |         r3 = r0;
    0x000666aa str r2, [r4, r3]                  |         *((r4 + r3)) = r2;
    0x000666ac mov r0, r2                        |         r0 = r2;
    0x000666ae b 0x66576                         |         goto label_0;
                                                 | label_18:
    0x000666b0 ldr r2, [pc, 0x18c]               |         
    0x000666b2 movw r3, 0x7ff                    |         r3 = 0x7ff;
    0x000666b6 ldr r0, [pc, 0x18c]               |         
    0x000666b8 ldr r1, [pc, 0x18c]               |         
    0x000666ba add r2, pc                        |         r2 = 0xccefe;
    0x000666bc add r0, pc                        |         r0 = 0xccf06;
    0x000666be adds r2, 7                        |         r2 += 7;
    0x000666c0 add r1, pc                        |         r1 = 0xccf0c;
    0x000666c2 strd r1, r0, [sp]                 |         __asm ("strd r1, r0, [sp]");
    0x000666c6 movs r1, 0                        |         r1 = 0;
    0x000666c8 movs r0, 7                        |         r0 = 7;
    0x000666ca bl 0x71448                        |         fcn_00071448 ();
    0x000666ce b 0x665ce                         |         goto label_4;
                                                 |     }
    0x000666d0 blx 0x9628                        |     r0 = fcn_00009628 ();
    0x000666d4 ldr r4, [r0]                      |     r4 = *(r0);
    0x000666d6 bl 0x70bf8                        |     fcn_00070bf8 ();
    0x000666da cmp r4, 2                         |     
                                                 |     if (r4 == 2) {
    0x000666dc beq 0x667bc                       |         goto label_23;
                                                 |     }
    0x000666de cmp r0, 6                         |     
                                                 |     if (r0 <= 6) {
    0x000666e0 ble.w 0x665b0                     |         goto label_5;
                                                 |     }
    0x000666e4 ldr r2, [pc, 0x164]               |     
    0x000666e6 movw r3, 0x80e                    |     r3 = 0x80e;
    0x000666e8 lsls r6, r1, 0xc                  |     r6 = r1 << 0xc;
    0x000666ea ldr r5, [pc, 0x164]               |     
    0x000666ec ldr r0, [pc, 0x164]               |     
    0x000666ee add r2, pc                        |     r2 = 0xccf3e;
    0x000666f0 add r5, pc                        |     r5 = 0xccf46;
    0x000666f2 add r0, pc                        |     r0 = 0xccf4a;
    0x000666f4 b 0x665f0                         |     goto label_6;
                                                 | label_19:
    0x000666f6 bl 0x70bf8                        |     r0 = fcn_00070bf8 ();
    0x000666fa cmp r0, 6                         |     
                                                 |     if (r0 > 6) {
    0x000666fc bgt 0x66752                       |         goto label_24;
                                                 |     }
                                                 | label_8:
    0x000666fe ldr r0, [pc, 0xf8]                |     
    0x00066700 add r0, pc                        |     r0 = 0xccefe;
    0x00066702 blx 0x9240                        |     nl_langinfo (r0);
    0x00066706 ldr r2, [pc, 0xf4]                |     r2 = *(0x667fe);
    0x00066708 mov r3, r0                        |     r3 = r0;
    0x0006670a movs r1, 0                        |     r1 = 0;
    0x0006670c movs r0, 1                        |     r0 = 1;
    0x0006670e str r0, [r4, r3]                  |     *((r4 + r3)) = r0;
    0x00066710 strb r1, [r2, r3]                 |     *((r2 + r3)) = r1;
    0x00066712 b 0x66576                         |     goto label_0;
                                                 | label_20:
    0x00066714 cmp r0, 6                         |     
                                                 |     if (r0 > 6) {
    0x00066716 bgt 0x66798                       |         goto label_25;
                                                 |     }
                                                 | label_9:
    0x00066718 ldr r0, [pc, 0xe4]                |     
    0x0006671a add r0, pc                        |     r0 = 0xccf1e;
    0x0006671c blx 0x9240                        |     nl_langinfo (r0);
    0x00066720 ldr r1, [pc, 0xd8]                |     r1 = *(0x667fc);
    0x00066722 movs r2, 1                        |     r2 = 1;
    0x00066724 mov r3, r0                        |     r3 = r0;
    0x00066726 mov r0, r2                        |     r0 = r2;
    0x00066728 str r2, [r4, r3]                  |     *((r4 + r3)) = r2;
    0x0006672a strb r2, [r1, r3]                 |     *((r1 + r3)) = r2;
    0x0006672c b 0x66576                         |     goto label_0;
                                                 | label_21:
    0x0006672e cmp r0, 6                         |     
                                                 |     if (r0 <= 6) {
    0x00066730 ble 0x6669e                       |         goto label_7;
                                                 |     }
    0x00066732 ldr r2, [pc, 0x124]               |     
    0x00066734 movw r3, 0x816                    |     r3 = 0x816;
    0x00066738 ldr r0, [pc, 0x120]               |     
    0x0006673a ldr r1, [pc, 0x124]               |     
    0x0006673c add r2, pc                        |     r2 = 0xccf9a;
    0x0006673e add r0, pc                        |     r0 = 0xccf9e;
    0x00066740 adds r2, 7                        |     r2 += 7;
    0x00066742 add r1, pc                        |     r1 = 0xccfa8;
    0x00066744 strd r1, r0, [sp]                 |     __asm ("strd r1, r0, [sp]");
    0x00066746 asrs r0, r0, 0x20                 |     r0 >>= 0x20;
    0x00066748 movs r1, 0                        |     r1 = 0;
    0x0006674a movs r0, 7                        |     r0 = 7;
    0x0006674c bl 0x71448                        |     fcn_00071448 ();
    0x00066750 b 0x6669e                         |     goto label_7;
                                                 | label_24:
    0x00066752 ldr r2, [pc, 0x110]               |     
    0x00066754 mov r1, r5                        |     r1 = r5;
    0x00066756 ldr r0, [pc, 0x110]               |     
    0x00066758 ldr r3, [pc, 0x110]               |     
    0x0006675a add r2, pc                        |     r2 = 0xccfc4;
    0x0006675c add r0, pc                        |     r0 = 0xccfca;
    0x0006675e adds r2, 7                        |     r2 += 7;
    0x00066760 add r3, pc                        |     r3 = 0xccfd0;
    0x00066762 strd r3, r0, [sp]                 |     __asm ("strd r3, r0, [sp]");
    0x00066766 movw r3, 0x804                    |     r3 = 0x804;
    0x0006676a movs r0, 7                        |     r0 = 7;
    0x0006676c bl 0x71448                        |     fcn_00071448 ();
    0x00066770 b 0x666fe                         |     goto label_8;
                                                 | label_22:
    0x00066772 ldr r2, [pc, 0xfc]                |     
    0x00066774 asrs r3, r5, 0x1f                 |     r3 = r5 >> 0x1f;
    0x00066776 ldr r0, [pc, 0xfc]                |     
    0x00066778 ldr r1, [pc, 0xfc]                |     
    0x0006677a add r2, pc                        |     r2 = 0xccff0;
    0x0006677c str r3, [sp, 0xc]                 |     var_ch = r3;
    0x0006677e add r0, pc                        |     r0 = 0xccff8;
    0x00066780 adds r2, 7                        |     r2 += 7;
    0x00066782 add r1, pc                        |     r1 = 0xccffe;
    0x00066784 movw r3, 0x819                    |     r3 = 0x819;
    0x00066788 strd r1, r0, [sp]                 |     __asm ("strd r1, r0, [sp]");
    0x0006678c movs r1, 0                        |     r1 = 0;
    0x0006678e str r5, [sp, 8]                   |     var_8h = r5;
    0x00066790 movs r0, 7                        |     r0 = 7;
    0x00066792 bl 0x71448                        |     fcn_00071448 ();
    0x00066796 b 0x6669e                         |     goto label_7;
                                                 | label_25:
    0x00066798 ldr r2, [pc, 0xe0]                |     
    0x0006679a movw r3, 0x812                    |     r3 = 0x812;
    0x0006679e ldr r0, [pc, 0xe0]                |     
    0x000667a0 ldr r1, [pc, 0xe0]                |     
    0x000667a2 add r2, pc                        |     r2 = 0xcd022;
    0x000667a4 add r0, pc                        |     r0 = 0xcd02a;
    0x000667a6 adds r2, 7                        |     r2 += 7;
    0x000667a8 add r1, pc                        |     r1 = 0xcd030;
    0x000667aa strd r1, r0, [sp]                 |     __asm ("strd r1, r0, [sp]");
    0x000667ae movs r1, 0                        |     r1 = 0;
    0x000667b0 movs r0, 7                        |     r0 = 7;
    0x000667b2 bl 0x71448                        |     fcn_00071448 ();
    0x000667b6 b 0x66718                         |     goto label_9;
                                                 | label_16:
    0x000667b8 blx 0x927c                        |     r0 = fprintf_chk ()
                                                 | label_23:
    0x000667bc cmp r0, 6                         |     
                                                 |     if (r0 <= 6) {
    0x000667be ble.w 0x66572                     |         goto label_2;
                                                 |     }
    0x000667c2 ldr r2, [pc, 0xc4]                |     
    0x000667c4 movw r3, 0x80b                    |     r3 = 0x80b;
    0x000667c8 ldr r5, [pc, 0xc0]                |     
    0x000667ca mov r1, r4                        |     r1 = r4;
    0x000667cc ldr r0, [pc, 0xc0]                |     
    0x000667ce add r2, pc                        |     r2 = 0xcd05c;
    0x000667d0 add r5, pc                        |     r5 = 0xcd060;
    0x000667d2 adds r2, 7                        |     r2 += 7;
    0x000667d4 add r0, pc                        |     r0 = 0xcd068;
    0x000667d6 strd r0, r5, [sp]                 |     __asm ("strd r0, r5, [sp]");
    0x000667da movs r0, 7                        |     r0 = 7;
    0x000667dc bl 0x71448                        |     fcn_00071448 ();
    0x000667e0 b 0x66572                         |     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/libexec/udevadm @ 0x668c8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.000668c8 ()                                      | void fcn_000668c8 (uint32_t arg1, int16_t arg2, uint32_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h_3;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_2h;
                                                                 |     int32_t var_bh;
                                                                 |     int16_t var_fh;
                                                                 |     int8_t var_11h;
                                                                 |     int16_t var_8h;
                                                                 |     int32_t var_4h_2;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int32_t var_14h_2;
                                                                 |     int32_t var_1ch;
                                                                 |     int16_t var_0h_2;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x000668c8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000668cc sub sp, 0x2c                                      |     
    0x000668ce ldr r5, [pc, 0x208]                               |     
    0x000668d0 subs.w r8, r1, 0                                  |     r8 = r1 - 0;
    0x000668d4 add r7, sp, 8                                     |     r7 += var_8h;
    0x000668d6 ldr r4, [pc, 0x204]                               |     r4 = *(0x66ade);
    0x000668d8 mov.w r3, 0                                       |     r3 = 0;
    0x000668da lsls r0, r0, 0xc                                  |     r0 <<= 0xc;
    0x000668dc add r5, pc                                        |     r5 = 0xcd3ba;
    0x000668de ldr r4, [r5, r4]                                  |     
    0x000668e0 ldr r4, [r4]                                      |     r4 = imp.__progname;
    0x000668e2 str r4, [r7, 0x1c]                                |     var_1ch = r4;
    0x000668e4 mov.w r4, 0                                       |     r4 = 0;
    0x000668e6 lsls r0, r0, 0x10                                 |     r0 <<= 0x10;
    0x000668e8 str r3, [r7, 0xc]                                 |     var_ch = r3;
                                                                 |     if (r0 < r0) {
    0x000668ea blt.w 0x66a74                                     |         goto label_4;
                                                                 |     }
    0x000668ee mov r6, r2                                        |     r6 = r2;
    0x000668f0 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x000668f2 beq.w 0x66a8a                                     |         goto label_5;
                                                                 |     }
    0x000668f6 mov r4, r0                                        |     r4 = r0;
    0x000668f8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000668fa beq.w 0x66a6a                                     |         goto label_6;
                                                                 |     }
    0x000668fe bl 0x664a8                                        |     r0 = fcn_000664a8 (r0);
    0x00066902 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00066904 beq.w 0x66ac0                                     |         goto label_7;
                                                                 |     }
                                                                 | label_1:
    0x00066908 mov r0, r4                                        |     r0 = r4;
    0x0006690a bl 0x66894                                        |     r0 = fcn_00066894 (r0);
    0x0006690e subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 < r0) {
    0x00066910 blt 0x669da                                       |         goto label_2;
                                                                 |     }
    0x00066912 it ne                                             |     
                                                                 |     if (r5 == r0) {
    0x00066914 movne r4, 0                                       |         r4 = 0;
                                                                 |     }
                                                                 |     if (r5 == r0) {
    0x00066916 bne 0x66928                                       |         
    0x00066918 ldr r1, [pc, 0x1c4]                               |         
    0x0006691a mov r0, r4                                        |         r0 = r4;
    0x0006691c add r1, pc                                        |         r1 = 0xcd400;
    0x0006691e blx 0x95e0                                        |         r0 = fcn_000095e0 ();
                                                                 |         if (r0 != 0) {
    0x00066922 cbnz r0, 0x66928                                  |             goto label_8;
                                                                 |         }
    0x00066924 ldr r4, [pc, 0x1bc]                               |         
    0x00066926 add r4, pc                                        |         r4 = 0xcd40e;
                                                                 |     }
                                                                 | label_8:
    0x00066928 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x0006692c beq 0x669fe                                       |         goto label_9;
                                                                 |     }
    0x0006692e ldr r2, [pc, 0x1b8]                               |     
    0x00066930 sub sp, 0x20                                      |     
    0x00066932 ldr r3, [pc, 0x1b8]                               |     
    0x00066934 add.w sb, sp, 8                                   |     sb += var_8h_3;
    0x00066938 movs r1, 1                                        |     r1 = 1;
    0x0006693a mov r0, sb                                        |     r0 = sb;
    0x0006693c add r2, pc                                        |     r2 = 0xcd42a;
    0x0006693e str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x00066942 str r2, [sp, 4]                                   |     var_4h = r2;
    0x00066944 add r3, pc                                        |     r3 = 0xcd436;
    0x00066946 movs r2, 0x1a                                     |     r2 = 0x1a;
    0x00066948 blx 0x9494                                        |     fcn_00009494 ();
                                                                 |     do {
    0x0006694c ldr r1, [pc, 0x1a0]                               |         
    0x0006694e add.w r2, r7, 0xc                                 |         r2 += var_ch;
    0x00066952 mov r0, sb                                        |         r0 = sb;
    0x00066954 add r1, pc                                        |         r1 = 0xcd448;
    0x00066956 bl 0x6a520                                        |         fcn_0006a520 (r0);
    0x0006695a adds r3, r0, 2                                    |         r3 += var_2h;
                                                                 |         if (r3 == var_2h) {
    0x0006695c beq.w 0x66ac6                                     |             goto label_10;
                                                                 |         }
    0x00066960 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x00066962 blt.w 0x66a70                                     |             goto label_11;
                                                                 |         }
    0x00066966 ldr.w fp, [pc, 0x18c]                             |         
    0x0006696a add.w sl, r7, 0x10                                |         sl += var_10h;
    0x0006696c lsrs r0, r2, 8                                    |         r0 = r2 >> 8;
    0x0006696e ldr r3, [pc, 0x188]                               |         
    0x00066970 add fp, pc                                        |         fp = 0xcd46a;
    0x00066972 add r3, pc                                        |         r3 = 0xcd470;
    0x00066974 str r3, [r7, 4]                                   |         var_4h_2 = r3;
    0x00066976 movs r3, 0                                        |         r3 = 0;
    0x00066978 ldr r0, [r7, 0xc]                                 |         r0 = var_ch;
    0x0006697a str r3, [r7, 0x10]                                |         var_10h = r3;
    0x0006697c movs r2, 0                                        |         r2 = 0;
    0x0006697e mov r3, sl                                        |         r3 = sl;
    0x00066980 mov.w r1, 0x100000                                |         r1 = 0x100000;
    0x00066982 asrs r0, r0, 6                                    |         r0 >>= 6;
    0x00066984 bl 0x6b144                                        |         r0 = fcn_0006b144 (r0, r1, r2, r3);
    0x00066988 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0006698a blt.w 0x66ab6                                     |             goto label_12;
                                                                 |         }
    0x0006698e ldr.w sb, [r7, 0x10]                              |         sb = var_10h;
                                                                 |         if (r0 == 0) {
    0x00066992 beq.w 0x66aba                                     |             goto label_13;
                                                                 |         }
    0x00066996 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x00066998 beq 0x66a26                                       |             goto label_14;
                                                                 |         }
    0x0006699a mov r1, fp                                        |         r1 = fp;
    0x0006699c mov r0, sb                                        |         r0 = sb;
    0x0006699e bl 0x803c0                                        |         r0 = fcn_000803c0 (r0, r1);
    0x000669a2 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000669a4 beq 0x66a62                                       |             goto label_15;
                                                                 |         }
    0x000669a6 movs r1, 0x3a                                     |         r1 = 0x3a;
    0x000669a8 blx 0x8bb0                                        |         r0 = get_current_dir_name ();
    0x000669ac mov r8, r0                                        |         r8 = r0;
    0x000669ae cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000669b0 beq 0x66a62                                       |             goto label_15;
                                                                 |         }
                                                                 | label_0:
    0x000669b2 add.w r0, r8, 1                                   |         r0 = r8 + 1;
    0x000669b6 blx 0x9200                                        |         r0 = fcn_00009200 ();
    0x000669ba mov r4, r0                                        |         r4 = r0;
    0x000669bc cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000669be beq.w 0x66ad0                                     |             goto label_16;
                                                                 |         }
    0x000669c2 ldr r1, [pc, 0x138]                               |         
    0x000669c4 add r1, pc                                        |         r1 = 0xcd4c6;
    0x000669c6 bl 0x80428                                        |         r0 = fcn_00080428 (r0, r1);
                                                                 |         if (r0 != 0) {
    0x000669ca cbz r0, 0x669d0                                   |             
    0x000669cc movs r3, 0                                        |             r3 = 0;
    0x000669ce strb r3, [r0]                                     |             *(r0) = r3;
                                                                 |         }
    0x000669d0 movs r5, 0                                        |         r5 = 0;
    0x000669d2 str r4, [r6]                                      |         *(r6) = r4;
                                                                 | label_3:
    0x000669d4 ldr r0, [r7, 0x10]                                |         r0 = var_10h;
    0x000669d6 blx 0x8dac                                        |         fcn_00008dac ();
    0x000669d8 invalid                                           |         
                                                                 | label_2:
    0x000669da ldr r0, [r7, 0xc]                                 |         r0 = var_ch;
    0x000669dc bl 0x69b30                                        |         fcn_00069b30 (r0, r1, r2, r3);
    0x000669e0 ldr r2, [pc, 0x11c]                               |         
    0x000669e2 ldr r3, [pc, 0xf8]                                |         r3 = *(0x66ade);
    0x000669e4 add r2, pc                                        |         r2 = 0xcd4e8;
    0x000669e6 ldr r3, [r2, r3]                                  |         r3 = imp.__progname;
    0x000669e8 ldr r2, [r3]                                      |         r2 = imp.__progname;
    0x000669ea ldr r3, [r7, 0x1c]                                |         r3 = var_1ch;
    0x000669ec eors r2, r3                                       |         r2 ^= r3;
    0x000669ee mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000669f2 bne 0x66acc                                       |             goto label_17;
                                                                 |         }
    0x000669f4 mov r0, r5                                        |         r0 = r5;
    0x000669f6 adds r7, 0x24                                     |         r7 += 0x24;
    0x000669f8 mov sp, r7                                        |         
    0x000669fa pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_9:
    0x000669fe ldr r2, [pc, 0x104]                               |         
    0x00066a00 sub sp, 0x18                                      |         
    0x00066a02 ldr r3, [pc, 0x104]                               |         
    0x00066a04 add.w sb, sp, 8                                   |         sb += var_8h_2;
    0x00066a08 add r2, pc                                        |         r2 = 0xcd512;
    0x00066a0a ldm r2, {r0, r1, r2}                              |         r0 = *(r2);
                                                                 |         r1 = *((r2 + 4));
                                                                 |         r2 = *((r2 + 8));
    0x00066a0c add r3, pc                                        |         r3 = 0xcd51a;
    0x00066a0e stm.w sb, {r0, r1, r2}                            |         *(sb) = r0;
                                                                 |         *((sb + 4)) = r1;
                                                                 |         *((sb + 8)) = r2;
    0x00066a12 ldr r0, [r3]                                      |         r0 = imp.__progname;
    0x00066a14 ldrh r2, [r3, 4]                                  |         r2 = *((r3 + 4));
    0x00066a16 ldrb r3, [r3, 6]                                  |         r3 = *((r3 + 6));
    0x00066a18 str.w r0, [sb, 0xb]                               |         __asm ("str.w r0, [var_bh]");
    0x00066a1c strh.w r2, [sb, 0xf]                              |         var_fh = r2;
    0x00066a20 strb.w r3, [sb, 0x11]                             |         var_11h = r3;
    0x00066a24 b 0x6694c                                         |         
                                                                 |     } while (1);
                                                                 | label_14:
    0x00066a26 movs r1, 0x3a                                     |     r1 = 0x3a;
    0x00066a28 mov r0, sb                                        |     r0 = sb;
    0x00066a2a blx 0x8bb0                                        |     r0 = get_current_dir_name ();
                                                                 |     if (r0 == 0) {
    0x00066a2e cbz r0, 0x66a62                                   |         goto label_15;
                                                                 |     }
    0x00066a30 adds r2, r0, 1                                    |     r2 = r0 + 1;
    0x00066a32 movs r1, 0x3a                                     |     r1 = 0x3a;
    0x00066a34 mov r0, r2                                        |     r0 = r2;
    0x00066a36 str r2, [r7]                                      |     *(r7) = r2;
    0x00066a38 blx 0x8bb0                                        |     r0 = get_current_dir_name ();
    0x00066a3c mov r8, r0                                        |     r8 = r0;
                                                                 |     if (r0 == 0) {
    0x00066a3e cbz r0, 0x66a62                                   |         goto label_15;
                                                                 |     }
    0x00066a40 ldr r2, [r7]                                      |     r2 = *(r7);
    0x00066a42 strb r5, [r0]                                     |     *(r0) = r5;
                                                                 |     if (r4 == 0) {
    0x00066a44 cbz r4, 0x66aa0                                   |         goto label_18;
                                                                 |     }
    0x00066a46 mov r0, r2                                        |     r0 = r2;
    0x00066a48 ldr r1, [r7, 4]                                   |     r1 = var_4h_2;
    0x00066a4a mov r3, r5                                        |     r3 = r5;
    0x00066a4c add.w r2, r7, 0x14                                |     r2 += var_14h;
    0x00066a50 strd r4, r5, [r7, 0x14]                           |     __asm ("strd r4, r5, [var_14h]");
    0x00066a54 bl 0x7aec4                                        |     r0 = fcn_0007aec4 (r0, r1, r2, r3);
    0x00066a58 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00066a5a blt 0x66ab6                                       |         goto label_12;
                                                                 |     }
                                                                 |     if (r0 != 0) {
    0x00066a5c bne 0x669b2                                       |         goto label_0;
                                                                 |     }
    0x00066a5e ldr.w sb, [r7, 0x10]                              |     sb = var_10h;
                                                                 | label_15:
    0x00066a62 mov r0, sb                                        |     r0 = sb;
    0x00066a64 blx 0x8dac                                        |     fcn_00008dac ();
    0x00066a66 invalid                                           |     
                                                                 | label_6:
    0x00066a6a ldr r4, [pc, 0xa0]                                |     
    0x00066a6c add r4, pc                                        |     r4 = 0xcd57e;
    0x00066a6e b 0x66908                                         |     goto label_1;
                                                                 | label_11:
    0x00066a70 mov r5, r0                                        |     r5 = r0;
    0x00066a72 b 0x669da                                         |     goto label_2;
                                                                 | label_4:
    0x00066a74 ldr r1, [pc, 0x98]                                |     
    0x00066a76 movw r2, 0x29a                                    |     r2 = 0x29a;
    0x00066a7a ldr r3, [pc, 0x98]                                |     
    0x00066a7c ldr r0, [pc, 0x98]                                |     
    0x00066a7e add r1, pc                                        |     r1 = 0xcd592;
    0x00066a80 add r3, pc                                        |     r3 = 0xcd59a;
    0x00066a82 adds r1, 7                                        |     r1 += 7;
    0x00066a84 add r0, pc                                        |     r0 = 0xcd5a0;
    0x00066a86 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
    0x00066a88 invalid                                           |     
                                                                 | label_5:
    0x00066a8a ldr r1, [pc, 0x90]                                |     
    0x00066a8c movw r2, 0x29b                                    |     r2 = 0x29b;
    0x00066a90 ldr r3, [pc, 0x8c]                                |     
    0x00066a92 ldr r0, [pc, 0x90]                                |     
    0x00066a94 add r1, pc                                        |     r1 = 0xcd5b6;
    0x00066a96 add r3, pc                                        |     r3 = 0xcd5ba;
    0x00066a98 adds r1, 7                                        |     r1 += 7;
    0x00066a9a add r0, pc                                        |     r0 = 0xcd5c4;
    0x00066a9c bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_18:
    0x00066aa0 ldr r1, [pc, 0x84]                                |     
    0x00066aa2 movw r2, 0x2d3                                    |     r2 = 0x2d3;
    0x00066aa6 ldr r3, [pc, 0x84]                                |     
    0x00066aa8 ldr r0, [pc, 0x84]                                |     
    0x00066aaa add r1, pc                                        |     r1 = 0xcd5d6;
    0x00066aac add r3, pc                                        |     r3 = 0xcd5de;
    0x00066aae adds r1, 7                                        |     r1 += 7;
    0x00066ab0 add r0, pc                                        |     r0 = 0xcd5e4;
    0x00066ab2 bl 0x71518                                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_12:
    0x00066ab6 mov r5, r0                                        |     r5 = r0;
    0x00066ab8 b 0x669d4                                         |     goto label_3;
                                                                 | label_13:
    0x00066aba mvn r5, 0x3c                                      |     r5 = ~0x3c;
    0x00066abe b 0x669d4                                         |     goto label_3;
                                                                 | label_7:
    0x00066ac0 mvn r5, 0x15                                      |     r5 = ~0x15;
    0x00066ac4 b 0x669da                                         |     goto label_2;
                                                                 | label_10:
    0x00066ac6 mvn r5, 2                                         |     r5 = ~2;
    0x00066aca b 0x669da                                         |     goto label_2;
                                                                 | label_17:
    0x00066acc blx 0x927c                                        |     fprintf_chk ()
                                                                 | label_16:
    0x00066ad0 mvn r5, 0xb                                       |     r5 = ~0xb;
    0x00066ad4 b 0x669d4                                         |     goto label_3;
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x66b34 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00066b34 ()                  | void fcn_00066b34 (int16_t arg1) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     r0 = arg1;
    0x00066b34 ldr r2, [pc, 0x8c]            |     
    0x00066b36 ldr r3, [pc, 0x90]            |     r3 = *(0x66bca);
    0x00066b38 push {r4, r5, lr}             |     
    0x00066b3a sub sp, 0xc                   |     
    0x00066b3c add r2, pc                    |     r2 = 0xcd704;
    0x00066b3e ldr r3, [r2, r3]              |     
    0x00066b40 ldr r3, [r3]                  |     r3 = imp.__progname;
    0x00066b42 str r3, [sp, 4]               |     var_4h = r3;
    0x00066b44 mov.w r3, 0                   |     r3 = 0;
                                             |     if (r0 == 0) {
    0x00066b48 cbz r0, 0x66baa               |         goto label_2;
                                             |     }
    0x00066b4a mov r4, r0                    |     r4 = r0;
    0x00066b4c ldr r0, [pc, 0x7c]            |     
    0x00066b4e mov r2, sp                    |     r2 = sp;
    0x00066b50 movs r1, 1                    |     r1 = 1;
    0x00066b52 add r0, pc                    |     r0 = 0xcd722;
    0x00066b54 bl 0x668c8                    |     r0 = fcn_000668c8 (r0, r1, r2);
    0x00066b58 cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x00066b5a blt 0x66b74                   |         goto label_3;
                                             |     }
    0x00066b5c ldr r5, [sp]                  |     r5 = *(sp);
    0x00066b5e ldr r1, [pc, 0x70]            |     
    0x00066b60 mov r0, r5                    |     r0 = r5;
    0x00066b62 add r1, pc                    |     r1 = 0xcd738;
    0x00066b64 bl 0x80428                    |     r0 = fcn_00080428 (r0, r1);
    0x00066b68 cbz r0, 0x66b8c               |     
                                             |     while (r0 != 0) {
                                             | label_1:
    0x00066b6a movs r3, 0                    |         r3 = 0;
    0x00066b6c strb r3, [r0]                 |         *(r0) = r3;
    0x00066b6e ldr r5, [sp]                  |         r5 = *(sp);
                                             | label_0:
    0x00066b70 movs r0, 0                    |         r0 = 0;
    0x00066b72 str r5, [r4]                  |         *(r4) = r5;
                                             | label_3:
    0x00066b74 ldr r2, [pc, 0x5c]            |         
    0x00066b76 ldr r3, [pc, 0x50]            |         r3 = *(0x66bca);
    0x00066b78 add r2, pc                    |         r2 = 0xcd750;
    0x00066b7a ldr r3, [r2, r3]              |         r3 = imp.__progname;
    0x00066b7c ldr r2, [r3]                  |         r2 = imp.__progname;
    0x00066b7e ldr r3, [sp, 4]               |         r3 = var_4h;
    0x00066b80 eors r2, r3                   |         r2 ^= r3;
    0x00066b82 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00066b86 bne 0x66bc0                   |             goto label_4;
                                             |         }
    0x00066b88 add sp, 0xc                   |         
    0x00066b8a pop {r4, r5, pc}              |         
    0x00066b8c ldr r1, [pc, 0x48]            |         
    0x00066b8e mov r0, r5                    |         r0 = r5;
    0x00066b90 add r1, pc                    |         r1 = 0xcd76c;
    0x00066b92 bl 0x80428                    |         r0 = fcn_00080428 (r0, r1);
    0x00066b96 cmp r0, 0                     |         
    0x00066b98 bne 0x66b6a                   |         
                                             |     }
    0x00066b9a ldr r1, [pc, 0x40]            |     
    0x00066b9c mov r0, r5                    |     r0 = r5;
    0x00066b9e add r1, pc                    |     r1 = 0xcd780;
    0x00066ba0 bl 0x80428                    |     r0 = fcn_00080428 (r0, r1);
    0x00066ba4 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00066ba6 beq 0x66b70                   |         goto label_0;
                                             |     }
    0x00066ba8 b 0x66b6a                     |     goto label_1;
                                             | label_2:
    0x00066baa ldr r1, [pc, 0x34]            |     
    0x00066bac movw r2, 0x3e6                |     r2 = 0x3e6;
    0x00066bb0 ldr r3, [pc, 0x30]            |     
    0x00066bb2 ldr r0, [pc, 0x34]            |     
    0x00066bb4 add r1, pc                    |     r1 = 0xcd79a;
    0x00066bb6 add r3, pc                    |     r3 = 0xcd79e;
    0x00066bb8 adds r1, 7                    |     r1 += 7;
    0x00066bba add r0, pc                    |     r0 = 0xcd7a8;
    0x00066bbc bl 0x71518                    |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                             | label_4:
    0x00066bc0 blx 0x927c                    |     fprintf_chk ()
    0x00066bc4 subs r0, r1, 6                |     r0 = r1 - 6;
    0x00066bc6 movs r6, r0                   |     r6 = r0;
    0x00066bc8 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00066bca movs r0, r0                   |     
                                             |     if (r0 <= r0) {
    0x00066bcc bgt 0x66bdc                   |         
    0x00066bce movs r1, r0                   |         r1 = r0;
    0x00066bd0 pop {r1, r3, r5, r6}          |         
    0x00066bd2 movs r3, r0                   |         r3 = r0;
    0x00066bd4 subs r4, r1, 5                |         r4 = r1 - 5;
    0x00066bd6 movs r6, r0                   |         r6 = r0;
    0x00066bd8 pop {r3, r6}                  |         
    0x00066bda movs r3, r0                   |         r3 = r0;
                                             |     }
    0x00066bdc pop {r1, r3, r6}              |     
    0x00066bde movs r3, r0                   |     r3 = r0;
    0x00066be0 invalid                       |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x66bec */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00066bec ()                  | void fcn_00066bec (int16_t arg1, int16_t arg3) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     r0 = arg1;
                                             |     r2 = arg3;
    0x00066bec push {r4, r5, r6, lr}         |     
    0x00066bee mov r4, r0                    |     r4 = r0;
    0x00066bf0 ldr r0, [pc, 0x9c]            |     
    0x00066bf2 mov r5, r2                    |     r5 = r2;
    0x00066bf4 sub sp, 8                     |     
    0x00066bf6 movs r3, 0                    |     r3 = 0;
    0x00066bf8 ldr r2, [pc, 0x98]            |     r2 = *(0x66c94);
    0x00066bfa add r0, pc                    |     r0 = 0xcd88e;
    0x00066bfc ldr r2, [r0, r2]              |     
    0x00066bfe ldr r2, [r2]                  |     r2 = *(0xcd88e);
    0x00066c00 str r2, [sp, 4]               |     var_4h = r2;
    0x00066c02 mov.w r2, 0                   |     r2 = 0;
    0x00066c06 str r3, [sp]                  |     *(sp) = r3;
                                             |     if (r4 == 0) {
    0x00066c08 cbz r4, 0x66c5e               |         goto label_1;
                                             |     }
    0x00066c0a cmp r5, 0                     |     
                                             |     if (r5 == 0) {
    0x00066c0c beq 0x66c74                   |         goto label_2;
                                             |     }
                                             |     if (r1 == 0) {
    0x00066c0e cbz r1, 0x66c50               |         goto label_3;
                                             |     }
                                             | label_0:
    0x00066c10 movs r2, 1                    |     r2 = 1;
    0x00066c12 mov r0, r4                    |     r0 = r4;
    0x00066c14 bl 0x75208                    |     r0 = fcn_00075208 (r0, r1, r2);
    0x00066c18 cmp r0, 0                     |     
    0x00066c1a it ne                         |     
                                             |     if (r0 != 0) {
    0x00066c1c cmpne r4, r0                  |         __asm ("cmpne r4, r0");
                                             |     }
    0x00066c1e itett lo                      |     
                                             |     if (r0 >= 0) {
    0x00066c20 movlo r6, 1                   |         r6 = 1;
                                             |     }
                                             |     if (r0 < 0) {
    0x00066c22 movhs r6, 0                   |         r6 = 0;
                                             |     }
                                             |     if (r0 >= 0) {
    0x00066c24 movlo r6, 0                   |         r6 = 0;
                                             |     }
                                             |     if (r0 >= 0) {
    0x00066c26 addlo r0, r0, -1              |         r0 += -1;
                                             |     }
    0x00066c2a ite lo                        |     
                                             |     if (r0 >= 0) {
    0x00066c2c strlo r0, [r5]                |         *(r5) = r0;
                                             |     }
    0x00066c2e strhs r4, [r5]                |     *(r5) = r4;
                                             |     while (r6 < var_0h) {
    0x00066c30 ldr r0, [sp]                  |         r0 = *(sp);
    0x00066c32 blx 0x8dac                    |         fcn_00008dac ();
    0x00066c36 ldr r2, [pc, 0x60]            |         
    0x00066c38 ldr r3, [pc, 0x58]            |         r3 = *(0x66c94);
    0x00066c3a add r2, pc                    |         r2 = 0xcd8d8;
    0x00066c3c ldr r3, [r2, r3]              |         r3 = *(0xcd8d8);
    0x00066c3e ldr r2, [r3]                  |         r2 = *(0xcd8d8);
    0x00066c40 ldr r3, [sp, 4]               |         r3 = var_4h;
    0x00066c42 eors r2, r3                   |         r2 ^= r3;
    0x00066c44 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00066c48 bne 0x66c8a                   |             goto label_4;
                                             |         }
    0x00066c4a mov r0, r6                    |         r0 = r6;
    0x00066c4c add sp, 8                     |         
    0x00066c4e pop {r4, r5, r6, pc}          |         
                                             | label_3:
    0x00066c50 mov r0, sp                    |         r0 = sp;
    0x00066c52 bl 0x66b34                    |         fcn_00066b34 (r0);
    0x00066c56 subs r6, r0, 0                |         r6 -= var_0h;
    0x00066c58 blt 0x66c30                   |         
                                             |     }
    0x00066c5a ldr r1, [sp]                  |     r1 = *(sp);
    0x00066c5c b 0x66c10                     |     goto label_0;
                                             | label_1:
    0x00066c5e ldr r1, [pc, 0x3c]            |     
    0x00066c60 movw r2, 0x3fd                |     r2 = 0x3fd;
    0x00066c64 ldr r3, [pc, 0x38]            |     
    0x00066c66 ldr r0, [pc, 0x3c]            |     
    0x00066c68 add r1, pc                    |     r1 = 0xcd90a;
    0x00066c6a add r3, pc                    |     r3 = 0xcd90e;
    0x00066c6c adds r1, 7                    |     r1 += 7;
    0x00066c6e add r0, pc                    |     r0 = 0xcd918;
    0x00066c70 bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_2:
    0x00066c74 ldr r1, [pc, 0x30]            |     
    0x00066c76 movw r2, 0x3fe                |     r2 = 0x3fe;
    0x00066c7a ldr r3, [pc, 0x30]            |     
    0x00066c7c ldr r0, [pc, 0x30]            |     
    0x00066c7e add r1, pc                    |     r1 = 0xcd92a;
    0x00066c80 add r3, pc                    |     r3 = 0xcd932;
    0x00066c82 adds r1, 7                    |     r1 += 7;
    0x00066c84 add r0, pc                    |     r0 = 0xcd938;
    0x00066c86 bl 0x71518                    |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                             | label_4:
    0x00066c8a blx 0x927c                    |     fprintf_chk ()
    0x00066c8e nop                           |     
    0x00066c90 subs r2, r1, 3                |     r2 = r1 - 3;
    0x00066c92 movs r6, r0                   |     r6 = r0;
    0x00066c94 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00066c96 movs r0, r0                   |     
    0x00066c98 subs r2, r1, 2                |     r2 = r1 - 2;
    0x00066c9a movs r6, r0                   |     r6 = r0;
    0x00066c9c invalid                       |     
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x66cb4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00066cb4 ()                      | void fcn_00066cb4 (int16_t arg1, int16_t arg2, uint32_t arg3) {
                                                 |     int16_t var_4h;
                                                 |     int16_t var_8h;
                                                 |     int16_t var_ch;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 |     r2 = arg3;
    0x00066cb4 invalid                           |     
    0x00066cb8 ldr r4, [pc, 0xb0]                |     
    0x00066cba subs r1, r0, 0                    |     r1 = r0 - 0;
    0x00066cbc sub sp, 0x14                      |     
    0x00066cbe mov.w r6, 0                       |     r6 = 0;
    0x00066cc2 ldr r3, [pc, 0xac]                |     r3 = *(0x66d72);
    0x00066cc4 add r4, pc                        |     r4 = 0xcda34;
    0x00066cc6 ldr r3, [r4, r3]                  |     
    0x00066cc8 ldr r3, [r3]                      |     r3 = *(0xcda34);
    0x00066cca str r3, [sp, 0xc]                 |     var_ch = r3;
    0x00066ccc mov.w r3, 0                       |     r3 = 0;
    0x00066cd0 str r6, [sp, 4]                   |     var_4h = r6;
                                                 |     if (r1 < r0) {
    0x00066cd2 blt 0x66d34                       |         goto label_1;
                                                 |     }
    0x00066cd4 mov r5, r2                        |     r5 = r2;
    0x00066cd6 cmp r2, 0                         |     
                                                 |     if (r2 == 0) {
    0x00066cd8 beq 0x66d4a                       |         goto label_2;
                                                 |     }
    0x00066cda ldr r0, [pc, 0x98]                |     
    0x00066cdc add r2, sp, 4                     |     r2 += var_4h;
    0x00066cde add r0, pc                        |     r0 = 0xcda58;
    0x00066ce0 bl 0x668c8                        |     r0 = fcn_000668c8 (r0, r1, r2);
    0x00066ce4 subs r4, r0, 0                    |     r4 = r0 - 0;
                                                 |     if (r4 >= r0) {
    0x00066ce6 blt 0x66d0a                       |         
    0x00066ce8 ldr r0, [sp, 4]                   |         r0 = var_4h;
    0x00066cea add r2, sp, 8                     |         r2 += var_8h;
    0x00066cec mov r1, r7                        |         r1 = r7;
    0x00066cee bl 0x66bec                        |         r0 = fcn_00066bec (r0, r1);
    0x00066cf2 subs r4, r0, 0                    |         r4 = r0 - 0;
                                                 |         if (r4 >= r0) {
    0x00066cf4 blt 0x66d0a                       |             
    0x00066cf6 ldrd r7, r0, [sp, 4]              |             __asm ("ldrd r7, r0, [var_4h]");
    0x00066cfa cmp r0, r7                        |             
                                                 |             if (r0 == r7) {
    0x00066cfc beq 0x66d2c                       |                 goto label_3;
                                                 |             }
    0x00066cfe blx 0x9200                        |             r0 = fcn_00009200 ();
                                                 |             if (r0 == 0) {
    0x00066d02 cbz r0, 0x66d64                   |                 goto label_4;
                                                 |             }
    0x00066d04 mov r4, r6                        |             r4 = r6;
    0x00066d06 str r0, [r5]                      |             *(r5) = r0;
    0x00066d08 b 0x66d0c                         |             
                                                 |         }
                                                 |     } else {
    0x00066d0a ldr r7, [sp, 4]                   |         r7 = var_4h;
                                                 |     }
                                                 |     do {
                                                 | label_0:
    0x00066d0c mov r0, r7                        |         r0 = r7;
    0x00066d0e blx 0x8dac                        |         fcn_00008dac ();
    0x00066d12 ldr r2, [pc, 0x64]                |         
    0x00066d14 ldr r3, [pc, 0x58]                |         r3 = *(0x66d70);
    0x00066d16 add r2, pc                        |         r2 = 0xcda94;
    0x00066d18 ldr r3, [r2, r3]                  |         r3 = *(0xcda94);
    0x00066d1a ldr r2, [r3]                      |         r2 = *(0xcda94);
    0x00066d1c ldr r3, [sp, 0xc]                 |         r3 = var_ch;
    0x00066d1e eors r2, r3                       |         r2 ^= r3;
    0x00066d20 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00066d24 bne 0x66d60                       |             goto label_5;
                                                 |         }
    0x00066d26 mov r0, r4                        |         r0 = r4;
    0x00066d28 add sp, 0x14                      |         
    0x00066d2a pop {r4, r5, r6, r7, pc}          |         
                                                 | label_3:
    0x00066d2c str r7, [r5]                      |         *(r5) = r7;
    0x00066d2e mov r4, r6                        |         r4 = r6;
    0x00066d30 mov r7, r6                        |         r7 = r6;
    0x00066d32 b 0x66d0c                         |         
                                                 |     } while (1);
                                                 | label_1:
    0x00066d34 ldr r1, [pc, 0x44]                |     
    0x00066d36 movw r2, 0x419                    |     r2 = 0x419;
    0x00066d38 tst r1, r3                        |     
    0x00066d3a ldr r3, [pc, 0x44]                |     
    0x00066d3c ldr r0, [pc, 0x44]                |     
    0x00066d3e add r1, pc                        |     r1 = 0xcdabe;
    0x00066d40 add r3, pc                        |     r3 = 0xcdac6;
    0x00066d42 adds r1, 7                        |     r1 += 7;
    0x00066d44 add r0, pc                        |     r0 = 0xcdacc;
    0x00066d46 bl 0x71518                        |     fcn_00071518 (r0, r1, r2, r3);
                                                 | label_2:
    0x00066d4a ldr r1, [pc, 0x3c]                |     
    0x00066d4c movw r2, 0x41a                    |     r2 = 0x41a;
    0x00066d50 ldr r3, [pc, 0x38]                |     
    0x00066d52 ldr r0, [pc, 0x3c]                |     
    0x00066d54 add r1, pc                        |     r1 = 0xcdae2;
    0x00066d56 add r3, pc                        |     r3 = 0xcdae6;
    0x00066d58 adds r1, 7                        |     r1 += 7;
    0x00066d5a add r0, pc                        |     r0 = 0xcdaf0;
    0x00066d5c bl 0x71518                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                 | label_5:
    0x00066d60 blx 0x927c                        |     fprintf_chk ()
                                                 | label_4:
    0x00066d64 mvn r4, 0xb                       |     r4 = ~0xb;
    0x00066d68 b 0x66d0c                         |     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/libexec/udevadm @ 0x66d94 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00066d94 ()                      | void fcn_00066d94 (int16_t arg2) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     r1 = arg2;
    0x00066d94 ldr r2, [pc, 0x68]                |     
    0x00066d96 ldr r3, [pc, 0x6c]                |     r3 = *(0x66e06);
    0x00066d98 push {r4, r5, lr}                 |     
    0x00066d9a mov r5, r1                        |     r5 = r1;
    0x00066d9c add r2, pc                        |     r2 = 0xcdba0;
    0x00066d9e sub sp, 0xc                       |     
    0x00066da0 movs r1, 0                        |     r1 = 0;
    0x00066da2 ldr r3, [r2, r3]                  |     
    0x00066da4 ldr r3, [r3]                      |     r3 = *(0xcdba0);
    0x00066da6 str r3, [sp, 4]                   |     var_4h = r3;
    0x00066da8 mov.w r3, 0                       |     r3 = 0;
    0x00066dac str r1, [sp]                      |     *(sp) = r1;
                                                 |     if (r5 != 0) {
    0x00066dae cbz r5, 0x66de4                   |         
    0x00066db0 mov r2, sp                        |         r2 = sp;
    0x00066db2 bl 0x66cb4                        |         r0 = fcn_00066cb4 (r0, r1, r2);
    0x00066db6 subs r4, r0, 0                    |         r4 = r0 - 0;
                                                 |         if (r4 >= r0) {
    0x00066db8 blt 0x66dc4                       |             
    0x00066dba ldr r0, [sp]                      |             r0 = *(sp);
    0x00066dbc mov r1, r5                        |             r1 = r5;
    0x00066dbe bl 0x66280                        |             r0 = fcn_00066280 (r0, r1);
    0x00066dc2 mov r4, r0                        |             r4 = r0;
                                                 |         }
    0x00066dc4 ldr r0, [sp]                      |         r0 = *(sp);
    0x00066dc6 blx 0x8dac                        |         fcn_00008dac ();
    0x00066dca ldr r2, [pc, 0x3c]                |         
    0x00066dcc ldr r3, [pc, 0x34]                |         r3 = *(0x66e04);
    0x00066dce add r2, pc                        |         r2 = 0xcdbdc;
    0x00066dd0 ldr r3, [r2, r3]                  |         r3 = *(0xcdbdc);
    0x00066dd2 ldr r2, [r3]                      |         r2 = *(0xcdbdc);
    0x00066dd4 ldr r3, [sp, 4]                   |         r3 = var_4h;
    0x00066dd6 eors r2, r3                       |         r2 ^= r3;
    0x00066dd8 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00066ddc bne 0x66dfa                       |             goto label_0;
                                                 |         }
    0x00066dde mov r0, r4                        |         r0 = r4;
    0x00066de0 add sp, 0xc                       |         
    0x00066de2 pop {r4, r5, pc}                  |         
                                                 |     }
    0x00066de4 ldr r1, [pc, 0x24]                |     
    0x00066de6 movw r2, 0x48e                    |     r2 = 0x48e;
    0x00066de8 cmp r6, r1                        |     
    0x00066dea ldr r3, [pc, 0x24]                |     
    0x00066dec ldr r0, [pc, 0x24]                |     
    0x00066dee add r1, pc                        |     r1 = 0xcdbfe;
    0x00066df0 add r3, pc                        |     r3 = 0xcdc06;
    0x00066df2 adds r1, 7                        |     r1 += 7;
    0x00066df4 add r0, pc                        |     r0 = 0xcdc0c;
    0x00066df6 bl 0x71518                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                 | label_0:
    0x00066dfa blx 0x927c                        |     fprintf_chk ()
    0x00066dfe nop                               |     
    0x00066e00 adds r0, r5, 4                    |     r0 = r5 + 4;
    0x00066e02 movs r6, r0                       |     r6 = r0;
    0x00066e04 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x00066e06 movs r0, r0                       |     
    0x00066e08 adds r6, r6, 3                    |     r6 += 3;
    0x00066e0a movs r6, r0                       |     r6 = r0;
    0x00066e0c push {r1, r2, r3, r4, r7, lr}     |     
    0x00066e0e movs r3, r0                       |     r3 = r0;
                                                 |     if (r0 != 0) {
    0x00066e10 cbnz r0, 0x66e78                  |         void (*0x66e78)() ();
                                                 |     }
    0x00066e12 movs r3, r0                       |     r3 = r0;
    0x00066e14 ldrh r4, [r0, r3]                 |     r4 = *((r0 + r3));
    0x00066e16 movs r3, r0                       |     r3 = r0;
                                                 | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x66e18 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00066e18 ()              | void fcn_00066e18 (int16_t arg2) {
                                         |     int16_t var_0h_2;
                                         |     int16_t var_4h_2;
                                         |     r1 = arg2;
    0x00066e18 ldr.w ip, [pc, 0x54]      |     
    0x00066e1c ldr r3, [pc, 0x54]        |     r3 = *(0x66e74);
    0x00066e1e push {r4, r5, lr}         |     
    0x00066e20 movs r4, 0                |     r4 = 0;
    0x00066e22 add ip, pc                |     ip = 0xcdc96;
    0x00066e24 sub sp, 0xc               |     
    0x00066e26 mov r5, r1                |     r5 = r1;
    0x00066e28 mov r2, sp                |     r2 = sp;
    0x00066e2a invalid                   |     
    0x00066e2c adds r0, 3                |     r0 += 3;
    0x00066e2e mov r1, r4                |     r1 = r4;
    0x00066e30 ldr r3, [r3]              |     r3 = *(r3);
    0x00066e32 str r3, [sp, 4]           |     var_4h_2 = r3;
    0x00066e34 mov.w r3, 0               |     r3 = 0;
    0x00066e38 str r4, [sp]              |     *(sp) = r4;
    0x00066e3a bl 0x66cb4                |     r0 = fcn_00066cb4 (r0, r1, r2);
    0x00066e3e subs r4, r0, 0            |     r4 = r0 - 0;
                                         |     if (r4 >= r0) {
    0x00066e40 blt 0x66e4c               |         
    0x00066e42 ldr r0, [sp]              |         r0 = *(sp);
    0x00066e44 mov r1, r5                |         r1 = r5;
    0x00066e46 bl 0x663f4                |         r0 = fcn_000663f4 (r0, r1);
    0x00066e4a mov r4, r0                |         r4 = r0;
                                         |     }
    0x00066e4c ldr r0, [sp]              |     r0 = *(sp);
    0x00066e4e blx 0x8dac                |     fcn_00008dac ();
    0x00066e52 ldr r2, [pc, 0x24]        |     
    0x00066e54 ldr r3, [pc, 0x1c]        |     r3 = *(0x66e74);
    0x00066e56 add r2, pc                |     r2 = 0xcdcd4;
    0x00066e58 ldr r3, [r2, r3]          |     r3 = *(0xcdcd4);
    0x00066e5a ldr r2, [r3]              |     r2 = *(0xcdcd4);
    0x00066e5c ldr r3, [sp, 4]           |     r3 = var_4h_2;
    0x00066e5e eors r2, r3               |     r2 ^= r3;
    0x00066e60 mov.w r3, 0               |     r3 = 0;
    0x00066e62 lsls r0, r0, 0xc          |     r0 <<= 0xc;
                                         |     if (r0 == r0) {
    0x00066e64 bne 0x66e6c               |         
    0x00066e66 mov r0, r4                |         r0 = r4;
    0x00066e68 add sp, 0xc               |         
    0x00066e6a pop {r4, r5, pc}          |         
                                         |     }
    0x00066e6c blx 0x927c                |     fprintf_chk ()
    0x00066e70 adds r2, r4, 2            |     r2 = r4 + 2;
    0x00066e72 movs r6, r0               |     r6 = r0;
    0x00066e74 lsls r0, r0, 0x13         |     r0 <<= 0x13;
    0x00066e76 movs r0, r0               |     
    0x00066e78 adds r6, r5, 1            |     r6 = r5 + 1;
    0x00066e7a movs r6, r0               |     r6 = r0;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x670c4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000670c4 ()              | void fcn_000670c4 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                         |     int16_t var_0h;
                                         |     int16_t var_4h;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
                                         |     r2 = arg3;
                                         |     r3 = arg4;
    0x000670c4 ssub16mi fp, r5, r0       |     __asm ("ssub16mi fp, r5, r0");
    0x000670c8 ldr r4, [pc, 0x74]        |     
    0x000670ca mov r2, r3                |     r2 = r3;
    0x000670cc sub sp, 8                 |     
    0x000670ce movs r6, 0                |     r6 = 0;
    0x000670d0 ldr r3, [pc, 0x70]        |     r3 = *(0x67144);
    0x000670d2 add r4, pc                |     r4 = 0xce216;
    0x000670d4 ldr r3, [r4, r3]          |     
    0x000670d6 ldr r3, [r3]              |     r3 = *(0xce216);
    0x000670d8 str r3, [sp, 4]           |     var_4h = r3;
    0x000670da mov.w r3, 0               |     r3 = 0;
    0x000670de str r6, [sp]              |     *(sp) = r6;
                                         |     if (r5 == 0) {
    0x000670e0 cbz r5, 0x6711c           |         goto label_0;
                                         |     }
    0x000670e2 mov r3, sp                |     r3 = sp;
    0x000670e4 bl 0x66f2c                |     r0 = fcn_00066f2c (r0, r1, r2, r3);
    0x000670e8 subs r4, r0, 0            |     r4 = r0 - 0;
                                         |     if (r4 < r0) {
    0x000670ea blt 0x670fc               |         goto label_1;
                                         |     }
    0x000670ec ldr r1, [pc, 0x58]        |     
    0x000670ee ldr r0, [sp]              |     r0 = *(sp);
    0x000670f0 add r1, pc                |     r1 = 0xce23c;
    0x000670f2 blx 0x8fb4                |     r0 = fcn_00008fb4 ();
                                         |     if (r0 == 0) {
    0x000670f6 cbz r0, 0x67134           |         goto label_2;
                                         |     }
    0x000670f8 mov r4, r6                |     r4 = r6;
    0x000670fa str r0, [r5]              |     *(r5) = r0;
                                         |     do {
                                         | label_1:
    0x000670fc ldr r0, [sp]              |         r0 = *(sp);
    0x000670fe blx 0x8dac                |         fcn_00008dac ();
    0x00067102 ldr r2, [pc, 0x48]        |         
    0x00067104 ldr r3, [pc, 0x3c]        |         r3 = *(0x67144);
    0x00067106 add r2, pc                |         r2 = 0xce258;
    0x00067108 ldr r3, [r2, r3]          |         r3 = *(0xce258);
    0x0006710a ldr r2, [r3]              |         r2 = *(0xce258);
    0x0006710c ldr r3, [sp, 4]           |         r3 = var_4h;
    0x0006710e eors r2, r3               |         r2 ^= r3;
    0x00067110 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 == r3) {
    0x00067114 bne 0x67130               |             
    0x00067116 mov r0, r4                |             r0 = r4;
    0x00067118 add sp, 8                 |             
    0x0006711a pop {r4, r5, r6, pc}      |             
                                         | label_0:
    0x0006711c ldr r1, [pc, 0x30]        |             
    0x0006711e movs r2, 0x2f             |             r2 = 0x2f;
    0x00067120 ldr r3, [pc, 0x30]        |             
    0x00067122 ldr r0, [pc, 0x34]        |             
    0x00067124 add r1, pc                |             r1 = 0xce278;
    0x00067126 add r3, pc                |             r3 = 0xce27e;
    0x00067128 adds r1, 7                |             r1 += 7;
    0x0006712a add r0, pc                |             r0 = 0xce288;
    0x0006712c bl 0x71518                |             fcn_00071518 (r0, r1, r2, r3);
    0x0006712e invalid                   |             
                                         |         }
    0x00067130 blx 0x927c                |         fprintf_chk ()
                                         | label_2:
    0x00067134 blx 0x9628                |         r0 = fcn_00009628 ();
    0x00067138 ldr r4, [r0]              |         r4 = *(r0);
    0x0006713a rsbs r4, r4, 0            |         r4 -= ;
    0x0006713c b 0x670fc                 |         
                                         |     } 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/libexec/udevadm @ 0x6715c */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.0006715c ()                                      | void fcn_0006715c (int16_t arg_60h, int16_t arg_64h, int16_t arg_6ch, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int32_t var_14h_2;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0006715c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00067160 sub sp, 0x3c                                      |     
    0x00067162 ldr r5, [pc, 0x1bc]                               |     
    0x00067164 ldr r4, [pc, 0x1bc]                               |     r4 = *(0x67324);
    0x00067166 add r5, pc                                        |     r5 = 0xce48c;
    0x00067168 ldrd r6, sl, [sp, 0x64]                           |     __asm ("ldrd r6, sl, [arg_64h]");
    0x0006716c ldr r4, [r5, r4]                                  |     
    0x0006716e subs r5, r2, 0                                    |     r5 = r2 - 0;
    0x00067170 ldr r4, [r4]                                      |     r4 = *(0xce48c);
    0x00067172 str r4, [sp, 0x34]                                |     var_34h = r4;
    0x00067174 mov.w r4, 0                                       |     r4 = 0;
    0x00067176 lsls r0, r0, 0x10                                 |     r0 <<= 0x10;
    0x00067178 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0006717a ldr r3, [sp, 0x6c]                                |     r3 = *(arg_6ch);
    0x0006717c ldr r4, [sp, 0x60]                                |     r4 = *(arg_60h);
    0x0006717e strd r0, r1, [sp, 0x14]                           |     __asm ("strd r0, r1, [var_14h]");
    0x00067182 str r3, [sp, 0x1c]                                |     var_1ch = r3;
                                                                 |     if (r0 < r0) {
    0x00067184 blt.w 0x672e6                                     |         goto label_10;
                                                                 |     }
    0x00067186 strh r7, [r5, 4]                                  |     *((r5 + 4)) = r7;
    0x00067188 cmp r5, 9                                         |     
                                                                 |     if (r5 == 9) {
    0x0006718a beq.w 0x672ca                                     |         goto label_11;
                                                                 |     }
    0x0006718c strh r6, [r3, 4]                                  |     *((r3 + 4)) = r6;
    0x0006718e cmp r5, 0x12                                      |     
                                                                 |     if (r5 == 0x12) {
    0x00067190 beq.w 0x672ca                                     |         goto label_11;
                                                                 |     }
    0x00067194 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00067196 beq.w 0x672d8                                     |         goto label_12;
                                                                 |     }
                                                                 | label_6:
    0x0006719a movs r3, 0                                        |     r3 = 0;
    0x0006719c str r3, [sp, 0x24]                                |     var_24h = r3;
                                                                 | label_7:
    0x0006719e movs r7, 0                                        |     r7 = 0;
    0x000671a0 str r7, [sp, 4]                                   |     var_4h = r7;
    0x000671a2 mov r8, r7                                        |     r8 = r7;
    0x000671a4 bl 0x76a30                                        |     fcn_00076a30 (r0);
    0x000671a8 add r3, sp, 0x2c                                  |     r3 += var_2ch;
    0x000671aa str r0, [sp, 8]                                   |     var_8h = r0;
    0x000671ac str r3, [sp, 0x20]                                |     var_20h = r3;
    0x000671ae ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x000671b0 and fp, r3, 2                                     |     
                                                                 | label_2:
    0x000671b4 movs r3, 0                                        |     r3 = 0;
    0x000671b6 ldrd r0, r1, [sp, 0x14]                           |     __asm ("ldrd r0, r1, [var_14h]");
    0x000671ba strd r3, r3, [sp, 0x2c]                           |     __asm ("strd r3, r3, [var_2ch]");
    0x000671be ldrd r3, r2, [sp, 0x1c]                           |     __asm ("ldrd r3, r2, [var_1ch]");
    0x000671c0 adds r2, 7                                        |     r2 += 7;
    0x000671c2 bl 0x670c4                                        |     r0 = fcn_000670c4 (r0, r1, r2, r3);
    0x000671c6 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000671c8 blt.w 0x672fa                                     |         goto label_13;
                                                                 |     }
    0x000671cc movs r3, 1                                        |     r3 = 1;
    0x000671ce ldr r7, [sp, 0x2c]                                |     r7 = var_2ch;
    0x000671d0 str r3, [sp]                                      |     *(sp) = r3;
    0x000671d2 add.w sb, sp, 0x30                                |     sb += var_30h;
    0x000671d6 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x000671d8 and r3, r3, 1                                     |     r3 &= 1;
    0x000671dc str r3, [sp, 0xc]                                 |     var_ch = r3;
                                                                 |     do {
                                                                 | label_0:
    0x000671de mov r1, sb                                        |         r1 = sb;
    0x000671e0 mov r0, r7                                        |         r0 = r7;
    0x000671e2 bl 0x65f08                                        |         r0 = fcn_00065f08 (r0, r1);
    0x000671e6 cmp r0, 0                                         |         
                                                                 |         if (r0 <= 0) {
    0x000671e8 ble 0x6724e                                       |             goto label_14;
                                                                 |         }
                                                                 | label_1:
    0x000671ea ldr r1, [sp, 0x30]                                |         r1 = var_30h;
    0x000671ec cmp.w fp, 0                                       |         
                                                                 |         if (fp == 0) {
    0x000671f0 beq 0x671f8                                       |             goto label_15;
                                                                 |         }
    0x000671f2 ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x000671f4 cmp r1, r3                                        |         
    0x000671f6 beq 0x671de                                       |         
                                                                 |     } while (r1 == r3);
                                                                 | label_15:
    0x000671f8 mov r0, r4                                        |     r0 = r4;
    0x000671fa bl 0x6eb7c                                        |     r0 = fcn_0006eb7c (r0, r1);
    0x000671fe mov r3, r0                                        |     r3 = r0;
    0x00067200 ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x00067202 cmp r3, r0                                        |     
                                                                 |     if (r3 == r0) {
    0x00067204 beq 0x671de                                       |         goto label_0;
                                                                 |     }
                                                                 |     if (r6 != 0) {
    0x00067206 cbz r6, 0x67212                                   |         
    0x00067208 mov r2, sl                                        |         r2 = sl;
    0x0006720a mov r1, r5                                        |         r1 = r5;
    0x0006720c blx r6                                            |         uint32_t (*r6)(uint32_t, uint32_t) (r1, r2);
    0x0006720e str r0, [sp, 4]                                   |         var_4h = r0;
    0x00067210 ldr r0, [sp, 0x30]                                |         r0 = var_30h;
                                                                 |     }
    0x00067212 mov r1, r5                                        |     r1 = r5;
    0x00067214 blx 0x94c4                                        |     r0 = fcn_000094c4 ();
    0x00067218 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0006721a blt 0x6726a                                       |         goto label_16;
                                                                 |     }
    0x0006721c ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
                                                                 |     if (r3 != 0) {
    0x0006721e cbnz r3, 0x67260                                  |         goto label_17;
                                                                 |     }
                                                                 | label_3:
    0x00067220 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00067224 bne 0x67232                                       |         
    0x00067226 ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x00067228 cmp r6, 0                                         |         
    0x0006722a ite eq                                            |         
                                                                 |         if (r6 != 0) {
    0x0006722c moveq r8, 1                                       |             r8 = 1;
                                                                 |         }
                                                                 |         if (r6 == 0) {
    0x00067230 mov r8, r3                                        |             r8 = r3;
                                                                 |             goto label_4;
                                                                 |         }
                                                                 |     }
                                                                 | label_4:
    0x00067232 ldr r1, [sp, 0x30]                                |     r1 = var_30h;
    0x00067234 mov r0, r4                                        |     r0 = r4;
    0x00067236 bl 0x6ea0c                                        |     r0 = fcn_0006ea0c (r0, r1);
    0x0006723a cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0006723c blt 0x6728a                                       |         goto label_18;
                                                                 |     }
                                                                 | label_5:
    0x0006723e movs r3, 0                                        |     r3 = 0;
    0x00067240 mov r1, sb                                        |     r1 = sb;
    0x00067242 mov r0, r7                                        |     r0 = r7;
    0x00067244 str r3, [sp]                                      |     *(sp) = r3;
    0x00067246 bl 0x65f08                                        |     r0 = fcn_00065f08 (r0, r1);
    0x0006724a cmp r0, 0                                         |     
                                                                 |     if (r0 > 0) {
    0x0006724c bgt 0x671ea                                       |         goto label_1;
                                                                 |     }
                                                                 |     if (r0 != 0) {
                                                                 | label_14:
    0x0006724e bne 0x6728a                                       |         goto label_18;
                                                                 |     }
    0x00067250 mov r0, r7                                        |     r0 = r7;
    0x00067252 bl 0x69b30                                        |     fcn_00069b30 (r0, r1, r2, r3);
    0x00067256 ldr r3, [sp]                                      |     r3 = *(sp);
    0x00067258 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0006725a beq 0x671b4                                       |         goto label_2;
                                                                 |     }
    0x0006725c mov r3, r8                                        |     r3 = r8;
    0x0006725e b 0x6729e                                         |     goto label_19;
                                                                 | label_17:
    0x00067260 ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x00067262 movs r1, 0x12                                     |     r1 = 0x12;
    0x00067264 blx 0x94c4                                        |     fcn_000094c4 ();
    0x00067268 b 0x67220                                         |     goto label_3;
                                                                 | label_16:
    0x0006726a cmp.w r8, 0                                       |     
                                                                 |     if (r8 < 0) {
    0x0006726e blt 0x67232                                       |         goto label_4;
                                                                 |     }
    0x00067270 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x00067274 ldr r3, [r0]                                      |     r3 = *(r0);
    0x00067276 mov r0, r4                                        |     r0 = r4;
    0x00067278 ldr r1, [sp, 0x30]                                |     r1 = var_30h;
    0x0006727a cmp r3, 3                                         |     
    0x0006727c it ne                                             |     
                                                                 |     if (r3 != 3) {
    0x0006727e rsbne r8, r3, 0                                   |         __asm ("rsbne r8, r3, 0");
                                                                 |     }
    0x00067282 bl 0x6ea0c                                        |     r0 = fcn_0006ea0c (r0, r1);
    0x00067286 cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x00067288 bge 0x6723e                                       |         goto label_5;
                                                                 |     }
                                                                 | label_18:
    0x0006728a mov r3, r0                                        |     r3 = r0;
    0x0006728c bics.w r3, r3, r8, asr 32                         |     __asm ("bics.w r3, r3, r8, asr 32");
    0x00067290 it hs                                             |     
                                                                 |     if (r0 < 0) {
    0x00067292 movhs r3, r8                                      |         r3 = r8;
                                                                 |     }
                                                                 | label_8:
    0x00067294 mov r0, r7                                        |     r0 = r7;
    0x00067296 str r3, [sp]                                      |     *(sp) = r3;
    0x00067298 bl 0x69b30                                        |     fcn_00069b30 (r0, r1, r2, r3);
    0x0006729c ldr r3, [sp]                                      |     r3 = *(sp);
                                                                 | label_19:
    0x0006729e ldr r0, [sp, 0x24]                                |     r0 = var_24h;
                                                                 |     if (r0 != 0) {
    0x000672a0 cbz r0, 0x672ae                                   |         
    0x000672a2 movs r2, 0                                        |         r2 = 0;
    0x000672a4 str r3, [sp]                                      |         *(sp) = r3;
    0x000672a6 mov r1, r2                                        |         r1 = r2;
    0x000672a8 bl 0x6eee8                                        |         fcn_0006eee8 (r0);
    0x000672ac ldr r3, [sp]                                      |         r3 = *(sp);
                                                                 |     }
                                                                 | label_9:
    0x000672ae ldr r1, [pc, 0x78]                                |     
    0x000672b0 ldr r2, [pc, 0x70]                                |     r2 = *(0x67324);
    0x000672b2 add r1, pc                                        |     r1 = 0xce5e0;
    0x000672b4 ldr r2, [r1, r2]                                  |     r2 = *(0xce5e0);
    0x000672b6 ldr r1, [r2]                                      |     r1 = *(0xce5e0);
    0x000672b8 ldr r2, [sp, 0x34]                                |     r2 = var_34h;
    0x000672ba eors r1, r2                                       |     r1 ^= r2;
    0x000672bc mov.w r2, 0                                       |     r2 = 0;
                                                                 |     if (r1 != r2) {
    0x000672c0 bne 0x6731a                                       |         goto label_20;
                                                                 |     }
    0x000672c2 mov r0, r3                                        |     r0 = r3;
    0x000672c4 add sp, 0x3c                                      |     
    0x000672c6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_11:
    0x000672ca ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x000672cc bic r3, r3, 1                                     |     r3 = BIT_MASK (r3, 1);
    0x000672d0 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x000672d2 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x000672d4 bne.w 0x6719a                                     |         goto label_6;
                                                                 |     }
                                                                 | label_12:
    0x000672d8 mov r0, r4                                        |     r0 = r4;
    0x000672da bl 0x6e828                                        |     r0 = fcn_0006e828 ();
    0x000672de mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r0 != 0) {
    0x000672e0 cbz r0, 0x67314                                   |         
    0x000672e2 str r0, [sp, 0x24]                                |         var_24h = r0;
    0x000672e4 b 0x6719e                                         |         goto label_7;
                                                                 | label_10:
    0x000672e6 ldr r1, [pc, 0x44]                                |         
    0x000672e8 movs r2, 0xfa                                     |         r2 = 0xfa;
    0x000672ea ldr r3, [pc, 0x44]                                |         
    0x000672ec ldr r0, [pc, 0x44]                                |         
    0x000672ee add r1, pc                                        |         r1 = 0xce620;
    0x000672f0 add r3, pc                                        |         r3 = 0xce626;
    0x000672f2 adds r1, 7                                        |         r1 += 7;
    0x000672f4 add r0, pc                                        |         r0 = 0xce62c;
    0x000672f6 bl 0x71518                                        |         fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_13:
    0x000672fa mvn.w r2, r8                                      |         r2 = ~r8;
    0x000672fe adds r1, r0, 2                                    |         r1 = r0 + 2;
    0x00067300 lsr.w r2, r2, 0x1f                                |         r2 >>= 0x1f;
    0x00067304 mov r3, r0                                        |         r3 = r0;
    0x00067306 it eq                                             |         
                                                                 |         if (r1 != r0) {
    0x00067308 moveq r2, 0                                       |             r2 = 0;
                                                                 |         }
    0x0006730a ldr r7, [sp, 0x2c]                                |         r7 = var_2ch;
    0x0006730c cmp r2, 0                                         |         
    0x0006730e it eq                                             |         
                                                                 |         if (r2 != 0) {
    0x00067310 moveq r3, r8                                      |             r3 = r8;
                                                                 |         }
    0x00067312 b 0x67294                                         |         goto label_8;
                                                                 |     }
    0x00067314 mvn r3, 0xb                                       |     r3 = ~0xb;
    0x00067318 b 0x672ae                                         |     goto label_9;
                                                                 | label_20:
    0x0006731a blx 0x927c                                        |     fprintf_chk ()
    0x0006731e nop                                               |     
    0x00067320 adds r6, r3, r5                                   |     r6 = r3 + r5;
    0x00067322 movs r6, r0                                       |     r6 = r0;
    0x00067324 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x00067326 movs r0, r0                                       |     
    0x00067328 adds r2, r2, r0                                   |     r2 += r0;
    0x0006732a movs r6, r0                                       |     r6 = r0;
    0x0006732c sub sp, 0x78                                      |     
    0x0006732e movs r3, r0                                       |     r3 = r0;
    0x00067330 invalid                                           |     
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x673a8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000673a8 ()                  | void fcn_000673a8 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                             |     int16_t var_0h_2;
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
                                             |     r3 = arg4;
    0x000673a8 ldrsbgt pc, [r4], -0x8f       |     __asm ("ldrsbgt pc, [r4], -0x8f");
    0x000673ac push {r4, r5, lr}             |     
    0x000673ae mov r5, r3                    |     r5 = r3;
    0x000673b0 ldr r3, [pc, 0x50]            |     
    0x000673b2 sub sp, 0xc                   |     
    0x000673b4 add ip, pc                    |     
    0x000673b6 movs r4, 0                    |     r4 = 0;
    0x000673b8 ldr.w r3, [ip, r3]            |     r3 = *((ip + r3));
    0x000673bc ldr r3, [r3]                  |     r3 = *(0x67404);
    0x000673be str r3, [sp, 4]               |     var_4h = r3;
    0x000673c0 mov.w r3, 0                   |     r3 = 0;
    0x000673c4 mov r3, sp                    |     r3 = sp;
    0x000673c6 str r4, [sp]                  |     *(sp) = r4;
    0x000673c8 bl 0x66f2c                    |     fcn_00066f2c (r0, r1, r2, r3);
    0x000673ca ldc2 p14, c1, [r0, 0x10]!     |     __asm ("ldc2 p14, c1, [r0, 0x10]!");
                                             |     if (r4 >= 0) {
    0x000673ce blt 0x673da                   |         
    0x000673d0 ldr r0, [sp]                  |         r0 = *(sp);
    0x000673d2 mov r1, r5                    |         r1 = r5;
    0x000673d4 bl 0x6b320                    |         r0 = fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x000673d8 mov r4, r0                    |         r4 = r0;
                                             |     }
    0x000673da ldr r0, [sp]                  |     r0 = *(sp);
    0x000673dc blx 0x8dac                    |     fcn_00008dac ();
    0x000673e0 ldr r2, [pc, 0x24]            |     
    0x000673e2 ldr r3, [pc, 0x20]            |     r3 = *(0x67406);
    0x000673e4 add r2, pc                    |     r2 = 0xce7f0;
    0x000673e6 ldr r3, [r2, r3]              |     r3 = *(0xce7f0);
    0x000673e8 ldr r2, [r3]                  |     r2 = *(0xce7f0);
    0x000673ea ldr r3, [sp, 4]               |     r3 = var_4h;
    0x000673ec eors r2, r3                   |     r2 ^= r3;
    0x000673ee mov.w r3, 0                   |     r3 = 0;
    0x000673f0 lsls r0, r0, 0xc              |     r0 <<= 0xc;
                                             |     if (r0 == r0) {
    0x000673f2 bne 0x673fa                   |         
    0x000673f4 mov r0, r4                    |         r0 = r4;
    0x000673f6 add sp, 0xc                   |         
    0x000673f8 pop {r4, r5, pc}              |         
                                             |     }
    0x000673fa blx 0x927c                    |     fprintf_chk ()
    0x000673fe nop                           |     
    0x00067400 asrs r0, r2, 0x1c             |     r0 = r2 >> 0x1c;
    0x00067402 movs r6, r0                   |     r6 = r0;
    0x00067404 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00067406 movs r0, r0                   |     
    0x00067408 asrs r0, r4, 0x1b             |     r0 = r4 >> 0x1b;
    0x0006740a movs r6, r0                   |     r6 = r0;
                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6740c */
                                                         | #include <stdint.h>
                                                         |  
                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                         |  
    ; (fcn) fcn.0006740c ()                              | void fcn_0006740c (int16_t arg_240h, int16_t arg_298h, int16_t arg1, uint32_t arg2) {
                                                         |     int16_t var_0h_2;
                                                         |     int16_t var_0h;
                                                         |     int32_t var_8h;
                                                         |     int32_t var_8h_2;
                                                         |     int32_t var_10h;
                                                         |     int32_t var_14h;
                                                         |     int16_t var_0h_3;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0006740c blmi 0x1079d10                            |     __asm ("blmi aav.0x000616ae");
    0x00067410 push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x00067414 sub sp, 0x1c                              |     
    0x00067416 add r2, pc                                |     r2 += pc;
    0x00067418 add r7, sp, 0                             |     r7 += var_0h;
    0x0006741a ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x0006741c ldr r3, [r3]                              |     r3 = *(r3);
    0x0006741e str r3, [r7, 0x14]                        |     var_14h = r3;
    0x00067420 mov.w r3, 0                               |     r3 = 0;
    0x00067424 cmp r1, 0                                 |     
                                                         |     if (r1 == 0) {
    0x00067426 beq 0x674dc                               |         goto label_1;
                                                         |     }
    0x00067428 mov r6, r0                                |     r6 = r0;
    0x0006742a mov r0, r1                                |     r0 = r1;
    0x0006742c bl 0x66ec4                                |     fcn_00066ec4 (r0);
    0x00067430 mov r3, r6                                |     r3 = r6;
    0x00067432 strd r0, r6, [r7, 8]                      |     __asm ("strd r0, r6, [var_8h]");
                                                         |     if (r6 != 0) {
    0x00067436 cbz r6, 0x6743c                           |         
    0x00067438 ldr r3, [pc, 0xd8]                        |         
    0x0006743a add r3, pc                                |         r3 = 0xce952;
                                                         |     }
    0x0006743c add.w r5, r7, 8                           |     r5 += var_8h;
    0x00067440 add.w r8, r7, 0x14                        |     r8 += var_14h;
    0x00067444 mov sb, r5                                |     sb = r5;
    0x00067446 movs r0, 0xf                              |     r0 = 0xf;
    0x00067448 cmp sb, r8                                |     
    0x0006744a mov.w r4, 0                               |     r4 = 0;
    0x0006744e add r4, r0                                |     r4 += r0;
    0x00067450 str r3, [r7, 0x10]                        |     var_10h = r3;
                                                         |     if (sb == r8) {
    0x00067452 beq 0x67464                               |         goto label_2;
                                                         |     }
                                                         |     do {
    0x00067454 ldr r0, [sb], 4                           |         r0 = *(sb);
                                                         |         sb += 4;
                                                         |         if (r0 == 0) {
    0x00067458 cbz r0, 0x67464                           |             goto label_2;
                                                         |         }
    0x0006745a blx 0x8f38                                |         fcn_00008f38 ();
    0x0006745e cmp sb, r8                                |         
    0x00067460 add r4, r0                                |         r4 += r0;
    0x00067462 bne 0x67454                               |         
                                                         |     } while (sb != r8);
                                                         | label_2:
    0x00067464 adds r4, 1                                |     r4++;
    0x00067466 cmp.w r4, 0x400000                        |     
                                                         |     if (r4 > 0x400000) {
    0x0006746a bhi 0x674f2                               |         goto label_3;
                                                         |     }
    0x0006746c cmp r4, 1                                 |     
    0x0006746e ldr r1, [pc, 0xa8]                        |     
    0x00067470 it lo                                     |     
                                                         |     if (r4 >= 1) {
    0x00067472 movlo r4, 1                               |         r4 = 1;
                                                         |     }
    0x00067474 adds r4, 7                                |     r4 += 7;
    0x00067476 bic r4, r4, 7                             |     r4 = BIT_MASK (r4, 7);
    0x0006747a add r1, pc                                |     r1 = 0xce998;
    0x0006747c sub.w sp, sp, r4                          |     
    0x00067480 mov r4, sp                                |     r4 = sp;
    0x00067482 mov r0, r4                                |     r0 = r4;
                                                         |     do {
    0x00067484 blx 0x8c38                                |         fcn_00008c38 ();
    0x00067488 cmp r5, r8                                |         
                                                         |         if (r5 == r8) {
    0x0006748a beq 0x67494                               |             goto label_4;
                                                         |         }
    0x0006748c ldr r1, [r5], 4                           |         r1 = *(r5);
                                                         |         r5 += 4;
    0x00067490 cmp r1, 0                                 |         
    0x00067492 bne 0x67484                               |         
                                                         |     } while (r1 != 0);
                                                         | label_4:
    0x00067494 subs r2, r6, 0                            |     r2 = r6 - 0;
    0x00067496 mov.w r3, 0x100                           |     r3 = 0x100;
    0x0006749a it ne                                     |     
                                                         |     if (r2 == r6) {
    0x0006749c movne r2, 1                               |         r2 = 1;
                                                         |     }
    0x0006749e mov r1, r4                                |     r1 = r4;
    0x000674a0 lsls r2, r2, 1                            |     r2 <<= 1;
    0x000674a2 mvn r0, 0x63                              |     r0 = ~0x63;
    0x000674a6 blx 0x93b0                                |     r0 = fcn_000093b0 ();
    0x000674aa cmp r0, 0                                 |     
    0x000674ac blt 0x674cc                               |     
                                                         |     while (r0 <= 0) {
    0x000674ae movs r0, 0                                |         r0 = 0;
                                                         | label_0:
    0x000674b0 ldr r2, [pc, 0x68]                        |         
    0x000674b2 ldr r3, [pc, 0x5c]                        |         r3 = *(0x67512);
    0x000674b4 add r2, pc                                |         r2 = 0xce9d4;
    0x000674b6 ldr r3, [r2, r3]                          |         r3 = *(0xce9d4);
    0x000674b8 ldr r2, [r3]                              |         r2 = *(0xce9d4);
    0x000674ba ldr r3, [r7, 0x14]                        |         r3 = var_14h;
    0x000674bc eors r2, r3                               |         r2 ^= r3;
    0x000674be mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x000674c2 bne 0x67508                               |             goto label_5;
                                                         |         }
    0x000674c4 adds r7, 0x1c                             |         r7 += 0x1c;
    0x000674c6 mov sp, r7                                |         
    0x000674c8 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
    0x000674cc blx 0x9628                                |         r0 = fcn_00009628 ();
    0x000674d0 ldr r0, [r0]                              |         r0 = *(r0);
    0x000674d2 cmp r0, 0                                 |         
    0x000674d4 it gt                                     |         
                                                         |         if (r0 > 0) {
    0x000674d6 rsbgt r0, r0, 0                           |             __asm ("rsbgt r0, r0, 0");
                                                         |         }
    0x000674d8 ble 0x674ae                               |         
                                                         |     }
    0x000674da b 0x674b0                                 |     goto label_0;
                                                         | label_1:
    0x000674dc ldr r1, [pc, 0x40]                        |     
    0x000674de movw r2, 0x215                            |     r2 = 0x215;
    0x000674e2 ldr r3, [pc, 0x40]                        |     
    0x000674e4 ldr r0, [pc, 0x40]                        |     
    0x000674e6 add r1, pc                                |     r1 = 0xcea0a;
    0x000674e8 add r3, pc                                |     r3 = 0xcea12;
    0x000674ea adds r1, 7                                |     r1 += 7;
    0x000674ec add r0, pc                                |     r0 = 0xcea18;
    0x000674ee bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
                                                         | label_3:
    0x000674f2 ldr r1, [pc, 0x38]                        |     
    0x000674f4 movw r2, 0x21d                            |     r2 = 0x21d;
    0x000674f8 ldr r3, [pc, 0x34]                        |     
    0x000674fa ldr r0, [pc, 0x38]                        |     
    0x000674fc add r1, pc                                |     r1 = 0xcea2e;
    0x000674fe add r3, pc                                |     r3 = 0xcea32;
    0x00067500 adds r1, 7                                |     r1 += 7;
    0x00067502 add r0, pc                                |     r0 = 0xcea3c;
    0x00067504 bl 0x71518                                |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                         | label_5:
    0x00067508 blx 0x927c                                |     fprintf_chk ()
    0x0006750c asrs r6, r5, 0x1a                         |     r6 = r5 >> 0x1a;
    0x0006750e movs r6, r0                               |     r6 = r0;
    0x00067510 lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x00067512 movs r0, r0                               |     
    0x00067514 push {r1, r2, r3, r4}                     |     
    0x00067516 movs r3, r0                               |     r3 = r0;
    0x00067518 add sp, 0xe8                              |     
    0x0006751a movs r3, r0                               |     r3 = r0;
    0x0006751c asrs r0, r2, 0x18                         |     r0 = r2 >> 0x18;
    0x0006751e movs r6, r0                               |     r6 = r0;
    0x00067520 add r6, sp, 0x298                         |     r6 += arg_298h;
    0x00067522 movs r3, r0                               |     r3 = r0;
    0x00067524 push {r2, r3, r4, r5, lr}                 |     
    0x00067526 movs r3, r0                               |     r3 = r0;
                                                         |     if (r4 == 0) {
    0x00067528 cbz r4, 0x67572                           |         void (*0x67572)() ();
                                                         |     }
    0x0006752a movs r3, r0                               |     r3 = r0;
    0x0006752c add r6, sp, 0x240                         |     r6 += arg_240h;
    0x0006752e movs r3, r0                               |     r3 = r0;
    0x00067530 push {r1, r2, r5, lr}                     |     
    0x00067532 movs r3, r0                               |     r3 = r0;
    0x00067534 lsls r6, r3, 3                            |     r6 = r3 << 3;
    0x00067536 movs r2, r0                               |     r2 = r0;
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x67560 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00067560 ()                                      | void fcn_00067560 (int16_t arg_1f8h, int16_t arg_250h, uint32_t arg1, uint32_t arg2) {
                                                                 |     uint32_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00067560 ldr r2, [pc, 0xbc]                                |     
    0x00067562 ldr r3, [pc, 0xc0]                                |     r3 = *(0x67626);
    0x00067564 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00067568 sub sp, 0x14                                      |     
    0x0006756a add r2, pc                                        |     r2 = 0xceb8e;
    0x0006756c str r0, [sp, 4]                                   |     var_4h = r0;
    0x0006756e ldr r3, [r2, r3]                                  |     
    0x00067570 ldr r3, [r3]                                      |     r3 = *(0xceb8e);
    0x00067572 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00067574 mov.w r3, 0                                       |     r3 = 0;
    0x00067578 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0006757a beq 0x675ee                                       |         goto label_0;
                                                                 |     }
    0x0006757c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006757e beq 0x67604                                       |         goto label_1;
                                                                 |     }
    0x00067580 movs r4, 0                                        |     r4 = 0;
    0x00067582 mov sb, r1                                        |     sb = r1;
    0x00067584 add r7, sp, 8                                     |     r7 += var_8h;
    0x00067586 add r6, sp, 4                                     |     r6 += var_4h;
    0x00067588 mov r5, r4                                        |     r5 = r4;
    0x0006758a mov.w r8, 1                                       |     r8 = 1;
    0x0006758e b 0x675ae                                         |     
                                                                 |     while (sl >= var_4h) {
    0x00067590 ldr.w fp, [sp, 8]                                 |         fp = var_8h;
    0x00067594 mov r0, fp                                        |         r0 = fp;
                                                                 |         if (r4 == 0) {
    0x00067596 beq 0x675e4                                       |             goto label_2;
                                                                 |         }
    0x00067598 bl 0x67550                                        |         r0 = fcn_00067550 (r0);
    0x0006759c cmp r0, 0                                         |         
    0x0006759e itett ge                                          |         
                                                                 |         if (r0 < 0) {
    0x000675a0 lslge r3, r8, r0                                  |             r3 = r8 << r0;
                                                                 |         }
                                                                 |         if (r0 < 0) {
    0x000675a4 movge r0, fp                                      |             r0 = fp;
                                                                 |         }
                                                                 |         if (r0 < 0) {
    0x000675a6 movge r0, fp                                      |             r0 = fp;
                                                                 |         }
                                                                 |         if (r0 >= 0) {
    0x000675a8 orrs r4, r3                                       |             r4 |= r3;
                                                                 |         }
    0x000675aa blx 0x8dac                                        |         fcn_00008dac ();
    0x000675ae movs r3, 0                                        |         r3 = 0;
    0x000675b0 mov r1, r7                                        |         r1 = r7;
    0x000675b2 mov r2, r3                                        |         r2 = r3;
    0x000675b4 mov r0, r6                                        |         r0 = r6;
    0x000675b6 str r5, [sp, 8]                                   |         var_8h = r5;
    0x000675b8 bl 0x695ac                                        |         fcn_000695ac (r0, r1, r2, r3);
    0x000675bc subs.w sl, r0, 0                                  |         sl -= var_4h;
    0x000675c0 bge 0x67590                                       |         
                                                                 |     }
    0x000675c2 ldr r0, [sp, 8]                                   |     r0 = var_8h;
    0x000675c4 blx 0x8dac                                        |     fcn_00008dac ();
                                                                 |     do {
    0x000675c8 ldr r2, [pc, 0x5c]                                |         
    0x000675ca ldr r3, [pc, 0x58]                                |         r3 = *(0x67626);
    0x000675cc add r2, pc                                        |         r2 = 0xcebf8;
    0x000675ce ldr r3, [r2, r3]                                  |         r3 = *(0xcebf8);
    0x000675d0 ldr r2, [r3]                                      |         r2 = *(0xcebf8);
    0x000675d2 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x000675d4 eors r2, r3                                       |         r2 ^= r3;
    0x000675d6 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000675da bne 0x6761a                                       |             goto label_3;
                                                                 |         }
    0x000675dc mov r0, sl                                        |         r0 = sl;
    0x000675de add sp, 0x14                                      |         
    0x000675e0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_2:
    0x000675e4 blx 0x8dac                                        |         fcn_00008dac ();
    0x000675e8 str.w r4, [sb]                                    |         __asm ("str.w r4, [sb]");
    0x000675ea ands r0, r0                                       |         r0 &= r0;
    0x000675ec b 0x675c8                                         |         
                                                                 |     } while (1);
                                                                 | label_0:
    0x000675ee ldr r1, [pc, 0x3c]                                |     
    0x000675f0 movw r2, 0x747                                    |     r2 = 0x747;
    0x000675f4 ldr r3, [pc, 0x38]                                |     
    0x000675f6 ldr r0, [pc, 0x3c]                                |     
    0x000675f8 add r1, pc                                        |     r1 = 0xcec2a;
    0x000675fa add r3, pc                                        |     r3 = 0xcec2e;
    0x000675fc adds r1, 7                                        |     r1 += 7;
    0x000675fe add r0, pc                                        |     r0 = 0xcec38;
    0x00067600 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_1:
    0x00067604 ldr r1, [pc, 0x30]                                |     
    0x00067606 mov.w r2, 0x748                                   |     r2 = 0x748;
    0x0006760a ldr r3, [pc, 0x30]                                |     
    0x0006760c ldr r0, [pc, 0x30]                                |     
    0x0006760e add r1, pc                                        |     r1 = 0xcec4a;
    0x00067610 add r3, pc                                        |     r3 = 0xcec52;
    0x00067612 adds r1, 7                                        |     r1 += 7;
    0x00067614 add r0, pc                                        |     r0 = 0xcec58;
    0x00067616 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
    0x00067618 invalid                                           |     
                                                                 | label_3:
    0x0006761a blx 0x927c                                        |     fprintf_chk ()
    0x0006761e nop                                               |     
    0x00067620 asrs r2, r3, 0x15                                 |     r2 = r3 >> 0x15;
    0x00067622 movs r6, r0                                       |     r6 = r0;
    0x00067624 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x00067626 movs r0, r0                                       |     
    0x00067628 asrs r0, r7, 0x13                                 |     r0 = r7 >> 0x13;
    0x0006762a movs r6, r0                                       |     r6 = r0;
    0x0006762c add r5, sp, 0x250                                 |     r5 += arg_250h;
    0x0006762e movs r3, r0                                       |     r3 = r0;
    0x00067630 push {r1, r2, r4}                                 |     
    0x00067632 movs r3, r0                                       |     r3 = r0;
    0x00067634 ldm r6!, {r1, r2, r4, r5}                         |     r1 = *(r6!);
                                                                 |     r2 = *((r6! + 4));
                                                                 |     r4 = *((r6! + 8));
                                                                 |     r5 = *((r6! + 12));
    0x00067636 movs r1, r0                                       |     r1 = r0;
    0x00067638 add r5, sp, 0x1f8                                 |     r5 += arg_1f8h;
    0x0006763a movs r3, r0                                       |     r3 = r0;
    0x0006763c invalid                                           |     
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x67644 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00067644 ()                          | void fcn_00067644 (int16_t arg1, int16_t arg2) {
                                                     |     int16_t var_0h;
                                                     |     int16_t var_4h;
                                                     |     int16_t var_0h_2;
                                                     |     int16_t var_4h_2;
                                                     |     int16_t var_8h;
                                                     |     int16_t var_ch;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     | label_1:
    0x00067644 blmi 0xd79f18                         |     __asm ("blmi aav.0x00061476");
    0x00067648 push.w {r4, r5, r6, r7, r8, lr}       |     
    0x0006764c sub sp, 0x10                          |     
    0x0006764e add r2, pc                            |     r2 += pc;
    0x00067650 mov r7, r0                            |     r7 = r0;
    0x00067652 mov r8, r1                            |     r8 = r1;
    0x00067654 ldr r3, [r2, r3]                      |     r3 = *((r2 + r3));
    0x00067656 ldr r3, [r3]                          |     r3 = *(r3);
    0x00067658 str r3, [sp, 0xc]                     |     var_ch = r3;
    0x0006765a mov.w r3, 0                           |     r3 = 0;
    0x0006765e bl 0x66e7c                            |     r0 = fcn_00066e7c ();
    0x00067662 subs r4, r0, 0                        |     r4 = r0 - 0;
                                                     |     if (r4 < r0) {
    0x00067664 blt 0x6769e                           |         goto label_0;
                                                     |     }
    0x00067666 itt eq                                |     
                                                     |     if (r4 != r0) {
    0x00067668 moveq r6, 1                           |         r6 = 1;
                                                     |     }
                                                     |     if (r4 != r0) {
    0x0006766a streq r4, [sp]                        |         *(sp) = r4;
                                                     |     }
                                                     |     if (r4 != r0) {
    0x0006766c bne 0x676ba                           |         goto label_2;
                                                     |     }
                                                     |     do {
    0x0006766e lsl.w r5, r6, r4                      |         r5 = r6 << r4;
    0x00067672 bics r3, r5, 0xf3                     |         __asm ("bics r3, r5, 0xf3");
                                                     |         if (r4 == r0) {
    0x00067676 bne 0x67690                           |             
    0x00067678 mov r0, r4                            |             r0 = r4;
    0x0006767a bl 0x67538                            |             fcn_00067538 (r0);
    0x0006767c vmax.u16 d20, d13, d1                 |             __asm ("vmax.u16 d20, d13, d1");
    0x00067680 mov r0, r7                            |             r0 = r7;
    0x00067682 bl 0x6740c                            |             r0 = fcn_0006740c (r0, r1, r2, r3);
    0x00067686 cmp r0, 0                             |             
    0x00067688 ittt ge                               |             
                                                     |             if (r0 < 0) {
    0x0006768a ldrge r3, [sp]                        |                 r3 = *(sp);
                                                     |             }
                                                     |             if (r0 < 0) {
    0x0006768c orrge r3, r5                          |                 r3 |= r5;
                                                     |             }
                                                     |             if (r0 >= 0) {
    0x0006768e strge r3, [sp]                        |                 *(sp) = r3;
                                                     |                 goto label_3;
                                                     |             }
                                                     |         }
                                                     | label_3:
    0x00067690 adds r4, 1                            |         r4++;
    0x00067692 cmp r4, 0xc                           |         
    0x00067694 bne 0x6766e                           |         
                                                     |     } while (r4 != 0xc);
                                                     |     do {
    0x00067696 ldr r3, [sp]                          |         r3 = *(sp);
    0x00067698 movs r4, 0                            |         r4 = 0;
    0x0006769a str.w r3, [r8]                        |         __asm ("str.w r3, [r8]");
                                                     | label_0:
    0x0006769e ldr r2, [pc, 0x7c]                    |         
    0x000676a0 ldr r3, [pc, 0x74]                    |         r3 = *(0x67718);
    0x000676a2 add r2, pc                            |         r2 = 0xcedc4;
    0x000676a4 ldr r3, [r2, r3]                      |         r3 = *(0xcedc4);
    0x000676a6 ldr r2, [r3]                          |         r2 = *(0xcedc4);
    0x000676a8 ldr r3, [sp, 0xc]                     |         r3 = var_ch;
    0x000676aa eors r2, r3                           |         r2 ^= r3;
    0x000676ac mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x000676b0 bne 0x67710                           |             goto label_4;
                                                     |         }
    0x000676b2 mov r0, r4                            |         r0 = r4;
    0x000676b4 add sp, 0x10                          |         
    0x000676b6 pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_2:
    0x000676ba ldr r2, [pc, 0x64]                    |         
    0x000676bc movs r4, 0                            |         r4 = 0;
    0x000676be ldr r0, [pc, 0x64]                    |         
    0x000676c0 add r3, sp, 8                         |         r3 += var_8h;
    0x000676c2 mov r1, r7                            |         r1 = r7;
    0x000676c4 strd r4, r4, [sp, 4]                  |         __asm ("strd r4, r4, [sp, 4]");
    0x000676c8 add r2, pc                            |         r2 = 0xcedee;
    0x000676ca add r0, pc                            |         r0 = 0xcedf4;
    0x000676cc bl 0x66f2c                            |         r0 = fcn_00066f2c (r0, r1, r2, r3);
    0x000676d0 subs r4, r0, 0                        |         r4 = r0 - 0;
                                                     |         if (r4 < r0) {
    0x000676d2 blt 0x67702                           |             goto label_5;
                                                     |         }
    0x000676d4 ldr r0, [sp, 8]                       |         r0 = var_8h;
    0x000676d6 add r1, sp, 4                         |         r1 += var_4h_2;
    0x000676d8 bl 0x6b320                            |         r0 = fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x000676dc subs r4, r0, 0                        |         r4 = r0 - 0;
                                                     |         if (r4 < r0) {
    0x000676de blt 0x67702                           |             goto label_5;
                                                     |         }
    0x000676e0 ldr r0, [sp, 4]                       |         r0 = var_4h_2;
    0x000676e2 mov r1, sp                            |         r1 = sp;
    0x000676e4 bl 0x67560                            |         fcn_00067560 (r0, r1, r2, r3);
    0x000676e6 invalid                               |         
                                                     |         if (r4 < r0) {
    0x000676ea blt 0x67702                           |             goto label_5;
                                                     |         }
    0x000676ec ldr r3, [sp]                          |         r3 = *(sp);
    0x000676ee ldr r0, [sp, 8]                       |         r0 = var_8h;
    0x000676f0 and r3, r3, 0xad                      |         r3 &= 0xad;
    0x000676f4 str r3, [sp]                          |         *(sp) = r3;
    0x000676f6 blx 0x8dac                            |         fcn_00008dac ();
    0x000676fa ldr r0, [sp, 4]                       |         r0 = var_4h_2;
    0x000676fc blx 0x8dac                            |         fcn_00008dac ();
    0x00067700 b 0x67696                             |         
                                                     |     } while (1);
                                                     | label_5:
    0x00067702 ldr r0, [sp, 8]                       |     r0 = var_8h;
    0x00067704 blx 0x8dac                            |     fcn_00008dac ();
    0x00067708 ldr r0, [sp, 4]                       |     r0 = var_4h_2;
    0x0006770a blx 0x8dac                            |     fcn_00008dac ();
    0x0006770e b 0x6769e                             |     goto label_0;
                                                     | label_4:
    0x00067710 blx 0x927c                            |     fprintf_chk ()
    0x00067714 asrs r6, r6, 0x11                     |     r6 >>= 0x11;
    0x00067716 movs r6, r0                           |     r6 = r0;
    0x00067718 lsls r0, r0, 0x13                     |     r0 <<= 0x13;
    0x0006771a movs r0, r0                           |     
    0x0006771c asrs r2, r4, 0x10                     |     r2 = r4 >> 0x10;
    0x0006771e movs r6, r0                           |     r6 = r0;
                                                     |     if (r0 == 0) {
    0x00067720 cbz r0, 0x6774c                       |         void (*0x6774c)() ();
                                                     |     }
    0x00067722 movs r3, r0                           |     r3 = r0;
                                                     |     if (r3 == r0) {
    0x00067724 beq 0x67644                           |         goto label_1;
                                                     |     }
    0x00067726 movs r1, r0                           |     r1 = r0;
                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x67728 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00067728 ()                  | void fcn_00067728 (int16_t arg1) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     r0 = arg1;
    0x00067728 ldr r1, [pc, 0x50]            |     
    0x0006772a movs r3, 0                    |     r3 = 0;
    0x0006772c ldr r2, [pc, 0x50]            |     r2 = *(0x67780);
    0x0006772e push {r4, r5, lr}             |     
    0x00067730 sub sp, 0xc                   |     
    0x00067732 add r1, pc                    |     r1 = 0xceeb2;
    0x00067734 mov r5, r0                    |     r5 = r0;
    0x00067736 mov r0, sp                    |     r0 = sp;
    0x00067738 ldr r2, [r1, r2]              |     
    0x0006773a ldr r2, [r2]                  |     r2 = *(0xceeb2);
    0x0006773c str r2, [sp, 4]               |     var_4h = r2;
    0x0006773e mov.w r2, 0                   |     r2 = 0;
    0x00067742 str r3, [sp]                  |     *(sp) = r3;
    0x00067744 bl 0x66b34                    |     fcn_00066b34 (r0);
    0x00067748 subs r4, r0, 0                |     r4 -= var_0h;
                                             |     if (r4 >= var_0h) {
    0x0006774a blt 0x67756                   |         
    0x0006774c ldr r0, [sp]                  |         r0 = *(sp);
    0x0006774e mov r1, r5                    |         r1 = r5;
    0x00067750 bl 0x67644                    |         r0 = fcn_00067644 (r0, r1);
    0x00067754 mov r4, r0                    |         r4 = r0;
                                             |     }
    0x00067756 ldr r0, [sp]                  |     r0 = *(sp);
    0x00067758 blx 0x8dac                    |     fcn_00008dac ();
    0x0006775c ldr r2, [pc, 0x24]            |     
    0x0006775e ldr r3, [pc, 0x20]            |     r3 = *(0x67782);
    0x00067760 add r2, pc                    |     r2 = 0xceee8;
    0x00067762 ldr r3, [r2, r3]              |     r3 = *(0xceee8);
    0x00067764 ldr r2, [r3]                  |     r2 = *(0xceee8);
    0x00067766 ldr r3, [sp, 4]               |     r3 = var_4h;
    0x00067768 eors r2, r3                   |     r2 ^= r3;
    0x0006776a mov.w r3, 0                   |     r3 = 0;
                                             |     if (r2 == r3) {
    0x0006776e bne 0x67776                   |         
    0x00067770 mov r0, r4                    |         r0 = r4;
    0x00067772 add sp, 0xc                   |         
    0x00067774 pop {r4, r5, pc}              |         
                                             |     }
    0x00067776 blx 0x927c                    |     fprintf_chk ()
    0x0006777a nop                           |     
    0x0006777c asrs r2, r2, 0xe              |     r2 >>= 0xe;
    0x0006777e movs r6, r0                   |     r6 = r0;
    0x00067780 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00067782 movs r0, r0                   |     
    0x00067784 asrs r4, r4, 0xd              |     r4 >>= 0xd;
    0x00067786 movs r6, r0                   |     r6 = r0;
    0x00067788 push {r3, r4, r5, lr}         |     
    0x0006778a mov r5, r1                    |     r5 = r1;
    0x0006778c ldr r0, [r0]                  |     r0 = *(r0);
    0x0006778e blx 0x9634                    |     fcn_00009634 ();
    0x00067790 vmax.s16 d20, d2, d4          |     __asm ("vmax.s16 d20, d2, d4");
    0x00067794 ldr r0, [r5]                  |     r0 = *(r5);
    0x00067796 blx 0x9634                    |     r0 = fcn_00009634 ();
    0x0006779a mov r1, r0                    |     r1 = r0;
    0x0006779c mov r0, r4                    |     r0 = r4;
    0x0006779e pop.w {r3, r4, r5, lr}        |     
    0x000677a2 b.w 0x95dc                    |     return void (*0x95dc)() ();
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x677a8 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.000677a8 ()                                      | void fcn_000677a8 (int16_t arg_1h, int16_t arg_218h, int16_t arg_340h_2, int16_t arg_140h, int16_t arg_270h, int16_t arg_228h, int16_t arg_338h_2, int16_t arg_198h, int16_t arg_200h, int16_t arg_340h, int16_t arg_388h_2, int16_t arg_338h, int16_t arg_360h, int16_t arg_388h, int16_t arg_3d8h, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_1ch_2;
                                                                 |     int16_t var_48h_2;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_158h_2;
                                                                 |     int16_t var_218h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int8_t var_1h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_0h_3;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int32_t var_4h_2;
                                                                 |     int32_t var_8h_2;
                                                                 |     int32_t var_ch_2;
                                                                 |     int32_t var_10h_2;
                                                                 |     int32_t var_14h;
                                                                 |     int16_t var_158h;
                                                                 |     int32_t var_1ch_3;
                                                                 |     int16_t var_20h;
                                                                 |     int32_t var_30h;
                                                                 |     int32_t var_8ch;
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_c0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x000677a8 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x000677ac mov r6, r2                                        |     r6 = r2;
    0x000677ae ldr.w r2, [pc, 0x4cc]                             |     
    0x000677b2 mov r4, r3                                        |     r4 = r3;
    0x000677b4 sub sp, 0xa4                                      |     
    0x000677b6 ldr.w r3, [pc, 0x4c8]                             |     r3 = *(0x67c82);
    0x000677ba add r7, sp, 0x10                                  |     r7 += var_10h;
    0x000677bc add r2, pc                                        |     r2 = 0xcf43e;
    0x000677be str r1, [r7, 0x1c]                                |     var_1ch_3 = r1;
    0x000677c0 ldrd r8, r5, [r7, 0xb8]                           |     __asm ("ldrd r8, r5, [r7, 0xb8]");
    0x000677c4 ldr r3, [r2, r3]                                  |     
    0x000677c6 ldr r3, [r3]                                      |     r3 = *(0xcf43e);
    0x000677c8 str.w r3, [r7, 0x8c]                              |     __asm ("str.w r3, [var_8ch]");
    0x000677ca adds r0, 0x8c                                     |     r0 += 0x8c;
    0x000677cc mov.w r3, 0                                       |     r3 = 0;
    0x000677d0 ldr.w r3, [pc, 0x4b0]                             |     
    0x000677d4 add r3, pc                                        |     r3 = 0xcf45c;
    0x000677d6 str r3, [r7, 0x14]                                |     var_14h = r3;
    0x000677d8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000677da beq.w 0x67bba                                     |         goto label_11;
                                                                 |     }
    0x000677de ands r3, r8, 0x10                                 |     r3 = r8 & 0x10;
    0x000677e2 mov sl, r0                                        |     sl = r0;
    0x000677e4 str r3, [r7, 0x10]                                |     var_10h_2 = r3;
                                                                 |     if (r3 != r8) {
    0x000677e6 bne.w 0x67b44                                     |         goto label_12;
                                                                 |     }
                                                                 | label_7:
    0x000677ea cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x000677ec beq.w 0x67bce                                     |         goto label_13;
                                                                 |     }
    0x000677ee strh r7, [r5, 0xe]                                |     *((r5 + 0xe)) = r7;
    0x000677f0 ldrb.w sb, [r5]                                   |     sb = *(r5);
    0x000677f4 cmp.w sb, 0x2f                                    |     
                                                                 |     if (sb != 0x2f) {
    0x000677f8 bne 0x67806                                       |         goto label_14;
                                                                 |     }
    0x000677fa mov r2, r5                                        |     r2 = r5;
                                                                 |     do {
    0x000677fc mov r5, r2                                        |         r5 = r2;
    0x000677fe ldrb r3, [r2, 1]!                                 |         r3 = *((r2 += 1));
    0x00067802 cmp r3, 0x2f                                      |         
    0x00067804 beq 0x677fc                                       |         
                                                                 |     } while (r3 == 0x2f);
                                                                 |     if (r4 != 0) {
                                                                 | label_14:
    0x00067806 cbz r4, 0x67810                                   |         
    0x00067808 ldrb r3, [r4]                                     |         r3 = *(r4);
    0x0006780a cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0006780c bne.w 0x67936                                     |             goto label_15;
                                                                 |         }
    0x0006780e strh r3, [r2, 4]                                  |         *((r2 + 4)) = r3;
                                                                 |     }
    0x00067810 mov r0, r5                                        |     r0 = r5;
    0x00067812 blx 0x8a68                                        |     r0 = fcn_00008a68 ();
    0x00067816 mov sb, r0                                        |     sb = r0;
    0x00067818 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006781a beq.w 0x679aa                                     |         goto label_16;
                                                                 |     }
                                                                 | label_0:
    0x0006781e bl 0x67ee4                                        |     r0 = fcn_00067ee4 (r0, r1, r2);
    0x00067822 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00067824 beq 0x678fa                                       |         goto label_17;
                                                                 |     }
    0x00067826 ldr.w r3, [pc, 0x460]                             |     
    0x0006782a str r5, [r7, 0x18]                                |     var_158h = r5;
    0x0006782c ldr r5, [r7, 0x10]                                |     r5 = var_10h_2;
    0x0006782e add r3, pc                                        |     r3 = 0xcf4bc;
    0x00067830 adds r3, 7                                        |     r3 += 7;
    0x00067832 str r3, [r7, 8]                                   |     var_8h_2 = r3;
    0x00067834 ldr.w r3, [pc, 0x454]                             |     
    0x00067838 add r3, pc                                        |     r3 = 0xcf4c8;
    0x0006783a adds r3, 7                                        |     r3 += 7;
    0x0006783c str r3, [r7, 0xc]                                 |     var_ch_2 = r3;
    0x0006783e ldr.w r3, [pc, 0x450]                             |     
    0x00067842 add r3, pc                                        |     r3 = 0xcf4d8;
    0x00067844 str r3, [r7, 4]                                   |     var_4h_2 = r3;
    0x00067846 ldr.w r3, [pc, 0x44c]                             |     
    0x00067848 adds r4, 0x4c                                     |     r4 += 0x4c;
    0x0006784a add r3, pc                                        |     r3 = 0xcf4e4;
    0x0006784c str r3, [r7]                                      |     *(r7) = r3;
                                                                 |     do {
    0x0006784e add.w r4, r0, 0x13                                |         r4 = r0 + 0x13;
    0x00067852 mov r0, r4                                        |         r0 = r4;
    0x00067854 bl 0x75b88                                        |         r0 = fcn_00075b88 (r0);
    0x00067858 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0006785a bne 0x678f0                                       |             
                                                                 |             if (r6 != 0) {
    0x0006785c cbz r6, 0x6786a                                   |                 
    0x0006785e mov r1, r6                                        |                 r1 = r6;
    0x00067860 mov r0, r4                                        |                 r0 = r4;
    0x00067862 bl 0x80428                                        |                 r0 = fcn_00080428 (r0, r1);
    0x00067866 cmp r0, 0                                         |                 
                                                                 |                 if (r0 == 0) {
    0x00067868 beq 0x678f0                                       |                     goto label_2;
                                                                 |                 }
                                                                 |             }
    0x0006786a mov r1, r4                                        |             r1 = r4;
    0x0006786c mov r0, sl                                        |             r0 = sl;
    0x0006786e bl 0x6ec28                                        |             r0 = fcn_0006ec28 (r0, r1);
    0x00067872 mov fp, r0                                        |             
    0x00067874 cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x00067876 bne.w 0x67a06                                     |                 goto label_18;
                                                                 |             }
    0x0006787a cmp r5, 0                                         |             
                                                                 |             if (r5 != 0) {
    0x0006787c bne.w 0x67a34                                     |                 goto label_19;
                                                                 |             }
    0x0006787e strh r2, [r3, 6]                                  |             *((r3 + 6)) = r2;
    0x00067880 tst.w r8, 0x17                                    |             
                                                                 |             if ((r8 & 0x17) != 0) {
    0x00067884 bne.w 0x67aa8                                     |                 goto label_20;
                                                                 |             }
                                                                 | label_3:
    0x00067888 tst.w r8, 6                                       |             
                                                                 |             if ((r8 & 6) != 0) {
    0x0006788c beq 0x678b6                                       |                 
    0x0006788e tst.w r8, 4                                       |                 
                                                                 |                 if ((r8 & 4) != 0) {
    0x00067892 beq 0x678a0                                       |                     
    0x00067894 ldr r3, [r7, 0x30]                                |                     r3 = var_30h;
    0x00067896 and r3, r3, 0xf000                                |                     r3 &= 0xf000;
    0x0006789a cmp.w r3, 0x4000                                  |                     
                                                                 |                     if (r3 == 0x4000) {
    0x0006789e beq 0x678b6                                       |                         goto label_21;
                                                                 |                     }
                                                                 |                 }
    0x000678a0 tst.w r8, 2                                       |                 
                                                                 |                 if ((r8 & 2) == 0) {
    0x000678a4 beq.w 0x679de                                     |                     goto label_22;
                                                                 |                 }
    0x000678a8 ldr r3, [r7, 0x30]                                |                 r3 = var_30h;
    0x000678aa and r3, r3, 0xf000                                |                 r3 &= 0xf000;
    0x000678ae cmp.w r3, 0x8000                                  |                 
                                                                 |                 if (r3 != 0x8000) {
    0x000678b2 bne.w 0x679de                                     |                     goto label_22;
                                                                 |                 }
                                                                 |             }
                                                                 | label_21:
    0x000678b6 tst.w r8, 1                                       |             
                                                                 |             if ((r8 & 1) != 0) {
    0x000678ba beq 0x678c6                                       |                 
    0x000678bc ldr r1, [r7, 0x30]                                |                 r1 = var_30h;
    0x000678be ands fp, r1, 0x49                                 |                 
                                                                 |                 if (fp == r1) {
    0x000678c2 beq.w 0x67b94                                     |                     goto label_23;
                                                                 |                 }
                                                                 |             }
    0x000678c6 ands r0, r8, 8                                    |             r0 = r8 & 8;
                                                                 |             if (r0 == r8) {
    0x000678ca beq.w 0x67af6                                     |                 goto label_24;
                                                                 |             }
    0x000678ce mov r0, r4                                        |             r0 = r4;
    0x000678d0 blx 0x9200                                        |             r0 = fcn_00009200 ();
    0x000678d4 mov r4, r0                                        |             r4 = r0;
    0x000678d6 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000678d8 beq.w 0x67c52                                     |                 goto label_25;
                                                                 |             }
    0x000678dc mov r1, r0                                        |             r1 = r0;
                                                                 | label_5:
    0x000678de mov r2, r4                                        |             r2 = r4;
    0x000678e0 mov r0, sl                                        |             r0 = sl;
    0x000678e2 bl 0x6e910                                        |             fcn_0006e910 (r0, r1, r2, r3);
    0x000678e4 invalid                                           |             
                                                                 |             if (r0 < 0) {
    0x000678e8 blt.w 0x67c28                                     |                 goto label_26;
                                                                 |             }
                                                                 |             if (r0 == 0) {
    0x000678ec beq.w 0x67be2                                     |                 goto label_27;
                                                                 |             }
                                                                 |         }
                                                                 | label_2:
    0x000678f0 mov r0, sb                                        |         r0 = sb;
    0x000678f2 bl 0x67ee4                                        |         r0 = fcn_00067ee4 (r0, r1, r2);
    0x000678f6 cmp r0, 0                                         |         
    0x000678f8 bne 0x6784e                                       |         
                                                                 |     } while (r0 != 0);
                                                                 | label_17:
    0x000678fa blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x000678fe ldr r3, [r0]                                      |     r3 = *(r0);
    0x00067900 cmp r3, 0                                         |     
    0x00067902 it gt                                             |     
                                                                 |     if (r3 > 0) {
    0x00067904 rsbgt fp, r3, 0                                   |         __asm ("rsbgt fp, r3, 0");
                                                                 |     }
                                                                 |     if (r3 <= 0) {
    0x00067908 bgt 0x6790e                                       |         
    0x0006790a mov.w fp, 0                                       |         
                                                                 |     }
                                                                 | label_4:
    0x0006790e mov r0, sb                                        |     r0 = sb;
    0x00067910 blx 0x91a8                                        |     fcn_000091a8 ();
                                                                 | label_1:
    0x00067914 ldr r2, [pc, 0x380]                               |     
    0x00067916 ldr r3, [pc, 0x368]                               |     r3 = *(0x67c82);
    0x00067918 add r2, pc                                        |     r2 = 0xcf5b4;
    0x0006791a ldr r3, [r2, r3]                                  |     r3 = *(0xcf5b4);
    0x0006791c ldr r2, [r3]                                      |     r2 = *(0xcf5b4);
    0x0006791e ldr.w r3, [r7, 0x8c]                              |     r3 = var_8ch;
    0x00067922 eors r2, r3                                       |     r2 ^= r3;
    0x00067924 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00067928 bne.w 0x67c78                                     |         goto label_28;
                                                                 |     }
    0x0006792c mov r0, fp                                        |     r0 = fp;
    0x0006792e adds r7, 0x94                                     |     r7 += 0x94;
    0x00067930 mov sp, r7                                        |     
    0x00067932 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
    0x00067934 ldrh r0, [r6, 0x3e]                               |     r0 = *((r6 + 0x3e));
                                                                 | label_15:
    0x00067936 mov r0, r4                                        |     r0 = r4;
    0x00067938 blx 0x8f38                                        |     fcn_00008f38 ();
    0x0006793c str r0, [r7, 0x18]                                |     var_158h = r0;
    0x0006793e mov r0, r5                                        |     r0 = r5;
    0x00067940 blx 0x8f38                                        |     fcn_00008f38 ();
    0x00067944 ldr r3, [r7, 0x18]                                |     r3 = var_158h;
    0x00067946 mov fp, r0                                        |     
    0x00067948 adds r0, r3, r0                                   |     r0 = r3 + r0;
    0x0006794a adds r3, r0, 2                                    |     r3 = r0 + 2;
    0x0006794c cmp.w r3, 0x400000                                |     
                                                                 |     if (r3 > 0x400000) {
    0x00067950 bhi.w 0x67b80                                     |         goto label_29;
                                                                 |     }
    0x00067954 adds r0, 9                                        |     r0 += 9;
    0x00067956 mov r1, r4                                        |     r1 = r4;
    0x00067958 bic r0, r0, 7                                     |     r0 = BIT_MASK (r0, 7);
    0x0006795c sub.w sp, sp, r0                                  |     
    0x00067960 add r4, sp, 0x10                                  |     r4 += var_10h;
    0x00067962 mov r0, r4                                        |     r0 = r4;
    0x00067964 blx 0x8c38                                        |     r0 = fcn_00008c38 ();
    0x00067968 cmp r0, r4                                        |     
    0x0006796a mov r3, r0                                        |     r3 = r0;
                                                                 |     if (r0 > r4) {
    0x0006796c bhi 0x67976                                       |         goto label_30;
                                                                 |     }
    0x0006796e b 0x67982                                         |     goto label_6;
                                                                 |     do {
    0x00067970 cmp r3, r4                                        |         
                                                                 |         if (r3 == r4) {
    0x00067972 beq.w 0x67b12                                     |             goto label_31;
                                                                 |         }
                                                                 | label_30:
    0x00067976 ldrb r2, [r3, -0x1]                               |         r2 = *((r3 - 0x1));
    0x0006797a mov r0, r3                                        |         r0 = r3;
    0x0006797c subs r3, 1                                        |         r3--;
    0x0006797e cmp r2, 0x2f                                      |         
    0x00067980 beq 0x67970                                       |         
                                                                 |     } while (r2 == 0x2f);
                                                                 | label_6:
    0x00067982 cmp.w sb, 0x2f                                    |     
    0x00067986 mov r1, r5                                        |     r1 = r5;
    0x00067988 it ne                                             |     
                                                                 |     if (sb == 0x2f) {
    0x0006798a movne r3, 0x2f                                    |         r3 = 0x2f;
                                                                 |     }
    0x0006798c add.w r2, fp, 1                                   |     r2 += arg_1h;
    0x00067990 it ne                                             |     
                                                                 |     if (sb == 0x2f) {
    0x00067992 strbne r3, [r0], 1                                |         *(r0) = r3;
                                                                 |         r0++;
                                                                 |     }
    0x00067996 mov r5, r4                                        |     r5 = r4;
    0x00067998 blx 0x8f9c                                        |     fcn_00008f9c ();
    0x0006799c mov r0, r5                                        |     r0 = r5;
    0x0006799e blx 0x8a68                                        |     r0 = fcn_00008a68 ();
    0x000679a2 mov sb, r0                                        |     sb = r0;
    0x000679a4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000679a6 bne.w 0x6781e                                     |         goto label_0;
                                                                 |     }
                                                                 | label_16:
    0x000679aa blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x000679ae ldr r4, [r0]                                      |     r4 = *(r0);
    0x000679b0 cmp r4, 2                                         |     
    0x000679b2 it eq                                             |     
                                                                 |     if (r4 == 2) {
    0x000679b4 moveq fp, sb                                      |         goto label_32;
                                                                 |     }
                                                                 |     if (r4 == 2) {
                                                                 | label_32:
    0x000679b6 beq 0x67914                                       |         goto label_1;
                                                                 |     }
    0x000679b8 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x000679bc cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x000679be bgt.w 0x67b5e                                     |         goto label_33;
                                                                 |     }
    0x000679c2 eor.w fp, r4, r4, asr 31                          |     
    0x000679c6 sub.w fp, fp, r4, asr 31                          |     
    0x000679c8 ldrb r4, [r4, 0xf]                                |     r4 = *((r4 + 0xf));
    0x000679ca uxtb.w fp, fp                                     |     fp = (int8_t) fp;
    0x000679ce rsb.w fp, fp, 0                                   |     
                                                                 | label_8:
    0x000679d2 cmp.w fp, 0                                       |     
    0x000679d6 it ge                                             |     
                                                                 |     if (fp < 0) {
    0x000679d8 mvnge fp, 0x55                                    |         
                                                                 |     }
    0x000679dc b 0x67914                                         |     goto label_1;
                                                                 | label_22:
    0x000679de bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x000679e2 cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x000679e4 ble 0x678f0                                       |         goto label_2;
                                                                 |     }
    0x000679e6 ldr r3, [r7, 0x18]                                |     r3 = var_158h;
    0x000679e8 movs r1, 0                                        |     r1 = 0;
    0x000679ea ldr r2, [r7, 0xc]                                 |     r2 = var_ch_2;
    0x000679ec movs r0, 7                                        |     r0 = 7;
    0x000679ee str r4, [sp, 0xc]                                 |     var_ch = r4;
    0x000679f0 str r3, [sp, 8]                                   |     var_8h = r3;
    0x000679f2 ldr r3, [pc, 0x2a8]                               |     
    0x000679f4 add r3, pc                                        |     r3 = 0xcf696;
    0x000679f6 str r3, [sp, 4]                                   |     var_4h = r3;
    0x000679f8 ldr r3, [pc, 0x2a4]                               |     
    0x000679fa add r3, pc                                        |     r3 = 0xcf69e;
    0x000679fc str r3, [sp]                                      |     *(sp) = r3;
    0x000679fe movs r3, 0x5f                                     |     r3 = 0x5f;
    0x00067a00 bl 0x71448                                        |     fcn_00071448 ();
    0x00067a04 b 0x678f0                                         |     goto label_2;
                                                                 | label_18:
    0x00067a06 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x00067a0a cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x00067a0c ble.w 0x678f0                                     |         goto label_2;
                                                                 |     }
    0x00067a10 ldr r3, [r7, 0x18]                                |     r3 = var_158h;
    0x00067a12 movs r1, 0                                        |     r1 = 0;
    0x00067a14 ldr r2, [pc, 0x28c]                               |     
    0x00067a16 movs r0, 7                                        |     r0 = 7;
    0x00067a18 str r4, [sp, 0xc]                                 |     var_ch = r4;
    0x00067a1a str r3, [sp, 8]                                   |     var_8h = r3;
    0x00067a1c ldr r3, [pc, 0x288]                               |     
    0x00067a1e add r2, pc                                        |     r2 = 0xcf6c6;
    0x00067a20 adds r2, 7                                        |     r2 += 7;
    0x00067a22 add r3, pc                                        |     r3 = 0xcf6ce;
    0x00067a24 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00067a26 ldr r3, [pc, 0x284]                               |     
    0x00067a28 add r3, pc                                        |     r3 = 0xcf6da;
    0x00067a2a str r3, [sp]                                      |     *(sp) = r3;
    0x00067a2c movs r3, 0x3c                                     |     r3 = 0x3c;
    0x00067a2e bl 0x71448                                        |     fcn_00071448 ();
    0x00067a32 b 0x678f0                                         |     goto label_2;
                                                                 | label_19:
    0x00067a34 ldr r0, [r7, 0x1c]                                |     r0 = var_1ch_3;
    0x00067a36 mov r1, r4                                        |     r1 = r4;
    0x00067a38 bl 0x6ec28                                        |     r0 = fcn_0006ec28 (r0, r1);
    0x00067a3c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00067a3e bne 0x67b16                                       |         goto label_34;
                                                                 |     }
    0x00067a40 tst.w r8, 0x17                                    |     
    0x00067a44 it eq                                             |     
                                                                 |     if ((r8 & 0x17) != 0) {
    0x00067a46 addeq fp, r7, 0x20                                |         
                                                                 |     }
                                                                 |     if ((r8 & 0x17) != 0) {
    0x00067a4a bne.w 0x67bf6                                     |         goto label_35;
                                                                 |     }
                                                                 | label_9:
    0x00067a4e mov r0, fp                                        |     r0 = fp;
    0x00067a50 bl 0x79de4                                        |     r0 = fcn_00079de4 (r0);
    0x00067a54 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00067a56 beq.w 0x67888                                     |         goto label_3;
                                                                 |     }
    0x00067a5a ldr r3, [r7, 0x1c]                                |     r3 = var_1ch_3;
    0x00067a5c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00067a5e beq.w 0x67c14                                     |         goto label_36;
                                                                 |     }
    0x00067a62 ldr r2, [r7, 0x14]                                |     r2 = var_14h;
    0x00067a64 add.w r0, r7, 0x1c                                |     r0 += var_1ch_3;
    0x00067a68 ldr r3, [pc, 0x244]                               |     r3 = *(0x67cb0);
    0x00067a6a ldr r1, [r2, r3]                                  |     r1 = *((r2 + r3));
    0x00067a6c mov r2, r4                                        |     r2 = r4;
    0x00067a6e bl 0x6f25c                                        |     fcn_0006f25c (r0, r1);
    0x00067a72 subs.w fp, r0, 0                                  |     
                                                                 |     if (fp < var_1ch_3) {
    0x00067a76 blt.w 0x6790e                                     |         goto label_4;
                                                                 |     }
    0x00067a78 add r7, sp, 0x128                                 |     r7 = sp + 0x128;
    0x00067a7a bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x00067a7e cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x00067a80 ble.w 0x678f0                                     |         goto label_2;
                                                                 |     }
    0x00067a84 ldr r3, [r7, 0x18]                                |     r3 = var_158h;
    0x00067a86 movs r1, 0                                        |     r1 = 0;
    0x00067a88 ldr r2, [pc, 0x228]                               |     
    0x00067a8a movs r0, 7                                        |     r0 = 7;
    0x00067a8c str r4, [sp, 0xc]                                 |     var_ch = r4;
    0x00067a8e str r3, [sp, 8]                                   |     var_8h = r3;
    0x00067a90 ldr r3, [pc, 0x224]                               |     
    0x00067a92 add r2, pc                                        |     r2 = 0xcf74a;
    0x00067a94 adds r2, 7                                        |     r2 += 7;
    0x00067a96 add r3, pc                                        |     r3 = 0xcf752;
    0x00067a98 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00067a9a ldr r3, [pc, 0x220]                               |     
    0x00067a9c add r3, pc                                        |     r3 = 0xcf75e;
    0x00067a9e str r3, [sp]                                      |     *(sp) = r3;
    0x00067aa0 movs r3, 0x57                                     |     r3 = 0x57;
    0x00067aa2 bl 0x71448                                        |     fcn_00071448 ();
    0x00067aa6 b 0x678f0                                         |     goto label_2;
                                                                 | label_20:
    0x00067aa8 mov r0, sb                                        |     r0 = sb;
    0x00067aaa blx 0x9128                                        |     fcn_00009128 ();
    0x00067aae mov r3, r5                                        |     r3 = r5;
    0x00067ab0 add.w r2, r7, 0x20                                |     r2 += var_20h;
    0x00067ab4 mov r1, r4                                        |     r1 = r4;
    0x00067ab6 blx 0x9334                                        |     r0 = fcn_00009334 ();
    0x00067aba cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x00067abc bge.w 0x67888                                     |         goto label_3;
                                                                 |     }
                                                                 | label_10:
    0x00067ac0 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x00067ac4 ldr.w fp, [r0]                                    |     fp = *(r0);
    0x00067ac8 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x00067acc cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x00067ace ble.w 0x678f0                                     |         goto label_2;
                                                                 |     }
    0x00067ad2 ldr r3, [r7, 0x18]                                |     r3 = var_158h;
    0x00067ad4 mov r1, fp                                        |     r1 = fp;
    0x00067ad6 ldr r2, [pc, 0x1e8]                               |     
    0x00067ad8 movs r0, 7                                        |     r0 = 7;
    0x00067ada str r4, [sp, 0xc]                                 |     var_ch = r4;
    0x00067adc str r3, [sp, 8]                                   |     var_8h = r3;
    0x00067ade ldr r3, [pc, 0x1e4]                               |     
    0x00067ae0 add r2, pc                                        |     r2 = 0xcf7a6;
    0x00067ae2 adds r2, 7                                        |     r2 += 7;
    0x00067ae4 add r3, pc                                        |     r3 = 0xcf7ae;
    0x00067ae6 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00067ae8 ldr r3, [pc, 0x1dc]                               |     
    0x00067aea add r3, pc                                        |     r3 = 0xcf7b6;
    0x00067aec str r3, [sp]                                      |     *(sp) = r3;
    0x00067aee movs r3, 0x49                                     |     r3 = 0x49;
    0x00067af0 bl 0x71448                                        |     fcn_00071448 ();
    0x00067af4 b 0x678f0                                         |     goto label_2;
                                                                 | label_24:
    0x00067af6 mov r2, r4                                        |     r2 = r4;
    0x00067af8 ldr r1, [r7, 0x18]                                |     r1 = var_158h;
    0x00067afa mov.w r3, -1                                      |     r3 = -1;
    0x00067afe bl 0x74ccc                                        |     r0 = fcn_00074ccc ();
    0x00067b02 mov r4, r0                                        |     r4 = r0;
    0x00067b04 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00067b06 beq.w 0x67c52                                     |         goto label_25;
                                                                 |     }
    0x00067b0a blx 0x9634                                        |     r0 = fcn_00009634 ();
    0x00067b0e mov r1, r0                                        |     r1 = r0;
    0x00067b10 b 0x678de                                         |     goto label_5;
                                                                 | label_31:
    0x00067b12 mov r0, r4                                        |     r0 = r4;
    0x00067b14 b 0x67982                                         |     goto label_6;
                                                                 | label_34:
    0x00067b16 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x00067b1a cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x00067b1c ble.w 0x678f0                                     |         goto label_2;
                                                                 |     }
    0x00067b20 ldr r3, [r7, 0x18]                                |     r3 = var_158h;
    0x00067b22 mov r1, fp                                        |     r1 = fp;
    0x00067b24 ldr r2, [pc, 0x1a4]                               |     
    0x00067b26 movs r0, 7                                        |     r0 = 7;
    0x00067b28 str r4, [sp, 0xc]                                 |     var_ch = r4;
    0x00067b2a str r3, [sp, 8]                                   |     var_8h = r3;
    0x00067b2c ldr r3, [pc, 0x1a0]                               |     
    0x00067b2e add r2, pc                                        |     r2 = 0xcf7fe;
    0x00067b30 adds r2, 7                                        |     r2 += 7;
    0x00067b32 add r3, pc                                        |     r3 = 0xcf806;
    0x00067b34 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00067b36 ldr r3, [pc, 0x19c]                               |     
    0x00067b38 add r3, pc                                        |     r3 = 0xcf812;
    0x00067b3a str r3, [sp]                                      |     *(sp) = r3;
    0x00067b3c movs r3, 0x42                                     |     r3 = 0x42;
    0x00067b3e bl 0x71448                                        |     fcn_00071448 ();
    0x00067b42 b 0x678f0                                         |     goto label_2;
                                                                 | label_12:
    0x00067b44 cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x00067b46 bne.w 0x677ea                                     |         goto label_7;
                                                                 |     }
    0x00067b4a ldr r1, [pc, 0x18c]                               |     
    0x00067b4c movs r2, 0x25                                     |     r2 = 0x25;
    0x00067b4e ldr r3, [pc, 0x18c]                               |     
    0x00067b50 ldr r0, [pc, 0x18c]                               |     
    0x00067b52 add r1, pc                                        |     r1 = 0xcf830;
    0x00067b54 add r3, pc                                        |     r3 = 0xcf836;
    0x00067b56 adds r1, 7                                        |     r1 += 7;
    0x00067b58 add r0, pc                                        |     r0 = 0xcf83c;
    0x00067b5a bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_33:
    0x00067b5e ldr r2, [pc, 0x184]                               |     
    0x00067b60 movs r3, 0x2f                                     |     r3 = 0x2f;
    0x00067b62 ldr r0, [pc, 0x184]                               |     
    0x00067b64 mov r1, r4                                        |     r1 = r4;
    0x00067b66 ldr r6, [pc, 0x184]                               |     
    0x00067b68 add r2, pc                                        |     r2 = 0xcf852;
    0x00067b6a str r5, [sp, 8]                                   |     var_8h = r5;
    0x00067b6c add r0, pc                                        |     r0 = 0xcf85a;
    0x00067b6e adds r2, 7                                        |     r2 += 7;
    0x00067b70 add r6, pc                                        |     r6 = 0xcf862;
    0x00067b72 str r0, [sp, 4]                                   |     var_4h = r0;
    0x00067b74 str r6, [sp]                                      |     *(sp) = r6;
    0x00067b76 movs r0, 7                                        |     r0 = 7;
    0x00067b78 bl 0x71448                                        |     r0 = fcn_00071448 ();
    0x00067b7c mov fp, r0                                        |     
    0x00067b7e b 0x679d2                                         |     goto label_8;
                                                                 | label_29:
    0x00067b80 ldr r1, [pc, 0x16c]                               |     
    0x00067b82 movs r2, 0x28                                     |     r2 = 0x28;
    0x00067b84 ldr r3, [pc, 0x16c]                               |     
    0x00067b86 ldr r0, [pc, 0x170]                               |     
    0x00067b88 add r1, pc                                        |     r1 = 0xcf87c;
    0x00067b8a add r3, pc                                        |     r3 = 0xcf882;
    0x00067b8c adds r1, 7                                        |     r1 += 7;
    0x00067b8e add r0, pc                                        |     r0 = 0xcf88c;
    0x00067b90 bl 0x71518                                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_23:
    0x00067b94 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x00067b98 cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x00067b9a ble.w 0x678f0                                     |         goto label_2;
                                                                 |     }
    0x00067b9e ldr r3, [r7, 0x18]                                |     r3 = var_158h;
    0x00067ba0 mov r1, fp                                        |     r1 = fp;
    0x00067ba2 ldr r2, [r7, 8]                                   |     r2 = var_8h_2;
    0x00067ba4 movs r0, 7                                        |     r0 = 7;
    0x00067ba6 str r4, [sp, 0xc]                                 |     var_ch = r4;
    0x00067ba8 str r3, [sp, 8]                                   |     var_8h = r3;
    0x00067baa ldr r3, [r7, 4]                                   |     r3 = var_4h_2;
    0x00067bac str r3, [sp, 4]                                   |     var_4h = r3;
    0x00067bae ldr r3, [r7]                                      |     r3 = *(r7);
    0x00067bb0 str r3, [sp]                                      |     *(sp) = r3;
    0x00067bb2 movs r3, 0x6a                                     |     r3 = 0x6a;
    0x00067bb4 bl 0x71448                                        |     fcn_00071448 ();
    0x00067bb8 b 0x678f0                                         |     goto label_2;
                                                                 | label_11:
    0x00067bba ldr r1, [pc, 0x140]                               |     
    0x00067bbc movs r2, 0x24                                     |     r2 = 0x24;
    0x00067bbe ldr r3, [pc, 0x140]                               |     
    0x00067bc0 ldr r0, [pc, 0x140]                               |     
    0x00067bc2 add r1, pc                                        |     r1 = 0xcf8c4;
    0x00067bc4 add r3, pc                                        |     r3 = 0xcf8ca;
    0x00067bc6 adds r1, 7                                        |     r1 += 7;
    0x00067bc8 add r0, pc                                        |     r0 = 0xcf8d0;
    0x00067bca bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_13:
    0x00067bce ldr r1, [pc, 0x138]                               |     
    0x00067bd0 movs r2, 0x26                                     |     r2 = 0x26;
    0x00067bd2 ldr r3, [pc, 0x138]                               |     
    0x00067bd4 ldr r0, [pc, 0x138]                               |     
    0x00067bd6 add r1, pc                                        |     r1 = 0xcf8e4;
    0x00067bd8 add r3, pc                                        |     r3 = 0xcf8ea;
    0x00067bda adds r1, 7                                        |     r1 += 7;
    0x00067bdc add r0, pc                                        |     r0 = 0xcf8f0;
    0x00067bde bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_27:
    0x00067be2 ldr r1, [pc, 0x130]                               |     
    0x00067be4 movs r2, 0x82                                     |     r2 = 0x82;
    0x00067be6 ldr r3, [pc, 0x130]                               |     
    0x00067be8 ldr r0, [pc, 0x130]                               |     
    0x00067bea add r1, pc                                        |     r1 = 0xcf904;
    0x00067bec add r3, pc                                        |     r3 = 0xcf90a;
    0x00067bee adds r1, 7                                        |     r1 += 7;
    0x00067bf0 add r0, pc                                        |     r0 = 0xcf910;
    0x00067bf2 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_35:
    0x00067bf6 str r0, [r7, 0x10]                                |     var_10h_2 = r0;
    0x00067bf8 add.w fp, r7, 0x20                                |     
    0x00067bfc mov r0, sb                                        |     r0 = sb;
    0x00067bfe blx 0x9128                                        |     fcn_00009128 ();
    0x00067c02 ldr r3, [r7, 0x10]                                |     r3 = var_10h_2;
    0x00067c04 mov r1, r4                                        |     r1 = r4;
    0x00067c06 mov r2, fp                                        |     r2 = fp;
    0x00067c08 blx 0x9334                                        |     r0 = fcn_00009334 ();
    0x00067c0c cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x00067c0e bge.w 0x67a4e                                     |         goto label_9;
                                                                 |     }
    0x00067c12 b 0x67ac0                                         |     goto label_10;
                                                                 | label_36:
    0x00067c14 ldr r1, [pc, 0x108]                               |     
    0x00067c16 movs r2, 0x50                                     |     r2 = 0x50;
    0x00067c18 ldr r3, [pc, 0x108]                               |     
    0x00067c1a ldr r0, [pc, 0x10c]                               |     
    0x00067c1c add r1, pc                                        |     r1 = 0xcf940;
    0x00067c1e add r3, pc                                        |     r3 = 0xcf946;
    0x00067c20 adds r1, 7                                        |     r1 += 7;
    0x00067c22 add r0, pc                                        |     r0 = 0xcf950;
    0x00067c24 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
    0x00067c26 invalid                                           |     
                                                                 | label_26:
    0x00067c28 mov fp, r0                                        |     
    0x00067c2a mov r0, r4                                        |     r0 = r4;
    0x00067c2c blx 0x8dac                                        |     fcn_00008dac ();
    0x00067c30 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x00067c34 cmp r0, 6                                         |     
    0x00067c36 ittt le                                           |     
                                                                 |     if (r0 <= 6) {
    0x00067c38 rsble fp, fp, 0                                   |         __asm ("rsble fp, fp, 0");
                                                                 |     }
                                                                 |     if (r0 <= 6) {
    0x00067c3c uxtble fp, fp                                     |         __asm ("uxtble fp, fp");
                                                                 |     }
                                                                 |     if (r0 <= 6) {
    0x00067c40 rsb.w fp, fp, 0                                   |         
                                                                 |     }
    0x00067c44 bgt 0x67c58                                       |     
                                                                 |     while (1) {
    0x00067c46 cmp.w fp, 0                                       |         
    0x00067c4a it ge                                             |         
                                                                 |         if (fp < 0) {
    0x00067c4c mvnge fp, 0x55                                    |             
                                                                 |         }
    0x00067c50 b 0x6790e                                         |         goto label_4;
                                                                 | label_25:
    0x00067c52 mvn fp, 0xb                                       |         
    0x00067c56 b 0x6790e                                         |         goto label_4;
    0x00067c58 ldr r2, [pc, 0xd0]                                |         
    0x00067c5a mov r1, fp                                        |         r1 = fp;
    0x00067c5c ldr r4, [pc, 0xd0]                                |         
    0x00067c5e movs r3, 0x7f                                     |         r3 = 0x7f;
    0x00067c60 ldr r0, [pc, 0xd0]                                |         
    0x00067c62 add r2, pc                                        |         r2 = 0xcf992;
    0x00067c64 add r4, pc                                        |         r4 = 0xcf998;
    0x00067c66 adds r2, 7                                        |         r2 += 7;
    0x00067c68 add r0, pc                                        |         r0 = 0xcf9a0;
    0x00067c6a strd r0, r4, [sp]                                 |         __asm ("strd r0, r4, [sp]");
    0x00067c6e movs r0, 7                                        |         r0 = 7;
    0x00067c70 bl 0x71448                                        |         r0 = fcn_00071448 ();
    0x00067c74 mov fp, r0                                        |         
    0x00067c76 b 0x67c46                                         |         
                                                                 |     }
                                                                 | label_28:
    0x00067c78 blx 0x927c                                        |     fprintf_chk ()
    0x00067c7c asrs r0, r1, 0xc                                  |     r0 = r1 >> 0xc;
    0x00067c7e movs r6, r0                                       |     r6 = r0;
    0x00067c80 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x00067c82 movs r0, r0                                       |     
    0x00067c84 asrs r0, r6, 0xb                                  |     r0 = r6 >> 0xb;
    0x00067c86 movs r6, r0                                       |     r6 = r0;
    0x00067c88 uxth r2, r1                                       |     r2 = (int16_t) r1;
    0x00067c8a movs r3, r0                                       |     r3 = r0;
    0x00067c8c uxth r0, r0                                       |     r0 = (int16_t) r0;
    0x00067c8e movs r3, r0                                       |     r3 = r0;
                                                                 |     if (r6 != 0) {
    0x00067c90 cbz r6, 0x67d02                                   |         
    0x00067c92 movs r3, r0                                       |         r3 = r0;
    0x00067c94 push {r1, r7}                                     |         
    0x00067c96 movs r3, r0                                       |         r3 = r0;
    0x00067c98 asrs r4, r5, 6                                    |         r4 = r5 >> 6;
    0x00067c9a movs r6, r0                                       |         r6 = r0;
                                                                 |         if (r4 != 0) {
    0x00067c9c cbz r4, 0x67cd4                                   |             
    0x00067c9e movs r3, r0                                       |             r3 = r0;
    0x00067ca0 uxtb r2, r2                                       |             r2 = (int8_t) r2;
    0x00067ca2 movs r3, r0                                       |             r3 = r0;
    0x00067ca4 sub sp, 0x68                                      |             
    0x00067ca6 movs r3, r0                                       |             r3 = r0;
                                                                 |             if (r6 != 0) {
    0x00067ca8 cbz r6, 0x67cae                                   |                 
    0x00067caa movs r3, r0                                       |                 r3 = r0;
    0x00067cac uxth r4, r4                                       |                 r4 = (int16_t) r4;
                                                                 |             }
    0x00067cae movs r3, r0                                       |             r3 = r0;
    0x00067cb0 lsls r0, r5, 0x13                                 |             r0 = r5 << 0x13;
    0x00067cb2 movs r0, r0                                       |             
    0x00067cb4 add sp, 0x98                                      |             
    0x00067cb6 movs r3, r0                                       |             r3 = r0;
                                                                 |             if (r2 != 0) {
    0x00067cb8 cbz r2, 0x67cc2                                   |                 
    0x00067cba movs r3, r0                                       |                 r3 = r0;
    0x00067cbc sxth r0, r6                                       |                 __asm ("sxth r0, r6");
    0x00067cbe movs r3, r0                                       |                 r3 = r0;
    0x00067cc0 add r7, sp, 0x360                                 |                 r7 += arg_360h;
                                                                 |             }
    0x00067cc2 movs r3, r0                                       |             r3 = r0;
    0x00067cc4 sub sp, 0x70                                      |             
    0x00067cc6 movs r3, r0                                       |             r3 = r0;
                                                                 |             if (r2 == 0) {
    0x00067cc8 cbz r2, 0x67d04                                   |                 goto label_37;
                                                                 |             }
    0x00067cca movs r3, r0                                       |             r3 = r0;
    0x00067ccc add r7, sp, 0x228                                 |             r7 += arg_228h;
    0x00067cce movs r3, r0                                       |             r3 = r0;
    0x00067cd0 add sp, 0x88                                      |             
    0x00067cd2 movs r3, r0                                       |             r3 = r0;
                                                                 |         }
                                                                 |         if (r4 != 0) {
    0x00067cd4 cbz r4, 0x67cfc                                   |             
    0x00067cd6 movs r3, r0                                       |             r3 = r0;
    0x00067cd8 add r7, sp, 0x198                                 |             r7 += arg_198h;
    0x00067cda movs r3, r0                                       |             r3 = r0;
                                                                 |             if (r4 != 0) {
    0x00067cdc cbz r4, 0x67cec                                   |                 
    0x00067cde movs r3, r0                                       |                 r3 = r0;
    0x00067ce0 add r7, sp, 0x200                                 |                 r7 += arg_200h;
    0x00067ce2 movs r3, r0                                       |                 r3 = r0;
    0x00067ce4 add r7, sp, 0x140                                 |                 r7 += arg_140h;
    0x00067ce6 movs r3, r0                                       |                 r3 = r0;
    0x00067ce8 add r7, sp, 0x280                                 |                 r7 += arg_338h;
    0x00067cea movs r3, r0                                       |                 r3 = r0;
                                                                 |             }
                                                                 |             if (r4 == 0) {
    0x00067cec cbz r4, 0x67d06                                   |                 goto label_38;
                                                                 |             }
    0x00067cee movs r3, r0                                       |             r3 = r0;
    0x00067cf0 add r7, sp, 0xc0                                  |             r7 += var_c0h;
    0x00067cf2 movs r3, r0                                       |             r3 = r0;
    0x00067cf4 sub sp, 0x1f8                                     |             
    0x00067cf6 movs r3, r0                                       |             r3 = r0;
    0x00067cf8 invalid                                           |             
                                                                 |         }
    0x00067cfc add r6, sp, 0x3d8                                 |         r6 += arg_3d8h;
    0x00067cfe movs r3, r0                                       |         r3 = r0;
    0x00067d00 sub sp, 0x110                                     |         
                                                                 |     }
    0x00067d02 movs r3, r0                                       |     r3 = r0;
                                                                 | label_37:
    0x00067d04 cmp r4, 0x1c                                      |     
                                                                 | label_38:
    0x00067d06 movs r3, r0                                       |     r3 = r0;
    0x00067d08 add r6, sp, 0x388                                 |     r6 += arg_388h;
    0x00067d0a movs r3, r0                                       |     r3 = r0;
    0x00067d0c sub sp, 0xc0                                      |     
    0x00067d0e movs r3, r0                                       |     r3 = r0;
    0x00067d10 ldrh r4, [r0, r5]                                 |     r4 = *((r0 + r5));
    0x00067d12 movs r3, r0                                       |     r3 = r0;
    0x00067d14 add r6, sp, 0x338                                 |     r6 += arg_338h;
    0x00067d16 movs r3, r0                                       |     r3 = r0;
    0x00067d18 sub sp, 0x70                                      |     
    0x00067d1a movs r3, r0                                       |     r3 = r0;
    0x00067d1c ldm r0!, {r2, r4, r5}                             |     r2 = *(r0!);
                                                                 |     r4 = *((r0! + 4));
                                                                 |     r5 = *((r0! + 8));
    0x00067d1e movs r3, r0                                       |     r3 = r0;
    0x00067d20 add r6, sp, 0x270                                 |     r6 += arg_270h;
    0x00067d22 movs r3, r0                                       |     r3 = r0;
    0x00067d24 add sp, 0x1a8                                     |     
    0x00067d26 movs r3, r0                                       |     r3 = r0;
    0x00067d28 add r7, sp, 0x218                                 |     r7 += arg_218h;
    0x00067d2a movs r3, r0                                       |     r3 = r0;
    0x00067d2c add r6, sp, 0x158                                 |     r6 += var_158h;
    0x00067d2e movs r3, r0                                       |     r3 = r0;
    0x00067d30 add r7, sp, 0x340                                 |     r7 += arg_340h;
    0x00067d32 movs r3, r0                                       |     r3 = r0;
    0x00067d34 add sp, 0x190                                     |     
    0x00067d36 movs r3, r0                                       |     r3 = r0;
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x67ee4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00067ee4 ()                  | void fcn_00067ee4 (int16_t arg_168h, int16_t arg_1f0h, uint32_t arg1) {
                                             |     int16_t var_0h;
                                             |     int16_t var_10h;
                                             |     int16_t var_6ch;
                                             |     r0 = arg1;
    0x00067ee4 ldr r2, [pc, 0xc8]            |     
    0x00067ee6 ldr r3, [pc, 0xcc]            |     r3 = *(0x67fb6);
    0x00067ee8 push {r4, r5, r6, lr}         |     
    0x00067eea sub sp, 0x70                  |     
    0x00067eec add r2, pc                    |     r2 = 0xcfea0;
    0x00067eee ldr r3, [r2, r3]              |     
    0x00067ef0 ldr r3, [r3]                  |     r3 = *(0xcfea0);
    0x00067ef2 str r3, [sp, 0x6c]            |     var_6ch = r3;
    0x00067ef4 mov.w r3, 0                   |     r3 = 0;
    0x00067ef8 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00067efa beq 0x67f96                   |         goto label_1;
                                             |     }
    0x00067efc mov r5, r0                    |     r5 = r0;
    0x00067efe blx 0x9628                    |     fcn_00009628 ();
    0x00067f02 movs r2, 0                    |     r2 = 0;
    0x00067f04 mov r3, r0                    |     r3 = r0;
    0x00067f06 str r2, [r3]                  |     *(r3) = r2;
    0x00067f08 mov r0, r5                    |     r0 = r5;
    0x00067f0a blx 0x9434                    |     r0 = fcn_00009434 ();
    0x00067f0e mov r4, r0                    |     r4 = r0;
                                             |     if (r0 == 0) {
    0x00067f10 cbz r0, 0x67f16               |         goto label_0;
                                             |     }
    0x00067f12 ldrb r6, [r0, 0x12]           |     r6 = *((r0 + 0x12));
    0x00067f14 cbz r6, 0x67f30               |     
                                             |     while (r0 < 0) {
                                             | label_0:
    0x00067f16 ldr r2, [pc, 0xa0]            |         
    0x00067f18 ldr r3, [pc, 0x98]            |         r3 = *(0x67fb4);
    0x00067f1a add r2, pc                    |         r2 = 0xcfed8;
    0x00067f1c ldr r3, [r2, r3]              |         r3 = *(0xcfed8);
    0x00067f1e ldr r2, [r3]                  |         r2 = *(0xcfed8);
    0x00067f20 ldr r3, [sp, 0x6c]            |         r3 = var_6ch;
    0x00067f22 eors r2, r3                   |         r2 ^= r3;
    0x00067f24 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00067f28 bne 0x67faa                   |             goto label_2;
                                             |         }
    0x00067f2a mov r0, r4                    |         r0 = r4;
    0x00067f2c add sp, 0x70                  |         
    0x00067f2e pop {r4, r5, r6, pc}          |         
    0x00067f30 mov r0, r5                    |         r0 = r5;
    0x00067f32 blx 0x9128                    |         fcn_00009128 ();
    0x00067f36 mov.w r3, 0x100               |         r3 = 0x100;
    0x00067f3a mov r2, sp                    |         r2 = sp;
    0x00067f3c add.w r1, r4, 0x13            |         r1 = r4 + 0x13;
    0x00067f40 blx 0x9334                    |         r0 = fcn_00009334 ();
    0x00067f44 cmp r0, 0                     |         
    0x00067f46 blt 0x67f16                   |         
                                             |     }
    0x00067f48 ldr r3, [sp, 0x10]            |     r3 = var_10h;
    0x00067f4a and r3, r3, 0xf000            |     r3 &= 0xf000;
    0x00067f4c muls r0, r6, r0               |     r0 = r6 * r0;
    0x00067f4e cmp.w r3, 0x8000              |     
    0x00067f52 it eq                         |     
                                             |     if (r3 != 0x8000) {
    0x00067f54 moveq r6, 8                   |         r6 = 8;
                                             |     }
                                             |     if (r3 != 0x8000) {
    0x00067f56 beq 0x67f92                   |         
    0x00067f58 cmp.w r3, 0x4000              |         
    0x00067f5c it eq                         |         
                                             |         if (r3 != 0x4000) {
    0x00067f5e moveq r6, 4                   |             r6 = 4;
                                             |         }
                                             |         if (r3 == 0x4000) {
    0x00067f60 beq 0x67f92                   |             goto label_3;
                                             |         }
    0x00067f62 cmp.w r3, 0xa000              |         
    0x00067f66 it eq                         |         
                                             |         if (r3 != 0xa000) {
    0x00067f68 moveq r6, 0xa                 |             r6 = 0xa;
                                             |         }
                                             |         if (r3 == 0xa000) {
    0x00067f6a beq 0x67f92                   |             goto label_3;
                                             |         }
    0x00067f6c cmp.w r3, 0x1000              |         
    0x00067f70 it eq                         |         
                                             |         if (r3 != 0x1000) {
    0x00067f72 moveq r6, 1                   |             r6 = 1;
                                             |         }
                                             |         if (r3 == 0x1000) {
    0x00067f74 beq 0x67f92                   |             goto label_3;
                                             |         }
    0x00067f76 cmp.w r3, 0xc000              |         
    0x00067f7a it eq                         |         
                                             |         if (r3 != 0xc000) {
    0x00067f7c moveq r6, 0xc                 |             r6 = 0xc;
                                             |         }
                                             |         if (r3 == 0xc000) {
    0x00067f7e beq 0x67f92                   |             goto label_3;
                                             |         }
    0x00067f80 cmp.w r3, 0x2000              |         
    0x00067f84 it eq                         |         
                                             |         if (r3 != 0x2000) {
    0x00067f86 moveq r6, 2                   |             r6 = 2;
                                             |         }
                                             |         if (r3 == 0x2000) {
    0x00067f88 beq 0x67f92                   |             goto label_3;
                                             |         }
    0x00067f8a cmp.w r3, 0x6000              |         
    0x00067f8e it eq                         |         
                                             |         if (r3 == 0x6000) {
    0x00067f90 moveq r6, 6                   |             r6 = 6;
                                             |             goto label_3;
                                             |         }
                                             |     }
                                             | label_3:
    0x00067f92 strb r6, [r4, 0x12]           |     *((r4 + 0x12)) = r6;
    0x00067f94 b 0x67f16                     |     goto label_0;
                                             | label_1:
    0x00067f96 ldr r1, [pc, 0x24]            |     
    0x00067f98 movs r2, 0x41                 |     r2 = 0x41;
    0x00067f9a ldr r3, [pc, 0x24]            |     
    0x00067f9c ldr r0, [pc, 0x24]            |     
    0x00067f9e add r1, pc                    |     r1 = 0xcff60;
    0x00067fa0 add r3, pc                    |     r3 = 0xcff66;
    0x00067fa2 adds r1, 7                    |     r1 += 7;
    0x00067fa4 add r0, pc                    |     r0 = 0xcff6c;
    0x00067fa6 bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
    0x00067fa8 invalid                       |     
                                             | label_2:
    0x00067faa blx 0x927c                    |     fprintf_chk ()
    0x00067fae nop                           |     
    0x00067fb0 lsrs r0, r3, 0xf              |     r0 = r3 >> 0xf;
    0x00067fb2 movs r6, r0                   |     r6 = r0;
    0x00067fb4 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00067fb6 movs r0, r0                   |     
    0x00067fb8 lsrs r2, r5, 0xe              |     r2 = r5 >> 0xe;
    0x00067fba movs r6, r0                   |     r6 = r0;
    0x00067fbc add r5, sp, 0x168             |     r5 += arg_168h;
    0x00067fbe movs r3, r0                   |     r3 = r0;
    0x00067fc0 add r5, sp, 0x1f0             |     r5 += arg_1f0h;
    0x00067fc2 movs r3, r0                   |     r3 = r0;
    0x00067fc4 strh r4, [r4, r7]             |     *((r4 + r7)) = r4;
    0x00067fc6 movs r2, r0                   |     r2 = r0;
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x68180 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00068180 ()                                      | void fcn_00068180 (int16_t arg_2h, int16_t arg_78h, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_4ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00068180 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x00068184 sub sp, 0x54                                      |     
    0x00068186 strd r2, r3, [sp, 0x1c]                           |     __asm ("strd r2, r3, [var_1ch]");
    0x0006818a mov r8, r1                                        |     r8 = r1;
    0x0006818c ldr.w r2, [pc, 0x480]                             |     
    0x00068190 ldr.w r3, [pc, 0x480]                             |     r3 = *(0x68614);
    0x00068194 add r2, pc                                        |     r2 = 0xd07a8;
    0x00068196 ldr r3, [r2, r3]                                  |     
    0x00068198 ldr r2, [sp, 0x78]                                |     r2 = *(arg_78h);
    0x0006819a ldr r3, [r3]                                      |     r3 = *(0xd07a8);
    0x0006819c str r3, [sp, 0x4c]                                |     var_4ch = r3;
    0x0006819e mov.w r3, 0                                       |     r3 = 0;
    0x000681a2 movs r3, 0                                        |     r3 = 0;
    0x000681a4 strd r3, r3, [sp, 0x40]                           |     __asm ("strd r3, r3, [var_40h]");
    0x000681a6 adds r3, 0x10                                     |     r3 += 0x10;
    0x000681a8 str r3, [sp, 0x48]                                |     var_48h = r3;
    0x000681aa str r2, [sp, 0x24]                                |     var_24h = r2;
    0x000681ac cmp r0, 0                                         |     
                                                                 |     if (arg_78h == ) {
    0x000681ae beq.w 0x682d2                                     |         goto label_22;
                                                                 |     }
    0x000681b2 mov r1, r3                                        |     r1 = r3;
    0x000681b4 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x000681b6 str r3, [sp, 4]                                   |     var_4h = r3;
    0x000681b8 add r3, sp, 0x40                                  |     r3 += var_40h;
    0x000681ba str r3, [sp, 8]                                   |     var_8h = r3;
    0x000681bc mov.w r3, -1                                      |     r3 = -1;
    0x000681c0 str r3, [sp]                                      |     *(sp) = r3;
    0x000681c2 mov.w r2, -1                                      |     r2 = -1;
    0x000681c6 mov.w r3, -1                                      |     r3 = -1;
    0x000681ca bl 0x6b4cc                                        |     r0 = fcn_0006b4cc (r0, r1, r2, r3, r4, r5, r6);
    0x000681ce mov r5, r0                                        |     r5 = r0;
                                                                 | label_3:
    0x000681d0 cmp r5, 0                                         |     
                                                                 |     if (r5 < 0) {
    0x000681d2 blt 0x6829e                                       |         goto label_5;
                                                                 |     }
    0x000681d4 ldr r4, [sp, 0x40]                                |     r4 = var_40h;
    0x000681d6 ldrb r5, [r4]                                     |     r5 = *(r4);
    0x000681d8 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x000681da beq 0x6829e                                       |         goto label_5;
                                                                 |     }
    0x000681dc ldr.w r3, [pc, 0x438]                             |     
    0x000681e0 movs r6, 1                                        |     r6 = 1;
    0x000681e2 add r3, pc                                        |     r3 = 0xd07fe;
    0x000681e4 str r3, [sp, 0x3c]                                |     var_3ch = r3;
    0x000681e6 ldr.w r3, [pc, 0x434]                             |     
    0x000681e8 adds r4, 0x34                                     |     r4 += 0x34;
    0x000681ea add r3, pc                                        |     r3 = 0xd080c;
    0x000681ec str r3, [sp, 0x30]                                |     var_30h = r3;
                                                                 |     do {
                                                                 | label_4:
    0x000681ee ldr.w r7, [pc, 0x430]                             |         
    0x000681f2 ldr.w sb, [pc, 0x430]                             |         
    0x000681f6 add r7, pc                                        |         r7 = 0xd081c;
    0x000681f8 add sb, pc                                        |         sb = 0xd0822;
                                                                 | label_2:
    0x000681fa mov r1, r5                                        |         r1 = r5;
    0x000681fc mov r0, r7                                        |         r0 = r7;
    0x000681fe blx 0x8bb0                                        |         r0 = get_current_dir_name ();
                                                                 |         if (r0 == 0) {
    0x00068202 cbz r0, 0x68242                                   |             goto label_23;
                                                                 |         }
    0x00068204 ldrb r1, [r4, 1]                                  |         r1 = *((r4 + 1));
    0x00068206 adds r7, r4, 1                                    |         r7 = r4 + 1;
                                                                 |         if (r1 == 0) {
    0x00068208 cbz r1, 0x6822c                                   |             goto label_1;
                                                                 |         }
    0x0006820a ldr.w sb, [pc, 0x41c]                             |         
    0x0006820e add sb, pc                                        |         sb = 0xd083c;
                                                                 | label_0:
    0x00068210 cmp r1, 0x5c                                      |         
    0x00068212 mov r3, r7                                        |         r3 = r7;
    0x00068214 add.w r7, r7, 1                                   |         r7++;
    0x00068218 ldrb r5, [r7]                                     |         r5 = *(r7);
    0x0006821a mov r4, r7                                        |         r4 = r7;
                                                                 |         if (r1 == 0x5c) {
    0x0006821c beq 0x68234                                       |             goto label_24;
                                                                 |         }
    0x0006821e mov r0, sb                                        |         r0 = sb;
    0x00068220 blx 0x8bb0                                        |         r0 = get_current_dir_name ();
                                                                 |         if (r0 == 0) {
    0x00068224 cbz r0, 0x68258                                   |             goto label_25;
                                                                 |         }
    0x00068226 adds r6, 1                                        |         r6++;
    0x00068228 cmp r5, 0                                         |         
    0x0006822a bne 0x681ee                                       |         
                                                                 |     } while (r5 != 0);
                                                                 |     do {
                                                                 | label_1:
    0x0006822c ldr r3, [sp, 0x48]                                |         r3 = var_48h;
    0x0006822e movs r5, 0                                        |         r5 = 0;
    0x00068230 str r3, [sp, 0x38]                                |         var_38h = r3;
    0x00068232 b 0x682a2                                         |         goto label_7;
                                                                 | label_24:
    0x00068234 cmp r5, 0                                         |         
    0x00068236 beq 0x6822c                                       |         
                                                                 |     } while (r5 == 0);
    0x00068238 ldrb r1, [r3, 2]                                  |     r1 = *((r3 + 2));
    0x0006823a adds r7, r3, 2                                    |     r7 = r3 + 2;
    0x0006823c cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x0006823e bne 0x68210                                       |         goto label_0;
                                                                 |     }
    0x00068240 b 0x6822c                                         |     goto label_1;
                                                                 | label_23:
    0x00068242 mov r1, r5                                        |     r1 = r5;
    0x00068244 mov r0, sb                                        |     r0 = sb;
    0x00068246 blx 0x8bb0                                        |     get_current_dir_name ();
    0x00068248 ldc p8, c2, [r4], 0                               |     __asm ("ldc p8, c2, [r4], 0");
                                                                 |     if (r1 == 0) {
    0x0006824c beq 0x682f6                                       |         goto label_26;
                                                                 |     }
    0x0006824e ldrb r5, [r4, 1]!                                 |     r5 = *((r4 += 1));
    0x00068252 cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x00068254 bne 0x681fa                                       |         goto label_2;
                                                                 |     }
    0x00068256 b 0x6822c                                         |     goto label_1;
                                                                 | label_25:
    0x00068258 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0006825a beq 0x6822c                                       |         goto label_1;
                                                                 |     }
    0x0006825c mov r1, r5                                        |     r1 = r5;
    0x0006825e b 0x68210                                         |     goto label_0;
                                                                 | label_15:
    0x00068260 ldrb r7, [r4, 1]                                  |     r7 = *((r4 + 1));
    0x00068262 adds r4, 1                                        |     r4++;
    0x00068264 cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x00068266 bne.w 0x683b6                                     |         goto label_8;
                                                                 |     }
                                                                 | label_9:
    0x0006826a ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x0006826c movs r2, 0                                        |     r2 = 0;
    0x0006826e ldr r1, [sp, 0x2c]                                |     r1 = var_2ch;
    0x00068270 strb r2, [r3, r1]                                 |     *((r3 + r1)) = r2;
    0x00068272 ldr r3, [sp, 0x48]                                |     r3 = var_48h;
                                                                 |     if (r3 != 0) {
    0x00068274 cbz r3, 0x68278                                   |         
    0x00068276 strb r2, [r3, r5]                                 |         *((r3 + r5)) = r2;
                                                                 |     }
                                                                 | label_13:
    0x00068278 ldr r1, [sp, 0x28]                                |     r1 = var_28h;
    0x0006827a mov r0, r8                                        |     r0 = r8;
    0x0006827c ldr r4, [sp, 0x1c]                                |     r4 = var_1ch;
    0x0006827e adds r3, r1, 1                                    |     r3 = r1 + 1;
    0x00068280 ittt ne                                           |     
                                                                 |     if (r3 == r1) {
    0x00068282 ldrne r3, [sp, 0x44]                              |         r3 = var_44h;
                                                                 |     }
                                                                 |     if (r3 == r1) {
    0x00068284 movne r2, 0                                       |         r2 = 0;
                                                                 |     }
                                                                 |     if (r3 == r1) {
    0x00068286 strbne r2, [r3, r1]                               |         *((r3 + r1)) = r2;
                                                                 |     }
    0x00068288 mov r1, r6                                        |     r1 = r6;
    0x0006828a ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x0006828c str r3, [sp, 4]                                   |     var_4h = r3;
    0x0006828e ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00068290 str r3, [sp]                                      |     *(sp) = r3;
    0x00068292 ldrd r2, r3, [sp, 0x44]                           |     __asm ("ldrd r2, r3, [var_48h]");
    0x00068296 blx r4                                            |     r0 = uint32_t (*r4)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x00068298 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 >= r0) {
    0x0006829a bge.w 0x68404                                     |         goto label_27;
                                                                 |     }
                                                                 | label_5:
    0x0006829e ldr r3, [sp, 0x48]                                |     r3 = var_48h;
    0x000682a0 str r3, [sp, 0x38]                                |     var_38h = r3;
                                                                 | label_7:
    0x000682a2 ldr r0, [sp, 0x38]                                |     r0 = var_38h;
    0x000682a4 blx 0x8dac                                        |     fcn_00008dac ();
    0x000682a8 ldr r0, [sp, 0x44]                                |     r0 = var_44h;
    0x000682aa blx 0x8dac                                        |     fcn_00008dac ();
    0x000682ae ldr r0, [sp, 0x40]                                |     r0 = var_40h;
    0x000682b0 blx 0x8dac                                        |     fcn_00008dac ();
    0x000682b4 ldr r2, [pc, 0x374]                               |     
    0x000682b6 ldr r3, [pc, 0x35c]                               |     r3 = *(0x68616);
    0x000682b8 add r2, pc                                        |     r2 = 0xd08e8;
    0x000682ba ldr r3, [r2, r3]                                  |     r3 = *(0xd08e8);
    0x000682bc ldr r2, [r3]                                      |     r2 = *(0xd08e8);
    0x000682be ldr r3, [sp, 0x4c]                                |     r3 = var_4ch;
    0x000682c0 eors r2, r3                                       |     r2 ^= r3;
    0x000682c2 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x000682c6 bne.w 0x6860a                                     |         goto label_28;
                                                                 |     }
    0x000682c8 strh r0, [r4, 0xc]                                |     *((r4 + 0xc)) = r0;
    0x000682ca mov r0, r5                                        |     r0 = r5;
    0x000682cc add sp, 0x54                                      |     
    0x000682ce pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_22:
    0x000682d2 add r3, sp, 0x40                                  |     r3 += var_40h;
    0x000682d4 str r0, [sp, 0x10]                                |     var_10h = r0;
    0x000682d6 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x000682d8 mov.w r3, -1                                      |     r3 = -1;
    0x000682dc strd r0, r0, [sp, 4]                              |     __asm ("strd r0, r0, [var_4h]");
    0x000682e0 mov.w r2, -1                                      |     r2 = -1;
    0x000682e4 str r3, [sp]                                      |     *(sp) = r3;
    0x000682e6 mvn r0, 0x63                                      |     r0 = ~0x63;
    0x000682ea mov.w r3, -1                                      |     r3 = -1;
    0x000682ee bl 0x6b8d4                                        |     r0 = fcn_0006b8d4 (r0, r1, r2, r3);
    0x000682f2 mov r5, r0                                        |     r5 = r0;
    0x000682f4 b 0x681d0                                         |     goto label_3;
                                                                 | label_26:
    0x000682f6 add.w sb, sp, 0x44                                |     sb += var_44h;
    0x000682fa movs r2, 1                                        |     r2 = 1;
    0x000682fc movs r1, 2                                        |     r1 = 2;
    0x000682fe mov r0, sb                                        |     r0 = sb;
    0x00068300 bl 0x6530c                                        |     r0 = fcn_0006530c (r0, r1, r2);
    0x00068304 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00068306 beq.w 0x685de                                     |         goto label_29;
                                                                 |     }
    0x0006830a ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x0006830c strb r5, [r3]                                     |     *(r3) = r5;
    0x0006830e adds r5, r4, 1                                    |     r5 = r4 + 1;
    0x00068310 ldrb.w sl, [r4, 1]                                |     sl = *((r4 + 1));
    0x00068314 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x00068318 beq 0x68390                                       |         goto label_30;
                                                                 |     }
    0x0006831a ldr r4, [pc, 0x314]                               |     
    0x0006831c mov.w r3, -1                                      |     r3 = -1;
    0x00068320 ldr r7, [pc, 0x310]                               |     
    0x00068322 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x00068324 movs r3, 1                                        |     r3 = 1;
    0x00068326 add r4, pc                                        |     r4 = 0xd095c;
    0x00068328 mov fp, r3                                        |     
    0x0006832a mov r3, r4                                        |     r3 = r4;
    0x0006832c add r7, pc                                        |     r7 = 0xd0964;
    0x0006832e mov r4, sl                                        |     r4 = sl;
    0x00068330 mov sl, r3                                        |     sl = r3;
                                                                 | label_6:
    0x00068332 mov r1, r4                                        |     r1 = r4;
    0x00068334 mov r0, r7                                        |     r0 = r7;
    0x00068336 blx 0x8bb0                                        |     r0 = get_current_dir_name ();
                                                                 |     if (r0 == 0) {
    0x0006833a cbz r0, 0x6834a                                   |         goto label_31;
                                                                 |     }
    0x0006833c adds r4, r5, 1                                    |     r4 = r5 + 1;
    0x0006833e ldrb r5, [r5, 1]                                  |     r5 = *((r5 + 1));
    0x00068340 adds r6, 1                                        |     r6++;
    0x00068342 cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x00068344 bne.w 0x681ee                                     |         goto label_4;
                                                                 |     }
    0x00068348 b 0x6829e                                         |     goto label_5;
                                                                 | label_31:
    0x0006834a cmp r4, 0x3d                                      |     
                                                                 |     if (r4 == 0x3d) {
    0x0006834c beq 0x68398                                       |         goto label_32;
                                                                 |     }
    0x0006834e mov r1, r4                                        |     r1 = r4;
    0x00068350 mov r0, sl                                        |     r0 = sl;
    0x00068352 blx 0x8bb0                                        |     r0 = get_current_dir_name ();
    0x00068356 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00068358 beq.w 0x685d6                                     |         goto label_33;
                                                                 |     }
    0x0006835a strh r5, [r7, 8]                                  |     *((r7 + 8)) = r5;
    0x0006835c ldr r2, [sp, 0x28]                                |     r2 = var_28h;
    0x0006835e mov r3, r2                                        |     r3 = r2;
    0x00068360 cmp.w r2, -1                                      |     
    0x00068364 it eq                                             |     
                                                                 |     if (r2 != -1) {
    0x00068366 moveq r3, fp                                      |         r3 = fp;
                                                                 |     }
    0x00068368 str r3, [sp, 0x28]                                |     var_28h = r3;
                                                                 | label_19:
    0x0006836a movs r2, 1                                        |     r2 = 1;
    0x0006836c add.w r1, fp, 2                                   |     r1 += arg_2h;
    0x00068370 mov r0, sb                                        |     r0 = sb;
    0x00068372 bl 0x6530c                                        |     r0 = fcn_0006530c (r0, r1, r2);
    0x00068376 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00068378 beq.w 0x685de                                     |         goto label_29;
                                                                 |     }
    0x0006837c ldr r2, [sp, 0x44]                                |     r2 = var_44h;
    0x0006837e strb.w r4, [r2, fp]                               |     *((r2 + fp)) = r4;
    0x00068382 add.w fp, fp, 1                                   |     
    0x00068386 ldrb r4, [r5, 1]!                                 |     r4 = *((r5 += 1));
    0x0006838a cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0006838c bne 0x68332                                       |         goto label_6;
                                                                 |     }
    0x0006838e mov sl, r4                                        |     sl = r4;
                                                                 | label_30:
    0x00068390 ldr r3, [sp, 0x48]                                |     r3 = var_48h;
    0x00068392 mov r5, sl                                        |     r5 = sl;
    0x00068394 str r3, [sp, 0x38]                                |     var_38h = r3;
    0x00068396 b 0x682a2                                         |     goto label_7;
                                                                 | label_32:
    0x00068398 ldrb.w sl, [r5, 1]                                |     sl = *((r5 + 1));
    0x0006839c adds r4, r5, 1                                    |     r4 = r5 + 1;
    0x0006839e str r0, [sp, 0x38]                                |     var_38h = r0;
    0x000683a0 str.w fp, [sp, 0x2c]                              |     __asm ("str.w fp, [var_2ch]");
    0x000683a4 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x000683a8 beq.w 0x68606                                     |         goto label_34;
                                                                 |     }
    0x000683ac ldr r5, [sp, 0x38]                                |     r5 = var_38h;
    0x000683ae mov fp, r7                                        |     
    0x000683b0 add.w sb, sp, 0x48                                |     sb += var_48h;
    0x000683b4 mov r7, sl                                        |     r7 = sl;
                                                                 | label_8:
    0x000683b6 mov r1, r7                                        |     r1 = r7;
    0x000683b8 mov r0, fp                                        |     r0 = fp;
    0x000683ba blx 0x8bb0                                        |     r0 = get_current_dir_name ();
                                                                 |     if (r0 == 0) {
    0x000683be cbz r0, 0x68408                                   |         goto label_35;
                                                                 |     }
    0x000683c0 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x000683c2 movs r2, 0                                        |     r2 = 0;
    0x000683c4 ldr r1, [sp, 0x2c]                                |     r1 = var_2ch;
    0x000683c6 adds r6, 1                                        |     r6++;
    0x000683c8 strb r2, [r3, r1]                                 |     *((r3 + r1)) = r2;
    0x000683ca ldr r3, [sp, 0x48]                                |     r3 = var_48h;
                                                                 |     if (r3 != 0) {
    0x000683cc cbz r3, 0x683d0                                   |         
    0x000683ce strb r2, [r3, r5]                                 |         *((r3 + r5)) = r2;
                                                                 |     }
                                                                 | label_10:
    0x000683d0 ldr r1, [sp, 0x28]                                |     r1 = var_28h;
    0x000683d2 mov r0, r8                                        |     r0 = r8;
    0x000683d4 adds r2, r1, 1                                    |     r2 = r1 + 1;
    0x000683d6 ittt ne                                           |     
                                                                 |     if (r2 == r1) {
    0x000683d8 ldrne r3, [sp, 0x44]                              |         r3 = var_44h;
                                                                 |     }
                                                                 |     if (r2 == r1) {
    0x000683da movne r2, 0                                       |         r2 = 0;
                                                                 |     }
                                                                 |     if (r2 == r1) {
    0x000683dc strbne r2, [r3, r1]                               |         *((r3 + r1)) = r2;
                                                                 |     }
    0x000683de mov r1, r6                                        |     r1 = r6;
    0x000683e0 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x000683e2 ldr r5, [sp, 0x1c]                                |     r5 = var_1ch;
    0x000683e4 str r3, [sp, 4]                                   |     var_4h = r3;
    0x000683e6 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x000683e8 str r3, [sp]                                      |     *(sp) = r3;
    0x000683ea ldrd r2, r3, [sp, 0x44]                           |     __asm ("ldrd r2, r3, [var_48h]");
    0x000683ee blx r5                                            |     r0 = uint32_t (*r5)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x000683f0 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000683f2 blt.w 0x685e8                                     |         goto label_36;
                                                                 |     }
    0x000683f6 movs r3, 0                                        |     r3 = 0;
    0x000683f8 adds r4, 1                                        |     r4++;
    0x000683fa str r3, [sp, 0x48]                                |     var_48h = r3;
    0x000683fc ldrb r5, [r4]                                     |     r5 = *(r4);
    0x000683fe cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x00068400 bne.w 0x681ee                                     |         goto label_4;
                                                                 |     }
                                                                 | label_27:
    0x00068404 movs r5, 0                                        |     r5 = 0;
    0x00068406 b 0x682a2                                         |     goto label_7;
                                                                 | label_35:
    0x00068408 cmp r7, 0x27                                      |     
                                                                 |     if (r7 == 0x27) {
    0x0006840a beq 0x68500                                       |         goto label_37;
                                                                 |     }
    0x0006840c cmp r7, 0x22                                      |     
                                                                 |     if (r7 == 0x22) {
    0x0006840e beq.w 0x6852e                                     |         goto label_38;
                                                                 |     }
    0x00068410 strh r6, [r1, 4]                                  |     *((r1 + 4)) = r6;
    0x00068412 cmp r7, 0x5c                                      |     
                                                                 |     if (r7 == 0x5c) {
    0x00068414 beq 0x6842e                                       |         goto label_11;
                                                                 |     }
    0x00068416 ldr r0, [sp, 0x3c]                                |     r0 = var_3ch;
    0x00068418 mov r1, r7                                        |     r1 = r7;
    0x0006841a blx 0x8bb0                                        |     r0 = get_current_dir_name ();
    0x0006841e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00068420 beq.w 0x685f0                                     |         goto label_39;
                                                                 |     }
    0x00068424 ldrb r7, [r4, 1]!                                 |     r7 = *((r4 += 1));
    0x00068428 cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x0006842a bne 0x683b6                                       |         goto label_8;
                                                                 |     }
    0x0006842c b 0x6826a                                         |     goto label_9;
                                                                 | label_11:
    0x0006842e ldrb r7, [r4, 1]                                  |     r7 = *((r4 + 1));
    0x00068430 adds r4, 1                                        |     r4++;
    0x00068432 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00068434 beq.w 0x6826a                                     |         goto label_9;
                                                                 |     }
    0x00068438 ldr r0, [pc, 0x1fc]                               |     
    0x0006843a mov r1, r7                                        |     r1 = r7;
    0x0006843c add r0, pc                                        |     r0 = 0xd0a78;
    0x0006843e blx 0x8bb0                                        |     r0 = get_current_dir_name ();
    0x00068442 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00068444 beq 0x684e2                                       |         goto label_40;
                                                                 |     }
                                                                 | label_20:
    0x00068446 ldrb r7, [r4, 1]                                  |     r7 = *((r4 + 1));
    0x00068448 adds r4, 1                                        |     r4++;
    0x0006844a cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0006844c beq.w 0x6826a                                     |         goto label_9;
                                                                 |     }
                                                                 | label_14:
    0x00068450 ldr.w fp, [pc, 0x1e8]                             |     
    0x00068454 mov.w sb, -1                                      |     sb = -1;
    0x00068458 ldr r3, [pc, 0x1e4]                               |     
    0x0006845a add.w sl, sp, 0x48                                |     sl += var_48h;
    0x0006845e add fp, pc                                        |     fp = 0xd0a9e;
    0x00068460 add r3, pc                                        |     r3 = 0xd0aa4;
    0x00068462 str r3, [sp, 0x34]                                |     var_34h = r3;
                                                                 | label_12:
    0x00068464 mov r1, r7                                        |     r1 = r7;
    0x00068466 mov r0, fp                                        |     r0 = fp;
    0x00068468 blx 0x8bb0                                        |     r0 = get_current_dir_name ();
                                                                 |     if (r0 != 0) {
    0x0006846c cbz r0, 0x6848e                                   |         
    0x0006846e ldr r3, [sp, 0x44]                                |         r3 = var_44h;
    0x00068470 movs r2, 0                                        |         r2 = 0;
    0x00068472 ldr r1, [sp, 0x2c]                                |         r1 = var_2ch;
    0x00068474 adds r6, 1                                        |         r6++;
    0x00068476 strb r2, [r3, r1]                                 |         *((r3 + r1)) = r2;
    0x00068478 ldr r3, [sp, 0x48]                                |         r3 = var_48h;
                                                                 |         if (r3 != 0) {
    0x0006847a cbz r3, 0x6847e                                   |             
    0x0006847c strb r2, [r3, r5]                                 |             *((r3 + r5)) = r2;
                                                                 |         }
    0x0006847e cmp.w sb, -1                                      |         
    0x00068482 ittt ne                                           |         
                                                                 |         if (sb == -1) {
    0x00068484 ldrne r3, [sp, 0x48]                              |             r3 = var_48h;
                                                                 |         }
                                                                 |         if (sb == -1) {
    0x00068486 movne r2, 0                                       |             r2 = 0;
                                                                 |         }
                                                                 |         if (sb == -1) {
    0x00068488 strbne r2, [r3, sb]                               |             *((r3 + sb)) = r2;
                                                                 |         }
    0x0006848c b 0x683d0                                         |         goto label_10;
                                                                 |     }
    0x0006848e cmp r7, 0x5c                                      |     
                                                                 |     if (r7 == 0x5c) {
    0x00068490 beq 0x6842e                                       |         goto label_11;
                                                                 |     }
    0x00068492 ldr r0, [sp, 0x34]                                |     r0 = var_34h;
    0x00068494 mov r1, r7                                        |     r1 = r7;
    0x00068496 blx 0x8bb0                                        |     r0 = get_current_dir_name ();
    0x0006849a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006849c beq.w 0x685d0                                     |         goto label_41;
                                                                 |     }
    0x000684a0 cmp.w sb, -1                                      |     
    0x000684a4 it eq                                             |     
                                                                 |     if (sb != -1) {
    0x000684a6 moveq sb, r5                                      |         sb = r5;
                                                                 |     }
                                                                 | label_18:
    0x000684a8 movs r2, 1                                        |     r2 = 1;
    0x000684aa adds r1, r5, 2                                    |     r1 = r5 + 2;
    0x000684ac mov r0, sl                                        |     r0 = sl;
    0x000684ae bl 0x6530c                                        |     fcn_0006530c (r0, r1, r2);
    0x000684b2 ldr r3, [sp, 0x48]                                |     r3 = var_48h;
    0x000684b4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000684b6 beq.w 0x685e0                                     |         goto label_42;
                                                                 |     }
    0x000684ba strb r7, [r3, r5]                                 |     *((r3 + r5)) = r7;
    0x000684bc adds r5, 1                                        |     r5++;
    0x000684be ldrb r7, [r4, 1]!                                 |     r7 = *((r4 += 1));
    0x000684c2 cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x000684c4 bne 0x68464                                       |         goto label_12;
                                                                 |     }
    0x000684c6 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x000684c8 ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x000684ca strb r7, [r3, r2]                                 |     *((r3 + r2)) = r7;
    0x000684cc ldr r3, [sp, 0x48]                                |     r3 = var_48h;
                                                                 |     if (r3 != 0) {
    0x000684ce cbz r3, 0x684d2                                   |         
                                                                 | label_21:
    0x000684d0 strb r7, [r3, r5]                                 |         *((r3 + r5)) = r7;
                                                                 |     }
    0x000684d2 cmp.w sb, -1                                      |     
    0x000684d6 ittt ne                                           |     
                                                                 |     if (sb == -1) {
    0x000684d8 ldrne r3, [sp, 0x48]                              |         r3 = var_48h;
                                                                 |     }
                                                                 |     if (sb == -1) {
    0x000684da movne r2, 0                                       |         r2 = 0;
                                                                 |     }
                                                                 |     if (sb == -1) {
    0x000684dc strbne r2, [r3, sb]                               |         *((r3 + sb)) = r2;
                                                                 |     }
    0x000684e0 b 0x68278                                         |     goto label_13;
                                                                 | label_40:
    0x000684e2 movs r2, 1                                        |     r2 = 1;
    0x000684e4 adds r1, r5, 2                                    |     r1 = r5 + 2;
    0x000684e6 add r0, sp, 0x48                                  |     r0 += var_48h;
    0x000684e8 bl 0x6530c                                        |     fcn_0006530c (r0, r1, r2);
    0x000684ec ldr r3, [sp, 0x48]                                |     r3 = var_48h;
    0x000684ee cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000684f0 beq 0x685e0                                       |         goto label_42;
                                                                 |     }
    0x000684f2 strb r7, [r3, r5]                                 |     *((r3 + r5)) = r7;
    0x000684f4 adds r4, 1                                        |     r4++;
    0x000684f6 ldrb r7, [r4]                                     |     r7 = *(r4);
    0x000684f8 adds r5, 1                                        |     r5++;
    0x000684fa cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x000684fc bne 0x68450                                       |         goto label_14;
                                                                 |     }
    0x000684fe b 0x6826a                                         |     goto label_9;
                                                                 | label_37:
    0x00068500 ldrb r7, [r4, 1]                                  |     r7 = *((r4 + 1));
    0x00068502 adds r4, 1                                        |     r4++;
    0x00068504 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00068506 beq.w 0x6826a                                     |         goto label_9;
                                                                 |     }
                                                                 | label_16:
    0x0006850a cmp r7, 0x27                                      |     
                                                                 |     if (r7 == 0x27) {
    0x0006850c beq.w 0x68260                                     |         goto label_15;
                                                                 |     }
    0x00068510 movs r2, 1                                        |     r2 = 1;
    0x00068512 adds r1, r5, 2                                    |     r1 = r5 + 2;
    0x00068514 mov r0, sb                                        |     r0 = sb;
    0x00068516 bl 0x6530c                                        |     fcn_0006530c (r0, r1, r2);
    0x0006851a ldr r3, [sp, 0x48]                                |     r3 = var_48h;
    0x0006851c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006851e beq 0x685e0                                       |         goto label_42;
                                                                 |     }
    0x00068520 strb r7, [r3, r5]                                 |     *((r3 + r5)) = r7;
    0x00068522 adds r5, 1                                        |     r5++;
    0x00068524 ldrb r7, [r4, 1]!                                 |     r7 = *((r4 += 1));
    0x00068528 cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x0006852a bne 0x6850a                                       |         goto label_16;
                                                                 |     }
    0x0006852c b 0x6826a                                         |     goto label_9;
                                                                 | label_38:
    0x0006852e ldrb r7, [r4, 1]                                  |     r7 = *((r4 + 1));
    0x00068530 adds r4, 1                                        |     r4++;
    0x00068532 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00068534 beq.w 0x6826a                                     |         goto label_9;
                                                                 |     }
                                                                 | label_17:
    0x00068538 cmp r7, 0x22                                      |     
                                                                 |     if (r7 == 0x22) {
    0x0006853a beq.w 0x68260                                     |         goto label_15;
                                                                 |     }
    0x0006853e cmp r7, 0x5c                                      |     
                                                                 |     if (r7 == 0x5c) {
    0x00068540 beq 0x68560                                       |         goto label_43;
                                                                 |     }
    0x00068542 movs r2, 1                                        |     r2 = 1;
    0x00068544 adds r1, r5, 2                                    |     r1 = r5 + 2;
    0x00068546 mov r0, sb                                        |     r0 = sb;
    0x00068548 bl 0x6530c                                        |     fcn_0006530c (r0, r1, r2);
    0x0006854c ldr r3, [sp, 0x48]                                |     r3 = var_48h;
    0x0006854e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00068550 beq 0x685e0                                       |         goto label_42;
                                                                 |     }
    0x00068552 strb r7, [r3, r5]                                 |     *((r3 + r5)) = r7;
    0x00068554 adds r5, 1                                        |     r5++;
    0x00068556 ldrb r7, [r4, 1]!                                 |     r7 = *((r4 += 1));
    0x0006855a cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x0006855c bne 0x68538                                       |         goto label_17;
                                                                 |     }
    0x0006855e b 0x6826a                                         |     goto label_9;
                                                                 | label_43:
    0x00068560 ldrb.w sl, [r4, 1]                                |     sl = *((r4 + 1));
    0x00068564 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x00068568 beq.w 0x6826a                                     |         goto label_9;
                                                                 |     }
    0x0006856c ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x0006856e mov r1, sl                                        |     r1 = sl;
    0x00068570 blx 0x8bb0                                        |     r0 = get_current_dir_name ();
                                                                 |     if (r0 == 0) {
    0x00068574 cbz r0, 0x68594                                   |         goto label_44;
                                                                 |     }
    0x00068576 movs r2, 1                                        |     r2 = 1;
    0x00068578 adds r1, r5, 2                                    |     r1 = r5 + 2;
    0x0006857a mov r0, sb                                        |     r0 = sb;
    0x0006857c bl 0x6530c                                        |     r0 = fcn_0006530c (r0, r1, r2);
                                                                 |     if (r0 == 0) {
    0x00068580 cbz r0, 0x685de                                   |         goto label_29;
                                                                 |     }
    0x00068582 ldr r2, [sp, 0x48]                                |     r2 = var_48h;
    0x00068584 adds r4, 2                                        |     r4 += 2;
    0x00068586 strb.w sl, [r2, r5]                               |     *((r2 + r5)) = sl;
    0x0006858a adds r2, r5, 1                                    |     r2 = r5 + 1;
    0x0006858c ldrb r7, [r4]                                     |     r7 = *(r4);
                                                                 |     if (r7 == 0) {
    0x0006858e cbz r7, 0x685bc                                   |         goto label_45;
                                                                 |     }
                                                                 |     do {
    0x00068590 mov r5, r2                                        |         r5 = r2;
    0x00068592 b 0x68538                                         |         goto label_17;
                                                                 | label_44:
    0x00068594 cmp.w sl, 0xa                                     |         
                                                                 |         if (sl == 0xa) {
    0x00068598 beq 0x685c0                                       |             goto label_46;
                                                                 |         }
    0x0006859a movs r2, 1                                        |         r2 = 1;
    0x0006859c adds r1, r5, 3                                    |         r1 = r5 + 3;
    0x0006859e mov r0, sb                                        |         r0 = sb;
    0x000685a0 bl 0x6530c                                        |         r0 = fcn_0006530c (r0, r1, r2);
                                                                 |         if (r0 == 0) {
    0x000685a4 cbz r0, 0x685de                                   |             goto label_29;
                                                                 |         }
    0x000685a6 ldr r2, [sp, 0x48]                                |         r2 = var_48h;
    0x000685a8 adds r4, 2                                        |         r4 += 2;
    0x000685aa strb r7, [r2, r5]                                 |         *((r2 + r5)) = r7;
    0x000685ac adds r2, r5, 2                                    |         r2 = r5 + 2;
    0x000685ae ldr r1, [sp, 0x48]                                |         r1 = var_48h;
    0x000685b0 add r1, r5                                        |         r1 += r5;
    0x000685b2 strb.w sl, [r1, 1]                                |         *((r1 + 1)) = sl;
    0x000685b6 ldrb r7, [r4]                                     |         r7 = *(r4);
    0x000685b8 cmp r7, 0                                         |         
    0x000685ba bne 0x68590                                       |         
                                                                 |     } while (r7 != 0);
                                                                 | label_45:
    0x000685bc mov r5, r2                                        |     r5 = r2;
    0x000685be b 0x6826a                                         |     goto label_9;
                                                                 | label_46:
    0x000685c0 ldrb r7, [r4, 2]                                  |     r7 = *((r4 + 2));
    0x000685c2 adds r4, 2                                        |     r4 += 2;
    0x000685c4 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x000685c6 beq.w 0x6826a                                     |         goto label_9;
                                                                 |     }
    0x000685ca mov r2, r5                                        |     r2 = r5;
    0x000685cc mov r5, r2                                        |     r5 = r2;
    0x000685ce b 0x68538                                         |     goto label_17;
                                                                 | label_41:
    0x000685d0 mov.w sb, -1                                      |     sb = -1;
    0x000685d4 b 0x684a8                                         |     goto label_18;
                                                                 | label_33:
    0x000685d6 mov.w r3, -1                                      |     r3 = -1;
    0x000685da str r3, [sp, 0x28]                                |     var_28h = r3;
    0x000685dc b 0x6836a                                         |     goto label_19;
                                                                 | label_29:
    0x000685de ldr r3, [sp, 0x48]                                |     r3 = var_48h;
                                                                 |     do {
                                                                 | label_42:
    0x000685e0 mvn r5, 0xb                                       |         r5 = ~0xb;
    0x000685e4 str r3, [sp, 0x38]                                |         var_38h = r3;
    0x000685e6 b 0x682a2                                         |         goto label_7;
                                                                 | label_36:
    0x000685e8 ldr r3, [sp, 0x48]                                |         r3 = var_48h;
    0x000685ea mov r5, r0                                        |         r5 = r0;
    0x000685ec str r3, [sp, 0x38]                                |         var_38h = r3;
    0x000685ee b 0x682a2                                         |         goto label_7;
                                                                 | label_39:
    0x000685f0 movs r2, 1                                        |         r2 = 1;
    0x000685f2 adds r1, r5, 2                                    |         r1 = r5 + 2;
    0x000685f4 add r0, sp, 0x48                                  |         r0 += var_48h;
    0x000685f6 bl 0x6530c                                        |         fcn_0006530c (r0, r1, r2);
    0x000685fa ldr r3, [sp, 0x48]                                |         r3 = var_48h;
    0x000685fc cmp r0, 0                                         |         
    0x000685fe beq 0x685e0                                       |         
                                                                 |     } while (r0 == 0);
    0x00068600 strb r7, [r3, r5]                                 |     *((r3 + r5)) = r7;
    0x00068602 adds r5, 1                                        |     r5++;
    0x00068604 b 0x68446                                         |     goto label_20;
                                                                 | label_34:
    0x00068606 mov r5, r0                                        |     r5 = r0;
    0x00068608 b 0x6826a                                         |     goto label_9;
                                                                 | label_28:
    0x0006860a blx 0x927c                                        |     fprintf_chk ()
    0x0006860e nop                                               |     
    0x00068610 lsrs r0, r6, 4                                    |     r0 = r6 >> 4;
    0x00068612 movs r6, r0                                       |     r6 = r0;
    0x00068614 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x00068616 movs r0, r0                                       |     
    0x00068618 b 0x684d0                                         |     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/libexec/udevadm @ 0x68644 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00068644 ()                  | void fcn_00068644 (int16_t arg3) {
                                             |     int16_t var_0h;
                                             |     int16_t var_ch;
                                             |     int16_t var_10h;
                                             |     int16_t var_14h;
                                             |     r2 = arg3;
    0x00068644 push {r4, lr}                 |     
    0x00068646 sub sp, 0x18                  |     
    0x00068648 ldr.w lr, [pc, 0x4c]          |     
    0x0006864c add r3, sp, 0xc               |     r3 += var_ch;
    0x0006864e movs r4, 0                    |     r4 = 0;
    0x00068650 ldr.w ip, [pc, 0x48]          |     ip = *(0x6869c);
    0x00068654 add lr, pc                    |     lr = 0xd0cf0;
    0x00068656 str r3, [sp]                  |     *(sp) = r3;
    0x00068658 add r3, sp, 0x10              |     r3 += var_10h;
    0x0006865a ldr.w ip, [lr, ip]            |     
    0x0006865e ldr.w ip, [ip]                |     ip = *(0xd0cf0);
    0x00068662 str.w ip, [sp, 0x14]          |     __asm ("str.w ip, [var_14h]");
    0x00068666 mov.w ip, 0                   |     
    0x0006866a strd r4, r2, [sp, 0xc]        |     __asm ("strd r4, r2, [var_ch]");
    0x0006866e ldr r2, [pc, 0x30]            |     
    0x00068670 add r2, pc                    |     r2 = 0xd0d16;
    0x00068672 bl 0x68180                    |     fcn_00068180 (r0, r1, r2, r3, r4, r5);
    0x00068676 ldr r2, [pc, 0x2c]            |     
    0x00068678 cmp r0, 0                     |     
    0x0006867a ldr r3, [pc, 0x20]            |     r3 = *(0x6869e);
    0x0006867c it ge                         |     
                                             |     if (r0 < 0) {
    0x0006867e ldrge r0, [sp, 0xc]           |         r0 = var_ch;
                                             |     }
    0x00068680 add r2, pc                    |     r2 = 0xd0d2a;
    0x00068682 ldr r3, [r2, r3]              |     r3 = *(0xd0d2a);
    0x00068684 ldr r2, [r3]                  |     r2 = *(0xd0d2a);
    0x00068686 ldr r3, [sp, 0x14]            |     r3 = var_14h;
    0x00068688 eors r2, r3                   |     r2 ^= r3;
    0x0006868a mov.w r3, 0                   |     r3 = 0;
                                             |     if (r2 == r3) {
    0x0006868e bne 0x68694                   |         
    0x00068690 add sp, 0x18                  |         
    0x00068692 pop {r4, pc}                  |         
                                             |     }
    0x00068694 blx 0x927c                    |     fprintf_chk ()
    0x00068698 lsls r0, r6, 0x11             |     r0 = r6 << 0x11;
    0x0006869a movs r6, r0                   |     r6 = r0;
    0x0006869c lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x0006869e movs r0, r0                   |     
    0x000686a0 invalid                       |     
                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x686a8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.000686a8 ()                                  | void fcn_000686a8 () {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int32_t var_4h_3;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_4h_2;
    0x000686a8 ldmdbmi r0, {r1, r2, r3, sl, ip, sp, pc}      |     __asm ("ldmdbmi r0, {r1, r2, r3, sl, ip, sp, pc}");
    0x000686ac ldr r3, [pc, 0x40]                            |     
    0x000686ae push {lr}                                     |     
    0x000686b0 sub sp, 8                                     |     
    0x000686b2 add r2, sp, 0xc                               |     r2 += var_ch;
    0x000686b4 add r1, pc                                    |     r1 += pc;
    0x000686b6 ldr r3, [r1, r3]                              |     r3 = *((r1 + r3));
    0x000686b8 ldr r1, [r2], 4                               |     r1 = *(r2);
                                                             |     r2 += 4;
    0x000686bc ldr r3, [r3]                                  |     r3 = *(0x686f0);
    0x000686be str r3, [sp, 4]                               |     var_4h = r3;
    0x000686c0 mov.w r3, 0                                   |     r3 = 0;
    0x000686c4 str r2, [sp]                                  |     *(sp) = r2;
    0x000686c6 bl 0x68644                                    |     fcn_00068644 (r0);
    0x000686ca ldr r2, [pc, 0x28]                            |     
    0x000686cc ldr r3, [pc, 0x20]                            |     r3 = *(0x686f0);
    0x000686ce add r2, pc                                    |     r2 = 0xd0dc8;
    0x000686d0 ldr r3, [r2, r3]                              |     r3 = *(0xd0dc8);
    0x000686d2 ldr r2, [r3]                                  |     r2 = *(0xd0dc8);
    0x000686d4 ldr r3, [sp, 4]                               |     r3 = var_4h;
    0x000686d6 eors r2, r3                                   |     r2 ^= r3;
    0x000686d8 mov.w r3, 0                                   |     r3 = 0;
                                                             |     if (r2 == r3) {
    0x000686dc bne 0x686e8                                   |         
    0x000686de add sp, 8                                     |         
    0x000686e0 ldr lr, [sp], 4                               |         
    0x000686e4 add sp, 0xc                                   |         
    0x000686e6 bx lr                                         |         return;
                                                             |     }
    0x000686e8 blx 0x927c                                    |     fprintf_chk ()
    0x000686ec lsls r0, r2, 0x10                             |     r0 = r2 << 0x10;
    0x000686ee movs r6, r0                                   |     r6 = r0;
    0x000686f0 lsls r0, r0, 0x13                             |     r0 <<= 0x13;
    0x000686f2 movs r0, r0                                   |     
    0x000686f4 lsls r6, r6, 0xf                              |     r6 <<= 0xf;
    0x000686f6 movs r6, r0                                   |     r6 = r0;
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x68b38 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00068b38 ()                              | void fcn_00068b38 (int16_t arg_88h, int16_t arg_1d0h, uint32_t arg1, uint32_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     int16_t var_4h;
                                                         |     int16_t var_ch;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_14h;
                                                         |     int16_t var_1ch;
                                                         |     int16_t var_20h;
                                                         |     int16_t var_24h;
                                                         |     int16_t var_0h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x00068b38 mvnsmi lr, 0xb4000                        |     __asm ("mvnsmi lr, aav.0x000000ff");
    0x00068b3c mov r5, r2                                |     r5 = r2;
    0x00068b3e ldr r2, [pc, 0x2cc]                       |     
    0x00068b40 mov r6, r3                                |     r6 = r3;
    0x00068b42 sub sp, 0x2c                              |     
    0x00068b44 ldr r3, [pc, 0x2c8]                       |     r3 = *(0x68e10);
    0x00068b46 add r2, pc                                |     r2 = 0xd1958;
    0x00068b48 ldrb.w r7, [sp, 0x48]                     |     r7 = var_0h;
    0x00068b4c ldr r3, [r2, r3]                          |     
    0x00068b4e ldr r3, [r3]                              |     r3 = *(0xd1958);
    0x00068b50 str r3, [sp, 0x24]                        |     var_24h = r3;
    0x00068b52 mov.w r3, 0                               |     r3 = 0;
    0x00068b56 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00068b58 beq.w 0x68d98                             |         goto label_4;
                                                         |     }
    0x00068b5c cmp r5, 0                                 |     
                                                         |     if (r5 == 0) {
    0x00068b5e beq.w 0x68dac                             |         goto label_5;
                                                         |     }
    0x00068b62 cmp r1, 0                                 |     
                                                         |     if (r1 == 0) {
    0x00068b64 beq 0x68c2c                               |         goto label_0;
                                                         |     }
    0x00068b66 mov r4, r0                                |     r4 = r0;
    0x00068b68 ldrb r0, [r0]                             |     r0 = *(r0);
    0x00068b6a sub.w ip, r0, 0x22                        |     
    0x00068b6e cmp.w ip, 0x56                            |     
                                                         |     if (ip > 0x56) {
    0x00068b72 bhi 0x68c2c                               |         goto label_0;
                                                         |     }
                                                         |     /* switch table (88 cases) at 0x68b78 */
    0x00068b74 tbh [pc, ip, lsl 1]                       |     __asm ("tbh [pc, ip, lsl 1]");
    0x00068c26 cmp r1, 4                                 |     
                                                         |     if (r1 > 4) {
    0x00068c28 bhi.w 0x68dc0                             |         goto label_6;
                                                         |     }
                                                         |     do {
                                                         | label_0:
    0x00068c2c mvn r0, 0x15                              |         r0 = ~0x15;
                                                         | label_1:
    0x00068c30 ldr r2, [pc, 0x1e0]                       |         
    0x00068c32 ldr r3, [pc, 0x1dc]                       |         r3 = *(0x68e12);
    0x00068c34 add r2, pc                                |         r2 = 0xd1a4c;
    0x00068c36 ldr r3, [r2, r3]                          |         r3 = *(0xd1a4c);
    0x00068c38 ldr r2, [r3]                              |         r2 = *(0xd1a4c);
    0x00068c3a ldr r3, [sp, 0x24]                        |         r3 = var_24h;
    0x00068c3c eors r2, r3                               |         r2 ^= r3;
    0x00068c3e mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00068c42 bne.w 0x68e08                             |             goto label_7;
                                                         |         }
    0x00068c46 add sp, 0x2c                              |         
    0x00068c48 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
    0x00068c4c cmp r1, 2                                 |         
    0x00068c4e bls 0x68c2c                               |         
                                                         |     } while (r1 < 2);
    0x00068c50 bl 0x6f458                                |     r0 = fcn_0006f458 ();
    0x00068c54 subs.w sb, r0, 0                          |     sb = r0 - 0;
                                                         |     if (sb < r0) {
    0x00068c58 blt 0x68c2c                               |         goto label_0;
                                                         |     }
    0x00068c5a ldrb r0, [r4, 1]                          |     r0 = *((r4 + 1));
    0x00068c5c bl 0x6f458                                |     r0 = fcn_0006f458 ();
    0x00068c60 subs.w r8, r0, 0                          |     r8 = r0 - 0;
    0x00068c62 lsrs r0, r0, 0x20                         |     r0 >>= 0x20;
                                                         |     if (r0 < r0) {
    0x00068c64 blt 0x68c2c                               |         goto label_0;
                                                         |     }
    0x00068c66 ldrb r0, [r4, 2]                          |     r0 = *((r4 + 2));
    0x00068c68 bl 0x6f458                                |     r0 = fcn_0006f458 ();
    0x00068c6c cmp r0, 0                                 |     
                                                         |     if (r0 < 0) {
    0x00068c6e blt 0x68c2c                               |         goto label_0;
                                                         |     }
    0x00068c70 orr.w r3, sb, r8                          |     r3 = sb | r8;
    0x00068c74 orrs r3, r0                               |     r3 |= r0;
    0x00068c76 it ne                                     |     
                                                         |     if (r3 == r0) {
    0x00068c78 orrne r7, r7, 1                           |         r7 |= 1;
                                                         |     }
    0x00068c7c cmp r7, 0                                 |     
                                                         |     if (r7 == 0) {
    0x00068c7e beq 0x68c2c                               |         goto label_0;
                                                         |     }
    0x00068c80 lsl.w r3, r8, 3                           |     r3 = r8 << 3;
    0x00068c84 orr.w r3, r3, sb, lsl 6                   |     r3 |= (sb << 6);
    0x00068c88 orrs r3, r0                               |     r3 |= r0;
    0x00068c8a cmp r3, 0xff                              |     
                                                         |     if (r3 > 0xff) {
    0x00068c8c bhi 0x68c2c                               |         goto label_0;
                                                         |     }
    0x00068c8e movs r2, 1                                |     r2 = 1;
    0x00068c90 str r3, [r5]                              |     *(r5) = r3;
    0x00068c92 movs r0, 3                                |     r0 = 3;
    0x00068c94 strb r2, [r6]                             |     *(r6) = r2;
    0x00068c96 b 0x68c30                                 |     goto label_1;
    0x00068c98 cmp r1, 8                                 |     
                                                         |     if (r1 < 8) {
    0x00068c9a bls 0x68c2c                               |         goto label_0;
                                                         |     }
    0x00068c9c mov r6, sp                                |     r6 = sp;
    0x00068c9e add.w r8, r4, 8                           |     r8 = r4 + 8;
                                                         | label_2:
    0x00068ca2 ldrb r0, [r4, 1]!                         |     r0 = *((r4 += 1));
    0x00068ca6 bl 0x6f478                                |     r0 = fcn_0006f478 (r0);
    0x00068caa cmp r0, 0                                 |     
    0x00068cac str r0, [r6, 4]!                          |     *((r6 += 4)) = r0;
                                                         |     if (r0 < 0) {
    0x00068cb0 blt 0x68c30                               |         goto label_1;
                                                         |     }
    0x00068cb2 cmp r4, r8                                |     
                                                         |     if (r4 != r8) {
    0x00068cb4 bne 0x68ca2                               |         goto label_2;
                                                         |     }
    0x00068cb6 ldrd r1, r3, [sp, 4]                      |     __asm ("ldrd r1, r3, [var_4h]");
    0x00068cba eor r7, r7, 1                             |     r7 ^= 1;
    0x00068cbe ldr r2, [sp, 0x20]                        |     r2 = var_20h;
    0x00068cc0 and r7, r7, 1                             |     r7 &= 1;
    0x00068cc4 lsls r3, r3, 0x18                         |     r3 <<= 0x18;
    0x00068cc6 orr.w r3, r3, r1, lsl 28                  |     r3 |= (r1 << 28);
    0x00068cca orrs r3, r2                               |     r3 |= r2;
    0x00068ccc ldrd r1, r2, [sp, 0xc]                    |     __asm ("ldrd r1, r2, [var_ch]");
    0x00068cce asrs r3, r0, 8                            |     r3 = r0 >> 8;
    0x00068cd0 orr.w r3, r3, r1, lsl 20                  |     r3 |= (r1 << 20);
    0x00068cd4 orr.w r3, r3, r2, lsl 16                  |     r3 |= (r2 << 16);
    0x00068cd8 ldrd r1, r2, [sp, 0x14]                   |     __asm ("ldrd r1, r2, [var_14h]");
    0x00068cda asrs r5, r0, 8                            |     r5 = r0 >> 8;
    0x00068cdc orr.w r3, r3, r1, lsl 12                  |     r3 |= (r1 << 12);
    0x00068ce0 orr.w r3, r3, r2, lsl 8                   |     r3 |= (r2 << 8);
    0x00068ce4 ldr r2, [sp, 0x1c]                        |     r2 = var_1ch;
    0x00068ce6 orrs.w r4, r3, r2, lsl 4                  |     r4 = r3 | (r2 << 4);
    0x00068cea it ne                                     |     
                                                         |     if (r4 == r3) {
    0x00068cec movne r7, 0                               |         r7 = 0;
                                                         |     }
    0x00068cee cmp r7, 0                                 |     
                                                         |     if (r7 != 0) {
    0x00068cf0 bne 0x68c2c                               |         goto label_0;
                                                         |     }
    0x00068cf2 mov r0, r4                                |     r0 = r4;
    0x00068cf4 bl 0x7e198                                |     r0 = fcn_0007e198 (r0);
    0x00068cf8 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00068cfa beq 0x68c2c                               |         goto label_0;
                                                         |     }
    0x00068cfc movs r0, 9                                |     r0 = 9;
    0x00068cfe str r4, [r5]                              |     *(r5) = r4;
    0x00068d00 b 0x68c30                                 |     goto label_1;
    0x00068d02 movs r3, 0x5c                             |     r3 = 0x5c;
    0x00068d04 movs r0, 1                                |     r0 = 1;
    0x00068d06 str r3, [r5]                              |     *(r5) = r3;
    0x00068d08 b 0x68c30                                 |     goto label_1;
    0x00068d0a movs r3, 7                                |     r3 = 7;
    0x00068d0c movs r0, 1                                |     r0 = 1;
    0x00068d0e str r3, [r5]                              |     *(r5) = r3;
    0x00068d10 b 0x68c30                                 |     goto label_1;
    0x00068d12 movs r3, 8                                |     r3 = 8;
    0x00068d14 movs r0, 1                                |     r0 = 1;
    0x00068d16 str r3, [r5]                              |     *(r5) = r3;
    0x00068d18 b 0x68c30                                 |     goto label_1;
    0x00068d1a movs r3, 0xc                              |     r3 = 0xc;
    0x00068d1c movs r0, 1                                |     r0 = 1;
    0x00068d1e str r3, [r5]                              |     *(r5) = r3;
    0x00068d20 b 0x68c30                                 |     goto label_1;
    0x00068d22 movs r3, 0xa                              |     r3 = 0xa;
    0x00068d24 movs r0, 1                                |     r0 = 1;
    0x00068d26 str r3, [r5]                              |     *(r5) = r3;
    0x00068d28 b 0x68c30                                 |     goto label_1;
    0x00068d2a movs r3, 0xd                              |     r3 = 0xd;
    0x00068d2c movs r0, 1                                |     r0 = 1;
    0x00068d2e str r3, [r5]                              |     *(r5) = r3;
    0x00068d30 b 0x68c30                                 |     goto label_1;
    0x00068d32 movs r3, 0x20                             |     r3 = 0x20;
    0x00068d34 movs r0, 1                                |     r0 = 1;
    0x00068d36 str r3, [r5]                              |     *(r5) = r3;
    0x00068d38 b 0x68c30                                 |     goto label_1;
    0x00068d3a movs r3, 9                                |     r3 = 9;
    0x00068d3c movs r0, 1                                |     r0 = 1;
    0x00068d3e str r3, [r5]                              |     *(r5) = r3;
    0x00068d40 b 0x68c30                                 |     goto label_1;
    0x00068d42 movs r3, 0xb                              |     r3 = 0xb;
    0x00068d44 movs r0, 1                                |     r0 = 1;
    0x00068d46 str r3, [r5]                              |     *(r5) = r3;
    0x00068d48 b 0x68c30                                 |     goto label_1;
    0x00068d4a cmp r1, 2                                 |     
                                                         |     if (r1 < 2) {
    0x00068d4c bls.w 0x68c2c                             |         goto label_0;
                                                         |     }
    0x00068d50 ldrb r0, [r4, 1]                          |     r0 = *((r4 + 1));
    0x00068d52 bl 0x6f478                                |     r0 = fcn_0006f478 (r0);
    0x00068d56 subs.w r8, r0, 0                          |     r8 = r0 - 0;
                                                         |     if (r8 < r0) {
    0x00068d5a blt.w 0x68c2c                             |         goto label_0;
                                                         |     }
    0x00068d5c add r7, sp, 0x19c                         |     r7 = sp + 0x19c;
    0x00068d5e ldrb r0, [r4, 2]                          |     r0 = *((r4 + 2));
    0x00068d60 bl 0x6f478                                |     r0 = fcn_0006f478 (r0);
    0x00068d64 cmp r0, 0                                 |     
                                                         |     if (r0 < 0) {
    0x00068d66 blt.w 0x68c2c                             |         goto label_0;
                                                         |     }
    0x00068d6a orrs.w r3, r8, r0                         |     r3 = r8 | r0;
    0x00068d6e it ne                                     |     
                                                         |     if (r3 == r8) {
    0x00068d70 orrne r7, r7, 1                           |         r7 |= 1;
                                                         |     }
    0x00068d74 cmp r7, 0                                 |     
                                                         |     if (r7 == 0) {
    0x00068d76 beq.w 0x68c2c                             |         goto label_0;
                                                         |     }
    0x00068d78 add r7, sp, 0x164                         |     r7 = sp + 0x164;
    0x00068d7a orr.w r3, r0, r8, lsl 4                   |     r3 = r0 | (r8 << 4);
    0x00068d7e movs r2, 1                                |     r2 = 1;
    0x00068d80 movs r0, 3                                |     r0 = 3;
    0x00068d82 str r3, [r5]                              |     *(r5) = r3;
    0x00068d84 strb r2, [r6]                             |     *(r6) = r2;
    0x00068d86 b 0x68c30                                 |     goto label_1;
    0x00068d88 movs r3, 0x22                             |     r3 = 0x22;
    0x00068d8a movs r0, 1                                |     r0 = 1;
    0x00068d8c str r3, [r5]                              |     *(r5) = r3;
    0x00068d8e b 0x68c30                                 |     goto label_1;
    0x00068d90 movs r3, 0x27                             |     r3 = 0x27;
    0x00068d92 movs r0, 1                                |     r0 = 1;
    0x00068d94 str r3, [r5]                              |     *(r5) = r3;
    0x00068d96 b 0x68c30                                 |     goto label_1;
                                                         | label_4:
    0x00068d98 ldr r1, [pc, 0x7c]                        |     
    0x00068d9a movs r2, 0x6c                             |     r2 = 0x6c;
    0x00068d9c ldr r3, [pc, 0x7c]                        |     
    0x00068d9e ldr r0, [pc, 0x80]                        |     
    0x00068da0 add r1, pc                                |     r1 = 0xd1bbc;
    0x00068da2 add r3, pc                                |     r3 = 0xd1bc2;
    0x00068da4 adds r1, 7                                |     r1 += 7;
    0x00068da6 add r0, pc                                |     r0 = 0xd1bcc;
    0x00068da8 bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
                                                         | label_5:
    0x00068dac ldr r1, [pc, 0x74]                        |     
    0x00068dae movs r2, 0x6d                             |     r2 = 0x6d;
    0x00068db0 ldr r3, [pc, 0x74]                        |     
    0x00068db2 ldr r0, [pc, 0x78]                        |     
    0x00068db4 add r1, pc                                |     r1 = 0xd1bdc;
    0x00068db6 add r3, pc                                |     r3 = 0xd1be2;
    0x00068db8 adds r1, 7                                |     r1 += 7;
    0x00068dba add r0, pc                                |     r0 = 0xd1bec;
    0x00068dbc bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
                                                         | label_6:
    0x00068dc0 add r6, sp, 4                             |     r6 += var_4h;
    0x00068dc2 add.w r8, r4, 4                           |     r8 = r4 + 4;
                                                         | label_3:
    0x00068dc6 ldrb r0, [r4, 1]!                         |     r0 = *((r4 += 1));
    0x00068dca bl 0x6f478                                |     r0 = fcn_0006f478 (r0);
    0x00068dcc smmla r8, r5, r0, r2                      |     __asm ("smmla r8, r5, r0, r2");
    0x00068dd0 str r0, [r6], 4                           |     *(r6) = r0;
                                                         |     r6 += 4;
                                                         |     if (r1 < 7) {
    0x00068dd4 blt.w 0x68c30                             |         goto label_1;
                                                         |     }
    0x00068dd8 cmp r4, r8                                |     
                                                         |     if (r4 != r8) {
    0x00068dda bne 0x68dc6                               |         goto label_3;
                                                         |     }
    0x00068ddc ldrd r1, r3, [sp, 4]                      |     __asm ("ldrd r1, r3, [var_4h]");
    0x00068de0 eor r7, r7, 1                             |     r7 ^= 1;
    0x00068de2 lsls r1, r0, 0x1c                         |     r1 = r0 << 0x1c;
    0x00068de4 ldr r2, [sp, 0x10]                        |     r2 = var_10h;
    0x00068de6 and r7, r7, 1                             |     r7 &= 1;
    0x00068de8 lsls r1, r0, 0x1c                         |     r1 = r0 << 0x1c;
    0x00068dea lsls r3, r3, 8                            |     r3 <<= 8;
    0x00068dec orr.w r3, r3, r1, lsl 12                  |     r3 |= (r1 << 12);
    0x00068df0 orrs r3, r2                               |     r3 |= r2;
    0x00068df2 ldr r2, [sp, 0xc]                         |     r2 = var_ch;
    0x00068df4 orrs.w r3, r3, r2, lsl 4                  |     r3 |= (r2 << 4);
    0x00068df6 asrs r2, r0, 0xc                          |     r2 = r0 >> 0xc;
    0x00068df8 it ne                                     |     
                                                         |     if (r3 == r3) {
    0x00068dfa movne r7, 0                               |         r7 = 0;
                                                         |     }
    0x00068dfc cmp r7, 0                                 |     
                                                         |     if (r7 != 0) {
    0x00068dfe bne.w 0x68c2c                             |         goto label_0;
                                                         |     }
    0x00068e02 movs r0, 5                                |     r0 = 5;
    0x00068e04 str r3, [r5]                              |     *(r5) = r3;
    0x00068e06 b 0x68c30                                 |     goto label_1;
                                                         | label_7:
    0x00068e08 blx 0x927c                                |     fprintf_chk ()
    0x00068e0c invalid                                   |     
    0x0006dd80 adr r0, 0x1d8                             |     r0 = 0x1d8;
    0x0006dd82 movs r5, r0                               |     r5 = r0;
    0x0006dd84 adr r0, 0x120                             |     r0 = case.0x584aa.6;
    0x0006dd86 movs r5, r0                               |     r5 = r0;
    0x0006dd88 adr r0, 0x118                             |     r0 = case.0x584aa.10;
    0x0006dd8a movs r5, r0                               |     r5 = r0;
    0x0006dd8c ldr r7, [sp, 0x1d0]                       |     r7 = *(arg_1d0h);
    0x0006dd8e movs r5, r0                               |     r5 = r0;
    0x0006dd90 ldr r7, [sp, 0x88]                        |     r7 = *(arg_88h);
    0x0006dd92 movs r5, r0                               |     r5 = r0;
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x68e30 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00068e30 ()                                      | void fcn_00068e30 (int16_t arg_48h, int16_t arg_60h, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_17h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00068e30 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x00068e34 mov r6, r2                                        |     r6 = r2;
    0x00068e36 ldr r2, [pc, 0x180]                               |     
    0x00068e38 mov r8, r3                                        |     r8 = r3;
    0x00068e3a sub sp, 0x24                                      |     
    0x00068e3c ldr r3, [pc, 0x17c]                               |     r3 = *(0x68fbc);
    0x00068e3e add r2, pc                                        |     r2 = 0xd1dfc;
    0x00068e40 ldr.w sl, [sp, 0x48]                              |     sl = *(arg_48h);
    0x00068e44 ldr r3, [r2, r3]                                  |     
    0x00068e46 ldr r3, [r3]                                      |     r3 = *(0xd1dfc);
    0x00068e48 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00068e4a mov.w r3, 0                                       |     r3 = 0;
    0x00068e4e cmp r0, 0                                         |     
                                                                 |     if (arg_48h == ) {
    0x00068e50 beq.w 0x68f7a                                     |         goto label_6;
                                                                 |     }
    0x00068e54 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x00068e58 beq.w 0x68f9e                                     |         goto label_7;
                                                                 |     }
    0x00068e5c mov fp, r1                                        |     
    0x00068e5e mov r4, r0                                        |     r4 = r0;
    0x00068e60 adds r5, r1, 1                                    |     r5 = r1 + 1;
    0x00068e62 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00068e64 beq 0x68f58                                       |         goto label_8;
                                                                 |     }
    0x00068e66 mov r0, r6                                        |     r0 = r6;
    0x00068e68 blx 0x8f38                                        |     r0 = fcn_00008f38 ();
    0x00068e6c mov r7, r0                                        |     r7 = r0;
    0x00068e6e add r0, r5                                        |     r0 += r5;
    0x00068e70 cmp r0, 1                                         |     
    0x00068e72 it lo                                             |     
                                                                 |     if (r0 >= 1) {
    0x00068e74 movlo r0, 1                                       |         r0 = 1;
                                                                 |     }
    0x00068e76 blx 0x9234                                        |     r0 = blkid_safe_string ();
    0x00068e7a mov sb, r0                                        |     sb = r0;
                                                                 |     if (r0 == 0) {
    0x00068e7c cbz r0, 0x68ee2                                   |         goto label_3;
                                                                 |     }
    0x00068e7e mov r1, r6                                        |     r1 = r6;
    0x00068e80 mov r2, r7                                        |     r2 = r7;
    0x00068e82 adds r5, r0, r7                                   |     r5 = r0 + r7;
    0x00068e84 blx 0x8f9c                                        |     fcn_00008f9c ();
                                                                 | label_4:
    0x00068e88 add.w r6, r4, fp                                  |     r6 = r4 + fp;
    0x00068e8c cmp r6, r4                                        |     
                                                                 |     if (r6 < r4) {
    0x00068e8e bls 0x68f90                                       |         goto label_9;
                                                                 |     }
    0x00068e90 movs r3, 0                                        |     r3 = 0;
    0x00068e92 strb.w r3, [sp, 0x17]                             |     var_17h = r3;
    0x00068e96 cmp.w fp, 0                                       |     
                                                                 |     if (fp == 0) {
    0x00068e9a beq 0x68ecc                                       |         goto label_10;
                                                                 |     }
    0x00068e9c mov r1, fp                                        |     r1 = fp;
    0x00068e9e ubfx r3, r8, 1, 1                                 |     r3 = (r8 >> 1) & ((1 << 1) - 1);
    0x00068ea2 str r3, [sp, 8]                                   |     var_8h = r3;
                                                                 |     do {
    0x00068ea4 ldrb r7, [r4]                                     |         r7 = *(r4);
    0x00068ea6 cmp r7, 0x5c                                      |         
                                                                 |         if (r7 == 0x5c) {
    0x00068ea8 bne 0x68eb4                                       |             
    0x00068eaa cmp r1, 1                                         |             
                                                                 |             if (r1 != 1) {
    0x00068eac bne 0x68f02                                       |                 goto label_11;
                                                                 |             }
    0x00068eae tst.w r8, 1                                       |             
                                                                 |             if ((r8 & 1) == 0) {
    0x00068eb2 beq 0x68f3a                                       |                 goto label_12;
                                                                 |             }
                                                                 |         }
    0x00068eb4 adds r4, 1                                        |         r4++;
    0x00068eb6 adds r3, r5, 1                                    |         r3 = r5 + 1;
                                                                 | label_1:
    0x00068eb8 strb r7, [r5]                                     |         *(r5) = r7;
    0x00068eba mov r5, r3                                        |         r5 = r3;
                                                                 | label_0:
    0x00068ebc cmp r6, r4                                        |         
                                                                 |         if (r6 < r4) {
    0x00068ebe bls 0x68f90                                       |             goto label_9;
                                                                 |         }
    0x00068ec0 subs r1, r6, r4                                   |         r1 = r6 - r4;
    0x00068ec2 mov.w r3, 0                                       |         r3 = 0;
    0x00068ec4 lsls r0, r0, 0xc                                  |         r0 <<= 0xc;
    0x00068ec6 strb.w r3, [sp, 0x17]                             |         var_17h = r3;
    0x00068eca bne 0x68ea4                                       |         
                                                                 |     } while (r0 != r0);
                                                                 | label_10:
    0x00068ecc ldr r1, [pc, 0xf0]                                |     
    0x00068ece movw r2, 0x13d                                    |     r2 = 0x13d;
    0x00068ed2 ldr r3, [pc, 0xf0]                                |     
    0x00068ed4 ldr r0, [pc, 0xf0]                                |     
    0x00068ed6 add r1, pc                                        |     r1 = 0xd1e9a;
    0x00068ed8 add r3, pc                                        |     r3 = 0xd1ea2;
    0x00068eda adds r1, 7                                        |     r1 += 7;
    0x00068edc add r0, pc                                        |     r0 = 0xd1ea8;
    0x00068ede bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_3:
    0x00068ee2 mvn r3, 0xb                                       |     r3 = ~0xb;
                                                                 |     do {
                                                                 | label_5:
    0x00068ee6 ldr r1, [pc, 0xe4]                                |         
    0x00068ee8 ldr r2, [pc, 0xd0]                                |         r2 = *(0x68fbc);
    0x00068eea add r1, pc                                        |         r1 = 0xd1ebc;
    0x00068eec ldr r2, [r1, r2]                                  |         r2 = *(0xd1ebc);
    0x00068eee ldr r1, [r2]                                      |         r1 = *(0xd1ebc);
    0x00068ef0 ldr r2, [sp, 0x1c]                                |         r2 = var_1ch;
    0x00068ef2 eors r1, r2                                       |         r1 ^= r2;
    0x00068ef4 mov.w r2, 0                                       |         r2 = 0;
    0x00068ef6 lsls r0, r0, 8                                    |         r0 <<= 8;
                                                                 |         if (r0 != r0) {
    0x00068ef8 bne 0x68fb4                                       |             goto label_13;
                                                                 |         }
    0x00068efa mov r0, r3                                        |         r0 = r3;
    0x00068efc add sp, 0x24                                      |         
    0x00068efe pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_11:
    0x00068f02 ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x00068f04 add.w fp, r4, 1                                   |         
    0x00068f08 subs r1, 1                                        |         r1--;
    0x00068f0a add r2, sp, 0x18                                  |         r2 += var_18h;
    0x00068f0c mov r0, fp                                        |         r0 = fp;
    0x00068f0e str r3, [sp]                                      |         *(sp) = r3;
    0x00068f10 add.w r3, sp, 0x17                                |         r3 += var_17h;
    0x00068f14 bl 0x68b38                                        |         fcn_00068b38 (r0, r1, r2, r3, r4, r5);
    0x00068f16 cdp2 p14, 1, c1, c0, c3, 0                        |         __asm ("cdp2 p14, 1, c1, c0, c3, 0");
                                                                 |         if (r1 >= 1) {
    0x00068f1a blt 0x68f2e                                       |             
    0x00068f1c ldrb.w r2, [sp, 0x17]                             |             r2 = var_17h;
    0x00068f20 ldr r1, [sp, 0x18]                                |             r1 = var_18h;
                                                                 |             if (r2 == 0) {
    0x00068f22 cbz r2, 0x68f4a                                   |                 goto label_14;
                                                                 |             }
    0x00068f24 strb r1, [r5], 1                                  |             *(r5) = r1;
                                                                 |             r5++;
                                                                 | label_2:
    0x00068f28 adds r0, r3, 1                                    |             r0 = r3 + 1;
    0x00068f2a add r4, r0                                        |             r4 += r0;
    0x00068f2c b 0x68ebc                                         |             goto label_0;
                                                                 |         }
    0x00068f2e tst.w r8, 1                                       |         
                                                                 |         if ((r8 & 1) == 0) {
    0x00068f32 beq 0x68f6e                                       |             goto label_15;
                                                                 |         }
    0x00068f34 mov r4, fp                                        |         r4 = fp;
    0x00068f36 adds r3, r5, 1                                    |         r3 = r5 + 1;
    0x00068f38 b 0x68eb8                                         |         goto label_1;
                                                                 | label_12:
    0x00068f3a mvn r3, 0x15                                      |         r3 = ~0x15;
    0x00068f3e mov r0, sb                                        |         r0 = sb;
    0x00068f40 str r3, [sp, 8]                                   |         var_8h = r3;
    0x00068f42 blx 0x8dac                                        |         fcn_00008dac ();
    0x00068f46 ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x00068f48 b 0x68ee6                                         |         
                                                                 |     } while (1);
                                                                 | label_14:
    0x00068f4a mov r0, r5                                        |     r0 = r5;
    0x00068f4c str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00068f4e bl 0x7e2a8                                        |     fcn_0007e2a8 (r0, r1);
    0x00068f52 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00068f54 add r5, r0                                        |     r5 += r0;
    0x00068f56 b 0x68f28                                         |     goto label_2;
                                                                 | label_8:
    0x00068f58 cmp r5, 1                                         |     
    0x00068f5a mov r0, r5                                        |     r0 = r5;
    0x00068f5c it lo                                             |     
                                                                 |     if (r5 >= 1) {
    0x00068f5e movlo r0, 1                                       |         r0 = 1;
                                                                 |     }
    0x00068f60 blx 0x9234                                        |     r0 = blkid_safe_string ();
    0x00068f64 mov r5, r0                                        |     r5 = r0;
    0x00068f66 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00068f68 beq 0x68ee2                                       |         goto label_3;
                                                                 |     }
    0x00068f6a mov sb, r0                                        |     sb = r0;
    0x00068f6c b 0x68e88                                         |     goto label_4;
                                                                 | label_15:
    0x00068f6e mov r0, sb                                        |     r0 = sb;
    0x00068f70 str r3, [sp, 8]                                   |     var_8h = r3;
    0x00068f72 blx 0x8dac                                        |     fcn_00008dac ();
    0x00068f76 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x00068f78 b 0x68ee6                                         |     goto label_5;
                                                                 | label_6:
    0x00068f7a ldr r1, [pc, 0x54]                                |     
    0x00068f7c mov.w r2, 0x128                                   |     r2 = 0x128;
    0x00068f80 ldr r3, [pc, 0x50]                                |     
    0x00068f82 ldr r0, [pc, 0x54]                                |     
    0x00068f84 add r1, pc                                        |     r1 = 0xd1f5a;
    0x00068f86 add r3, pc                                        |     r3 = 0xd1f5e;
    0x00068f88 adds r1, 7                                        |     r1 += 7;
    0x00068f8a add r0, pc                                        |     r0 = 0xd1f68;
    0x00068f8c bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_9:
    0x00068f90 movs r2, 0                                        |     r2 = 0;
    0x00068f92 sub.w r3, r5, sb                                  |     r3 = r5 - sb;
    0x00068f96 strb r2, [r5]                                     |     *(r5) = r2;
    0x00068f98 str.w sb, [sl]                                    |     __asm ("str.w sb, [sl]");
    0x00068f9c b 0x68ee6                                         |     goto label_5;
                                                                 | label_7:
    0x00068f9e ldr r1, [pc, 0x3c]                                |     
    0x00068fa0 movw r2, 0x129                                    |     r2 = 0x129;
    0x00068fa4 ldr r3, [pc, 0x38]                                |     
    0x00068fa6 ldr r0, [pc, 0x3c]                                |     
    0x00068fa8 add r1, pc                                        |     r1 = 0xd1f8a;
    0x00068faa add r3, pc                                        |     r3 = 0xd1f8e;
    0x00068fac adds r1, 7                                        |     r1 += 7;
    0x00068fae add r0, pc                                        |     r0 = 0xd1f98;
    0x00068fb0 bl 0x71518                                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_13:
    0x00068fb4 blx 0x927c                                        |     fprintf_chk ()
    0x00068fb8 stc2 p0, c0, [r6], {5}                            |     __asm ("stc2 p0, c0, [r6], {5}");
    0x00068fbc lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x00068fbe movs r0, r0                                       |     
    0x00068fc0 adr r7, 0x208                                     |     r7 = segment.PHDR;
    0x00068fc2 movs r3, r0                                       |     r3 = r0;
    0x00068fc4 add r0, sp, 0x60                                  |     r0 += arg_60h;
    0x00068fc6 movs r3, r0                                       |     r3 = r0;
    0x00068fc8 adr r7, 0x290                                     |     r7 = 0x290;
    0x00068fca movs r3, r0                                       |     r3 = r0;
    0x00068fcc invalid                                           |     
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x69194 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00069194 ()                                      | void fcn_00069194 (int16_t arg_b8h, int16_t arg_108h, int16_t arg_140h, int16_t arg_210h, int16_t arg_270h, int16_t arg_350h, uint32_t arg1, uint32_t arg2, int16_t arg3) {
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00069194 invalid                                           |     
    0x00069198 tst.w r3, 1                                       |     
                                                                 |     if ((r3 & 1) != 0) {
    0x0006919c beq 0x691a6                                       |         
    0x0006919e ldr r1, [pc, 0x10]                                |         
    0x000691a0 add r1, pc                                        |         r1 = 0xd2356;
    0x000691a2 b.w 0x68fe8                                       |         void (*0x68fe8)() ();
                                                                 |     }
    0x000691a6 ubfx r2, r3, 1, 1                                 |     r2 = (r3 >> 1) & ((1 << 1) - 1);
    0x000691aa b.w 0x7e668                                       |     
    0x0007e668 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x0007e66c sub sp, 0x24                                      |     
    0x0007e66e str r2, [sp, 0x14]                                |     var_14h = r2;
    0x0007e670 ldr r2, [pc, 0x1cc]                               |     
    0x0007e672 ldr r3, [pc, 0x1d0]                               |     r3 = *(0x7e846);
    0x0007e674 add r2, pc                                        |     r2 = 0xfceb8;
    0x0007e676 ldr r3, [r2, r3]                                  |     
    0x0007e678 ldr r3, [r3]                                      |     r3 = *(0xfceb8);
    0x0007e67a str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x0007e67c mov.w r3, 0                                       |     r3 = 0;
    0x0007e680 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0007e682 beq.w 0x7e80c                                     |         goto label_5;
                                                                 |     }
    0x0007e686 mov r7, r1                                        |     r7 = r1;
    0x0007e688 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0007e68a beq.w 0x7e7ea                                     |         goto label_6;
                                                                 |     }
    0x0007e68e mov r5, r0                                        |     r5 = r0;
    0x0007e690 blx 0x8f38                                        |     r0 = fcn_00008f38 ();
    0x0007e694 lsls r0, r0, 2                                    |     r0 <<= 2;
    0x0007e696 adds r0, 1                                        |     r0++;
    0x0007e698 blx 0x9234                                        |     blkid_safe_string ();
    0x0007e69c str r0, [sp, 0x10]                                |     var_10h = r0;
    0x0007e69e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0007e6a0 beq.w 0x7e834                                     |         goto label_7;
                                                                 |     }
    0x0007e6a4 ldrb r3, [r5]                                     |     r3 = *(r5);
    0x0007e6a6 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0007e6a8 beq.w 0x7e82a                                     |         goto label_8;
                                                                 |     }
    0x0007e6ac ldr r2, [pc, 0x198]                               |     
    0x0007e6ae mov.w fp, 0                                       |     
    0x0007e6b2 mov r8, r0                                        |     r8 = r0;
    0x0007e6b4 mov sl, fp                                        |     sl = fp;
    0x0007e6b6 str r0, [sp, 4]                                   |     var_4h = r0;
    0x0007e6b8 add r2, pc                                        |     r2 = 0xfcf04;
    0x0007e6ba str r2, [sp, 8]                                   |     var_8h = r2;
    0x0007e6bc b 0x7e702                                         |     
                                                                 |     while (r4 > r0) {
    0x0007e6be movs r2, 1                                        |         r2 = 1;
    0x0007e6c0 mov r1, r4                                        |         r1 = r4;
    0x0007e6c2 mov r0, r5                                        |         r0 = r5;
    0x0007e6c4 bl 0x7e480                                        |         r0 = fcn_0007e480 (r0, r1, r2, r3, r4, r5, r6);
                                                                 |         if (r0 == 0) {
    0x0007e6c8 cbz r0, 0x7e730                                   |             goto label_9;
                                                                 |         }
    0x0007e6ca add r1, sp, 0x18                                  |         r1 += var_18h;
    0x0007e6cc mov r0, r5                                        |         r0 = r5;
    0x0007e6ce bl 0x7e1c8                                        |         r0 = fcn_0007e1c8 (r0, r1, r2, r3);
    0x0007e6d2 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0007e6d4 blt 0x7e77a                                       |             goto label_10;
                                                                 |         }
    0x0007e6d6 ldr r0, [sp, 0x18]                                |         r0 = var_18h;
    0x0007e6d8 bl 0x806e8                                        |         fcn_000806e8 (r0);
    0x0007e6dc adds r0, 1                                        |         r0++;
    0x0007e6de add r0, sl                                        |         r0 += sl;
    0x0007e6e0 cmp r0, r7                                        |         
                                                                 |         if (r0 > r7) {
    0x0007e6e2 bhi.w 0x7e824                                     |             goto label_11;
                                                                 |         }
    0x0007e6e6 mov r1, r5                                        |         r1 = r5;
    0x0007e6e8 mov r2, r4                                        |         r2 = r4;
    0x0007e6ea mov sl, r0                                        |         sl = r0;
    0x0007e6ec mov r0, r8                                        |         r0 = r8;
    0x0007e6ee add r5, r4                                        |         r5 += r4;
    0x0007e6f0 blx 0x8f9c                                        |         r0 = fcn_00008f9c ();
    0x0007e6f4 add r4, r0                                        |         r4 += r0;
                                                                 | label_0:
    0x0007e6f6 ldrb r2, [r5]                                     |         r2 = *(r5);
    0x0007e6f8 str.w r8, [sp, 4]                                 |         __asm ("str.w r8, [var_4h]");
    0x0007e6fc cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x0007e6fe beq 0x7e78e                                       |             goto label_12;
                                                                 |         }
    0x0007e700 mov r8, r4                                        |         r8 = r4;
    0x0007e702 mov.w r1, -1                                      |         r1 = -1;
    0x0007e706 mov r0, r5                                        |         r0 = r5;
    0x0007e708 bl 0x7e348                                        |         r0 = fcn_0007e348 (r0, r1, r2, r3, r4, r5, r6);
    0x0007e70c subs r4, r0, 0                                    |         r4 = r0 - 0;
    0x0007e70e bgt 0x7e6be                                       |         
                                                                 |     }
    0x0007e710 add.w sl, sl, 1                                   |     sl++;
    0x0007e714 cmp sl, r7                                        |     
                                                                 |     if (sl > r7) {
    0x0007e716 bhi.w 0x7e820                                     |         goto label_13;
                                                                 |     }
    0x0007e71a ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x0007e71c adds r5, 1                                        |     r5++;
    0x0007e71e add.w r4, r8, 3                                   |     r4 = r8 + 3;
    0x0007e722 ldrh r2, [r3]                                     |     r2 = *(r3);
    0x0007e724 strh.w r2, [r8]                                   |     *(r8) = r2;
    0x0007e728 ldrb r2, [r3, 2]                                  |     r2 = *((r3 + 2));
    0x0007e72a strb.w r2, [r8, 2]                                |     *((r8 + 2)) = r2;
    0x0007e72e b 0x7e6f6                                         |     goto label_0;
                                                                 | label_9:
    0x0007e730 adds r6, r5, r4                                   |     r6 = r5 + r4;
    0x0007e732 mov fp, r5                                        |     
    0x0007e734 mov r4, r8                                        |     r4 = r8;
    0x0007e736 mov.w sb, 0x78                                    |     sb = 0x78;
    0x0007e73a str.w r8, [sp, 0xc]                               |     __asm ("str.w r8, [var_ch]");
                                                                 |     do {
    0x0007e73e mov r1, sl                                        |         r1 = sl;
    0x0007e740 add.w sl, sl, 4                                   |         sl += 4;
    0x0007e744 cmp sl, r7                                        |         
                                                                 |         if (sl > r7) {
    0x0007e746 bhi 0x7e794                                       |             goto label_1;
                                                                 |         }
    0x0007e748 ldrb r8, [fp], 1                                  |         r8 = *(fp);
                                                                 |         fp++;
    0x0007e74c mov.w r3, 0x5c                                    |         r3 = 0x5c;
    0x0007e750 strb r3, [r4]                                     |         *(r4) = r3;
    0x0007e752 adds r4, 4                                        |         r4 += 4;
    0x0007e754 strb sb, [r4, -0x3]                               |         *((r4 - 0x3)) = sb;
    0x0007e758 mov r5, fp                                        |         r5 = fp;
    0x0007e75a lsr.w r0, r8, 4                                   |         r0 = r8 >> 4;
    0x0007e75e bl 0x6f468                                        |         fcn_0006f468 (r0);
    0x0007e762 strb r0, [r4, -0x2]                               |         *((r4 - 0x2)) = r0;
    0x0007e766 mov r0, r8                                        |         r0 = r8;
    0x0007e768 bl 0x6f468                                        |         fcn_0006f468 (r0);
    0x0007e76c cmp r6, fp                                        |         
    0x0007e76e strb r0, [r4, -0x1]                               |         *((r4 - 0x1)) = r0;
    0x0007e772 bne 0x7e73e                                       |         
                                                                 |     } while (r6 != fp);
    0x0007e774 ldr.w r8, [sp, 0xc]                               |     r8 = var_ch;
    0x0007e778 b 0x7e6f6                                         |     goto label_0;
                                                                 | label_10:
    0x0007e77a ldr r1, [pc, 0xd0]                                |     
    0x0007e77c movs r2, 0xf5                                     |     r2 = 0xf5;
    0x0007e77e ldr r3, [pc, 0xd0]                                |     
    0x0007e780 ldr r0, [pc, 0xd0]                                |     
    0x0007e782 add r1, pc                                        |     r1 = 0xfcfd4;
    0x0007e784 add r3, pc                                        |     r3 = 0xfcfda;
    0x0007e786 adds r1, 7                                        |     r1 += 7;
    0x0007e788 add r0, pc                                        |     r0 = 0xfcfe0;
    0x0007e78a bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_12:
    0x0007e78e ldr r3, [sp, 0x14]                                |     r3 = var_14h;
                                                                 |     if (r3 == 0) {
    0x0007e790 cbz r3, 0x7e7b0                                   |         goto label_3;
                                                                 |     }
    0x0007e792 mov r1, sl                                        |     r1 = sl;
                                                                 | label_1:
    0x0007e794 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x0007e796 adds r1, 1                                        |     r1++;
    0x0007e798 cmp r1, r7                                        |     
    0x0007e79a it hi                                             |     
    0x0007e79c movhi r4, r3                                      |     r4 = r3;
                                                                 |     while (1) {
                                                                 | label_2:
    0x0007e79e ldr r3, [pc, 0xb8]                                |         
    0x0007e7a0 adds r4, 3                                        |         r4 += 3;
    0x0007e7a2 add r3, pc                                        |         r3 = 0xfd000;
    0x0007e7a4 ldrh r2, [r3]                                     |         r2 = *(r3);
    0x0007e7a6 ldrb r3, [r3, 2]                                  |         r3 = *((r3 + 2));
    0x0007e7a8 strh r2, [r4, -0x3]                               |         *((r4 - 0x3)) = r2;
    0x0007e7ac strb r3, [r4, -0x1]                               |         *((r4 - 0x1)) = r3;
                                                                 | label_3:
    0x0007e7b0 ldr r5, [sp, 0x10]                                |         r5 = var_10h;
    0x0007e7b2 movs r3, 0                                        |         r3 = 0;
    0x0007e7b4 strb r3, [r4]                                     |         *(r4) = r3;
    0x0007e7b6 mov r0, r5                                        |         r0 = r5;
    0x0007e7b8 blx 0x8f38                                        |         r0 = fcn_00008f38 ();
    0x0007e7bc adds r1, r0, 1                                    |         r1 = r0 + 1;
    0x0007e7be mov r0, r5                                        |         r0 = r5;
    0x0007e7c0 blx 0x94dc                                        |         fcn_000094dc ();
    0x0007e7c4 mov r3, r5                                        |         r3 = r5;
    0x0007e7c6 cmp r0, 0                                         |         
    0x0007e7c8 it ne                                             |         
                                                                 |         if (r0 == 0) {
    0x0007e7ca movne r3, r0                                      |             r3 = r0;
                                                                 |         }
    0x0007e7cc mov fp, r3                                        |         
                                                                 | label_4:
    0x0007e7ce ldr r2, [pc, 0x8c]                                |         
    0x0007e7d0 ldr r3, [pc, 0x70]                                |         r3 = *(0x7e844);
    0x0007e7d2 add r2, pc                                        |         r2 = 0xfd034;
    0x0007e7d4 ldr r3, [r2, r3]                                  |         r3 = *(0xfd034);
    0x0007e7d6 ldr r2, [r3]                                      |         r2 = *(0xfd034);
    0x0007e7d8 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x0007e7da eors r2, r3                                       |         r2 ^= r3;
    0x0007e7dc mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0007e7e0 bne 0x7e83a                                       |             goto label_14;
                                                                 |         }
    0x0007e7e2 mov r0, fp                                        |         r0 = fp;
    0x0007e7e4 add sp, 0x24                                      |         
    0x0007e7e6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_6:
    0x0007e7ea ldr r2, [pc, 0x74]                                |         
    0x0007e7ec ldr r3, [pc, 0x54]                                |         r3 = *(0x7e844);
    0x0007e7ee add r2, pc                                        |         r2 = 0xfd054;
    0x0007e7f0 ldr r3, [r2, r3]                                  |         r3 = *(0xfd054);
    0x0007e7f2 ldr r2, [r3]                                      |         r2 = *(0xfd054);
    0x0007e7f4 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x0007e7f6 eors r2, r3                                       |         r2 ^= r3;
    0x0007e7f8 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0007e7fc bne 0x7e83a                                       |             goto label_14;
                                                                 |         }
    0x0007e7fe ldr r0, [pc, 0x64]                                |         
    0x0007e800 add r0, pc                                        |         r0 = 0xfd06a;
    0x0007e802 add sp, 0x24                                      |         
    0x0007e804 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |         
    0x0007e808 b.w 0x91fc                                        |         void (*0x91fc)() ();
                                                                 | label_5:
    0x0007e80c ldr r1, [pc, 0x58]                                |         
    0x0007e80e movs r2, 0xdb                                     |         r2 = 0xdb;
    0x0007e810 ldr r3, [pc, 0x58]                                |         
    0x0007e812 ldr r0, [pc, 0x5c]                                |         
    0x0007e814 add r1, pc                                        |         r1 = 0xfd080;
    0x0007e816 add r3, pc                                        |         r3 = 0xfd086;
    0x0007e818 adds r1, 7                                        |         r1 += 7;
    0x0007e81a add r0, pc                                        |         r0 = 0xfd090;
    0x0007e81c bl 0x71518                                        |         fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_13:
    0x0007e820 ldr r4, [sp, 4]                                   |         r4 = var_4h;
    0x0007e822 b 0x7e79e                                         |         
                                                                 |     }
                                                                 | label_11:
    0x0007e824 mov r1, sl                                        |     r1 = sl;
    0x0007e826 mov r4, r8                                        |     r4 = r8;
    0x0007e828 b 0x7e794                                         |     goto label_1;
                                                                 | label_8:
    0x0007e82a ldrd r4, r3, [sp, 0x10]                           |     __asm ("ldrd r4, r3, [var_14h]");
    0x0007e82e cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0007e830 bne 0x7e79e                                       |         goto label_2;
                                                                 |     }
    0x0007e832 b 0x7e7b0                                         |     goto label_3;
                                                                 | label_7:
    0x0007e834 ldr.w fp, [sp, 0x10]                              |     fp = var_10h;
    0x0007e838 b 0x7e7ce                                         |     goto label_4;
                                                                 | label_14:
    0x0007e83a blx 0x927c                                        |     fprintf_chk ()
    0x0007e83e nop                                               |     
    0x0007e840 adr r4, 0x140                                     |     r4 = 0x140;
    0x0007e842 movs r4, r0                                       |     r4 = r0;
    0x0007e844 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0007e846 movs r0, r0                                       |     
    0x0007e848 ldr r1, [sp, 0x140]                               |     r1 = *(arg_140h);
    0x0007e84a movs r2, r0                                       |     r2 = r0;
    0x0007e84c ldr r0, [sp, 0xb8]                                |     r0 = *(arg_b8h);
    0x0007e84e movs r2, r0                                       |     r2 = r0;
    0x0007e850 ldr r0, [sp, 0x350]                               |     r0 = *(arg_350h);
    0x0007e852 movs r2, r0                                       |     r2 = r0;
    0x0007e854 ldr r0, [sp, 0x210]                               |     r0 = *(arg_210h);
    0x0007e856 movs r2, r0                                       |     r2 = r0;
    0x0007e858 str r2, [r6, 0x38]                                |     *((r6 + 0x38)) = r2;
    0x0007e85a movs r2, r0                                       |     r2 = r0;
    0x0007e85c adr r2, 0x3c8                                     |     r2 = 0x3c8;
    0x0007e85e movs r4, r0                                       |     r4 = r0;
    0x0007e860 adr r2, 0x358                                     |     r2 = 0x358;
    0x0007e862 movs r4, r0                                       |     r4 = r0;
    0x0007e864 lsrs r4, r1                                       |     r4 >>= r1;
    0x0007e866 movs r0, r0                                       |     
    0x0007e868 str r7, [sp, 0x270]                               |     *(arg_270h) = r7;
    0x0007e86a movs r2, r0                                       |     r2 = r0;
    0x0007e86c ldr r0, [sp, 0x108]                               |     r0 = *(arg_108h);
    0x0007e86e movs r2, r0                                       |     r2 = r0;
    0x0007e870 adr r0, 0x78                                      |     r0 = 0x78;
    0x0007e872 movs r0, r0                                       |     
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x69c30 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.00069c30 ()                                      | void fcn_00069c30 (int16_t arg_1h, uint32_t arg1, int16_t arg2) {
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_17h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00069c30 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x00069c34 subs r3, r1, 0                                    |     r3 = r1 - 0;
    0x00069c36 mov r4, r1                                        |     r4 = r1;
    0x00069c38 ldr.w r1, [pc, 0x40c]                             |     
    0x00069c3c sub sp, 0x34                                      |     
    0x00069c3e it ne                                             |     
                                                                 |     if (r3 == r1) {
    0x00069c40 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x00069c42 ldr.w r2, [pc, 0x408]                             |     r2 = *(0x6a04e);
    0x00069c46 add r1, pc                                        |     r1 = 0xd3c92;
    0x00069c48 ldr.w r8, [pc, 0x404]                             |     
    0x00069c4a strh r4, [r0, 0x20]                               |     *((r0 + 0x20)) = r4;
    0x00069c4c cmp r0, 0                                         |     
    0x00069c4e add r7, sp, 0x10                                  |     r7 += var_10h;
    0x00069c50 ldr r2, [r1, r2]                                  |     
    0x00069c52 it ne                                             |     
                                                                 |     if (r0 == 0) {
    0x00069c54 movne r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x00069c56 add r8, pc                                        |     r8 = 0xd3caa;
    0x00069c58 ldr r2, [r2]                                      |     r2 = *(0xd3c92);
    0x00069c5a str r2, [r7, 0x1c]                                |     *((r7 + 0x1c)) = r2;
    0x00069c5c mov.w r2, 0                                       |     r2 = 0;
    0x00069c60 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00069c62 bne.w 0x69eda                                     |         goto label_13;
                                                                 |     }
    0x00069c66 ldr r2, [pc, 0x3ec]                               |     
    0x00069c68 mov r6, r0                                        |     r6 = r0;
    0x00069c6a add r2, pc                                        |     r2 = 0xd3cc4;
    0x00069c6c ldrb r2, [r2]                                     |     r2 = *(r2);
    0x00069c6e cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00069c70 beq 0x69d72                                       |         goto label_4;
                                                                 |     }
    0x00069c72 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00069c74 beq 0x69d32                                       |         goto label_14;
                                                                 |     }
    0x00069c76 adds r2, r4, 1                                    |     r2 = r4 + 1;
                                                                 |     if (r2 == r4) {
    0x00069c78 beq.w 0x69fa0                                     |         goto label_15;
                                                                 |     }
    0x00069c7c add.w sb, r4, 1                                   |     sb = r4 + 1;
    0x00069c80 cmp.w sb, 0x40                                    |     
                                                                 |     if (sb > 0x40) {
    0x00069c84 bhi.w 0x69ffc                                     |         goto label_16;
                                                                 |     }
    0x00069c88 lsl.w r2, sb, 2                                   |     r2 = sb << 2;
    0x00069c8c mov sl, r3                                        |     sl = r3;
    0x00069c8e mov r1, r0                                        |     r1 = r0;
    0x00069c90 lsl.w fp, r4, 2                                   |     
    0x00069c94 adds r3, r2, 7                                    |     r3 = r2 + 7;
    0x00069c96 bic r3, r3, 7                                     |     r3 = BIT_MASK (r3, 7);
    0x00069c9a subs r2, 4                                        |     r2 -= 4;
    0x00069c9c sub.w sp, sp, r3                                  |     
    0x00069ca0 add.w r3, sp, 0x17                                |     r3 += var_17h;
    0x00069ca4 bic r5, r3, 7                                     |     r5 = BIT_MASK (r3, 7);
    0x00069ca8 lsrs r3, r3, 3                                    |     r3 >>= 3;
    0x00069caa mov r0, r5                                        |     r0 = r5;
    0x00069cac str r3, [r7, 4]                                   |     *((r7 + 4)) = r3;
    0x00069cae blx 0x8f9c                                        |     fcn_00008f9c ();
    0x00069cb2 ldr r3, [r7, 4]                                   |     r3 = *((r7 + 4));
    0x00069cb4 movs r2, 2                                        |     r2 = 2;
    0x00069cb6 str.w r2, [fp, r3, lsl 3]                         |     __asm ("str.w r2, [fp, r3, lsl 3]");
    0x00069cba add.w r3, r5, fp                                  |     r3 = r5 + fp;
    0x00069cbe str r3, [r7, 4]                                   |     *((r7 + 4)) = r3;
                                                                 | label_11:
    0x00069cc0 ldr r3, [pc, 0x394]                               |     r3 = *(0x6a058);
    0x00069cc2 mov r1, sb                                        |     r1 = sb;
    0x00069cc4 mov r0, r5                                        |     r0 = r5;
    0x00069cc6 movs r2, 4                                        |     r2 = 4;
    0x00069cc8 mov sb, r5                                        |     sb = r5;
    0x00069cca ldr.w r3, [r8, r3]                                |     r3 = *((r8 + r3));
    0x00069cce mov.w r8, 0                                       |     r8 = 0;
    0x00069cd2 mov r5, r8                                        |     r5 = r8;
    0x00069cd4 blx 0x8988                                        |     qsort ();
    0x00069cd8 b 0x69d00                                         |     
                                                                 |     while (r0 <= r1) {
    0x00069cda sub.w fp, r1, r0                                  |         
    0x00069cde cmp.w fp, 1                                       |         
                                                                 |         if (fp > 1) {
    0x00069ce2 ble 0x69cfa                                       |             
    0x00069ce4 subs r1, 1                                        |             r1--;
    0x00069ce6 adds r0, 1                                        |             r0++;
    0x00069ce8 movs r2, 0                                        |             r2 = 0;
    0x00069cea blx 0x8e54                                        |             r0 = fcn_00008e54 ();
    0x00069cee cmp r0, 0                                         |             
                                                                 |             if (r0 < 0) {
    0x00069cf0 blt.w 0x69fb4                                     |                 goto label_17;
                                                                 |             }
    0x00069cf4 add.w r3, fp, -1                                  |             r3 = fp + -1;
    0x00069cf8 add r5, r3                                        |             r5 += r3;
                                                                 |         }
    0x00069cfa cmp r8, r4                                        |         
                                                                 |         if (r8 == r4) {
    0x00069cfc beq.w 0x69eee                                     |             goto label_18;
                                                                 |         }
    0x00069d00 ldr.w r0, [sb]                                    |         r0 = *(sb);
    0x00069d04 add.w r8, r8, 1                                   |         r8++;
    0x00069d06 lsrs r1, r0, 0x20                                 |         r1 = r0 >> 0x20;
    0x00069d08 ldr r1, [sb, 4]!                                  |         r1 = *((sb += 4));
    0x00069d0c cmp r0, 2                                         |         
    0x00069d0e it lt                                             |         
                                                                 |         if (r0 >= 2) {
    0x00069d10 movlt r0, 2                                       |             r0 = 2;
                                                                 |         }
    0x00069d12 cmp r1, 2                                         |         
    0x00069d14 it lt                                             |         
                                                                 |         if (r1 >= 2) {
    0x00069d16 movlt r1, 2                                       |             r1 = 2;
                                                                 |         }
    0x00069d18 cmp r0, r1                                        |         
    0x00069d1a ble 0x69cda                                       |         
                                                                 |     }
    0x00069d1c ldr r1, [pc, 0x33c]                               |     
    0x00069d1e mov.w r2, 0x10a                                   |     r2 = 0x10a;
    0x00069d20 strb r5, [r0, 0xa]                                |     *((r0 + 0xa)) = r5;
    0x00069d22 ldr r3, [pc, 0x33c]                               |     
    0x00069d24 ldr r0, [pc, 0x33c]                               |     
    0x00069d26 add r1, pc                                        |     r1 = 0xd3d86;
    0x00069d28 add r3, pc                                        |     r3 = 0xd3d8e;
    0x00069d2a adds r1, 7                                        |     r1 += 7;
    0x00069d2c add r0, pc                                        |     r0 = 0xd3d94;
    0x00069d2e bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_14:
    0x00069d32 mov r2, r4                                        |     r2 = r4;
    0x00069d34 mov.w r1, -1                                      |     r1 = -1;
    0x00069d38 movs r0, 3                                        |     r0 = 3;
    0x00069d3a blx 0x8e54                                        |     r0 = fcn_00008e54 ();
    0x00069d3e cmp r0, 0                                         |     
    0x00069d40 it ge                                             |     
                                                                 |     if (r0 < 0) {
    0x00069d42 movge r5, 1                                       |         r5 = 1;
                                                                 |     }
                                                                 |     if (r0 >= 0) {
    0x00069d44 bge 0x69df6                                       |         goto label_2;
                                                                 |     }
    0x00069d46 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x00069d4a ldr r5, [r0]                                      |     r5 = *(r0);
    0x00069d4c eor.w r3, r5, r5, asr 31                          |     r3 = r5 ^ (r5 >> 31);
    0x00069d50 sub.w r3, r3, r5, asr 31                          |     r3 -= (r5 >> 31);
    0x00069d54 cmp r3, 0x26                                      |     
                                                                 |     if (r3 != 0x26) {
    0x00069d56 beq 0x69d6a                                       |         
                                                                 |         if (r3 > 0x26) {
    0x00069d58 bgt.w 0x69ece                                     |             goto label_19;
                                                                 |         }
    0x00069d5c cmp r3, 0x19                                      |         
                                                                 |         if (r3 == 0x19) {
    0x00069d5e beq 0x69d6a                                       |             goto label_3;
                                                                 |         }
    0x00069d60 cmp r3, 1                                         |         
                                                                 |         if (r3 == 1) {
    0x00069d62 beq 0x69d6a                                       |             goto label_3;
                                                                 |         }
    0x00069d64 cmp r3, 0xd                                       |         
                                                                 |         if (r3 != 0xd) {
    0x00069d66 bne.w 0x69ed6                                     |             goto label_20;
                                                                 |         }
                                                                 |     }
                                                                 | label_3:
    0x00069d6a ldr r3, [pc, 0x2fc]                               |     
    0x00069d6c movs r2, 0                                        |     r2 = 0;
    0x00069d6e add r3, pc                                        |     r3 = 0xd3ddc;
    0x00069d70 strb r2, [r3]                                     |     *(r3) = r2;
                                                                 | label_4:
    0x00069d72 ldr r0, [pc, 0x2f8]                               |     
    0x00069d74 add r0, pc                                        |     r0 = 0xd3de6;
    0x00069d76 blx 0x8a68                                        |     r0 = fcn_00008a68 ();
    0x00069d7a mov r8, r0                                        |     r8 = r0;
    0x00069d7c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00069d7e beq 0x69e42                                       |         goto label_21;
                                                                 |     }
    0x00069d80 movs r5, 0                                        |     r5 = 0;
    0x00069d82 add.w sb, r7, 8                                   |     sb = r7 + 8;
    0x00069d86 bl 0x67ee4                                        |     r0 = fcn_00067ee4 (r0, r1, r2);
    0x00069d8a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00069d8c beq.w 0x69ff0                                     |         goto label_22;
                                                                 |     }
                                                                 | label_0:
    0x00069d90 add.w fp, r0, 0x13                                |     
    0x00069d94 mov r0, fp                                        |     r0 = fp;
    0x00069d96 bl 0x75b88                                        |     r0 = fcn_00075b88 (r0);
    0x00069d9a mov sl, r0                                        |     sl = r0;
                                                                 |     if (r0 != 0) {
    0x00069d9c cbnz r0, 0x69dda                                  |         goto label_23;
                                                                 |     }
    0x00069d9e mov.w r3, -1                                      |     r3 = -1;
    0x00069da2 mov r0, fp                                        |     r0 = fp;
    0x00069da4 mov r1, sb                                        |     r1 = sb;
    0x00069da6 str r3, [r7, 8]                                   |     *((r7 + 8)) = r3;
    0x00069da8 bl 0x746ac                                        |     r0 = fcn_000746ac (r0, r1);
    0x00069dac cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00069dae blt 0x69dda                                       |         goto label_23;
                                                                 |     }
    0x00069db0 ldr r2, [r7, 8]                                   |     r2 = *((r7 + 8));
    0x00069db2 cmp r2, 2                                         |     
                                                                 |     if (r2 <= 2) {
    0x00069db4 ble 0x69dda                                       |         goto label_23;
                                                                 |     }
    0x00069db6 mov r0, r8                                        |     r0 = r8;
    0x00069db8 blx 0x9128                                        |     r0 = fcn_00009128 ();
    0x00069dbc mov r2, r0                                        |     r2 = r0;
    0x00069dbe ldr r0, [r7, 8]                                   |     r0 = *((r7 + 8));
    0x00069dc0 cmp r2, r0                                        |     
                                                                 |     if (r2 == r0) {
    0x00069dc2 beq 0x69dda                                       |         goto label_23;
                                                                 |     }
                                                                 |     if (r4 == 0) {
    0x00069dc4 cbz r4, 0x69e16                                   |         goto label_24;
                                                                 |     }
    0x00069dc6 mov r3, sl                                        |     r3 = sl;
    0x00069dc8 subs r2, r6, 4                                    |     r2 = r6 - 4;
    0x00069dca b 0x69dd2                                         |     
                                                                 |     while (r0 != r1) {
    0x00069dcc adds r3, 1                                        |         r3++;
    0x00069dce cmp r4, r3                                        |         
                                                                 |         if (r4 == r3) {
    0x00069dd0 beq 0x69e16                                       |             goto label_24;
                                                                 |         }
    0x00069dd2 ldr r1, [r2, 4]!                                  |         r1 = *((r2 += 4));
    0x00069dd6 cmp r0, r1                                        |         
    0x00069dd8 bne 0x69dcc                                       |         
                                                                 |     }
                                                                 | label_23:
    0x00069dda mov r0, r8                                        |     r0 = r8;
    0x00069ddc bl 0x67ee4                                        |     r0 = fcn_00067ee4 (r0, r1, r2);
    0x00069de0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00069de2 bne 0x69d90                                       |         goto label_0;
                                                                 |     }
                                                                 | label_1:
    0x00069de4 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x00069de8 ldr r3, [r0]                                      |     r3 = *(r0);
    0x00069dea mov r0, r8                                        |     r0 = r8;
    0x00069dec cmp r3, 0                                         |     
    0x00069dee it gt                                             |     
                                                                 |     if (r3 > 0) {
    0x00069df0 rsbgt r5, r3, 0                                   |         __asm ("rsbgt r5, r3, 0");
                                                                 |     }
    0x00069df2 blx 0x91a8                                        |     fcn_000091a8 ();
                                                                 | label_2:
    0x00069df6 ldr r2, [pc, 0x278]                               |     
    0x00069df8 ldr r3, [pc, 0x250]                               |     r3 = *(0x6a04c);
    0x00069dfa add r2, pc                                        |     r2 = 0xd3e70;
    0x00069dfc ldr r3, [r2, r3]                                  |     r3 = *(0xd3e70);
    0x00069dfe ldr r2, [r3]                                      |     r2 = *(0xd3e70);
    0x00069e00 ldr r3, [r7, 0x1c]                                |     r3 = *((r7 + 0x1c));
    0x00069e02 eors r2, r3                                       |     r2 ^= r3;
    0x00069e04 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00069e08 bne.w 0x6a044                                     |         goto label_25;
                                                                 |     }
    0x00069e0c mov r0, r5                                        |     r0 = r5;
    0x00069e0e adds r7, 0x24                                     |     r7 += 0x24;
    0x00069e10 mov sp, r7                                        |     
    0x00069e12 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
    0x00069e14 ldrh r0, [r6, 0x3e]                               |     r0 = *((r6 + 0x3e));
                                                                 | label_24:
    0x00069e16 bl 0x699c0                                        |     r0 = fcn_000699c0 (r0, r1, r2);
    0x00069e1a adds.w r3, r0, 9                                  |     r3 = r0 + 9;
    0x00069e1e it ne                                             |     
                                                                 |     if (r3 == r0) {
    0x00069e20 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x00069e22 and.w r3, r3, r0, lsr 31                          |     r3 &= (r0 >> 31);
    0x00069e26 cmp r5, 0                                         |     
    0x00069e28 ite ne                                            |     
                                                                 |     if (r5 == 0) {
    0x00069e2a movne r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r5 != 0) {
    0x00069e2c andeq r3, r3, 1                                   |         r3 &= 1;
                                                                 |     }
    0x00069e30 cmp r3, 0                                         |     
    0x00069e32 it ne                                             |     
                                                                 |     if (r3 == 0) {
    0x00069e34 movne r5, r0                                      |         r5 = r0;
                                                                 |     }
    0x00069e36 mov r0, r8                                        |     r0 = r8;
    0x00069e38 bl 0x67ee4                                        |     r0 = fcn_00067ee4 (r0, r1, r2);
    0x00069e3c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00069e3e bne 0x69d90                                       |         goto label_0;
                                                                 |     }
    0x00069e40 b 0x69de4                                         |     goto label_1;
                                                                 | label_21:
    0x00069e42 add.w r1, r7, 8                                   |     r1 = r7 + 8;
    0x00069e46 movs r0, 7                                        |     r0 = 7;
    0x00069e48 blx 0x8e60                                        |     r0 = fcn_00008e60 ();
    0x00069e4c cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00069e4e blt.w 0x69fda                                     |         goto label_26;
                                                                 |     }
    0x00069e52 ldr r2, [r7, 8]                                   |     r2 = *((r7 + 8));
    0x00069e54 ldr r0, [r7, 0x10]                                |     r0 = *((r7 + 0x10));
    0x00069e56 ldr r1, [r7, 0x14]                                |     r1 = *((r7 + 0x14));
    0x00069e58 ldr r3, [r7, 0xc]                                 |     r3 = *((r7 + 0xc));
    0x00069e5a cmp r2, r0                                        |     
    0x00069e5c sbcs.w r5, r3, r1                                 |     __asm ("sbcs.w r5, r3, r1");
    0x00069e60 itt lo                                            |     
                                                                 |     if (r2 >= r0) {
    0x00069e62 movlo r2, r0                                      |         r2 = r0;
                                                                 |     }
                                                                 |     if (r2 >= r0) {
    0x00069e64 movlo r3, r1                                      |         r3 = r1;
                                                                 |     }
    0x00069e66 cmp.w r2, 0x400                                   |     
    0x00069e6a sbcs r1, r3, 0                                    |     __asm ("sbcs r1, r3, 0");
    0x00069e6e it lo                                             |     
                                                                 |     if (r2 < 0x400) {
    0x00069e70 movwlo r8, 0x3ff                                  |         __asm ("movwlo r8, aav.0x000000ff");
                                                                 |     }
                                                                 |     if (r2 <= 0x400) {
    0x00069e74 blo 0x69f44                                       |         goto label_27;
                                                                 |     }
    0x00069e76 cmp.w r2, -0x80000000                             |     
    0x00069e7a sbcs r3, r3, 0                                    |     __asm ("sbcs r3, r3, 0");
    0x00069e7e it hs                                             |     
                                                                 |     if (r2 < -0x80000000) {
    0x00069e80 mvnhs r8, 0x80000000                              |         r8 = ~0x80000000;
                                                                 |     }
                                                                 |     if (r2 < -0x80000000) {
    0x00069e84 bhs 0x69e90                                       |         
    0x00069e86 add.w r8, r2, -1                                  |         r8 = r2 + -1;
                                                                 | label_8:
    0x00069e8a cmp.w r8, 0x100000                                |         
                                                                 |         if (r8 <= 0x100000) {
    0x00069e8e ble 0x69f44                                       |             goto label_27;
                                                                 |         }
                                                                 |     }
    0x00069e90 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x00069e94 cmp r0, 6                                         |     
    0x00069e96 it le                                             |     
                                                                 |     if (r0 <= 6) {
    0x00069e98 movle r5, -1                                      |         r5 = -1;
                                                                 |         goto label_28;
                                                                 |     }
                                                                 |     if (r0 <= 6) {
                                                                 | label_28:
    0x00069e9c ble 0x69df6                                       |         goto label_2;
                                                                 |     }
    0x00069e9e ldr r2, [pc, 0x1d4]                               |     
    0x00069ea0 movs r1, 1                                        |     r1 = 1;
    0x00069ea2 ldr r5, [pc, 0x1d4]                               |     
    0x00069ea4 movw r3, 0x13d                                    |     r3 = 0x13d;
    0x00069ea8 ldr r4, [pc, 0x1d0]                               |     
    0x00069eaa movt r1, 0x4000                                   |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x00069eac lsls r0, r0, 4                                    |     r0 <<= 4;
    0x00069eae add r2, pc                                        |     r2 = 0xd3f28;
    0x00069eb0 movs r0, 7                                        |     r0 = 7;
    0x00069eb2 add r5, pc                                        |     r5 = 0xd3f30;
    0x00069eb4 adds r2, 7                                        |     r2 += 7;
    0x00069eb6 add r4, pc                                        |     r4 = 0xd3f36;
    0x00069eb8 str.w r8, [sp, 8]                                 |     __asm ("str.w r8, [var_8h_2]");
    0x00069ebc strd r4, r5, [sp]                                 |     __asm ("strd r4, r5, [sp]");
    0x00069ebe cmp r0, r0                                        |     
    0x00069ec0 bl 0x71448                                        |     r0 = fcn_00071448 ();
    0x00069ec4 subs r5, r0, 0                                    |     r5 = r0 - 0;
    0x00069ec6 it ge                                             |     
                                                                 |     if (r5 < r0) {
    0x00069ec8 mvnge r5, 0x55                                    |         r5 = ~0x55;
                                                                 |     }
    0x00069ecc b 0x69df6                                         |     goto label_2;
                                                                 | label_19:
    0x00069ece subs r3, 0x5d                                     |     r3 -= 0x5d;
    0x00069ed0 cmp r3, 4                                         |     
                                                                 |     if (r3 < 4) {
    0x00069ed2 bls.w 0x69d6a                                     |         goto label_3;
                                                                 |     }
                                                                 | label_20:
    0x00069ed6 rsbs r5, r5, 0                                    |     r5 -= ;
    0x00069ed8 b 0x69df6                                         |     goto label_2;
                                                                 | label_13:
    0x00069eda ldr r1, [pc, 0x1a4]                               |     
    0x00069edc movs r2, 0xd9                                     |     r2 = 0xd9;
    0x00069ede ldr r3, [pc, 0x1a4]                               |     
    0x00069ee0 ldr r0, [pc, 0x1a4]                               |     
    0x00069ee2 add r1, pc                                        |     r1 = 0xd3f68;
    0x00069ee4 add r3, pc                                        |     r3 = 0xd3f6e;
    0x00069ee6 adds r1, 7                                        |     r1 += 7;
    0x00069ee8 add r0, pc                                        |     r0 = 0xd3f74;
    0x00069eea bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_18:
    0x00069eee ldr r3, [pc, 0x19c]                               |     
    0x00069ef0 add r3, pc                                        |     r3 = 0xd3f82;
    0x00069ef2 ldrb r3, [r3]                                     |     r3 = *(r3);
                                                                 |     if (r3 != 0) {
    0x00069ef4 cbz r3, 0x69f3c                                   |         
    0x00069ef6 ldr r3, [r7, 4]                                   |         r3 = *((r7 + 4));
    0x00069ef8 ldr r0, [r3]                                      |         r0 = *(r3);
    0x00069efa mvn r3, 0x80000000                                |         r3 = ~0x80000000;
    0x00069efe cmp r0, r3                                        |         
                                                                 |         if (r0 == r3) {
    0x00069f00 beq 0x69f74                                       |             goto label_29;
                                                                 |         }
    0x00069f02 movs r2, 0                                        |         r2 = 0;
    0x00069f04 adds r0, 1                                        |         r0++;
    0x00069f06 mov.w r1, -1                                      |         r1 = -1;
    0x00069f0a blx 0x8e54                                        |         r0 = fcn_00008e54 ();
    0x00069f0e cmp r0, 0                                         |         
    0x00069f10 it ge                                             |         
                                                                 |         if (r0 < 0) {
    0x00069f12 addge r5, 1                                       |             r5++;
                                                                 |         }
                                                                 |         if (r0 >= 0) {
    0x00069f14 bge 0x69f74                                       |             goto label_29;
                                                                 |         }
    0x00069f16 blx 0x9628                                        |         r0 = fcn_00009628 ();
    0x00069f1a ldr r5, [r0]                                      |         r5 = *(r0);
    0x00069f1c eor.w r3, r5, r5, asr 31                          |         r3 = r5 ^ (r5 >> 31);
    0x00069f20 sub.w r3, r3, r5, asr 31                          |         r3 -= (r5 >> 31);
    0x00069f24 cmp r3, 0x26                                      |         
                                                                 |         if (r3 != 0x26) {
    0x00069f26 beq 0x69f34                                       |             
                                                                 |             if (r3 > 0x26) {
    0x00069f28 bgt 0x69ff4                                       |                 goto label_30;
                                                                 |             }
    0x00069f2a cmp r3, 0x19                                      |             
                                                                 |             if (r3 == 0x19) {
    0x00069f2c beq 0x69f34                                       |                 goto label_10;
                                                                 |             }
    0x00069f2e cmp r3, 1                                         |             
                                                                 |             if (r3 != 1) {
    0x00069f30 bne.w 0x6a036                                     |                 goto label_31;
                                                                 |             }
                                                                 |         }
                                                                 | label_10:
    0x00069f34 ldr r3, [pc, 0x158]                               |         
    0x00069f36 movs r2, 0                                        |         r2 = 0;
    0x00069f38 add r3, pc                                        |         r3 = 0xd3fcc;
    0x00069f3a strb r2, [r3]                                     |         *(r3) = r2;
                                                                 |     }
                                                                 | label_7:
    0x00069f3c mov r0, sl                                        |     r0 = sl;
    0x00069f3e blx 0x8dac                                        |     fcn_00008dac ();
    0x00069f42 b 0x69d72                                         |     goto label_4;
                                                                 | label_27:
    0x00069f44 mov.w sb, 3                                       |     sb = 3;
    0x00069f48 movs r5, 0                                        |     r5 = 0;
                                                                 | label_5:
    0x00069f4a subs r2, r6, 4                                    |     r2 = r6 - 4;
    0x00069f4c movs r3, 0                                        |     r3 = 0;
                                                                 |     if (r4 != 0) {
    0x00069f4e cbnz r4, 0x69f58                                  |         goto label_32;
                                                                 |     }
    0x00069f50 b 0x69f7c                                         |     goto label_33;
                                                                 |     do {
    0x00069f52 adds r3, 1                                        |         r3++;
    0x00069f54 cmp r4, r3                                        |         
                                                                 |         if (r4 == r3) {
    0x00069f56 beq 0x69f7c                                       |             goto label_33;
                                                                 |         }
                                                                 | label_32:
    0x00069f58 ldr r1, [r2, 4]!                                  |         r1 = *((r2 += 4));
    0x00069f5c cmp r1, sb                                        |         
    0x00069f5e bne 0x69f52                                       |         
                                                                 |     } while (r1 != sb);
                                                                 | label_6:
    0x00069f60 cmp r8, sb                                        |     
                                                                 |     if (r8 <= sb) {
    0x00069f62 ble.w 0x69df6                                     |         goto label_2;
                                                                 |     }
    0x00069f66 add.w sb, sb, 1                                   |     sb++;
    0x00069f6a b 0x69f4a                                         |     goto label_5;
                                                                 |     do {
    0x00069f6c subs r3, 0x5d                                     |         r3 -= 0x5d;
    0x00069f6e cmp r3, 4                                         |         
                                                                 |         if (r3 < 4) {
    0x00069f70 bls 0x69fd0                                       |             goto label_12;
                                                                 |         }
                                                                 | label_9:
    0x00069f72 rsbs r5, r5, 0                                    |         r5 -= ;
                                                                 | label_29:
    0x00069f74 mov r0, sl                                        |         r0 = sl;
    0x00069f76 blx 0x8dac                                        |         fcn_00008dac ();
    0x00069f7a b 0x69df6                                         |         goto label_2;
                                                                 | label_33:
    0x00069f7c mov r0, sb                                        |         r0 = sb;
    0x00069f7e bl 0x699c0                                        |         r0 = fcn_000699c0 (r0, r1, r2);
    0x00069f82 adds.w r3, r0, 9                                  |         r3 = r0 + 9;
    0x00069f86 it ne                                             |         
                                                                 |         if (r3 == r0) {
    0x00069f88 movne r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x00069f8a and.w r3, r3, r0, lsr 31                          |         r3 &= (r0 >> 31);
    0x00069f8e cmp r5, 0                                         |         
    0x00069f90 ite ne                                            |         
                                                                 |         if (r5 == 0) {
    0x00069f92 movne r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r5 != 0) {
    0x00069f94 andeq r3, r3, 1                                   |             r3 &= 1;
                                                                 |         }
    0x00069f98 cmp r3, 0                                         |         
    0x00069f9a it ne                                             |         
                                                                 |         if (r3 == 0) {
    0x00069f9c movne r5, r0                                      |             r5 = r0;
                                                                 |         }
    0x00069f9e b 0x69f60                                         |         goto label_6;
                                                                 | label_15:
    0x00069fa0 ldr r1, [pc, 0xf0]                                |         
    0x00069fa2 movs r2, 0xf1                                     |         r2 = 0xf1;
    0x00069fa4 ldr r3, [pc, 0xf0]                                |         
    0x00069fa6 ldr r0, [pc, 0xf4]                                |         
    0x00069fa8 add r1, pc                                        |         r1 = 0xd4040;
    0x00069faa add r3, pc                                        |         r3 = 0xd4046;
    0x00069fac adds r1, 7                                        |         r1 += 7;
    0x00069fae add r0, pc                                        |         r0 = 0xd4050;
    0x00069fb0 bl 0x71518                                        |         r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_17:
    0x00069fb4 blx 0x9628                                        |         r0 = fcn_00009628 ();
    0x00069fb8 ldr r5, [r0]                                      |         r5 = *(r0);
    0x00069fba eor.w r3, r5, r5, asr 31                          |         r3 = r5 ^ (r5 >> 31);
    0x00069fbe sub.w r3, r3, r5, asr 31                          |         r3 -= (r5 >> 31);
    0x00069fc2 cmp r3, 0x26                                      |         
                                                                 |         if (r3 == 0x26) {
    0x00069fc4 beq 0x69fd0                                       |             goto label_12;
                                                                 |         }
    0x00069fc6 bgt 0x69f6c                                       |         
                                                                 |     } while (r3 > 0x26);
    0x00069fc8 cmp r3, 0x19                                      |     
                                                                 |     if (r3 != 0x19) {
    0x00069fca beq 0x69fd0                                       |         
    0x00069fcc cmp r3, 1                                         |         
                                                                 |         if (r3 != 1) {
    0x00069fce bne 0x6a030                                       |             goto label_34;
                                                                 |         }
                                                                 |     }
                                                                 | label_12:
    0x00069fd0 ldr r3, [pc, 0xcc]                                |     
    0x00069fd2 movs r2, 0                                        |     r2 = 0;
    0x00069fd4 add r3, pc                                        |     r3 = 0xd4078;
    0x00069fd6 strb r2, [r3]                                     |     *(r3) = r2;
    0x00069fd8 b 0x69f3c                                         |     goto label_7;
                                                                 | label_26:
    0x00069fda blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x00069fde ldr r3, [r0]                                      |     r3 = *(r0);
    0x00069fe0 cmp r3, 0                                         |     
    0x00069fe2 rsb.w r5, r3, 0                                   |     r5 = r3 - ;
    0x00069fe6 it le                                             |     
                                                                 |     if (r3 <= 0) {
    0x00069fe8 movle r8, r5                                      |         r8 = r5;
                                                                 |         goto label_35;
                                                                 |     }
                                                                 |     if (r3 > 0) {
                                                                 | label_35:
    0x00069fea bgt.w 0x69df6                                     |         goto label_2;
                                                                 |     }
    0x00069fee b 0x69e8a                                         |     goto label_8;
                                                                 | label_22:
    0x00069ff0 mov r5, r0                                        |     r5 = r0;
    0x00069ff2 b 0x69de4                                         |     goto label_1;
                                                                 | label_30:
    0x00069ff4 subs r3, 0x5d                                     |     r3 -= 0x5d;
    0x00069ff6 cmp r3, 4                                         |     
                                                                 |     if (r3 > 4) {
    0x00069ff8 bhi 0x69f72                                       |         goto label_9;
                                                                 |     }
    0x00069ffa b 0x69f34                                         |     goto label_10;
                                                                 | label_16:
    0x00069ffc lsrs.w r3, sb, 0x1e                               |     r3 = sb >> 0x1e;
                                                                 |     if (r3 != sb) {
    0x0006a000 bne 0x6a03e                                       |         goto label_36;
                                                                 |     }
    0x0006a002 lsl.w sl, sb, 2                                   |     sl = sb << 2;
    0x0006a006 mov r0, sl                                        |     r0 = sl;
    0x0006a008 cmp r0, 1                                         |     
    0x0006a00a it lo                                             |     
                                                                 |     if (r0 >= 1) {
    0x0006a00c movlo r0, 1                                       |         r0 = 1;
                                                                 |     }
    0x0006a00e blx 0x9234                                        |     r0 = blkid_safe_string ();
    0x0006a012 mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 == 0) {
    0x0006a014 cbz r0, 0x6a03e                                   |         goto label_36;
                                                                 |     }
    0x0006a016 sub.w r2, sl, 4                                   |     r2 = sl - 4;
    0x0006a01a mov r1, r6                                        |     r1 = r6;
    0x0006a01c blx 0x8f9c                                        |     fcn_00008f9c ();
    0x0006a020 add.w r3, r5, r4, lsl 2                           |     r3 = r5 + (r4 << 2);
    0x0006a024 mov sl, r5                                        |     sl = r5;
    0x0006a026 str r3, [r7, 4]                                   |     *((r7 + 4)) = r3;
    0x0006a028 movs r3, 2                                        |     r3 = 2;
    0x0006a02a invalid                                           |     
    0x0006a02c adds r0, 0x24                                     |     r0 += 0x24;
    0x0006a02e b 0x69cc0                                         |     goto label_11;
                                                                 | label_34:
    0x0006a030 cmp r3, 0xd                                       |     
                                                                 |     if (r3 == 0xd) {
    0x0006a032 beq 0x69fd0                                       |         goto label_12;
                                                                 |     }
    0x0006a034 b 0x69f72                                         |     goto label_9;
                                                                 | label_31:
    0x0006a036 cmp r3, 0xd                                       |     
                                                                 |     if (r3 == 0xd) {
    0x0006a038 beq.w 0x69f34                                     |         goto label_10;
                                                                 |     }
    0x0006a03c b 0x69f72                                         |     goto label_9;
                                                                 | label_36:
    0x0006a03e mov.w sl, 0                                       |     sl = 0;
    0x0006a042 b 0x69f3c                                         |     goto label_7;
                                                                 | label_25:
    0x0006a044 blx 0x927c                                        |     fprintf_chk ()
    0x0006a048 cdp p0, 7, c0, c14, c5, 0                         |     __asm ("cdp p0, 7, c0, c14, c5, 0");
    0x0006a04c lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0006a04e movs r0, r0                                       |     
    0x0006a050 cdp p0, 6, c0, c14, c5, 0                         |     __asm ("cdp p0, 6, c0, c14, c5, 0");
    0x0006a054 invalid                                           |     
                                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6a120 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0006a120 ()                      | void fcn_0006a120 (int16_t arg_398h, int16_t arg1, int16_t arg2) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     int16_t var_8h;
                                                 |     int16_t var_24h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 |     if (? >= ?) {
    0x0006a120 addlt fp, fp, r0, lsr r5          |         
                                                 |     }
    0x0006a124 str r0, [sp, 4]                   |     var_4h = r0;
    0x0006a126 mov r5, r1                        |     r5 = r1;
    0x0006a128 movs r3, 0x1a                     |     r3 = 0x1a;
    0x0006a12a movs r2, 1                        |     r2 = 1;
    0x0006a12c ldr r4, [pc, 0x58]                |     
    0x0006a12e ldr r0, [pc, 0x5c]                |     
    0x0006a130 ldr r1, [pc, 0x5c]                |     r1 = *(0x6a190);
    0x0006a132 add r4, pc                        |     r4 = 0xd42be;
    0x0006a134 add r0, pc                        |     r0 = 0xd42c6;
    0x0006a136 str r4, [sp]                      |     *(sp) = r4;
    0x0006a138 ldr r1, [r0, r1]                  |     
    0x0006a13a add r4, sp, 8                     |     r4 += var_8h;
    0x0006a13c mov r0, r4                        |     r0 = r4;
    0x0006a13e ldr r1, [r1]                      |     r1 = *(0xd42c6);
    0x0006a140 str r1, [sp, 0x24]                |     var_24h = r1;
    0x0006a142 mov.w r1, 0                       |     r1 = 0;
    0x0006a144 lsls r0, r0, 4                    |     r0 <<= 4;
    0x0006a146 mov r1, r3                        |     r1 = r3;
    0x0006a148 blx 0x9110                        |     fcn_00009110 ();
    0x0006a14c mov r1, r5                        |     r1 = r5;
    0x0006a14e mov r0, r4                        |     r0 = r4;
    0x0006a150 bl 0x6bff0                        |     r0 = fcn_0006bff0 (r0, r1);
    0x0006a154 adds r3, r0, 2                    |     r3 = r0 + 2;
    0x0006a156 beq 0x6a170                       |     
                                                 |     while (1) {
    0x0006a158 ldr r2, [pc, 0x38]                |         
    0x0006a15a ldr r3, [pc, 0x34]                |         r3 = *(0x6a192);
    0x0006a15c add r2, pc                        |         r2 = 0xd42f4;
    0x0006a15e ldr r3, [r2, r3]                  |         r3 = *(0xd42f4);
    0x0006a160 ldr r2, [r3]                      |         r2 = *(0xd42f4);
    0x0006a162 ldr r3, [sp, 0x24]                |         r3 = var_24h;
    0x0006a164 eors r2, r3                       |         r2 ^= r3;
    0x0006a166 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0006a16a bne 0x6a182                       |             goto label_0;
                                                 |         }
    0x0006a16c add sp, 0x2c                      |         
    0x0006a16e pop {r4, r5, pc}                  |         
    0x0006a170 bl 0x7a398                        |         r0 = fcn_0007a398 ();
    0x0006a174 cmp r0, 0                         |         
    0x0006a176 ite eq                            |         
                                                 |         if (r0 != 0) {
    0x0006a178 mvneq r0, 0x25                    |             r0 = ~0x25;
                                                 |         }
                                                 |         if (r0 != 0) {
    0x0006a17c mvn r0, 8                         |             r0 = ~8;
                                                 |         }
    0x0006a180 b 0x6a158                         |         
                                                 |     }
                                                 | label_0:
    0x0006a182 blx 0x927c                        |     fprintf_chk ()
    0x0006a186 nop                               |     
    0x0006a188 str r7, [sp, 0x398]               |     *(arg_398h) = r7;
    0x0006a18a movs r3, r0                       |     r3 = r0;
    0x0006a18c invalid                           |     
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6a214 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0006a214 ()                                      | void fcn_0006a214 (int16_t arg_0h, int16_t arg_4h, int16_t arg_80h, int16_t arg_350h, int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int32_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int32_t var_4h_2;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x0006a214 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x0006a218 mov r7, r1                                        |     r7 = r1;
    0x0006a21a ldr r1, [pc, 0x1a0]                               |     
    0x0006a21c mov r8, r2                                        |     r8 = r2;
    0x0006a21e sub sp, 0x24                                      |     
    0x0006a220 mov r4, r0                                        |     r4 = r0;
    0x0006a222 ldr r2, [pc, 0x19c]                               |     r2 = *(0x6a3c2);
    0x0006a224 orr.w r6, r7, r8                                  |     r6 = r7 | r8;
    0x0006a228 add r1, pc                                        |     r1 = 0xd45ea;
    0x0006a22a ldr r3, [pc, 0x198]                               |     
    0x0006a22c add r5, sp, 0x10                                  |     r5 += var_10h;
    0x0006a22e ldr r2, [r1, r2]                                  |     
    0x0006a230 add r3, pc                                        |     r3 = 0xd45fa;
    0x0006a232 ldr r2, [r2]                                      |     r2 = *(0xd45ea);
    0x0006a234 str r2, [sp, 0x1c]                                |     var_1ch = r2;
    0x0006a236 mov.w r2, 0                                       |     r2 = 0;
    0x0006a23a strd r0, r7, [sp, 4]                              |     __asm ("strd r0, r7, [var_4h]");
    0x0006a23e ldm.w r3, {r0, r1, r2}                            |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
                                                                 |     r2 = *((r3 + 8));
    0x0006a242 orrs.w r3, r4, r6                                 |     r3 = r4 | r6;
    0x0006a246 str.w r8, [sp, 0xc]                               |     __asm ("str.w r8, [var_ch]");
    0x0006a24a stm.w r5, {r0, r1, r2}                            |     *(r5) = r0;
                                                                 |     *((r5 + 4)) = r1;
                                                                 |     *((r5 + 8)) = r2;
                                                                 |     if (r3 < r4) {
    0x0006a24e bpl 0x6a29a                                       |         
    0x0006a250 cmp r6, 0                                         |         
    0x0006a252 it lt                                             |         
                                                                 |         if (r6 < 0) {
    0x0006a254 cmplt r4, 0                                       |             __asm ("cmplt r4, 0");
                                                                 |         }
    0x0006a256 itt lt                                            |         
                                                                 |         if (r6 >= 0) {
    0x0006a258 movlt r1, 2                                       |             r1 = 2;
                                                                 |         }
                                                                 |         if (r6 < 0) {
    0x0006a25a movtlt r1, 8                                      |             __asm ("movtlt r1, 8");
                                                                 |         }
                                                                 |         if (r6 >= 0) {
    0x0006a25e blt 0x6a26e                                       |             
    0x0006a260 movs r1, 1                                        |             r1 = 1;
    0x0006a262 cmp r4, 0                                         |             
    0x0006a264 movt r1, 8                                        |             r1 = (r1 & 0xFFFF) | 0x80000;
    0x0006a268 it lt                                             |             
                                                                 |             if (r4 < 0) {
    0x0006a26a movlt r1, 0x80000                                 |                 r1 = 0x80000;
                                                                 |                 goto label_5;
                                                                 |             }
                                                                 |         }
                                                                 | label_5:
    0x0006a26e ldr r0, [pc, 0x158]                               |         
    0x0006a270 add r0, pc                                        |         r0 = 0xd463e;
    0x0006a272 blx 0x91b4                                        |         r0 = fcn_000091b4 ();
    0x0006a276 subs.w sb, r0, 0                                  |         sb = r0 - 0;
                                                                 |         if (sb < r0) {
    0x0006a27a blt 0x6a374                                       |             goto label_3;
                                                                 |         }
    0x0006a27c cmp.w sb, 2                                       |         
                                                                 |         if (sb > 2) {
    0x0006a280 bgt 0x6a29e                                       |             goto label_6;
                                                                 |         }
    0x0006a282 movs r2, 3                                        |         r2 = 3;
    0x0006a284 movw r1, 0x406                                    |         r1 = 0x406;
    0x0006a288 blx 0x90e0                                        |         r0 = fcn_000090e0 ();
    0x0006a28c subs r6, r0, 0                                    |         r6 = r0 - 0;
                                                                 |         if (r6 < r0) {
    0x0006a28e blt 0x6a374                                       |             goto label_3;
                                                                 |         }
    0x0006a290 mov r0, sb                                        |         r0 = sb;
    0x0006a292 mov sb, r6                                        |         sb = r6;
    0x0006a294 bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
    0x0006a298 b 0x6a29e                                         |         
                                                                 |     } else {
    0x0006a29a mov.w sb, -1                                      |         sb = -1;
                                                                 |     }
                                                                 | label_6:
    0x0006a29e mov r0, r4                                        |     r0 = r4;
    0x0006a2a0 add.w sl, sp, 4                                   |     sl += var_4h;
    0x0006a2a4 cmp r0, 0                                         |     
    0x0006a2a6 mov fp, sl                                        |     
    0x0006a2a8 mov.w r6, 0                                       |     r6 = 0;
    0x0006a2ac it lt                                             |     
                                                                 |     if (r0 < 0) {
    0x0006a2ae invalid                                           |         
                                                                 |     }
                                                                 | label_4:
    0x0006a2b0 str r0, [sp]                                      |     *(sp) = r0;
    0x0006a2b2 blt 0x6a2c6                                       |     
                                                                 |     while (r0 >= 0) {
    0x0006a2b4 cmp r0, 2                                         |         
    0x0006a2b6 ite gt                                            |         
                                                                 |         if (r0 <= 2) {
    0x0006a2b8 movgt r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r0 > 2) {
    0x0006a2ba movle r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x0006a2bc cmp r0, r6                                        |         
    0x0006a2be it eq                                             |         
                                                                 |         if (r0 != r6) {
    0x0006a2c0 moveq r3, 0                                       |             r3 = 0;
                                                                 |         }
    0x0006a2c2 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0006a2c4 bne 0x6a38c                                       |             goto label_7;
                                                                 |         }
                                                                 | label_0:
    0x0006a2c6 adds r6, 1                                        |         r6++;
    0x0006a2c8 adds r5, 4                                        |         r5 += 4;
    0x0006a2ca cmp r6, 3                                         |         
                                                                 |         if (r6 == 3) {
    0x0006a2cc beq 0x6a2de                                       |             goto label_8;
                                                                 |         }
    0x0006a2ce ldr r0, [fp, 4]!                                  |         r0 = *(arg_4h);
    0x0006a2d2 cmp r0, 0                                         |         
    0x0006a2d4 it lt                                             |         
                                                                 |         if (r0 >= 0) {
    0x0006a2d6 strlt sb, [fp]                                    |             *(fp) = sb;
                                                                 |         }
    0x0006a2da bge 0x6a2b4                                       |         
                                                                 |     }
    0x0006a2dc b 0x6a2c6                                         |     goto label_0;
                                                                 | label_8:
    0x0006a2de movs r5, 0                                        |     r5 = 0;
                                                                 |     do {
    0x0006a2e0 ldr r0, [sl], 4                                   |         r0 = *(sl);
                                                                 |         sl += 4;
    0x0006a2e4 cmp r0, r5                                        |         
                                                                 |         if (r0 == r5) {
    0x0006a2e6 beq 0x6a37e                                       |             goto label_9;
                                                                 |         }
    0x0006a2e8 cmp r0, 2                                         |         
                                                                 |         if (r0 <= 2) {
    0x0006a2ea ble 0x6a3a2                                       |             goto label_10;
                                                                 |         }
    0x0006a2ec mov r1, r5                                        |         r1 = r5;
    0x0006a2ee blx 0x938c                                        |         r0 = fcn_0000938c ();
    0x0006a2f2 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0006a2f4 blt 0x6a374                                       |             goto label_3;
                                                                 |         }
                                                                 | label_2:
    0x0006a2f6 adds r5, 1                                        |         r5++;
    0x0006a2f8 cmp r5, 3                                         |         
    0x0006a2fa bne 0x6a2e0                                       |         
                                                                 |     } while (r5 != 3);
    0x0006a2fc movs r6, 0                                        |     r6 = 0;
                                                                 | label_1:
    0x0006a2fe cmp r4, 2                                         |     
                                                                 |     if (r4 > 2) {
    0x0006a300 ble 0x6a308                                       |         
    0x0006a302 mov r0, r4                                        |         r0 = r4;
    0x0006a304 bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
                                                                 |     }
    0x0006a308 cmp r4, r7                                        |     
    0x0006a30a it ne                                             |     
                                                                 |     if (r4 != r7) {
    0x0006a30c cmpne r7, 2                                       |         __asm ("cmpne r7, 2");
                                                                 |     }
                                                                 |     if (r4 > r7) {
    0x0006a30e ble 0x6a316                                       |         
    0x0006a310 mov r0, r7                                        |         r0 = r7;
    0x0006a312 bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
                                                                 |     }
    0x0006a316 cmp r4, r8                                        |     
    0x0006a318 it ne                                             |     
                                                                 |     if (r4 != r8) {
    0x0006a31a cmpne r7, r8                                      |         __asm ("cmpne r7, r8");
                                                                 |     }
    0x0006a31c ite ne                                            |     
                                                                 |     if (r4 == r8) {
    0x0006a31e movne r4, 1                                       |         r4 = 1;
                                                                 |     }
                                                                 |     if (r4 != r8) {
    0x0006a320 moveq r4, 0                                       |         r4 = 0;
                                                                 |     }
    0x0006a322 eor r4, r4, 1                                     |     r4 ^= 1;
    0x0006a324 lsls r1, r0, 0x10                                 |     r1 = r0 << 0x10;
    0x0006a326 cmp.w r8, 2                                       |     
    0x0006a32a it le                                             |     
                                                                 |     if (r8 > 2) {
    0x0006a32c orrle r4, r4, 1                                   |         r4 |= 1;
                                                                 |     }
    0x0006a330 cbz r4, 0x6a36c                                   |     
                                                                 |     while (1) {
    0x0006a332 ldr r0, [sp, 0x10]                                |         r0 = var_10h;
    0x0006a334 bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
    0x0006a338 ldr r0, [sp, 0x14]                                |         r0 = var_14h;
    0x0006a33a bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
    0x0006a33e ldr r0, [sp, 0x18]                                |         r0 = var_18h;
    0x0006a340 bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
    0x0006a344 cmp.w sb, 2                                       |         
                                                                 |         if (sb > 2) {
    0x0006a348 ble 0x6a350                                       |             
    0x0006a34a mov r0, sb                                        |             r0 = sb;
    0x0006a34c bl 0x69a04                                        |             fcn_00069a04 (r0, r1, r2, r3);
                                                                 |         }
    0x0006a350 ldr r2, [pc, 0x78]                                |         
    0x0006a352 ldr r3, [pc, 0x6c]                                |         r3 = *(0x6a3c2);
    0x0006a354 add r2, pc                                        |         r2 = 0xd4724;
    0x0006a356 ldr r3, [r2, r3]                                  |         r3 = *(0xd4724);
    0x0006a358 ldr r2, [r3]                                      |         r2 = *(0xd4724);
    0x0006a35a ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x0006a35c eors r2, r3                                       |         r2 ^= r3;
    0x0006a35e mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0006a362 bne 0x6a3b8                                       |             goto label_11;
                                                                 |         }
    0x0006a364 mov r0, r6                                        |         r0 = r6;
    0x0006a366 add sp, 0x24                                      |         
    0x0006a368 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x0006a36c mov r0, r8                                        |         r0 = r8;
    0x0006a36e bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
    0x0006a372 b 0x6a332                                         |         
                                                                 |     }
                                                                 | label_3:
    0x0006a374 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x0006a378 ldr r6, [r0]                                      |     r6 = *(r0);
    0x0006a37a rsbs r6, r6, 0                                    |     r6 -= ;
    0x0006a37c b 0x6a2fe                                         |     goto label_1;
                                                                 | label_9:
    0x0006a37e movs r1, 0                                        |     r1 = 0;
    0x0006a380 mov r0, r5                                        |     r0 = r5;
    0x0006a382 bl 0x69bd4                                        |     r0 = fcn_00069bd4 (r0, r1, r2);
    0x0006a386 subs r6, r0, 0                                    |     r6 = r0 - 0;
                                                                 |     if (r6 >= r0) {
    0x0006a388 bge 0x6a2f6                                       |         goto label_2;
                                                                 |     }
    0x0006a38a b 0x6a2fe                                         |     goto label_1;
                                                                 | label_7:
    0x0006a38c movs r2, 3                                        |     r2 = 3;
    0x0006a38e movw r1, 0x406                                    |     r1 = 0x406;
    0x0006a392 blx 0x90e0                                        |     r0 = fcn_000090e0 ();
    0x0006a396 cmp r0, 0                                         |     
    0x0006a398 str r0, [r5]                                      |     *(r5) = r0;
                                                                 |     if (r0 < 0) {
    0x0006a39a blt 0x6a374                                       |         goto label_3;
                                                                 |     }
    0x0006a39c str.w r0, [fp]                                    |     __asm ("str.w r0, [fp]");
    0x0006a3a0 b 0x6a2c6                                         |     goto label_0;
                                                                 | label_10:
    0x0006a3a2 ldr r1, [pc, 0x2c]                                |     
    0x0006a3a4 movw r2, 0x285                                    |     r2 = 0x285;
    0x0006a3a8 ldr r3, [pc, 0x28]                                |     
    0x0006a3aa ldr r0, [pc, 0x2c]                                |     
    0x0006a3ac add r1, pc                                        |     r1 = 0xd4782;
    0x0006a3ae add r3, pc                                        |     r3 = 0xd4786;
    0x0006a3b0 adds r1, 7                                        |     r1 += 7;
    0x0006a3b2 add r0, pc                                        |     r0 = 0xd4790;
    0x0006a3b4 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
    0x0006a3b6 invalid                                           |     
                                                                 | label_11:
    0x0006a3b8 blx 0x927c                                        |     r0 = fprintf_chk ()
    0x0006a3bc ldm.w ip, {r0, r2}                                |     r0 = *(ip);
                                                                 |     r2 = *((ip + 4));
    0x0006a3c0 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0006a3c2 movs r0, r0                                       |     
    0x0006a3c4 str r7, [sp, 0x80]                                |     *(arg_80h) = r7;
    0x0006a3c6 movs r3, r0                                       |     r3 = r0;
    0x0006a3c8 str r6, [sp, 0x350]                               |     *(arg_350h) = r6;
    0x0006a3ca movs r3, r0                                       |     r3 = r0;
    0x0006a3cc b 0x6a2b0                                         |     goto label_4;
                                                                 | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6a3dc */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.0006a3dc ()              | void fcn_0006a3dc (int16_t arg_a8h, int16_t arg1, int16_t arg2) {
                                         |     int16_t var_0h;
                                         |     int16_t var_4h;
                                         |     int16_t var_8h;
                                         |     int16_t var_24h;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x0006a3dc push {r4, r5, lr}         |     
    0x0006a3de sub sp, 0x2c              |     
    0x0006a3e0 str r0, [sp, 4]           |     var_4h = r0;
    0x0006a3e2 mov r5, r1                |     r5 = r1;
    0x0006a3e4 movs r3, 0x1a             |     r3 = 0x1a;
    0x0006a3e6 movs r2, 1                |     r2 = 1;
    0x0006a3e8 ldr r4, [pc, 0x64]        |     
    0x0006a3ea ldr r0, [pc, 0x68]        |     
    0x0006a3ec ldr r1, [pc, 0x68]        |     r1 = *(0x6a458);
    0x0006a3ee add r4, pc                |     r4 = 0xd4842;
    0x0006a3f0 add r0, pc                |     r0 = 0xd484a;
    0x0006a3f2 str r4, [sp]              |     *(sp) = r4;
    0x0006a3f4 ldr r1, [r0, r1]          |     
    0x0006a3f6 add r4, sp, 8             |     r4 += var_8h;
    0x0006a3f8 mov r0, r4                |     r0 = r4;
    0x0006a3fa ldr r1, [r1]              |     r1 = *(0xd484a);
    0x0006a3fc str r1, [sp, 0x24]        |     var_24h = r1;
    0x0006a3fe mov.w r1, 0               |     r1 = 0;
    0x0006a402 mov r1, r3                |     r1 = r3;
    0x0006a404 blx 0x9110                |     fcn_00009110 ();
    0x0006a408 mov r1, r5                |     r1 = r5;
    0x0006a40a mov r0, r4                |     r0 = r4;
    0x0006a40c blx 0x91b4                |     r0 = fcn_000091b4 ();
    0x0006a410 cmp r0, 0                 |     
    0x0006a412 blt 0x6a42c               |     
                                         |     while (r0 != 2) {
                                         | label_0:
    0x0006a414 ldr r2, [pc, 0x44]        |         
    0x0006a416 ldr r3, [pc, 0x40]        |         r3 = *(0x6a45a);
    0x0006a418 add r2, pc                |         r2 = 0xd4878;
    0x0006a41a ldr r3, [r2, r3]          |         r3 = *(0xd4878);
    0x0006a41c ldr r2, [r3]              |         r2 = *(0xd4878);
    0x0006a41e ldr r3, [sp, 0x24]        |         r3 = var_24h;
    0x0006a420 eors r2, r3               |         r2 ^= r3;
    0x0006a422 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x0006a426 bne 0x6a44c               |             goto label_1;
                                         |         }
    0x0006a428 add sp, 0x2c              |         
    0x0006a42a pop {r4, r5, pc}          |         
    0x0006a42c blx 0x9628                |         r0 = fcn_00009628 ();
    0x0006a430 ldr r0, [r0]              |         r0 = *(r0);
    0x0006a432 cmp r0, 2                 |         
    0x0006a434 it ne                     |         
                                         |         if (r0 != 2) {
    0x0006a436 rsbne r0, r0, 0           |             __asm ("rsbne r0, r0, 0");
                                         |         }
    0x0006a438 bne 0x6a414               |         
                                         |     }
    0x0006a43a bl 0x7a398                |     r0 = fcn_0007a398 ();
    0x0006a43e cmp r0, 0                 |     
    0x0006a440 ite eq                    |     
                                         |     if (r0 != 0) {
    0x0006a442 mvneq r0, 0x25            |         r0 = ~0x25;
                                         |     }
                                         |     if (r0 != 0) {
    0x0006a446 mvn r0, 1                 |         r0 = ~1;
                                         |     }
    0x0006a44a b 0x6a414                 |     goto label_0;
                                         | label_1:
    0x0006a44c blx 0x927c                |     fprintf_chk ()
    0x0006a450 str r5, [sp, 0xa8]        |     *(arg_a8h) = r5;
    0x0006a452 movs r3, r0               |     r3 = r0;
    0x0006a454 b 0x6a200                 |     return void (*0x6a200)() ();
                                         | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6a668 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0006a668 ()                                          | void fcn_0006a668 (int16_t arg_0h, uint32_t arg1, int16_t arg2, int16_t arg3) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
    0x0006a668 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0006a66c mov r6, r1                                            |     r6 = r1;
    0x0006a66e ldr r1, [pc, 0x120]                                   |     
    0x0006a670 mov r4, r2                                            |     r4 = r2;
    0x0006a672 sub sp, 0xc                                           |     
    0x0006a674 movs r3, 0                                            |     r3 = 0;
    0x0006a676 ldr r2, [pc, 0x11c]                                   |     r2 = *(0x6a796);
    0x0006a678 add r1, pc                                            |     r1 = 0xd4e0e;
    0x0006a67a ldr r2, [r1, r2]                                      |     
    0x0006a67c ldr r2, [r2]                                          |     r2 = *(0xd4e0e);
    0x0006a67e str r2, [sp, 4]                                       |     var_4h = r2;
    0x0006a680 mov.w r2, 0                                           |     r2 = 0;
    0x0006a684 str r3, [sp]                                          |     *(sp) = r3;
    0x0006a686 cmp r0, 0                                             |     
                                                                     |     if (arg_0h == ) {
    0x0006a688 beq 0x6a75a                                           |         goto label_1;
                                                                     |     }
    0x0006a68a cmp r6, 0                                             |     
                                                                     |     if (r6 == 0) {
    0x0006a68c beq 0x6a770                                           |         goto label_2;
                                                                     |     }
    0x0006a68e mov r5, r0                                            |     r5 = r0;
    0x0006a690 mov r0, r6                                            |     r0 = r6;
    0x0006a692 blx 0x8f38                                            |     r0 = fcn_00008f38 ();
    0x0006a696 mov r8, r0                                            |     r8 = r0;
    0x0006a698 mov sb, r0                                            |     sb = r0;
    0x0006a69a cmp r4, 0                                             |     
    0x0006a69c bne 0x6a732                                           |     
                                                                     |     while (1) {
    0x0006a69e add.w sl, sb, 1                                       |         sl = sb + 1;
    0x0006a6a2 mov r0, sl                                            |         r0 = sl;
    0x0006a6a4 blx 0x9234                                            |         r0 = blkid_safe_string ();
    0x0006a6a8 mov r7, r0                                            |         r7 = r0;
    0x0006a6aa cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0006a6ac beq 0x6a786                                           |             goto label_3;
                                                                     |         }
    0x0006a6ae ldr r1, [pc, 0xe8]                                    |         
    0x0006a6b0 mov r0, r5                                            |         r0 = r5;
    0x0006a6b2 mov r2, sp                                            |         r2 = sp;
    0x0006a6b4 add r1, pc                                            |         r1 = 0xd4e52;
    0x0006a6b6 bl 0x6a520                                            |         r0 = fcn_0006a520 (r0);
    0x0006a6ba subs r4, r0, 0                                        |         r4 = r0 - 0;
                                                                     |         if (r4 >= r0) {
    0x0006a6bc blt 0x6a70a                                           |             
    0x0006a6be blx 0x9628                                            |             fcn_00009628 ();
    0x0006a6c2 movs r3, 0                                            |             r3 = 0;
    0x0006a6c4 mov r2, sl                                            |             r2 = sl;
    0x0006a6c6 str r3, [r0]                                          |             *(r0) = r3;
    0x0006a6c8 movs r1, 1                                            |             r1 = 1;
    0x0006a6ca ldr r3, [sp]                                          |             r3 = *(sp);
    0x0006a6cc mov fp, r0                                            |             
    0x0006a6ce mov r0, r7                                            |             r0 = r7;
    0x0006a6d0 blx 0x94a0                                            |             r0 = fcn_000094a0 ();
    0x0006a6d4 mov r5, r0                                            |             r5 = r0;
    0x0006a6d6 ldr r0, [sp]                                          |             r0 = *(sp);
    0x0006a6d8 blx 0x94d0                                            |             r0 = fcn_000094d0 ();
    0x0006a6dc mov r4, r0                                            |             r4 = r0;
                                                                     |             if (r0 != 0) {
    0x0006a6de cbnz r0, 0x6a748                                      |                 goto label_4;
                                                                     |             }
    0x0006a6e0 cmp r5, sb                                            |             
    0x0006a6e2 it ne                                                 |             
                                                                     |             if (r5 != sb) {
    0x0006a6e4 cmpne r8, r5                                          |                 __asm ("cmpne r8, r5");
                                                                     |             }
                                                                     |             if (r5 != sb) {
    0x0006a6e6 bne 0x6a70a                                           |                 goto label_0;
                                                                     |             }
    0x0006a6e8 mov r1, r6                                            |             r1 = r6;
    0x0006a6ea mov r2, r8                                            |             r2 = r8;
    0x0006a6ec mov r0, r7                                            |             r0 = r7;
    0x0006a6ee blx 0x8a78                                            |             r0 = getauxval ();
                                                                     |             if (r0 != 0) {
    0x0006a6f2 cbnz r0, 0x6a70a                                      |                 goto label_0;
                                                                     |             }
    0x0006a6f4 cmp r8, r5                                            |             
    0x0006a6f6 it hs                                                 |             
                                                                     |             if (r8 < r5) {
    0x0006a6f8 movhs r4, 1                                           |                 r4 = 1;
                                                                     |             }
                                                                     |             if (r8 >= r5) {
    0x0006a6fa bhs 0x6a70a                                           |                 goto label_0;
                                                                     |             }
    0x0006a6fc ldrb.w r4, [r7, r8]                                   |             r4 = *((r7 + r8));
    0x0006a700 sub.w r4, r4, 0xa                                     |             r4 -= 0xa;
    0x0006a702 lsls r2, r1, 0x10                                     |             r2 = r1 << 0x10;
    0x0006a704 clz r4, r4                                            |             r4 &= r4;
    0x0006a708 lsrs r4, r4, 5                                        |             r4 >>= 5;
                                                                     |         }
                                                                     | label_0:
    0x0006a70a mov r0, r7                                            |         r0 = r7;
    0x0006a70c blx 0x8dac                                            |         fcn_00008dac ();
    0x0006a710 ldr r0, [sp]                                          |         r0 = *(sp);
    0x0006a712 bl 0x69b30                                            |         fcn_00069b30 (r0, r1, r2, r3);
    0x0006a716 ldr r2, [pc, 0x84]                                    |         
    0x0006a718 ldr r3, [pc, 0x78]                                    |         r3 = *(0x6a794);
    0x0006a71a add r2, pc                                            |         r2 = 0xd4ebc;
    0x0006a71c ldr r3, [r2, r3]                                      |         r3 = *(0xd4ebc);
    0x0006a71e ldr r2, [r3]                                          |         r2 = *(0xd4ebc);
    0x0006a720 ldr r3, [sp, 4]                                       |         r3 = var_4h;
    0x0006a722 eors r2, r3                                           |         r2 ^= r3;
    0x0006a724 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0006a728 bne 0x6a78c                                           |             goto label_5;
                                                                     |         }
    0x0006a72a mov r0, r4                                            |         r0 = r4;
    0x0006a72c add sp, 0xc                                           |         
    0x0006a72e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
    0x0006a732 ldr r1, [pc, 0x6c]                                    |         
    0x0006a734 mov r0, r6                                            |         r0 = r6;
    0x0006a736 add r1, pc                                            |         r1 = 0xd4edc;
    0x0006a738 bl 0x80428                                            |         r0 = fcn_00080428 (r0, r1);
    0x0006a73c cmp r0, 0                                             |         
    0x0006a73e ite ne                                                |         
                                                                     |         if (r0 == 0) {
    0x0006a740 movne sb, r8                                          |             sb = r8;
                                                                     |         }
                                                                     |         if (r0 != 0) {
    0x0006a742 addeq sb, r8, 1                                       |             sb = r8 + 1;
                                                                     |         }
    0x0006a746 b 0x6a69e                                             |         
                                                                     |     }
                                                                     | label_4:
    0x0006a748 ldr.w r4, [fp]                                        |     r4 = *(fp);
    0x0006a74c cmp r4, 0                                             |     
    0x0006a74e it gt                                                 |     
                                                                     |     if (r4 <= 0) {
    0x0006a750 rsbgt r4, r4, 0                                       |         __asm ("rsbgt r4, r4, 0");
                                                                     |         goto label_6;
                                                                     |     }
                                                                     |     if (r4 > 0) {
                                                                     | label_6:
    0x0006a752 bgt 0x6a70a                                           |         goto label_0;
                                                                     |     }
    0x0006a754 mvn r4, 4                                             |     r4 = ~4;
    0x0006a758 b 0x6a70a                                             |     goto label_0;
                                                                     | label_1:
    0x0006a75a ldr r1, [pc, 0x48]                                    |     
    0x0006a75c mov.w r2, 0x15a                                       |     r2 = 0x15a;
    0x0006a760 ldr r3, [pc, 0x44]                                    |     
    0x0006a762 ldr r0, [pc, 0x48]                                    |     
    0x0006a764 add r1, pc                                            |     r1 = 0xd4f0e;
    0x0006a766 add r3, pc                                            |     r3 = 0xd4f12;
    0x0006a768 adds r1, 7                                            |     r1 += 7;
    0x0006a76a add r0, pc                                            |     r0 = 0xd4f1c;
    0x0006a76c bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_2:
    0x0006a770 ldr r1, [pc, 0x3c]                                    |     
    0x0006a772 movw r2, 0x15b                                        |     r2 = 0x15b;
    0x0006a776 ldr r3, [pc, 0x3c]                                    |     
    0x0006a778 ldr r0, [pc, 0x3c]                                    |     
    0x0006a77a add r1, pc                                            |     r1 = 0xd4f2e;
    0x0006a77c add r3, pc                                            |     r3 = 0xd4f36;
    0x0006a77e adds r1, 7                                            |     r1 += 7;
    0x0006a780 add r0, pc                                            |     r0 = 0xd4f3c;
    0x0006a782 bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_3:
    0x0006a786 mvn r4, 0xb                                           |     r4 = ~0xb;
    0x0006a78a b 0x6a70a                                             |     goto label_0;
                                                                     | label_5:
    0x0006a78c blx 0x927c                                            |     fprintf_chk ()
    0x0006a790 b 0x6a02c                                             |     return void (*0x6a02c)() ();
                                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6a7bc */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0006a7bc ()                                          | void fcn_0006a7bc (int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_28h;
                                                                     |     int16_t var_48h;
                                                                     |     int32_t var_48h_2;
                                                                     |     int16_t var_84h;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0006a7bc push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0006a7c0 sub sp, 0x8c                                          |     
    0x0006a7c2 strd r3, r2, [sp, 0xc]                                |     __asm ("strd r3, r2, [var_10h]");
    0x0006a7c6 mov r8, r1                                            |     r8 = r1;
    0x0006a7c8 mov.w r1, 0x100                                       |     r1 = 0x100;
    0x0006a7cc ldr r2, [pc, 0x1dc]                                   |     
    0x0006a7ce movt r1, 8                                            |     r1 = (r1 & 0xFFFF) | 0x80000;
    0x0006a7d2 ldr r3, [pc, 0x1dc]                                   |     r3 = *(0x6a9b2);
    0x0006a7d4 add r2, pc                                            |     r2 = 0xd5184;
    0x0006a7d6 ldr r3, [r2, r3]                                      |     
    0x0006a7d8 ldr r3, [r3]                                          |     r3 = *(0xd5184);
    0x0006a7da str r3, [sp, 0x84]                                    |     var_84h = r3;
    0x0006a7dc mov.w r3, 0                                           |     r3 = 0;
    0x0006a7e0 blx 0x908c                                            |     r0 = fcn_0000908c ();
    0x0006a7e4 subs r4, r0, 0                                        |     r4 = r0 - 0;
                                                                     |     if (r4 < r0) {
    0x0006a7e6 blt.w 0x6a90c                                         |         goto label_6;
                                                                     |     }
    0x0006a7ea movs r3, 1                                            |     
    0x0006a7ec movt r3, 0xffc0                                       |     r3 = 0x-3fffff;
    0x0006a7f0 add r3, r8                                            |     r3 += r8;
    0x0006a7f2 cmn.w r3, 0x400000                                    |     
                                                                     |     if (r3 <= 0x400000) {
    0x0006a7f6 blo.w 0x6a92e                                         |         goto label_7;
                                                                     |     }
    0x0006a7fa movw sl, 0xfffe                                       |     
    0x0006a7fe mov r3, r8                                            |     r3 = r8;
    0x0006a800 movt sl, 0x3f                                         |     sl = 0x3ffffe;
    0x0006a804 mov.w sb, 3                                           |     sb = 3;
    0x0006a808 cmp r8, sl                                            |     
    0x0006a80a str.w sl, [sp, 0x14]                                  |     __asm ("str.w sl, [var_14h]");
    0x0006a80e it hs                                                 |     
                                                                     |     if (r8 < sl) {
    0x0006a810 movhs r3, sl                                          |         r3 = sl;
                                                                     |     }
    0x0006a812 add.w fp, sp, 0x18                                    |     
    0x0006a816 mov sl, r3                                            |     sl = r3;
                                                                     | label_0:
    0x0006a818 mov r1, fp                                            |     r1 = fp;
    0x0006a81a mov r0, r4                                            |     r0 = r4;
    0x0006a81c blx 0x9020                                            |     r0 = fcn_00009020 ();
    0x0006a820 cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0006a822 blt 0x6a90c                                           |         goto label_6;
                                                                     |     }
    0x0006a824 ldr r3, [sp, 0x28]                                    |     r3 = var_28h;
    0x0006a826 and r3, r3, 0xf000                                    |     r3 &= 0xf000;
    0x0006a82a cmp.w r3, 0x8000                                      |     
                                                                     |     if (r3 != 0x8000) {
    0x0006a82e bne.w 0x6a944                                         |         goto label_8;
                                                                     |     }
    0x0006a832 ldrd r0, r3, [sp, 0x48]                               |     __asm ("ldrd r0, r3, [var_48h]");
    0x0006a836 cmp r0, 1                                             |     
    0x0006a838 sbcs r2, r3, 0                                        |     __asm ("sbcs r2, r3, 0");
                                                                     |     if (r0 < 1) {
    0x0006a83c blt 0x6a8f4                                           |         goto label_9;
                                                                     |     }
    0x0006a83e cmp.w sb, 1                                           |     
                                                                     |     if (sb == 1) {
    0x0006a842 beq 0x6a8ba                                           |         goto label_10;
                                                                     |     }
    0x0006a844 cmp.w r0, -0x80000000                                 |     
    0x0006a848 sbcs r3, r3, 0                                        |     __asm ("sbcs r3, r3, 0");
                                                                     |     if (r0 < -0x80000000) {
    0x0006a84c blt 0x6a91a                                           |         goto label_11;
                                                                     |     }
    0x0006a84e cmp.w r8, -1                                          |     
                                                                     |     if (r8 == -1) {
    0x0006a852 beq 0x6a926                                           |         goto label_12;
                                                                     |     }
    0x0006a854 mov r0, r8                                            |     r0 = r8;
                                                                     | label_3:
    0x0006a856 add.w sb, sb, -1                                      |     sb += -1;
                                                                     | label_1:
    0x0006a85a adds r0, 1                                            |     r0++;
    0x0006a85c blx 0x9234                                            |     r0 = blkid_safe_string ();
    0x0006a860 mov r5, r0                                            |     r5 = r0;
    0x0006a862 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0006a864 beq.w 0x6a9a6                                         |         goto label_13;
                                                                     |     }
    0x0006a868 blx 0x8bf8                                            |     r0 = reallocarray ();
    0x0006a86c subs r7, r0, 1                                        |     r7 = r0 - 1;
    0x0006a86e cmp r7, sl                                            |     
    0x0006a870 it hs                                                 |     
                                                                     |     if (r7 < sl) {
    0x0006a872 movhs r7, sl                                          |         r7 = sl;
                                                                     |     }
    0x0006a874 adds r6, r7, 1                                        |     r6 = r7 + 1;
    0x0006a876 b 0x6a882                                             |     
                                                                     |     while (r0 < 0) {
    0x0006a878 blx 0x9628                                            |         r0 = fcn_00009628 ();
    0x0006a87c ldr r0, [r0]                                          |         r0 = *(r0);
    0x0006a87e cmp r0, 4                                             |         
                                                                     |         if (r0 != 4) {
    0x0006a880 bne 0x6a8c8                                           |             goto label_14;
                                                                     |         }
    0x0006a882 mov r2, r6                                            |         r2 = r6;
    0x0006a884 mov r1, r5                                            |         r1 = r5;
    0x0006a886 mov r0, r4                                            |         r0 = r4;
    0x0006a888 blx 0x8dc4                                            |         r0 = fcn_00008dc4 ();
    0x0006a88c cmp r0, 0                                             |         
    0x0006a88e blt 0x6a878                                           |         
                                                                     |     }
    0x0006a890 cmp r7, r0                                            |     
    0x0006a892 mov r6, r0                                            |     r6 = r0;
                                                                     |     if (r7 >= r0) {
    0x0006a894 bhs 0x6a952                                           |         goto label_15;
                                                                     |     }
    0x0006a896 cmp r8, r0                                            |     
                                                                     |     if (r8 <= r0) {
    0x0006a898 blo 0x6a978                                           |         goto label_16;
                                                                     |     }
    0x0006a89a cmp.w sb, 0                                           |     
                                                                     |     if (sb == 0) {
    0x0006a89e beq 0x6a94c                                           |         goto label_17;
                                                                     |     }
    0x0006a8a0 movs r3, 0                                            |     r3 = 0;
    0x0006a8a2 mov r0, r4                                            |     r0 = r4;
    0x0006a8a4 str r3, [sp]                                          |     *(sp) = r3;
    0x0006a8a6 movs r2, 0                                            |     r2 = 0;
    0x0006a8a8 movs r3, 0                                            |     r3 = 0;
    0x0006a8aa blx 0x9228                                            |     sigprocmask ();
    0x0006a8ae cmp r1, 0                                             |     
                                                                     |     if (r1 < 0) {
    0x0006a8b0 blt 0x6a8c2                                           |         goto label_18;
                                                                     |     }
    0x0006a8b2 mov r0, r5                                            |     r0 = r5;
    0x0006a8b4 blx 0x8dac                                            |     fcn_00008dac ();
    0x0006a8b8 b 0x6a818                                             |     goto label_0;
                                                                     |     do {
                                                                     | label_10:
    0x0006a8ba mov r0, sl                                            |         r0 = sl;
    0x0006a8bc mov.w sb, 0                                           |         sb = 0;
    0x0006a8c0 b 0x6a85a                                             |         goto label_1;
                                                                     | label_18:
    0x0006a8c2 blx 0x9628                                            |         r0 = fcn_00009628 ();
    0x0006a8c6 ldr r0, [r0]                                          |         r0 = *(r0);
                                                                     | label_14:
    0x0006a8c8 rsb.w r8, r0, 0                                       |         r8 = r0 - ;
                                                                     | label_2:
    0x0006a8cc mov r0, r4                                            |         r0 = r4;
    0x0006a8ce bl 0x69a04                                            |         fcn_00069a04 (r0, r1, r2, r3);
    0x0006a8d2 mov r0, r5                                            |         r0 = r5;
    0x0006a8d4 blx 0x8dac                                            |         fcn_00008dac ();
    0x0006a8d8 ldr r2, [pc, 0xd8]                                    |         
    0x0006a8da ldr r3, [pc, 0xd4]                                    |         r3 = *(0x6a9b2);
    0x0006a8dc add r2, pc                                            |         r2 = 0xd5294;
    0x0006a8de ldr r3, [r2, r3]                                      |         r3 = *(0xd5294);
    0x0006a8e0 ldr r2, [r3]                                          |         r2 = *(0xd5294);
    0x0006a8e2 ldr r3, [sp, 0x84]                                    |         r3 = var_84h;
    0x0006a8e4 eors r2, r3                                           |         r2 ^= r3;
    0x0006a8e6 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0006a8ea bne 0x6a9a2                                           |             goto label_19;
                                                                     |         }
    0x0006a8ec mov r0, r8                                            |         r0 = r8;
    0x0006a8ee add sp, 0x8c                                          |         
    0x0006a8f0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_9:
    0x0006a8f4 cmp.w sb, 1                                           |         
    0x0006a8f8 beq 0x6a8ba                                           |         
                                                                     |     } while (sb == 1);
    0x0006a8fa bl 0x725dc                                            |     fcn_000725dc ();
    0x0006a8fe subs r0, 1                                            |     r0--;
    0x0006a900 mov.w sb, 1                                           |     sb = 1;
    0x0006a904 cmp r0, sl                                            |     
    0x0006a906 it hs                                                 |     
                                                                     |     if (r0 < sl) {
    0x0006a908 movhs r0, sl                                          |         r0 = sl;
                                                                     |     }
    0x0006a90a b 0x6a85a                                             |     goto label_1;
                                                                     | label_6:
    0x0006a90c blx 0x9628                                            |     r0 = fcn_00009628 ();
    0x0006a910 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0006a912 movs r5, 0                                            |     r5 = 0;
    0x0006a914 rsb.w r8, r0, 0                                       |     r8 = r0 - ;
    0x0006a918 b 0x6a8cc                                             |     goto label_2;
                                                                     | label_11:
    0x0006a91a ldr r3, [sp, 0x14]                                    |     r3 = var_14h;
    0x0006a91c cmp r0, r8                                            |     
    0x0006a91e it hs                                                 |     
                                                                     |     if (r0 < r8) {
    0x0006a920 movhs r0, r8                                          |         r0 = r8;
                                                                     |     }
    0x0006a922 cmp r0, r3                                            |     
                                                                     |     if (r0 < r3) {
    0x0006a924 bls 0x6a856                                           |         goto label_3;
                                                                     |     }
                                                                     | label_12:
    0x0006a926 movs r5, 0                                            |     r5 = 0;
    0x0006a928 mvn r8, 0x1a                                          |     r8 = ~0x1a;
    0x0006a92c b 0x6a8cc                                             |     goto label_2;
                                                                     | label_7:
    0x0006a92e ldr r1, [pc, 0x88]                                    |     
    0x0006a930 mov.w r2, 0x192                                       |     r2 = 0x192;
    0x0006a934 ldr r3, [pc, 0x84]                                    |     
    0x0006a936 ldr r0, [pc, 0x88]                                    |     
    0x0006a938 add r1, pc                                            |     r1 = 0xd52f6;
    0x0006a93a add r3, pc                                            |     r3 = 0xd52fa;
    0x0006a93c adds r1, 7                                            |     r1 += 7;
    0x0006a93e add r0, pc                                            |     r0 = 0xd5304;
    0x0006a940 bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_8:
    0x0006a944 movs r5, 0                                            |     r5 = 0;
    0x0006a946 mvn r8, 8                                             |     r8 = ~8;
    0x0006a94a b 0x6a8cc                                             |     goto label_2;
                                                                     | label_17:
    0x0006a94c mvn r8, 0x1a                                          |     r8 = ~0x1a;
    0x0006a950 b 0x6a8cc                                             |     goto label_2;
                                                                     | label_15:
    0x0006a952 mov.w r8, 0                                           |     r8 = 0;
                                                                     |     do {
    0x0006a956 ldr r3, [sp, 0x10]                                    |         r3 = var_10h;
                                                                     |         if (r3 != 0) {
    0x0006a958 cbz r3, 0x6a96c                                       |             
    0x0006a95a ldr r3, [sp, 0xc]                                     |             r3 = var_ch;
                                                                     |             if (r3 == 0) {
    0x0006a95c cbz r3, 0x6a98e                                       |                 goto label_20;
                                                                     |             }
                                                                     | label_5:
    0x0006a95e cmp r6, r7                                            |             
                                                                     |             if (r6 <= r7) {
    0x0006a960 blo 0x6a980                                           |                 goto label_21;
                                                                     |             }
                                                                     | label_4:
    0x0006a962 ldr r3, [sp, 0x10]                                    |             r3 = var_10h;
    0x0006a964 str r5, [r3]                                          |             *(r3) = r5;
    0x0006a966 movs r3, 0                                            |             r3 = 0;
    0x0006a968 strb r3, [r5, r6]                                     |             *((r5 + r6)) = r3;
    0x0006a96a mov r5, r3                                            |             r5 = r3;
                                                                     |         }
    0x0006a96c ldr r3, [sp, 0xc]                                     |         r3 = var_ch;
                                                                     |         if (r3 != 0) {
    0x0006a96e cbz r3, 0x6a972                                       |             
    0x0006a970 str r6, [r3]                                          |             *(r3) = r6;
                                                                     |         }
    0x0006a972 eor r8, r8, 1                                         |         r8 ^= 1;
    0x0006a976 b 0x6a8cc                                             |         goto label_2;
                                                                     | label_16:
    0x0006a978 mov r6, r7                                            |         r6 = r7;
    0x0006a97a mov.w r8, 1                                           |         r8 = 1;
    0x0006a97e b 0x6a956                                             |         
                                                                     |     } while (1);
                                                                     | label_21:
    0x0006a980 adds r1, r6, 1                                        |     r1 = r6 + 1;
    0x0006a982 mov r0, r5                                            |     r0 = r5;
    0x0006a984 blx 0x94dc                                            |     r0 = fcn_000094dc ();
                                                                     |     if (r0 == 0) {
    0x0006a988 cbz r0, 0x6a9a6                                       |         goto label_13;
                                                                     |     }
    0x0006a98a mov r5, r0                                            |     r5 = r0;
    0x0006a98c b 0x6a962                                             |     goto label_4;
                                                                     | label_20:
    0x0006a98e mov r2, r6                                            |     r2 = r6;
    0x0006a990 mov r1, r3                                            |     r1 = r3;
    0x0006a992 mov r0, r5                                            |     r0 = r5;
    0x0006a994 blx 0x95ac                                            |     r0 = getpwuid_r ();
    0x0006a998 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0006a99a beq 0x6a95e                                           |         goto label_5;
                                                                     |     }
    0x0006a99c mvn r8, 0x49                                          |     r8 = ~0x49;
    0x0006a9a0 b 0x6a8cc                                             |     goto label_2;
                                                                     | label_19:
    0x0006a9a2 blx 0x927c                                            |     fprintf_chk ()
                                                                     | label_13:
    0x0006a9a6 mvn r8, 0xb                                           |     r8 = ~0xb;
    0x0006a9aa b 0x6a8cc                                             |     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/libexec/udevadm @ 0x6a9c4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0006a9c4 ()                                      | void fcn_0006a9c4 (uint32_t arg1, int16_t arg2, uint32_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0006a9c4 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x0006a9c8 mov r6, r1                                        |     r6 = r1;
    0x0006a9ca ldr r1, [pc, 0x154]                               |     
    0x0006a9cc mov sb, r3                                        |     sb = r3;
    0x0006a9ce sub sp, 8                                         |     
    0x0006a9d0 ldr r3, [pc, 0x150]                               |     r3 = *(0x6ab24);
    0x0006a9d2 add r1, pc                                        |     r1 = 0xd54f8;
    0x0006a9d4 ldr r3, [r1, r3]                                  |     
    0x0006a9d6 ldr r3, [r3]                                      |     r3 = *(0xd54f8);
    0x0006a9d8 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0006a9da mov.w r3, 0                                       |     r3 = 0;
    0x0006a9de movs r3, 0                                        |     r3 = 0;
    0x0006a9e0 str r3, [sp]                                      |     *(sp) = r3;
    0x0006a9e2 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0006a9e4 beq 0x6aabc                                       |         goto label_2;
                                                                 |     }
    0x0006a9e6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006a9e8 beq 0x6aad2                                       |         goto label_3;
                                                                 |     }
    0x0006a9ea cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0006a9ec beq 0x6aae8                                       |         goto label_4;
                                                                 |     }
    0x0006a9ee cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x0006a9f2 beq.w 0x6aafe                                     |         goto label_5;
                                                                 |     }
    0x0006a9f6 mov r8, r2                                        |     r8 = r2;
    0x0006a9f8 mov.w r1, -1                                      |     r1 = -1;
    0x0006a9fc mov r2, sp                                        |     r2 = sp;
    0x0006a9fe bl 0x6a7bc                                        |     r0 = fcn_0006a7bc (r0, r1, r2);
    0x0006aa02 subs r4, r0, 0                                    |     r4 = r0 - 0;
    0x0006aa04 ldr r7, [sp]                                      |     r7 = *(sp);
                                                                 |     if (r4 < r0) {
    0x0006aa06 blt 0x6aa94                                       |         goto label_1;
                                                                 |     }
    0x0006aa08 ldr.w sl, [pc, 0x11c]                             |     
    0x0006aa0c mov r5, r7                                        |     r5 = r7;
    0x0006aa0e add sl, pc                                        |     sl = 0xd553a;
                                                                 |     do {
                                                                 | label_0:
    0x0006aa10 mov r1, r6                                        |         r1 = r6;
    0x0006aa12 mov r0, r5                                        |         r0 = r5;
    0x0006aa14 blx 0x9164                                        |         r0 = fcn_00009164 ();
    0x0006aa18 mov r4, r0                                        |         r4 = r0;
    0x0006aa1a cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0006aa1c beq 0x6aab6                                       |             goto label_6;
                                                                 |         }
    0x0006aa1e mov r0, r6                                        |         r0 = r6;
    0x0006aa20 blx 0x8f38                                        |         fcn_00008f38 ();
    0x0006aa24 cmp r7, r4                                        |         
    0x0006aa26 add.w r5, r4, r0                                  |         r5 = r4 + r0;
                                                                 |         if (r7 == r4) {
    0x0006aa2a beq 0x6aa34                                       |             goto label_7;
                                                                 |         }
    0x0006aa2c ldrb r3, [r4, -0x1]                               |         r3 = *((r4 - 0x1));
    0x0006aa30 cmp r3, 0xa                                       |         
    0x0006aa32 bne 0x6aa10                                       |         
                                                                 |     } while (r3 != 0xa);
                                                                 | label_7:
    0x0006aa34 mov r0, r5                                        |     r0 = r5;
    0x0006aa36 mov r1, sl                                        |     r1 = sl;
    0x0006aa38 blx 0x9428                                        |     r0 = fcn_00009428 ();
    0x0006aa3c add r5, r0                                        |     r5 += r0;
    0x0006aa3e ldrb r3, [r5]                                     |     r3 = *(r5);
    0x0006aa40 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0006aa42 beq 0x6aab6                                       |         goto label_6;
                                                                 |     }
    0x0006aa44 cmp r3, 0x3a                                      |     
                                                                 |     if (r3 != 0x3a) {
    0x0006aa46 bne 0x6aa10                                       |         goto label_0;
                                                                 |     }
    0x0006aa48 ldrb r3, [r5, 1]                                  |     r3 = *((r5 + 1));
    0x0006aa4a adds r5, 1                                        |     r5++;
                                                                 |     if (r3 != 0) {
    0x0006aa4c cbz r3, 0x6aa7a                                   |         
    0x0006aa4e mov r1, sl                                        |         r1 = sl;
    0x0006aa50 mov r0, r5                                        |         r0 = r5;
    0x0006aa52 blx 0x9428                                        |         fcn_00009428 ();
    0x0006aa56 ldr r1, [pc, 0xd4]                                |         
    0x0006aa58 adds r4, r5, r0                                   |         r4 = r5 + r0;
    0x0006aa5a mov r0, r4                                        |         r0 = r4;
    0x0006aa5c add r1, pc                                        |         r1 = 0xd558e;
    0x0006aa5e blx 0x9428                                        |         fcn_00009428 ();
    0x0006aa62 ldrb r6, [r4, r0]                                 |         r6 = *((r4 + r0));
    0x0006aa64 mov r5, r0                                        |         r5 = r0;
    0x0006aa66 add r5, r4                                        |         r5 += r4;
                                                                 |         if (r6 != 0) {
    0x0006aa68 cbz r6, 0x6aa78                                   |             
    0x0006aa6a blx 0x91d8                                        |             r0 = fcn_000091d8 ();
    0x0006aa6e ldr r3, [r0]                                      |             r3 = *(r0);
    0x0006aa70 ldrh.w r3, [r3, r6, lsl 1]                        |             offset_0 = r6 << 1;
                                                                 |             r3 = *((r3 + offset_0));
    0x0006aa74 lsls r3, r3, 0x12                                 |             r3 <<= 0x12;
                                                                 |             if (r3 >= r3) {
    0x0006aa76 bpl 0x6aa7a                                       |                 goto label_8;
                                                                 |             }
                                                                 |         }
    0x0006aa78 subs r5, 1                                        |         r5--;
                                                                 |     }
                                                                 | label_8:
    0x0006aa7a mov r1, r8                                        |     r1 = r8;
    0x0006aa7c mov r0, r5                                        |     r0 = r5;
    0x0006aa7e blx 0x9488                                        |     r0 = fcn_00009488 ();
    0x0006aa82 mov r1, r0                                        |     r1 = r0;
    0x0006aa84 mov r0, r5                                        |     r0 = r5;
    0x0006aa86 blx 0x8f2c                                        |     r0 = fcn_00008f2c ();
    0x0006aa8a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006aa8c beq 0x6ab18                                       |         goto label_9;
                                                                 |     }
    0x0006aa8e movs r4, 0                                        |     r4 = 0;
    0x0006aa90 str.w r0, [sb]                                    |     __asm ("str.w r0, [sb]");
                                                                 |     do {
                                                                 | label_1:
    0x0006aa94 mov r0, r7                                        |         r0 = r7;
    0x0006aa96 blx 0x8dac                                        |         fcn_00008dac ();
    0x0006aa9a ldr r2, [pc, 0x94]                                |         
    0x0006aa9c ldr r3, [pc, 0x84]                                |         r3 = *(0x6ab24);
    0x0006aa9e add r2, pc                                        |         r2 = 0xd55d4;
    0x0006aaa0 ldr r3, [r2, r3]                                  |         r3 = *(0xd55d4);
    0x0006aaa2 ldr r2, [r3]                                      |         r2 = *(0xd55d4);
    0x0006aaa4 ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x0006aaa6 eors r2, r3                                       |         r2 ^= r3;
    0x0006aaa8 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0006aaac bne 0x6ab14                                       |             goto label_10;
                                                                 |         }
    0x0006aaae mov r0, r4                                        |         r0 = r4;
    0x0006aab0 add sp, 8                                         |         
    0x0006aab2 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_6:
    0x0006aab6 mvn r4, 1                                         |         r4 = ~1;
    0x0006aaba b 0x6aa94                                         |         
                                                                 |     } while (1);
                                                                 | label_2:
    0x0006aabc ldr r1, [pc, 0x74]                                |     
    0x0006aabe movw r2, 0x32f                                    |     r2 = 0x32f;
    0x0006aac2 ldr r3, [pc, 0x74]                                |     
    0x0006aac4 ldr r0, [pc, 0x74]                                |     
    0x0006aac6 add r1, pc                                        |     r1 = 0xd55fe;
    0x0006aac8 add r3, pc                                        |     r3 = 0xd5606;
    0x0006aaca adds r1, 7                                        |     r1 += 7;
    0x0006aacc add r0, pc                                        |     r0 = 0xd560c;
    0x0006aace bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_3:
    0x0006aad2 ldr r1, [pc, 0x6c]                                |     
    0x0006aad4 mov.w r2, 0x330                                   |     r2 = 0x330;
    0x0006aad8 ldr r3, [pc, 0x68]                                |     
    0x0006aada ldr r0, [pc, 0x6c]                                |     
    0x0006aadc add r1, pc                                        |     r1 = 0xd5622;
    0x0006aade add r3, pc                                        |     r3 = 0xd5626;
    0x0006aae0 adds r1, 7                                        |     r1 += 7;
    0x0006aae2 add r0, pc                                        |     r0 = 0xd5630;
    0x0006aae4 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_4:
    0x0006aae8 ldr r1, [pc, 0x60]                                |     
    0x0006aaea movw r2, 0x331                                    |     r2 = 0x331;
    0x0006aaee ldr r3, [pc, 0x60]                                |     
    0x0006aaf0 ldr r0, [pc, 0x60]                                |     
    0x0006aaf2 add r1, pc                                        |     r1 = 0xd5642;
    0x0006aaf4 add r3, pc                                        |     r3 = 0xd564a;
    0x0006aaf6 adds r1, 7                                        |     r1 += 7;
    0x0006aaf8 add r0, pc                                        |     r0 = 0xd5650;
    0x0006aafa bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_5:
    0x0006aafe ldr r1, [pc, 0x58]                                |     
    0x0006ab00 movw r2, 0x332                                    |     r2 = 0x332;
    0x0006ab04 ldr r3, [pc, 0x54]                                |     
    0x0006ab06 ldr r0, [pc, 0x58]                                |     
    0x0006ab08 add r1, pc                                        |     r1 = 0xd5666;
    0x0006ab0a add r3, pc                                        |     r3 = 0xd566a;
    0x0006ab0c adds r1, 7                                        |     r1 += 7;
    0x0006ab0e add r0, pc                                        |     r0 = 0xd5674;
    0x0006ab10 bl 0x71518                                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_10:
    0x0006ab14 blx 0x927c                                        |     fprintf_chk ()
                                                                 | label_9:
    0x0006ab18 mvn r4, 0xb                                       |     r4 = ~0xb;
    0x0006ab1c b 0x6aa94                                         |     goto label_1;
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6ac70 */
                                                                     | #include <stdint.h>
                                                                     |  
                                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                     |  
    ; (fcn) fcn.0006ac70 ()                                          | void fcn_0006ac70 (int16_t arg_0h, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0006ac70 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0006ac74 mov sb, r2                                            |     sb = r2;
    0x0006ac76 ldr r2, [pc, 0x184]                                   |     
    0x0006ac78 mov r5, r3                                            |     r5 = r3;
    0x0006ac7a sub sp, 0x1c                                          |     
    0x0006ac7c ldr r3, [pc, 0x180]                                   |     r3 = *(0x6ae00);
    0x0006ac7e add r7, sp, 0                                         |     r7 += arg_0h;
    0x0006ac80 add r2, pc                                            |     r2 = 0xd5a82;
    0x0006ac82 ldr r3, [r2, r3]                                      |     
    0x0006ac84 ldr r3, [r3]                                          |     r3 = *(0xd5a82);
    0x0006ac86 str r3, [r7, 0x14]                                    |     *((r7 + 0x14)) = r3;
    0x0006ac88 mov.w r3, 0                                           |     r3 = 0;
    0x0006ac8c cmp r0, 0                                             |     
                                                                     |     if (arg_0h == ) {
    0x0006ac8e beq.w 0x6ad9a                                         |         goto label_5;
                                                                     |     }
    0x0006ac92 mov r6, r1                                            |     r6 = r1;
    0x0006ac94 cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x0006ac96 beq.w 0x6adae                                         |         goto label_6;
                                                                     |     }
    0x0006ac9a mov r4, r0                                            |     r4 = r0;
    0x0006ac9c blx 0x94d0                                            |     r0 = fcn_000094d0 ();
    0x0006aca0 mov r8, r0                                            |     r8 = r0;
    0x0006aca2 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0006aca4 bne.w 0x6adea                                         |         goto label_7;
                                                                     |     }
    0x0006aca8 cmp r5, 0                                             |     
                                                                     |     if (r5 == 0) {
    0x0006acaa beq 0x6ad34                                           |         goto label_8;
                                                                     |     }
    0x0006acac mov r0, r4                                            |     r0 = r4;
    0x0006acae blx 0x89b0                                            |     r0 = fcn_000089b0 ();
    0x0006acb2 subs.w sl, r0, 0                                      |     sl = r0 - 0;
                                                                     |     if (sl < r0) {
    0x0006acb6 blt.w 0x6adf0                                         |         goto label_9;
                                                                     |     }
                                                                     |     do {
    0x0006acba tst.w sb, 8                                           |         
                                                                     |         if ((sb & 8) == 0) {
    0x0006acbe bne 0x6acd2                                           |             
    0x0006acc0 ldr.w fp, [pc, 0x140]                                 |             
    0x0006acc4 mov r0, r6                                            |             r0 = r6;
    0x0006acc6 add fp, pc                                            |             fp = 0xd5ace;
    0x0006acc8 mov r1, fp                                            |             r1 = fp;
    0x0006acca bl 0x80428                                            |             r0 = fcn_00080428 (r0, r1);
    0x0006acce cmp r0, 0                                             |             
                                                                     |             if (r0 == 0) {
    0x0006acd0 beq 0x6ad5e                                           |                 goto label_10;
                                                                     |             }
                                                                     |         }
                                                                     | label_3:
    0x0006acd2 mov r0, r6                                            |         r0 = r6;
    0x0006acd4 mov r1, r4                                            |         r1 = r4;
    0x0006acd6 blx 0x9670                                            |         fcn_00009670 ();
    0x0006acda adds r0, 1                                            |         r0++;
                                                                     |         if (r0 == 1) {
    0x0006acdc beq 0x6ad52                                           |             goto label_11;
                                                                     |         }
                                                                     | label_0:
    0x0006acde tst.w sb, 0x40                                        |         
    0x0006ace2 mov r0, r4                                            |         r0 = r4;
                                                                     |         if ((sb & 0x40) == 0) {
    0x0006ace4 beq 0x6ad8e                                           |             goto label_12;
                                                                     |         }
    0x0006ace6 bl 0x6ac14                                            |         r0 = void (*0x6ac14)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x0006acea cmp r0, 0                                             |         
                                                                     |         if (r0 < 0) {
    0x0006acec blt 0x6ad96                                           |             goto label_13;
                                                                     |         }
                                                                     |         if (r5 != 0) {
                                                                     | label_4:
    0x0006acee cbz r5, 0x6ad16                                       |             
    0x0006acf0 ldm.w r5, {r0, r1}                                    |             r0 = *(r5);
                                                                     |             r1 = *((r5 + 4));
    0x0006acf4 cmp.w sl, -1                                          |             
    0x0006acf8 add.w r3, r7, 4                                       |             r3 = r7 + 4;
    0x0006acfc add.w r2, r7, 0xc                                     |             r2 = r7 + 0xc;
    0x0006ad00 stm.w r3, {r0, r1}                                    |             *(r3) = r0;
                                                                     |             *((r3 + 4)) = r1;
    0x0006ad04 stm.w r2, {r0, r1}                                    |             *(r2) = r0;
                                                                     |             *((r2 + 4)) = r1;
                                                                     |             if (sl == -1) {
    0x0006ad08 beq 0x6adc2                                           |                 goto label_14;
                                                                     |             }
    0x0006ad0a mov r1, r3                                            |             r1 = r3;
    0x0006ad0c mov r0, sl                                            |             r0 = sl;
    0x0006ad0e blx 0x957c                                            |             r0 = fchmod (r0, r1);
    0x0006ad12 cmp r0, 0                                             |             
                                                                     |             if (r0 < 0) {
    0x0006ad14 blt 0x6ad52                                           |                 goto label_11;
                                                                     |             }
                                                                     |         }
                                                                     | label_1:
    0x0006ad16 ldr r2, [pc, 0xf0]                                    |         
    0x0006ad18 ldr r3, [pc, 0xe4]                                    |         r3 = *(0x6ae00);
    0x0006ad1a add r2, pc                                            |         r2 = 0xd5b28;
    0x0006ad1c ldr r3, [r2, r3]                                      |         r3 = *(0xd5b28);
    0x0006ad1e ldr r2, [r3]                                          |         r2 = *(0xd5b28);
    0x0006ad20 ldr r3, [r7, 0x14]                                    |         r3 = *((r7 + 0x14));
    0x0006ad22 eors r2, r3                                           |         r2 ^= r3;
    0x0006ad24 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0006ad28 bne 0x6adf6                                           |             goto label_15;
                                                                     |         }
    0x0006ad2a mov r0, r8                                            |         r0 = r8;
    0x0006ad2c adds r7, 0x1c                                         |         r7 += 0x1c;
    0x0006ad2e mov sp, r7                                            |         
    0x0006ad30 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_8:
    0x0006ad34 mov.w sl, -1                                          |         sl = -1;
    0x0006ad38 b 0x6acba                                             |         
                                                                     |     } while (1);
                                                                     | label_2:
    0x0006ad3a mov r0, r6                                            |     r0 = r6;
    0x0006ad3c mov r1, r4                                            |     r1 = r4;
    0x0006ad3e blx 0x9670                                            |     fcn_00009670 ();
    0x0006ad42 adds r0, 1                                            |     r0++;
                                                                     |     if (r0 == 1) {
    0x0006ad44 beq 0x6ad52                                           |         goto label_11;
                                                                     |     }
    0x0006ad46 mov r1, r4                                            |     r1 = r4;
    0x0006ad48 movs r0, 0xa                                          |     r0 = 0xa;
    0x0006ad4a blx 0x92e0                                            |     fcn_000092e0 ();
    0x0006ad4e adds r0, 1                                            |     r0++;
                                                                     |     if (r0 != 1) {
    0x0006ad50 bne 0x6acde                                           |         goto label_0;
                                                                     |     }
                                                                     | label_11:
    0x0006ad52 blx 0x9628                                            |     r0 = fcn_00009628 ();
    0x0006ad56 ldr r3, [r0]                                          |     r3 = *(r0);
    0x0006ad58 rsb.w r8, r3, 0                                       |     r8 = r3 - ;
    0x0006ad5c b 0x6ad16                                             |     goto label_1;
                                                                     | label_10:
    0x0006ad5e tst.w sb, 0x80                                        |     
                                                                     |     if ((sb & 0x80) == 0) {
    0x0006ad62 beq 0x6ad3a                                           |         goto label_2;
                                                                     |     }
    0x0006ad64 mov r0, r6                                            |     r0 = r6;
    0x0006ad66 blx 0x8f38                                            |     r0 = fcn_00008f38 ();
    0x0006ad6a adds r3, r0, 2                                        |     r3 = r0 + 2;
    0x0006ad6c cmp.w r3, 0x400000                                    |     
                                                                     |     if (r3 > 0x400000) {
    0x0006ad70 bhi 0x6add6                                           |         goto label_16;
                                                                     |     }
    0x0006ad72 adds r0, 9                                            |     r0 += 9;
    0x0006ad74 mov r1, r6                                            |     r1 = r6;
    0x0006ad76 bic r0, r0, 7                                         |     r0 = BIT_MASK (r0, 7);
    0x0006ad7a sub.w sp, sp, r0                                      |     
    0x0006ad7e mov r6, sp                                            |     r6 = sp;
    0x0006ad80 mov r0, r6                                            |     r0 = r6;
    0x0006ad82 blx 0x8c38                                            |     fcn_00008c38 ();
    0x0006ad86 ldrh.w r3, [fp]                                       |     r3 = *(fp);
    0x0006ad8a strh r3, [r0]                                         |     *(r0) = r3;
    0x0006ad8c b 0x6acd2                                             |     goto label_3;
                                                                     | label_12:
    0x0006ad8e bl 0x6abc4                                            |     r0 = fcn_0006abc4 (r0, r1, r2);
    0x0006ad92 cmp r0, 0                                             |     
                                                                     |     if (r0 >= 0) {
    0x0006ad94 bge 0x6acee                                           |         goto label_4;
                                                                     |     }
                                                                     | label_13:
    0x0006ad96 mov r8, r0                                            |     r8 = r0;
    0x0006ad98 b 0x6ad16                                             |     goto label_1;
                                                                     | label_5:
    0x0006ad9a ldr r1, [pc, 0x70]                                    |     
    0x0006ad9c movs r2, 0x89                                         |     r2 = 0x89;
    0x0006ad9e ldr r3, [pc, 0x70]                                    |     
    0x0006ada0 ldr r0, [pc, 0x70]                                    |     
    0x0006ada2 add r1, pc                                            |     r1 = 0xd5bb4;
    0x0006ada4 add r3, pc                                            |     r3 = 0xd5bba;
    0x0006ada6 adds r1, 7                                            |     r1 += 7;
    0x0006ada8 add r0, pc                                            |     r0 = 0xd5bc0;
    0x0006adaa bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_6:
    0x0006adae ldr r1, [pc, 0x68]                                    |     
    0x0006adb0 movs r2, 0x8a                                         |     r2 = 0x8a;
    0x0006adb2 ldr r3, [pc, 0x68]                                    |     
    0x0006adb4 ldr r0, [pc, 0x68]                                    |     
    0x0006adb6 add r1, pc                                            |     r1 = 0xd5bd4;
    0x0006adb8 add r3, pc                                            |     r3 = 0xd5bda;
    0x0006adba adds r1, 7                                            |     r1 += 7;
    0x0006adbc add r0, pc                                            |     r0 = 0xd5be0;
    0x0006adbe bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_14:
    0x0006adc2 ldr r1, [pc, 0x60]                                    |     
    0x0006adc4 movs r2, 0xb2                                         |     r2 = 0xb2;
    0x0006adc6 ldr r3, [pc, 0x60]                                    |     
    0x0006adc8 ldr r0, [pc, 0x60]                                    |     
    0x0006adca add r1, pc                                            |     r1 = 0xd5bf4;
    0x0006adcc add r3, pc                                            |     r3 = 0xd5bfa;
    0x0006adce adds r1, 7                                            |     r1 += 7;
    0x0006add0 add r0, pc                                            |     r0 = 0xd5c00;
    0x0006add2 bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_16:
    0x0006add6 ldr r1, [pc, 0x58]                                    |     
    0x0006add8 movs r2, 0x9d                                         |     r2 = 0x9d;
    0x0006adda ldr r3, [pc, 0x58]                                    |     
    0x0006addc ldr r0, [pc, 0x58]                                    |     
    0x0006adde add r1, pc                                            |     r1 = 0xd5c14;
    0x0006ade0 add r3, pc                                            |     r3 = 0xd5c1a;
    0x0006ade2 adds r1, 7                                            |     r1 += 7;
    0x0006ade4 add r0, pc                                            |     r0 = 0xd5c20;
    0x0006ade6 bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_7:
    0x0006adea mvn r8, 4                                             |     r8 = ~4;
    0x0006adee b 0x6ad16                                             |     goto label_1;
                                                                     | label_9:
    0x0006adf0 mvn r8, 8                                             |     r8 = ~8;
    0x0006adf4 b 0x6ad16                                             |     goto label_1;
                                                                     | label_15:
    0x0006adf6 blx 0x927c                                            |     fprintf_chk ()
    0x0006adfa nop                                                   |     
    0x0006adfc udf 0x44                                              |     __asm ("udf 0x44");
                                                                     | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6ae3c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0006ae3c ()                              | void fcn_0006ae3c (uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     char * dest;
                                                         |     int16_t var_ch;
                                                         |     int16_t var_fh;
                                                         |     int16_t var_10h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x0006ae3c mvnsmi lr, 0xb4000                        |     __asm ("mvnsmi lr, aav.0x000000ff");
    0x0006ae40 mov r4, r2                                |     r4 = r2;
    0x0006ae42 ldr r2, [pc, 0x24c]                       |     
    0x0006ae44 mov r8, r3                                |     r8 = r3;
    0x0006ae46 sub sp, 0x14                              |     
    0x0006ae48 ldr r3, [pc, 0x248]                       |     r3 = *(0x6b094);
    0x0006ae4a add r2, pc                                |     r2 = 0xd5ee0;
    0x0006ae4c ldr r3, [r2, r3]                          |     
    0x0006ae4e ldr r3, [r3]                              |     r3 = *(0xd5ee0);
    0x0006ae50 str r3, [sp, 0xc]                         |     var_ch = r3;
    0x0006ae52 mov.w r3, 0                               |     r3 = 0;
    0x0006ae56 movs r3, 0                                |     r3 = 0;
    0x0006ae58 str r3, [sp]                              |     *(sp) = r3;
    0x0006ae5a cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0006ae5c beq.w 0x6affe                             |         goto label_7;
                                                         |     }
    0x0006ae60 mov r7, r1                                |     r7 = r1;
    0x0006ae62 cmp r1, 0                                 |     
                                                         |     if (r1 == 0) {
    0x0006ae64 beq.w 0x6b012                             |         goto label_8;
                                                         |     }
    0x0006ae68 and r3, r4, 0x50                          |     r3 = r4 & 0x50;
    0x0006ae6c cmp r3, 0x50                              |     
                                                         |     if (r3 == 0x50) {
    0x0006ae6e beq.w 0x6b026                             |         goto label_9;
                                                         |     }
    0x0006ae72 lsls r5, r4, 0x16                         |     r5 = r4 << 0x16;
    0x0006ae74 mov r6, r0                                |     r6 = r0;
                                                         |     if (r5 < r4) {
    0x0006ae76 bmi.w 0x6af84                             |         goto label_10;
                                                         |     }
    0x0006ae7a lsls r1, r4, 0x1d                         |     r1 = r4 << 0x1d;
                                                         |     if (r1 >= r4) {
    0x0006ae7c bpl 0x6af18                               |         goto label_2;
                                                         |     }
                                                         | label_1:
    0x0006ae7e mvn.w sb, r4                              |     sb = ~r4;
    0x0006ae82 ands sb, sb, 1                            |     sb &= 1;
                                                         |     if (sb != sb) {
    0x0006ae86 bne.w 0x6b048                             |         goto label_11;
                                                         |     }
    0x0006ae8a add r2, sp, 8                             |     r2 += dest;
    0x0006ae8c add r1, sp, 4                             |     r1 += var_4h;
    0x0006ae8e mov r0, r6                                |     r0 = r6;
    0x0006ae90 strd sb, sb, [sp, 4]                      |     __asm ("strd sb, sb, [var_4h]");
    0x0006ae94 bl 0x7d228                                |     r0 = fcn_0007d228 (r0, r1, r2);
    0x0006ae98 subs r5, r0, 0                            |     r5 = r0 - 0;
                                                         |     if (r5 < r0) {
    0x0006ae9a blt.w 0x6afc6                             |         goto label_12;
                                                         |     }
    0x0006ae9e ldr r0, [sp, 4]                           |     r0 = var_4h;
    0x0006aea0 mov r3, r8                                |     r3 = r8;
    0x0006aea2 mov r2, r4                                |     r2 = r4;
    0x0006aea4 mov r1, r7                                |     r1 = r7;
    0x0006aea6 bl 0x6ac70                                |     r0 = fcn_0006ac70 (r0, r1, r2, r3, r4);
    0x0006aeaa subs r5, r0, 0                            |     r5 = r0 - 0;
                                                         |     if (r5 < r0) {
    0x0006aeac blt.w 0x6afe0                             |         goto label_13;
                                                         |     }
    0x0006aeb0 ldr r0, [sp, 4]                           |     r0 = var_4h;
    0x0006aeb2 blx 0x89b0                                |     fcn_000089b0 ();
    0x0006aeb6 tst.w r4, 0x400                           |     
    0x0006aeb8 ldr r0, [r0, 0x78]                        |     r0 = *((r0 + 0x78));
    0x0006aeba ite ne                                    |     
                                                         |     if ((r4 & 0x400) == 0) {
    0x0006aebc movne r1, 0x180                           |         r1 = 0x180;
                                                         |     }
                                                         |     if ((r4 & 0x400) == 0) {
    0x0006aec0 mov.w r1, 0x1a4                           |         r1 = 0x1a4;
                                                         |     }
    0x0006aec4 bl 0x6c070                                |     r0 = fcn_0006c070 (r0, r1);
    0x0006aec8 subs r5, r0, 0                            |     r5 = r0 - 0;
                                                         |     if (r5 < r0) {
    0x0006aeca blt.w 0x6afe0                             |         goto label_13;
                                                         |     }
    0x0006aece ldr r0, [sp, 8]                           |     r0 = dest;
    0x0006aed0 mov r1, r6                                |     r1 = r6;
    0x0006aed2 blx 0x8b50                                |     r0 = strncpy (r0, r1, r2);
    0x0006aed6 cmp r0, 0                                 |     
                                                         |     if (r0 < 0) {
    0x0006aed8 blt 0x6afd8                               |         goto label_14;
                                                         |     }
    0x0006aeda ands r8, r4, 0x40                         |     r8 = r4 & 0x40;
                                                         |     if (r8 != r4) {
    0x0006aede bne.w 0x6b07a                             |         goto label_15;
                                                         |     }
    0x0006aee2 ldr r0, [sp, 8]                           |     r0 = dest;
    0x0006aee4 mov r5, r8                                |     r5 = r8;
    0x0006aee6 blx 0x8dac                                |     fcn_00008dac ();
    0x0006aeea ldr r0, [sp, 4]                           |     r0 = var_4h;
    0x0006aeec str.w r8, [sp, 8]                         |     __asm ("str.w r8, [dest]");
    0x0006aef0 bl 0x69b30                                |     fcn_00069b30 (r0, r1, r2, r3);
                                                         |     do {
                                                         | label_0:
    0x0006aef4 ldr r0, [sp]                              |         r0 = *(sp);
    0x0006aef6 bl 0x69b30                                |         fcn_00069b30 (r0, r1, r2, r3);
    0x0006aefa ldr r2, [pc, 0x19c]                       |         
    0x0006aefc ldr r3, [pc, 0x194]                       |         r3 = *(0x6b094);
    0x0006aefe add r2, pc                                |         r2 = 0xd5f9c;
    0x0006af00 ldr r3, [r2, r3]                          |         r3 = *(0xd5f9c);
    0x0006af02 ldr r2, [r3]                              |         r2 = *(0xd5f9c);
    0x0006af04 ldr r3, [sp, 0xc]                         |         r3 = var_ch;
    0x0006af06 eors r2, r3                               |         r2 ^= r3;
    0x0006af08 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0006af0c bne.w 0x6b08a                             |             goto label_16;
                                                         |         }
    0x0006af10 mov r0, r5                                |         r0 = r5;
    0x0006af12 add sp, 0x14                              |         
    0x0006af14 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_2:
    0x0006af18 cmp.w r8, 0                               |         
                                                         |         if (r8 != 0) {
    0x0006af1c bne.w 0x6b05c                             |             goto label_17;
                                                         |         }
    0x0006af20 lsls r3, r4, 7                            |         r3 = r4 << 7;
    0x0006af22 lsls r2, r4, 8                            |         r2 = r4 << 8;
    0x0006af24 and r3, r3, 0x8000                        |         r3 &= 0x8000;
    0x0006af28 and r2, r2, 0x200                         |         r2 &= 0x200;
    0x0006af2c orrs r3, r2                               |         r3 |= r2;
    0x0006af2e lsls r2, r4, 6                            |         r2 = r4 << 6;
    0x0006af30 movw r1, 0x101                            |         
    0x0006af34 and r2, r2, 0x40                          |         r2 &= 0x40;
    0x0006af38 tst.w r4, 0x400                           |         
    0x0006af3c orr.w r3, r3, r2                          |         r3 |= r2;
    0x0006af40 movt r1, 8                                |         r1 = 0x80101;
    0x0006af44 ite ne                                    |         
                                                         |         if ((r4 & 0x400) == 0) {
    0x0006af46 movne r2, 0x180                           |             r2 = 0x180;
                                                         |         }
                                                         |         if ((r4 & 0x400) == 0) {
    0x0006af4a mov.w r2, 0x1b6                           |             r2 = 0x1b6;
                                                         |         }
    0x0006af4e orrs r1, r3                               |         r1 |= r3;
    0x0006af50 mov r0, r6                                |         r0 = r6;
    0x0006af52 blx 0x908c                                |         r0 = fcn_0000908c ();
    0x0006af56 subs.w sb, r0, 0                          |         sb = r0 - 0;
    0x0006af58 lsrs r0, r0, 4                            |         r0 >>= 4;
                                                         |         if (r0 < r0) {
    0x0006af5a blt 0x6af98                               |             goto label_18;
                                                         |         }
    0x0006af5c ldr r1, [pc, 0x13c]                       |         
    0x0006af5e mov r2, sp                                |         r2 = sp;
    0x0006af60 add r1, pc                                |         r1 = 0xd6000;
    0x0006af62 bl 0x6a564                                |         r0 = fcn_0006a564 (r0);
    0x0006af66 subs r5, r0, 0                            |         r5 = r0 - 0;
                                                         |         if (r5 < r0) {
    0x0006af68 blt.w 0x6b072                             |             goto label_19;
                                                         |         }
    0x0006af6c lsls r2, r4, 0x18                         |         r2 = r4 << 0x18;
                                                         |         if (r2 < r4) {
    0x0006af6e bmi 0x6b03a                               |             goto label_20;
                                                         |         }
                                                         | label_5:
    0x0006af70 ldr r0, [sp]                              |         r0 = *(sp);
    0x0006af72 movs r3, 0                                |         r3 = 0;
    0x0006af74 mov r2, r4                                |         r2 = r4;
    0x0006af76 mov r1, r7                                |         r1 = r7;
    0x0006af78 bl 0x6ac70                                |         r0 = fcn_0006ac70 (r0, r1, r2, r3, r4);
    0x0006af7c subs r5, r0, 0                            |         r5 = r0 - 0;
                                                         |         if (r5 < r0) {
    0x0006af7e blt 0x6afa0                               |             goto label_4;
                                                         |         }
                                                         | label_3:
    0x0006af80 movs r5, 0                                |         r5 = 0;
    0x0006af82 b 0x6aef4                                 |         
                                                         |     } while (1);
                                                         | label_10:
    0x0006af84 movw r1, 0x1ed                            |     r1 = 0x1ed;
    0x0006af88 bl 0x72cb0                                |     r0 = fcn_00072cb0 (r0, r1);
    0x0006af8c subs r5, r0, 0                            |     r5 = r0 - 0;
                                                         |     if (r5 < r0) {
    0x0006af8e blt 0x6aef4                               |         goto label_0;
                                                         |     }
    0x0006af90 lsls r1, r4, 0x1d                         |     r1 = r4 << 0x1d;
                                                         |     if (r1 < r4) {
    0x0006af92 bmi.w 0x6ae7e                             |         goto label_1;
                                                         |     }
    0x0006af96 b 0x6af18                                 |     goto label_2;
                                                         | label_18:
    0x0006af98 blx 0x9628                                |     r0 = fcn_00009628 ();
    0x0006af9c ldr r5, [r0]                              |     r5 = *(r0);
    0x0006af9e rsbs r5, r5, 0                            |     r5 -= ;
                                                         | label_4:
    0x0006afa0 lsls r3, r4, 0x1b                         |     r3 = r4 << 0x1b;
                                                         |     if (r3 >= r4) {
    0x0006afa2 bpl 0x6aef4                               |         goto label_0;
                                                         |     }
    0x0006afa4 ldr r0, [sp]                              |     r0 = *(sp);
    0x0006afa6 bl 0x69b30                                |     fcn_00069b30 (r0, r1, r2, r3);
    0x0006afaa and r2, r4, 0x28                          |     r2 = r4 & 0x28;
    0x0006afae mov r3, r0                                |     r3 = r0;
    0x0006afb0 subs r2, 8                                |     r2 -= 8;
    0x0006afb2 mov r1, r7                                |     r1 = r7;
    0x0006afb4 it ne                                     |     
                                                         |     if (r2 == 8) {
    0x0006afb6 movne r2, 1                               |         r2 = 1;
                                                         |     }
    0x0006afb8 mov r0, r6                                |     r0 = r6;
    0x0006afba str r3, [sp]                              |     *(sp) = r3;
    0x0006afbc bl 0x6a668                                |     r0 = fcn_0006a668 (r0, r1, r2, r3);
    0x0006afc0 cmp r0, 0                                 |     
                                                         |     if (r0 > 0) {
    0x0006afc2 bgt 0x6af80                               |         goto label_3;
                                                         |     }
    0x0006afc4 b 0x6aef4                                 |     goto label_0;
                                                         | label_12:
    0x0006afc6 ldr r0, [sp, 8]                           |     r0 = dest;
    0x0006afc8 blx 0x8dac                                |     fcn_00008dac ();
    0x0006afcc ldr r0, [sp, 4]                           |     r0 = var_4h;
    0x0006afce str.w sb, [sp, 8]                         |     __asm ("str.w sb, [dest]");
    0x0006afd2 bl 0x69b30                                |     fcn_00069b30 (r0, r1, r2, r3);
    0x0006afd6 b 0x6afa0                                 |     goto label_4;
                                                         | label_14:
    0x0006afd8 blx 0x9628                                |     r0 = fcn_00009628 ();
    0x0006afdc ldr r5, [r0]                              |     r5 = *(r0);
    0x0006afde rsbs r5, r5, 0                            |     r5 -= ;
                                                         | label_13:
    0x0006afe0 ldr r0, [sp, 8]                           |     r0 = dest;
    0x0006afe2 blx 0x8f68                                |     fcn_00008f68 ();
                                                         | label_6:
    0x0006afe6 ldr r0, [sp, 8]                           |     r0 = dest;
    0x0006afe8 blx 0x8dac                                |     fcn_00008dac ();
    0x0006afec movs r3, 0                                |     r3 = 0;
    0x0006afee ldr r0, [sp, 4]                           |     r0 = var_4h;
    0x0006aff0 str r3, [sp, 8]                           |     dest = r3;
    0x0006aff2 bl 0x69b30                                |     fcn_00069b30 (r0, r1, r2, r3);
    0x0006aff6 cmp r5, 0                                 |     
                                                         |     if (r5 >= 0) {
    0x0006aff8 bge.w 0x6aef4                             |         goto label_0;
                                                         |     }
    0x0006affc b 0x6afa0                                 |     goto label_4;
                                                         | label_7:
    0x0006affe ldr r1, [pc, 0xa0]                        |     
    0x0006b000 movs r2, 0xf2                             |     r2 = 0xf2;
    0x0006b002 ldr r3, [pc, 0xa0]                        |     
    0x0006b004 ldr r0, [pc, 0xa0]                        |     
    0x0006b006 add r1, pc                                |     r1 = 0xd60ac;
    0x0006b008 add r3, pc                                |     r3 = 0xd60b2;
    0x0006b00a adds r1, 7                                |     r1 += 7;
    0x0006b00c add r0, pc                                |     r0 = 0xd60b8;
    0x0006b00e bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
                                                         | label_8:
    0x0006b012 ldr r1, [pc, 0x98]                        |     
    0x0006b014 movs r2, 0xf3                             |     r2 = 0xf3;
    0x0006b016 ldr r3, [pc, 0x98]                        |     
    0x0006b018 ldr r0, [pc, 0x98]                        |     
    0x0006b01a add r1, pc                                |     r1 = 0xd60cc;
    0x0006b01c add r3, pc                                |     r3 = 0xd60d2;
    0x0006b01e adds r1, 7                                |     r1 += 7;
    0x0006b020 add r0, pc                                |     r0 = 0xd60d8;
    0x0006b022 bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
                                                         | label_9:
    0x0006b026 ldr r1, [pc, 0x90]                        |     r1 = *(0x6b0ba);
                                                         |     do {
    0x0006b028 movs r2, 0xf6                             |         r2 = 0xf6;
    0x0006b02a ldr r3, [pc, 0x90]                        |         
    0x0006b02c ldr r0, [pc, 0x90]                        |         
    0x0006b02e add r1, pc                                |         r1 += pc;
    0x0006b030 add r3, pc                                |         r3 = 0xd60f2;
    0x0006b032 adds r1, 7                                |         r1 += 7;
    0x0006b034 add r0, pc                                |         r0 = 0xd60f8;
    0x0006b036 bl 0x71518                                |         fcn_00071518 (r0, r1, r2, r3);
                                                         | label_20:
    0x0006b03a ldr r0, [sp]                              |         r0 = *(sp);
    0x0006b03c mov r3, r8                                |         r3 = r8;
    0x0006b03e mov r1, r8                                |         r1 = r8;
    0x0006b040 movs r2, 2                                |         r2 = 2;
    0x0006b042 blx 0x91cc                                |         fcn_000091cc ();
    0x0006b046 b 0x6af70                                 |         goto label_5;
                                                         | label_11:
    0x0006b048 ldr r1, [pc, 0x78]                        |         
    0x0006b04a movs r2, 0xff                             |         r2 = 0xff;
    0x0006b04c ldr r3, [pc, 0x78]                        |         
    0x0006b04e ldr r0, [pc, 0x7c]                        |         
    0x0006b050 add r1, pc                                |         r1 = 0xd6118;
    0x0006b052 add r3, pc                                |         r3 = 0xd611e;
    0x0006b054 adds r1, 7                                |         r1 += 7;
    0x0006b056 add r0, pc                                |         r0 = 0xd6128;
    0x0006b058 bl 0x71518                                |         fcn_00071518 (r0, r1, r2, r3);
    0x0006b05a invalid                                   |         
                                                         | label_17:
    0x0006b05c ldr r1, [pc, 0x70]                        |         
    0x0006b05e movw r2, 0x107                            |         r2 = 0x107;
    0x0006b062 ldr r3, [pc, 0x70]                        |         
    0x0006b064 ldr r0, [pc, 0x70]                        |         
    0x0006b066 add r1, pc                                |         r1 = 0xd613a;
    0x0006b068 add r3, pc                                |         r3 = 0xd6142;
    0x0006b06a adds r1, 7                                |         r1 += 7;
    0x0006b06c add r0, pc                                |         r0 = 0xd6148;
    0x0006b06e bl 0x71518                                |         fcn_00071518 (r0, r1, r2, r3);
                                                         | label_19:
    0x0006b072 mov r0, sb                                |         r0 = sb;
    0x0006b074 bl 0x69a04                                |         fcn_00069a04 (r0, r1, r2, r3);
    0x0006b078 b 0x6afa0                                 |         goto label_4;
                                                         | label_15:
    0x0006b07a ldr r0, [sp, 4]                           |         r0 = var_4h;
    0x0006b07c blx 0x89b0                                |         fcn_000089b0 ();
    0x0006b080 bl 0x6d118                                |         r0 = fcn_0006d118 (r0);
    0x0006b084 and.w r5, r0, r0, asr 31                  |         r5 = r0 & (r0 >> 31);
    0x0006b088 b 0x6afe6                                 |         goto label_6;
                                                         | label_16:
    0x0006b08a blx 0x927c                                |         fprintf_chk ()
    0x0006b08e nop                                       |         
                                                         |         if (r1 > 7) {
    0x0006b090 bgt 0x6b188                               |             goto label_21;
                                                         |         }
    0x0006b092 movs r5, r0                               |         r5 = r0;
    0x0006b094 lsls r0, r0, 0x13                         |         r0 <<= 0x13;
    0x0006b096 movs r0, r0                               |         
    0x0006b098 blt 0x6b028                               |         
                                                         |     } while (r0 < r0);
    0x0006b09a movs r5, r0                               |     r5 = r0;
    0x0006b09c lsls r0, r1, 0x16                         |     r0 = r1 << 0x16;
    0x0006b09e movs r2, r0                               |     r2 = r0;
    0x0006b0a0 ldrh r2, [r4, 0x10]                       |     r2 = *((r4 + 0x10));
    0x0006b0a2 movs r3, r0                               |     r3 = r0;
    0x0006b0a4 ldrh r4, [r4, 0x24]                       |     r4 = *((r4 + 0x24));
    0x0006b0a6 movs r3, r0                               |     r3 = r0;
    0x0006b0a8 invalid                                   |     
                                                         | label_21:
    0x0006b188 cmp.w r8, 0                               |     
                                                         |     if (r8 == 0) {
    0x0006b18c beq 0x6b200                               |         void (*0x6b200)() ();
                                                         |     }
    0x0006b18e movs r7, 0                                |     r7 = 0;
    0x0006b190 mov.w fp, 1                               |     
    0x0006b194 mov r4, r7                                |     r4 = r7;
    0x0006b196 add.w sl, sp, 0xf                         |     sl += var_fh;
    0x0006b19a add r3, sp, 0x10                          |     r3 += var_10h;
    0x0006b19c str r3, [sp]                              |     *(sp) = r3;
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6b320 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0006b320 ()                                      | void fcn_0006b320 (int16_t arg_1h, int16_t arg2) {
                                                                 |     int16_t var_0h_3;
                                                                 |     int16_t var_4h_3;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_fh;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     r1 = arg2;
                                                                 |     do {
    0x0006b19e mov r1, sl                                        |         r1 = sl;
    0x0006b1a0 mov r0, r6                                        |         r0 = r6;
    0x0006b1a2 bl 0x6b0dc                                        |         r0 = fcn_0006b0dc (r0, r1);
    0x0006b1a6 subs r1, r0, 0                                    |         r1 = r0 - 0;
    0x0006b1a8 add.w r2, fp, -1                                  |         r2 = fp + -1;
                                                                 |         if (r1 < r0) {
    0x0006b1ac blt 0x6b204                                       |             goto label_5;
                                                                 |         }
                                                                 |         if (r1 == r0) {
    0x0006b1ae beq 0x6b290                                       |             goto label_8;
                                                                 |         }
    0x0006b1b0 cmp r5, 1                                         |         
    0x0006b1b2 ldrb.w r0, [sp, 0xf]                              |         r0 = var_fh;
                                                                 |         if (r5 != 1) {
    0x0006b1b6 beq 0x6b1c0                                       |             
    0x0006b1b8 cmp r0, 0xa                                       |             
                                                                 |             if (r0 == 0xa) {
    0x0006b1ba beq 0x6b276                                       |                 goto label_9;
                                                                 |             }
    0x0006b1bc cmp r0, 0xd                                       |             
                                                                 |             if (r0 == 0xd) {
    0x0006b1be beq 0x6b2b2                                       |                 goto label_10;
                                                                 |             }
                                                                 |         }
    0x0006b1c0 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0006b1c2 beq 0x6b234                                       |             goto label_11;
                                                                 |         }
    0x0006b1c4 cmp r7, 0                                         |         
                                                                 |         if (r7 != 0) {
    0x0006b1c6 bne 0x6b282                                       |             goto label_12;
                                                                 |         }
    0x0006b1c8 cmp.w sb, 0                                       |         
                                                                 |         if (sb != 0) {
    0x0006b1cc beq 0x6b1e6                                       |             
    0x0006b1ce ldr r0, [sp]                                      |             r0 = *(sp);
    0x0006b1d0 movs r2, 1                                        |             r2 = 1;
    0x0006b1d2 adds r1, r4, 2                                    |             r1 = r4 + 2;
    0x0006b1d4 bl 0x6530c                                        |             r0 = fcn_0006530c (r0, r1, r2);
    0x0006b1d8 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x0006b1da beq.w 0x6b2ea                                     |                 goto label_13;
                                                                 |             }
    0x0006b1dc strh r6, [r0, 4]                                  |             *((r0 + 4)) = r6;
    0x0006b1de ldrb.w r1, [sp, 0xf]                              |             r1 = var_fh;
    0x0006b1e2 ldr r2, [sp, 0x10]                                |             r2 = var_10h;
    0x0006b1e4 strb r1, [r2, r4]                                 |             *((r2 + r4)) = r1;
                                                                 |         }
    0x0006b1e6 adds r4, 1                                        |         r4++;
                                                                 | label_0:
    0x0006b1e8 mvn r2, 0x80000000                                |         r2 = ~0x80000000;
    0x0006b1ec cmp fp, r2                                        |         
    0x0006b1ee it ne                                             |         
                                                                 |         if (fp != r2) {
    0x0006b1f0 cmpne r8, r4                                      |             __asm ("cmpne r8, r4");
                                                                 |         }
    0x0006b1f2 add.w fp, fp, 1                                   |         
    0x0006b1f6 ite ls                                            |         
                                                                 |         if (fp > r2) {
    0x0006b1f8 movls r2, 1                                       |             r2 = 1;
                                                                 |         }
                                                                 |         if (fp <= r2) {
    0x0006b1fa movhi r2, 0                                       |             r2 = 0;
                                                                 |         }
    0x0006b1fc cmp r2, 0                                         |         
    0x0006b1fe beq 0x6b19e                                       |         
                                                                 |     } while (r2 == 0);
    0x0006b200 mvn r1, 0x68                                      |     r1 = ~0x68;
                                                                 | label_5:
    0x0006b204 mov r0, r6                                        |     r0 = r6;
    0x0006b206 str r1, [sp]                                      |     *(sp) = r1;
    0x0006b208 blx 0x8d78                                        |     strtoull (r0, r1, r2);
    0x0006b20c ldr r0, [sp, 0x10]                                |     r0 = var_10h;
    0x0006b20e ldr r1, [sp]                                      |     r1 = *(sp);
                                                                 | label_3:
    0x0006b210 str r1, [sp]                                      |     *(sp) = r1;
    0x0006b212 blx 0x8dac                                        |     fcn_00008dac ();
    0x0006b216 ldr r2, [pc, 0xec]                                |     
    0x0006b218 ldr r3, [pc, 0xe4]                                |     r3 = *(0x6b300);
    0x0006b21a ldr r1, [sp]                                      |     r1 = *(sp);
    0x0006b21c add r2, pc                                        |     r2 = 0xd6526;
    0x0006b21e ldr r3, [r2, r3]                                  |     r3 = *(0xd6526);
    0x0006b220 ldr r2, [r3]                                      |     r2 = *(0xd6526);
    0x0006b222 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0006b224 eors r2, r3                                       |     r2 ^= r3;
    0x0006b226 mov.w r3, 0                                       |     r3 = 0;
    0x0006b228 lsls r0, r0, 0xc                                  |     r0 <<= 0xc;
                                                                 |     if (r0 != r0) {
    0x0006b22a bne 0x6b2f8                                       |         goto label_14;
                                                                 |     }
    0x0006b22c mov r0, r1                                        |     r0 = r1;
    0x0006b22e add sp, 0x1c                                      |     
    0x0006b230 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
    0x0006b232 ldrh r0, [r6, 0x3e]                               |     r0 = *((r6 + 0x3e));
                                                                 | label_11:
    0x0006b234 mov.w ip, 1                                       |     
    0x0006b238 mov r1, ip                                        |     r1 = ip;
                                                                 | label_4:
    0x0006b23a tst.w ip, r7                                      |     
                                                                 |     if ((ip & r7) != 0) {
    0x0006b23e bne 0x6b282                                       |         goto label_12;
                                                                 |     }
                                                                 | label_2:
    0x0006b240 tst.w r5, 6                                       |     
    0x0006b244 beq 0x6b24e                                       |     
                                                                 |     while (r0 < 0) {
                                                                 | label_1:
    0x0006b246 lsls r3, r5, 0x1e                                 |         r3 = r5 << 0x1e;
                                                                 |         if (r3 < r5) {
    0x0006b248 bmi 0x6b2d0                                       |             goto label_15;
                                                                 |         }
    0x0006b24a orrs r7, r1                                       |         r7 |= r1;
    0x0006b24c b 0x6b1e8                                         |         goto label_0;
    0x0006b24e mov r0, r6                                        |         r0 = r6;
    0x0006b250 str r1, [sp, 4]                                   |         var_4h = r1;
    0x0006b252 blx 0x89b0                                        |         r0 = fcn_000089b0 ();
    0x0006b256 cmp r0, 0                                         |         
                                                                 | label_6:
    0x0006b258 ldr r1, [sp, 4]                                   |         r1 = var_4h;
    0x0006b25a it lt                                             |         
                                                                 |         if (r0 >= 0) {
    0x0006b25c orrlt r5, r5, 4                                   |             r5 |= 4;
                                                                 |         }
    0x0006b260 blt 0x6b246                                       |         
                                                                 |     }
    0x0006b262 str r1, [sp, 4]                                   |     var_4h = r1;
    0x0006b264 blx 0x8ef0                                        |     r0 = fcn_00008ef0 ();
    0x0006b268 cmp r0, 0                                         |     
    0x0006b26a ldr r1, [sp, 4]                                   |     r1 = var_4h;
    0x0006b26c ite ne                                            |     
                                                                 |     if (r0 == 0) {
    0x0006b26e movne r2, 2                                       |         r2 = 2;
                                                                 |     }
                                                                 |     if (r0 != 0) {
    0x0006b270 moveq r2, 4                                       |         r2 = 4;
                                                                 |     }
    0x0006b272 orrs r5, r2                                       |     r5 |= r2;
    0x0006b274 b 0x6b246                                         |     goto label_1;
                                                                 | label_9:
    0x0006b276 mov.w ip, 3                                       |     
    0x0006b27a movs r1, 2                                        |     r1 = 2;
    0x0006b27c tst.w ip, r7                                      |     
                                                                 |     if ((ip & r7) == 0) {
    0x0006b280 beq 0x6b240                                       |         goto label_2;
                                                                 |     }
                                                                 | label_12:
    0x0006b282 mov r1, r6                                        |     r1 = r6;
    0x0006b284 str r2, [sp]                                      |     *(sp) = r2;
    0x0006b286 blx 0x8ccc                                        |     fcn_00008ccc ();
    0x0006b28a adds r0, 1                                        |     r0++;
    0x0006b28c ldr r2, [sp]                                      |     r2 = *(sp);
                                                                 |     if (r0 == 1) {
    0x0006b28e beq 0x6b2d4                                       |         goto label_16;
                                                                 |     }
                                                                 |     do {
                                                                 | label_8:
    0x0006b290 mov r0, r6                                        |         r0 = r6;
    0x0006b292 str r2, [sp]                                      |         *(sp) = r2;
    0x0006b294 blx 0x8d78                                        |         strtoull (r0, r1, r2);
    0x0006b298 ldr r2, [sp]                                      |         r2 = *(sp);
    0x0006b29a ldr r0, [sp, 0x10]                                |         r0 = var_10h;
    0x0006b29c cmp.w sb, 0                                       |         
                                                                 |         if (sb != 0) {
    0x0006b2a0 beq 0x6b2ae                                       |             
    0x0006b2a2 ldr r3, [sp, 0x10]                                |             r3 = var_10h;
    0x0006b2a4 movs r0, 0                                        |             r0 = 0;
    0x0006b2a6 strb r0, [r3, r4]                                 |             *((r3 + r4)) = r0;
    0x0006b2a8 ldr r3, [sp, 0x10]                                |             r3 = var_10h;
    0x0006b2aa str.w r3, [sb]                                    |             __asm ("str.w r3, [sb]");
                                                                 |         }
    0x0006b2ae mov r1, r2                                        |         r1 = r2;
    0x0006b2b0 b 0x6b210                                         |         goto label_3;
                                                                 | label_10:
    0x0006b2b2 mov.w ip, 5                                       |         
    0x0006b2b6 movs r1, 4                                        |         r1 = 4;
    0x0006b2b8 b 0x6b23a                                         |         goto label_4;
                                                                 | label_15:
    0x0006b2d0 mov r2, fp                                        |         r2 = fp;
    0x0006b2d2 b 0x6b290                                         |         
                                                                 |     } while (1);
                                                                 | label_16:
    0x0006b2d4 ldr r1, [pc, 0x3c]                                |     
    0x0006b2d6 movw r2, 0x526                                    |     r2 = 0x526;
    0x0006b2da ldr r3, [pc, 0x3c]                                |     
    0x0006b2dc ldr r0, [pc, 0x3c]                                |     
    0x0006b2de add r1, pc                                        |     r1 = 0xd65f6;
    0x0006b2e0 add r3, pc                                        |     r3 = 0xd65fe;
    0x0006b2e2 adds r1, 7                                        |     r1 += 7;
    0x0006b2e4 add r0, pc                                        |     r0 = 0xd6604;
    0x0006b2e6 invalid                                           |     
                                                                 | label_7:
    0x0006b2e8 invalid                                           |     
                                                                 | label_13:
    0x0006b2ea mvn r1, 0xb                                       |     r1 = ~0xb;
    0x0006b2ee b 0x6b204                                         |     goto label_5;
                                                                 | label_14:
    0x0006b2f8 blx 0x927c                                        |     fprintf_chk ()
                                                                 |     if (r1 < 7) {
    0x0006b2fc bls 0x6b3e0                                       |         void (*0x6b3e0)() ();
                                                                 |     }
    0x0006b2fe movs r5, r0                                       |     r5 = r0;
    0x0006b300 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0006b302 movs r0, r0                                       |     
                                                                 |     if (r0 > r0) {
    0x0006b304 bhi 0x6b258                                       |         goto label_6;
                                                                 |     }
    0x0006b306 movs r5, r0                                       |     r5 = r0;
    0x0006b308 strh r4, [r4, 0x3a]                               |     *((r4 + 0x3a)) = r4;
    0x0006b30a movs r3, r0                                       |     r3 = r0;
    0x0006b30c ldrh r6, [r2, 0xe]                                |     r6 = *((r2 + 0xe));
    0x0006b30e movs r3, r0                                       |     r3 = r0;
    0x0006b310 adcs r0, r6, 1                                    |     __asm ("adcs r0, r6, 1");
    0x0006b314 strh r2, [r1, 0x3a]                               |     *((r1 + 0x3a)) = r2;
    0x0006b316 movs r3, r0                                       |     r3 = r0;
    0x0006b318 ldrh r4, [r7, 0xc]                                |     r4 = *((r7 + 0xc));
    0x0006b31a movs r3, r0                                       |     r3 = r0;
    0x0006b31c ldrh r0, [r1, 2]                                  |     r0 = *((r1 + 2));
    0x0006b31e movs r3, r0                                       |     r3 = r0;
    0x0006b320 ldr r2, [pc, 0x88]                                |     
    0x0006b322 ldr r3, [pc, 0x8c]                                |     r3 = *(0x6b3b2);
    0x0006b324 push {r4, r5, r6, lr}                             |     
    0x0006b326 movs r6, 0                                        |     r6 = 0;
    0x0006b328 add r2, pc                                        |     r2 = 0xd66d8;
    0x0006b32a sub sp, 8                                         |     
    0x0006b32c ldr r3, [r2, r3]                                  |     
    0x0006b32e ldr r3, [r3]                                      |     r3 = *(0xd66d8);
    0x0006b330 str r3, [sp, 4]                                   |     var_4h_3 = r3;
    0x0006b332 mov.w r3, 0                                       |     r3 = 0;
    0x0006b336 str r6, [sp]                                      |     *(sp) = r6;
                                                                 |     if (r0 != 0) {
    0x0006b338 cbz r0, 0x6b37c                                   |         
    0x0006b33a mov r5, r1                                        |         r5 = r1;
                                                                 |         if (r1 == 0) {
    0x0006b33c cbz r1, 0x6b392                                   |             goto label_17;
                                                                 |         }
    0x0006b33e ldr r1, [pc, 0x74]                                |         
    0x0006b340 mov r2, sp                                        |         r2 = sp;
    0x0006b342 add r1, pc                                        |         r1 = 0xd66fc;
    0x0006b344 bl 0x6a520                                        |         r0 = fcn_0006a520 (r0);
    0x0006b348 subs r4, r0, 0                                    |         r4 = r0 - 0;
                                                                 |         if (r4 >= r0) {
    0x0006b34a blt 0x6b35c                                       |             
    0x0006b34c ldr r0, [sp]                                      |             r0 = *(sp);
    0x0006b34e mov r3, r5                                        |             r3 = r5;
    0x0006b350 mov r2, r6                                        |             r2 = r6;
    0x0006b352 mov.w r1, 0x100000                                |             r1 = 0x100000;
    0x0006b356 bl 0x6b144                                        |             r0 = fcn_0006b144 (r0, r1, r2, r3);
    0x0006b35a mov r4, r0                                        |             r4 = r0;
                                                                 |         }
    0x0006b35c ldr r0, [sp]                                      |         r0 = *(sp);
    0x0006b35e bl 0x69b30                                        |         fcn_00069b30 (r0, r1, r2, r3);
    0x0006b362 ldr r2, [pc, 0x54]                                |         
    0x0006b364 ldr r3, [pc, 0x48]                                |         r3 = *(0x6b3b0);
    0x0006b366 add r2, pc                                        |         r2 = 0xd6724;
    0x0006b368 ldr r3, [r2, r3]                                  |         r3 = *(0xd6724);
    0x0006b36a ldr r2, [r3]                                      |         r2 = *(0xd6724);
    0x0006b36c ldr r3, [sp, 4]                                   |         r3 = var_4h_3;
    0x0006b36e eors r2, r3                                       |         r2 ^= r3;
    0x0006b370 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0006b374 bne 0x6b3a8                                       |             goto label_18;
                                                                 |         }
    0x0006b376 mov r0, r4                                        |         r0 = r4;
    0x0006b378 add sp, 8                                         |         
    0x0006b37a pop {r4, r5, r6, pc}                              |         
                                                                 |     }
    0x0006b37c ldr r1, [pc, 0x3c]                                |     
    0x0006b37e mov.w r2, 0x14a                                   |     r2 = 0x14a;
    0x0006b382 ldr r3, [pc, 0x3c]                                |     
    0x0006b384 ldr r0, [pc, 0x3c]                                |     
    0x0006b386 add r1, pc                                        |     r1 = 0xd6746;
    0x0006b388 add r3, pc                                        |     r3 = 0xd674e;
    0x0006b38a adds r1, 7                                        |     r1 += 7;
    0x0006b38c add r0, pc                                        |     r0 = 0xd6754;
    0x0006b38e bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_17:
    0x0006b392 ldr r1, [pc, 0x34]                                |     
    0x0006b394 movw r2, 0x14b                                    |     r2 = 0x14b;
    0x0006b398 ldr r3, [pc, 0x30]                                |     
    0x0006b39a ldr r0, [pc, 0x34]                                |     
    0x0006b39c add r1, pc                                        |     r1 = 0xd676a;
    0x0006b39e add r3, pc                                        |     r3 = 0xd676e;
    0x0006b3a0 adds r1, 7                                        |     r1 += 7;
    0x0006b3a2 add r0, pc                                        |     r0 = 0xd6778;
    0x0006b3a4 bl 0x71518                                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_18:
    0x0006b3a8 blx 0x927c                                        |     fprintf_chk ()
    0x0006b3ac bvc 0x6b2e8                                       |     __asm ("bvc aav.0x000000ff");
                                                                 |     goto label_7;
    0x0006b3ae movs r5, r0                                       |     r5 = r0;
    0x0006b3b0 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0006b3b2 movs r0, r0                                       |     
    0x0006b3b4 lsrs r6, r0, 0xc                                  |     r6 = r0 >> 0xc;
    0x0006b3b6 movs r3, r0                                       |     r3 = r0;
    0x0006b3b8 bvc 0x6b478                                       |     __asm ("bvc aav.0x000000ff");
    0x0006b3ba movs r5, r0                                       |     r5 = r0;
    0x0006b3bc strh r2, [r4, 0x34]                               |     *((r4 + 0x34)) = r2;
    0x0006b3be movs r3, r0                                       |     r3 = r0;
    0x0006b3c0 ldrh r0, [r0, 8]                                  |     r0 = *((r0 + 8));
    0x0006b3c2 movs r3, r0                                       |     r3 = r0;
    0x0006b3c4 subs.w r0, ip, 1                                  |     r0 = ip - 1;
    0x0006b3c8 strh r4, [r1, 0x34]                               |     *((r1 + 0x34)) = r4;
    0x0006b3ca movs r3, r0                                       |     r3 = r0;
    0x0006b3cc ldrh r2, [r5, 6]                                  |     r2 = *((r5 + 6));
    0x0006b3ce movs r3, r0                                       |     r3 = r0;
    0x0006b3d0 vhadd.u32 d0, d2, d1                              |     __asm ("vhadd.u32 d0, d2, d1");
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6b3d4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0006b3d4 ()                              | void fcn_0006b3d4 (int16_t arg_8ch, int16_t arg1, uint32_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     int16_t var_8ch_2;
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     int16_t var_ch;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_20h_3;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x0006b3d4 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x0006b3d8 mov r6, r2                                |     r6 = r2;
    0x0006b3da ldr r2, [pc, 0xcc]                        |     r2 = *(0x6b4aa);
    0x0006b3dc mov r7, r3                                |     r7 = r3;
    0x0006b3de sub sp, 0x90                              |     
    0x0006b3e0 ldr r3, [pc, 0xc8]                        |     
    0x0006b3e2 add r2, pc                                |     r2 += pc;
    0x0006b3e4 ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x0006b3e6 ldr r3, [r3]                              |     r3 = *(0x6b4ac);
    0x0006b3e8 str r3, [sp, 0x8c]                        |     *(arg_8ch) = r3;
    0x0006b3ea mov.w r3, 0                               |     r3 = 0;
                                                         |     if (r0 == 0) {
    0x0006b3ee cbz r0, 0x6b40a                           |         goto label_4;
                                                         |     }
    0x0006b3f0 mov r5, r0                                |     r5 = r0;
    0x0006b3f2 cmp r1, 0                                 |     
                                                         |     if (r1 == 0) {
    0x0006b3f4 beq 0x6b48a                               |         goto label_5;
                                                         |     }
                                                         | label_1:
    0x0006b3f6 ldr.w r8, [r1, 0x10]                      |     r8 = *((r1 + 0x10));
    0x0006b3fa tst.w r8, 7                               |     
                                                         |     if ((r8 & 7) == 0) {
    0x0006b3fe beq 0x6b40a                               |         goto label_4;
                                                         |     }
    0x0006b400 bl 0x70bf8                                |     fcn_00070bf8 ();
                                                         |     if (r6 == 0) {
    0x0006b404 cbz r6, 0x6b426                           |         goto label_6;
                                                         |     }
    0x0006b406 cmp r0, 3                                 |     
                                                         |     if (r0 > 3) {
    0x0006b408 bgt 0x6b454                               |         goto label_7;
                                                         |     }
                                                         |     do {
                                                         | label_4:
    0x0006b40a movs r0, 0                                |         r0 = 0;
                                                         | label_0:
    0x0006b40c ldr r2, [pc, 0xa0]                        |         
    0x0006b40e ldr r3, [pc, 0x9c]                        |         r3 = *(0x6b4ae);
    0x0006b410 add r2, pc                                |         r2 = 0xd68c4;
    0x0006b412 ldr r3, [r2, r3]                          |         r3 = *(0xd68c4);
    0x0006b414 ldr r2, [r3]                              |         r2 = *(0xd68c4);
    0x0006b416 ldr r3, [sp, 0x8c]                        |         r3 = *(arg_8ch);
    0x0006b418 eors r2, r3                               |         r2 ^= r3;
    0x0006b41a invalid                                   |         
                                                         | label_3:
    0x0006b41c lsls r0, r0, 0xc                          |         r0 <<= 0xc;
                                                         |         if (r0 != r0) {
    0x0006b41e bne 0x6b4a4                               |             goto label_8;
                                                         |         }
    0x0006b420 add sp, 0x90                              |         
    0x0006b422 pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         | label_6:
    0x0006b426 cmp r0, 3                                 |         
    0x0006b428 ble 0x6b40a                               |         
                                                         |     } while (r0 <= 3);
    0x0006b42a ldr r2, [pc, 0x88]                        |     
    0x0006b42c ubfx r3, r8, 0, 0xc                       |     r3 = (r8 >> 0) & ((1 << 0xc) - 1);
    0x0006b430 ldr r0, [pc, 0x84]                        |     
    0x0006b432 ldr r1, [pc, 0x88]                        |     
    0x0006b434 add r2, pc                                |     r2 = 0xd68ee;
    0x0006b436 strd r5, r3, [sp, 8]                      |     __asm ("strd r5, r3, [sp, 8]");
    0x0006b43a add r0, pc                                |     r0 = 0xd68f6;
    0x0006b43c movw r3, 0x589                            |     r3 = 0x589;
    0x0006b440 add r1, pc                                |     r1 = 0xd6902;
    0x0006b442 adds r2, 7                                |     r2 += 7;
    0x0006b444 strd r1, r0, [sp]                         |     __asm ("strd r1, r0, [sp]");
    0x0006b448 mov r1, r6                                |     r1 = r6;
    0x0006b44a movs r0, 4                                |     r0 = 4;
    0x0006b44c bl 0x71448                                |     fcn_00071448 ();
    0x0006b450 mov r0, r6                                |     r0 = r6;
    0x0006b452 b 0x6b40c                                 |     goto label_0;
                                                         | label_7:
    0x0006b454 ldr r3, [pc, 0x68]                        |     
    0x0006b456 movs r4, 0                                |     r4 = 0;
    0x0006b458 ldr r2, [pc, 0x68]                        |     
    0x0006b45a mov r0, r6                                |     r0 = r6;
    0x0006b45c ldr r1, [pc, 0x68]                        |     
    0x0006b45e add r3, pc                                |     r3 = 0xd6922;
    0x0006b460 str r4, [sp]                              |     *(sp) = r4;
    0x0006b462 add r2, pc                                |     r2 = 0xd692a;
    0x0006b464 adds r3, 7                                |     r3 += 7;
    0x0006b466 add r1, pc                                |     r1 = 0xd6932;
    0x0006b468 str r2, [sp, 0x10]                        |     var_10h = r2;
    0x0006b46a str r1, [sp, 0xc]                         |     var_ch = r1;
    0x0006b46c ubfx r2, r8, 0, 0xc                       |     r2 = (r8 >> 0) & ((1 << 0xc) - 1);
    0x0006b46e lsls r3, r1, 8                            |     r3 = r1 << 8;
                                                         | label_2:
    0x0006b470 movw r1, 0x585                            |     r1 = 0x585;
    0x0006b474 str r3, [sp, 4]                           |     var_4h = r3;
    0x0006b476 invalid                                   |     
    0x0006b478 strh r5, [r0, r0]                         |     *((r0 + r0)) = r5;
    0x0006b47a mov r3, r7                                |     r3 = r7;
    0x0006b47c str r1, [sp, 8]                           |     *((sp + 8)) = r1;
    0x0006b47e mov r2, r5                                |     r2 = r5;
    0x0006b480 movs r1, 4                                |     r1 = 4;
    0x0006b482 bl 0x722f4                                |     fcn_000722f4 (r0, r1, r2, r3, r4, r5, r6);
    0x0006b486 mov r0, r4                                |     r0 = r4;
    0x0006b488 b 0x6b40c                                 |     goto label_0;
                                                         | label_5:
    0x0006b48a add r4, sp, 0x20                          |     r4 += var_20h_3;
    0x0006b48c mov r1, r4                                |     r1 = r4;
    0x0006b48e blx 0x8e3c                                |     r0 = fcn_00008e3c ();
    0x0006b492 cmp r0, 0                                 |     
    0x0006b494 it ge                                     |     
                                                         |     if (r0 >= 0) {
    0x0006b496 movge r1, r4                              |         r1 = r4;
                                                         |         goto label_9;
                                                         |     }
                                                         |     if (r0 >= 0) {
                                                         | label_9:
    0x0006b498 bge 0x6b3f6                               |         goto label_1;
                                                         |     }
    0x0006b49a blx 0x9628                                |     r0 = fcn_00009628 ();
    0x0006b49e ldr r0, [r0]                              |     r0 = *(r0);
    0x0006b4a0 rsbs r0, r0, 0                            |     r0 -= ;
    0x0006b4a2 b 0x6b40c                                 |     goto label_0;
                                                         | label_8:
    0x0006b4a4 blx 0x927c                                |     fprintf_chk ()
    0x0006b4a8 bvs 0x6b470                               |     __asm ("bvs aav.0x000000ff");
                                                         |     goto label_2;
    0x0006b4aa movs r5, r0                               |     r5 = r0;
    0x0006b4ac lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x0006b4ae movs r0, r0                               |     
    0x0006b4b0 bvs 0x6b41c                               |     __asm ("bvs aav.0x000000ff");
                                                         |     goto label_3;
    0x0006b4b2 movs r5, r0                               |     r5 = r0;
    0x0006b4b4 strh r4, [r6, 0x2e]                       |     *((r6 + 0x2e)) = r4;
    0x0006b4b6 movs r3, r0                               |     r3 = r0;
    0x0006b4b8 strh r6, [r2, 0x38]                       |     *((r2 + 0x38)) = r6;
    0x0006b4ba movs r3, r0                               |     r3 = r0;
    0x0006b4bc ldrh r4, [r3, 8]                          |     r4 = *((r3 + 8));
    0x0006b4be movs r3, r0                               |     r3 = r0;
    0x0006b4c0 strh r2, [r1, 0x2e]                       |     *((r1 + 0x2e)) = r2;
    0x0006b4c2 movs r3, r0                               |     r3 = r0;
    0x0006b4c4 strh r6, [r5, 0x36]                       |     *((r5 + 0x36)) = r6;
    0x0006b4c6 movs r3, r0                               |     r3 = r0;
    0x0006b4c8 ldrh r6, [r6, 6]                          |     r6 = *((r6 + 6));
    0x0006b4ca movs r3, r0                               |     r3 = r0;
                                                         | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6b4cc */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0006b4cc ()                                          | void fcn_0006b4cc (int16_t arg_128h, int16_t arg_8ch, int16_t arg_170h, int16_t arg_174h, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h_2;
                                                                     |     int16_t var_ch_2;
                                                                     |     int16_t var_10h_2;
                                                                     |     int16_t var_14h_2;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     int16_t var_30h;
                                                                     |     int16_t var_50h;
                                                                     |     int16_t var_8ch;
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_4h_2;
                                                                     |     int16_t var_8h_2;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_28h_2;
                                                                     |     int16_t var_2ah;
                                                                     |     int16_t var_2bh;
                                                                     |     int16_t var_a8h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0006b4cc push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0006b4d0 mov r4, r2                                            |     r4 = r2;
    0x0006b4d2 ldr r2, [pc, 0x3a0]                                   |     
    0x0006b4d4 mov r7, r3                                            |     r7 = r3;
    0x0006b4d6 sub sp, 0x94                                          |     
    0x0006b4d8 ldr r3, [pc, 0x39c]                                   |     r3 = *(0x6b878);
    0x0006b4da add r2, pc                                            |     r2 = 0xd6d54;
    0x0006b4dc ldr.w sl, [sp, 0xb8]                                  |     sl = var_0h;
    0x0006b4e0 ldr r3, [r2, r3]                                      |     
    0x0006b4e2 ldr r3, [r3]                                          |     r3 = *(0xd6d54);
    0x0006b4e4 str r3, [sp, 0x8c]                                    |     var_8ch = r3;
    0x0006b4e6 mov.w r3, 0                                           |     r3 = 0;
    0x0006b4ea ldr r3, [sp, 0xc0]                                    |     r3 = var_8h;
    0x0006b4ec str r3, [sp, 0x10]                                    |     var_10h_2 = r3;
    0x0006b4ee ldr r3, [sp, 0xc4]                                    |     r3 = var_ch;
    0x0006b4f0 str r3, [sp, 0x14]                                    |     var_14h_2 = r3;
    0x0006b4f2 cmp r0, 0                                             |     
                                                                     |     if (var_0h_2 == ) {
    0x0006b4f4 beq.w 0x6b6c8                                         |         goto label_20;
                                                                     |     }
    0x0006b4f8 ldr r3, [sp, 0x10]                                    |     r3 = var_10h_2;
    0x0006b4fa cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0006b4fc beq.w 0x6b6de                                         |         goto label_21;
                                                                     |     }
    0x0006b500 ldr r3, [sp, 0xbc]                                    |     r3 = var_4h;
    0x0006b502 mvns r3, r3                                           |     r3 = ~r3;
    0x0006b504 tst.w r3, 6                                           |     
                                                                     |     if ((r3 & 6) == 0) {
    0x0006b508 beq.w 0x6b6f4                                         |         goto label_22;
                                                                     |     }
    0x0006b50c mov r8, r1                                            |     r8 = r1;
    0x0006b50e mvn r2, 0x80000000                                    |     r2 = ~0x80000000;
    0x0006b512 adds.w r1, r4, -0x80000000                            |     r1 = r4 + -0x80000000;
    0x0006b516 adc r3, r7, -1                                        |     __asm ("adc r3, r7, -1");
    0x0006b51a cmp r1, r2                                            |     
    0x0006b51c sbcs r3, r3, -1                                       |     __asm ("sbcs r3, r3, -1");
                                                                     |     if (r1 <= r2) {
    0x0006b520 blo.w 0x6b83e                                         |         goto label_23;
                                                                     |     }
    0x0006b524 cmp.w sl, -1                                          |     
    0x0006b528 mov r6, r0                                            |     r6 = r0;
    0x0006b52a ite ne                                                |     
                                                                     |     if (sl == -1) {
    0x0006b52c movne r5, sl                                          |         r5 = sl;
                                                                     |     }
                                                                     |     if (sl != -1) {
    0x0006b52e moveq r5, 0x800                                       |         r5 = 0x800;
                                                                     |     }
    0x0006b532 blx 0x89b0                                            |     r0 = fcn_000089b0 ();
    0x0006b536 cmp r0, 0                                             |     
                                                                     |     if (r0 >= 0) {
    0x0006b538 bge.w 0x6b658                                         |         goto label_24;
                                                                     |     }
                                                                     | label_2:
    0x0006b53c cmp.w r7, -1                                          |     
    0x0006b540 it eq                                                 |     
                                                                     |     if (r7 == -1) {
    0x0006b542 cmpeq r4, -1                                          |         __asm ("cmpeq r4, -1");
                                                                     |     }
                                                                     |     if (r7 != -1) {
    0x0006b546 bne 0x6b61a                                           |         goto label_25;
                                                                     |     }
                                                                     | label_1:
    0x0006b548 ldr r3, [sp, 0xbc]                                    |     r3 = var_4h;
    0x0006b54a mov.w r8, 0                                           |     r8 = 0;
    0x0006b54e mov r7, r8                                            |     r7 = r8;
    0x0006b550 mov sb, r8                                            |     sb = r8;
    0x0006b552 adds r1, r5, 1                                        |     r1 = r5 + 1;
    0x0006b554 and r3, r3, 1                                         |     r3 &= 1;
    0x0006b558 str r3, [sp, 0xc]                                     |     var_ch_2 = r3;
    0x0006b55a ldr r3, [sp, 0xc]                                     |     r3 = var_ch_2;
    0x0006b55c cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0006b55e beq 0x6b606                                           |         goto label_26;
                                                                     |     }
                                                                     |     do {
    0x0006b560 mov r0, r1                                            |         r0 = r1;
    0x0006b562 blx 0x9234                                            |         r0 = blkid_safe_string ();
    0x0006b566 mov r4, r0                                            |         r4 = r0;
    0x0006b568 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0006b56a beq.w 0x6b864                                         |             goto label_27;
                                                                     |         }
    0x0006b56e cmp.w sb, 0                                           |         
                                                                     |         if (sb != 0) {
    0x0006b572 beq 0x6b590                                           |             
    0x0006b574 cmp.w r8, 0                                           |             
                                                                     |             if (r8 == 0) {
    0x0006b578 beq.w 0x6b718                                         |                 goto label_28;
                                                                     |             }
    0x0006b57c mov r2, sb                                            |             r2 = sb;
    0x0006b57e mov r1, r8                                            |             r1 = r8;
    0x0006b580 blx 0x8f9c                                            |             fcn_00008f9c ();
    0x0006b584 mov r1, sb                                            |             r1 = sb;
    0x0006b586 mov.w r2, -1                                          |             r2 = -1;
    0x0006b58a mov r0, r8                                            |             r0 = r8;
    0x0006b58c blx 0x9014                                            |             fcn_00009014 ();
                                                                     |         }
    0x0006b590 mov r0, r8                                            |         r0 = r8;
    0x0006b592 blx 0x8dac                                            |         fcn_00008dac ();
                                                                     | label_0:
    0x0006b596 cmp.w sl, -1                                          |         
                                                                     |         if (sl == -1) {
    0x0006b59a beq 0x6b692                                           |             goto label_29;
                                                                     |         }
                                                                     | label_3:
    0x0006b59c blx 0x9628                                            |         fcn_00009628 ();
    0x0006b5a0 sub.w r8, r5, r7                                      |         r8 = r5 - r7;
    0x0006b5a4 movs r3, 0                                            |         r3 = 0;
    0x0006b5a6 str r3, [r0]                                          |         *(r0) = r3;
    0x0006b5a8 mov sb, r0                                            |         sb = r0;
    0x0006b5aa mov r3, r6                                            |         r3 = r6;
    0x0006b5ac mov r2, r8                                            |         r2 = r8;
    0x0006b5ae movs r1, 1                                            |         r1 = 1;
    0x0006b5b0 adds r0, r4, r7                                       |         r0 = r4 + r7;
    0x0006b5b2 blx 0x94a0                                            |         r0 = fcn_000094a0 ();
    0x0006b5b6 cmp r8, r0                                            |         
    0x0006b5b8 mov fp, r0                                            |         
                                                                     |         if (r8 <= r0) {
    0x0006b5ba blo 0x6b69c                                           |             goto label_30;
                                                                     |         }
    0x0006b5bc add r7, r0                                            |         r7 += r0;
    0x0006b5be mov r0, r6                                            |         r0 = r6;
    0x0006b5c0 blx 0x94d0                                            |         r0 = fcn_000094d0 ();
    0x0006b5c4 mov r8, r0                                            |         r8 = r0;
    0x0006b5c6 cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0006b5c8 bne.w 0x6b7f2                                         |             goto label_31;
                                                                     |         }
    0x0006b5ca strh r3, [r2, 8]                                      |         *((r2 + 8)) = r3;
    0x0006b5cc mov r0, r6                                            |         r0 = r6;
    0x0006b5ce blx 0x8fe4                                            |         r0 = fcn_00008fe4 ();
    0x0006b5d2 cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0006b5d4 bne.w 0x6b72c                                         |             goto label_7;
                                                                     |         }
    0x0006b5d8 cmp.w sl, -1                                          |         
                                                                     |         if (sl != -1) {
    0x0006b5dc bne.w 0x6b806                                         |             goto label_32;
                                                                     |         }
    0x0006b5e0 cmp.w fp, 0                                           |         
                                                                     |         if (fp == 0) {
    0x0006b5e4 beq 0x6b6b2                                           |             goto label_33;
                                                                     |         }
    0x0006b5e6 mvn r3, 0xfc000000                                    |         r3 = ~0xfc000000;
    0x0006b5ea cmp r5, r3                                            |         
                                                                     |         if (r5 >= r3) {
    0x0006b5ec bhs.w 0x6b820                                         |             goto label_34;
                                                                     |         }
    0x0006b5f0 lsls r2, r5, 1                                        |         r2 = r5 << 1;
    0x0006b5f2 mov sb, r5                                            |         sb = r5;
    0x0006b5f4 mov r8, r4                                            |         r8 = r4;
    0x0006b5f6 cmp r2, r3                                            |         
    0x0006b5f8 it hs                                                 |         
                                                                     |         if (r2 < r3) {
    0x0006b5fa movhs r2, r3                                          |             r2 = r3;
                                                                     |         }
    0x0006b5fc ldr r3, [sp, 0xc]                                     |         r3 = var_ch_2;
    0x0006b5fe mov r5, r2                                            |         r5 = r2;
    0x0006b600 adds r1, r5, 1                                        |         r1 = r5 + 1;
    0x0006b602 cmp r3, 0                                             |         
    0x0006b604 bne 0x6b560                                           |         
                                                                     |     } while (r3 != 0);
                                                                     | label_26:
    0x0006b606 mov r0, r8                                            |     r0 = r8;
    0x0006b608 blx 0x94dc                                            |     r0 = fcn_000094dc ();
    0x0006b60c mov r4, r0                                            |     r4 = r0;
    0x0006b60e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0006b610 bne 0x6b596                                           |         goto label_0;
                                                                     |     }
    0x0006b612 mov r4, r8                                            |     r4 = r8;
    0x0006b614 mvn r8, 0xb                                           |     r8 = ~0xb;
    0x0006b618 b 0x6b634                                             |     goto label_4;
                                                                     | label_25:
    0x0006b61a mov r1, r4                                            |     r1 = r4;
    0x0006b61c movs r2, 0                                            |     r2 = 0;
    0x0006b61e mov r0, r6                                            |     r0 = r6;
    0x0006b620 blx 0x8e30                                            |     r0 = fcn_00008e30 ();
    0x0006b624 cmp r0, 0                                             |     
                                                                     |     if (r0 >= 0) {
    0x0006b626 bge 0x6b548                                           |         goto label_1;
                                                                     |     }
    0x0006b628 blx 0x9628                                            |     r0 = fcn_00009628 ();
    0x0006b62c ldr r3, [r0]                                          |     r3 = *(r0);
    0x0006b62e movs r4, 0                                            |     r4 = 0;
    0x0006b630 rsb.w r8, r3, 0                                       |     r8 = r3 - ;
                                                                     | label_4:
    0x0006b634 mov r0, r4                                            |     r0 = r4;
    0x0006b636 blx 0x8dac                                            |     fcn_00008dac ();
    0x0006b63a ldr r2, [pc, 0x240]                                   |     
    0x0006b63c ldr r3, [pc, 0x238]                                   |     r3 = *(0x6b878);
    0x0006b63e add r2, pc                                            |     r2 = 0xd6ec0;
    0x0006b640 ldr r3, [r2, r3]                                      |     r3 = *(0xd6ec0);
    0x0006b642 ldr r2, [r3]                                          |     r2 = *(0xd6ec0);
    0x0006b644 ldr r3, [sp, 0x8c]                                    |     r3 = var_8ch;
    0x0006b646 eors r2, r3                                           |     r2 ^= r3;
    0x0006b648 mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x0006b64c bne.w 0x6b86e                                         |         goto label_35;
                                                                     |     }
    0x0006b650 mov r0, r8                                            |     r0 = r8;
    0x0006b652 add sp, 0x94                                          |     
    0x0006b654 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_24:
    0x0006b658 add.w sb, sp, 0x20                                    |     sb += var_20h;
    0x0006b65c mov r1, sb                                            |     r1 = sb;
    0x0006b65e blx 0x9020                                            |     r0 = fcn_00009020 ();
    0x0006b662 cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0006b664 blt 0x6b70a                                           |         goto label_36;
                                                                     |     }
    0x0006b666 ldr r3, [sp, 0x30]                                    |     r3 = var_30h;
    0x0006b668 and r3, r3, 0xf000                                    |     r3 &= 0xf000;
    0x0006b66c cmp.w r3, 0x8000                                      |     
                                                                     |     if (r3 != 0x8000) {
    0x0006b670 bne.w 0x6b53c                                         |         goto label_2;
                                                                     |     }
    0x0006b674 cmp.w sl, -1                                          |     
                                                                     |     if (sl == -1) {
    0x0006b678 beq.w 0x6b78a                                         |         goto label_37;
                                                                     |     }
                                                                     | label_5:
    0x0006b67c ldr r3, [sp, 0xbc]                                    |     r3 = var_4h;
    0x0006b67e lsls r3, r3, 0x1c                                     |     r3 <<= 0x1c;
                                                                     |     if (r3 >= r3) {
    0x0006b680 bpl.w 0x6b53c                                         |         goto label_2;
                                                                     |     }
    0x0006b684 movs r3, 0                                            |     r3 = 0;
    0x0006b686 mov r1, sb                                            |     r1 = sb;
    0x0006b688 mov r0, r8                                            |     r0 = r8;
    0x0006b68a mov r2, r3                                            |     r2 = r3;
    0x0006b68c bl 0x6b3d4                                            |     fcn_0006b3d4 (r0, r1, r2, r3, r4);
    0x0006b690 b 0x6b53c                                             |     goto label_2;
                                                                     | label_29:
    0x0006b692 mov r0, r4                                            |     r0 = r4;
    0x0006b694 blx 0x8bf8                                            |     r0 = reallocarray ();
    0x0006b698 subs r5, r0, 1                                        |     r5 = r0 - 1;
    0x0006b69a b 0x6b59c                                             |     goto label_3;
                                                                     | label_30:
    0x0006b69c ldr r1, [pc, 0x1e0]                                   |     
    0x0006b69e movw r2, 0x263                                        |     r2 = 0x263;
    0x0006b6a0 movs r2, 0x63                                         |     r2 = 0x63;
    0x0006b6a2 ldr r3, [pc, 0x1e0]                                   |     
    0x0006b6a4 ldr r0, [pc, 0x1e0]                                   |     
    0x0006b6a6 add r1, pc                                            |     r1 = 0xd6f2a;
    0x0006b6a8 add r3, pc                                            |     r3 = 0xd6f32;
    0x0006b6aa adds r1, 7                                            |     r1 += 7;
    0x0006b6ac add r0, pc                                            |     r0 = 0xd6f38;
    0x0006b6ae bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_33:
    0x0006b6b2 ldr r1, [pc, 0x1d8]                                   |     
    0x0006b6b4 movw r2, 0x272                                        |     r2 = 0x272;
    0x0006b6b8 ldr r3, [pc, 0x1d4]                                   |     
    0x0006b6ba ldr r0, [pc, 0x1d8]                                   |     
    0x0006b6bc add r1, pc                                            |     r1 = 0xd6f4e;
    0x0006b6be add r3, pc                                            |     r3 = 0xd6f52;
    0x0006b6c0 adds r1, 7                                            |     r1 += 7;
    0x0006b6c2 add r0, pc                                            |     r0 = 0xd6f5c;
    0x0006b6c4 bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_20:
    0x0006b6c8 ldr r1, [pc, 0x1cc]                                   |     
    0x0006b6ca mov.w r2, 0x21c                                       |     r2 = 0x21c;
    0x0006b6ce ldr r3, [pc, 0x1cc]                                   |     
    0x0006b6d0 ldr r0, [pc, 0x1cc]                                   |     
    0x0006b6d2 add r1, pc                                            |     r1 = 0xd6f6e;
    0x0006b6d4 add r3, pc                                            |     r3 = 0xd6f76;
    0x0006b6d6 adds r1, 7                                            |     r1 += 7;
    0x0006b6d8 add r0, pc                                            |     r0 = 0xd6f7c;
    0x0006b6da bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_21:
    0x0006b6de ldr r1, [pc, 0x1c4]                                   |     
    0x0006b6e0 movw r2, 0x21d                                        |     r2 = 0x21d;
    0x0006b6e4 ldr r3, [pc, 0x1c0]                                   |     
    0x0006b6e6 ldr r0, [pc, 0x1c4]                                   |     
    0x0006b6e8 add r1, pc                                            |     r1 = 0xd6f92;
    0x0006b6ea add r3, pc                                            |     r3 = 0xd6f96;
    0x0006b6ec adds r1, 7                                            |     r1 += 7;
    0x0006b6ee add r0, pc                                            |     r0 = 0xd6fa0;
    0x0006b6f0 bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_22:
    0x0006b6f4 ldr r1, [pc, 0x1b8]                                   |     
    0x0006b6f6 movw r2, 0x21e                                        |     r2 = 0x21e;
    0x0006b6fa ldr r3, [pc, 0x1b8]                                   |     
    0x0006b6fc ldr r0, [pc, 0x1b8]                                   |     
    0x0006b6fe add r1, pc                                            |     r1 = 0xd6fb2;
    0x0006b700 add r3, pc                                            |     r3 = 0xd6fba;
    0x0006b702 adds r1, 7                                            |     r1 += 7;
    0x0006b704 add r0, pc                                            |     r0 = 0xd6fc0;
    0x0006b706 bl 0x71518                                            |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_36:
    0x0006b70a blx 0x9628                                            |     r0 = fcn_00009628 ();
    0x0006b70e ldr r3, [r0]                                          |     r3 = *(r0);
    0x0006b710 rsb.w r8, r3, 0                                       |     r8 = r3 - ;
                                                                     | label_11:
    0x0006b714 movs r4, 0                                            |     r4 = 0;
    0x0006b716 b 0x6b634                                             |     goto label_4;
                                                                     | label_28:
    0x0006b718 ldr r1, [pc, 0x1a0]                                   |     
    0x0006b71a movs r2, 0x16                                         |     r2 = 0x16;
    0x0006b71c ldr r3, [pc, 0x1a0]                                   |     
    0x0006b71e ldr r0, [pc, 0x1a4]                                   |     
    0x0006b720 add r1, pc                                            |     r1 = 0xd6fe0;
    0x0006b722 add r3, pc                                            |     r3 = 0xd6fe6;
    0x0006b724 adds r1, 7                                            |     r1 += 7;
    0x0006b726 add r0, pc                                            |     r0 = 0xd6ff0;
    0x0006b728 bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_7:
    0x0006b72c ldr r3, [sp, 0xbc]                                    |     r3 = var_4h;
    0x0006b72e tst.w r3, 6                                           |     
                                                                     |     if ((r3 & 6) != 0) {
    0x0006b732 beq 0x6b776                                           |         
    0x0006b734 movs r3, 0                                            |         r3 = 0;
    0x0006b736 ldrb.w r2, [sp, 0xc]                                  |         r2 = var_ch_2;
    0x0006b73a strb r3, [r4, r7]                                     |         *((r4 + r7)) = r3;
    0x0006b73c adds r1, r7, 1                                        |         r1 = r7 + 1;
    0x0006b73e str r3, [sp, 0x1c]                                    |         var_1ch = r3;
    0x0006b740 mov r0, r4                                            |         r0 = r4;
    0x0006b742 ldr r3, [sp, 0xbc]                                    |         r3 = var_4h;
    0x0006b744 tst.w r3, 2                                           |         
    0x0006b748 add r3, sp, 0x20                                      |         r3 += var_20h;
    0x0006b74a str r3, [sp]                                          |         *(sp) = r3;
    0x0006b74c add r3, sp, 0x1c                                      |         r3 += var_1ch;
                                                                     |         if ((r3 & 2) == 0) {
    0x0006b74e beq 0x6b826                                           |             goto label_38;
                                                                     |         }
    0x0006b750 bl 0x6f730                                            |         r0 = fcn_0006f730 (r0, r1, r2, r3, r4, r5, r6);
    0x0006b754 mov r3, r0                                            |         r3 = r0;
                                                                     | label_8:
    0x0006b756 cmp r3, 0                                             |         
                                                                     |         if (r3 < 0) {
    0x0006b758 blt 0x6b846                                           |             goto label_39;
                                                                     |         }
    0x0006b75a ldr r3, [sp, 0xc]                                     |         r3 = var_ch_2;
    0x0006b75c cmp r5, 0                                             |         
    0x0006b75e ite eq                                                |         
                                                                     |         if (r5 != 0) {
    0x0006b760 moveq r3, 0                                           |             r3 = 0;
                                                                     |         }
                                                                     |         if (r5 == 0) {
    0x0006b762 andne r3, r3, 1                                       |             r3 &= 1;
                                                                     |         }
    0x0006b766 cmp r3, 0                                             |         
                                                                     |         if (r3 != 0) {
    0x0006b768 bne 0x6b850                                           |             goto label_40;
                                                                     |         }
                                                                     | label_10:
    0x0006b76a mov r0, r4                                            |         r0 = r4;
    0x0006b76c blx 0x8dac                                            |         fcn_00008dac ();
    0x0006b770 ldrd r4, r5, [sp, 0x1c]                               |         __asm ("ldrd r4, r5, [var_1ch]");
    0x0006b774 mov r7, r5                                            |         r7 = r5;
                                                                     |     }
    0x0006b776 ldr r3, [sp, 0x14]                                    |     r3 = var_14h_2;
                                                                     |     if (r3 != 0) {
    0x0006b778 cbz r3, 0x6b7c6                                       |         
    0x0006b77a ldr r2, [sp, 0x10]                                    |         r2 = var_10h_2;
    0x0006b77c movs r3, 0                                            |         r3 = 0;
    0x0006b77e strb r3, [r4, r7]                                     |         *((r4 + r7)) = r3;
    0x0006b780 str r4, [r2]                                          |         *(r2) = r4;
    0x0006b782 mov r4, r3                                            |         r4 = r3;
    0x0006b784 ldr r3, [sp, 0x14]                                    |         r3 = var_14h_2;
    0x0006b786 str r7, [r3]                                          |         *(r3) = r7;
    0x0006b788 b 0x6b634                                             |         goto label_4;
                                                                     | label_37:
    0x0006b78a ldrd r0, r2, [sp, 0x50]                               |         __asm ("ldrd r0, r2, [var_50h]");
                                                                     | label_13:
    0x0006b78c lsls r4, r2, 8                                        |         r4 = r2 << 8;
    0x0006b78e cmp.w r7, -1                                          |         
    0x0006b792 it eq                                                 |         
                                                                     |         if (r7 == -1) {
    0x0006b794 cmpeq r4, -1                                          |             __asm ("cmpeq r4, -1");
                                                                     |         }
    0x0006b798 itete eq                                              |         
                                                                     |         if (r7 != -1) {
    0x0006b79a moveq r3, 0                                           |             r3 = 0;
                                                                     |         }
                                                                     |         if (r7 == -1) {
    0x0006b79c movne r3, r4                                          |             r3 = r4;
                                                                     |         }
                                                                     |         if (r7 != -1) {
    0x0006b79e moveq r1, r3                                          |             r1 = r3;
                                                                     |         }
                                                                     |         if (r7 == -1) {
    0x0006b7a0 movne r1, r7                                          |             r1 = r7;
                                                                     |         }
    0x0006b7a2 cmp r3, r0                                            |         
    0x0006b7a4 sbcs.w ip, r1, r2                                     |         __asm ("sbcs.w ip, r1, r2");
                                                                     |         if (r3 >= r0) {
    0x0006b7a8 bhs 0x6b82e                                           |             goto label_41;
                                                                     |         }
    0x0006b7aa subs r3, r0, r3                                       |         r3 = r0 - r3;
    0x0006b7ac sbc.w r1, r2, r1                                      |         __asm ("sbc.w r1, r2, r1");
    0x0006b7b0 cmp.w r3, 0x4000000                                   |         
    0x0006b7b4 sbcs r1, r1, 0                                        |         __asm ("sbcs r1, r1, 0");
                                                                     |         if (r3 >= 0x4000000) {
    0x0006b7b8 bhs 0x6b85e                                           |             goto label_42;
                                                                     |         }
                                                                     | label_9:
    0x0006b7ba cmp r0, 1                                             |         
    0x0006b7bc sbcs r2, r2, 0                                        |         __asm ("sbcs r2, r2, 0");
    0x0006b7c0 it ge                                                 |         
                                                                     |         if (r0 < 1) {
    0x0006b7c2 addge r5, r3, 1                                       |             r5 = r3 + 1;
                                                                     |         }
    0x0006b7c4 b 0x6b67c                                             |         goto label_5;
                                                                     |     }
    0x0006b7c6 mov r2, r7                                            |     r2 = r7;
    0x0006b7c8 mov r1, r3                                            |     r1 = r3;
    0x0006b7ca mov r0, r4                                            |     r0 = r4;
    0x0006b7cc blx 0x95ac                                            |     r0 = getpwuid_r ();
                                                                     |     if (r0 == 0) {
    0x0006b7d0 cbz r0, 0x6b832                                       |         goto label_43;
                                                                     |     }
    0x0006b7d2 mvn r8, 0x49                                          |     r8 = ~0x49;
                                                                     | label_6:
    0x0006b7d6 ldr r3, [sp, 0xc]                                     |     r3 = var_ch_2;
    0x0006b7d8 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0006b7da beq.w 0x6b634                                         |         goto label_4;
                                                                     |     }
                                                                     | label_12:
    0x0006b7de cmp r5, 0                                             |     
                                                                     |     if (r5 == 0) {
    0x0006b7e0 beq.w 0x6b634                                         |         goto label_4;
                                                                     |     }
    0x0006b7e4 mov.w r2, -1                                          |     r2 = -1;
    0x0006b7e8 mov r1, r5                                            |     r1 = r5;
    0x0006b7ea mov r0, r4                                            |     r0 = r4;
    0x0006b7ec blx 0x9014                                            |     fcn_00009014 ();
    0x0006b7f0 b 0x6b634                                             |     goto label_4;
                                                                     | label_31:
    0x0006b7f2 ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0006b7f6 cmp r3, 0                                             |     
    0x0006b7f8 it gt                                                 |     
                                                                     |     if (r3 <= 0) {
    0x0006b7fa rsbgt r8, r3, 0                                       |         __asm ("rsbgt r8, r3, 0");
                                                                     |         goto label_44;
                                                                     |     }
                                                                     |     if (r3 > 0) {
                                                                     | label_44:
    0x0006b7fe bgt 0x6b7d6                                           |         goto label_6;
                                                                     |     }
    0x0006b800 mvn r8, 4                                             |     r8 = ~4;
    0x0006b804 b 0x6b7d6                                             |     goto label_6;
                                                                     | label_32:
    0x0006b806 cmp sl, r7                                            |     
                                                                     |     if (sl == r7) {
    0x0006b808 beq 0x6b72c                                           |         goto label_7;
                                                                     |     }
    0x0006b80a ldr r1, [pc, 0xbc]                                    |     
    0x0006b80c movw r2, 0x26e                                        |     r2 = 0x26e;
    0x0006b810 ldr r3, [pc, 0xb8]                                    |     
    0x0006b812 ldr r0, [pc, 0xbc]                                    |     
    0x0006b814 add r1, pc                                            |     r1 = 0xd70e2;
    0x0006b816 add r3, pc                                            |     r3 = 0xd70e6;
    0x0006b818 adds r1, 7                                            |     r1 += 7;
    0x0006b81a add r0, pc                                            |     r0 = 0xd70f0;
    0x0006b81c bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_34:
    0x0006b820 mvn r8, 6                                             |     r8 = ~6;
    0x0006b824 b 0x6b7d6                                             |     goto label_6;
                                                                     | label_38:
    0x0006b826 bl 0x6f518                                            |     r0 = fcn_0006f518 (r0, r1, r2, r3, r4, r5, r6);
    0x0006b82a mov r3, r0                                            |     r3 = r0;
    0x0006b82c b 0x6b756                                             |     goto label_8;
                                                                     | label_41:
    0x0006b82e movs r3, 0                                            |     r3 = 0;
    0x0006b830 b 0x6b7ba                                             |     goto label_9;
                                                                     | label_43:
    0x0006b832 ldr r3, [sp, 0x14]                                    |     r3 = var_14h_2;
    0x0006b834 ldr r2, [sp, 0x10]                                    |     r2 = var_10h_2;
    0x0006b836 strb r3, [r4, r7]                                     |     *((r4 + r7)) = r3;
    0x0006b838 str r4, [r2]                                          |     *(r2) = r4;
    0x0006b83a mov r4, r3                                            |     r4 = r3;
    0x0006b83c b 0x6b634                                             |     goto label_4;
                                                                     | label_23:
    0x0006b83e movs r4, 0                                            |     r4 = 0;
    0x0006b840 mvn r8, 0x21                                          |     r8 = ~0x21;
    0x0006b844 b 0x6b634                                             |     goto label_4;
                                                                     | label_39:
    0x0006b846 ldr r0, [sp, 0x1c]                                    |     r0 = var_1ch;
    0x0006b848 mov r8, r3                                            |     r8 = r3;
    0x0006b84a blx 0x8dac                                            |     fcn_00008dac ();
    0x0006b84e b 0x6b7d6                                             |     goto label_6;
    0x0006b84c invalid                                               |     
                                                                     | label_40:
    0x0006b850 mov r1, r5                                            |     r1 = r5;
    0x0006b852 mov.w r2, -1                                          |     r2 = -1;
    0x0006b856 mov r0, r4                                            |     r0 = r4;
    0x0006b858 blx 0x9014                                            |     fcn_00009014 ();
    0x0006b85c b 0x6b76a                                             |     goto label_10;
                                                                     | label_42:
    0x0006b85e mvn r8, 6                                             |     r8 = ~6;
    0x0006b862 b 0x6b714                                             |     goto label_11;
                                                                     | label_27:
    0x0006b864 mov r4, r8                                            |     r4 = r8;
    0x0006b866 mov r5, sb                                            |     r5 = sb;
    0x0006b868 mvn r8, 0xb                                           |     r8 = ~0xb;
    0x0006b86c b 0x6b7de                                             |     goto label_12;
                                                                     | label_35:
    0x0006b86e blx 0x927c                                            |     fprintf_chk ()
    0x0006b872 nop                                                   |     
                                                                     |     if (r4 >= 0) {
    0x0006b874 bpl 0x6b84c                                           |         void (*0x6b84c)() ();
                                                                     |     }
    0x0006b876 movs r5, r0                                           |     r5 = r0;
    0x0006b878 lsls r0, r0, 0x13                                     |     r0 <<= 0x13;
    0x0006b87a movs r0, r0                                           |     
                                                                     |     if (r0 < r0) {
    0x0006b87c bmi 0x6b78c                                           |         goto label_13;
                                                                     |     }
    0x0006b87e movs r5, r0                                           |     r5 = r0;
    0x0006b880 strh r2, [r0, 0x1c]                                   |     *((r0 + 0x1c)) = r2;
    0x0006b882 movs r3, r0                                           |     r3 = r0;
    0x0006b884 strh r0, [r5, 0x2c]                                   |     *((r5 + 0x2c)) = r0;
    0x0006b886 movs r3, r0                                           |     r3 = r0;
    0x0006b888 strh r0, [r2, 0x2a]                                   |     *((r2 + 0x2a)) = r0;
    0x0006b88a movs r3, r0                                           |     r3 = r0;
    0x0006b88c strh r4, [r5, 0x1a]                                   |     *((r5 + 0x1a)) = r4;
    0x0006b88e movs r3, r0                                           |     r3 = r0;
    0x0006b890 strh r2, [r2, 0x2c]                                   |     *((r2 + 0x2c)) = r2;
    0x0006b892 movs r3, r0                                           |     r3 = r0;
    0x0006b894 ldr r7, [pc, 0x3b8]                                   |     r7 = *(0x6bc50);
    0x0006b896 movs r2, r0                                           |     r2 = r0;
    0x0006b898 strh r6, [r2, 0x1a]                                   |     *((r2 + 0x1a)) = r6;
    0x0006b89a movs r3, r0                                           |     r3 = r0;
    0x0006b89c strh r4, [r7, 0x2a]                                   |     *((r7 + 0x2a)) = r4;
    0x0006b89e movs r3, r0                                           |     r3 = r0;
    0x0006b8a0 stcl p0, c0, [r8, -4]                                 |     __asm ("stcl p0, c0, [r8, -4]");
    0x0006b8a4 strh r0, [r0, 0x1a]                                   |     *((r0 + 0x1a)) = r0;
    0x0006b8a6 movs r3, r0                                           |     r3 = r0;
    0x0006b8a8 strh r6, [r4, 0x2a]                                   |     *((r4 + 0x2a)) = r6;
    0x0006b8aa movs r3, r0                                           |     r3 = r0;
    0x0006b8ac strh r2, [r7, 0x24]                                   |     *((r7 + 0x24)) = r2;
    0x0006b8ae movs r3, r0                                           |     r3 = r0;
    0x0006b8b0 strh r2, [r5, 0x18]                                   |     *((r5 + 0x18)) = r2;
    0x0006b8b2 movs r3, r0                                           |     r3 = r0;
    0x0006b8b4 strh r0, [r2, 0x2a]                                   |     *((r2 + 0x2a)) = r0;
    0x0006b8b6 movs r3, r0                                           |     r3 = r0;
    0x0006b8b8 strh r4, [r6, 0x24]                                   |     *((r6 + 0x24)) = r4;
    0x0006b8ba movs r3, r0                                           |     r3 = r0;
    0x0006b8bc adr r3, 0x30                                          |     r3 = 0x30;
    0x0006b8be movs r2, r0                                           |     r2 = r0;
    0x0006b8c0 strh r2, [r4, 0x28]                                   |     *((r4 + 0x28)) = r2;
    0x0006b8c2 movs r3, r0                                           |     r3 = r0;
                                                                     |     if (r2 != 0) {
    0x0006b8c4 cbz r2, 0x6b8fe                                       |         
    0x0006b8c6 movs r1, r0                                           |         r1 = r0;
    0x0006b8c8 strh r4, [r2, 0x10]                                   |         *((r2 + 0x10)) = r4;
    0x0006b8ca movs r3, r0                                           |         r3 = r0;
    0x0006b8cc strh r2, [r7, 0x20]                                   |         *((r7 + 0x20)) = r2;
    0x0006b8ce movs r3, r0                                           |         r3 = r0;
    0x0006b8d0 strh r6, [r5, 0x1e]                                   |         *((r5 + 0x1e)) = r6;
    0x0006b8d2 movs r3, r0                                           |         r3 = r0;
                                                                     |     }
                                                                     |     if (r3 == r0) {
    0x0006b8fe beq.w 0x6ba86                                         |         goto label_45;
                                                                     |     }
    0x0006b902 cmp.w sl, 0                                           |     
                                                                     |     if (sl == 0) {
    0x0006b906 beq.w 0x6ba9c                                         |         goto label_46;
                                                                     |     }
    0x0006b908 strh r1, [r1, 6]                                      |     *((r1 + 6)) = r1;
    0x0006b90a ldr r2, [pc, 0x23c]                                   |     
    0x0006b90c mov sb, r0                                            |     sb = r0;
    0x0006b90e str r6, [sp]                                          |     *(sp) = r6;
    0x0006b910 mov r5, r1                                            |     r5 = r1;
    0x0006b912 add r2, pc                                            |     r2 = 0xd7460;
    0x0006b914 bl 0x6ab64                                            |     r0 = fcn_0006ab64 (r0, r1, r2, r3, r4);
    0x0006b918 subs r4, r0, 0                                        |     r4 = r0 - 0;
                                                                     |     if (r4 < r0) {
    0x0006b91a bge.w 0x6ba2a                                         |         
    0x0006b91e adds r2, r4, 6                                        |         r2 = r4 + 6;
                                                                     |         if (r2 != r4) {
    0x0006b920 bne.w 0x6ba72                                         |             goto label_47;
                                                                     |         }
    0x0006b924 ldr r3, [sp, 0x174]                                   |         r3 = *(arg_174h);
    0x0006b926 lsls r3, r3, 0x1b                                     |         r3 <<= 0x1b;
                                                                     |         if (r3 >= r3) {
    0x0006b928 bpl.w 0x6ba72                                         |             goto label_47;
                                                                     |         }
    0x0006b92a strh r3, [r4, 4]                                      |         *((r4 + 4)) = r3;
    0x0006b92c cmp.w r7, -1                                          |         
    0x0006b930 it eq                                                 |         
                                                                     |         if (r7 == -1) {
    0x0006b932 cmpeq r8, -1                                          |             __asm ("cmpeq r8, -1");
                                                                     |         }
                                                                     |         if (r7 != -1) {
    0x0006b936 bne.w 0x6bab2                                         |             goto label_48;
                                                                     |         }
    0x0006b93a cmn.w sb, 0x64                                        |         
                                                                     |         if (sb == 0x64) {
    0x0006b93e beq.w 0x6bacc                                         |             goto label_49;
                                                                     |         }
    0x0006b942 mov r0, sb                                            |         r0 = sb;
    0x0006b944 mov.w r2, 0x280000                                    |         r2 = 0x280000;
    0x0006b948 mov r1, r5                                            |         r1 = r5;
    0x0006b94a blx 0x8e0c                                            |         r0 = fcn_00008e0c ();
    0x0006b94e subs.w sb, r0, 0                                      |         sb = r0 - 0;
                                                                     |         if (sb < r0) {
    0x0006b952 blt.w 0x6babe                                         |             goto label_50;
                                                                     |         }
    0x0006b956 ldr r3, [pc, 0x1f4]                                   |         
    0x0006b958 add r0, sp, 0x128                                     |         r0 += arg_128h;
    0x0006b95a movs r2, 1                                            |         r2 = 1;
    0x0006b95c str.w sb, [sp, 4]                                     |         __asm ("str.w sb, [var_4h_2]");
    0x0006b960 str r0, [sp, 0x14]                                    |         *((sp + 0x14)) = r0;
    0x0006b962 add r3, pc                                            |         r3 = 0xd74b4;
    0x0006b964 str r3, [sp]                                          |         *(sp) = r3;
    0x0006b966 movs r3, 0x1a                                         |         r3 = 0x1a;
    0x0006b968 mov r1, r3                                            |         r1 = r3;
    0x0006b96a blx 0x9110                                            |         fcn_00009110 ();
    0x0006b96e add r3, sp, 0x28                                      |         r3 += var_28h_2;
    0x0006b970 ldr r1, [sp, 0x14]                                    |         r1 = *((sp + 0x14));
    0x0006b972 mov r0, r3                                            |         r0 = r3;
    0x0006b974 str r3, [sp, 0x14]                                    |         *((sp + 0x14)) = r3;
    0x0006b976 bl 0x79a88                                            |         fcn_00079a88 (r0, r1);
    0x0006b978 invalid                                               |         
    0x0006b97a cmp r0, 0                                             |         
                                                                     |         if (r0 < 0) {
    0x0006b97c blt.w 0x6bade                                         |             goto label_51;
                                                                     |         }
    0x0006b980 movs r1, 1                                            |         r1 = 1;
    0x0006b982 movs r2, 0                                            |         r2 = 0;
    0x0006b984 movt r1, 8                                            |         r1 = (r1 & 0xFFFF) | 0x80000;
    0x0006b988 movs r0, 1                                            |         r0 = 1;
    0x0006b98a blx 0x8ea8                                            |         r0 = fcn_00008ea8 ();
    0x0006b98e subs r3, r0, 0                                        |         r3 = r0 - 0;
                                                                     |         if (r3 < r0) {
    0x0006b990 blt.w 0x6bae6                                         |             goto label_52;
                                                                     |         }
    0x0006b994 ldr r1, [sp, 0x10]                                    |         r1 = *((sp + 0x10));
                                                                     |         if (r1 != 0) {
    0x0006b996 cbz r1, 0x6b9c2                                       |             
    0x0006b998 add r2, sp, 0xa8                                      |             r2 += var_a8h;
    0x0006b99a str r3, [sp, 0x10]                                    |             *((sp + 0x10)) = r3;
    0x0006b99c mov r0, r2                                            |             r0 = r2;
    0x0006b99e str r2, [sp, 0x1c]                                    |             *((sp + 0x1c)) = r2;
    0x0006b9a0 bl 0x79a88                                            |             r0 = fcn_00079a88 (r0, r1);
    0x0006b9a4 cmp r0, 0                                             |             
    0x0006b9a6 ldr r3, [sp, 0x10]                                    |             r3 = *((sp + 0x10));
    0x0006b9a8 str r0, [sp, 0x18]                                    |             var_18h = r0;
                                                                     |             if (r0 < 0) {
    0x0006b9aa blt.w 0x6bb04                                         |                 goto label_53;
                                                                     |             }
    0x0006b9ae ldr r2, [sp, 0x1c]                                    |             r2 = *((sp + 0x1c));
    0x0006b9b0 mov r1, r2                                            |             r1 = r2;
    0x0006b9b2 mov r2, r0                                            |             r2 = r0;
    0x0006b9b4 mov r0, r3                                            |             r0 = r3;
    0x0006b9b6 blx 0x9140                                            |             r0 = fcn_00009140 ();
    0x0006b9ba cmp r0, 0                                             |             
    0x0006b9bc ldr r3, [sp, 0x10]                                    |             r3 = *((sp + 0x10));
                                                                     |             if (r0 < 0) {
    0x0006b9be blt.w 0x6bb04                                         |                 goto label_53;
                                                                     |             }
                                                                     |         }
    0x0006b9c2 ldr r2, [sp, 0x14]                                    |         r2 = *((sp + 0x14));
    0x0006b9c4 ldrh r2, [r2]                                         |         r2 = *(r2);
    0x0006b9c6 cmp r2, 1                                             |         
                                                                     |         if (r2 != 1) {
    0x0006b9c8 bne.w 0x6bb24                                         |             goto label_54;
                                                                     |         }
    0x0006b9cc ldr r2, [sp, 0x14]                                    |         r2 = *((sp + 0x14));
    0x0006b9ce str r3, [sp, 0x10]                                    |         *((sp + 0x10)) = r3;
    0x0006b9d0 ldrb r2, [r2, 2]                                      |         r2 = *((r2 + 2));
    0x0006b9d2 cmp r2, 0                                             |         
                                                                     |         if (r2 != 0) {
    0x0006b9d4 bne.w 0x6baf4                                         |             goto label_55;
                                                                     |         }
    0x0006b9d8 movs r1, 0x6b                                         |         r1 = 0x6b;
    0x0006b9da add.w r0, sp, 0x2b                                    |         r0 += var_2bh;
    0x0006b9de blx 0x92c8                                            |         fcn_000092c8 ();
    0x0006b9e2 ldr r3, [sp, 0x10]                                    |         r3 = *((sp + 0x10));
    0x0006b9e4 adds r2, r0, 3                                        |         r2 = r0 + 3;
                                                                     | label_15:
    0x0006b9e6 mov r0, r3                                            |         r0 = r3;
    0x0006b9e8 ldr r1, [sp, 0x14]                                    |         r1 = *((sp + 0x14));
    0x0006b9ea str r3, [sp, 0x10]                                    |         *((sp + 0x10)) = r3;
    0x0006b9ec blx 0x8a20                                            |         r0 = fcn_00008a20 ();
    0x0006b9f0 cmp r0, 0                                             |         
    0x0006b9f2 ldr r3, [sp, 0x10]                                    |         r3 = *((sp + 0x10));
                                                                     |         if (r0 < 0) {
    0x0006b9f4 blt.w 0x6bb08                                         |             goto label_56;
                                                                     |         }
    0x0006b9f8 mov r0, r3                                            |         r0 = r3;
    0x0006b9fa movs r1, 1                                            |         r1 = 1;
    0x0006b9fc str r3, [sp, 0x10]                                    |         *((sp + 0x10)) = r3;
    0x0006b9fe blx 0x9134                                            |         r0 = fcn_00009134 ();
    0x0006ba02 cmp r0, 0                                             |         
    0x0006ba04 ldr r3, [sp, 0x10]                                    |         r3 = *((sp + 0x10));
                                                                     |         if (r0 < 0) {
    0x0006ba06 blt.w 0x6bb18                                         |             goto label_57;
                                                                     |         }
    0x0006ba0a ldr r1, [pc, 0x144]                                   |         
    0x0006ba0c mov r0, r3                                            |         r0 = r3;
    0x0006ba0e str r3, [sp, 0x10]                                    |         *((sp + 0x10)) = r3;
    0x0006ba10 add r1, pc                                            |         r1 = 0xd7566;
    0x0006ba12 blx 0x914c                                            |         fcn_0000914c ();
    0x0006ba16 str r0, [r6]                                          |         *(r6) = r0;
    0x0006ba18 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0006ba1a beq 0x6bb18                                           |             goto label_57;
                                                                     |         }
    0x0006ba1c mov.w r0, -1                                          |         r0 = -1;
    0x0006ba20 bl 0x69a04                                            |         fcn_00069a04 (r0, r1, r2, r3);
    0x0006ba24 mov r0, sb                                            |         r0 = sb;
    0x0006ba26 bl 0x69a04                                            |         fcn_00069a04 (r0, r1, r2, r3);
                                                                     |     }
    0x0006ba2a movs r1, 2                                            |     r1 = 2;
    0x0006ba2c ldr r0, [r6]                                          |     r0 = *(r6);
    0x0006ba2e blx 0x9198                                            |     mount ();
    0x0006ba32 ldr r4, [sp, 0x174]                                   |     r4 = *(arg_174h);
    0x0006ba34 mov r2, r8                                            |     r2 = r8;
    0x0006ba36 str.w fp, [sp, 0xc]                                   |     __asm ("str.w fp, [sp, 0xc]");
    0x0006ba3a mov r3, r7                                            |     r3 = r7;
    0x0006ba3c str.w sl, [sp, 8]                                     |     __asm ("str.w sl, [var_8h_2]");
    0x0006ba40 mov r1, r5                                            |     r1 = r5;
    0x0006ba42 ldr r0, [r6]                                          |     r0 = *(r6);
    0x0006ba44 str r4, [sp, 4]                                       |     var_4h_2 = r4;
    0x0006ba46 ldr r4, [sp, 0x170]                                   |     r4 = *(arg_170h);
    0x0006ba48 str r4, [sp]                                          |     *(sp) = r4;
    0x0006ba4a bl 0x6b4cc                                            |     r0 = fcn_0006b4cc (r0, r1, r2, r3, r4, r5, r6);
    0x0006ba4e mov r4, r0                                            |     r4 = r0;
                                                                     |     do {
    0x0006ba50 ldr r0, [r6]                                          |         r0 = *(r6);
    0x0006ba52 bl 0x69b30                                            |         fcn_00069b30 (r0, r1, r2, r3);
    0x0006ba56 ldr r2, [pc, 0xfc]                                    |         
    0x0006ba58 ldr r3, [pc, 0xe8]                                    |         r3 = *(0x6bb44);
    0x0006ba5a add r2, pc                                            |         r2 = 0xd75b4;
    0x0006ba5c ldr r3, [r2, r3]                                      |         r3 = *(0xd75b4);
    0x0006ba5e ldr r2, [r3]                                          |         r2 = *(0xd75b4);
    0x0006ba60 ldr r3, [sp, 0x144]                                   |         r3 = *(arg_8ch);
    0x0006ba62 eors r2, r3                                           |         r2 ^= r3;
    0x0006ba64 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0006ba68 bne 0x6bb3a                                           |             goto label_58;
                                                                     |         }
    0x0006ba6a mov r0, r4                                            |         r0 = r4;
    0x0006ba6c add sp, 0x14c                                         |         
    0x0006ba6e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_47:
    0x0006ba72 mov.w r3, -1                                          |         r3 = -1;
    0x0006ba76 mov sb, r3                                            |         sb = r3;
                                                                     | label_14:
    0x0006ba78 mov r0, r3                                            |         r0 = r3;
    0x0006ba7a bl 0x69a04                                            |         fcn_00069a04 (r0, r1, r2, r3);
    0x0006ba7e mov r0, sb                                            |         r0 = sb;
    0x0006ba80 bl 0x69a04                                            |         fcn_00069a04 (r0, r1, r2, r3);
    0x0006ba84 b 0x6ba50                                             |         
                                                                     |     } while (1);
                                                                     | label_45:
    0x0006ba86 ldr r1, [pc, 0xd0]                                    |     
    0x0006ba88 movw r2, 0x2b6                                        |     r2 = 0x2b6;
    0x0006ba8a movs r2, 0xb6                                         |     r2 = 0xb6;
    0x0006ba8c ldr r3, [pc, 0xcc]                                    |     
    0x0006ba8e ldr r0, [pc, 0xd0]                                    |     
    0x0006ba90 add r1, pc                                            |     r1 = 0xd75ee;
    0x0006ba92 add r3, pc                                            |     r3 = 0xd75f2;
    0x0006ba94 adds r1, 7                                            |     r1 += 7;
    0x0006ba96 add r0, pc                                            |     r0 = 0xd75fc;
    0x0006ba98 bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_46:
    0x0006ba9c ldr r1, [pc, 0xc4]                                    |     
    0x0006ba9e movw r2, 0x2b7                                        |     r2 = 0x2b7;
    0x0006baa2 ldr r3, [pc, 0xc4]                                    |     
    0x0006baa4 ldr r0, [pc, 0xc4]                                    |     
    0x0006baa6 add r1, pc                                            |     r1 = 0xd760e;
    0x0006baa8 add r3, pc                                            |     r3 = 0xd7616;
    0x0006baaa adds r1, 7                                            |     r1 += 7;
    0x0006baac add r0, pc                                            |     r0 = 0xd761c;
    0x0006baae bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_48:
    0x0006bab2 mov.w r3, -1                                          |     r3 = -1;
    0x0006bab6 mvn r4, 0x1c                                          |     r4 = ~0x1c;
    0x0006baba mov sb, r3                                            |     sb = r3;
    0x0006babc b 0x6ba78                                             |     goto label_14;
                                                                     | label_50:
    0x0006babe blx 0x9628                                            |     r0 = fcn_00009628 ();
    0x0006bac2 ldr r4, [r0]                                          |     r4 = *(r0);
    0x0006bac4 mov.w r3, -1                                          |     r3 = -1;
    0x0006bac8 rsbs r4, r4, 0                                        |     r4 -= ;
    0x0006baca b 0x6ba78                                             |     goto label_14;
                                                                     | label_49:
    0x0006bacc add r3, sp, 0x28                                      |     r3 += var_28h_2;
    0x0006bace mov r1, r5                                            |     r1 = r5;
    0x0006bad0 mov r0, r3                                            |     r0 = r3;
    0x0006bad2 str r3, [sp, 0x14]                                    |     *((sp + 0x14)) = r3;
    0x0006bad4 mov.w sb, -1                                          |     sb = -1;
    0x0006bad8 bl 0x79a88                                            |     fcn_00079a88 (r0, r1);
    0x0006bada invalid                                               |     
                                                                     | label_51:
    0x0006bade mov r4, r0                                            |     r4 = r0;
    0x0006bae0 mov.w r3, -1                                          |     r3 = -1;
    0x0006bae4 b 0x6ba78                                             |     goto label_14;
                                                                     | label_52:
    0x0006bae6 str r3, [sp, 0x10]                                    |     *((sp + 0x10)) = r3;
    0x0006bae8 blx 0x9628                                            |     fcn_00009628 ();
    0x0006baea ldc p8, c6, [lr, 0x10]                                |     __asm ("ldc p8, c6, [lr, 0x10]");
    0x0006baee ldr r3, [sp, 0x10]                                    |     r3 = *((sp + 0x10));
    0x0006baf0 rsbs r4, r4, 0                                        |     r4 -= ;
    0x0006baf2 b 0x6ba78                                             |     goto label_14;
                                                                     | label_55:
    0x0006baf4 movs r1, 0x6c                                         |     r1 = 0x6c;
    0x0006baf6 add.w r0, sp, 0x2a                                    |     r0 += var_2ah;
    0x0006bafa blx 0x92c8                                            |     fcn_000092c8 ();
    0x0006bafe ldr r3, [sp, 0x10]                                    |     r3 = *((sp + 0x10));
    0x0006bb00 adds r2, r0, 3                                        |     r2 = r0 + 3;
    0x0006bb02 b 0x6b9e6                                             |     goto label_15;
                                                                     |     do {
                                                                     | label_53:
    0x0006bb04 ldr r4, [sp, 0x18]                                    |         r4 = var_18h;
    0x0006bb06 b 0x6ba78                                             |         goto label_14;
                                                                     | label_56:
    0x0006bb08 blx 0x9628                                            |         r0 = fcn_00009628 ();
    0x0006bb0c ldr r2, [r0]                                          |         r2 = *(r0);
    0x0006bb0e ldr r3, [sp, 0x10]                                    |         r3 = *((sp + 0x10));
    0x0006bb10 cmp r2, 0x58                                          |         
    0x0006bb12 it ne                                                 |         
                                                                     |         if (r2 != 0x58) {
    0x0006bb14 rsbne r4, r2, 0                                       |             __asm ("rsbne r4, r2, 0");
                                                                     |         }
    0x0006bb16 b 0x6ba78                                             |         goto label_14;
                                                                     | label_57:
    0x0006bb18 blx 0x9628                                            |         r0 = fcn_00009628 ();
    0x0006bb1c ldr r4, [r0]                                          |         r4 = *(r0);
    0x0006bb1e ldr r3, [sp, 0x10]                                    |         r3 = *((sp + 0x10));
    0x0006bb20 rsbs r4, r4, 0                                        |         r4 -= ;
    0x0006bb22 b 0x6ba78                                             |         goto label_14;
                                                                     | label_54:
    0x0006bb24 ldr r1, [pc, 0x48]                                    |         
    0x0006bb26 movw r2, 0x2ef                                        |         r2 = 0x2ef;
    0x0006bb2a ldr r3, [pc, 0x48]                                    |         
    0x0006bb2c ldr r0, [pc, 0x48]                                    |         
    0x0006bb2e add r1, pc                                            |         r1 = 0xd76a2;
    0x0006bb30 add r3, pc                                            |         r3 = 0xd76aa;
    0x0006bb32 adds r1, 7                                            |         r1 += 7;
    0x0006bb34 add r0, pc                                            |         r0 = 0xd76b0;
    0x0006bb36 bl 0x71518                                            |         r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_58:
    0x0006bb3a blx 0x927c                                            |         fprintf_chk ()
    0x0006bb3e nop                                                   |         
    0x0006bb40 bne 0x6bb04                                           |         
                                                                     |     } while (r1 != 7);
    0x0006bb42 movs r5, r0                                           |     r5 = r0;
    0x0006bb44 lsls r0, r0, 0x13                                     |     r0 <<= 0x13;
    0x0006bb46 movs r0, r0                                           |     
    0x0006bb48 lsls r6, r6, 0x14                                     |     r6 <<= 0x14;
    0x0006bb4a movs r3, r0                                           |     r3 = r0;
    0x0006bb4c ldrb r6, [r6, 0x1e]                                   |     r6 = *((r6 + 0x1e));
    0x0006bb4e movs r3, r0                                           |     r3 = r0;
    0x0006bb50 ldrd r0, r0, [ip, -0x4]!                              |     __asm ("ldrd r0, r0, [ip, -0x4]!");
                                                                     |     if (r3 == r0) {
    0x0006bb54 beq 0x6bc2c                                           |         goto label_59;
                                                                     |     }
    0x0006bb56 movs r5, r0                                           |     r5 = r0;
    0x0006bb58 ldrb r0, [r3, 0x1e]                                   |     r0 = *((r3 + 0x1e));
    0x0006bb5a movs r3, r0                                           |     r3 = r0;
    0x0006bb5c strh r6, [r3, 0xc]                                    |     *((r3 + 0xc)) = r6;
    0x0006bb5e movs r3, r0                                           |     r3 = r0;
    0x0006bb60 subs r6, r2, r4                                       |     r6 = r2 - r4;
    0x0006bb62 movs r2, r0                                           |     r2 = r0;
    0x0006bb64 ldrb r2, [r0, 0x1e]                                   |     r2 = *((r0 + 0x1e));
    0x0006bb66 movs r3, r0                                           |     r3 = r0;
    0x0006bb68 strh r0, [r1, 0xc]                                    |     *((r1 + 0xc)) = r0;
    0x0006bb6a movs r3, r0                                           |     r3 = r0;
    0x0006bb6c strh r4, [r7, 6]                                      |     *((r7 + 6)) = r4;
    0x0006bb6e movs r3, r0                                           |     r3 = r0;
    0x0006bb70 ldrb r2, [r7, 0x1b]                                   |     r2 = *((r7 + 0x1b));
    0x0006bb72 movs r3, r0                                           |     r3 = r0;
    0x0006bb74 strh r0, [r0, 8]                                      |     *((r0 + 8)) = r0;
    0x0006bb76 movs r3, r0                                           |     r3 = r0;
    0x0006bb78 adr r7, 0x320                                         |     r7 = 0x320;
    0x0006bb7a movs r1, r0                                           |     r1 = r0;
                                                                     | label_17:
    0x0006bc12 movs r1, 1                                            |     r1 = 1;
    0x0006bc14 mov r0, r4                                            |     r0 = r4;
    0x0006bc16 bl 0x79c8c                                            |     r0 = fcn_00079c8c ();
    0x0006bc1a cmp r0, 0                                             |     
                                                                     |     if (r0 >= 0) {
    0x0006bc1c blt 0x6bc24                                           |         
                                                                     |         if (r0 != 0) {
    0x0006bc1e bne 0x6bc8c                                           |             goto label_60;
                                                                     |         }
                                                                     | label_16:
    0x0006bc20 mvn r0, 0x13                                          |         r0 = ~0x13;
                                                                     |     }
                                                                     | label_18:
    0x0006bc24 cmp r5, 0                                             |     
    0x0006bc26 it eq                                                 |     
    0x0006bc28 moveq r5, r0                                          |     r5 = r0;
                                                                     |     while (r0 == 0) {
    0x0006bc2a ldr r4, [r8, 4]!                                      |         r4 = *((r8 += 4));
                                                                     | label_59:
    0x0006bc2c ldr r7, [pc, 0x10]                                    |         r7 = *(0x6bc40);
                                                                     |         if (r4 == 0) {
    0x0006bc2e cbz r4, 0x6bc50                                       |             goto label_61;
                                                                     |         }
    0x0006bc30 mov r0, r4                                            |         r0 = r4;
    0x0006bc32 blx 0x8de8                                            |         r0 = fcn_00008de8 ();
    0x0006bc36 mov r4, r0                                            |         r4 = r0;
    0x0006bc38 cmp r0, 0                                             |         
    0x0006bc3a beq 0x6bc2a                                           |         
                                                                     |     }
    0x0006bc3c ldrb r3, [r0]                                         |     r3 = *(r0);
    0x0006bc3e cmp r3, 0x2f                                          |     
                                                                     |     if (r3 != 0x2f) {
    0x0006bc40 bne 0x6bc20                                           |         goto label_16;
                                                                     |     }
    0x0006bc42 bl 0x75b1c                                            |     r0 = fcn_00075b1c (r0);
    0x0006bc46 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0006bc48 bne 0x6bc12                                           |         goto label_17;
                                                                     |     }
    0x0006bc4a mov.w r0, -1                                          |     r0 = -1;
    0x0006bc4e b 0x6bc24                                             |     goto label_18;
                                                                     | label_61:
    0x0006bc50 movs r1, 1                                            |     r1 = 1;
    0x0006bc52 mov r0, r7                                            |     r0 = r7;
    0x0006bc54 bl 0x79c8c                                            |     r0 = fcn_00079c8c ();
    0x0006bc58 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0006bc5a beq 0x6bc80                                           |         goto label_62;
                                                                     |     }
    0x0006bc5c itt ge                                                |     
                                                                     |     if (r0 < 0) {
    0x0006bc5e movge r5, r4                                          |         r5 = r4;
                                                                     |     }
                                                                     |     if (r0 < 0) {
    0x0006bc60 strge r7, [r6]                                        |         *(r6) = r7;
                                                                     |     }
    0x0006bc62 blt 0x6bc84                                           |     
                                                                     |     while (1) {
                                                                     | label_19:
    0x0006bc64 ldr r2, [pc, 0x58]                                    |         
    0x0006bc66 ldr r3, [pc, 0x48]                                    |         r3 = *(0x6bcb2);
    0x0006bc68 add r2, pc                                            |         r2 = 0xd792c;
    0x0006bc6a ldr r3, [r2, r3]                                      |         r3 = *(0xd792c);
    0x0006bc6c ldr r2, [r3]                                          |         r2 = *(0xd792c);
    0x0006bc6e ldr r3, [sp, 0x14]                                    |         r3 = *((sp + 0x14));
    0x0006bc70 eors r2, r3                                           |         r2 ^= r3;
    0x0006bc72 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0006bc76 bne 0x6bca8                                           |             goto label_63;
                                                                     |         }
    0x0006bc78 mov r0, r5                                            |         r0 = r5;
    0x0006bc7a add sp, 0x18                                          |         
    0x0006bc7c pop.w {r4, r5, r6, r7, r8, pc}                        |         
                                                                     | label_62:
    0x0006bc80 mvn r0, 0x13                                          |         r0 = ~0x13;
    0x0006bc84 cmp r5, 0                                             |         
    0x0006bc86 it eq                                                 |         
                                                                     |         if (r5 != 0) {
    0x0006bc88 moveq r5, r0                                          |             r5 = r0;
                                                                     |         }
    0x0006bc8a b 0x6bc64                                             |         
                                                                     |     }
                                                                     | label_60:
    0x0006bc8c movs r5, 0                                            |     r5 = 0;
    0x0006bc8e str r4, [r6]                                          |     *(r6) = r4;
    0x0006bc90 b 0x6bc64                                             |     goto label_19;
                                                                     | label_63:
    0x0006bca8 blx 0x927c                                            |     fprintf_chk ()
    0x0006bcac ldm r6, {r1, r5, r6, r7}                              |     r1 = *(r6);
                                                                     |     r5 = *((r6 + 4));
                                                                     |     r6 = *((r6 + 8));
                                                                     |     r7 = *((r6 + 12));
    0x0006bcae movs r5, r0                                           |     r5 = r0;
    0x0006bcb0 lsls r0, r0, 0x13                                     |     r0 <<= 0x13;
    0x0006bcb2 movs r0, r0                                           |     
    0x0006bcb4 strh r4, [r0, 0xc]                                    |     *((r0 + 0xc)) = r4;
    0x0006bcb6 movs r3, r0                                           |     r3 = r0;
    0x0006bcb8 strh r4, [r4, 0xc]                                    |     *((r4 + 0xc)) = r4;
    0x0006bcba movs r3, r0                                           |     r3 = r0;
    0x0006bcbc strh r4, [r4, 0xc]                                    |     *((r4 + 0xc)) = r4;
    0x0006bcbe movs r3, r0                                           |     r3 = r0;
    0x0006bcc0 ldm r6, {r2, r3, r4, r6}                              |     r2 = *(r6);
                                                                     |     r3 = *((r6 + 4));
                                                                     |     r4 = *((r6 + 8));
                                                                     |     r6 = *((r6 + 12));
    0x0006bcc2 movs r5, r0                                           |     r5 = r0;
    0x0006bcc4 strh r0, [r6, 6]                                      |     *((r6 + 6)) = r0;
    0x0006bcc6 movs r3, r0                                           |     r3 = r0;
    0x0006bcc8 strh r2, [r2, 0x1e]                                   |     *((r2 + 0x1e)) = r2;
    0x0006bcca movs r3, r0                                           |     r3 = r0;
    0x0006bccc strh r2, [r2, 0x3c]                                   |     *((r2 + 0x3c)) = r2;
    0x0006bcce movs r1, r0                                           |     r1 = r0;
                                                                     | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6bcd0 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0006bcd0 ()                          | void fcn_0006bcd0 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                     |     int16_t var_20h_2;
                                                     |     int16_t var_24h;
                                                     |     int16_t var_28h;
                                                     |     int16_t var_40h;
                                                     |     int16_t var_94h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     |     r2 = arg3;
                                                     |     r3 = arg4;
    0x0006bcd0 mvnsmi lr, sp, lsr 18                 |     __asm ("mvnsmi lr, sp, lsr 18");
    0x0006bcd4 ands r3, r3, 0x80                     |     r3 &= 0x80;
    0x0006bcd8 ldr r5, [pc, 0x138]                   |     
    0x0006bcda sub sp, 0x98                          |     
    0x0006bcdc mov.w r6, 0                           |     r6 = 0;
    0x0006bce0 ldr r4, [pc, 0x134]                   |     r4 = *(0x6be18);
    0x0006bce2 add r5, pc                            |     r5 = 0xd7afa;
    0x0006bce4 ldr r4, [r5, r4]                      |     
    0x0006bce6 ldr r4, [r4]                          |     r4 = *(0xd7afa);
    0x0006bce8 str r4, [sp, 0x94]                    |     var_94h = r4;
    0x0006bcea mov.w r4, 0                           |     r4 = 0;
    0x0006bcec lsls r0, r0, 0x10                     |     r0 <<= 0x10;
    0x0006bcee strd r6, r6, [sp, 0x20]               |     __asm ("strd r6, r6, [sp, 0x20]");
                                                     |     if (r0 == r0) {
    0x0006bcf2 beq.w 0x6be00                         |         goto label_5;
                                                     |     }
    0x0006bcf6 mov r5, r1                            |     r5 = r1;
    0x0006bcf8 add r1, sp, 0x20                      |     r1 += var_20h_2;
    0x0006bcfa mov r4, r0                            |     r4 = r0;
    0x0006bcfc mov r7, r2                            |     r7 = r2;
    0x0006bcfe add.w r8, sp, 0x28                    |     r8 += var_28h;
    0x0006bd02 bl 0x6a120                            |     fcn_0006a120 (r0, r1, r2);
    0x0006bd06 add r1, sp, 0x24                      |     r1 += var_24h;
    0x0006bd08 mov r0, r5                            |     r0 = r5;
    0x0006bd0a bl 0x6a120                            |     fcn_0006a120 (r0, r1, r2);
    0x0006bd0e mov r0, r4                            |     r0 = r4;
    0x0006bd10 mov r1, r8                            |     r1 = r8;
    0x0006bd12 blx 0x9020                            |     r0 = fcn_00009020 ();
    0x0006bd16 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0006bd18 beq 0x6bdb8                           |         goto label_6;
                                                     |     }
    0x0006bd1a mov r1, r8                            |     r1 = r8;
    0x0006bd1c mov r0, r5                            |     r0 = r5;
    0x0006bd1e movs r4, 0                            |     r4 = 0;
    0x0006bd20 blx 0x9020                            |     r0 = fcn_00009020 ();
    0x0006bd24 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0006bd26 beq 0x6bdce                           |         goto label_7;
                                                     |     }
                                                     |     do {
                                                     | label_0:
    0x0006bd28 bl 0x70bf8                            |         r0 = fcn_00070bf8 ();
    0x0006bd2c cmp r0, 3                             |         
                                                     |         if (r0 <= 3) {
    0x0006bd2e ble 0x6be0a                           |             goto label_8;
                                                     |         }
    0x0006bd30 ldr r5, [sp, 0x20]                    |         r5 = var_20h_2;
    0x0006bd32 cmp r5, 0                             |         
                                                     |         if (r5 == 0) {
    0x0006bd34 beq 0x6bdfa                           |             goto label_9;
                                                     |         }
                                                     | label_3:
    0x0006bd36 mov r8, r6                            |         r8 = r6;
    0x0006bd38 cmp r6, 0                             |         
                                                     |         if (r6 == 0) {
    0x0006bd3a beq 0x6bdd8                           |             goto label_10;
                                                     |         }
    0x0006bd3c movs r0, 0xd                          |         r0 = 0xd;
    0x0006bd3e bl 0x70340                            |         fcn_00070340 (r0);
    0x0006bd42 ldr r3, [sp, 0x24]                    |         r3 = var_24h;
    0x0006bd44 cmp r3, 0                             |         
                                                     |         if (r3 == 0) {
    0x0006bd46 beq 0x6bdea                           |             goto label_11;
                                                     |         }
                                                     | label_1:
    0x0006bd48 mov r2, r4                            |         r2 = r4;
    0x0006bd4a cmp r4, 0                             |         
                                                     |         if (r4 == 0) {
    0x0006bd4c beq 0x6bdf4                           |             goto label_12;
                                                     |         }
                                                     | label_2:
    0x0006bd4e strd r2, r7, [sp, 0x18]               |         __asm ("strd r2, r7, [sp, 0x18]");
    0x0006bd52 ldr r1, [pc, 0xc8]                    |         
    0x0006bd54 ldr r2, [pc, 0xc8]                    |         
    0x0006bd56 strd r0, r3, [sp, 0x10]               |         __asm ("strd r0, r3, [sp, 0x10]");
    0x0006bd5a movw r3, 0x2f7                        |         r3 = 0x2f7;
    0x0006bd5e add r1, pc                            |         
    0x0006bd60 strd r5, r8, [sp, 8]                  |         __asm ("strd r5, r8, [sp, 8]");
    0x0006bd64 add r2, pc                            |         r2 = 0xd7b88;
    0x0006bd66 movs r0, 4                            |         r0 = 4;
    0x0006bd68 strd r2, r1, [sp]                     |         __asm ("strd r2, r1, [sp]");
    0x0006bd6c movs r1, 0x43                         |         r1 = 0x43;
    0x0006bd6e ldr r2, [pc, 0xb4]                    |         
    0x0006bd70 movt r1, 0x4000                       |         r1 = 0x400d7b80;
    0x0006bd74 add r2, pc                            |         r2 = 0xd7b9e;
    0x0006bd76 adds r2, 7                            |         r2 += 7;
    0x0006bd78 bl 0x71448                            |         r0 = fcn_00071448 ();
    0x0006bd7c subs r5, r0, 0                        |         r5 = r0 - 0;
    0x0006bd7e it ge                                 |         
                                                     |         if (r5 < r0) {
    0x0006bd80 mvnge r5, 0x55                        |             r5 = ~0x55;
                                                     |         }
                                                     | label_4:
    0x0006bd84 mov r0, r4                            |         r0 = r4;
    0x0006bd86 blx 0x8dac                            |         fcn_00008dac ();
    0x0006bd8a mov r0, r6                            |         r0 = r6;
    0x0006bd8c blx 0x8dac                            |         fcn_00008dac ();
    0x0006bd90 ldr r0, [sp, 0x24]                    |         r0 = var_24h;
    0x0006bd92 blx 0x8dac                            |         fcn_00008dac ();
    0x0006bd94 invalid                               |         
    0x0006bd98 blx 0x8dac                            |         fcn_00008dac ();
    0x0006bd9c ldr r2, [pc, 0x88]                    |         
    0x0006bd9e ldr r3, [pc, 0x78]                    |         r3 = *(0x6be1a);
    0x0006bda0 add r2, pc                            |         r2 = 0xd7bcc;
    0x0006bda2 ldr r3, [r2, r3]                      |         r3 = *(0xd7bcc);
    0x0006bda4 ldr r2, [r3]                          |         r2 = *(0xd7bcc);
    0x0006bda6 ldr r3, [sp, 0x94]                    |         r3 = var_94h;
    0x0006bda8 eors r2, r3                           |         r2 ^= r3;
    0x0006bdaa mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0006bdae bne 0x6be10                           |             goto label_13;
                                                     |         }
    0x0006bdb0 mov r0, r5                            |         r0 = r5;
    0x0006bdb2 add sp, 0x98                          |         
    0x0006bdb4 pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_6:
    0x0006bdb8 ldr r0, [sp, 0x40]                    |         r0 = var_40h;
    0x0006bdba movs r4, 0                            |         r4 = 0;
    0x0006bdbc bl 0x7e034                            |         fcn_0007e034 (r0, r1, r2, r3, r4, r5);
    0x0006bdc0 mov r1, r8                            |         r1 = r8;
    0x0006bdc2 mov r6, r0                            |         r6 = r0;
    0x0006bdc4 mov r0, r5                            |         r0 = r5;
    0x0006bdc6 blx 0x9020                            |         r0 = fcn_00009020 ();
    0x0006bdca cmp r0, 0                             |         
    0x0006bdcc bne 0x6bd28                           |         
                                                     |     } while (r0 != 0);
                                                     | label_7:
    0x0006bdce ldr r0, [sp, 0x40]                    |     r0 = var_40h;
    0x0006bdd0 bl 0x7e034                            |     r0 = fcn_0007e034 (r0, r1, r2, r3, r4, r5);
    0x0006bdd4 mov r4, r0                            |     r4 = r0;
    0x0006bdd6 b 0x6bd28                             |     goto label_0;
                                                     | label_10:
    0x0006bdd8 movs r0, 0xd                          |     r0 = 0xd;
    0x0006bdda ldr.w r8, [pc, 0x50]                  |     
    0x0006bdde bl 0x70340                            |     fcn_00070340 (r0);
    0x0006bde2 ldr r3, [sp, 0x24]                    |     r3 = var_24h;
    0x0006bde4 add r8, pc                            |     r8 = 0xd7c16;
    0x0006bde6 cmp r3, 0                             |     
                                                     |     if (r3 != 0) {
    0x0006bde8 bne 0x6bd48                           |         goto label_1;
                                                     |     }
                                                     | label_11:
    0x0006bdea ldr r3, [pc, 0x44]                    |     
    0x0006bdec mov r2, r4                            |     r2 = r4;
    0x0006bdee add r3, pc                            |     r3 = 0xd7c24;
    0x0006bdf0 cmp r4, 0                             |     
                                                     |     if (r4 != 0) {
    0x0006bdf2 bne 0x6bd4e                           |         goto label_2;
                                                     |     }
                                                     | label_12:
    0x0006bdf4 ldr r2, [pc, 0x3c]                    |     
    0x0006bdf6 add r2, pc                            |     r2 = 0xd7c2e;
    0x0006bdf8 b 0x6bd4e                             |     goto label_2;
                                                     | label_9:
    0x0006bdfa ldr r5, [pc, 0x3c]                    |     
    0x0006bdfc add r5, pc                            |     r5 = 0xd7c3a;
    0x0006bdfe b 0x6bd36                             |     goto label_3;
                                                     | label_5:
    0x0006be00 mov r4, r3                            |     r4 = r3;
    0x0006be02 mvn r5, 0x42                          |     r5 = ~0x42;
    0x0006be04 lsls r2, r0, 0x15                     |     r2 = r0 << 0x15;
    0x0006be06 mov r6, r3                            |     r6 = r3;
    0x0006be08 b 0x6bd84                             |     goto label_4;
                                                     | label_8:
    0x0006be0a mvn r5, 0x42                          |     r5 = ~0x42;
    0x0006be0e b 0x6bd84                             |     goto label_4;
                                                     | label_13:
    0x0006be10 blx 0x927c                            |     fprintf_chk ()
    0x0006be14 ldm r5, {r1, r5, r6, r7}              |     r1 = *(r5);
                                                     |     r5 = *((r5 + 4));
                                                     |     r6 = *((r5 + 8));
                                                     |     r7 = *((r5 + 12));
    0x0006be16 movs r5, r0                           |     r5 = r0;
    0x0006be18 lsls r0, r0, 0x13                     |     r0 <<= 0x13;
    0x0006be1a movs r0, r0                           |     
    0x0006be1c strh r6, [r2, 2]                      |     *((r2 + 2)) = r6;
    0x0006be1e movs r3, r0                           |     r3 = r0;
    0x0006be20 strh r0, [r7, 0x1c]                   |     *((r7 + 0x1c)) = r0;
    0x0006be22 movs r3, r0                           |     r3 = r0;
    0x0006be24 strh r0, [r3]                         |     *(r3) = r0;
    0x0006be26 movs r3, r0                           |     r3 = r0;
    0x0006be28 ldm r5, {r2, r5}                      |     r2 = *(r5);
                                                     |     r5 = *((r5 + 4));
    0x0006be2a movs r5, r0                           |     r5 = r0;
    0x0006be2c ldr r4, [r0, 0x40]                    |     r4 = *((r0 + 0x40));
    0x0006be2e movs r1, r0                           |     r1 = r0;
    0x0006be30 ldr r2, [r7, 0x3c]                    |     r2 = *((r7 + 0x3c));
    0x0006be32 movs r1, r0                           |     r1 = r0;
    0x0006be34 ldr r2, [r6, 0x3c]                    |     r2 = *((r6 + 0x3c));
    0x0006be36 movs r1, r0                           |     r1 = r0;
    0x0006be38 ldr r4, [r5, 0x3c]                    |     r4 = *((r5 + 0x3c));
    0x0006be3a movs r1, r0                           |     r1 = r0;
                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6bffc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0006bffc ()                  | void fcn_0006bffc (int16_t arg1, int16_t arg2) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0006bffc blmi 0x6fe868                 |     __asm ("blmi aav.0x0005cac0");
    0x0006c000 push {r4, r5, r6, lr}         |     
    0x0006c002 sub sp, 8                     |     
    0x0006c004 add r2, pc                    |     r2 += pc;
    0x0006c006 mov r5, r1                    |     r5 = r1;
    0x0006c008 movs r6, 0                    |     r6 = 0;
    0x0006c00a mov r1, sp                    |     r1 = sp;
    0x0006c00c ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x0006c00e ldr r3, [r3]                  |     r3 = *(r3);
    0x0006c010 str r3, [sp, 4]               |     var_4h = r3;
    0x0006c012 mov.w r3, 0                   |     r3 = 0;
    0x0006c016 str r6, [sp]                  |     *(sp) = r6;
    0x0006c018 bl 0x6bff0                    |     r0 = fcn_0006bff0 (r0, r1);
    0x0006c01c subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 < r0) {
    0x0006c01e blt 0x6c032                   |         goto label_0;
                                             |     }
    0x0006c020 ldr r0, [sp]                  |     r0 = *(sp);
    0x0006c022 blx 0x9634                    |     r0 = fcn_00009634 ();
                                             |     if (r0 == 0) {
    0x0006c026 cbz r0, 0x6c052               |         goto label_1;
                                             |     }
    0x0006c028 blx 0x9200                    |     r0 = fcn_00009200 ();
                                             |     if (r0 == 0) {
    0x0006c02c cbz r0, 0x6c05c               |         goto label_2;
                                             |     }
    0x0006c02e mov r4, r6                    |     r4 = r6;
    0x0006c030 str r0, [r5]                  |     *(r5) = r0;
                                             |     do {
                                             | label_0:
    0x0006c032 ldr r0, [sp]                  |         r0 = *(sp);
    0x0006c034 blx 0x8dac                    |         fcn_00008dac ();
    0x0006c038 ldr r2, [pc, 0x30]            |         
    0x0006c03a ldr r3, [pc, 0x2c]            |         r3 = *(0x6c06a);
    0x0006c03c add r2, pc                    |         r2 = 0xd80ac;
    0x0006c03e ldr r3, [r2, r3]              |         r3 = *(0xd80ac);
    0x0006c040 ldr r2, [r3]                  |         r2 = *(0xd80ac);
    0x0006c042 ldr r3, [sp, 4]               |         r3 = var_4h;
    0x0006c044 eors r2, r3                   |         r2 ^= r3;
    0x0006c046 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x0006c04a bne 0x6c058                   |             goto label_3;
                                             |         }
    0x0006c04c mov r0, r4                    |         r0 = r4;
    0x0006c04e add sp, 8                     |         
    0x0006c050 pop {r4, r5, r6, pc}          |         
                                             | label_1:
    0x0006c052 mvn r4, 1                     |         r4 = ~1;
    0x0006c056 b 0x6c032                     |         
                                             |     } while (1);
                                             | label_3:
    0x0006c058 blx 0x927c                    |     fprintf_chk ()
                                             | label_2:
    0x0006c05c mvn r4, 0xb                   |     r4 = ~0xb;
    0x0006c060 b 0x6c032                     |     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/libexec/udevadm @ 0x6c0a4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0006c0a4 ()                  | void fcn_0006c0a4 (int16_t arg1, int16_t arg2) {
                                             |     int16_t var_8h_2;
                                             |     int16_t var_74h;
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     int16_t var_8h;
                                             |     int8_t var_1h;
                                             |     int16_t var_24h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0006c0a4 push {r4, r5, lr}             |     
    0x0006c0a6 sub sp, 0x2c                  |     
    0x0006c0a8 str r0, [sp, 4]               |     var_4h = r0;
    0x0006c0aa mov r5, r1                    |     r5 = r1;
    0x0006c0ac movs r3, 0x1a                 |     r3 = 0x1a;
    0x0006c0ae movs r2, 1                    |     r2 = 1;
    0x0006c0b0 ldr r4, [pc, 0x68]            |     
    0x0006c0b2 ldr r0, [pc, 0x6c]            |     
    0x0006c0b4 ldr r1, [pc, 0x6c]            |     r1 = *(0x6c124);
    0x0006c0b6 add r4, pc                    |     r4 = 0xd81d6;
    0x0006c0b8 add r0, pc                    |     r0 = 0xd81de;
    0x0006c0ba str r4, [sp]                  |     *(sp) = r4;
    0x0006c0bc ldr r1, [r0, r1]              |     
    0x0006c0be add r4, sp, 8                 |     r4 += var_8h;
    0x0006c0c0 mov r0, r4                    |     r0 = r4;
    0x0006c0c2 ldr r1, [r1]                  |     r1 = *(0xd81de);
    0x0006c0c4 str r1, [sp, 0x24]            |     var_24h = r1;
    0x0006c0c6 mov.w r1, 0                   |     r1 = 0;
    0x0006c0ca mov r1, r3                    |     r1 = r3;
    0x0006c0cc blx 0x9110                    |     fcn_00009110 ();
    0x0006c0d0 mov r1, r5                    |     r1 = r5;
    0x0006c0d2 mov r0, r4                    |     r0 = r4;
    0x0006c0d4 blx 0x8d20                    |     r0 = fcn_00008d20 ();
    0x0006c0d8 cmp r0, 0                     |     
    0x0006c0da it ge                         |     
                                             |     if (r0 < 0) {
    0x0006c0dc movge r0, 0                   |         r0 = 0;
                                             |     }
    0x0006c0de blt 0x6c0f8                   |     
                                             |     while (r0 != 2) {
                                             | label_0:
    0x0006c0e0 ldr r2, [pc, 0x44]            |         
    0x0006c0e2 ldr r3, [pc, 0x40]            |         r3 = *(0x6c126);
    0x0006c0e4 add r2, pc                    |         r2 = 0xd8210;
    0x0006c0e6 ldr r3, [r2, r3]              |         r3 = *(0xd8210);
    0x0006c0e8 ldr r2, [r3]                  |         r2 = *(0xd8210);
    0x0006c0ea ldr r3, [sp, 0x24]            |         r3 = var_24h;
    0x0006c0ec eors r2, r3                   |         r2 ^= r3;
    0x0006c0ee mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x0006c0f2 bne 0x6c118                   |             goto label_1;
                                             |         }
    0x0006c0f4 add sp, 0x2c                  |         
    0x0006c0f6 pop {r4, r5, pc}              |         
    0x0006c0f8 blx 0x9628                    |         r0 = fcn_00009628 ();
    0x0006c0fc ldr r0, [r0]                  |         r0 = *(r0);
    0x0006c0fe cmp r0, 2                     |         
    0x0006c100 it ne                         |         
                                             |         if (r0 != 2) {
    0x0006c102 rsbne r0, r0, 0               |             __asm ("rsbne r0, r0, 0");
                                             |         }
    0x0006c104 bne 0x6c0e0                   |         
                                             |     }
    0x0006c106 bl 0x7a398                    |     r0 = fcn_0007a398 ();
    0x0006c10a cmp r0, 0                     |     
    0x0006c10c ite eq                        |     
                                             |     if (r0 != 0) {
    0x0006c10e mvneq r0, 0x25                |         r0 = ~0x25;
                                             |     }
                                             |     if (r0 != 0) {
    0x0006c112 mvn r0, 1                     |         r0 = ~1;
                                             |     }
    0x0006c114 movs r1, r0                   |     r1 = r0;
    0x0006c116 b 0x6c0e0                     |     goto label_0;
                                             | label_1:
    0x0006c118 blx 0x927c                    |     fprintf_chk ()
    0x0006c11c ldrb r2, [r4, 1]              |     r2 = var_1h;
    0x0006c11e movs r3, r0                   |     r3 = r0;
    0x0006c120 ldm r2, {r2, r3}              |     r2 = *(r2);
                                             |     r3 = *((r2 + 4));
    0x0006c122 movs r5, r0                   |     r5 = r0;
    0x0006c124 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x0006c126 movs r0, r0                   |     
    0x0006c128 ldm r1!, {r5, r6, r7}         |     r5 = *(r1!);
                                             |     r6 = *((r1! + 4));
                                             |     r7 = *((r1! + 8));
    0x0006c12a movs r5, r0                   |     r5 = r0;
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6c12c */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.0006c12c ()                                      | void fcn_0006c12c (int16_t arg_a0h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_74h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0006c12c svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x0006c130 mov r5, r2                                        |     r5 = r2;
    0x0006c132 ldr r2, [pc, 0x244]                               |     
    0x0006c134 mov r6, r3                                        |     r6 = r3;
    0x0006c136 sub sp, 0x7c                                      |     
    0x0006c138 mov r8, r1                                        |     r8 = r1;
    0x0006c13a ldr r3, [pc, 0x240]                               |     r3 = *(0x6c37e);
    0x0006c13c add r1, sp, 8                                     |     r1 += var_8h;
    0x0006c13e add r2, pc                                        |     r2 = 0xd84bc;
    0x0006c140 ldr.w sb, [sp, 0xa0]                              |     sb = *(arg_a0h);
    0x0006c144 mov r7, r0                                        |     r7 = r0;
    0x0006c146 ldr r3, [r2, r3]                                  |     
    0x0006c148 ldr r3, [r3]                                      |     r3 = *(0xd84bc);
    0x0006c14a str r3, [sp, 0x74]                                |     var_74h = r3;
    0x0006c14c mov.w r3, 0                                       |     r3 = 0;
    0x0006c150 blx 0x9020                                        |     r0 = fcn_00009020 ();
    0x0006c154 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0006c156 blt 0x6c23a                                       |         goto label_9;
                                                                 |     }
    0x0006c158 adds r1, r6, 1                                    |     r1 = r6 + 1;
                                                                 |     if (r1 == r6) {
    0x0006c15a beq 0x6c1e6                                       |         goto label_14;
                                                                 |     }
    0x0006c15c ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x0006c15e cmp r3, r6                                        |     
                                                                 |     if (r3 == r6) {
    0x0006c160 beq 0x6c1e6                                       |         goto label_14;
                                                                 |     }
    0x0006c162 ldr.w fp, [sp, 0x18]                              |     fp = var_18h;
    0x0006c166 and r3, fp, 0xf000                                |     r3 = fp & 0xf000;
    0x0006c16a cmp.w r3, 0xa000                                  |     
                                                                 |     if (r3 == 0xa000) {
    0x0006c16e beq.w 0x6c296                                     |         goto label_15;
                                                                 |     }
    0x0006c172 adds r2, r5, 1                                    |     r2 = r5 + 1;
    0x0006c174 it ne                                             |     
                                                                 |     if (r2 == r5) {
    0x0006c176 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 |     if (r2 == r5) {
    0x0006c178 beq.w 0x6c2c8                                     |         goto label_16;
                                                                 |     }
                                                                 |     do {
                                                                 | label_4:
    0x0006c17c eor.w r2, r5, fp                                  |         r2 = r5 ^ fp;
    0x0006c180 ubfx r1, r2, 0, 0xc                               |         r1 = (r2 >> 0) & ((1 << 0xc) - 1);
    0x0006c184 cmp r1, 0                                         |         
    0x0006c186 ite eq                                            |         
                                                                 |         if (r1 != 0) {
    0x0006c188 moveq r4, r3                                      |             r4 = r3;
                                                                 |         }
                                                                 |         if (r1 == 0) {
    0x0006c18a movne r4, 1                                       |             r4 = 1;
                                                                 |         }
    0x0006c18c tst.w r5, 0xf000                                  |         
                                                                 |         if ((r5 & 0xf000) != 0) {
    0x0006c190 bne 0x6c25e                                       |             goto label_17;
                                                                 |         }
                                                                 | label_1:
    0x0006c192 ands.w sl, r4, r3                                 |         sl = r4 & r3;
                                                                 |         if (sl == r4) {
    0x0006c196 beq.w 0x6c2be                                     |             goto label_18;
                                                                 |         }
    0x0006c19a bic.w r3, fp, r5                                  |         r3 = BIT_MASK (fp, r5);
    0x0006c19e and.w fp, r5, fp                                  |         
    0x0006c1a2 ubfx r3, r3, 0, 0xc                               |         r3 = (r3 >> 0) & ((1 << 0xc) - 1);
                                                                 |         if (r3 != 0) {
    0x0006c1a6 cbz r3, 0x6c1ba                                   |             
    0x0006c1a8 ubfx fp, fp, 0, 0xc                               |             fp = (fp >> 0) & ((1 << 0xc) - 1);
    0x0006c1ac mov r0, r7                                        |             r0 = r7;
    0x0006c1ae mov r1, fp                                        |             r1 = fp;
    0x0006c1b0 bl 0x6c0a4                                        |             r0 = fcn_0006c0a4 (r0, r1);
    0x0006c1b4 cmp r0, 0                                         |             
                                                                 |             if (r0 < 0) {
    0x0006c1b6 blt.w 0x6c2e8                                     |                 goto label_19;
                                                                 |             }
                                                                 |         }
                                                                 | label_10:
    0x0006c1ba mov.w r1, 0x1000                                  |         r1 = 0x1000;
    0x0006c1be mov r3, sb                                        |         r3 = sb;
    0x0006c1c0 str r1, [sp]                                      |         *(sp) = r1;
    0x0006c1c2 mov r2, r6                                        |         r2 = r6;
    0x0006c1c4 ldr r1, [pc, 0x1b8]                               |         
    0x0006c1c6 mov r0, r7                                        |         r0 = r7;
    0x0006c1c8 add r1, pc                                        |         r1 = 0xd854c;
    0x0006c1ca blx 0x8d5c                                        |         r0 = fcn_00008d5c ();
    0x0006c1ce cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0006c1d0 blt 0x6c23a                                       |             goto label_9;
                                                                 |         }
                                                                 | label_7:
    0x0006c1d2 ubfx r5, r5, 0, 0xc                               |         r5 = (r5 >> 0) & ((1 << 0xc) - 1);
    0x0006c1d6 mov r0, r7                                        |         r0 = r7;
    0x0006c1d8 mov r1, r5                                        |         r1 = r5;
    0x0006c1da bl 0x6c0a4                                        |         r0 = fcn_0006c0a4 (r0, r1);
    0x0006c1de cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0006c1e0 blt 0x6c21a                                       |             goto label_20;
                                                                 |         }
                                                                 | label_0:
    0x0006c1e2 movs r4, 1                                        |         r4 = 1;
    0x0006c1e4 b 0x6c214                                         |         goto label_3;
                                                                 | label_14:
    0x0006c1e6 cmp.w sb, -1                                      |         
                                                                 |         if (sb == -1) {
    0x0006c1ea beq 0x6c27c                                       |             goto label_21;
                                                                 |         }
    0x0006c1ec ldr r2, [sp, 0x24]                                |         r2 = var_24h;
    0x0006c1ee ldr.w fp, [sp, 0x18]                              |         fp = var_18h;
    0x0006c1f2 subs.w r1, r2, sb                                 |         r1 = r2 - sb;
    0x0006c1f6 and r0, fp, 0xf000                                |         r0 = fp & 0xf000;
    0x0006c1fa it ne                                             |         
                                                                 |         if (r1 == r2) {
    0x0006c1fc movne r1, 1                                       |             r1 = 1;
                                                                 |         }
    0x0006c1fe cmp.w r0, 0xa000                                  |         
    0x0006c202 mov r3, r1                                        |         r3 = r1;
                                                                 |         if (r0 == 0xa000) {
    0x0006c204 beq 0x6c26a                                       |             goto label_22;
                                                                 |         }
    0x0006c206 adds r0, r5, 1                                    |         r0 = r5 + 1;
    0x0006c208 bne 0x6c17c                                       |         
                                                                 |     } while (r0 != r5);
    0x0006c20a cmp r2, sb                                        |     
                                                                 |     if (r2 != sb) {
    0x0006c20c bne 0x6c2c8                                       |         goto label_16;
                                                                 |     }
                                                                 | label_5:
    0x0006c20e mov.w sl, 0                                       |     sl = 0;
    0x0006c212 mov r4, sl                                        |     r4 = sl;
                                                                 | label_3:
    0x0006c214 orr.w r0, r4, sl                                  |     r0 = r4 | sl;
    0x0006c218 b 0x6c242                                         |     goto label_2;
                                                                 | label_20:
    0x0006c21a adds.w r3, r0, 0x26                               |     r3 = r0 + 0x26;
    0x0006c21e it ne                                             |     
                                                                 |     if (r3 == r0) {
    0x0006c220 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0006c222 cmp.w r8, 0                                       |     
    0x0006c226 it eq                                             |     
                                                                 |     if (r8 != 0) {
    0x0006c228 orreq r3, r3, 1                                   |         r3 |= 1;
                                                                 |     }
    0x0006c22a lsls r1, r0, 0xc                                  |     r1 = r0 << 0xc;
                                                                 |     if (r3 != 0) {
    0x0006c22c cbnz r3, 0x6c242                                  |         goto label_2;
                                                                 |     }
    0x0006c22e mov r1, r5                                        |     r1 = r5;
    0x0006c230 mov r0, r8                                        |     r0 = r8;
    0x0006c232 blx 0x8d20                                        |     r0 = fcn_00008d20 ();
    0x0006c236 cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x0006c238 bge 0x6c1e2                                       |         goto label_0;
                                                                 |     }
                                                                 | label_9:
    0x0006c23a blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x0006c23e ldr r0, [r0]                                      |     r0 = *(r0);
    0x0006c240 rsbs r0, r0, 0                                    |     r0 -= ;
                                                                 | label_2:
    0x0006c242 ldr r2, [pc, 0x140]                               |     
    0x0006c244 ldr r3, [pc, 0x134]                               |     r3 = *(0x6c37c);
    0x0006c246 add r2, pc                                        |     r2 = 0xd85d0;
    0x0006c248 ldr r3, [r2, r3]                                  |     r3 = *(0xd85d0);
    0x0006c24a ldr r2, [r3]                                      |     r2 = *(0xd85d0);
    0x0006c24c ldr r3, [sp, 0x74]                                |     r3 = var_74h;
    0x0006c24e eors r2, r3                                       |     r2 ^= r3;
    0x0006c250 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x0006c254 bne.w 0x6c370                                     |         goto label_23;
                                                                 |     }
    0x0006c258 add sp, 0x7c                                      |     
    0x0006c25a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_17:
    0x0006c25e tst.w r2, 0xf000                                  |     
                                                                 |     if ((r2 & 0xf000) == 0) {
    0x0006c262 beq 0x6c192                                       |         goto label_1;
                                                                 |     }
                                                                 | label_6:
    0x0006c264 mvn r0, 0x15                                      |     r0 = ~0x15;
    0x0006c268 b 0x6c242                                         |     goto label_2;
                                                                 | label_22:
    0x0006c26a adds r3, r5, 1                                    |     r3 = r5 + 1;
                                                                 |     if (r3 == r5) {
    0x0006c26c beq 0x6c340                                       |         goto label_24;
                                                                 |     }
    0x0006c26e ands sl, r5, 0xf000                               |     sl = r5 & 0xf000;
                                                                 |     if (sl != r5) {
    0x0006c272 bne 0x6c374                                       |         goto label_25;
                                                                 |     }
    0x0006c274 cmp r2, sb                                        |     
                                                                 |     if (r2 != sb) {
    0x0006c276 bne 0x6c366                                       |         goto label_26;
                                                                 |     }
                                                                 | label_11:
    0x0006c278 movs r4, 0                                        |     r4 = 0;
    0x0006c27a b 0x6c214                                         |     goto label_3;
                                                                 | label_21:
    0x0006c27c ldr.w fp, [sp, 0x18]                              |     fp = var_18h;
    0x0006c280 and r3, fp, 0xf000                                |     r3 = fp & 0xf000;
    0x0006c284 cmp.w r3, 0xa000                                  |     
                                                                 |     if (r3 == 0xa000) {
    0x0006c288 beq 0x6c32e                                       |         goto label_27;
                                                                 |     }
    0x0006c28a adds r3, r5, 1                                    |     r3 = r5 + 1;
    0x0006c28c it ne                                             |     
                                                                 |     if (r3 != r5) {
    0x0006c28e movne r3, 0                                       |         r3 = 0;
                                                                 |         goto label_28;
                                                                 |     }
                                                                 |     if (r3 != r5) {
                                                                 | label_28:
    0x0006c290 bne.w 0x6c17c                                     |         goto label_4;
                                                                 |     }
    0x0006c294 b 0x6c20e                                         |     goto label_5;
                                                                 | label_15:
    0x0006c296 adds r1, r5, 1                                    |     r1 = r5 + 1;
                                                                 |     if (r1 == r5) {
    0x0006c298 beq 0x6c346                                       |         goto label_29;
                                                                 |     }
    0x0006c29a tst.w r5, 0xf000                                  |     
    0x0006c29e it ne                                             |     
                                                                 |     if ((r5 & 0xf000) == 0) {
    0x0006c2a0 movne sl, 1                                       |         sl = 1;
                                                                 |     }
                                                                 |     if ((r5 & 0xf000) == 0) {
    0x0006c2a4 beq 0x6c366                                       |         goto label_26;
                                                                 |     }
                                                                 | label_12:
    0x0006c2a6 eor.w r0, r5, fp                                  |     r0 = r5 ^ fp;
    0x0006c2aa ands r0, r0, 0xf000                               |     r0 &= 0xf000;
                                                                 |     if (r0 != r0) {
    0x0006c2ae bne 0x6c264                                       |         goto label_6;
                                                                 |     }
    0x0006c2b0 mov r4, r0                                        |     r4 = r0;
    0x0006c2b2 cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x0006c2b6 bne 0x6c30e                                       |         goto label_30;
                                                                 |     }
                                                                 | label_8:
    0x0006c2b8 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0006c2ba beq 0x6c214                                       |         goto label_3;
                                                                 |     }
    0x0006c2bc b 0x6c1d2                                         |     goto label_7;
                                                                 | label_18:
    0x0006c2be mov sl, r3                                        |     sl = r3;
    0x0006c2c0 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x0006c2c4 beq 0x6c2b8                                       |         goto label_8;
                                                                 |     }
    0x0006c2c6 b 0x6c30e                                         |     goto label_30;
                                                                 | label_16:
    0x0006c2c8 mov.w r1, 0x1000                                  |     r1 = 0x1000;
    0x0006c2cc mov r3, sb                                        |     r3 = sb;
    0x0006c2ce str r1, [sp]                                      |     *(sp) = r1;
    0x0006c2d0 mov r2, r6                                        |     r2 = r6;
    0x0006c2d2 ldr r1, [pc, 0xb4]                                |     
    0x0006c2d4 mov r0, r7                                        |     r0 = r7;
    0x0006c2d6 add r1, pc                                        |     r1 = 0xd8664;
    0x0006c2d8 blx 0x8d5c                                        |     r0 = fcn_00008d5c ();
    0x0006c2dc cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0006c2de blt 0x6c23a                                       |         goto label_9;
                                                                 |     }
    0x0006c2e0 mov r5, fp                                        |     r5 = fp;
    0x0006c2e2 mov.w sl, 1                                       |     sl = 1;
    0x0006c2e6 b 0x6c1d2                                         |     goto label_7;
                                                                 | label_19:
    0x0006c2e8 adds.w r3, r0, 0x26                               |     r3 = r0 + 0x26;
    0x0006c2ec it ne                                             |     
                                                                 |     if (r3 == r0) {
    0x0006c2ee movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0006c2f0 cmp.w r8, 0                                       |     
    0x0006c2f4 it eq                                             |     
                                                                 |     if (r8 != 0) {
    0x0006c2f6 orreq r3, r3, 1                                   |         r3 |= 1;
                                                                 |     }
    0x0006c2fa cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0006c2fc bne 0x6c242                                       |         goto label_2;
                                                                 |     }
    0x0006c2fe mov r1, fp                                        |     r1 = fp;
    0x0006c300 mov r0, r8                                        |     r0 = r8;
    0x0006c302 blx 0x8d20                                        |     r0 = fcn_00008d20 ();
    0x0006c306 cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x0006c308 bge.w 0x6c1ba                                     |         goto label_10;
                                                                 |     }
    0x0006c30c b 0x6c23a                                         |     goto label_9;
                                                                 | label_30:
    0x0006c30e mov.w r1, 0x1000                                  |     r1 = 0x1000;
    0x0006c312 mov r3, sb                                        |     r3 = sb;
    0x0006c314 str r1, [sp]                                      |     *(sp) = r1;
    0x0006c316 mov r2, r6                                        |     r2 = r6;
    0x0006c318 ldr r1, [pc, 0x70]                                |     
    0x0006c31a mov r0, r7                                        |     r0 = r7;
    0x0006c31c add r1, pc                                        |     r1 = 0xd86ac;
    0x0006c31e blx 0x8d5c                                        |     r0 = fcn_00008d5c ();
    0x0006c322 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0006c324 blt 0x6c23a                                       |         goto label_9;
                                                                 |     }
    0x0006c326 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0006c328 beq.w 0x6c214                                     |         goto label_3;
                                                                 |     }
    0x0006c32c b 0x6c1d2                                         |     goto label_7;
                                                                 | label_27:
    0x0006c32e adds r2, r5, 1                                    |     r2 = r5 + 1;
                                                                 |     if (r2 == r5) {
    0x0006c330 beq.w 0x6c20e                                     |         goto label_5;
                                                                 |     }
    0x0006c334 ands sl, r5, 0xf000                               |     sl = r5 & 0xf000;
                                                                 |     if (sl == r5) {
    0x0006c338 beq 0x6c278                                       |         goto label_11;
                                                                 |     }
    0x0006c33a mov.w sl, 0                                       |     sl = 0;
    0x0006c33e b 0x6c2a6                                         |     goto label_12;
                                                                 | label_24:
    0x0006c340 cmp r2, sb                                        |     
                                                                 |     if (r2 == sb) {
    0x0006c342 beq.w 0x6c20e                                     |         goto label_5;
                                                                 |     }
    0x0006c344 add r7, sp, 0x190                                 |     r7 = sp + 0x190;
                                                                 | label_29:
    0x0006c346 ldr r1, [pc, 0x48]                                |     
    0x0006c348 mov.w r4, 0x1000                                  |     r4 = 0x1000;
    0x0006c34c add r1, pc                                        |     r1 = 0xd86e2;
                                                                 | label_13:
    0x0006c34e mov r3, sb                                        |     r3 = sb;
    0x0006c350 mov r2, r6                                        |     r2 = r6;
    0x0006c352 mov r0, r7                                        |     r0 = r7;
    0x0006c354 str r4, [sp]                                      |     *(sp) = r4;
    0x0006c356 blx 0x8d5c                                        |     r0 = fcn_00008d5c ();
    0x0006c35a cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0006c35c blt.w 0x6c23a                                     |         goto label_9;
                                                                 |     }
    0x0006c360 mov.w sl, 1                                       |     sl = 1;
    0x0006c364 b 0x6c278                                         |     goto label_11;
                                                                 | label_26:
    0x0006c366 ldr r1, [pc, 0x2c]                                |     
    0x0006c368 mov.w r4, 0x1000                                  |     r4 = 0x1000;
    0x0006c36c add r1, pc                                        |     r1 = 0xd8706;
    0x0006c36e b 0x6c34e                                         |     goto label_13;
                                                                 | label_23:
    0x0006c370 blx 0x927c                                        |     fprintf_chk ()
                                                                 | label_25:
    0x0006c374 mov sl, r1                                        |     sl = r1;
    0x0006c376 b 0x6c2a6                                         |     goto label_12;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6c400 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0006c400 ()                              | void fcn_0006c400 (int16_t arg1, int16_t arg2) {
                                                         |     int16_t var_34h;
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     int16_t var_8h;
                                                         |     int8_t var_14h;
                                                         |     int16_t var_24h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0006c400 push {r4, r5, lr}                         |     
    0x0006c402 sub sp, 0x2c                              |     
    0x0006c404 ldr r4, [pc, 0x78]                        |     
    0x0006c406 movs r3, 0x1a                             |     r3 = 0x1a;
    0x0006c408 mov r5, r1                                |     r5 = r1;
    0x0006c40a movs r2, 1                                |     r2 = 1;
    0x0006c40c str r0, [sp, 4]                           |     var_4h = r0;
    0x0006c40e mov r1, r3                                |     r1 = r3;
    0x0006c410 add r4, pc                                |     r4 = 0xd8894;
    0x0006c412 ldr r0, [pc, 0x70]                        |     r0 = *(0x6c486);
    0x0006c414 str r4, [sp]                              |     *(sp) = r4;
    0x0006c416 ldr r4, [pc, 0x70]                        |     
    0x0006c418 add r4, pc                                |     r4 = 0xd88a6;
    0x0006c41a ldr r0, [r4, r0]                          |     
    0x0006c41c add r4, sp, 8                             |     r4 += var_8h;
    0x0006c41e ldr r0, [r0]                              |     r0 = *(0xd88a6);
    0x0006c420 str r0, [sp, 0x24]                        |     var_24h = r0;
    0x0006c422 mov.w r0, 0                               |     r0 = 0;
    0x0006c426 mov r0, r4                                |     r0 = r4;
    0x0006c428 blx 0x9110                                |     fcn_00009110 ();
    0x0006c42c movs r3, 0                                |     r3 = 0;
    0x0006c42e mov r2, r5                                |     r2 = r5;
    0x0006c430 mov r1, r4                                |     r1 = r4;
    0x0006c432 mvn r0, 0x63                              |     r0 = ~0x63;
    0x0006c436 blx 0x90f8                                |     r0 = fcn_000090f8 ();
    0x0006c43a cmp r0, 0                                 |     
    0x0006c43c it ge                                     |     
                                                         |     if (r0 < 0) {
    0x0006c43e movge r0, 0                               |         r0 = 0;
                                                         |     }
    0x0006c440 blt 0x6c45a                               |     
                                                         |     while (r0 != 2) {
                                                         | label_0:
    0x0006c442 ldr r2, [pc, 0x48]                        |         
    0x0006c444 ldr r3, [pc, 0x3c]                        |         r3 = *(0x6c484);
    0x0006c446 add r2, pc                                |         r2 = 0xd88d8;
    0x0006c448 ldr r3, [r2, r3]                          |         r3 = *(0xd88d8);
    0x0006c44a ldr r2, [r3]                              |         r2 = *(0xd88d8);
    0x0006c44c ldr r3, [sp, 0x24]                        |         r3 = var_24h;
    0x0006c44e eors r2, r3                               |         r2 ^= r3;
    0x0006c450 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0006c454 bne 0x6c47a                               |             goto label_1;
                                                         |         }
    0x0006c456 add sp, 0x2c                              |         
    0x0006c458 pop {r4, r5, pc}                          |         
    0x0006c45a blx 0x9628                                |         r0 = fcn_00009628 ();
    0x0006c45e ldr r0, [r0]                              |         r0 = *(r0);
    0x0006c460 cmp r0, 2                                 |         
    0x0006c462 it ne                                     |         
                                                         |         if (r0 != 2) {
    0x0006c464 rsbne r0, r0, 0                           |             __asm ("rsbne r0, r0, 0");
                                                         |         }
    0x0006c466 bne 0x6c442                               |         
                                                         |     }
    0x0006c468 bl 0x7a398                                |     r0 = fcn_0007a398 ();
    0x0006c46c cmp r0, 0                                 |     
    0x0006c46e ite eq                                    |     
                                                         |     if (r0 != 0) {
    0x0006c470 mvneq r0, 0x25                            |         r0 = ~0x25;
                                                         |     }
                                                         |     if (r0 != 0) {
    0x0006c474 mvn r0, 1                                 |         r0 = ~1;
                                                         |     }
    0x0006c478 b 0x6c442                                 |     goto label_0;
                                                         | label_1:
    0x0006c47a blx 0x927c                                |     fprintf_chk ()
    0x0006c47e nop                                       |     
    0x0006c480 strb r0, [r1, 0x14]                       |     var_14h = r0;
    0x0006c482 movs r3, r0                               |     r3 = r0;
    0x0006c484 lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x0006c486 movs r0, r0                               |     
    0x0006c488 stm r6!, {r2, r3, r5, r7}                 |     *(r6!) = r2;
                                                         |     *((r6! + 4)) = r3;
                                                         |     *((r6! + 8)) = r5;
                                                         |     *((r6! + 12)) = r7;
    0x0006c48a movs r5, r0                               |     r5 = r0;
    0x0006c48c stm r6!, {r1, r2, r3, r4, r5, r6}         |     *(r6!) = r1;
                                                         |     *((r6! + 4)) = r2;
                                                         |     *((r6! + 8)) = r3;
                                                         |     *((r6! + 12)) = r4;
                                                         |     *((r6! + 16)) = r5;
                                                         |     *((r6! + 20)) = r6;
    0x0006c48e movs r5, r0                               |     r5 = r0;
                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6c5b4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0006c5b4 ()                                  | void fcn_0006c5b4 (int16_t arg1, int16_t arg2) {
                                                             |     int16_t var_6ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0006c5b4 stmdbmi r1!, {r0, r1, r3, sb, sl, lr}         |     __asm ("stmdbmi r1!, {r0, r1, r3, sb, sl, lr}");
    0x0006c5b8 ldr r2, [pc, 0x84]                            |     
    0x0006c5ba push {r4, r5, lr}                             |     
    0x0006c5bc sub sp, 0x74                                  |     
    0x0006c5be add r1, pc                                    |     r1 += pc;
    0x0006c5c0 ldr r2, [r1, r2]                              |     r2 = *((r1 + r2));
    0x0006c5c2 ldr r2, [r2]                                  |     r2 = *(0x6c640);
    0x0006c5c4 str r2, [sp, 0x6c]                            |     var_6ch = r2;
    0x0006c5c6 mov.w r2, 0                                   |     r2 = 0;
                                                             |     if (r0 == 0) {
    0x0006c5ca cbz r0, 0x6c60a                               |         goto label_0;
                                                             |     }
    0x0006c5cc cmp r3, 0                                     |     
                                                             |     if (r3 < 0) {
    0x0006c5ce blt 0x6c620                                   |         goto label_1;
                                                             |     }
    0x0006c5d0 mov r5, sp                                    |     r5 = sp;
    0x0006c5d2 mov r4, r0                                    |     r4 = r0;
    0x0006c5d4 mov r1, r5                                    |     r1 = r5;
    0x0006c5d6 mov r0, r3                                    |     r0 = r3;
    0x0006c5d8 blx 0x9020                                    |     r0 = fcn_00009020 ();
    0x0006c5dc cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x0006c5de blt 0x6c600                                   |         goto label_2;
                                                             |     }
    0x0006c5e0 mov r1, r5                                    |     r1 = r5;
    0x0006c5e2 mov r0, r4                                    |     r0 = r4;
    0x0006c5e4 bl 0x6c490                                    |     fcn_0006c490 (r0, r1);
                                                             |     do {
    0x0006c5e8 ldr r2, [pc, 0x58]                            |         
    0x0006c5ea ldr r3, [pc, 0x54]                            |         r3 = *(0x6c642);
    0x0006c5ec add r2, pc                                    |         r2 = 0xd8c34;
    0x0006c5ee ldr r3, [r2, r3]                              |         r3 = *(0xd8c34);
    0x0006c5f0 ldr r2, [r3]                                  |         r2 = *(0xd8c34);
    0x0006c5f2 ldr r3, [sp, 0x6c]                            |         r3 = var_6ch;
    0x0006c5f4 eors r2, r3                                   |         r2 ^= r3;
    0x0006c5f6 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0006c5fa bne 0x6c636                                   |             goto label_3;
                                                             |         }
    0x0006c5fc add sp, 0x74                                  |         
    0x0006c5fe pop {r4, r5, pc}                              |         
                                                             | label_2:
    0x0006c600 blx 0x9628                                    |         r0 = fcn_00009628 ();
    0x0006c604 ldr r0, [r0]                                  |         r0 = *(r0);
    0x0006c606 rsbs r0, r0, 0                                |         r0 -= ;
    0x0006c608 b 0x6c5e8                                     |         
                                                             |     } while (1);
                                                             | label_0:
    0x0006c60a ldr r1, [pc, 0x3c]                            |     
    0x0006c60c movw r2, 0x175                                |     r2 = 0x175;
    0x0006c610 ldr r3, [pc, 0x38]                            |     
    0x0006c612 ldr r0, [pc, 0x3c]                            |     
    0x0006c614 add r1, pc                                    |     r1 = 0xd8c62;
    0x0006c616 add r3, pc                                    |     r3 = 0xd8c66;
    0x0006c618 adds r1, 7                                    |     r1 += 7;
    0x0006c61a add r0, pc                                    |     r0 = 0xd8c70;
    0x0006c61c bl 0x71518                                    |     fcn_00071518 (r0, r1, r2, r3);
                                                             | label_1:
    0x0006c620 ldr r1, [pc, 0x30]                            |     
    0x0006c622 mov.w r2, 0x176                               |     r2 = 0x176;
    0x0006c626 ldr r3, [pc, 0x30]                            |     
    0x0006c628 ldr r0, [pc, 0x30]                            |     
    0x0006c62a add r1, pc                                    |     r1 = 0xd8c82;
    0x0006c62c add r3, pc                                    |     r3 = 0xd8c8a;
    0x0006c62e adds r1, 7                                    |     r1 += 7;
    0x0006c630 add r0, pc                                    |     r0 = 0xd8c90;
    0x0006c632 bl 0x71518                                    |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                             | label_3:
    0x0006c636 blx 0x927c                                    |     fprintf_chk ()
    0x0006c63a nop                                           |     
    0x0006c63c stm r5!, {r1, r2}                             |     *(r5!) = r1;
                                                             |     *((r5! + 4)) = r2;
    0x0006c63e movs r5, r0                                   |     r5 = r0;
    0x0006c640 lsls r0, r0, 0x13                             |     r0 <<= 0x13;
    0x0006c642 movs r0, r0                                   |     
    0x0006c644 stm r4!, {r3, r4, r6, r7}                     |     *(r4!) = r3;
                                                             |     *((r4! + 4)) = r4;
                                                             |     *((r4! + 8)) = r6;
                                                             |     *((r4! + 12)) = r7;
    0x0006c646 movs r5, r0                                   |     r5 = r0;
    0x0006c648 strb r0, [r7, 0x1d]                           |     *((r7 + 0x1d)) = r0;
    0x0006c64a movs r3, r0                                   |     r3 = r0;
    0x0006c64c ldrb r6, [r1, 0xa]                            |     r6 = *((r1 + 0xa));
    0x0006c64e movs r3, r0                                   |     r3 = r0;
    0x0006c650 asrs r6, r0, 4                                |     r6 = r0 >> 4;
    0x0006c652 movs r3, r0                                   |     r3 = r0;
    0x0006c654 strb r2, [r4, 0x1d]                           |     *((r4 + 0x1d)) = r2;
    0x0006c656 movs r3, r0                                   |     r3 = r0;
    0x0006c658 ldrb r0, [r7, 9]                              |     r0 = *((r7 + 9));
    0x0006c65a movs r3, r0                                   |     r3 = r0;
    0x0006c65c adds r4, r7, r7                               |     r4 = r7 + r7;
    0x0006c65e movs r3, r0                                   |     r3 = r0;
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6c660 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0006c660 ()                              | void fcn_0006c660 (int16_t arg_58h, int16_t arg_60h, uint32_t arg1, uint32_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_0h_2;
                                                         |     int32_t var_0h_3;
                                                         |     int16_t var_8h;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_18h;
                                                         |     int16_t var_34h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x0006c660 mvnsmi lr, 0xb4000                        |     __asm ("mvnsmi lr, aav.0x000000ff");
    0x0006c664 mov r8, r2                                |     r8 = r2;
    0x0006c666 ldr r2, [pc, 0x124]                       |     
    0x0006c668 mov r7, r3                                |     r7 = r3;
    0x0006c66a sub sp, 0x3c                              |     
    0x0006c66c ldr r3, [pc, 0x120]                       |     r3 = *(0x6c790);
    0x0006c66e add r2, pc                                |     r2 = 0xd8e00;
    0x0006c670 ldr r3, [r2, r3]                          |     
    0x0006c672 ldr r3, [r3]                              |     r3 = *(0xd8e00);
    0x0006c674 str r3, [sp, 0x34]                        |     var_34h = r3;
    0x0006c676 mov.w r3, 0                               |     r3 = 0;
    0x0006c67a cmp r0, 0                                 |     
                                                         |     if (arg_58h == ) {
    0x0006c67c beq 0x6c770                               |         goto label_1;
                                                         |     }
    0x0006c67e mov r6, r0                                |     r6 = r0;
    0x0006c680 cmp r1, 0                                 |     
    0x0006c682 bne 0x6c742                               |     
                                                         |     while (1) {
    0x0006c684 mov.w r1, 0x288000                        |         r1 = 0x288000;
    0x0006c688 mov r0, r6                                |         r0 = r6;
    0x0006c68a blx 0x908c                                |         r0 = fcn_0000908c ();
    0x0006c68e subs r4, r0, 0                            |         r4 = r0 - 0;
                                                         |         if (r4 < r0) {
    0x0006c690 bge 0x6c6c2                               |             
    0x0006c692 blx 0x9628                                |             r0 = fcn_00009628 ();
    0x0006c696 ldr r5, [r0]                              |             r5 = *(r0);
    0x0006c698 mov sb, r0                                |             sb = r0;
    0x0006c69a cmp r5, 2                                 |             
                                                         |             if (r5 != 2) {
    0x0006c69c beq 0x6c6a2                               |                 
    0x0006c69e rsbs r5, r5, 0                            |                 r5 -= ;
    0x0006c6a0 b 0x6c720                                 |                 goto label_0;
                                                         |             }
    0x0006c6a2 ldr r3, [sp, 0x60]                        |             r3 = *(arg_60h);
    0x0006c6a4 movs r1, 0xc1                             |             r1 = 0xc1;
    0x0006c6a6 mov r0, r6                                |             r0 = r6;
    0x0006c6a8 movt r1, 8                                |             r1 = (r1 & 0xFFFF) | 0x80000;
    0x0006c6ac subs r3, 1                                |             r3--;
    0x0006c6ae adds r3, 3                                |             r3 += 3;
    0x0006c6b0 ldr r3, [sp, 0x60]                        |             r3 = *(arg_60h);
    0x0006c6b2 ite hi                                    |             
                                                         |             if (r3 <= 3) {
    0x0006c6b4 movhi r2, 0x1a4                           |                 r2 = 0x1a4;
                                                         |             }
                                                         |             if (r3 <= 3) {
    0x0006c6b8 mov r2, r3                                |                 r2 = r3;
                                                         |             }
    0x0006c6ba blx 0x908c                                |             r0 = fcn_0000908c ();
    0x0006c6be subs r4, r0, 0                            |             r4 = r0 - 0;
                                                         |             if (r4 < r0) {
    0x0006c6c0 blt 0x6c768                               |                 goto label_2;
                                                         |             }
                                                         |         }
    0x0006c6c2 ldr r2, [pc, 0xd0]                        |         
    0x0006c6c4 movs r3, 0x1a                             |         r3 = 0x1a;
    0x0006c6c6 add.w sb, sp, 0x18                        |         sb += var_18h;
    0x0006c6ca mov r1, r3                                |         r1 = r3;
    0x0006c6cc mov r0, sb                                |         r0 = sb;
    0x0006c6ce add r2, pc                                |         r2 = 0xd8e68;
    0x0006c6d0 strd r2, r4, [sp]                         |         __asm ("strd r2, r4, [sp]");
    0x0006c6d4 movs r2, 1                                |         r2 = 1;
    0x0006c6d6 blx 0x9110                                |         fcn_00009110 ();
    0x0006c6da ldrd r3, r2, [sp, 0x58]                   |         __asm ("ldrd r3, r2, [arg_58h]");
    0x0006c6de movs r1, 0                                |         r1 = 0;
    0x0006c6e0 mov r0, r4                                |         r0 = r4;
    0x0006c6e2 str r2, [sp]                              |         *(sp) = r2;
    0x0006c6e4 ldr r2, [sp, 0x60]                        |         r2 = *(arg_60h);
    0x0006c6e6 bl 0x6c12c                                |         fcn_0006c12c (r0, r1, r2, r3, r4);
    0x0006c6ea cmp.w r7, -1                              |         
    0x0006c6ee it eq                                     |         
                                                         |         if (r7 == -1) {
    0x0006c6f0 cmpeq r8, -1                              |             __asm ("cmpeq r8, -1");
                                                         |         }
    0x0006c6f4 mov r5, r0                                |         r5 = r0;
                                                         |         if (r7 == -1) {
    0x0006c6f6 beq 0x6c74c                               |             goto label_3;
                                                         |         }
    0x0006c6f8 add r6, sp, 8                             |         r6 += var_8h;
    0x0006c6fa mov r2, r8                                |         r2 = r8;
    0x0006c6fc mov r3, r7                                |         r3 = r7;
    0x0006c6fe mov r0, r6                                |         r0 = r6;
    0x0006c700 bl 0x7c6a8                                |         r0 = fcn_0007c6a8 (r0, r1, r2, r3, r4);
    0x0006c704 ldm.w r6, {r0, r1}                        |         r0 = *(r6);
                                                         |         r1 = *((r6 + 4));
    0x0006c708 mov r2, r6                                |         r2 = r6;
    0x0006c70a add r6, sp, 0x10                          |         r6 += var_10h;
    0x0006c70c movs r3, 0                                |         r3 = 0;
    0x0006c70e stm.w r6, {r0, r1}                        |         *(r6) = r0;
                                                         |         *((r6 + 4)) = r1;
    0x0006c712 mov r1, sb                                |         r1 = sb;
    0x0006c714 mvn r0, 0x63                              |         r0 = ~0x63;
    0x0006c718 blx 0x90f8                                |         fcn_000090f8 ();
    0x0006c71c bics r0, r5                               |         __asm ("bics r0, r5");
                                                         |         if (r3 < 0) {
    0x0006c71e bmi 0x6c75e                               |             goto label_4;
                                                         |         }
                                                         | label_0:
    0x0006c720 mov r0, r4                                |         r0 = r4;
    0x0006c722 bl 0x69a04                                |         fcn_00069a04 (r0, r1, r2, r3);
    0x0006c726 ldr r2, [pc, 0x70]                        |         
    0x0006c728 ldr r3, [pc, 0x64]                        |         r3 = *(0x6c790);
    0x0006c72a add r2, pc                                |         r2 = 0xd8ec8;
    0x0006c72c ldr r3, [r2, r3]                          |         r3 = *(0xd8ec8);
    0x0006c72e ldr r2, [r3]                              |         r2 = *(0xd8ec8);
    0x0006c730 ldr r3, [sp, 0x34]                        |         r3 = var_34h;
    0x0006c732 eors r2, r3                               |         r2 ^= r3;
    0x0006c734 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0006c738 bne 0x6c786                               |             goto label_5;
                                                         |         }
    0x0006c73a mov r0, r5                                |         r0 = r5;
    0x0006c73c add sp, 0x3c                              |         
    0x0006c73e pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
    0x0006c742 movw r1, 0x1ed                            |         r1 = 0x1ed;
    0x0006c746 bl 0x72cb0                                |         fcn_00072cb0 (r0, r1);
    0x0006c74a b 0x6c684                                 |         
                                                         |     }
                                                         | label_3:
    0x0006c74c movs r3, 0                                |     r3 = 0;
    0x0006c74e mov r1, sb                                |     r1 = sb;
    0x0006c750 mov r2, r3                                |     r2 = r3;
    0x0006c752 mvn r0, 0x63                              |     r0 = ~0x63;
    0x0006c754 lsls r3, r4, 1                            |     r3 = r4 << 1;
    0x0006c756 blx 0x90f8                                |     fcn_000090f8 ();
    0x0006c75a bics r0, r5                               |     __asm ("bics r0, r5");
                                                         |     if (r3 >= r4) {
    0x0006c75c bpl 0x6c720                               |         goto label_0;
                                                         |     }
                                                         | label_4:
    0x0006c75e blx 0x9628                                |     r0 = fcn_00009628 ();
    0x0006c762 ldr r5, [r0]                              |     r5 = *(r0);
    0x0006c764 rsbs r5, r5, 0                            |     r5 -= ;
    0x0006c766 b 0x6c720                                 |     goto label_0;
                                                         | label_2:
    0x0006c768 ldr.w r5, [sb]                            |     r5 = *(sb);
    0x0006c76c rsbs r5, r5, 0                            |     r5 -= ;
    0x0006c76e b 0x6c720                                 |     goto label_0;
                                                         | label_1:
    0x0006c770 ldr r1, [pc, 0x28]                        |     
    0x0006c772 movw r2, 0x183                            |     r2 = 0x183;
    0x0006c776 ldr r3, [pc, 0x28]                        |     
    0x0006c778 ldr r0, [pc, 0x28]                        |     
    0x0006c77a add r1, pc                                |     r1 = 0xd8f1a;
    0x0006c77c add r3, pc                                |     r3 = 0xd8f22;
    0x0006c77e adds r1, 7                                |     r1 += 7;
    0x0006c780 add r0, pc                                |     r0 = 0xd8f28;
    0x0006c782 bl 0x71518                                |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                         | label_5:
    0x0006c786 blx 0x927c                                |     fprintf_chk ()
    0x0006c78a nop                                       |     
    0x0006c78c stm r4!, {r1, r2, r4, r6}                 |     *(r4!) = r1;
                                                         |     *((r4! + 4)) = r2;
                                                         |     *((r4! + 8)) = r4;
                                                         |     *((r4! + 12)) = r6;
    0x0006c78e movs r5, r0                               |     r5 = r0;
    0x0006c790 lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x0006c792 movs r0, r0                               |     
    0x0006c794 strb r2, [r1, 9]                          |     *((r1 + 9)) = r2;
    0x0006c796 movs r3, r0                               |     r3 = r0;
    0x0006c798 stm r3!, {r1, r3, r4, r7}                 |     *(r3!) = r1;
                                                         |     *((r3! + 4)) = r3;
                                                         |     *((r3! + 8)) = r4;
                                                         |     *((r3! + 12)) = r7;
    0x0006c79a movs r5, r0                               |     r5 = r0;
    0x0006c79c strb r2, [r2, 0x18]                       |     *((r2 + 0x18)) = r2;
    0x0006c79e movs r3, r0                               |     r3 = r0;
    0x0006c7a0 ldrb r4, [r3, 4]                          |     r4 = *((r3 + 4));
    0x0006c7a2 movs r3, r0                               |     r3 = r0;
    0x0006c7a4 lsrs r0, r4, 0x1e                         |     r0 = r4 >> 0x1e;
    0x0006c7a6 movs r3, r0                               |     r3 = r0;
                                                         | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6c7d8 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0006c7d8 ()                          | void fcn_0006c7d8 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                     |     int16_t var_0h;
                                                     |     int16_t var_4h;
                                                     |     int16_t var_8h;
                                                     |     int16_t var_24h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     |     r2 = arg3;
    0x0006c7d8 invalid                               |     
    0x0006c7dc sub sp, 0x28                          |     
    0x0006c7de ldr r4, [pc, 0x5c]                    |     
    0x0006c7e0 movs r3, 0x1b                         |     r3 = 0x1b;
    0x0006c7e2 mov r6, r2                            |     r6 = r2;
    0x0006c7e4 ldr r0, [pc, 0x58]                    |     
    0x0006c7e6 movs r2, 1                            |     r2 = 1;
    0x0006c7e8 str r1, [sp, 4]                       |     var_4h = r1;
    0x0006c7ea add r4, pc                            |     r4 = 0xd902c;
    0x0006c7ec ldr r1, [pc, 0x54]                    |     r1 = *(0x6c844);
    0x0006c7ee add r0, pc                            |     r0 = 0xd9032;
    0x0006c7f0 str r4, [sp]                          |     *(sp) = r4;
    0x0006c7f2 add r4, sp, 8                         |     r4 += var_8h;
    0x0006c7f4 ldr r1, [r0, r1]                      |     
    0x0006c7f6 mov r0, r4                            |     r0 = r4;
    0x0006c7f8 ldr r1, [r1]                          |     r1 = *(0xd9032);
    0x0006c7fa str r1, [sp, 0x24]                    |     var_24h = r1;
    0x0006c7fc mov.w r1, 0                           |     r1 = 0;
    0x0006c800 mov r1, r3                            |     r1 = r3;
    0x0006c802 blx 0x9110                            |     fcn_00009110 ();
    0x0006c806 mov r2, r6                            |     r2 = r6;
    0x0006c808 mov r1, r4                            |     r1 = r4;
    0x0006c80a mov r0, r5                            |     r0 = r5;
    0x0006c80c blx 0x93d4                            |     r0 = fcn_000093d4 ();
    0x0006c810 cmp r0, 0                             |     
    0x0006c812 blt 0x6c82c                           |     
                                                     |     while (1) {
    0x0006c814 ldr r2, [pc, 0x30]                    |         
    0x0006c816 ldr r3, [pc, 0x2c]                    |         r3 = *(0x6c846);
    0x0006c818 add r2, pc                            |         r2 = 0xd9064;
    0x0006c81a ldr r3, [r2, r3]                      |         r3 = *(0xd9064);
    0x0006c81c ldr r2, [r3]                          |         r2 = *(0xd9064);
    0x0006c81e ldr r3, [sp, 0x24]                    |         r3 = var_24h;
    0x0006c820 eors r2, r3                           |         r2 ^= r3;
    0x0006c822 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0006c826 bne 0x6c836                           |             goto label_0;
                                                     |         }
    0x0006c828 add sp, 0x28                          |         
    0x0006c82a pop {r4, r5, r6, pc}                  |         
    0x0006c82c blx 0x9628                            |         r0 = fcn_00009628 ();
    0x0006c830 ldr r0, [r0]                          |         r0 = *(r0);
    0x0006c832 rsbs r0, r0, 0                        |         r0 -= ;
    0x0006c834 b 0x6c814                             |         
                                                     |     }
                                                     | label_0:
    0x0006c836 blx 0x927c                            |     fprintf_chk ()
    0x0006c83a nop                                   |     
    0x0006c83c strb r6, [r5, 4]                      |     *((r5 + 4)) = r6;
    0x0006c83e movs r3, r0                           |     r3 = r0;
    0x0006c840 stm r2!, {r1, r2, r4, r6, r7}         |     *(r2!) = r1;
                                                     |     *((r2! + 4)) = r2;
                                                     |     *((r2! + 8)) = r4;
                                                     |     *((r2! + 12)) = r6;
                                                     |     *((r2! + 16)) = r7;
    0x0006c842 movs r5, r0                           |     r5 = r0;
    0x0006c844 lsls r0, r0, 0x13                     |     r0 <<= 0x13;
    0x0006c846 movs r0, r0                           |     
    0x0006c848 stm r2!, {r2, r3, r5, r7}             |     *(r2!) = r2;
                                                     |     *((r2! + 4)) = r3;
                                                     |     *((r2! + 8)) = r5;
                                                     |     *((r2! + 12)) = r7;
    0x0006c84a movs r5, r0                           |     r5 = r0;
                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6c85c */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.0006c85c ()                                      | void fcn_0006c85c (uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int32_t var_4h_2;
                                                                 |     int32_t var_8h_2;
                                                                 |     int32_t var_ch_2;
                                                                 |     int32_t var_10h_2;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_1ch;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_24h;
                                                                 |     int32_t var_28h;
                                                                 |     int32_t var_2ch;
                                                                 |     int32_t var_30h;
                                                                 |     int32_t var_34h;
                                                                 |     int32_t var_38h;
                                                                 |     int32_t var_38h_2;
                                                                 |     int32_t var_40h;
                                                                 |     int32_t var_44h;
                                                                 |     int16_t var_48h;
                                                                 |     int32_t var_4ch;
                                                                 |     int16_t var_50h;
                                                                 |     int16_t var_b8h;
                                                                 |     int32_t var_c8h;
                                                                 |     int32_t var_124h;
                                                                 |     int16_t var_12ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0006c85c svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x0006c860 sub sp, 0x13c                                     |     
    0x0006c862 add r7, sp, 0x10                                  |     r7 += var_10h;
    0x0006c864 movs r4, 0                                        |     r4 = 0;
    0x0006c866 ldr.w r5, [r7, 0x150]                             |     r5 = *((r7 + 0x150));
    0x0006c86a str r3, [r7, 0x30]                                |     var_30h = r3;
    0x0006c86c ldr.w r3, [pc, 0x7b4]                             |     r3 = *(0x6d024);
    0x0006c870 str r5, [r7, 0x34]                                |     var_34h = r5;
    0x0006c872 mov r5, r2                                        |     r5 = r2;
    0x0006c874 ldr.w r2, [pc, 0x7b0]                             |     
    0x0006c878 add r2, pc                                        |     r2 = 0xd98a4;
    0x0006c87a ldr r3, [r2, r3]                                  |     
    0x0006c87c ldr r3, [r3]                                      |     r3 = *(0xd98a4);
    0x0006c87e str.w r3, [r7, 0x124]                             |     __asm ("str.w r3, [var_124h]");
    0x0006c882 mov.w r3, 0                                       |     r3 = 0;
    0x0006c886 strd r4, r4, [r7, 0x38]                           |     __asm ("strd r4, r4, [var_38h]");
    0x0006c88a str r4, [r7, 0x40]                                |     var_40h = r4;
    0x0006c88c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006c88e beq.w 0x6cdda                                     |         goto label_26;
                                                                 |     }
    0x0006c892 ands r3, r5, 2                                    |     r3 = r5 & 2;
    0x0006c896 mov r6, r1                                        |     r6 = r1;
    0x0006c898 mov r4, r0                                        |     r4 = r0;
    0x0006c89a str r3, [r7, 0x1c]                                |     var_1ch = r3;
                                                                 |     if (r3 != r5) {
    0x0006c89c bne 0x6c8fa                                       |         goto label_27;
                                                                 |     }
    0x0006c89e ands r3, r5, 0x20                                 |     r3 = r5 & 0x20;
    0x0006c8a2 str r3, [r7, 0x2c]                                |     var_2ch = r3;
                                                                 |     if (r3 != r5) {
    0x0006c8a4 beq 0x6c8aa                                       |         
    0x0006c8a6 ldr r3, [r7, 0x34]                                |         r3 = var_34h;
                                                                 |         if (r3 != 0) {
    0x0006c8a8 cbnz r3, 0x6c8ae                                  |             goto label_0;
                                                                 |         }
                                                                 |     }
    0x0006c8aa ldrb r3, [r4]                                     |     r3 = *(r4);
                                                                 |     if (r3 != 0) {
    0x0006c8ac cbnz r3, 0x6c90c                                  |         goto label_28;
                                                                 |     }
                                                                 |     do {
                                                                 | label_0:
    0x0006c8ae mov.w r6, -1                                      |         r6 = -1;
    0x0006c8b2 mvn r1, 0x15                                      |         r1 = ~0x15;
                                                                 | label_3:
    0x0006c8b6 mov r0, r6                                        |         r0 = r6;
    0x0006c8b8 str r1, [r7, 0x34]                                |         var_34h = r1;
    0x0006c8ba bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
    0x0006c8be ldr r0, [r7, 0x40]                                |         r0 = var_40h;
    0x0006c8c0 blx 0x8dac                                        |         fcn_00008dac ();
    0x0006c8c4 ldr r0, [r7, 0x3c]                                |         r0 = var_38h_2;
    0x0006c8c6 blx 0x8dac                                        |         fcn_00008dac ();
    0x0006c8ca ldr r0, [r7, 0x38]                                |         r0 = var_38h;
    0x0006c8cc blx 0x8dac                                        |         fcn_00008dac ();
    0x0006c8d0 ldr.w r2, [pc, 0x758]                             |         
    0x0006c8d4 ldr.w r3, [pc, 0x74c]                             |         r3 = *(0x6d024);
    0x0006c8d8 ldr r1, [r7, 0x34]                                |         r1 = var_34h;
    0x0006c8da add r2, pc                                        |         r2 = 0xd990a;
    0x0006c8dc ldr r3, [r2, r3]                                  |         r3 = *(0xd990a);
    0x0006c8de ldr r2, [r3]                                      |         r2 = *(0xd990a);
    0x0006c8e0 ldr.w r3, [r7, 0x124]                             |         r3 = var_124h;
    0x0006c8e4 eors r2, r3                                       |         r2 ^= r3;
    0x0006c8e6 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0006c8ea bne.w 0x6d006                                     |             goto label_29;
                                                                 |         }
    0x0006c8ee mov r0, r1                                        |         r0 = r1;
    0x0006c8f0 add.w r7, r7, 0x12c                               |         r7 += var_12ch;
    0x0006c8f4 mov sp, r7                                        |         
    0x0006c8f6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_27:
    0x0006c8fa ldr r3, [r7, 0x34]                                |         r3 = var_34h;
    0x0006c8fc cmp r3, 0                                         |         
    0x0006c8fe bne 0x6c8ae                                       |         
                                                                 |     } while (r3 != 0);
    0x0006c900 and r3, r5, 0x20                                  |     r3 = r5 & 0x20;
    0x0006c904 str r3, [r7, 0x2c]                                |     var_2ch = r3;
    0x0006c906 ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0006c908 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0006c90a beq 0x6c8ae                                       |         goto label_0;
                                                                 |     }
                                                                 | label_28:
    0x0006c90c mov r0, r6                                        |     r0 = r6;
    0x0006c90e bl 0x75cb4                                        |     r0 = fcn_00075cb4 (r0);
    0x0006c912 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006c914 beq.w 0x6cac6                                     |         goto label_30;
                                                                 |     }
    0x0006c918 ldr r3, [r7, 0x30]                                |     r3 = var_30h;
                                                                 |     if (r3 == 0) {
    0x0006c91a cbnz r3, 0x6c934                                  |         
                                                                 | label_1:
    0x0006c91c ldr r3, [r7, 0x34]                                |         r3 = var_34h;
    0x0006c91e and r2, r5, 0x2e                                  |         r2 = r5 & 0x2e;
    0x0006c922 subs r3, 0                                        |         
    0x0006c924 it ne                                             |         
                                                                 |         if (r3 == 0) {
    0x0006c926 movne r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x0006c928 cmp r2, 0                                         |         
    0x0006c92a it ne                                             |         
                                                                 |         if (r2 == 0) {
    0x0006c92c movne r3, 0                                       |             r3 = 0;
                                                                 |         }
    0x0006c92e cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0006c930 bne.w 0x6cd24                                     |             goto label_31;
                                                                 |         }
                                                                 |     }
                                                                 | label_2:
    0x0006c934 add.w r1, r7, 0x38                                |     r1 += var_38h;
    0x0006c938 mov r0, r4                                        |     r0 = r4;
    0x0006c93a bl 0x74e1c                                        |     r0 = fcn_00074e1c (r0, r1);
    0x0006c93e subs r1, r0, 0                                    |     r1 = r0 - 0;
                                                                 |     if (r1 < r0) {
    0x0006c940 blt.w 0x6cb78                                     |         goto label_32;
                                                                 |     }
    0x0006c944 ldr r0, [r7, 0x40]                                |     r0 = var_40h;
    0x0006c946 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006c948 beq.w 0x6cdd4                                     |         goto label_33;
                                                                 |     }
                                                                 | label_10:
    0x0006c94c mov.w r1, 0x284000                                |     r1 = 0x284000;
    0x0006c950 blx 0x908c                                        |     r0 = fcn_0000908c ();
    0x0006c954 subs r6, r0, 0                                    |     r6 = r0 - 0;
                                                                 |     if (r6 < r0) {
    0x0006c956 blt.w 0x6cb8c                                     |         goto label_34;
                                                                 |     }
    0x0006c95a ands r3, r5, 8                                    |     r3 = r5 & 8;
    0x0006c95e str r3, [r7, 0x18]                                |     var_18h = r3;
                                                                 |     if (r3 != r5) {
    0x0006c960 bne.w 0x6cb7e                                     |         goto label_35;
                                                                 |     }
                                                                 | label_4:
    0x0006c964 ands r3, r5, 0x10                                 |     r3 = r5 & 0x10;
    0x0006c968 ldr.w sb, [r7, 0x38]                              |     sb = var_38h;
    0x0006c96c it eq                                             |     
                                                                 |     if (r3 != r5) {
    0x0006c96e streq r3, [r7, 0xc]                               |         var_ch_2 = r3;
                                                                 |     }
                                                                 |     if (r3 != r5) {
    0x0006c970 beq 0x6c988                                       |         
    0x0006c972 ldr.w r1, [pc, 0x6bc]                             |         
    0x0006c976 mov r0, sb                                        |         r0 = sb;
    0x0006c978 add r1, pc                                        |         r1 = 0xd99ae;
    0x0006c97a bl 0x80428                                        |         r0 = fcn_00080428 (r0, r1);
    0x0006c97e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0006c980 beq.w 0x6ce5a                                     |             goto label_36;
                                                                 |         }
    0x0006c984 movs r3, 1                                        |         r3 = 1;
    0x0006c986 str r3, [r7, 0xc]                                 |         var_ch_2 = r3;
                                                                 |     }
                                                                 | label_13:
    0x0006c988 ldr.w r8, [r7, 0x40]                              |     r8 = var_40h;
    0x0006c98c cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x0006c990 beq.w 0x6cdfe                                     |         goto label_37;
                                                                 |     }
    0x0006c994 mov r0, sb                                        |     r0 = sb;
    0x0006c996 movs r2, 1                                        |     r2 = 1;
    0x0006c998 mov r1, r8                                        |     r1 = r8;
    0x0006c99a bl 0x75208                                        |     fcn_00075208 (r0, r1, r2);
    0x0006c99c ldc2 p4, c6, [r5], -0x1e0                         |     __asm ("ldc2 p4, c6, [r5], -aav.0x000000ff");
    0x0006c9a0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006c9a2 beq.w 0x6cb96                                     |         goto label_38;
                                                                 |     }
    0x0006c9a6 mov r0, r8                                        |     r0 = r8;
    0x0006c9a8 blx 0x9200                                        |     fcn_00009200 ();
    0x0006c9ac ldr.w r3, [pc, 0x684]                             |     
    0x0006c9b0 str r0, [r7, 0x3c]                                |     var_38h_2 = r0;
    0x0006c9b2 add r3, pc                                        |     r3 = 0xd99ea;
    0x0006c9b4 str r3, [r7, 0x20]                                |     var_20h = r3;
    0x0006c9b6 ldr.w r3, [pc, 0x680]                             |     
    0x0006c9ba add r3, pc                                        |     r3 = 0xd99f8;
    0x0006c9bc str r3, [r7, 4]                                   |     var_4h_2 = r3;
    0x0006c9be ldr.w r3, [pc, 0x67c]                             |     
    0x0006c9c2 add r3, pc                                        |     r3 = 0xd9a04;
    0x0006c9c4 str r3, [r7, 8]                                   |     var_8h_2 = r3;
    0x0006c9c6 movs r3, 0x20                                     |     r3 = 0x20;
    0x0006c9c8 str r3, [r7, 0x14]                                |     var_14h = r3;
    0x0006c9ca add.w r3, r7, 0x48                                |     r3 += var_48h;
    0x0006c9ce str r3, [r7, 0x24]                                |     var_24h = r3;
    0x0006c9d0 add.w r3, r7, 0x44                                |     r3 += var_44h;
    0x0006c9d4 str r3, [r7, 0x28]                                |     var_28h = r3;
                                                                 |     do {
                                                                 | label_6:
    0x0006c9d6 movs r1, 1                                        |         r1 = 1;
    0x0006c9d8 ldr r2, [r7, 0x24]                                |         r2 = var_24h;
    0x0006c9da ldr r0, [r7, 0x28]                                |         r0 = var_28h;
    0x0006c9dc bl 0x75070                                        |         r0 = fcn_00075070 (r0, r1, r2);
    0x0006c9e0 subs r1, r0, 0                                    |         r1 = r0 - 0;
                                                                 |         if (r1 < r0) {
    0x0006c9e2 blt.w 0x6ce90                                     |             goto label_39;
                                                                 |         }
                                                                 |         if (r1 == r0) {
    0x0006c9e6 beq.w 0x6ce9a                                     |             goto label_40;
                                                                 |         }
    0x0006c9ea ldr r0, [r7, 0x48]                                |         r0 = var_48h;
    0x0006c9ec blx 0x8f2c                                        |         r0 = fcn_00008f2c ();
    0x0006c9f0 mov r8, r0                                        |         r8 = r0;
    0x0006c9f2 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0006c9f4 beq.w 0x6cf92                                     |             goto label_41;
                                                                 |         }
    0x0006c9f8 ldr r1, [r7, 0x20]                                |         r1 = var_20h;
    0x0006c9fa bl 0x754cc                                        |         r0 = fcn_000754cc (r0, r1);
    0x0006c9fe mov sb, r0                                        |         sb = r0;
    0x0006ca00 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0006ca02 bne.w 0x6cbe6                                     |             goto label_42;
                                                                 |         }
    0x0006ca06 ldr r0, [r7, 0x3c]                                |         r0 = var_38h_2;
    0x0006ca08 bl 0x75cb4                                        |         r0 = fcn_00075cb4 (r0);
    0x0006ca0c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0006ca0e bne 0x6caa6                                       |             
    0x0006ca10 ldr r0, [r7, 0x3c]                                |             r0 = var_38h_2;
    0x0006ca12 bl 0x75000                                        |             r0 = fcn_00075000 ();
    0x0006ca16 mov sb, r0                                        |             sb = r0;
    0x0006ca18 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x0006ca1a beq.w 0x6cfce                                     |                 goto label_43;
                                                                 |             }
    0x0006ca1e ldrd sl, fp, [r7, 0x3c]                           |             __asm ("ldrd sl, fp, [var_38h_2]");
    0x0006ca22 cmp.w fp, 0                                       |             
                                                                 |             if (fp != 0) {
    0x0006ca26 beq 0x6ca40                                       |                 
    0x0006ca28 movs r2, 1                                        |                 r2 = 1;
    0x0006ca2a mov r1, fp                                        |                 r1 = fp;
    0x0006ca2c mov r0, sl                                        |                 r0 = sl;
    0x0006ca2e bl 0x75208                                        |                 r0 = fcn_00075208 (r0, r1, r2);
                                                                 |                 if (r0 == 0) {
    0x0006ca32 cbz r0, 0x6ca40                                   |                     goto label_44;
                                                                 |                 }
    0x0006ca34 mov r1, fp                                        |                 r1 = fp;
    0x0006ca36 movs r2, 1                                        |                 r2 = 1;
    0x0006ca38 mov r0, sb                                        |                 r0 = sb;
    0x0006ca3a bl 0x75208                                        |                 r0 = fcn_00075208 (r0, r1, r2);
                                                                 |                 if (r0 == 0) {
    0x0006ca3e cbz r0, 0x6caa6                                   |                     goto label_45;
                                                                 |                 }
                                                                 |             }
                                                                 | label_44:
    0x0006ca40 mov r0, sl                                        |             r0 = sl;
    0x0006ca42 blx 0x8dac                                        |             fcn_00008dac ();
    0x0006ca46 ldr r3, [r7, 0x2c]                                |             r3 = var_2ch;
    0x0006ca48 str.w sb, [r7, 0x3c]                              |             __asm ("str.w sb, [var_38h_2]");
    0x0006ca4c cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x0006ca4e bne.w 0x6cfd8                                     |                 goto label_46;
                                                                 |             }
    0x0006ca52 ldr.w r1, [pc, 0x5ec]                             |             
    0x0006ca56 mov.w r2, 0x288000                                |             r2 = 0x288000;
    0x0006ca58 asrs r2, r4, 8                                    |             r2 = r4 >> 8;
    0x0006ca5a mov r0, r6                                        |             r0 = r6;
    0x0006ca5c add r1, pc                                        |             r1 = 0xd9aa2;
    0x0006ca5e blx 0x8e0c                                        |             r0 = fcn_00008e0c ();
    0x0006ca62 subs.w sb, r0, 0                                  |             sb = r0 - 0;
                                                                 |             if (sb < r0) {
    0x0006ca66 blt.w 0x6cf74                                     |                 goto label_47;
                                                                 |             }
    0x0006ca6a ldr r3, [r7, 0x18]                                |             r3 = var_18h;
                                                                 |             if (r3 != 0) {
    0x0006ca6c cbz r3, 0x6ca9a                                   |                 
    0x0006ca6e add.w sl, r7, 0xb8                                |                 sl += var_b8h;
    0x0006ca72 mov r1, sl                                        |                 r1 = sl;
    0x0006ca74 blx 0x9020                                        |                 r0 = fcn_00009020 ();
    0x0006ca78 cmp r0, 0                                         |                 
                                                                 |                 if (r0 < 0) {
    0x0006ca7a blt.w 0x6cf74                                     |                     goto label_47;
                                                                 |                 }
    0x0006ca7e add.w fp, r7, 0x50                                |                 
    0x0006ca82 mov r1, sl                                        |                 r1 = sl;
    0x0006ca84 mov r0, fp                                        |                 r0 = fp;
    0x0006ca86 bl 0x6c84c                                        |                 fcn_0006c84c (r0, r1);
    0x0006ca88 cdp2 p8, 0xe, c2, c1, c0, 0                       |                 __asm ("cdp2 p8, 0xe, c2, c1, c0, 0");
                                                                 |                 if (r0 != 0) {
    0x0006ca8c bne.w 0x6ce6e                                     |                     goto label_48;
                                                                 |                 }
    0x0006ca90 mov r1, sl                                        |                 r1 = sl;
    0x0006ca92 mov r0, fp                                        |                 r0 = fp;
    0x0006ca94 movs r2, 0x68                                     |                 r2 = 0x68;
    0x0006ca96 blx 0x8f9c                                        |                 fcn_00008f9c ();
                                                                 |             }
    0x0006ca9a mov r0, r6                                        |             r0 = r6;
    0x0006ca9c mov r6, sb                                        |             r6 = sb;
    0x0006ca9e mov.w sb, 0                                       |             sb = 0;
    0x0006caa2 bl 0x69a04                                        |             fcn_00069a04 (r0, r1, r2, r3);
                                                                 |         }
                                                                 | label_45:
    0x0006caa6 mov.w r0, -1                                      |         r0 = -1;
    0x0006caaa bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
    0x0006caae mov r0, sb                                        |         r0 = sb;
    0x0006cab0 mov.w sb, -1                                      |         sb = -1;
    0x0006cab4 blx 0x8dac                                        |         fcn_00008dac ();
                                                                 | label_5:
    0x0006cab8 mov r0, sb                                        |         r0 = sb;
    0x0006caba bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
    0x0006cabe mov r0, r8                                        |         r0 = r8;
    0x0006cac0 blx 0x8dac                                        |         fcn_00008dac ();
    0x0006cac4 b 0x6c9d6                                         |         
                                                                 |     } while (1);
                                                                 | label_30:
    0x0006cac6 ldr r3, [r7, 0x30]                                |     r3 = var_30h;
    0x0006cac8 orrs r3, r6                                       |     r3 |= r6;
                                                                 |     if (r3 == r6) {
    0x0006caca beq.w 0x6c91c                                     |         goto label_1;
                                                                 |     }
    0x0006cace cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0006cad0 beq.w 0x6c934                                     |         goto label_2;
                                                                 |     }
    0x0006cad4 add.w r1, r7, 0x40                                |     r1 += var_40h;
    0x0006cad8 mov r0, r6                                        |     r0 = r6;
    0x0006cada bl 0x74e1c                                        |     r0 = fcn_00074e1c (r0, r1);
    0x0006cade subs r1, r0, 0                                    |     r1 = r0 - 0;
                                                                 |     if (r1 < r0) {
    0x0006cae0 blt 0x6cb78                                       |         goto label_32;
                                                                 |     }
    0x0006cae2 ldr.w r1, [pc, 0x560]                             |     
    0x0006cae6 ldr r0, [r7, 0x40]                                |     r0 = var_40h;
    0x0006cae8 add r1, pc                                        |     r1 = 0xd9b32;
    0x0006caea bl 0x7a954                                        |     fcn_0007a954 (r0, r1);
    0x0006caee ldr r0, [r7, 0x40]                                |     r0 = var_40h;
    0x0006caf0 bl 0x75130                                        |     fcn_00075130 (r0);
    0x0006caf2 invalid                                           |     
                                                                 |     if (r1 >= r0) {
    0x0006caf6 bpl.w 0x6c934                                     |         goto label_2;
                                                                 |     }
    0x0006cafa ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0006cafc cmp r3, 0x2f                                      |     
                                                                 |     if (r3 != 0x2f) {
    0x0006cafe bne.w 0x6c8ae                                     |         goto label_0;
                                                                 |     }
    0x0006cb02 ldr r6, [r7, 0x40]                                |     r6 = var_40h;
    0x0006cb04 mov r3, r4                                        |     r3 = r4;
                                                                 |     do {
    0x0006cb06 mov r4, r3                                        |         r4 = r3;
    0x0006cb08 adds r3, 1                                        |         r3++;
    0x0006cb0a ldrb r2, [r4, 1]                                  |         r2 = *((r4 + 1));
    0x0006cb0c cmp r2, 0x2f                                      |         
    0x0006cb0e beq 0x6cb06                                       |         
                                                                 |     } while (r2 == 0x2f);
    0x0006cb10 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0006cb12 beq.w 0x6c934                                     |         goto label_2;
                                                                 |     }
    0x0006cb16 ldrb r3, [r6]                                     |     r3 = *(r6);
    0x0006cb18 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0006cb1a beq.w 0x6c934                                     |         goto label_2;
                                                                 |     }
    0x0006cb1e mov r0, r6                                        |     r0 = r6;
    0x0006cb20 blx 0x8f38                                        |     r0 = fcn_00008f38 ();
    0x0006cb24 mov sb, r0                                        |     sb = r0;
    0x0006cb26 mov r0, r4                                        |     r0 = r4;
    0x0006cb28 blx 0x8f38                                        |     r0 = fcn_00008f38 ();
    0x0006cb2c add.w r3, sb, r0                                  |     r3 = sb + r0;
    0x0006cb30 mov r8, r0                                        |     r8 = r0;
    0x0006cb32 adds r2, r3, 2                                    |     r2 = r3 + 2;
    0x0006cb34 cmp.w r2, 0x400000                                |     
                                                                 |     if (r2 > 0x400000) {
    0x0006cb38 bhi.w 0x6cf5e                                     |         goto label_49;
                                                                 |     }
    0x0006cb3c adds r3, 9                                        |     r3 += 9;
    0x0006cb3e mov r1, r6                                        |     r1 = r6;
    0x0006cb40 bic r3, r3, 7                                     |     r3 = BIT_MASK (r3, 7);
    0x0006cb44 sub.w sp, sp, r3                                  |     
    0x0006cb48 add r6, sp, 0x10                                  |     r6 += var_10h;
    0x0006cb4a mov r0, r6                                        |     r0 = r6;
    0x0006cb4c blx 0x8c38                                        |     r0 = fcn_00008c38 ();
    0x0006cb50 cmp r0, r6                                        |     
    0x0006cb52 mov r3, r0                                        |     r3 = r0;
                                                                 |     if (r0 > r6) {
    0x0006cb54 bhi 0x6cb5e                                       |         goto label_50;
                                                                 |     }
    0x0006cb56 b 0x6cb6a                                         |     goto label_14;
                                                                 |     do {
    0x0006cb58 cmp r6, r3                                        |         
                                                                 |         if (r6 == r3) {
    0x0006cb5a beq.w 0x6ce8c                                     |             goto label_51;
                                                                 |         }
                                                                 | label_50:
    0x0006cb5e ldrb r2, [r3, -0x1]                               |         r2 = *((r3 - 0x1));
    0x0006cb62 mov r0, r3                                        |         r0 = r3;
    0x0006cb64 subs r3, 1                                        |         r3--;
    0x0006cb66 cmp r2, 0x2f                                      |         
    0x0006cb68 beq 0x6cb58                                       |         
                                                                 |     } while (r2 == 0x2f);
                                                                 | label_14:
    0x0006cb6a mov r1, r4                                        |     r1 = r4;
    0x0006cb6c add.w r2, r8, 1                                   |     r2 = r8 + 1;
    0x0006cb70 mov r4, r6                                        |     r4 = r6;
    0x0006cb72 blx 0x8f9c                                        |     fcn_00008f9c ();
    0x0006cb76 b 0x6c934                                         |     goto label_2;
                                                                 | label_32:
    0x0006cb78 mov.w r6, -1                                      |     r6 = -1;
    0x0006cb7c b 0x6c8b6                                         |     goto label_3;
                                                                 | label_35:
    0x0006cb7e add.w r1, r7, 0x50                                |     r1 += var_50h;
    0x0006cb82 blx 0x9020                                        |     r0 = fcn_00009020 ();
    0x0006cb86 cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x0006cb88 bge.w 0x6c964                                     |         goto label_4;
                                                                 |     }
                                                                 | label_34:
    0x0006cb8c blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x0006cb90 ldr r1, [r0]                                      |     r1 = *(r0);
    0x0006cb92 rsbs r1, r1, 0                                    |     r1 -= ;
    0x0006cb94 b 0x6c8b6                                         |     goto label_3;
                                                                 | label_38:
    0x0006cb96 tst.w r5, 0x80                                    |     
    0x0006cb9a ite ne                                            |     
                                                                 |     if ((r5 & 0x80) == 0) {
    0x0006cb9c movne r5, 4                                       |         r5 = 4;
                                                                 |     }
                                                                 |     if ((r5 & 0x80) != 0) {
    0x0006cb9e moveq r5, 7                                       |         r5 = 7;
                                                                 |     }
    0x0006cba0 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0006cba4 cmp r0, r5                                        |     
    0x0006cba6 it lt                                             |     
                                                                 |     if (r0 < r5) {
    0x0006cba8 mvnlt r1, 0x2b                                    |         r1 = ~0x2b;
                                                                 |         goto label_52;
                                                                 |     }
                                                                 |     if (r0 < r5) {
                                                                 | label_52:
    0x0006cbac blt.w 0x6c8b6                                     |         goto label_3;
                                                                 |     }
    0x0006cbb0 strd r4, r8, [sp, 8]                              |     __asm ("strd r4, r8, [var_8h]");
    0x0006cbb4 movs r1, 0x2c                                     |     r1 = 0x2c;
    0x0006cbb6 ldr.w r2, [pc, 0x490]                             |     
    0x0006cbba movt r1, 0x4000                                   |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x0006cbbe ldr.w ip, [pc, 0x48c]                             |     
    0x0006cbc2 mov r0, r5                                        |     r0 = r5;
    0x0006cbc4 ldr.w r4, [pc, 0x488]                             |     
    0x0006cbc8 movw r3, 0x387                                    |     r3 = 0x387;
    0x0006cbca adds r3, 0x87                                     |     r3 += 0x87;
    0x0006cbcc add r2, pc                                        |     r2 = 0xd9c1a;
    0x0006cbce add ip, pc                                        |     ip = 0xd9c20;
    0x0006cbd0 adds r2, 7                                        |     r2 += 7;
    0x0006cbd2 add r4, pc                                        |     r4 = 0xd9c26;
    0x0006cbd4 strd r4, ip, [sp]                                 |     __asm ("strd r4, ip, [sp]");
    0x0006cbd8 bl 0x71448                                        |     r0 = fcn_00071448 ();
    0x0006cbdc subs r1, r0, 0                                    |     r1 = r0 - 0;
    0x0006cbde it ge                                             |     
                                                                 |     if (r1 < r0) {
    0x0006cbe0 mvnge r1, 0x55                                    |         r1 = ~0x55;
                                                                 |     }
    0x0006cbe4 b 0x6c8b6                                         |     goto label_3;
                                                                 | label_42:
    0x0006cbe6 mov.w r2, 0x288000                                |     r2 = 0x288000;
    0x0006cbea mov r1, r8                                        |     r1 = r8;
    0x0006cbec mov r0, r6                                        |     r0 = r6;
    0x0006cbee blx 0x8e0c                                        |     r0 = fcn_00008e0c ();
    0x0006cbf2 subs.w sb, r0, 0                                  |     sb = r0 - 0;
                                                                 |     if (sb < r0) {
    0x0006cbf6 blt.w 0x6cf34                                     |         goto label_53;
                                                                 |     }
    0x0006cbfa add.w sl, r7, 0xb8                                |     sl += var_b8h;
    0x0006cbfe mov r1, sl                                        |     r1 = sl;
    0x0006cc00 blx 0x9020                                        |     r0 = fcn_00009020 ();
    0x0006cc04 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0006cc06 blt.w 0x6cf54                                     |         goto label_54;
                                                                 |     }
    0x0006cc0a ldr r3, [r7, 0x18]                                |     r3 = var_18h;
    0x0006cc0c add.w fp, r7, 0x50                                |     
    0x0006cc10 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0006cc12 bne.w 0x6cd44                                     |         goto label_55;
                                                                 |     }
                                                                 | label_7:
    0x0006cc16 mov r1, sl                                        |     r1 = sl;
    0x0006cc18 movs r2, 0x68                                     |     r2 = 0x68;
    0x0006cc1a mov r0, fp                                        |     r0 = fp;
    0x0006cc1c blx 0x8f9c                                        |     fcn_00008f9c ();
    0x0006cc20 lsls r1, r5, 0x1d                                 |     r1 = r5 << 0x1d;
                                                                 |     if (r1 < r5) {
    0x0006cc22 bmi.w 0x6cd62                                     |         goto label_56;
                                                                 |     }
                                                                 | label_9:
    0x0006cc26 ldr.w r3, [r7, 0xc8]                              |     r3 = var_c8h;
    0x0006cc2a and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x0006cc2e cmp.w r3, 0xa000                                  |     
                                                                 |     if (r3 != 0xa000) {
    0x0006cc32 bne 0x6ccda                                       |         goto label_57;
                                                                 |     }
    0x0006cc34 lsls r3, r5, 0x19                                 |     r3 = r5 << 0x19;
                                                                 |     if (r3 < r5) {
    0x0006cc36 bpl 0x6cc44                                       |         
    0x0006cc38 ldr r3, [r7, 0x44]                                |         r3 = var_44h;
    0x0006cc3a cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0006cc3c beq 0x6ccda                                       |             goto label_57;
                                                                 |         }
    0x0006cc3e ldrb r3, [r3]                                     |         r3 = *(r3);
    0x0006cc40 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0006cc42 beq 0x6ccda                                       |             goto label_57;
                                                                 |         }
                                                                 |     }
    0x0006cc44 movs r3, 0                                        |     r3 = 0;
    0x0006cc46 str r3, [r7, 0x4c]                                |     var_4ch = r3;
    0x0006cc48 ldr r3, [r7, 0x14]                                |     r3 = var_14h;
    0x0006cc4a subs r3, 1                                        |     r3--;
    0x0006cc4c str r3, [r7, 0x14]                                |     var_14h = r3;
                                                                 |     if (r3 == 1) {
    0x0006cc4e beq.w 0x6cfe4                                     |         goto label_58;
                                                                 |     }
    0x0006cc52 add.w r3, r7, 0x4c                                |     r3 += var_4ch;
    0x0006cc56 mov r1, r8                                        |     r1 = r8;
    0x0006cc58 mov r2, r3                                        |     r2 = r3;
    0x0006cc5a mov r0, r6                                        |     r0 = r6;
    0x0006cc5c str r3, [r7, 0x10]                                |     var_10h_2 = r3;
    0x0006cc5e bl 0x6bf2c                                        |     r0 = fcn_0006bf2c (r0, r1, r2);
    0x0006cc62 subs r1, r0, 0                                    |     r1 = r0 - 0;
    0x0006cc64 ldr r3, [r7, 0x10]                                |     r3 = var_10h_2;
    0x0006cc66 ldr r0, [r7, 0x4c]                                |     r0 = var_4ch;
                                                                 |     if (r1 < r0) {
    0x0006cc68 blt 0x6cd0a                                       |         goto label_12;
                                                                 |     }
    0x0006cc6a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006cc6c beq 0x6cd06                                       |         goto label_59;
                                                                 |     }
    0x0006cc6e ldrb r2, [r0]                                     |     r2 = *(r0);
    0x0006cc70 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0006cc72 beq 0x6cd06                                       |         goto label_59;
                                                                 |     }
    0x0006cc74 cmp r2, 0x2f                                      |     
                                                                 |     if (r2 == 0x2f) {
    0x0006cc76 beq.w 0x6ce0c                                     |         goto label_60;
                                                                 |     }
                                                                 | label_11:
    0x0006cc7a ldr r1, [r7, 0x44]                                |     r1 = var_44h;
    0x0006cc7c mov r0, r3                                        |     r0 = r3;
    0x0006cc7e mov.w r2, -1                                      |     r2 = -1;
    0x0006cc82 bl 0x74ccc                                        |     r0 = fcn_00074ccc ();
    0x0006cc86 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006cc88 beq.w 0x6cfec                                     |         goto label_61;
                                                                 |     }
    0x0006cc8c ldr r0, [r7, 0x38]                                |     r0 = var_38h;
    0x0006cc8e blx 0x8dac                                        |     fcn_00008dac ();
    0x0006cc92 ldr r3, [r7, 0x4c]                                |     r3 = var_4ch;
    0x0006cc94 str r3, [r7, 0x38]                                |     var_38h = r3;
    0x0006cc96 str r3, [r7, 0x44]                                |     var_44h = r3;
    0x0006cc98 ldr r3, [r7, 0x2c]                                |     r3 = var_2ch;
    0x0006cc9a cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0006cc9c beq.w 0x6cab8                                     |         goto label_5;
                                                                 |     }
                                                                 | label_23:
    0x0006cca0 mov r0, sb                                        |     r0 = sb;
    0x0006cca2 bl 0x69a04                                        |     fcn_00069a04 (r0, r1, r2, r3);
    0x0006cca6 mov r0, r8                                        |     r0 = r8;
    0x0006cca8 blx 0x8dac                                        |     fcn_00008dac ();
    0x0006ccac ldr r3, [r7, 0x30]                                |     r3 = var_30h;
    0x0006ccae mov r1, r3                                        |     r1 = r3;
    0x0006ccb0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0006ccb2 beq.w 0x6c8b6                                     |         goto label_3;
                                                                 |     }
    0x0006ccb6 movs r1, 1                                        |     r1 = 1;
    0x0006ccb8 ldr r0, [r7, 0x28]                                |     r0 = var_28h;
    0x0006ccba add.w r2, r7, 0xb8                                |     r2 += var_b8h;
    0x0006ccbe bl 0x75070                                        |     r0 = fcn_00075070 (r0, r1, r2);
    0x0006ccc2 subs r1, r0, 0                                    |     r1 = r0 - 0;
                                                                 |     if (r1 < r0) {
    0x0006ccc4 blt.w 0x6c8b6                                     |         goto label_3;
                                                                 |     }
    0x0006ccc8 ldr r0, [r7, 0x3c]                                |     r0 = var_38h_2;
    0x0006ccca it eq                                             |     
                                                                 |     if (r1 != r0) {
    0x0006cccc streq r1, [r7, 0x3c]                              |         var_38h_2 = r1;
                                                                 |     }
                                                                 |     if (r1 != r0) {
    0x0006ccce bne.w 0x6cf18                                     |         goto label_62;
                                                                 |     }
                                                                 | label_18:
    0x0006ccd2 ldr r3, [r7, 0x30]                                |     r3 = var_30h;
    0x0006ccd4 movs r1, 0                                        |     r1 = 0;
    0x0006ccd6 str r0, [r3]                                      |     *(r3) = r0;
    0x0006ccd8 b 0x6c8b6                                         |     goto label_3;
                                                                 | label_57:
    0x0006ccda mov.w r2, -1                                      |     r2 = -1;
    0x0006ccde mov r1, r8                                        |     r1 = r8;
    0x0006cce0 add.w r0, r7, 0x3c                                |     r0 += var_38h_2;
    0x0006cce4 bl 0x74ccc                                        |     r0 = fcn_00074ccc ();
    0x0006cce8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006ccea beq.w 0x6cfc8                                     |         goto label_63;
                                                                 |     }
    0x0006ccee mov r0, r6                                        |     r0 = r6;
    0x0006ccf0 mov r6, sb                                        |     r6 = sb;
    0x0006ccf2 bl 0x69a04                                        |     fcn_00069a04 (r0, r1, r2, r3);
    0x0006ccf6 mov.w r0, -1                                      |     r0 = -1;
    0x0006ccf8 adds r0, 0xff                                     |     r0 += 0xff;
    0x0006ccfa bl 0x69a04                                        |     fcn_00069a04 (r0, r1, r2, r3);
    0x0006ccfe mov r0, r8                                        |     r0 = r8;
    0x0006cd00 blx 0x8dac                                        |     fcn_00008dac ();
    0x0006cd04 b 0x6c9d6                                         |     goto label_6;
                                                                 | label_59:
    0x0006cd06 mvn r1, 0x15                                      |     r1 = ~0x15;
                                                                 | label_12:
    0x0006cd0a str r1, [r7, 0x34]                                |     var_34h = r1;
    0x0006cd0c blx 0x8dac                                        |     fcn_00008dac ();
    0x0006cd10 ldr r1, [r7, 0x34]                                |     r1 = var_34h;
                                                                 | label_8:
    0x0006cd12 mov r0, sb                                        |     r0 = sb;
    0x0006cd14 str r1, [r7, 0x34]                                |     var_34h = r1;
    0x0006cd16 bl 0x69a04                                        |     fcn_00069a04 (r0, r1, r2, r3);
    0x0006cd1a mov r0, r8                                        |     r0 = r8;
    0x0006cd1c blx 0x8dac                                        |     fcn_00008dac ();
    0x0006cd20 ldr r1, [r7, 0x34]                                |     r1 = var_34h;
    0x0006cd22 b 0x6c8b6                                         |     goto label_3;
                                                                 | label_31:
    0x0006cd24 lsls r1, r5, 9                                    |     r1 = r5 << 9;
    0x0006cd26 mov r0, r4                                        |     r0 = r4;
    0x0006cd28 and r1, r1, 0x8000                                |     r1 &= 0x8000;
    0x0006cd2c orr r1, r1, 0x280000                              |     r1 |= 0x280000;
    0x0006cd30 blx 0x91b4                                        |     r0 = fcn_000091b4 ();
    0x0006cd34 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0006cd36 blt 0x6cdf0                                       |         goto label_64;
                                                                 |     }
    0x0006cd38 ldr r3, [r7, 0x34]                                |     r3 = var_34h;
    0x0006cd3a mov.w r6, -1                                      |     r6 = -1;
    0x0006cd3e movs r1, 0                                        |     r1 = 0;
    0x0006cd40 str r0, [r3]                                      |     *(r3) = r0;
    0x0006cd42 b 0x6c8b6                                         |     goto label_3;
                                                                 | label_55:
    0x0006cd44 mov r1, sl                                        |     r1 = sl;
    0x0006cd46 mov r0, fp                                        |     r0 = fp;
    0x0006cd48 bl 0x6c84c                                        |     r0 = fcn_0006c84c (r0, r1);
    0x0006cd4c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006cd4e beq.w 0x6cc16                                     |         goto label_7;
                                                                 |     }
    0x0006cd52 mov r1, sb                                        |     r1 = sb;
    0x0006cd54 mov r3, r5                                        |     r3 = r5;
    0x0006cd56 mov r2, r4                                        |     r2 = r4;
    0x0006cd58 mov r0, r6                                        |     r0 = r6;
    0x0006cd5a bl 0x6bcd0                                        |     r0 = fcn_0006bcd0 (r0, r1, r2, r3);
    0x0006cd5e mov r1, r0                                        |     r1 = r0;
    0x0006cd60 b 0x6cd12                                         |     goto label_8;
                                                                 | label_56:
    0x0006cd62 movw r1, 0x187                                    |     r1 = 0x187;
    0x0006cd66 mov r0, sb                                        |     r0 = sb;
    0x0006cd68 bl 0x7a0f4                                        |     r0 = fcn_0007a0f4 (r0);
    0x0006cd6c cmp r0, 0                                         |     
                                                                 |     if (r0 <= 0) {
    0x0006cd6e ble.w 0x6cc26                                     |         goto label_9;
                                                                 |     }
    0x0006cd72 lsls r2, r5, 0x18                                 |     r2 = r5 << 0x18;
    0x0006cd74 mov.w r3, 0                                       |     r3 = 0;
    0x0006cd78 str r3, [r7, 0x4c]                                |     var_4ch = r3;
                                                                 |     if (r2 >= r5) {
    0x0006cd7a bpl.w 0x6d01c                                     |         goto label_65;
                                                                 |     }
    0x0006cd7e add.w r1, r7, 0x4c                                |     r1 += var_4ch;
    0x0006cd82 mov r0, sb                                        |     r0 = sb;
    0x0006cd84 bl 0x6a120                                        |     r0 = fcn_0006a120 (r0, r1, r2);
    0x0006cd88 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0006cd8c cmp r0, 3                                         |     
                                                                 |     if (r0 <= 3) {
    0x0006cd8e ble.w 0x6d01c                                     |         goto label_65;
                                                                 |     }
    0x0006cd92 ldr r1, [r7, 0x4c]                                |     r1 = var_4ch;
    0x0006cd94 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0006cd96 beq.w 0x6d000                                     |         goto label_66;
                                                                 |     }
                                                                 | label_24:
    0x0006cd9a ldr r2, [pc, 0x2b8]                               |     
    0x0006cd9c ldr r3, [pc, 0x2b8]                               |     
    0x0006cd9e ldr r0, [pc, 0x2bc]                               |     
    0x0006cda0 str r1, [sp, 8]                                   |     var_8h = r1;
    0x0006cda2 add r2, pc                                        |     r2 = 0xd9dfc;
    0x0006cda4 add r3, pc                                        |     r3 = 0xd9e00;
    0x0006cda6 movs r1, 0x42                                     |     r1 = 0x42;
    0x0006cda8 add r0, pc                                        |     r0 = 0xd9e0a;
    0x0006cdaa movt r1, 0x4000                                   |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x0006cdae str r3, [sp, 4]                                   |     var_4h = r3;
    0x0006cdb0 adds r2, 7                                        |     r2 += 7;
    0x0006cdb2 str r0, [sp]                                      |     *(sp) = r0;
    0x0006cdb4 mov.w r3, 0x304                                   |     r3 = 0x304;
    0x0006cdb8 movs r0, 4                                        |     r0 = 4;
    0x0006cdba str r4, [sp, 0xc]                                 |     var_ch = r4;
    0x0006cdbc bl 0x71448                                        |     r0 = fcn_00071448 ();
    0x0006cdc0 subs r1, r0, 0                                    |     r1 = r0 - 0;
    0x0006cdc2 it ge                                             |     
                                                                 |     if (r1 < r0) {
    0x0006cdc4 mvnge r1, 0x55                                    |         r1 = ~0x55;
                                                                 |     }
    0x0006cdc6 lsls r5, r2, 5                                    |     r5 = r2 << 5;
                                                                 | label_25:
    0x0006cdc8 ldr r0, [r7, 0x4c]                                |     r0 = var_4ch;
    0x0006cdca str r1, [r7, 0x34]                                |     var_34h = r1;
    0x0006cdcc blx 0x8dac                                        |     fcn_00008dac ();
    0x0006cdd0 ldr r1, [r7, 0x34]                                |     r1 = var_34h;
    0x0006cdd2 b 0x6cd12                                         |     goto label_8;
                                                                 | label_33:
    0x0006cdd4 ldr r0, [pc, 0x288]                               |     
    0x0006cdd6 add r0, pc                                        |     r0 = 0xd9e3a;
    0x0006cdd8 b 0x6c94c                                         |     goto label_10;
                                                                 | label_26:
    0x0006cdda ldr r1, [pc, 0x288]                               |     
    0x0006cddc movw r2, 0x312                                    |     r2 = 0x312;
    0x0006cde0 ldr r3, [pc, 0x284]                               |     
    0x0006cde2 ldr r0, [pc, 0x288]                               |     
    0x0006cde4 add r1, pc                                        |     r1 = 0xd9e4e;
    0x0006cde6 add r3, pc                                        |     r3 = 0xd9e52;
    0x0006cde8 adds r1, 7                                        |     r1 += 7;
    0x0006cdea add r0, pc                                        |     r0 = 0xd9e5c;
    0x0006cdec bl 0x71518                                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_64:
    0x0006cdf0 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x0006cdf4 ldr r1, [r0]                                      |     r1 = *(r0);
    0x0006cdf6 mov.w r6, -1                                      |     r6 = -1;
    0x0006cdfa rsbs r1, r1, 0                                    |     r1 -= ;
    0x0006cdfc b 0x6c8b6                                         |     goto label_3;
                                                                 | label_37:
    0x0006cdfe ldr r0, [pc, 0x270]                               |     
    0x0006ce00 str.w sb, [r7, 0x44]                              |     __asm ("str.w sb, [var_44h]");
    0x0006ce04 add r0, pc                                        |     r0 = 0xd9e7a;
    0x0006ce06 blx 0x9200                                        |     fcn_00009200 ();
    0x0006ce08 ldrd lr, r5, [ip, 0x33c]!                         |     __asm ("ldrd lr, r5, aav.0x000000ff!");
                                                                 | label_60:
    0x0006ce0c mov r0, r6                                        |     r0 = r6;
    0x0006ce0e str r3, [r7, 0x10]                                |     var_10h_2 = r3;
    0x0006ce10 bl 0x69a04                                        |     fcn_00069a04 (r0, r1, r2, r3);
    0x0006ce14 ldr r0, [r7, 0x40]                                |     r0 = var_40h;
    0x0006ce16 ldr r3, [r7, 0x10]                                |     r3 = var_10h_2;
    0x0006ce18 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006ce1a beq 0x6cf0e                                       |         goto label_67;
                                                                 |     }
                                                                 | label_16:
    0x0006ce1c mov.w r1, 0x284000                                |     r1 = 0x284000;
    0x0006ce20 str r3, [r7, 0x10]                                |     var_10h_2 = r3;
    0x0006ce22 blx 0x908c                                        |     r0 = fcn_0000908c ();
    0x0006ce26 subs r6, r0, 0                                    |     r6 = r0 - 0;
    0x0006ce28 ldr r3, [r7, 0x10]                                |     r3 = var_10h_2;
                                                                 |     if (r6 < r0) {
    0x0006ce2a blt.w 0x6cff4                                     |         goto label_68;
                                                                 |     }
    0x0006ce2e ldr r2, [r7, 0x18]                                |     r2 = var_18h;
    0x0006ce30 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x0006ce32 bne 0x6cedc                                       |         goto label_69;
                                                                 |     }
                                                                 | label_15:
    0x0006ce34 ldr r1, [r7, 0x40]                                |     r1 = var_40h;
    0x0006ce36 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0006ce38 beq 0x6cf14                                       |         goto label_70;
                                                                 |     }
    0x0006ce3a ldrb r2, [r1]                                     |     r2 = *(r1);
    0x0006ce3c cmp r2, 0                                         |     
    0x0006ce3e ldr r2, [r7, 8]                                   |     r2 = var_8h_2;
    0x0006ce40 it eq                                             |     
                                                                 |     if (r2 != 0) {
    0x0006ce42 moveq r1, r2                                      |         r1 = r2;
                                                                 |     }
                                                                 | label_17:
    0x0006ce44 add.w r0, r7, 0x3c                                |     r0 += var_38h_2;
    0x0006ce48 str r3, [r7, 0x10]                                |     var_10h_2 = r3;
    0x0006ce4a bl 0x7adac                                        |     fcn_0007adac (r0, r1);
    0x0006ce4e subs r1, r0, 0                                    |     r1 -= var_38h_2;
    0x0006ce50 ldr r3, [r7, 0x10]                                |     r3 = var_10h_2;
                                                                 |     if (r1 >= var_38h_2) {
    0x0006ce52 bge.w 0x6cc7a                                     |         goto label_11;
                                                                 |     }
    0x0006ce56 ldr r0, [r7, 0x4c]                                |     r0 = var_4ch;
    0x0006ce58 b 0x6cd0a                                         |     goto label_12;
                                                                 | label_36:
    0x0006ce5a ldr r1, [pc, 0x218]                               |     
    0x0006ce5c mov r0, sb                                        |     r0 = sb;
    0x0006ce5e add r1, pc                                        |     r1 = 0xd9ed8;
    0x0006ce60 bl 0x80428                                        |     r0 = fcn_00080428 (r0, r1);
    0x0006ce64 subs r3, r0, 0                                    |     r3 = r0 - 0;
    0x0006ce66 it ne                                             |     
                                                                 |     if (r3 == r0) {
    0x0006ce68 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0006ce6a str r3, [r7, 0xc]                                 |     var_ch_2 = r3;
    0x0006ce6c b 0x6c988                                         |     goto label_13;
                                                                 | label_48:
    0x0006ce6e mov r1, sb                                        |     r1 = sb;
    0x0006ce70 mov r3, r5                                        |     r3 = r5;
    0x0006ce72 mov r2, r4                                        |     r2 = r4;
    0x0006ce74 mov r0, r6                                        |     r0 = r6;
    0x0006ce76 bl 0x6bcd0                                        |     r0 = fcn_0006bcd0 (r0, r1, r2, r3);
    0x0006ce7a mov r1, r0                                        |     r1 = r0;
                                                                 | label_19:
    0x0006ce7c mov r0, sb                                        |     r0 = sb;
    0x0006ce7e str r1, [r7, 0x34]                                |     var_34h = r1;
    0x0006ce80 mov.w sb, -1                                      |     sb = -1;
    0x0006ce84 bl 0x69a04                                        |     fcn_00069a04 (r0, r1, r2, r3);
    0x0006ce88 ldr r1, [r7, 0x34]                                |     r1 = var_34h;
    0x0006ce8a b 0x6cd12                                         |     goto label_8;
                                                                 | label_51:
    0x0006ce8c mov r0, r6                                        |     r0 = r6;
    0x0006ce8e b 0x6cb6a                                         |     goto label_14;
                                                                 | label_39:
    0x0006ce90 mov.w sb, -1                                      |     sb = -1;
    0x0006ce94 mov.w r8, 0                                       |     r8 = 0;
    0x0006ce98 b 0x6cd12                                         |     goto label_8;
                                                                 | label_40:
    0x0006ce9a ldr r3, [r7, 0xc]                                 |     r3 = var_ch_2;
    0x0006ce9c cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0006ce9e bne 0x6cf7e                                       |         goto label_71;
                                                                 |     }
                                                                 | label_20:
    0x0006cea0 mov.w sb, -1                                      |     sb = -1;
    0x0006cea4 mov.w r8, 0                                       |     r8 = 0;
    0x0006cea8 movs r4, 1                                        |     r4 = 1;
                                                                 | label_22:
    0x0006ceaa mov r0, sb                                        |     r0 = sb;
    0x0006ceac bl 0x69a04                                        |     fcn_00069a04 (r0, r1, r2, r3);
    0x0006ceb0 mov r0, r8                                        |     r0 = r8;
    0x0006ceb2 blx 0x8dac                                        |     fcn_00008dac ();
    0x0006ceb6 ldr r3, [r7, 0x30]                                |     r3 = var_30h;
                                                                 |     if (r3 != 0) {
    0x0006ceb8 cbz r3, 0x6cec4                                   |         
    0x0006ceba ldr r3, [r7, 0x3c]                                |         r3 = var_38h_2;
    0x0006cebc ldr r2, [r7, 0x30]                                |         r2 = var_30h;
    0x0006cebe str r3, [r2]                                      |         *(r2) = r3;
    0x0006cec0 movs r3, 0                                        |         r3 = 0;
    0x0006cec2 str r3, [r7, 0x3c]                                |         var_38h_2 = r3;
                                                                 |     }
    0x0006cec4 ldr r3, [r7, 0x34]                                |     r3 = var_34h;
                                                                 |     if (r3 != 0) {
    0x0006cec6 cbz r3, 0x6ced0                                   |         
    0x0006cec8 ldr r3, [r7, 0x34]                                |         r3 = var_34h;
    0x0006ceca str r6, [r3]                                      |         *(r3) = r6;
    0x0006cecc mov.w r6, -1                                      |         r6 = -1;
                                                                 |     }
    0x0006ced0 ldr r3, [r7, 0x2c]                                |     r3 = var_2ch;
    0x0006ced2 cmp r3, 0                                         |     
    0x0006ced4 ite eq                                            |     
                                                                 |     if (r3 != 0) {
    0x0006ced6 moveq r1, r4                                      |         r1 = r4;
                                                                 |     }
                                                                 |     if (r3 == 0) {
    0x0006ced8 movne r1, 1                                       |         r1 = 1;
                                                                 |     }
    0x0006ceda b 0x6c8b6                                         |     goto label_3;
                                                                 | label_69:
    0x0006cedc mov r1, sl                                        |     r1 = sl;
    0x0006cede str r3, [r7, 0x10]                                |     var_10h_2 = r3;
    0x0006cee0 blx 0x9020                                        |     r0 = fcn_00009020 ();
    0x0006cee4 cmp r0, 0                                         |     
    0x0006cee6 ldr r3, [r7, 0x10]                                |     r3 = var_10h_2;
                                                                 |     if (r0 < 0) {
    0x0006cee8 blt.w 0x6cff4                                     |         goto label_68;
                                                                 |     }
    0x0006ceec mov r1, sl                                        |     r1 = sl;
    0x0006ceee mov r0, fp                                        |     r0 = fp;
    0x0006cef0 str r3, [r7, 0x10]                                |     var_10h_2 = r3;
    0x0006cef2 bl 0x6c84c                                        |     fcn_0006c84c (r0, r1);
    0x0006cef6 ldr r3, [r7, 0x10]                                |     r3 = var_10h_2;
    0x0006cef8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0006cefa bne.w 0x6d00a                                     |         goto label_72;
                                                                 |     }
    0x0006cefe mov r1, sl                                        |     r1 = sl;
    0x0006cf00 mov r0, fp                                        |     r0 = fp;
    0x0006cf02 movs r2, 0x68                                     |     r2 = 0x68;
    0x0006cf04 str r3, [r7, 0x10]                                |     var_10h_2 = r3;
    0x0006cf06 blx 0x8f9c                                        |     fcn_00008f9c ();
    0x0006cf0a ldr r3, [r7, 0x10]                                |     r3 = var_10h_2;
    0x0006cf0c b 0x6ce34                                         |     goto label_15;
                                                                 | label_67:
    0x0006cf0e ldr r0, [pc, 0x168]                               |     
    0x0006cf10 add r0, pc                                        |     r0 = 0xd9f8e;
    0x0006cf12 b 0x6ce1c                                         |     goto label_16;
                                                                 | label_70:
    0x0006cf14 ldr r1, [r7, 4]                                   |     r1 = var_4h_2;
    0x0006cf16 b 0x6ce44                                         |     goto label_17;
                                                                 | label_62:
    0x0006cf18 mov r1, r0                                        |     r1 = r0;
    0x0006cf1a ldr.w r2, [r7, 0xb8]                              |     r2 = var_b8h;
    0x0006cf1e mov.w r3, -1                                      |     r3 = -1;
    0x0006cf22 movs r0, 0                                        |     r0 = 0;
    0x0006cf24 bl 0x74ccc                                        |     fcn_00074ccc ();
    0x0006cf28 mvn r1, 0xb                                       |     r1 = ~0xb;
    0x0006cf2c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0006cf2e bne.w 0x6ccd2                                     |         goto label_18;
                                                                 |     }
    0x0006cf32 b 0x6c8b6                                         |     goto label_3;
                                                                 | label_53:
    0x0006cf34 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x0006cf38 ldr r4, [r0]                                      |     r4 = *(r0);
    0x0006cf3a ldr r2, [r7, 0x1c]                                |     r2 = var_1ch;
    0x0006cf3c sub.w r3, r4, 2                                   |     r3 = r4 - 2;
    0x0006cf40 clz r3, r3                                        |     r3 &= r3;
    0x0006cf44 cmp r2, 0                                         |     
    0x0006cf46 lsr.w r3, r3, 5                                   |     r3 >>= 5;
    0x0006cf4a it eq                                             |     
                                                                 |     if (r2 != 0) {
    0x0006cf4c moveq r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r3 != 0) {
    0x0006cf4e cbnz r3, 0x6cf9c                                  |         goto label_73;
                                                                 |     }
                                                                 | label_21:
    0x0006cf50 rsbs r1, r4, 0                                    |     r1 = r4 - ;
    0x0006cf52 b 0x6cd12                                         |     goto label_8;
                                                                 | label_54:
    0x0006cf54 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x0006cf58 ldr r1, [r0]                                      |     r1 = *(r0);
    0x0006cf5a rsbs r1, r1, 0                                    |     r1 -= ;
    0x0006cf5c b 0x6cd12                                         |     goto label_8;
                                                                 | label_49:
    0x0006cf5e ldr r1, [pc, 0x11c]                               |     
    0x0006cf60 movw r2, 0x36f                                    |     r2 = 0x36f;
    0x0006cf64 ldr r3, [pc, 0x118]                               |     
    0x0006cf66 ldr r0, [pc, 0x11c]                               |     
    0x0006cf68 add r1, pc                                        |     r1 = 0xd9fea;
    0x0006cf6a add r3, pc                                        |     r3 = 0xd9fee;
    0x0006cf6c adds r1, 7                                        |     r1 += 7;
    0x0006cf6e add r0, pc                                        |     r0 = 0xd9ff8;
    0x0006cf70 bl 0x71518                                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_47:
    0x0006cf74 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x0006cf78 ldr r1, [r0]                                      |     r1 = *(r0);
    0x0006cf7a rsbs r1, r1, 0                                    |     r1 -= ;
    0x0006cf7c b 0x6ce7c                                         |     goto label_19;
                                                                 | label_71:
    0x0006cf7e ldr r2, [pc, 0x108]                               |     
    0x0006cf80 mov r3, r1                                        |     r3 = r1;
    0x0006cf82 add.w r0, r7, 0x3c                                |     r0 += var_38h_2;
    0x0006cf86 add r2, pc                                        |     r2 = 0xda014;
    0x0006cf88 bl 0x7ac34                                        |     r0 = fcn_0007ac34 (r0);
    0x0006cf8c mov r8, r0                                        |     r8 = r0;
    0x0006cf8e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0006cf90 bne 0x6cea0                                       |         goto label_20;
                                                                 |     }
                                                                 | label_41:
    0x0006cf92 mov.w sb, -1                                      |     sb = -1;
    0x0006cf96 mvn r1, 0xb                                       |     r1 = ~0xb;
    0x0006cf9a b 0x6cd12                                         |     goto label_8;
                                                                 | label_73:
    0x0006cf9c ldr r5, [r7, 0x44]                                |     r5 = var_44h;
                                                                 |     if (r5 == 0) {
    0x0006cf9e cbz r5, 0x6cfb0                                   |         goto label_74;
                                                                 |     }
    0x0006cfa0 ldrb r3, [r5]                                     |     r3 = *(r5);
                                                                 |     if (r3 == 0) {
    0x0006cfa2 cbz r3, 0x6cfb0                                   |         goto label_74;
                                                                 |     }
    0x0006cfa4 movs r1, 0                                        |     r1 = 0;
    0x0006cfa6 mov r0, r5                                        |     r0 = r5;
    0x0006cfa8 bl 0x75754                                        |     r0 = fcn_00075754 (r0, r1);
    0x0006cfac cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006cfae beq 0x6cf50                                       |         goto label_21;
                                                                 |     }
                                                                 | label_74:
    0x0006cfb0 mov r2, r5                                        |     r2 = r5;
    0x0006cfb2 mov.w r3, -1                                      |     r3 = -1;
    0x0006cfb6 mov r1, r8                                        |     r1 = r8;
    0x0006cfb8 add.w r0, r7, 0x3c                                |     r0 += var_38h_2;
    0x0006cfbc movs r4, 0                                        |     r4 = 0;
    0x0006cfbe bl 0x74ccc                                        |     r0 = fcn_00074ccc ();
    0x0006cfc2 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0006cfc4 bne.w 0x6ceaa                                     |         goto label_22;
                                                                 |     }
                                                                 | label_63:
    0x0006cfc8 mvn r1, 0xb                                       |     r1 = ~0xb;
    0x0006cfcc b 0x6cd12                                         |     goto label_8;
                                                                 | label_43:
    0x0006cfce mov.w sb, -1                                      |     sb = -1;
    0x0006cfd2 mvn r1, 0xb                                       |     r1 = ~0xb;
    0x0006cfd6 b 0x6ce7c                                         |     goto label_19;
                                                                 | label_46:
    0x0006cfd8 mov.w r0, -1                                      |     r0 = -1;
    0x0006cfdc mov sb, r0                                        |     sb = r0;
    0x0006cfde bl 0x69a04                                        |     fcn_00069a04 (r0, r1, r2, r3);
    0x0006cfe2 b 0x6cca0                                         |     goto label_23;
                                                                 | label_58:
    0x0006cfe4 ldr r0, [r7, 0x14]                                |     r0 = var_14h;
    0x0006cfe6 mvn r1, 0x27                                      |     r1 = ~0x27;
    0x0006cfea b 0x6cd0a                                         |     goto label_12;
                                                                 | label_61:
    0x0006cfec ldr r0, [r7, 0x4c]                                |     r0 = var_4ch;
    0x0006cfee mvn r1, 0xb                                       |     r1 = ~0xb;
    0x0006cff2 b 0x6cd0a                                         |     goto label_12;
                                                                 | label_68:
    0x0006cff4 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x0006cff8 ldr r1, [r0]                                      |     r1 = *(r0);
    0x0006cffa ldr r0, [r7, 0x4c]                                |     r0 = var_4ch;
    0x0006cffc rsbs r1, r1, 0                                    |     r1 -= ;
    0x0006cffe b 0x6cd0a                                         |     goto label_12;
                                                                 | label_66:
    0x0006d000 ldr r1, [pc, 0x88]                                |     
    0x0006d002 add r1, pc                                        |     r1 = 0xda092;
    0x0006d004 b 0x6cd9a                                         |     goto label_24;
                                                                 | label_29:
    0x0006d006 blx 0x927c                                        |     fprintf_chk ()
                                                                 | label_72:
    0x0006d00a mov r1, r6                                        |     r1 = r6;
    0x0006d00c mov r3, r5                                        |     r3 = r5;
    0x0006d00e mov r2, r4                                        |     r2 = r4;
    0x0006d010 mov r0, sb                                        |     r0 = sb;
    0x0006d012 bl 0x6bcd0                                        |     r0 = fcn_0006bcd0 (r0, r1, r2, r3);
    0x0006d016 mov r1, r0                                        |     r1 = r0;
    0x0006d018 ldr r0, [r7, 0x4c]                                |     r0 = var_4ch;
    0x0006d01a b 0x6cd0a                                         |     goto label_12;
                                                                 | label_65:
    0x0006d01c mvn r1, 0x41                                      |     r1 = ~0x41;
    0x0006d020 b 0x6cdc8                                         |     goto label_25;
                                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6d090 */
                                                 | #include <stdint.h>
                                                 |  
                                                 | #define SWAP32(n) ((uint32_t) (((n & 0x000000ff) << 24) | \
                                                 |                                ((n & 0x0000ff00) <<  8) | \
                                                 |                                ((n & 0x00ff0000) >>  8) | \
                                                 |                                ((n & 0xff000000) >> 24)))
                                                 |  
    ; (fcn) fcn.0006d090 ()                      | void fcn_0006d090 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                 |     int16_t var_14h;
                                                 |     int16_t var_84h;
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 |     r2 = arg3;
    0x0006d090 push {r4, r5, r6, lr}             |     
    0x0006d092 mov r6, r2                        |     r6 = r2;
    0x0006d094 ldr r4, [pc, 0x74]                |     
    0x0006d096 sub sp, 8                         |     
    0x0006d098 movs r3, 0                        |     r3 = 0;
    0x0006d09a mov r5, r1                        |     r5 = r1;
    0x0006d09c ldr r2, [pc, 0x70]                |     r2 = *(0x6d110);
    0x0006d09e mov r1, sp                        |     r1 = sp;
    0x0006d0a0 add r4, pc                        |     r4 = 0xda1b0;
    0x0006d0a2 ldr r2, [r4, r2]                  |     
    0x0006d0a4 ldr r2, [r2]                      |     r2 = *(0xda1b0);
    0x0006d0a6 str r2, [sp, 4]                   |     var_4h = r2;
    0x0006d0a8 mov.w r2, 0                       |     r2 = 0;
    0x0006d0ac str r3, [sp]                      |     *(sp) = r3;
    0x0006d0ae bl 0x75a54                        |     fcn_00075a54 (r0, r1);
    0x0006d0b0 ldc2l p14, c1, [r1], {4}          |     __asm ("ldc2l p14, c1, [r1], {4}");
                                                 |     if (r3 < 0) {
    0x0006d0b4 blt 0x6d0dc                       |         goto label_0;
                                                 |     }
    0x0006d0b6 mov.w r3, 0x4000                  |     r3 = 0x4000;
    0x0006d0ba ldr r0, [sp]                      |     r0 = *(sp);
    0x0006d0bc mov r2, r3                        |     r2 = r3;
    0x0006d0be movt r3, 0x60                     |     r3 = (r3 & 0xFFFF) | 0x600000;
    0x0006d0c2 ands r3, r5                       |     r3 &= r5;
    0x0006d0c4 movt r2, 0x40                     |     r2 = (r2 & 0xFFFF) | 0x400000;
    0x0006d0c8 cmp r3, r2                        |     
    0x0006d0ca mov r2, r6                        |     r2 = r6;
    0x0006d0cc it ne                             |     
                                                 |     if (r3 == r2) {
    0x0006d0ce orrne r5, r5, 0x4000              |         r5 |= 0x4000;
                                                 |     }
    0x0006d0d2 mov r1, r5                        |     r1 = r5;
    0x0006d0d4 blx 0x908c                        |     r0 = fcn_0000908c ();
    0x0006d0d8 subs r4, r0, 0                    |     r4 = r0 - 0;
    0x0006d0da blt 0x6d0fc                       |     
                                                 |     while (1) {
                                                 | label_0:
    0x0006d0dc ldr r0, [sp]                      |         r0 = *(sp);
    0x0006d0de blx 0x8dac                        |         fcn_00008dac ();
    0x0006d0e2 ldr r2, [pc, 0x30]                |         
    0x0006d0e4 ldr r3, [pc, 0x28]                |         r3 = *(0x6d110);
    0x0006d0e6 add r2, pc                        |         r2 = 0xda200;
    0x0006d0e8 ldr r3, [r2, r3]                  |         r3 = *(0xda200);
    0x0006d0ea ldr r2, [r3]                      |         r2 = *(0xda200);
    0x0006d0ec ldr r3, [sp, 4]                   |         r3 = var_4h;
    0x0006d0ee eors r2, r3                       |         r2 ^= r3;
    0x0006d0f0 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0006d0f4 bne 0x6d106                       |             goto label_1;
                                                 |         }
    0x0006d0f6 mov r0, r4                        |         r0 = r4;
    0x0006d0f8 add sp, 8                         |         
    0x0006d0fa pop {r4, r5, r6, pc}              |         
    0x0006d0fc blx 0x9628                        |         r0 = fcn_00009628 ();
    0x0006d100 ldr r4, [r0]                      |         r4 = *(r0);
    0x0006d102 rsbs r4, r4, 0                    |         r4 -= ;
    0x0006d104 b 0x6d0dc                         |         
                                                 |     }
                                                 | label_1:
    0x0006d106 blx 0x927c                        |     fprintf_chk ()
    0x0006d10a nop                               |     
    0x0006d10c rev r4, r4                        |     r4 = SWAP32 (r4);
    0x0006d10e movs r5, r0                       |     r5 = r0;
    0x0006d110 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x0006d112 movs r0, r0                       |     
                                                 |     if (r6 != 0) {
    0x0006d114 cbnz r6, 0x6d14e                  |         void (*0x6d14e)() ();
                                                 |     }
    0x0006d116 movs r5, r0                       |     r5 = r0;
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6d118 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0006d118 ()                  | void fcn_0006d118 (int16_t arg1) {
                                             |     int32_t var_0h;
                                             |     int32_t var_0h_2;
                                             |     int32_t var_8h;
                                             |     int32_t var_8h_2;
                                             |     int16_t var_14h;
                                             |     int16_t var_18h;
                                             |     int16_t var_28h;
                                             |     int16_t var_84h;
                                             |     r0 = arg1;
    0x0006d118 push {r4, r5, r6, lr}         |     
    0x0006d11a movs r6, 0                    |     r6 = 0;
    0x0006d11c ldr r4, [pc, 0x140]           |     
    0x0006d11e sub sp, 0x88                  |     
    0x0006d120 ldr r1, [pc, 0x140]           |     r1 = *(0x6d264);
    0x0006d122 add r4, pc                    |     r4 = 0xda386;
    0x0006d124 ldr r1, [r4, r1]              |     
    0x0006d126 subs r4, r0, 0                |     r4 = r0 - 0;
    0x0006d128 ldr r1, [r1]                  |     r1 = *(0xda386);
    0x0006d12a str r1, [sp, 0x84]            |     var_84h = r1;
    0x0006d12c mov.w r1, 0                   |     r1 = 0;
    0x0006d12e lsls r0, r0, 4                |     r0 <<= 4;
    0x0006d130 str r6, [sp, 0x14]            |     var_14h = r6;
                                             |     if (r0 < r0) {
    0x0006d132 blt 0x6d1d8                   |         goto label_4;
                                             |     }
    0x0006d134 add r1, sp, 0x18              |     r1 += var_18h;
    0x0006d136 blx 0x9020                    |     r0 = fcn_00009020 ();
    0x0006d13a cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x0006d13c blt 0x6d1a0                   |         goto label_5;
                                             |     }
    0x0006d13e ldr r1, [sp, 0x28]            |     r1 = var_28h;
    0x0006d140 and r1, r1, 0xf000            |     r1 &= 0xf000;
    0x0006d144 cmp.w r1, 0x8000              |     
                                             |     if (r1 == 0x8000) {
    0x0006d148 beq 0x6d1ae                   |         goto label_6;
                                             |     }
    0x0006d14a cmp.w r1, 0x4000              |     
                                             |     if (r1 != 0x4000) {
    0x0006d14e bne 0x6d22e                   |         goto label_7;
                                             |     }
    0x0006d150 ldr r1, [pc, 0x114]           |     
    0x0006d152 mov r0, r4                    |     r0 = r4;
    0x0006d154 mov r3, r6                    |     r3 = r6;
    0x0006d156 mov.w r2, 0x84000             |     r2 = 0x84000;
    0x0006d15a add r1, pc                    |     r1 = 0xda3c6;
    0x0006d15c blx 0x8e0c                    |     r0 = fcn_00008e0c ();
    0x0006d160 subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 < r0) {
    0x0006d162 blt 0x6d196                   |         goto label_8;
                                             |     }
                                             | label_1:
    0x0006d164 mov r0, r4                    |     r0 = r4;
    0x0006d166 blx 0x8c9c                    |     r0 = fcn_00008c9c ();
    0x0006d16a cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x0006d16c blt 0x6d196                   |         goto label_8;
                                             |     }
                                             | label_2:
    0x0006d16e movs r5, 0                    |     r5 = 0;
                                             |     do {
                                             | label_0:
    0x0006d170 mov r0, r4                    |         r0 = r4;
    0x0006d172 bl 0x69a04                    |         fcn_00069a04 (r0, r1, r2, r3);
    0x0006d176 ldr r0, [sp, 0x14]            |         r0 = var_14h;
    0x0006d178 blx 0x8dac                    |         fcn_00008dac ();
    0x0006d17c ldr r2, [pc, 0xec]            |         
    0x0006d17e ldr r3, [pc, 0xe4]            |         r3 = *(0x6d266);
    0x0006d180 add r2, pc                    |         r2 = 0xda3f0;
    0x0006d182 ldr r3, [r2, r3]              |         r3 = *(0xda3f0);
    0x0006d184 ldr r2, [r3]                  |         r2 = *(0xda3f0);
    0x0006d186 ldr r3, [sp, 0x84]            |         r3 = var_84h;
    0x0006d188 eors r2, r3                   |         r2 ^= r3;
    0x0006d18a mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x0006d18e bne 0x6d25c                   |             goto label_9;
                                             |         }
    0x0006d190 mov r0, r5                    |         r0 = r5;
    0x0006d192 add sp, 0x88                  |         
    0x0006d194 pop {r4, r5, r6, pc}          |         
                                             | label_8:
    0x0006d196 blx 0x9628                    |         r0 = fcn_00009628 ();
    0x0006d19a ldr r5, [r0]                  |         r5 = *(r0);
    0x0006d19c rsbs r5, r5, 0                |         r5 -= ;
    0x0006d19e b 0x6d170                     |         
                                             |     } while (1);
                                             | label_5:
    0x0006d1a0 blx 0x9628                    |     r0 = fcn_00009628 ();
    0x0006d1a4 ldr r5, [r0]                  |     r5 = *(r0);
    0x0006d1a6 mov.w r4, -1                  |     r4 = -1;
    0x0006d1aa rsbs r5, r5, 0                |     r5 -= ;
    0x0006d1ac b 0x6d170                     |     goto label_0;
                                             | label_6:
    0x0006d1ae add r1, sp, 0x14              |     r1 += var_14h;
    0x0006d1b0 mov r0, r4                    |     r0 = r4;
    0x0006d1b2 bl 0x6a120                    |     r0 = fcn_0006a120 (r0, r1, r2);
    0x0006d1b6 subs r5, r0, 0                |     r5 = r0 - 0;
                                             |     if (r5 < r0) {
    0x0006d1b8 blt 0x6d1ee                   |         goto label_10;
                                             |     }
    0x0006d1ba ldr r0, [sp, 0x14]            |     r0 = var_14h;
    0x0006d1bc cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x0006d1be beq 0x6d23e                   |         goto label_11;
                                             |     }
    0x0006d1c0 ldrb r3, [r0]                 |     r3 = *(r0);
    0x0006d1c2 cmp r3, 0x2f                  |     
                                             |     if (r3 != 0x2f) {
    0x0006d1c4 bne 0x6d252                   |         goto label_12;
                                             |     }
    0x0006d1c6 mov r2, r6                    |     r2 = r6;
    0x0006d1c8 mov.w r1, 0x88000             |     r1 = 0x88000;
    0x0006d1cc bl 0x6d090                    |     r0 = fcn_0006d090 (r0, r1, r2);
    0x0006d1d0 subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 >= r0) {
    0x0006d1d2 bge 0x6d164                   |         goto label_1;
                                             |     }
    0x0006d1d4 mov r5, r4                    |     r5 = r4;
    0x0006d1d6 b 0x6d170                     |     goto label_0;
                                             | label_4:
    0x0006d1d8 ldr r1, [pc, 0x94]            |     
    0x0006d1da movw r2, 0x56a                |     r2 = 0x56a;
    0x0006d1de ldr r3, [pc, 0x94]            |     
    0x0006d1e0 ldr r0, [pc, 0x94]            |     
    0x0006d1e2 add r1, pc                    |     r1 = 0xda456;
    0x0006d1e4 add r3, pc                    |     r3 = 0xda45e;
    0x0006d1e6 adds r1, 7                    |     r1 += 7;
    0x0006d1e8 add r0, pc                    |     r0 = 0xda464;
    0x0006d1ea bl 0x71518                    |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                             | label_10:
    0x0006d1ee bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x0006d1f2 cmp r0, 6                     |     
                                             |     if (r0 > 6) {
    0x0006d1f4 ble 0x6d222                   |         
    0x0006d1f6 cmn.w r5, 0x26                |         
                                             |         if (r5 == 0x26) {
    0x0006d1fa beq 0x6d238                   |             goto label_13;
                                             |         }
    0x0006d1fc ldr r3, [pc, 0x7c]            |         
    0x0006d1fe add r3, pc                    |         r3 = 0xda47e;
                                             | label_3:
    0x0006d200 ldr r2, [pc, 0x7c]            |         
    0x0006d202 ldr r0, [pc, 0x80]            |         
    0x0006d204 ldr r1, [pc, 0x80]            |         
    0x0006d206 add r2, pc                    |         r2 = 0xda48a;
    0x0006d208 strd r4, r3, [sp, 8]          |         __asm ("strd r4, r3, [var_8h]");
    0x0006d20c add r0, pc                    |         r0 = 0xda496;
    0x0006d20e movw r3, 0x574                |         r3 = 0x574;
    0x0006d212 add r1, pc                    |         r1 = 0xda49e;
    0x0006d214 adds r2, 7                    |         r2 += 7;
    0x0006d216 strd r1, r0, [sp]             |         __asm ("strd r1, r0, [sp]");
    0x0006d21a mov r1, r5                    |         r1 = r5;
    0x0006d21c movs r0, 7                    |         r0 = 7;
    0x0006d21e bl 0x71448                    |         fcn_00071448 ();
                                             |     }
    0x0006d222 cmn.w r5, 0x26                |     
    0x0006d226 mov.w r4, -1                  |     r4 = -1;
                                             |     if (r5 != 0x26) {
    0x0006d22a bne 0x6d170                   |         goto label_0;
                                             |     }
    0x0006d22c b 0x6d16e                     |     goto label_2;
                                             | label_7:
    0x0006d22e mov.w r4, -1                  |     r4 = -1;
    0x0006d232 mvn r5, 0x18                  |     r5 = ~0x18;
    0x0006d236 b 0x6d170                     |     goto label_0;
                                             | label_13:
    0x0006d238 ldr r3, [pc, 0x50]            |     
    0x0006d23a add r3, pc                    |     r3 = 0xda4ca;
    0x0006d23c b 0x6d200                     |     goto label_3;
                                             | label_11:
    0x0006d23e ldr r1, [pc, 0x50]            |     
    0x0006d240 movs r2, 0x33                 |     r2 = 0x33;
    0x0006d242 ldr r3, [pc, 0x50]            |     
    0x0006d244 ldr r0, [pc, 0x50]            |     
    0x0006d246 add r1, pc                    |     r1 = 0xda4dc;
    0x0006d248 add r3, pc                    |     r3 = 0xda4e2;
    0x0006d24a adds r1, 7                    |     r1 += 7;
    0x0006d24c add r0, pc                    |     r0 = 0xda4e8;
    0x0006d24e bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_12:
    0x0006d252 mov.w r4, -1                  |     r4 = -1;
    0x0006d256 mvn r5, 0x15                  |     r5 = ~0x15;
    0x0006d25a b 0x6d170                     |     goto label_0;
                                             | label_9:
    0x0006d25c blx 0x927c                    |     fprintf_chk ()
                                             |     if (r2 == 0) {
    0x0006d260 cbnz r2, 0x6d28c              |         
    0x0006d262 movs r5, r0                   |         r5 = r0;
    0x0006d264 lsls r0, r0, 0x13             |         r0 <<= 0x13;
    0x0006d266 movs r0, r0                   |         
                                             |         if (r0 != r0) {
    0x0006d268 beq 0x6d280                   |             
    0x0006d26a movs r2, r0                   |             r2 = r0;
                                             |             if (r4 != 0) {
    0x0006d26c cbnz r4, 0x6d280              |                 goto label_14;
                                             |             }
    0x0006d26e movs r5, r0                   |             r5 = r0;
    0x0006d270 ldr r2, [r5, 0x38]            |             r2 = *((r5 + 0x38));
    0x0006d272 movs r3, r0                   |             r3 = r0;
    0x0006d274 ldr r4, [r5, 0x6c]            |             r4 = *((r5 + 0x6c));
    0x0006d276 movs r3, r0                   |             r3 = r0;
    0x0006d278 lsrs r4, r0, 0x19             |             r4 = r0 >> 0x19;
    0x0006d27a movs r3, r0                   |             r3 = r0;
    0x0006d27c ldrsb r6, [r1, r3]            |             r6 = *((r1 + r3));
    0x0006d27e movs r1, r0                   |             r1 = r0;
                                             |         }
                                             | label_14:
    0x0006d280 ldr r6, [r0, 0x38]            |         r6 = *((r0 + 0x38));
    0x0006d282 movs r3, r0                   |         r3 = r0;
    0x0006d284 ldr r4, [r5, 0x60]            |         r4 = *((r5 + 0x60));
    0x0006d286 movs r3, r0                   |         r3 = r0;
    0x0006d288 ldr r2, [r1, 0x74]            |         r2 = *((r1 + 0x74));
    0x0006d28a movs r3, r0                   |         r3 = r0;
                                             |     }
    0x0006d28c stm r6!, {r1, r2, r5}         |     *(r6!) = r1;
                                             |     *((r6! + 4)) = r2;
                                             |     *((r6! + 8)) = r5;
    0x0006d28e movs r2, r0                   |     r2 = r0;
    0x0006d290 movs r1, 0x72                 |     r1 = 0x72;
    0x0006d292 movs r2, r0                   |     r2 = r0;
    0x0006d294 ldr r4, [r7, 0x60]            |     r4 = *((r7 + 0x60));
    0x0006d296 movs r3, r0                   |     r3 = r0;
    0x0006d298 ldm r6, {r2, r6, r7}          |     r2 = *(r6);
                                             |     r6 = *((r6 + 4));
                                             |     r7 = *((r6 + 8));
    0x0006d29a movs r1, r0                   |     r1 = r0;
    0x0006d29c b.w 0x91a4                    |     return void (*0x91a4)() ();
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6d374 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0006d374 ()                  | void fcn_0006d374 (int16_t arg1) {
                                             |     int16_t var_0h;
                                             |     int16_t var_24h;
                                             |     r0 = arg1;
    0x0006d374 ldr.w ip, [pc, 0x78]          |     
    0x0006d378 movs r2, 0x24                 |     r2 = 0x24;
    0x0006d37a ldr r3, [pc, 0x78]            |     r3 = *(0x6d3f6);
    0x0006d37c movs r1, 0                    |     r1 = 0;
    0x0006d37e push {r4, r5, lr}             |     
    0x0006d380 sub sp, 0x2c                  |     
    0x0006d382 add ip, pc                    |     ip = 0xda776;
    0x0006d384 mov r4, r0                    |     r4 = r0;
    0x0006d386 mov r5, sp                    |     r5 = sp;
    0x0006d388 ldr.w r3, [ip, r3]            |     
    0x0006d38c mov r0, r5                    |     r0 = r5;
    0x0006d38e ldr r3, [r3]                  |     r3 = *(0xda776);
    0x0006d390 str r3, [sp, 0x24]            |     var_24h = r3;
    0x0006d392 mov.w r3, 0                   |     r3 = 0;
    0x0006d396 blx 0x8c54                    |     fcn_00008c54 ();
                                             |     if (r4 != 0) {
    0x0006d39a cbz r4, 0x6d3d8               |         
    0x0006d39c mov r0, r4                    |         r0 = r4;
    0x0006d39e mov r2, r5                    |         r2 = r5;
    0x0006d3a0 movw r1, 0x404                |         r1 = 0x404;
    0x0006d3a4 bl 0x6d2a0                    |         r0 = fcn_0006d2a0 (r0, r1, r2);
    0x0006d3a8 adds r3, r0, 2                |         r3 = r0 + 2;
    0x0006d3aa mov r4, r0                    |         r4 = r0;
    0x0006d3ac it eq                         |         
                                             |         if (r3 != r0) {
    0x0006d3ae moveq r4, 0                   |             r4 = 0;
                                             |         }
                                             |         if (r3 != r0) {
    0x0006d3b0 beq 0x6d3b8                   |             
    0x0006d3b2 cmp r4, 0                     |             
    0x0006d3b4 it ge                         |             
                                             |             if (r4 >= 0) {
    0x0006d3b6 movge r4, 1                   |                 r4 = 1;
                                             |                 goto label_0;
                                             |             }
                                             |         }
                                             | label_0:
    0x0006d3b8 mov r0, r5                    |         r0 = r5;
    0x0006d3ba blx 0x8e6c                    |         fcn_00008e6c ();
    0x0006d3be ldr r2, [pc, 0x38]            |         
    0x0006d3c0 ldr r3, [pc, 0x30]            |         r3 = *(0x6d3f4);
    0x0006d3c2 add r2, pc                    |         r2 = 0xda7c0;
    0x0006d3c4 ldr r3, [r2, r3]              |         r3 = *(0xda7c0);
    0x0006d3c6 ldr r2, [r3]                  |         r2 = *(0xda7c0);
    0x0006d3c8 ldr r3, [sp, 0x24]            |         r3 = var_24h;
    0x0006d3ca eors r2, r3                   |         r2 ^= r3;
    0x0006d3cc mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x0006d3d0 bne 0x6d3ec                   |             goto label_1;
                                             |         }
    0x0006d3d2 mov r0, r4                    |         r0 = r4;
    0x0006d3d4 add sp, 0x2c                  |         
    0x0006d3d6 pop {r4, r5, pc}              |         
                                             |     }
    0x0006d3d8 ldr r1, [pc, 0x20]            |     
    0x0006d3da movs r2, 0x36                 |     r2 = 0x36;
    0x0006d3dc ldr r3, [pc, 0x20]            |     
    0x0006d3de ldr r0, [pc, 0x24]            |     
    0x0006d3e0 add r1, pc                    |     r1 = 0xda7e0;
    0x0006d3e2 add r3, pc                    |     r3 = 0xda7e6;
    0x0006d3e4 adds r1, 7                    |     r1 += 7;
    0x0006d3e6 add r0, pc                    |     r0 = 0xda7f0;
    0x0006d3e8 bl 0x71518                    |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                             | label_1:
    0x0006d3ec blx 0x927c                    |     fprintf_chk ()
    0x0006d3f0 invalid                       |     
                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6d6d4 */
                                                     | #include <stdint.h>
                                                     |  
                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                     |  
    ; (fcn) fcn.0006d6d4 ()                          | void fcn_0006d6d4 (int16_t arg1, int16_t arg2) {
                                                     |     int16_t var_0h;
                                                     |     int16_t var_34h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0006d6d4 blmi 0x87ff58                         |     __asm ("blmi aav.0x0005b3e8");
    0x0006d6d8 push {r4, r5, r6, lr}                 |     
    0x0006d6da sub sp, 0x38                          |     
    0x0006d6dc add r2, pc                            |     r2 += pc;
    0x0006d6de mov r6, r1                            |     r6 = r1;
    0x0006d6e0 mov r4, r0                            |     r4 = r0;
    0x0006d6e2 ldr r3, [r2, r3]                      |     r3 = *((r2 + r3));
    0x0006d6e4 ldr r3, [r3]                          |     r3 = *(r3);
    0x0006d6e6 str r3, [sp, 0x34]                    |     var_34h = r3;
    0x0006d6e8 mov.w r3, 0                           |     r3 = 0;
    0x0006d6ec ldrb.w r3, [r0, 0x27]                 |     r3 = *((r0 + 0x27));
    0x0006d6f0 lsls r1, r3, 0x1d                     |     r1 = r3 << 0x1d;
    0x0006d6f2 it mi                                 |     
                                                     |     if (r1 >= r3) {
    0x0006d6f4 addmi r1, r0, 8                       |         r1 = r0 + 8;
                                                     |     }
                                                     |     if (r1 >= r3) {
    0x0006d6f8 bmi 0x6d6fe                           |         
    0x0006d6fa ldr r1, [pc, 0x60]                    |         
    0x0006d6fc add r1, pc                            |         r1 = 0xdae5e;
                                                     |     }
    0x0006d6fe mov r5, sp                            |     r5 = sp;
    0x0006d700 mov r0, r5                            |     r0 = r5;
    0x0006d702 bl 0x78af4                            |     fcn_00078af4 (r0, r1);
    0x0006d706 ldr r3, [r4]                          |     r3 = *(r4);
    0x0006d708 mov r1, r5                            |     r1 = r5;
    0x0006d70a mov r0, r6                            |     r0 = r6;
    0x0006d70c ldr r3, [r3]                          |     r3 = *(r3);
    0x0006d70e blx r3                                |     uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x0006d710 mov r0, r5                            |     r0 = r5;
    0x0006d712 bl 0x78e88                            |     fcn_00078e88 (r0, r1);
    0x0006d716 ldrb.w r3, [r4, 0x27]                 |     r3 = *((r4 + 0x27));
    0x0006d71a lsls r2, r3, 0x1d                     |     r2 = r3 << 0x1d;
                                                     |     if (r2 >= r3) {
    0x0006d71c bpl 0x6d740                           |         goto label_1;
                                                     |     }
    0x0006d71e ldr r2, [r4, 0x1c]                    |     r2 = *((r4 + 0x1c));
                                                     |     do {
    0x0006d720 movs r3, 0                            |         r3 = 0;
    0x0006d722 bl 0x80fd8                            |         fcn_00080fd8 (r0, r1, r2, r3);
    0x0006d726 mov r0, r2                            |         r0 = r2;
    0x0006d728 ldr r2, [pc, 0x34]                    |         
    0x0006d72a ldr r3, [pc, 0x2c]                    |         r3 = *(0x6d75a);
    0x0006d72c add r2, pc                            |         r2 = 0xdae90;
    0x0006d72e ldr r3, [r2, r3]                      |         r3 = *(0xdae90);
    0x0006d730 ldr r2, [r3]                          |         r2 = *(0xdae90);
    0x0006d732 ldr r3, [sp, 0x34]                    |         r3 = var_34h;
    0x0006d734 eors r2, r3                           |         r2 ^= r3;
    0x0006d736 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0006d73a bne 0x6d750                           |             goto label_2;
                                                     |         }
    0x0006d73c add sp, 0x38                          |         
    0x0006d73e pop {r4, r5, r6, pc}                  |         
                                                     | label_1:
    0x0006d740 ldr r2, [pc, 0x20]                    |         
    0x0006d742 and r3, r3, 3                         |         r3 &= 3;
    0x0006d746 add r2, pc                            |         r2 = 0xdaeae;
    0x0006d748 add.w r3, r2, r3, lsl 4               |         r3 = r2 + (r3 << 4);
    0x0006d74c ldr r2, [r3, 0xc]                     |         r2 = *((r3 + 0xc));
    0x0006d74e b 0x6d720                             |         
                                                     |     } while (1);
                                                     | label_2:
    0x0006d750 blx 0x927c                            |     r0 = fprintf_chk ()
                                                     |     if (r0 != 0) {
    0x0006d754 cbz r0, 0x6d7d2                       |         
    0x0006d756 movs r5, r0                           |         r5 = r0;
    0x0006d758 lsls r0, r0, 0x13                     |         r0 <<= 0x13;
    0x0006d75a movs r0, r0                           |         
    0x0006d75c stm r6!, {r2, r3, r5, r6, r7}         |         *(r6!) = r2;
                                                     |         *((r6! + 4)) = r3;
                                                     |         *((r6! + 8)) = r5;
                                                     |         *((r6! + 12)) = r6;
                                                     |         *((r6! + 16)) = r7;
    0x0006d75e movs r5, r0                           |         r5 = r0;
                                                     |         if (r0 != 0) {
    0x0006d760 cbz r0, 0x6d7ca                       |             
    0x0006d762 movs r5, r0                           |             r5 = r0;
    0x0006d764 adr r5, 0x88                          |             r5 = 0x88;
    0x0006d766 movs r5, r0                           |             r5 = r0;
                                                     |         }
    0x0006d7ca rors r0, r6                           |         __asm ("rors r0, r6");
    0x0006d7cc mov r6, r0                            |         r6 = r0;
    0x0006d7ce ldr r7, [pc, 0x90]                    |         r7 = *(0x6d862);
    0x0006d7d0 mov r5, r1                            |         r5 = r1;
                                                     |     }
    0x0006d7d2 bl 0x72738                            |     fcn_00072738 ();
    0x0006d7d6 add r7, pc                            |     r7 += pc;
    0x0006d7d8 mov r8, r0                            |     r8 = r0;
                                                     |     if (r0 == 0) {
    0x0006d7da cbz r0, 0x6d82a                       |         goto label_3;
                                                     |     }
    0x0006d7dc ldr r3, [pc, 0x84]                    |     
    0x0006d7de add r3, pc                            |     r3 = 0xdb046;
    0x0006d7e0 add.w r3, r3, r5, lsl 4               |     r3 += (r5 << 4);
    0x0006d7e4 ldr r0, [r3, 8]                       |     r0 = *((r3 + 8));
    0x0006d7e6 bl 0x72710                            |     r0 = fcn_00072710 (r0);
    0x0006d7ea mov r4, r0                            |     r4 = r0;
                                                     |     do {
                                                     |         if (r4 != 0) {
    0x0006d7ec cbz r4, 0x6d824                       |             
    0x0006d7ee ldrb.w r3, [r4, 0x27]                 |             r3 = *((r4 + 0x27));
    0x0006d7f2 bfi r3, r5, 0, 2                      |             value_0 = BIT_MASK (0, 2);
                                                     |             value_1 = r5 & value_0;
                                                     |             value_0 = ~value_0;
                                                     |             r3 &= value_0;
                                                     |             r3 |= value_1;
    0x0006d7f6 bfi r3, r8, 6, 1                      |             value_2 = BIT_MASK (6, 1);
                                                     |             value_3 = r8 & value_2;
                                                     |             value_2 = ~value_2;
                                                     |             r3 &= value_2;
                                                     |             r3 |= value_3;
    0x0006d7fa strb.w r3, [r4, 0x27]                 |             *((r4 + 0x27)) = r3;
                                                     |             if (r6 == 0) {
    0x0006d7fe cbz r6, 0x6d842                       |                 goto label_4;
                                                     |             }
                                                     | label_0:
    0x0006d800 cmp r5, 1                             |             
    0x0006d802 mov r0, r4                            |             r0 = r4;
    0x0006d804 it eq                                 |             
                                                     |             if (r5 != 1) {
    0x0006d806 moveq r3, -1                          |                 r3 = -1;
                                                     |             }
    0x0006d80a str r6, [r4]                          |             *(r4) = r6;
    0x0006d80c it eq                                 |             
                                                     |             if (r5 == 1) {
    0x0006d80e strdeq r3, r3, [r4, 0x2c]             |                 __asm ("strdeq r3, r3, [r4, 0x2c]");
                                                     |             }
    0x0006d812 bl 0x6d768                            |             fcn_0006d768 (r0);
    0x0006d816 ldr r1, [pc, 0x50]                    |             
    0x0006d818 ldr r0, [pc, 0x50]                    |             
    0x0006d81a add r1, pc                            |             r1 = 0xdb088;
    0x0006d81c add r0, pc                            |             r0 = 0xdb08c;
    0x0006d81e blx 0x8d08                            |             r0 = fcn_00008d08 ();
                                                     |             if (r0 != 0) {
    0x0006d822 cbnz r0, 0x6d848                      |                 goto label_5;
                                                     |             }
                                                     |         }
    0x0006d824 mov r0, r4                            |         r0 = r4;
    0x0006d826 pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_3:
    0x0006d82a ldr r3, [pc, 0x44]                    |         
    0x0006d82c lsls r2, r5, 4                        |         r2 = r5 << 4;
    0x0006d82e movs r0, 1                            |         r0 = 1;
    0x0006d830 add r3, pc                            |         r3 = 0xdb0a6;
    0x0006d832 ldr r1, [r3, r2]                      |         r1 = *(0xdb0a6);
    0x0006d834 cmp r1, 1                             |         
    0x0006d836 it lo                                 |         
                                                     |         if (r1 >= 1) {
    0x0006d838 movlo r1, 1                           |             r1 = 1;
                                                     |         }
    0x0006d83a blx 0x8c20                            |         r0 = fcn_00008c20 ();
    0x0006d83e mov r4, r0                            |         r4 = r0;
    0x0006d840 b 0x6d7ec                             |         
                                                     |     } while (1);
                                                     | label_4:
    0x0006d842 ldr r3, [pc, 0x30]                    |     r3 = *(0x6d876);
    0x0006d844 ldr r6, [r7, r3]                      |     r6 = *((r7 + r3));
    0x0006d846 b 0x6d800                             |     goto label_0;
                                                     | label_5:
    0x0006d848 ldr r1, [pc, 0x2c]                    |     
    0x0006d84a movw r2, 0x319                        |     r2 = 0x319;
    0x0006d84e ldr r3, [pc, 0x2c]                    |     
    0x0006d850 ldr r0, [pc, 0x2c]                    |     
    0x0006d852 add r1, pc                            |     r1 = 0xdb0ce;
    0x0006d854 add r3, pc                            |     r3 = 0xdb0d6;
    0x0006d856 adds r1, 7                            |     r1 += 7;
    0x0006d858 add r0, pc                            |     r0 = 0xdb0dc;
    0x0006d85a bl 0x71518                            |     fcn_00071518 (r0, r1, r2, r3);
    0x0006d85e nop                                   |     
    0x0006d860 uxtb r6, r5                           |     r6 = (int8_t) r5;
    0x0006d862 movs r5, r0                           |     r5 = r0;
    0x0006d864 adr r4, 0x228                         |     r4 = 0x228;
    0x0006d866 movs r5, r0                           |     r5 = r0;
    0x0006d868 mcr2 p15, 5, pc, c7, c15, 7           |     __asm ("mcr2 p15, 5, pc, c7, c15, 7");
    0x0006d86c stm r5!, {r3, r6, r7}                 |     *(r5!) = r3;
                                                     |     *((r5! + 4)) = r6;
                                                     |     *((r5! + 8)) = r7;
    0x0006d86e movs r5, r0                           |     r5 = r0;
    0x0006d870 adr r4, 0xe0                          |     r4 = 0xe0;
    0x0006d872 movs r5, r0                           |     r5 = r0;
    0x0006d874 lsls r0, r0, 0x12                     |     r0 <<= 0x12;
    0x0006d876 movs r0, r0                           |     
    0x0006d878 ldr r6, [r7, 0x18]                    |     r6 = *((r7 + 0x18));
    0x0006d87a movs r3, r0                           |     r3 = r0;
    0x0006d87c ldr r0, [r2, 0x4c]                    |     r0 = imp.__progname;
    0x0006d87e movs r3, r0                           |     r3 = r0;
    0x0006d880 ldr r4, [r0, 0x20]                    |     r4 = *(0x385);
    0x0006d882 movs r3, r0                           |     r3 = r0;
                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6dd94 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.0006dd94 ()                                      | void fcn_0006dd94 (int16_t arg_120h, int16_t arg_230h, int16_t arg_2b8h, int16_t arg_2f8h, int16_t arg_308h, int16_t arg_320h, uint32_t arg1, uint32_t arg2) {
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_ch_2;
                                                                 |     int16_t var_10h_2;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_98h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0006dd94 ldr r2, [pc, 0x350]                               |     
    0x0006dd96 ldr r3, [pc, 0x354]                               |     r3 = *(0x6e0ee);
    0x0006dd98 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x0006dd9c sub sp, 0x34                                      |     
    0x0006dd9e add r2, pc                                        |     r2 = 0xdbe8a;
    0x0006dda0 ldr r3, [r2, r3]                                  |     
    0x0006dda2 ldr r3, [r3]                                      |     r3 = *(0xdbe8a);
    0x0006dda4 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x0006dda6 mov.w r3, 0                                       |     r3 = 0;
    0x0006ddaa cmp r0, 0                                         |     
                                                                 |     if (var_0h_2 == ) {
    0x0006ddac beq.w 0x6df0e                                     |         goto label_9;
                                                                 |     }
    0x0006ddb0 ldrb.w r3, [r0, 0x27]                             |     r3 = *(var_0h_2x27);
    0x0006ddb4 mov r4, r0                                        |     r4 = r0;
    0x0006ddb6 ands r0, r3, 4                                    |     r0 = r3 & 4;
    0x0006ddba and r5, r3, 3                                     |     r5 = r3 & 3;
    0x0006ddbe ite ne                                            |     
                                                                 |     if (r0 == r3) {
    0x0006ddc0 ldrne r2, [r4, 0x18]                              |         r2 = *((r4 + 0x18));
                                                                 |     }
                                                                 |     if (r0 == r3) {
    0x0006ddc2 ubfxeq r2, r3, 3, 3                               |         __asm ("ubfxeq r2, r3, 3, 3");
                                                                 |     }
    0x0006ddc6 adds r1, r1, r2                                   |     r1 += r2;
                                                                 |     if (r1 >= r1) {
    0x0006ddc8 bhs.w 0x6df08                                     |         goto label_10;
                                                                 |     }
    0x0006ddcc ubfx r3, r3, 2, 1                                 |     r3 = (r3 >> 2) & ((1 << 1) - 1);
    0x0006ddd0 cbz r3, 0x6de1e                                   |     
                                                                 |     while (r2 <= r1) {
    0x0006ddd2 lsrs r3, r1, 2                                    |         r3 = r1 >> 2;
    0x0006ddd4 adds r3, r3, r1                                   |         r3 += r1;
                                                                 |         if (r3 >= r3) {
    0x0006ddd6 bhs.w 0x6df08                                     |             goto label_10;
                                                                 |         }
    0x0006ddda ldr r2, [pc, 0x314]                               |         
    0x0006dddc add r2, pc                                        |         r2 = 0xdbed2;
    0x0006ddde add.w r2, r2, r5, lsl 4                           |         r2 += (r5 << 4);
    0x0006dde2 ldr r6, [r2, 4]                                   |         r6 = *((r2 + 4));
    0x0006dde4 add.w sb, r6, 1                                   |         sb = r6 + 1;
    0x0006dde8 umull r5, r1, sb, r3                              |         r5:r1 = sb * r3;
    0x0006ddec subs r5, r1, 0                                    |         r5 = r1 - 0;
    0x0006ddee it ne                                             |         
                                                                 |         if (r5 == r1) {
    0x0006ddf0 movne r5, 1                                       |             r5 = 1;
                                                                 |         }
    0x0006ddf2 cmp r1, 0                                         |         
                                                                 |         if (r1 != 0) {
    0x0006ddf4 bne.w 0x6df08                                     |             goto label_10;
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x0006ddf8 cbnz r0, 0x6de30                                  |             goto label_11;
                                                                 |         }
    0x0006ddfa ldr r7, [r2, 0xc]                                 |         r7 = *((r2 + 0xc));
    0x0006ddfc cmp r3, r7                                        |         
                                                                 |         if (r3 > r7) {
    0x0006ddfe bhi.w 0x6df24                                     |             goto label_12;
                                                                 |         }
                                                                 | label_0:
    0x0006de02 ldr r2, [pc, 0x2f0]                               |         
    0x0006de04 ldr r3, [pc, 0x2e4]                               |         r3 = *(0x6e0ec);
    0x0006de06 add r2, pc                                        |         r2 = 0xdbf00;
    0x0006de08 ldr r3, [r2, r3]                                  |         r3 = *(0xdbf00);
    0x0006de0a ldr r2, [r3]                                      |         r2 = *(0xdbf00);
    0x0006de0c ldr r3, [sp, 0x2c]                                |         r3 = var_2ch;
    0x0006de0e eors r2, r3                                       |         r2 ^= r3;
    0x0006de10 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0006de14 bne.w 0x6e0e4                                     |             goto label_13;
                                                                 |         }
    0x0006de18 add sp, 0x34                                      |         
    0x0006de1a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x0006de1e ldr r2, [pc, 0x2d8]                               |         
    0x0006de20 add r2, pc                                        |         r2 = 0xdbf1e;
    0x0006de22 add.w r2, r2, r5, lsl 4                           |         r2 += (r5 << 4);
    0x0006de26 ldr r2, [r2, 0xc]                                 |         r2 = *((r2 + 0xc));
    0x0006de28 cmp r2, r1                                        |         
    0x0006de2a blo 0x6ddd2                                       |         
                                                                 |     }
    0x0006de2c mov r0, r3                                        |     r0 = r3;
    0x0006de2e b 0x6de02                                         |     goto label_0;
                                                                 | label_11:
    0x0006de30 ldr r7, [r4, 0x1c]                                |     r7 = *((r4 + 0x1c));
    0x0006de32 cmp r3, r7                                        |     
    0x0006de34 it ls                                             |     
                                                                 |     if (r3 <= r7) {
    0x0006de36 movls r0, r5                                      |         r0 = r5;
                                                                 |         goto label_14;
                                                                 |     }
                                                                 |     if (r3 < r7) {
                                                                 | label_14:
    0x0006de38 bls 0x6de02                                       |         goto label_0;
                                                                 |     }
    0x0006de3a mul r3, r3, sb                                    |     r3 *= sb;
    0x0006de3e ldr r0, [r4, 4]                                   |     r0 = *((r4 + 4));
    0x0006de40 cmp r3, 0x46                                      |     
    0x0006de42 it lo                                             |     
                                                                 |     if (r3 >= 0x46) {
    0x0006de44 movlo r3, 0x46                                    |         r3 = 0x46;
                                                                 |     }
    0x0006de46 subs r3, 1                                        |     r3--;
    0x0006de48 clz r8, r3                                        |     r8 &= r3;
    0x0006de4c rsb.w r8, r8, 0x20                                |     r8 = 0x20 - r8;
                                                                 | label_1:
    0x0006de50 movs r3, 1                                        |     r3 = 1;
    0x0006de52 lsl.w r8, r3, r8                                  |     r8 = r3 << r8;
    0x0006de56 mov r1, r8                                        |     r1 = r8;
    0x0006de58 blx 0x94dc                                        |     r0 = fcn_000094dc ();
    0x0006de5c mov sl, r0                                        |     sl = r0;
    0x0006de5e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006de60 beq 0x6df08                                       |         goto label_10;
                                                                 |     }
    0x0006de62 ldrb.w fp, [r4, 0x27]                             |     fp = *((r4 + 0x27));
    0x0006de66 ubfx fp, fp, 2, 1                                 |     fp = (fp >> 2) & ((1 << 1) - 1);
    0x0006de6a cmp.w fp, 0                                       |     
                                                                 |     if (fp == 0) {
    0x0006de6e beq.w 0x6e08a                                     |         goto label_15;
                                                                 |     }
                                                                 | label_6:
    0x0006de72 ldr r0, [pc, 0x288]                               |     
    0x0006de74 movs r1, 0x10                                     |     r1 = 0x10;
    0x0006de76 add r0, pc                                        |     r0 = 0xdbf78;
    0x0006de78 bl 0x784dc                                        |     fcn_000784dc (r0, r1);
    0x0006de7c ldr r3, [pc, 0x280]                               |     
    0x0006de7e movs r2, 1                                        |     r2 = 1;
    0x0006de80 add r3, pc                                        |     r3 = 0xdbf84;
    0x0006de82 strb r2, [r3]                                     |     *(r3) = r2;
                                                                 | label_5:
    0x0006de84 ldrb.w r3, [r4, 0x27]                             |     r3 = *((r4 + 0x27));
    0x0006de88 ldr.w ip, [pc, 0x278]                             |     
    0x0006de8c orr r3, r3, 4                                     |     r3 |= 4;
    0x0006de90 add ip, pc                                        |     ip = 0xdbf98;
    0x0006de92 strb.w r3, [r4, 0x27]                             |     *((r4 + 0x27)) = r3;
    0x0006de96 ldm.w ip!, {r0, r1, r2, r3}                       |     r0 = *(ip!);
                                                                 |     r1 = *((ip! + 4));
                                                                 |     r2 = *((ip! + 8));
                                                                 |     r3 = *((ip! + 12));
    0x0006de9a str.w sl, [r4, 4]                                 |     __asm ("str.w sl, [r4, 4]");
    0x0006de9e str r0, [r4, 8]                                   |     *((r4 + 8)) = r0;
    0x0006dea0 mov r0, r8                                        |     r0 = r8;
    0x0006dea2 str r1, [r4, 0xc]                                 |     *((r4 + 0xc)) = r1;
    0x0006dea4 mov r1, sb                                        |     r1 = sb;
    0x0006dea6 str r2, [r4, 0x10]                                |     *((r4 + 0x10)) = r2;
    0x0006dea8 str r3, [r4, 0x14]                                |     *((r4 + 0x14)) = r3;
    0x0006deaa bl 0x80738                                        |     fcn_00080738 (r0, r1, r2);
    0x0006deae ldr r2, [pc, 0x258]                               |     
    0x0006deb0 mul r1, r7, r6                                    |     r1 = r7 * r6;
    0x0006deb4 ldrb.w r3, [r4, 0x27]                             |     r3 = *((r4 + 0x27));
    0x0006deb8 str r0, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r0;
    0x0006deba add r2, pc                                        |     
    0x0006debc and ip, r3, 3                                     |     
    0x0006dec0 add.w r2, r2, ip, lsl 4                           |     
    0x0006dec4 ldr r2, [r2, 4]                                   |     r2 = *(0xdbfcc);
    0x0006dec6 mla sb, r2, r0, sl                                |     __asm ("mla sb, r2, r0, sl");
    0x0006deca cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0006decc beq 0x6df40                                       |         goto label_16;
                                                                 |     }
    0x0006dece subs r1, 1                                        |     r1--;
    0x0006ded0 add sl, r1                                        |     sl += r1;
    0x0006ded2 subs r1, r7, 1                                    |     r1 = r7 - 1;
    0x0006ded4 add r1, sb                                        |     r1 += sb;
    0x0006ded6 add.w r2, sb, -1                                  |     r2 = sb + -1;
    0x0006deda b 0x6deea                                         |     
                                                                 |     while (r3 != 0xfe) {
    0x0006dedc cmp r3, 0xff                                      |         
    0x0006dede it ne                                             |         
                                                                 |         if (r3 == 0xff) {
    0x0006dee0 movne r3, 0xfe                                    |             r3 = 0xfe;
                                                                 |         }
    0x0006dee2 strb r3, [r2, 1]!                                 |         *((r2 += 1)) = r3;
    0x0006dee6 cmp r1, r2                                        |         
                                                                 |         if (r1 == r2) {
    0x0006dee8 beq 0x6df3c                                       |             goto label_17;
                                                                 |         }
    0x0006deea ldrb r3, [sl, 1]!                                 |         r3 = *((sl += 1));
    0x0006deee cmp r3, 0xfe                                      |         
    0x0006def0 bne 0x6dedc                                       |         
                                                                 |     }
    0x0006def2 ldr r1, [pc, 0x218]                               |     
    0x0006def4 movw r2, 0x477                                    |     r2 = 0x477;
    0x0006def8 ldr r3, [pc, 0x214]                               |     
    0x0006defa ldr r0, [pc, 0x218]                               |     
    0x0006defc add r1, pc                                        |     r1 = 0xdc00e;
    0x0006defe add r3, pc                                        |     r3 = 0xdc012;
    0x0006df00 adds r1, 7                                        |     r1 += 7;
    0x0006df02 add r0, pc                                        |     r0 = 0xdc01c;
    0x0006df04 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_10:
    0x0006df08 mvn r0, 0xb                                       |     r0 = ~0xb;
    0x0006df0c b 0x6de02                                         |     goto label_0;
                                                                 | label_9:
    0x0006df0e ldr r1, [pc, 0x208]                               |     
    0x0006df10 movw r2, 0x432                                    |     r2 = 0x432;
    0x0006df14 ldr r3, [pc, 0x204]                               |     
    0x0006df16 ldr r0, [pc, 0x208]                               |     
    0x0006df18 add r1, pc                                        |     r1 = 0xdc036;
    0x0006df1a add r3, pc                                        |     r3 = 0xdc03a;
    0x0006df1c adds r1, 7                                        |     r1 += 7;
    0x0006df1e add r0, pc                                        |     r0 = 0xdc044;
    0x0006df20 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_12:
    0x0006df24 mul r3, r3, sb                                    |     r3 *= sb;
    0x0006df28 mov r0, r5                                        |     r0 = r5;
    0x0006df2a cmp r3, 0x46                                      |     
    0x0006df2c it lo                                             |     
                                                                 |     if (r3 >= 0x46) {
    0x0006df2e movlo r3, 0x46                                    |         r3 = 0x46;
                                                                 |     }
    0x0006df30 subs r3, 1                                        |     r3--;
    0x0006df32 clz r8, r3                                        |     r8 &= r3;
    0x0006df36 rsb.w r8, r8, 0x20                                |     r8 = 0x20 - r8;
    0x0006df3a b 0x6de50                                         |     goto label_1;
                                                                 | label_17:
    0x0006df3c ldrb.w r3, [r4, 0x27]                             |     r3 = *((r4 + 0x27));
                                                                 | label_16:
    0x0006df40 lsls r1, r3, 0x1d                                 |     r1 = r3 << 0x1d;
    0x0006df42 add.w r8, sb, r7                                  |     r8 = sb + r7;
                                                                 |     if (r1 >= r3) {
    0x0006df46 bpl.w 0x6e0c6                                     |         goto label_18;
                                                                 |     }
    0x0006df4a ldr r2, [r4, 0x1c]                                |     r2 = *((r4 + 0x1c));
    0x0006df4c subs r2, r2, r7                                   |     r2 -= r7;
    0x0006df4e mul r1, r2, r6                                    |     r1 = r2 * r6;
                                                                 |     if (r1 != 0) {
    0x0006df52 cbz r1, 0x6df8a                                   |         
    0x0006df54 and r3, r3, 3                                     |         r3 &= 3;
    0x0006df58 ldr r0, [r4, 4]                                   |         r0 = *((r4 + 4));
    0x0006df5a lsls r3, r3, 4                                    |         r3 <<= 4;
                                                                 | label_7:
    0x0006df5c ldr.w sl, [pc, 0x1c4]                             |         
    0x0006df60 mov r2, r1                                        |         r2 = r1;
    0x0006df62 movs r1, 0                                        |         r1 = 0;
    0x0006df64 add sl, pc                                        |         sl = 0xdc08c;
    0x0006df66 add r3, sl                                        |         r3 += sl;
    0x0006df68 ldr r3, [r3, 4]                                   |         r3 = *((r3 + 4));
    0x0006df6a mla r0, r3, r7, r0                                |         __asm ("mla r0, r3, r7, r0");
    0x0006df6e blx 0x8c54                                        |         fcn_00008c54 ();
    0x0006df72 ldrb.w r3, [r4, 0x27]                             |         r3 = *((r4 + 0x27));
    0x0006df76 lsls r2, r3, 0x1d                                 |         r2 = r3 << 0x1d;
    0x0006df78 itett pl                                          |         
                                                                 |         if (r2 < r3) {
    0x0006df7a andpl r3, r3, 3                                   |             r3 &= 3;
                                                                 |         }
                                                                 |         if (r2 < r3) {
    0x0006df7e ldrpl r2, [r4, 0x1c]                              |             r2 = *((r4 + 0x1c));
                                                                 |         }
                                                                 |         if (r2 < r3) {
    0x0006df80 addpl sl, sl, r3, lsl 4                           |             sl += (r3 << 4);
                                                                 |         }
                                                                 |         if (r2 >= r3) {
    0x0006df84 ldr.w r2, [sl, 0xc]                               |             r2 = *(0xdc098);
                                                                 |         }
    0x0006df88 subs r2, r2, r7                                   |         r2 -= r7;
                                                                 |     }
                                                                 | label_8:
    0x0006df8a mov r0, r8                                        |     r0 = r8;
    0x0006df8c movs r1, 0xff                                     |     r1 = 0xff;
    0x0006df8e blx 0x8c54                                        |     fcn_00008c54 ();
    0x0006df92 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0006df94 beq 0x6e05a                                       |         goto label_19;
                                                                 |     }
    0x0006df96 ldr r3, [pc, 0x190]                               |     
    0x0006df98 add.w sb, sb, -1                                  |     sb += -1;
    0x0006df9c mov.w sl, 0                                       |     sl = 0;
    0x0006dfa0 add r3, pc                                        |     r3 = 0xdc0ce;
    0x0006dfa2 str r3, [sp]                                      |     *(sp) = r3;
    0x0006dfa4 ldr r3, [pc, 0x184]                               |     
    0x0006dfa6 add r3, pc                                        |     r3 = 0xdc0d6;
    0x0006dfa8 str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x0006dfaa b 0x6dfbc                                         |     goto label_20;
                                                                 | label_2:
    0x0006dfac adds r5, 1                                        |     r5++;
    0x0006dfae movs r3, 0                                        |     r3 = 0;
    0x0006dfb0 strb.w r3, [sb]                                   |     *(sb) = r3;
                                                                 |     do {
                                                                 | label_3:
    0x0006dfb4 add.w sl, sl, 1                                   |         sl++;
    0x0006dfb8 cmp sl, r7                                        |         
                                                                 |         if (sl == r7) {
    0x0006dfba beq 0x6e05c                                       |             goto label_21;
                                                                 |         }
                                                                 | label_20:
    0x0006dfbc ldrb r3, [sb, 1]!                                 |         r3 = *((sb += 1));
    0x0006dfc0 cmp r3, 0xfe                                      |         
    0x0006dfc2 bne 0x6dfb4                                       |         
                                                                 |     } while (r3 != 0xfe);
    0x0006dfc4 svc 0x54                                          |     __asm ("svc 0x54");
    0x0006dfc6 movs r6, r0                                       |     r6 = r0;
    0x0006dfc8 ldr r1, [sp]                                      |     r1 = *(sp);
    0x0006dfca lsls r0, r3, 0x1d                                 |     r0 = r3 << 0x1d;
    0x0006dfcc and r3, r3, 3                                     |     r3 &= 3;
    0x0006dfd0 ite mi                                            |     
                                                                 |     if (r0 >= r3) {
    0x0006dfd2 ldrmi r2, [r4, 4]                                 |         r2 = *((r4 + 4));
                                                                 |     }
                                                                 |     if (r0 < r3) {
    0x0006dfd4 addpl r2, r4, 4                                   |         r2 = r4 + 4;
                                                                 |     }
    0x0006dfd6 add.w r3, r1, r3, lsl 4                           |     r3 = r1 + (r3 << 4);
    0x0006dfda mov r0, r4                                        |     r0 = r4;
    0x0006dfdc ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x0006dfde mul r3, r3, sl                                    |     r3 *= sl;
    0x0006dfe2 ldr r1, [r2, r3]                                  |     r1 = *((r2 + r3));
    0x0006dfe4 bl 0x6d6d4                                        |     r0 = fcn_0006d6d4 (r0, r1);
    0x0006dfe8 cmp sl, r0                                        |     
    0x0006dfea mov r8, r0                                        |     r8 = r0;
                                                                 |     if (sl == r0) {
    0x0006dfec beq 0x6dfac                                       |         goto label_2;
                                                                 |     }
    0x0006dfee mov.w r3, -1                                      |     r3 = -1;
    0x0006dff2 add.w fp, sp, 0xc                                 |     
    0x0006dff6 mov r1, fp                                        |     r1 = fp;
    0x0006dff8 strb.w r3, [sb]                                   |     *(sb) = r3;
    0x0006dffc mov r2, sl                                        |     r2 = sl;
    0x0006dffe mvn r3, 3                                         |     r3 = ~3;
    0x0006e002 mov r0, r4                                        |     r0 = r4;
    0x0006e004 bl 0x6da54                                        |     fcn_0006da54 (r0, r1, r2, r3);
    0x0006e006 stc2 p6, c4, [r6, -0x104]!                        |     __asm ("stc2 p6, c4, aav.0x000000ff!");
                                                                 |     if (r6 != 0) {
    0x0006e00a cbz r6, 0x6e032                                   |         
    0x0006e00c ldrb.w r3, [r4, 0x27]                             |         r3 = *((r4 + 0x27));
    0x0006e010 lsls r1, r3, 0x1d                                 |         r1 = r3 << 0x1d;
    0x0006e012 ldr r1, [sp, 4]                                   |         r1 = var_4h_2;
    0x0006e014 and r3, r3, 3                                     |         r3 &= 3;
    0x0006e018 ite mi                                            |         
                                                                 |         if (r1 >= r3) {
    0x0006e01a ldrmi r2, [r4, 4]                                 |             r2 = *((r4 + 4));
                                                                 |         }
                                                                 |         if (r1 < r3) {
    0x0006e01c addpl r2, r4, 4                                   |             r2 = r4 + 4;
                                                                 |         }
    0x0006e01e add.w r3, r1, r3, lsl 4                           |         r3 = r1 + (r3 << 4);
    0x0006e022 movs r1, 0                                        |         r1 = 0;
    0x0006e024 ldr r0, [r3, 4]                                   |         r0 = *((r3 + 4));
    0x0006e026 mla r0, r0, sl, r2                                |         __asm ("mla r0, r0, sl, r2");
    0x0006e02a mov r2, r6                                        |         r2 = r6;
    0x0006e02c blx 0x8c54                                        |         fcn_00008c54 ();
    0x0006e030 mov r1, r8                                        |         r1 = r8;
                                                                 |     }
    0x0006e032 mov r2, fp                                        |     r2 = fp;
    0x0006e034 mov r0, r4                                        |     r0 = r4;
    0x0006e036 adds r5, 1                                        |     r5++;
    0x0006e038 bl 0x6dbd8                                        |     r0 = fcn_0006dbd8 (r0, r1, r2, r3);
    0x0006e03c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006e03e beq 0x6dfb4                                       |         goto label_3;
                                                                 |     }
                                                                 | label_4:
    0x0006e040 ldr r1, [sp, 0xc]                                 |     r1 = var_ch_2;
    0x0006e042 mov r0, r4                                        |     r0 = r4;
    0x0006e044 bl 0x6d6d4                                        |     fcn_0006d6d4 (r0, r1);
    0x0006e048 mov r2, fp                                        |     r2 = fp;
    0x0006e04a mov r1, r0                                        |     r1 = r0;
    0x0006e04c mov r0, r4                                        |     r0 = r4;
    0x0006e04e adds r5, 1                                        |     r5++;
    0x0006e050 bl 0x6dbd8                                        |     r0 = fcn_0006dbd8 (r0, r1, r2, r3);
    0x0006e054 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006e056 beq 0x6dfb4                                       |         goto label_3;
                                                                 |     }
    0x0006e058 b 0x6e040                                         |     goto label_4;
                                                                 | label_19:
    0x0006e05a mov r5, r7                                        |     r5 = r7;
                                                                 | label_21:
    0x0006e05c ldrb.w r3, [r4, 0x27]                             |     r3 = *((r4 + 0x27));
    0x0006e060 lsls r2, r3, 0x1d                                 |     r2 = r3 << 0x1d;
    0x0006e062 ite mi                                            |     
                                                                 |     if (r2 >= r3) {
    0x0006e064 ldrmi r3, [r4, 0x18]                              |         r3 = *((r4 + 0x18));
                                                                 |     }
                                                                 |     if (r2 >= r3) {
    0x0006e066 ubfxpl r3, r3, 3, 3                               |         __asm ("ubfxpl r3, r3, 3, 3");
                                                                 |     }
    0x0006e06a cmp r3, r5                                        |     
    0x0006e06c it eq                                             |     
                                                                 |     if (r3 == r5) {
    0x0006e06e moveq r0, 1                                       |         r0 = 1;
                                                                 |         goto label_22;
                                                                 |     }
                                                                 |     if (r3 == r5) {
                                                                 | label_22:
    0x0006e070 beq.w 0x6de02                                     |         goto label_0;
                                                                 |     }
    0x0006e074 ldr r1, [pc, 0xb8]                                |     
    0x0006e076 movw r2, 0x4a9                                    |     r2 = 0x4a9;
    0x0006e07a ldr r3, [pc, 0xb8]                                |     
    0x0006e07c ldr r0, [pc, 0xb8]                                |     
    0x0006e07e add r1, pc                                        |     r1 = 0xdc1b2;
    0x0006e080 add r3, pc                                        |     r3 = 0xdc1ba;
    0x0006e082 adds r1, 7                                        |     r1 += 7;
    0x0006e084 add r0, pc                                        |     r0 = 0xdc1c0;
    0x0006e086 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_15:
    0x0006e08a mul r2, r7, sb                                    |     r2 = r7 * sb;
    0x0006e08e adds r1, r4, 4                                    |     r1 = r4 + 4;
    0x0006e090 blx 0x8f9c                                        |     fcn_00008f9c ();
    0x0006e094 ldr r3, [pc, 0xa4]                                |     
    0x0006e096 ldrb.w r1, [r4, 0x27]                             |     r1 = *((r4 + 0x27));
    0x0006e09a str.w fp, [r4, 0x20]                              |     __asm ("str.w fp, [r4, 0x20]");
    0x0006e09e add r3, pc                                        |     r3 = 0xdc1de;
    0x0006e0a0 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x0006e0a2 mov r2, r1                                        |     r2 = r1;
    0x0006e0a4 bfi r2, fp, 3, 3                                  |     value_0 = BIT_MASK (3, 3);
                                                                 |     value_1 = fp & value_0;
                                                                 |     value_0 = ~value_0;
                                                                 |     r2 &= value_0;
                                                                 |     r2 |= value_1;
    0x0006e0a8 ubfx r1, r1, 3, 3                                 |     r1 = (r1 >> 3) & ((1 << 3) - 1);
    0x0006e0ac strb.w r2, [r4, 0x27]                             |     *((r4 + 0x27)) = r2;
    0x0006e0b0 ubfx r2, r2, 2, 1                                 |     r2 = (r2 >> 2) & ((1 << 1) - 1);
    0x0006e0b4 eor r3, r3, 1                                     |     r3 ^= 1;
    0x0006e0b8 str r1, [r4, 0x18]                                |     *((r4 + 0x18)) = r1;
    0x0006e0ba orrs r3, r2                                       |     r3 |= r2;
    0x0006e0bc uxtb r3, r3                                       |     r3 = (int8_t) r3;
    0x0006e0be cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0006e0c0 beq.w 0x6de84                                     |         goto label_5;
                                                                 |     }
    0x0006e0c4 b 0x6de72                                         |     goto label_6;
                                                                 | label_18:
    0x0006e0c6 ldr r2, [pc, 0x78]                                |     
    0x0006e0c8 and r3, r3, 3                                     |     r3 &= 3;
    0x0006e0cc lsls r3, r3, 4                                    |     r3 <<= 4;
    0x0006e0ce adds r0, r4, 4                                    |     r0 = r4 + 4;
    0x0006e0d0 add r2, pc                                        |     
    0x0006e0d2 add r2, r3                                        |     r2 += r3;
    0x0006e0d4 ldr r2, [r2, 0xc]                                 |     r2 = *(0xdc222);
    0x0006e0d6 subs r2, r2, r7                                   |     r2 -= r7;
    0x0006e0d8 mul r1, r2, r6                                    |     r1 = r2 * r6;
    0x0006e0dc cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x0006e0de bne.w 0x6df5c                                     |         goto label_7;
                                                                 |     }
    0x0006e0e2 b 0x6df8a                                         |     goto label_8;
                                                                 | label_13:
    0x0006e0e4 blx 0x927c                                        |     fprintf_chk ()
    0x0006e0e8 add r5, sp, 0x98                                  |     r5 += var_98h;
    0x0006e0ea movs r5, r0                                       |     r5 = r0;
    0x0006e0ec lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0006e0ee movs r0, r0                                       |     
    0x0006e0f0 ldr r6, [sp, 0x230]                               |     r6 = *(arg_230h);
    0x0006e0f2 movs r5, r0                                       |     r5 = r0;
    0x0006e0f4 add r4, sp, 0x2f8                                 |     r4 += arg_2f8h;
    0x0006e0f6 movs r5, r0                                       |     r5 = r0;
    0x0006e0f8 ldr r6, [sp, 0x120]                               |     r6 = *(arg_120h);
    0x0006e0fa movs r5, r0                                       |     r5 = r0;
    0x0006e0fc itte pl                                           |     
                                                                 |     if (r5 < r0) {
    0x0006e0fe movpl r5, r0                                      |         r5 = r0;
                                                                 |     }
                                                                 |     if (r5 >= r0) {
    0x0006e100 hintpl 6                                          |         __asm ("hintpl 6");
                                                                 |     }
                                                                 |     if (r5 >= r0) {
    0x0006e102 movmi r5, r0                                      |         r5 = r0;
                                                                 |     }
    0x0006e104 sev                                               |     __asm ("sev");
    0x0006e106 movs r5, r0                                       |     r5 = r0;
    0x0006e108 ldr r5, [sp, 0x2b8]                               |     r5 = *(arg_2b8h);
    0x0006e10a movs r5, r0                                       |     r5 = r0;
    0x0006e10c str r4, [r2, 0x30]                                |     *((r2 + 0x30)) = r4;
    0x0006e10e movs r3, r0                                       |     r3 = r0;
    0x0006e110 str r6, [r1, 0x58]                                |     *((r1 + 0x58)) = r6;
    0x0006e112 movs r3, r0                                       |     r3 = r0;
    0x0006e114 str r2, [r3, 0x3c]                                |     *((r3 + 0x3c)) = r2;
    0x0006e116 movs r3, r0                                       |     r3 = r0;
    0x0006e118 str r0, [r7, 0x2c]                                |     *((r7 + 0x2c)) = r0;
    0x0006e11a movs r3, r0                                       |     r3 = r0;
    0x0006e11c str r2, [r6, 0x54]                                |     *((r6 + 0x54)) = r2;
    0x0006e11e movs r3, r0                                       |     r3 = r0;
    0x0006e120 ldm r0!, {r1, r2, r6, r7}                         |     r1 = *(r0!);
                                                                 |     r2 = *((r0! + 4));
                                                                 |     r6 = *((r0! + 8));
                                                                 |     r7 = *((r0! + 12));
    0x0006e122 movs r2, r0                                       |     r2 = r0;
    0x0006e124 ldr r5, [sp, 0x10]                                |     r5 = var_10h_2;
    0x0006e126 movs r5, r0                                       |     r5 = r0;
    0x0006e128 ldr r4, [sp, 0x320]                               |     r4 = *(arg_320h);
    0x0006e12a movs r5, r0                                       |     r5 = r0;
    0x0006e12c ldr r4, [sp, 0x308]                               |     r4 = *(arg_308h);
    0x0006e12e movs r5, r0                                       |     r5 = r0;
    0x0006e130 str r2, [r2, 0x18]                                |     *((r2 + 0x18)) = r2;
    0x0006e132 movs r3, r0                                       |     r3 = r0;
    0x0006e134 str r4, [r1, 0x40]                                |     *((r1 + 0x40)) = r4;
    0x0006e136 movs r3, r0                                       |     r3 = r0;
    0x0006e138 str r0, [r7, 0x24]                                |     *((r7 + 0x24)) = r0;
    0x0006e13a movs r3, r0                                       |     r3 = r0;
    0x0006e13c pop {r1, 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/libexec/udevadm @ 0x6e910 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0006e910 ()                  | void fcn_0006e910 (int16_t arg_50h, uint32_t arg1, int16_t arg2, int16_t arg3) {
                                             |     int16_t var_4h;
                                             |     int32_t var_4h_2;
                                             |     int16_t var_24h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x0006e910 ssub8mi fp, r5, r0            |     __asm ("ssub8mi fp, r5, r0");
    0x0006e914 ldr r2, [pc, 0x98]            |     
    0x0006e916 sub sp, 0x2c                  |     
    0x0006e918 ldr r3, [pc, 0x98]            |     r3 = *(0x6e9b4);
    0x0006e91a add r2, pc                    |     r2 = 0xdd2ce;
    0x0006e91c ldr r3, [r2, r3]              |     
    0x0006e91e ldr r3, [r3]                  |     r3 = *(0xdd2ce);
    0x0006e920 str r3, [sp, 0x24]            |     var_24h = r3;
    0x0006e922 mov.w r3, 0                   |     r3 = 0;
    0x0006e926 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0006e928 beq 0x6e996                   |         
    0x0006e92a mov r6, r1                    |         r6 = r1;
    0x0006e92c mov r4, r0                    |         r4 = r0;
    0x0006e92e bl 0x6d6d4                    |         fcn_0006d6d4 (r0, r1);
    0x0006e932 mov r2, r6                    |         r2 = r6;
    0x0006e934 mov r1, r0                    |         r1 = r0;
    0x0006e936 mov r7, r0                    |         r7 = r0;
    0x0006e938 mov r0, r4                    |         r0 = r4;
    0x0006e93a bl 0x6d954                    |         r0 = fcn_0006d954 (r0, r1, r2);
    0x0006e93e adds r2, r0, 1                |         r2 = r0 + 1;
                                             |         if (r2 != r0) {
    0x0006e940 beq 0x6e984                   |             
    0x0006e942 ldrb.w r2, [r4, 0x27]         |             r2 = *((r4 + 0x27));
    0x0006e946 lsls r3, r2, 0x1d             |             r3 = r2 << 0x1d;
    0x0006e948 ldr r3, [pc, 0x6c]            |             
    0x0006e94a and r2, r2, 3                 |             r2 &= 3;
    0x0006e94e ite mi                        |             
                                             |             if (r3 >= r2) {
    0x0006e950 ldrmi r4, [r4, 4]             |                 r4 = *((r4 + 4));
                                             |             }
                                             |             if (r3 < r2) {
    0x0006e952 addpl r4, 4                   |                 r4 += 4;
                                             |             }
    0x0006e954 add r3, pc                    |             r3 = 0xdd310;
    0x0006e956 add.w r3, r3, r2, lsl 4       |             r3 += (r2 << 4);
    0x0006e95a ldr r3, [r3, 4]               |             r3 = *((r3 + 4));
    0x0006e95c mla r0, r3, r0, r4            |             __asm ("mla r0, r3, r0, r4");
    0x0006e960 ldr r3, [r0, 4]               |             r3 = *((r0 + 4));
    0x0006e962 cmp r3, r5                    |             
    0x0006e964 ite eq                        |             
                                             |             if (r3 != r5) {
    0x0006e966 moveq r0, 0                   |                 r0 = 0;
                                             |             }
                                             |             if (r3 == r5) {
    0x0006e968 mvnne r0, 0x10                |                 r0 = ~0x10;
                                             |             }
    0x0006e96c ldr r2, [pc, 0x4c]            |             
    0x0006e96e ldr r3, [pc, 0x44]            |             r3 = *(0x6e9b6);
    0x0006e970 add r2, pc                    |             r2 = 0xdd330;
    0x0006e972 ldr r3, [r2, r3]              |             r3 = *(0xdd330);
    0x0006e974 ldr r2, [r3]                  |             r2 = *(0xdd330);
    0x0006e976 ldr r3, [sp, 0x24]            |             r3 = var_24h;
    0x0006e978 eors r2, r3                   |             r2 ^= r3;
    0x0006e97a mov.w r3, 0                   |             r3 = 0;
                                             |             if (r2 != r3) {
    0x0006e97e bne 0x6e9ac                   |                 goto label_0;
                                             |             }
    0x0006e980 add sp, 0x2c                  |             
    0x0006e982 pop {r4, r5, r6, r7, pc}      |             
                                             |         }
    0x0006e984 movs r3, 1                    |         r3 = 1;
    0x0006e986 mov r1, r7                    |         r1 = r7;
    0x0006e988 mov r0, r4                    |         r0 = r4;
    0x0006e98a add r2, sp, 4                 |         r2 += var_4h;
    0x0006e98c strd r6, r5, [sp, 4]          |         __asm ("strd r6, r5, [var_4h]");
    0x0006e990 bl 0x6e144                    |         fcn_0006e144 (r0, r1, r2, r3, r4, r5, r6);
    0x0006e992 invalid                       |         
                                             |     }
    0x0006e996 ldr r1, [pc, 0x28]            |     
    0x0006e998 movw r2, 0x4d1                |     r2 = 0x4d1;
    0x0006e99c ldr r3, [pc, 0x24]            |     
    0x0006e99e ldr r0, [pc, 0x28]            |     
    0x0006e9a0 add r1, pc                    |     r1 = 0xdd366;
    0x0006e9a2 add r3, pc                    |     r3 = 0xdd36a;
    0x0006e9a4 adds r1, 7                    |     r1 += 7;
    0x0006e9a6 add r0, pc                    |     r0 = 0xdd374;
    0x0006e9a8 bl 0x71518                    |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                             | label_0:
    0x0006e9ac blx 0x927c                    |     fprintf_chk ()
    0x0006e9b0 adr r1, 0x2a8                 |     r1 = case.0x584aa.7;
    0x0006e9b2 movs r5, r0                   |     r5 = r0;
    0x0006e9b4 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x0006e9b6 movs r0, r0                   |     
    0x0006e9b8 str r3, [sp, 0x50]            |     *(arg_50h) = r3;
    0x0006e9ba movs r5, r0                   |     r5 = r0;
    0x0006e9bc adr r1, 0x150                 |     r1 = 0x150;
    0x0006e9be movs r5, r0                   |     r5 = r0;
    0x0006e9c0 ldr r0, [r6, r1]              |     r0 = *((r6 + r1));
    0x0006e9c2 movs r3, r0                   |     r3 = r0;
    0x0006e9c4 ldrh r6, [r4, r4]             |     r6 = *((r4 + r4));
    0x0006e9c6 movs r3, r0                   |     r3 = r0;
    0x0006e9c8 bkpt 0x3e                     |     __asm ("bkpt 0x3e");
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6ea0c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0006ea0c ()                  | void fcn_0006ea0c (int16_t arg1, int16_t arg2) {
                                             |     int16_t var_4h;
                                             |     int16_t var_24h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0006ea0c blmi 0x7c1284                 |     __asm ("blmi aav.0x0005a0b0");
    0x0006ea10 push {r4, r5, r6, lr}         |     
    0x0006ea12 sub sp, 0x28                  |     
    0x0006ea14 add r2, pc                    |     r2 += pc;
    0x0006ea16 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x0006ea18 ldr r3, [r3]                  |     r3 = *(r3);
    0x0006ea1a str r3, [sp, 0x24]            |     var_24h = r3;
    0x0006ea1c mov.w r3, 0                   |     r3 = 0;
                                             |     if (r0 == 0) {
    0x0006ea20 cbz r0, 0x6ea66               |         goto label_0;
                                             |     }
    0x0006ea22 mov r5, r1                    |     r5 = r1;
    0x0006ea24 mov r4, r0                    |     r4 = r0;
    0x0006ea26 bl 0x6d6d4                    |     fcn_0006d6d4 (r0, r1);
    0x0006ea2a mov r2, r5                    |     r2 = r5;
    0x0006ea2c mov r1, r0                    |     r1 = r0;
    0x0006ea2e mov r6, r0                    |     r6 = r0;
    0x0006ea30 mov r0, r4                    |     r0 = r4;
    0x0006ea32 bl 0x6d954                    |     fcn_0006d954 (r0, r1, r2);
    0x0006ea36 adds r0, 1                    |     r0++;
    0x0006ea38 it ne                         |     
                                             |     if (r0 == 1) {
    0x0006ea3a movne r0, 0                   |         r0 = 0;
                                             |     }
    0x0006ea3c beq 0x6ea56                   |     
                                             |     while (1) {
    0x0006ea3e ldr r2, [pc, 0x48]            |         
    0x0006ea40 ldr r3, [pc, 0x40]            |         r3 = *(0x6ea84);
    0x0006ea42 add r2, pc                    |         r2 = 0xdd4d0;
    0x0006ea44 ldr r3, [r2, r3]              |         r3 = *(0xdd4d0);
    0x0006ea46 ldr r2, [r3]                  |         r2 = *(0xdd4d0);
    0x0006ea48 ldr r3, [sp, 0x24]            |         r3 = var_24h;
    0x0006ea4a eors r2, r3                   |         r2 ^= r3;
    0x0006ea4c mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x0006ea50 bne 0x6ea7c                   |             goto label_1;
                                             |         }
    0x0006ea52 add sp, 0x28                  |         
    0x0006ea54 pop {r4, r5, r6, pc}          |         
    0x0006ea56 movs r3, 1                    |         r3 = 1;
    0x0006ea58 add r2, sp, 4                 |         r2 += var_4h;
    0x0006ea5a mov r1, r6                    |         r1 = r6;
    0x0006ea5c mov r0, r4                    |         r0 = r4;
    0x0006ea5e str r5, [sp, 4]               |         var_4h = r5;
    0x0006ea60 bl 0x6e144                    |         fcn_0006e144 (r0, r1, r2, r3, r4, r5, r6);
    0x0006ea64 b 0x6ea3e                     |         
                                             |     }
                                             | label_0:
    0x0006ea66 ldr r1, [pc, 0x24]            |     
    0x0006ea68 movw r2, 0x4e7                |     r2 = 0x4e7;
    0x0006ea6c ldr r3, [pc, 0x20]            |     
    0x0006ea6e ldr r0, [pc, 0x24]            |     
    0x0006ea70 add r1, pc                    |     r1 = 0xdd502;
    0x0006ea72 add r3, pc                    |     r3 = 0xdd506;
    0x0006ea74 adds r1, 7                    |     r1 += 7;
    0x0006ea76 add r0, pc                    |     r0 = 0xdd510;
    0x0006ea78 bl 0x71518                    |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                             | label_1:
    0x0006ea7c blx 0x927c                    |     fprintf_chk ()
    0x0006ea80 adr r0, 0x2c0                 |     r0 = 0x2c0;
    0x0006ea82 movs r5, r0                   |     r5 = r0;
    0x0006ea84 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x0006ea86 movs r0, r0                   |     
    0x0006ea88 adr r0, 0x208                 |     r0 = 0x208;
    0x0006ea8a movs r5, r0                   |     r5 = r0;
    0x0006ea8c ldrsb r0, [r4, r6]            |     r0 = *((r4 + r6));
    0x0006ea8e movs r3, r0                   |     r3 = r0;
    0x0006ea90 ldr r2, [r5, r7]              |     r2 = *((r5 + r7));
    0x0006ea92 movs r3, r0                   |     r3 = r0;
    0x0006ea94 adr r2, 0x38                  |     r2 = 0x38;
    0x0006ea96 movs r1, r0                   |     r1 = r0;
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6eab4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0006eab4 ()                      | void fcn_0006eab4 (int16_t arg_1d8h, int16_t arg_298h, uint32_t arg1, int16_t arg2, int16_t arg3) {
                                                 |     int16_t var_4h;
                                                 |     int32_t var_4h_2;
                                                 |     int16_t var_24h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 |     r2 = arg3;
    0x0006eab4 ssub8mi fp, r6, r0                |     __asm ("ssub8mi fp, r6, r0");
    0x0006eab8 ldr r2, [pc, 0xa4]                |     
    0x0006eaba sub sp, 0x2c                      |     
    0x0006eabc ldr r3, [pc, 0xa4]                |     r3 = *(0x6eb64);
    0x0006eabe add r2, pc                        |     r2 = 0xdd622;
    0x0006eac0 ldr r3, [r2, r3]                  |     
    0x0006eac2 ldr r3, [r3]                      |     r3 = *(0xdd622);
    0x0006eac4 str r3, [sp, 0x24]                |     var_24h = r3;
    0x0006eac6 mov.w r3, 0                       |     r3 = 0;
    0x0006eaca cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0006eacc beq 0x6eb44                       |         goto label_0;
                                                 |     }
    0x0006eace mov r5, r1                        |     r5 = r1;
    0x0006ead0 mov r4, r0                        |     r4 = r0;
    0x0006ead2 bl 0x6d6d4                        |     fcn_0006d6d4 (r0, r1);
    0x0006ead6 mov r2, r5                        |     r2 = r5;
    0x0006ead8 mov r1, r0                        |     r1 = r0;
    0x0006eada mov r7, r0                        |     r7 = r0;
    0x0006eadc mov r0, r4                        |     r0 = r4;
    0x0006eade bl 0x6d954                        |     r0 = fcn_0006d954 (r0, r1, r2);
    0x0006eae2 adds r1, r0, 1                    |     r1 = r0 + 1;
                                                 |     if (r1 == r0) {
    0x0006eae4 beq 0x6eb32                       |         goto label_1;
                                                 |     }
    0x0006eae6 ldrb.w r3, [r4, 0x27]             |     r3 = *((r4 + 0x27));
    0x0006eaea ldr r1, [pc, 0x7c]                |     
    0x0006eaec lsls r2, r3, 0x1d                 |     r2 = r3 << 0x1d;
    0x0006eaee and r3, r3, 3                     |     r3 &= 3;
    0x0006eaf2 add r1, pc                        |     r1 = 0xdd660;
    0x0006eaf4 it mi                             |     
                                                 |     if (r2 >= r3) {
    0x0006eaf6 ldrmi r2, [r4, 4]                 |         r2 = *((r4 + 4));
                                                 |     }
    0x0006eaf8 add.w r3, r1, r3, lsl 4           |     r3 = r1 + (r3 << 4);
    0x0006eafc it pl                             |     
                                                 |     if (r2 < r3) {
    0x0006eafe addpl r2, r4, 4                   |         r2 = r4 + 4;
                                                 |     }
    0x0006eb00 ldr r3, [r3, 4]                   |     r3 = *((r3 + 4));
    0x0006eb02 mul r0, r3, r0                    |     r0 = r3 * r0;
    0x0006eb06 str r5, [r2, r0]                  |     *((r2 + r0)) = r5;
    0x0006eb08 add r2, r0                        |     r2 += r0;
    0x0006eb0a str r6, [r2, 4]                   |     *((r2 + 4)) = r6;
    0x0006eb0c movs r0, 0                        |     r0 = 0;
    0x0006eb0e ldrb.w r3, [r4, 0x27]             |     r3 = *((r4 + 0x27));
    0x0006eb12 orr r3, r3, 0x80                  |     r3 |= 0x80;
    0x0006eb16 strb.w r3, [r4, 0x27]             |     *((r4 + 0x27)) = r3;
                                                 |     do {
    0x0006eb1a ldr r2, [pc, 0x50]                |         
    0x0006eb1c ldr r3, [pc, 0x44]                |         r3 = *(0x6eb64);
    0x0006eb1e add r2, pc                        |         r2 = 0xdd690;
    0x0006eb20 ldr r3, [r2, r3]                  |         r3 = *(0xdd690);
    0x0006eb22 ldr r2, [r3]                      |         r2 = *(0xdd690);
    0x0006eb24 ldr r3, [sp, 0x24]                |         r3 = var_24h;
    0x0006eb26 eors r2, r3                       |         r2 ^= r3;
    0x0006eb28 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0006eb2c bne 0x6eb5a                       |             goto label_2;
                                                 |         }
    0x0006eb2e add sp, 0x2c                      |         
    0x0006eb30 pop {r4, r5, r6, r7, pc}          |         
                                                 | label_1:
    0x0006eb32 movs r3, 1                        |         r3 = 1;
    0x0006eb34 mov r1, r7                        |         r1 = r7;
    0x0006eb36 mov r0, r4                        |         r0 = r4;
    0x0006eb38 add r2, sp, 4                     |         r2 += var_4h;
    0x0006eb3a strd r5, r6, [sp, 4]              |         __asm ("strd r5, r6, [var_4h]");
    0x0006eb3e bl 0x6e144                        |         fcn_0006e144 (r0, r1, r2, r3, r4, r5, r6);
    0x0006eb42 b 0x6eb1a                         |         
                                                 |     } while (1);
                                                 | label_0:
    0x0006eb44 ldr r1, [pc, 0x28]                |     
    0x0006eb46 mov.w r2, 0x510                   |     r2 = 0x510;
    0x0006eb4a ldr r3, [pc, 0x28]                |     
    0x0006eb4c ldr r0, [pc, 0x28]                |     
    0x0006eb4e add r1, pc                        |     r1 = 0xdd6c2;
    0x0006eb50 add r3, pc                        |     r3 = 0xdd6ca;
    0x0006eb52 adds r1, 7                        |     r1 += 7;
    0x0006eb54 add r0, pc                        |     r0 = 0xdd6d0;
    0x0006eb56 bl 0x71518                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                 | label_2:
    0x0006eb5a blx 0x927c                        |     fprintf_chk ()
    0x0006eb5e nop                               |     
    0x0006eb60 adr r0, 0x18                      |     r0 = 0x18;
    0x0006eb62 movs r5, r0                       |     r5 = r0;
    0x0006eb64 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x0006eb66 movs r0, r0                       |     
    0x0006eb68 str r1, [sp, 0x1d8]               |     *(arg_1d8h) = r1;
    0x0006eb6a movs r5, r0                       |     r5 = r0;
    0x0006eb6c ldr r7, [sp, 0x298]               |     r7 = *(arg_298h);
    0x0006eb6e movs r5, r0                       |     r5 = r0;
    0x0006eb70 ldrsb r2, [r0, r3]                |     r2 = *((r0 + r3));
    0x0006eb72 movs r3, r0                       |     r3 = r0;
    0x0006eb74 ldr r4, [r7, r3]                  |     r4 = *((r7 + r3));
    0x0006eb76 movs r3, r0                       |     r3 = r0;
    0x0006eb78 pop {r4, r7}                      |     
    0x0006eb7a movs r2, r0                       |     r2 = r0;
                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6ed10 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0006ed10 ()                          | void fcn_0006ed10 (int16_t arg_c0h, int16_t arg_280h, uint32_t arg1, int16_t arg2, int16_t arg3) {
                                                     |     int16_t var_4h;
                                                     |     int32_t var_4h_2;
                                                     |     int16_t var_ch;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     |     r2 = arg3;
    0x0006ed10 mvnsmi lr, sp, lsr 18                 |     __asm ("mvnsmi lr, sp, lsr 18");
    0x0006ed14 mov r7, r1                            |     r7 = r1;
    0x0006ed16 ldr r1, [pc, 0xc8]                    |     
    0x0006ed18 mov r5, r2                            |     r5 = r2;
    0x0006ed1a sub sp, 0x10                          |     
    0x0006ed1c mvn r4, 1                             |     r4 = ~1;
    0x0006ed20 ldr r2, [pc, 0xc0]                    |     r2 = *(0x6ede4);
    0x0006ed22 movs r3, 0                            |     r3 = 0;
    0x0006ed24 add r1, pc                            |     r1 = 0xddb0a;
    0x0006ed26 ldr r2, [r1, r2]                      |     
    0x0006ed28 ldr r2, [r2]                          |     r2 = *(0xddb0a);
    0x0006ed2a str r2, [sp, 0xc]                     |     var_ch = r2;
    0x0006ed2c mov.w r2, 0                           |     r2 = 0;
    0x0006ed30 strd r4, r3, [sp, 4]                  |     __asm ("strd r4, r3, [var_4h]");
    0x0006ed32 orrs r1, r0                           |     r1 |= r0;
    0x0006ed34 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0006ed36 beq 0x6edcc                           |         goto label_4;
                                                     |     }
    0x0006ed38 ldrb.w r3, [r0, 0x27]                 |     r3 = *((r0 + 0x27));
    0x0006ed3c mov r4, r0                            |     r4 = r0;
    0x0006ed3e ands r6, r3, 4                        |     r6 = r3 & 4;
    0x0006ed42 ite ne                                |     
                                                     |     if (r6 == r3) {
    0x0006ed44 ldrne r2, [r0, 0x18]                  |         r2 = *((r0 + 0x18));
                                                     |     }
                                                     |     if (r6 == r3) {
    0x0006ed46 ubfxeq r2, r3, 3, 3                   |         __asm ("ubfxeq r2, r3, 3, 3");
                                                     |     }
    0x0006ed4a cmp r2, 0                             |     
                                                     |     if (r2 == 0) {
    0x0006ed4c beq 0x6edcc                           |         goto label_4;
                                                     |     }
    0x0006ed4e and r3, r3, 3                         |     r3 &= 3;
    0x0006ed52 add r1, sp, 4                         |     r1 += var_4h;
    0x0006ed54 cmp r3, 1                             |     
                                                     |     if (r3 == 1) {
    0x0006ed56 beq 0x6edc4                           |         goto label_5;
                                                     |     }
    0x0006ed58 bl 0x6e2f0                            |     r0 = fcn_0006e2f0 (r0, r1, r2, r3, r4, r5);
    0x0006ed5c mov r1, r0                            |     r1 = r0;
                                                     | label_2:
    0x0006ed5e adds r3, r1, 1                        |     r3 = r1 + 1;
                                                     |     if (r3 == r1) {
    0x0006ed60 beq 0x6edcc                           |         goto label_4;
                                                     |     }
                                                     |     if (r6 == 0) {
    0x0006ed62 cbz r6, 0x6edc0                       |         goto label_6;
                                                     |     }
    0x0006ed64 ldr r6, [r4, 4]                       |     r6 = *((r4 + 4));
                                                     | label_1:
    0x0006ed66 ldrb.w r3, [r4, 0x27]                 |     r3 = *((r4 + 0x27));
    0x0006ed6a ldr r2, [pc, 0x7c]                    |     
    0x0006ed6c and r3, r3, 3                         |     r3 &= 3;
    0x0006ed70 add r2, pc                            |     r2 = 0xddb5e;
    0x0006ed72 cmp r3, 1                             |     
    0x0006ed74 add.w r2, r2, r3, lsl 4               |     r2 += (r3 << 4);
    0x0006ed78 ldr r2, [r2, 4]                       |     r2 = *((r2 + 4));
    0x0006ed7a mul r2, r1, r2                        |     r2 = r1 * r2;
    0x0006ed7e ldr.w r8, [r6, r2]                    |     r8 = *((r6 + r2));
    0x0006ed82 add r6, r2                            |     r6 += r2;
                                                     |     if (r3 > 1) {
    0x0006ed84 bhi 0x6edb4                           |         goto label_7;
                                                     |     }
    0x0006ed86 ldr r6, [r6, 4]                       |     r6 = *((r6 + 4));
                                                     | label_0:
    0x0006ed88 cbnz r7, 0x6edac                      |     
                                                     |     if (r5 != 0) {
                                                     |         while (1) {
    0x0006ed8a cbz r5, 0x6ed90                       |             
    0x0006ed8c str.w r8, [r5]                        |             __asm ("str.w r8, [r5]");
                                                     |         }
                                                     | label_3:
    0x0006ed90 ldr r2, [pc, 0x58]                    |         
    0x0006ed92 ldr r3, [pc, 0x50]                    |         r3 = *(0x6ede6);
    0x0006ed94 add r2, pc                            |         r2 = 0xddb84;
    0x0006ed96 ldr r3, [r2, r3]                      |         r3 = *(0xddb84);
    0x0006ed98 ldr r2, [r3]                          |         r2 = *(0xddb84);
    0x0006ed9a ldr r3, [sp, 0xc]                     |         r3 = var_ch;
    0x0006ed9c eors r2, r3                           |         r2 ^= r3;
    0x0006ed9e mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0006eda2 bne 0x6edda                           |             goto label_8;
                                                     |         }
    0x0006eda4 mov r0, r6                            |         r0 = r6;
    0x0006eda6 add sp, 0x10                          |         
    0x0006eda8 pop.w {r4, r5, r6, r7, r8, pc}        |         
    0x0006edac mov r0, r4                            |         r0 = r4;
    0x0006edae bl 0x6e4c8                            |         fcn_0006e4c8 (r0, r1);
    0x0006edb2 b 0x6ed8a                             |         
                                                     |     }
                                                     | label_7:
    0x0006edb4 cmp r3, 2                             |     
    0x0006edb6 it eq                                 |     
                                                     |     if (r3 == 2) {
    0x0006edb8 moveq r6, r8                          |         r6 = r8;
                                                     |         goto label_9;
                                                     |     }
                                                     |     if (r3 == 2) {
                                                     | label_9:
    0x0006edba beq 0x6ed88                           |         goto label_0;
                                                     |     }
    0x0006edbc bl 0x6d884                            |     fcn_0006d884 ();
                                                     | label_6:
    0x0006edc0 adds r6, r4, 4                        |     r6 = r4 + 4;
    0x0006edc2 b 0x6ed66                             |     goto label_1;
                                                     | label_5:
    0x0006edc4 bl 0x6d584                            |     r0 = fcn_0006d584 (r0, r1);
    0x0006edc8 mov r1, r0                            |     r1 = r0;
    0x0006edca b 0x6ed5e                             |     goto label_2;
                                                     | label_4:
    0x0006edcc mov r6, r5                            |     r6 = r5;
    0x0006edce cmp r5, 0                             |     
                                                     |     if (r5 == 0) {
    0x0006edd0 beq 0x6ed90                           |         goto label_3;
                                                     |     }
    0x0006edd2 movs r3, 0                            |     r3 = 0;
    0x0006edd4 mov r6, r3                            |     r6 = r3;
    0x0006edd6 str r3, [r5]                          |     *(r5) = r3;
    0x0006edd8 b 0x6ed90                             |     goto label_3;
                                                     | label_8:
    0x0006edda blx 0x927c                            |     fprintf_chk ()
    0x0006edde nop                                   |     
    0x0006ede0 ldr r5, [sp, 0x280]                   |     r5 = *(arg_280h);
    0x0006ede2 movs r5, r0                           |     r5 = r0;
    0x0006ede4 lsls r0, r0, 0x13                     |     r0 <<= 0x13;
    0x0006ede6 movs r0, r0                           |     
    0x0006ede8 ldrh r0, [r7, 0x36]                   |     r0 = *((r7 + 0x36));
    0x0006edea movs r5, r0                           |     r5 = r0;
    0x0006edec ldr r5, [sp, 0xc0]                    |     r5 = *(arg_c0h);
    0x0006edee movs r5, r0                           |     r5 = r0;
                                                     | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6ee04 */
                                                         | #include <stdint.h>
                                                         |  
                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                         |  
    ; (fcn) fcn.0006ee04 ()                              | void fcn_0006ee04 (int16_t arg_80h, int16_t arg_2d0h, int16_t arg1, int16_t arg2, int16_t arg3) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
    0x0006ee04 mvnsmi lr, 0xb4000                        |     __asm ("mvnsmi lr, aav.0x000000ff");
    0x0006ee08 mov r4, r0                                |     r4 = r0;
    0x0006ee0a ldr r0, [pc, 0xd0]                        |     
    0x0006ee0c sub sp, 0xc                               |     
    0x0006ee0e ldr r3, [pc, 0xd0]                        |     r3 = *(0x6eee2);
    0x0006ee10 add r0, pc                                |     r0 = 0xddcf2;
    0x0006ee12 ldr r3, [r0, r3]                          |     
    0x0006ee14 ldr r3, [r3]                              |     r3 = *(0xddcf2);
    0x0006ee16 str r3, [sp, 4]                           |     var_4h = r3;
    0x0006ee18 mov.w r3, 0                               |     r3 = 0;
    0x0006ee1c cmp r4, 0                                 |     
                                                         |     if (r4 == 0) {
    0x0006ee1e beq 0x6eea0                               |         goto label_3;
                                                         |     }
    0x0006ee20 ldr r3, [r4]                              |     r3 = *(r4);
    0x0006ee22 ldrd r6, r7, [r3, 8]                      |     __asm ("ldrd r6, r7, [r3, 8]");
    0x0006ee26 cmp r6, 0                                 |     
    0x0006ee28 it eq                                     |     
                                                         |     if (r6 != 0) {
    0x0006ee2a moveq r6, r1                              |         r6 = r1;
                                                         |     }
    0x0006ee2c cmp r7, 0                                 |     
                                                         |     if (r7 == 0) {
    0x0006ee2e beq 0x6eeba                               |         goto label_4;
                                                         |     }
                                                         | label_1:
    0x0006ee30 mov.w sb, 0                               |     sb = 0;
    0x0006ee34 mov r8, sp                                |     r8 = sp;
                                                         |     do {
    0x0006ee36 mov r0, r4                                |         r0 = r4;
    0x0006ee38 bl 0x6edf0                                |         r0 = fcn_0006edf0 (r0);
                                                         |         if (r0 == 0) {
    0x0006ee3c cbz r0, 0x6ee66                           |             goto label_5;
                                                         |         }
                                                         | label_0:
    0x0006ee3e mov r2, r8                                |         r2 = r8;
    0x0006ee40 movs r1, 1                                |         r1 = 1;
    0x0006ee42 mov r0, r4                                |         r0 = r4;
    0x0006ee44 str.w sb, [sp]                            |         __asm ("str.w sb, [sp]");
    0x0006ee48 bl 0x6ed10                                |         r0 = fcn_0006ed10 (r0, r1, r2, r3, r4);
    0x0006ee4c mov r5, r0                                |         r5 = r0;
                                                         |         if (r6 != 0) {
    0x0006ee4e cbz r6, 0x6ee54                           |             
    0x0006ee50 ldr r0, [sp]                              |             r0 = *(sp);
    0x0006ee52 blx r6                                    |             uint32_t (*r6)(uint32_t) (r0);
                                                         |         }
    0x0006ee54 cmp r7, 0                                 |         
    0x0006ee56 beq 0x6ee36                               |         
                                                         |     } while (r7 == 0);
    0x0006ee58 mov r0, r5                                |     r0 = r5;
    0x0006ee5a blx r7                                    |     uint32_t (*r7)(uint32_t) (r0);
    0x0006ee5c mov r0, r4                                |     r0 = r4;
    0x0006ee5e bl 0x6edf0                                |     r0 = fcn_0006edf0 (r0);
    0x0006ee62 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0006ee64 bne 0x6ee3e                               |         goto label_0;
                                                         |     }
                                                         |     do {
                                                         | label_5:
    0x0006ee66 ldrb.w r3, [r4, 0x27]                     |         r3 = *((r4 + 0x27));
    0x0006ee6a lsls r3, r3, 0x1d                         |         r3 <<= 0x1d;
                                                         |         if (r3 < r3) {
    0x0006ee6c bmi 0x6eec4                               |             goto label_6;
                                                         |         }
                                                         | label_2:
    0x0006ee6e ldrb.w r3, [r4, 0x27]                     |         r3 = *((r4 + 0x27));
    0x0006ee72 mov r0, r4                                |         r0 = r4;
    0x0006ee74 bfc r3, 3, 3                              |         value_0 = BIT_MASK (3, );
                                                         |         value_0 = ~value_0;
                                                         |         r3 &= value_0;
    0x0006ee78 strb.w r3, [r4, 0x27]                     |         *((r4 + 0x27)) = r3;
    0x0006ee7c bl 0x6d768                                |         fcn_0006d768 (r0);
    0x0006ee80 ldrb.w r3, [r4, 0x27]                     |         r3 = *((r4 + 0x27));
    0x0006ee84 and r3, r3, 3                             |         r3 &= 3;
    0x0006ee88 cmp r3, 1                                 |         
    0x0006ee8a itt eq                                    |         
                                                         |         if (r3 != 1) {
    0x0006ee8c moveq r3, -1                              |             r3 = -1;
                                                         |         }
                                                         |         if (r3 == 1) {
    0x0006ee90 strd r3, r3, [r4, 0x2c]                   |             __asm ("strd r3, r3, [r4, 0x2c]");
                                                         |         }
    0x0006ee94 ldrb.w r3, [r4, 0x27]                     |         r3 = *((r4 + 0x27));
    0x0006ee98 orr r3, r3, 0x80                          |         r3 |= 0x80;
    0x0006ee9c strb.w r3, [r4, 0x27]                     |         *((r4 + 0x27)) = r3;
                                                         | label_3:
    0x0006eea0 ldr r2, [pc, 0x40]                        |         
    0x0006eea2 ldr r3, [pc, 0x3c]                        |         r3 = *(0x6eee2);
    0x0006eea4 add r2, pc                                |         r2 = 0xddd8c;
    0x0006eea6 ldr r3, [r2, r3]                          |         r3 = *(0xddd8c);
    0x0006eea8 ldr r2, [r3]                              |         r2 = *(0xddd8c);
    0x0006eeaa ldr r3, [sp, 4]                           |         r3 = var_4h;
    0x0006eeac eors r2, r3                               |         r2 ^= r3;
    0x0006eeae mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0006eeb2 bne 0x6eed8                               |             goto label_7;
                                                         |         }
    0x0006eeb4 add sp, 0xc                               |         
    0x0006eeb6 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_4:
    0x0006eeba orrs.w r3, r6, r2                         |         r3 = r6 | r2;
    0x0006eebe beq 0x6ee66                               |         
                                                         |     } while (r3 == r6);
    0x0006eec0 mov r7, r2                                |     r7 = r2;
    0x0006eec2 b 0x6ee30                                 |     goto label_1;
                                                         | label_6:
    0x0006eec4 ldr r0, [r4, 4]                           |     r0 = *((r4 + 4));
    0x0006eec6 blx 0x8dac                                |     fcn_00008dac ();
    0x0006eeca ldrb.w r3, [r4, 0x27]                     |     r3 = *((r4 + 0x27));
    0x0006eece bfc r3, 2, 1                              |     value_1 = BIT_MASK (1, );
                                                         |     value_1 = ~value_1;
                                                         |     r3 &= value_1;
    0x0006eed2 strb.w r3, [r4, 0x27]                     |     *((r4 + 0x27)) = r3;
    0x0006eed6 b 0x6ee6e                                 |     goto label_2;
                                                         | label_7:
    0x0006eed8 blx 0x927c                                |     fprintf_chk ()
    0x0006eedc ldr r4, [sp, 0x2d0]                       |     r4 = *(arg_2d0h);
    0x0006eede movs r5, r0                               |     r5 = r0;
    0x0006eee0 lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x0006eee2 movs r0, r0                               |     
    0x0006eee4 ldr r4, [sp, 0x80]                        |     r4 = *(arg_80h);
    0x0006eee6 movs r5, r0                               |     r5 = r0;
                                                         | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6efa0 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0006efa0 ()                                          | void fcn_0006efa0 (int16_t arg_4h, int16_t arg_68h, int16_t arg_90h, int16_t arg_1a8h, uint32_t arg1) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     r0 = arg1;
    0x0006efa0 blmi 0x15018ec                                        |     __asm ("blmi aav.0x00059b1a");
    0x0006efa4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0006efa8 sub sp, 0x1c                                          |     
    0x0006efaa add r2, pc                                            |     r2 += pc;
    0x0006efac ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0006efae ldr r3, [r3]                                          |     r3 = *(r3);
    0x0006efb0 str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x0006efb2 mov.w r3, 0                                           |     r3 = 0;
    0x0006efb6 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0006efb8 beq 0x6f09c                                           |         goto label_7;
                                                                     |     }
    0x0006efba ldrb.w r7, [r0, 0x27]                                 |     r7 = *((r0 + 0x27));
    0x0006efbe mov r4, r0                                            |     r4 = r0;
    0x0006efc0 ands r8, r7, 4                                        |     r8 = r7 & 4;
                                                                     |     if (r8 == r7) {
    0x0006efc4 beq 0x6f08e                                           |         goto label_8;
                                                                     |     }
    0x0006efc6 ldr r0, [r0, 0x18]                                    |     r0 = *((r0 + 0x18));
    0x0006efc8 adds r0, 1                                            |     r0++;
                                                                     |     if (r0 != 1) {
    0x0006efca bne 0x6f0c2                                           |         goto label_9;
                                                                     |     }
                                                                     | label_3:
    0x0006efcc lsls r0, r0, 2                                        |     r0 <<= 2;
    0x0006efce cmp r0, 1                                             |     
    0x0006efd0 it lo                                                 |     
                                                                     |     if (r0 >= 1) {
    0x0006efd2 movlo r0, 1                                           |         r0 = 1;
                                                                     |     }
    0x0006efd4 blx 0x9234                                            |     blkid_safe_string ();
    0x0006efd8 str r0, [sp, 4]                                       |     var_4h = r0;
    0x0006efda cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0006efdc beq 0x6f0c6                                           |         goto label_10;
                                                                     |     }
    0x0006efde and r7, r7, 3                                         |     r7 &= 3;
    0x0006efe2 mvn r3, 1                                             |     r3 = ~1;
    0x0006efe6 cmp r7, 1                                             |     
    0x0006efe8 add.w sl, sp, 0xc                                     |     sl += var_14h;
    0x0006efec str r3, [sp, 0xc]                                     |     var_14h = r3;
    0x0006efee mov.w r3, 0                                           |     r3 = 0;
    0x0006eff2 mov r0, r4                                            |     r0 = r4;
    0x0006eff4 mov r1, sl                                            |     r1 = sl;
    0x0006eff6 str r3, [sp, 0x10]                                    |     var_10h = r3;
                                                                     |     if (r7 == 1) {
    0x0006eff8 beq 0x6f096                                           |         goto label_11;
                                                                     |     }
    0x0006effa bl 0x6e2f0                                            |     r0 = fcn_0006e2f0 (r0, r1, r2, r3, r4, r5);
                                                                     | label_4:
    0x0006effe adds r2, r0, 1                                        |     r2 = r0 + 1;
                                                                     |     if (r2 == r0) {
    0x0006f000 beq 0x6f0be                                           |         goto label_12;
                                                                     |     }
    0x0006f002 ldrb.w r6, [r4, 0x27]                                 |     r6 = *((r4 + 0x27));
    0x0006f006 movs r5, 0                                            |     r5 = 0;
    0x0006f008 ldr r3, [pc, 0xe4]                                    |     
    0x0006f00a and r6, r6, 3                                         |     r6 &= 3;
    0x0006f00e add r3, pc                                            |     r3 = 0xde102;
    0x0006f010 add.w r3, r3, r6, lsl 4                               |     r3 += (r6 << 4);
    0x0006f014 ldr.w sb, [r3, 4]                                     |     sb = *((r3 + 4));
    0x0006f018 ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0006f01a sub.w fp, r3, 4                                       |     
    0x0006f01e adds r3, r4, 4                                        |     r3 = r4 + 4;
    0x0006f020 str r3, [sp]                                          |     *(sp) = r3;
                                                                     |     do {
    0x0006f022 cmp.w r8, 0                                           |         
                                                                     |         if (r8 == 0) {
    0x0006f026 beq 0x6f08a                                           |             goto label_13;
                                                                     |         }
    0x0006f028 ldr r2, [r4, 4]                                       |         r2 = *((r4 + 4));
                                                                     | label_2:
    0x0006f02a cmp r6, 1                                             |         
    0x0006f02c add.w r5, r5, 1                                       |         r5++;
    0x0006f030 mla r2, r0, sb, r2                                    |         __asm ("mla r2, r0, sb, r2");
                                                                     |         if (r6 > 1) {
    0x0006f034 bhi 0x6f072                                           |             goto label_14;
                                                                     |         }
    0x0006f036 ldr r2, [r2, 4]                                       |         r2 = *((r2 + 4));
    0x0006f038 cmp r7, 1                                             |         
    0x0006f03a mov r1, sl                                            |         r1 = sl;
    0x0006f03c mov r0, r4                                            |         r0 = r4;
    0x0006f03e str r2, [fp, 4]!                                      |         *(arg_4h) = r2;
    0x0006f040 cmp r7, 4                                             |         
                                                                     |         if (r7 == 4) {
    0x0006f042 beq 0x6f084                                           |             goto label_15;
                                                                     |         }
                                                                     | label_0:
    0x0006f044 bl 0x6e2f0                                            |         r0 = fcn_0006e2f0 (r0, r1, r2, r3, r4, r5);
                                                                     | label_1:
    0x0006f048 adds r3, r0, 1                                        |         r3 = r0 + 1;
    0x0006f04a bne 0x6f022                                           |         
                                                                     |     } while (r3 != r0);
    0x0006f04c ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0006f04e add.w r5, r3, r5, lsl 2                               |     r5 = r3 + (r5 << 2);
                                                                     | label_5:
    0x0006f052 movs r3, 0                                            |     r3 = 0;
    0x0006f054 str r3, [r5]                                          |     *(r5) = r3;
                                                                     | label_6:
    0x0006f056 ldr r2, [pc, 0x9c]                                    |     
    0x0006f058 ldr r3, [pc, 0x90]                                    |     r3 = *(0x6f0ec);
    0x0006f05a add r2, pc                                            |     r2 = 0xde154;
    0x0006f05c ldr r3, [r2, r3]                                      |     r3 = *(0xde154);
    0x0006f05e ldr r2, [r3]                                          |     r2 = *(0xde154);
    0x0006f060 ldr r3, [sp, 0x14]                                    |     r3 = var_14h;
    0x0006f062 eors r2, r3                                           |     r2 ^= r3;
    0x0006f064 mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x0006f068 bne 0x6f0e2                                           |         goto label_16;
                                                                     |     }
    0x0006f06a ldr r0, [sp, 4]                                       |     r0 = var_4h;
    0x0006f06c add sp, 0x1c                                          |     
    0x0006f06e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
    0x0006f070 ldrh r0, [r6, 0x3e]                                   |     r0 = *((r6 + 0x3e));
                                                                     | label_14:
    0x0006f072 cmp r6, 2                                             |     
                                                                     |     if (r6 != 2) {
    0x0006f074 bne 0x6f0cc                                           |         goto label_17;
                                                                     |     }
    0x0006f076 ldr r2, [r2]                                          |     r2 = *(r2);
    0x0006f078 cmp r7, 1                                             |     
    0x0006f07a mov r1, sl                                            |     r1 = sl;
    0x0006f07c mov r0, r4                                            |     r0 = r4;
    0x0006f07e str r2, [fp, 4]!                                      |     *(arg_4h) = r2;
                                                                     |     if (r7 != 1) {
    0x0006f082 bne 0x6f044                                           |         goto label_0;
                                                                     |     }
                                                                     | label_15:
    0x0006f084 bl 0x6d584                                            |     fcn_0006d584 (r0, r1);
    0x0006f088 b 0x6f048                                             |     goto label_1;
                                                                     | label_13:
    0x0006f08a ldr r2, [sp]                                          |     r2 = *(sp);
    0x0006f08c b 0x6f02a                                             |     goto label_2;
                                                                     | label_8:
    0x0006f08e ubfx r0, r7, 3, 3                                     |     r0 = (r7 >> 3) & ((1 << 3) - 1);
    0x0006f092 adds r0, 1                                            |     r0++;
    0x0006f094 b 0x6efcc                                             |     goto label_3;
                                                                     | label_11:
    0x0006f096 bl 0x6d584                                            |     fcn_0006d584 (r0, r1);
    0x0006f09a b 0x6effe                                             |     goto label_4;
                                                                     | label_7:
    0x0006f09c ldr r2, [pc, 0x58]                                    |     
    0x0006f09e ldr r3, [pc, 0x4c]                                    |     r3 = *(0x6f0ee);
    0x0006f0a0 add r2, pc                                            |     r2 = 0xde19c;
    0x0006f0a2 ldr r3, [r2, r3]                                      |     r3 = *(0xde19c);
    0x0006f0a4 ldr r2, [r3]                                          |     r2 = *(0xde19c);
    0x0006f0a6 ldr r3, [sp, 0x14]                                    |     r3 = var_14h;
    0x0006f0a8 eors r2, r3                                           |     r2 ^= r3;
    0x0006f0aa mov.w r3, 0                                           |     r3 = 0;
    0x0006f0ac lsls r0, r0, 0xc                                      |     r0 <<= 0xc;
                                                                     |     if (r0 != r0) {
    0x0006f0ae bne 0x6f0e2                                           |         goto label_16;
                                                                     |     }
    0x0006f0b0 movs r1, 4                                            |     r1 = 4;
    0x0006f0b2 movs r0, 1                                            |     r0 = 1;
    0x0006f0b4 add sp, 0x1c                                          |     
    0x0006f0b6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}            |     
    0x0006f0ba b.w 0x8c1c                                            |     void (*0x8c1c)() ();
                                                                     | label_12:
    0x0006f0be ldr r5, [sp, 4]                                       |     r5 = var_4h;
    0x0006f0c0 b 0x6f052                                             |     goto label_5;
                                                                     | label_9:
    0x0006f0c2 lsrs r3, r0, 0x1e                                     |     r3 = r0 >> 0x1e;
                                                                     |     if (r3 == r0) {
    0x0006f0c4 beq 0x6efcc                                           |         goto label_3;
                                                                     |     }
                                                                     | label_10:
    0x0006f0c6 movs r3, 0                                            |     r3 = 0;
    0x0006f0c8 str r3, [sp, 4]                                       |     var_4h = r3;
    0x0006f0ca b 0x6f056                                             |     goto label_6;
                                                                     | label_17:
    0x0006f0cc ldr r1, [pc, 0x2c]                                    |     
    0x0006f0ce mov.w r2, 0x204                                       |     r2 = 0x204;
    0x0006f0d2 ldr r3, [pc, 0x2c]                                    |     
    0x0006f0d4 ldr r0, [pc, 0x2c]                                    |     
    0x0006f0d6 add r1, pc                                            |     r1 = 0xde1d6;
    0x0006f0d8 add r3, pc                                            |     r3 = 0xde1de;
    0x0006f0da adds r1, 7                                            |     r1 += 7;
    0x0006f0dc add r0, pc                                            |     r0 = 0xde1e4;
    0x0006f0de bl 0x71614                                            |     r0 = fcn_00071614 (r0, r1, r2, r3);
                                                                     | label_16:
    0x0006f0e2 blx 0x927c                                            |     fprintf_chk ()
    0x0006f0e6 nop                                                   |     
    0x0006f0e8 ldr r3, [sp, 0x68]                                    |     r3 = *(arg_68h);
    0x0006f0ea movs r5, r0                                           |     r5 = r0;
    0x0006f0ec lsls r0, r0, 0x13                                     |     r0 <<= 0x13;
    0x0006f0ee movs r0, r0                                           |     
    0x0006f0f0 ldrh r2, [r3, 0x22]                                   |     r2 = *((r3 + 0x22));
    0x0006f0f2 movs r5, r0                                           |     r5 = r0;
    0x0006f0f4 ldr r2, [sp, 0x1a8]                                   |     r2 = *(arg_1a8h);
    0x0006f0f6 movs r5, r0                                           |     r5 = r0;
    0x0006f0f8 ldr r2, [sp, 0x90]                                    |     r2 = *(arg_90h);
    0x0006f0fa movs r5, r0                                           |     r5 = r0;
    0x0006f0fc str r2, [r7, r4]                                      |     *((r7 + r4)) = r2;
    0x0006f0fe movs r3, r0                                           |     r3 = r0;
    0x0006f100 strb r0, [r4, r1]                                     |     *((r4 + r1)) = r0;
    0x0006f102 movs r3, r0                                           |     r3 = r0;
    0x0006f104 str r0, [r7, r6]                                      |     *((r7 + r6)) = r0;
    0x0006f106 movs r3, r0                                           |     r3 = r0;
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6f2dc */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0006f2dc ()                                      | void fcn_0006f2dc (int16_t arg_368h, int16_t arg_3e8h, int16_t arg1, int16_t arg2, int16_t arg3, uint32_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     uint32_t var_ch;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int32_t var_1ch_2;
                                                                 |     int16_t var_24h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0006f2dc svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x0006f2e0 sub sp, 0x2c                                      |     
    0x0006f2e2 strd r1, r2, [sp, 4]                              |     __asm ("strd r1, r2, [var_4h]");
    0x0006f2e6 ldr r1, [pc, 0x150]                               |     
    0x0006f2e8 ldr r2, [pc, 0x150]                               |     r2 = *(0x6f43c);
    0x0006f2ea add r1, pc                                        |     r1 = 0xde728;
    0x0006f2ec ldr r2, [r1, r2]                                  |     
    0x0006f2ee ldr r2, [r2]                                      |     r2 = *(0xde728);
    0x0006f2f0 str r2, [sp, 0x24]                                |     var_24h = r2;
    0x0006f2f2 mov.w r2, 0                                       |     r2 = 0;
    0x0006f2f6 movs r2, 0                                        |     r2 = 0;
    0x0006f2f8 str r2, [sp, 0x14]                                |     var_14h = r2;
    0x0006f2fa str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0006f2fc cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0006f2fe beq.w 0x6f41e                                     |         goto label_6;
                                                                 |     }
    0x0006f302 mov r5, r0                                        |     r5 = r0;
    0x0006f304 bl 0x6edf0                                        |     r0 = fcn_0006edf0 (r0);
    0x0006f308 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006f30a beq 0x6f3f6                                       |         goto label_7;
                                                                 |     }
    0x0006f30c ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x0006f30e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0006f310 beq 0x6f404                                       |         goto label_8;
                                                                 |     }
    0x0006f312 mov r0, r3                                        |     r0 = r3;
    0x0006f314 blx 0x8f38                                        |     r0 = fcn_00008f38 ();
    0x0006f318 mov r6, r0                                        |     r6 = r0;
    0x0006f31a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006f31c beq 0x6f3fe                                       |         goto label_9;
                                                                 |     }
    0x0006f31e ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x0006f320 eor r7, r3, 1                                     |     r7 = r3 ^ 1;
                                                                 | label_4:
    0x0006f324 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x0006f326 movs r4, 0                                        |     r4 = 0;
    0x0006f328 add.w sb, sp, 0x18                                |     sb += var_18h;
    0x0006f32c add.w r8, sp, 0x1c                                |     r8 += var_1ch;
    0x0006f330 add.w fp, sp, 0x14                                |     
    0x0006f334 cmp r3, 0                                         |     
    0x0006f336 mvn r3, 1                                         |     r3 = ~1;
    0x0006f338 lsls r1, r0, 0xc                                  |     r1 = r0 << 0xc;
    0x0006f33a strd r3, r4, [sp, 0x1c]                           |     __asm ("strd r3, r4, [var_1ch]");
    0x0006f33e ite ne                                            |     
                                                                 |     if (r1 == r0) {
    0x0006f340 movne r3, r6                                      |         r3 = r6;
                                                                 |     }
                                                                 |     if (r1 != r0) {
    0x0006f342 moveq r3, r4                                      |         r3 = r4;
                                                                 |     }
    0x0006f344 adds r3, 1                                        |     r3++;
    0x0006f346 str r3, [sp]                                      |     *(sp) = r3;
                                                                 |     do {
                                                                 | label_0:
    0x0006f348 movs r3, 0                                        |         r3 = 0;
    0x0006f34a mov r2, sb                                        |         r2 = sb;
    0x0006f34c mov r1, r8                                        |         r1 = r8;
    0x0006f34e mov r0, r5                                        |         r0 = r5;
    0x0006f350 bl 0x6e79c                                        |         r0 = fcn_0006e79c (r0, r1, r2, r3);
                                                                 |         if (r0 == 0) {
    0x0006f354 cbz r0, 0x6f3ae                                   |             goto label_10;
                                                                 |         }
                                                                 | label_1:
    0x0006f356 ldr r0, [sp, 0x18]                                |         r0 = var_18h;
    0x0006f358 cmp r0, 0                                         |         
    0x0006f35a beq 0x6f348                                       |         
                                                                 |     } while (r0 == 0);
    0x0006f35c blx 0x8f38                                        |     r0 = fcn_00008f38 ();
    0x0006f360 mov sl, r0                                        |     sl = r0;
    0x0006f362 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006f364 beq 0x6f348                                       |         goto label_0;
                                                                 |     }
    0x0006f366 ldr r3, [sp]                                      |     r3 = *(sp);
    0x0006f368 adds r1, r4, r3                                   |     r1 = r4 + r3;
    0x0006f36a add r1, r0                                        |     r1 += r0;
    0x0006f36c cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x0006f36e bne 0x6f3e2                                       |         goto label_11;
                                                                 |     }
    0x0006f370 add r1, r6                                        |     r1 += r6;
    0x0006f372 movs r2, 1                                        |     r2 = 1;
    0x0006f374 mov r0, fp                                        |     r0 = fp;
    0x0006f376 bl 0x6530c                                        |     r0 = fcn_0006530c (r0, r1, r2);
    0x0006f37a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006f37c beq 0x6f3ee                                       |         goto label_12;
                                                                 |     }
                                                                 |     if (r6 != 0) {
    0x0006f37e cbz r6, 0x6f38e                                   |         
    0x0006f380 ldr r0, [sp, 0x14]                                |         r0 = var_14h;
    0x0006f382 mov r2, r6                                        |         r2 = r6;
    0x0006f384 ldr r1, [sp, 4]                                   |         r1 = var_4h;
    0x0006f386 add r0, r4                                        |         r0 += r4;
    0x0006f388 add r4, r6                                        |         r4 += r6;
    0x0006f38a blx 0x8f9c                                        |         fcn_00008f9c ();
                                                                 |     }
                                                                 | label_2:
    0x0006f38e ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x0006f390 mov r2, sl                                        |     r2 = sl;
    0x0006f392 ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x0006f394 movs r7, 0                                        |     r7 = 0;
    0x0006f396 add r0, r4                                        |     r0 += r4;
    0x0006f398 add r4, sl                                        |     r4 += sl;
    0x0006f39a blx 0x8f9c                                        |     fcn_00008f9c ();
    0x0006f39e movs r3, 0                                        |     r3 = 0;
    0x0006f3a0 mov r2, sb                                        |     r2 = sb;
    0x0006f3a2 mov r1, r8                                        |     r1 = r8;
    0x0006f3a4 mov r0, r5                                        |     r0 = r5;
    0x0006f3a6 bl 0x6e79c                                        |     r0 = fcn_0006e79c (r0, r1, r2, r3);
    0x0006f3aa cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0006f3ac bne 0x6f356                                       |         goto label_1;
                                                                 |     }
                                                                 | label_10:
    0x0006f3ae ldr r3, [sp, 8]                                   |     r3 = var_8h;
                                                                 |     if (r3 != 0) {
    0x0006f3b0 cbnz r3, 0x6f40e                                  |         goto label_13;
                                                                 |     }
                                                                 | label_5:
    0x0006f3b2 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0006f3b4 movs r3, 0                                        |     r3 = 0;
    0x0006f3b6 mov r0, r3                                        |     r0 = r3;
    0x0006f3b8 strb r3, [r2, r4]                                 |     *((r2 + r4)) = r3;
    0x0006f3ba mov r4, r3                                        |     r4 = r3;
    0x0006f3bc ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x0006f3be ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0006f3c0 str r3, [r2]                                      |     *(r2) = r3;
                                                                 | label_3:
    0x0006f3c2 blx 0x8dac                                        |     fcn_00008dac ();
    0x0006f3c6 ldr r2, [pc, 0x78]                                |     
    0x0006f3c8 ldr r3, [pc, 0x70]                                |     r3 = *(0x6f43c);
    0x0006f3ca add r2, pc                                        |     r2 = 0xde810;
    0x0006f3cc ldr r3, [r2, r3]                                  |     r3 = *(0xde810);
    0x0006f3ce ldr r2, [r3]                                      |     r2 = *(0xde810);
    0x0006f3d0 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x0006f3d2 eors r2, r3                                       |     r2 ^= r3;
    0x0006f3d4 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x0006f3d8 bne 0x6f434                                       |         goto label_14;
                                                                 |     }
    0x0006f3da mov r0, r4                                        |     r0 = r4;
    0x0006f3dc add sp, 0x2c                                      |     
    0x0006f3de pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_11:
    0x0006f3e2 movs r2, 1                                        |     r2 = 1;
    0x0006f3e4 mov r0, fp                                        |     r0 = fp;
    0x0006f3e6 bl 0x6530c                                        |     r0 = fcn_0006530c (r0, r1, r2);
    0x0006f3ea cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0006f3ec bne 0x6f38e                                       |         goto label_2;
                                                                 |     }
                                                                 | label_12:
    0x0006f3ee ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x0006f3f0 mvn r4, 0xb                                       |     r4 = ~0xb;
    0x0006f3f4 b 0x6f3c2                                         |     goto label_3;
                                                                 | label_7:
    0x0006f3f6 ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x0006f3f8 mov r4, r0                                        |     r4 = r0;
    0x0006f3fa str r0, [r2]                                      |     *(r2) = r0;
    0x0006f3fc b 0x6f3c2                                         |     goto label_3;
                                                                 | label_9:
    0x0006f3fe movs r7, 1                                        |     r7 = 1;
    0x0006f400 str r0, [sp, 8]                                   |     var_8h = r0;
    0x0006f402 b 0x6f324                                         |     goto label_4;
                                                                 | label_8:
    0x0006f404 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x0006f406 movs r7, 1                                        |     r7 = 1;
    0x0006f408 mov r6, r3                                        |     r6 = r3;
    0x0006f40a str r3, [sp, 8]                                   |     var_8h = r3;
    0x0006f40c b 0x6f324                                         |     goto label_4;
                                                                 | label_13:
    0x0006f40e ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x0006f410 mov r2, r6                                        |     r2 = r6;
    0x0006f412 ldr r1, [sp, 4]                                   |     r1 = var_4h;
    0x0006f414 add r0, r4                                        |     r0 += r4;
    0x0006f416 add r4, r6                                        |     r4 += r6;
    0x0006f418 blx 0x8f9c                                        |     fcn_00008f9c ();
    0x0006f41c b 0x6f3b2                                         |     goto label_5;
                                                                 | label_6:
    0x0006f41e ldr r1, [pc, 0x24]                                |     
    0x0006f420 movw r2, 0x7cf                                    |     r2 = 0x7cf;
    0x0006f424 ldr r3, [pc, 0x20]                                |     
    0x0006f426 ldr r0, [pc, 0x24]                                |     
    0x0006f428 add r1, pc                                        |     r1 = 0xde872;
    0x0006f42a add r3, pc                                        |     r3 = 0xde876;
    0x0006f42c adds r1, 7                                        |     r1 += 7;
    0x0006f42e add r0, pc                                        |     r0 = 0xde880;
    0x0006f430 bl 0x71518                                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_14:
    0x0006f434 blx 0x927c                                        |     fprintf_chk ()
    0x0006f438 str r7, [sp, 0x368]                               |     *(arg_368h) = r7;
    0x0006f43a movs r5, r0                                       |     r5 = r0;
    0x0006f43c lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0006f43e movs r0, r0                                       |     
    0x0006f440 str r6, [sp, 0x3e8]                               |     *(arg_3e8h) = r6;
    0x0006f442 movs r5, r0                                       |     r5 = r0;
    0x0006f444 ldr r5, [pc, 0x3a0]                               |     r5 = *(0x6f7e8);
    0x0006f446 movs r3, r0                                       |     r3 = r0;
    0x0006f448 str r2, [r0, r0]                                  |     *((r0 + r0)) = r2;
    0x0006f44a movs r3, r0                                       |     r3 = r0;
    0x0006f44c str r6, [r0, r0]                                  |     *((r0 + r0)) = r6;
    0x0006f44e movs r1, r0                                       |     r1 = r0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6f518 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0006f518 ()                                      | void fcn_0006f518 (int16_t arg_38h, int16_t arg_270h, int16_t arg_3b8h, int16_t arg1, uint32_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     uint32_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0006f518 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x0006f51c mov r7, r2                                        |     r7 = r2;
    0x0006f51e ldr r2, [pc, 0x100]                               |     
    0x0006f520 mov r6, r3                                        |     r6 = r3;
    0x0006f522 sub sp, 0x14                                      |     
    0x0006f524 cmp r1, 0                                         |     
    0x0006f526 ldr r3, [pc, 0xfc]                                |     r3 = *(0x6f626);
    0x0006f528 add r2, pc                                        |     r2 = 0xdeb4e;
    0x0006f52a str r1, [sp, 4]                                   |     var_4h = r1;
    0x0006f52c ldr r3, [r2, r3]                                  |     
    0x0006f52e ldr r2, [sp, 0x38]                                |     r2 = *(arg_38h);
    0x0006f530 ldr r3, [r3]                                      |     r3 = *(0xdeb4e);
    0x0006f532 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0006f534 mov.w r3, 0                                       |     r3 = 0;
    0x0006f536 lsls r0, r0, 0xc                                  |     r0 <<= 0xc;
    0x0006f538 clz r3, r0                                        |     r3 &= r0;
    0x0006f53c lsr.w r3, r3, 5                                   |     r3 >>= 5;
    0x0006f540 it eq                                             |     
                                                                 |     if (r0 != r0) {
    0x0006f542 moveq r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x0006f544 str r2, [sp]                                      |     *(sp) = r2;
    0x0006f546 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0006f548 bne 0x6f602                                       |         goto label_1;
                                                                 |     }
    0x0006f54a adds r3, r1, 1                                    |     r3 = r1 + 1;
    0x0006f54c mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r3 == r1) {
    0x0006f54e bne 0x6f558                                       |         
    0x0006f550 blx 0x8f38                                        |         r0 = fcn_00008f38 ();
    0x0006f554 mov r1, r0                                        |         r1 = r0;
    0x0006f556 str r0, [sp, 4]                                   |         var_4h = r0;
                                                                 |     }
    0x0006f558 adds r5, r1, 1                                    |     r5 = r1 + 1;
    0x0006f55a lsrs r5, r5, 1                                    |     r5 >>= 1;
    0x0006f55c adds r5, 1                                        |     r5++;
    0x0006f55e mov r0, r5                                        |     r0 = r5;
    0x0006f560 blx 0x9234                                        |     r0 = blkid_safe_string ();
    0x0006f564 mov sb, r0                                        |     sb = r0;
    0x0006f566 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006f568 beq 0x6f616                                       |         goto label_2;
                                                                 |     }
    0x0006f56a add.w r8, sp, 4                                   |     r8 += var_4h;
    0x0006f56e add.w fp, sp, 8                                   |     
    0x0006f572 mov sl, r0                                        |     sl = r0;
    0x0006f574 mov r1, r8                                        |     r1 = r8;
    0x0006f576 mov r0, fp                                        |     r0 = fp;
    0x0006f578 str r4, [sp, 8]                                   |     var_8h = r4;
    0x0006f57a bl 0x6f4a4                                        |     r0 = fcn_0006f4a4 (r0, r1);
    0x0006f57e cmn.w r0, 0x20                                    |     
    0x0006f582 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r0 == 0x20) {
    0x0006f584 beq 0x6f5ae                                       |         goto label_3;
                                                                 |     }
                                                                 |     do {
    0x0006f586 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0006f588 blt 0x6f5f0                                       |             goto label_4;
                                                                 |         }
    0x0006f58a mov r1, r8                                        |         r1 = r8;
    0x0006f58c mov r0, fp                                        |         r0 = fp;
    0x0006f58e bl 0x6f4a4                                        |         r0 = fcn_0006f4a4 (r0, r1);
    0x0006f592 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0006f594 blt 0x6f5ee                                       |             goto label_5;
                                                                 |         }
    0x0006f596 orr.w r0, r0, r4, lsl 4                           |         r0 |= (r4 << 4);
    0x0006f59a mov r1, r8                                        |         r1 = r8;
    0x0006f59c strb r0, [sl], 1                                  |         *(sl) = r0;
                                                                 |         sl++;
    0x0006f5a0 mov r0, fp                                        |         r0 = fp;
    0x0006f5a2 bl 0x6f4a4                                        |         r0 = fcn_0006f4a4 (r0, r1);
    0x0006f5a6 cmn.w r0, 0x20                                    |         
    0x0006f5aa mov r4, r0                                        |         r4 = r0;
    0x0006f5ac bne 0x6f586                                       |         
                                                                 |     } while (r0 != 0x20);
                                                                 | label_3:
    0x0006f5ae ldr r2, [sp]                                      |     r2 = *(sp);
    0x0006f5b0 movs r3, 0                                        |     r3 = 0;
    0x0006f5b2 strb.w r3, [sl]                                   |     *(sl) = r3;
                                                                 |     if (r2 != 0) {
    0x0006f5b6 cbz r2, 0x6f5be                                   |         
    0x0006f5b8 sub.w r3, sl, sb                                  |         r3 = sl - sb;
    0x0006f5bc str r3, [r2]                                      |         *(r2) = r3;
                                                                 |     }
    0x0006f5be mov r4, r6                                        |     r4 = r6;
                                                                 |     if (r6 == 0) {
    0x0006f5c0 cbz r6, 0x6f5cc                                   |         goto label_0;
                                                                 |     }
    0x0006f5c2 str.w sb, [r6]                                    |     __asm ("str.w sb, [r6]");
    0x0006f5c6 mov.w sb, 0                                       |     sb = 0;
    0x0006f5ca mov r4, sb                                        |     r4 = sb;
                                                                 |     do {
                                                                 | label_0:
    0x0006f5cc mov r0, sb                                        |         r0 = sb;
    0x0006f5ce blx 0x8dac                                        |         fcn_00008dac ();
    0x0006f5d2 ldr r2, [pc, 0x54]                                |         
    0x0006f5d4 ldr r3, [pc, 0x4c]                                |         r3 = *(0x6f624);
    0x0006f5d6 add r2, pc                                        |         r2 = 0xdec04;
    0x0006f5d8 ldr r3, [r2, r3]                                  |         r3 = *(0xdec04);
    0x0006f5da ldr r2, [r3]                                      |         r2 = *(0xdec04);
    0x0006f5dc ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0006f5de eors r2, r3                                       |         r2 ^= r3;
    0x0006f5e0 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0006f5e4 bne 0x6f61c                                       |             goto label_6;
                                                                 |         }
    0x0006f5e6 mov r0, r4                                        |         r0 = r4;
    0x0006f5e8 add sp, 0x14                                      |         
    0x0006f5ea pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_5:
    0x0006f5ee mov r4, r0                                        |         r4 = r0;
                                                                 | label_4:
    0x0006f5f0 cmp r7, 0                                         |         
    0x0006f5f2 beq 0x6f5cc                                       |         
                                                                 |     } while (r7 == 0);
    0x0006f5f4 mov.w r2, -1                                      |     r2 = -1;
    0x0006f5f8 mov r1, r5                                        |     r1 = r5;
    0x0006f5fa mov r0, sb                                        |     r0 = sb;
    0x0006f5fc blx 0x9014                                        |     fcn_00009014 ();
    0x0006f600 b 0x6f5cc                                         |     goto label_0;
                                                                 | label_1:
    0x0006f602 ldr r1, [pc, 0x28]                                |     
    0x0006f604 movs r2, 0x76                                     |     r2 = 0x76;
    0x0006f606 ldr r3, [pc, 0x28]                                |     
    0x0006f608 ldr r0, [pc, 0x28]                                |     
    0x0006f60a add r1, pc                                        |     r1 = 0xdec3c;
    0x0006f60c add r3, pc                                        |     r3 = 0xdec42;
    0x0006f60e adds r1, 7                                        |     r1 += 7;
    0x0006f610 add r0, pc                                        |     r0 = 0xdec48;
    0x0006f612 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_2:
    0x0006f616 mvn r4, 0xb                                       |     r4 = ~0xb;
    0x0006f61a b 0x6f5cc                                         |     goto label_0;
                                                                 | label_6:
    0x0006f61c blx 0x927c                                        |     fprintf_chk ()
    0x0006f620 str r5, [sp, 0x270]                               |     *(arg_270h) = r5;
    0x0006f622 movs r5, r0                                       |     r5 = r0;
    0x0006f624 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0006f626 movs r0, r0                                       |     
    0x0006f628 str r4, [sp, 0x3b8]                               |     *(arg_3b8h) = r4;
    0x0006f62a movs r5, r0                                       |     r5 = r0;
    0x0006f62c ldr r7, [pc, 0x308]                               |     r7 = *(0x6f938);
    0x0006f62e movs r3, r0                                       |     r3 = r0;
    0x0006f630 ldr r7, [pc, 0x3b0]                               |     r7 = *(0x6f9e4);
    0x0006f632 movs r3, r0                                       |     r3 = r0;
    0x0006f634 ldr r7, [pc, 0x370]                               |     r7 = *(0x6f9a8);
    0x0006f636 movs r3, r0                                       |     r3 = r0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6f730 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0006f730 ()                                      | void fcn_0006f730 (int16_t arg_48h, int16_t arg_190h, int16_t arg_208h, int16_t arg1, uint32_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     uint32_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0006f730 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x0006f734 sub sp, 0x24                                      |     
    0x0006f736 strd r2, r3, [sp, 8]                              |     __asm ("strd r2, r3, [var_8h]");
    0x0006f73a cmp r1, 0                                         |     
    0x0006f73c ldr r2, [pc, 0x1bc]                               |     
    0x0006f73e ldr r3, [pc, 0x1c0]                               |     r3 = *(0x6f902);
    0x0006f740 str r1, [sp, 0x14]                                |     var_14h = r1;
    0x0006f742 add r2, pc                                        |     r2 = 0xdf042;
    0x0006f744 ldr r3, [r2, r3]                                  |     
    0x0006f746 ldr r2, [sp, 0x48]                                |     r2 = *(arg_48h);
    0x0006f748 ldr r3, [r3]                                      |     r3 = *(0xdf042);
    0x0006f74a str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x0006f74c mov.w r3, 0                                       |     r3 = 0;
    0x0006f750 clz r3, r0                                        |     r3 &= r0;
    0x0006f754 lsr.w r3, r3, 5                                   |     r3 >>= 5;
    0x0006f758 it eq                                             |     
                                                                 |     if (r1 != 0) {
    0x0006f75a moveq r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x0006f75c str r2, [sp, 0x10]                                |     var_10h = r2;
    0x0006f75e cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0006f760 bne.w 0x6f88a                                     |         goto label_4;
                                                                 |     }
    0x0006f764 adds r2, r1, 1                                    |     r2 = r1 + 1;
    0x0006f766 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r2 == r1) {
    0x0006f768 bne 0x6f772                                       |         
    0x0006f76a blx 0x8f38                                        |         r0 = fcn_00008f38 ();
    0x0006f76e mov r1, r0                                        |         r1 = r0;
    0x0006f770 str r0, [sp, 0x14]                                |         var_14h = r0;
                                                                 |     }
    0x0006f772 lsr.w sl, r1, 2                                   |     sl = r1 >> 2;
    0x0006f776 ands r1, r1, 3                                    |     r1 &= 3;
    0x0006f77a it ne                                             |     
                                                                 |     if (r1 == r1) {
    0x0006f77c addne r1, r1, -1                                  |         r1 += -1;
                                                                 |     }
    0x0006f780 add.w r3, sl, sl, lsl 1                           |     r3 = sl + (sl << 1);
    0x0006f784 str r3, [sp]                                      |     *(sp) = r3;
    0x0006f786 itt ne                                            |     
                                                                 |     if (r1 == r1) {
    0x0006f788 addne r3, r3, r1                                  |         r3 += r1;
                                                                 |     }
                                                                 |     if (r1 == r1) {
    0x0006f78a strne r3, [sp]                                    |         *(sp) = r3;
                                                                 |     }
    0x0006f78c ldr r3, [sp]                                      |     r3 = *(sp);
    0x0006f78e adds r0, r3, 1                                    |     r0 = r3 + 1;
    0x0006f790 blx 0x9234                                        |     blkid_safe_string ();
    0x0006f794 str r0, [sp, 4]                                   |     var_4h = r0;
    0x0006f796 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006f798 beq.w 0x6f8f2                                     |         goto label_5;
                                                                 |     }
    0x0006f79c mov r5, r0                                        |     r5 = r0;
    0x0006f79e add.w fp, sp, 0x14                                |     
    0x0006f7a2 add.w r8, sp, 0x18                                |     r8 += var_18h;
    0x0006f7a6 mvn sb, 0x80000000                                |     sb = ~0x80000000;
    0x0006f7aa str r4, [sp, 0x18]                                |     var_18h = r4;
    0x0006f7ac b 0x6f80c                                         |     
                                                                 |     while (r0 != 0x20) {
    0x0006f7ae cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0006f7b0 blt 0x6f846                                       |             goto label_0;
                                                                 |         }
    0x0006f7b2 cmp r0, sb                                        |         
                                                                 |         if (r0 == sb) {
    0x0006f7b4 beq 0x6f842                                       |             goto label_1;
                                                                 |         }
    0x0006f7b6 mov r1, fp                                        |         r1 = fp;
    0x0006f7b8 mov r0, r8                                        |         r0 = r8;
    0x0006f7ba bl 0x6f6b0                                        |         fcn_0006f6b0 (r0, r1);
    0x0006f7be subs r7, r0, 0                                    |         r7 -= var_18h;
                                                                 |         if (r7 < var_18h) {
    0x0006f7c0 blt 0x6f886                                       |             goto label_6;
                                                                 |         }
    0x0006f7c2 cmp r7, sb                                        |         
                                                                 |         if (r7 == sb) {
    0x0006f7c4 beq 0x6f842                                       |             goto label_1;
                                                                 |         }
    0x0006f7c6 mov r1, fp                                        |         r1 = fp;
    0x0006f7c8 mov r0, r8                                        |         r0 = r8;
    0x0006f7ca bl 0x6f6b0                                        |         fcn_0006f6b0 (r0, r1);
    0x0006f7ce subs.w sl, r0, 0                                  |         sl -= var_18h;
                                                                 |         if (sl < var_18h) {
    0x0006f7d2 blt 0x6f8a0                                       |             goto label_7;
                                                                 |         }
    0x0006f7d4 mov r1, fp                                        |         r1 = fp;
    0x0006f7d6 mov r0, r8                                        |         r0 = r8;
    0x0006f7d8 bl 0x6f6b0                                        |         r0 = fcn_0006f6b0 (r0, r1);
    0x0006f7dc cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0006f7de blt 0x6f8a4                                       |             goto label_8;
                                                                 |         }
    0x0006f7e0 cmp sl, sb                                        |         
                                                                 |         if (sl == sb) {
    0x0006f7e2 beq 0x6f83e                                       |             goto label_9;
                                                                 |         }
    0x0006f7e4 cmp r0, sb                                        |         
    0x0006f7e6 add.w r5, r5, 3                                   |         r5 += 3;
                                                                 |         if (r0 == sb) {
    0x0006f7ea beq 0x6f8a8                                       |             goto label_10;
                                                                 |         }
    0x0006f7ec orr.w r0, r0, sl, lsl 6                           |         r0 |= (sl << 6);
    0x0006f7f0 ubfx sl, sl, 2, 6                                 |         sl = (sl >> 2) & ((1 << 6) - 1);
    0x0006f7f4 orr.w sl, sl, r7, lsl 4                           |         sl |= (r7 << 4);
    0x0006f7f8 ubfx r7, r7, 4, 4                                 |         r7 = (r7 >> 4) & ((1 << 4) - 1);
    0x0006f7fc orr.w r7, r7, r4, lsl 2                           |         r7 |= (r4 << 2);
    0x0006f800 strb r0, [r5, -0x1]                               |         *((r5 - 0x1)) = r0;
    0x0006f804 strb sl, [r5, -0x2]                               |         *((r5 - 0x2)) = sl;
    0x0006f808 strb r7, [r5, -0x3]                               |         *((r5 - 0x3)) = r7;
    0x0006f80c mov r1, fp                                        |         r1 = fp;
    0x0006f80e mov r0, r8                                        |         r0 = r8;
    0x0006f810 bl 0x6f6b0                                        |         r0 = fcn_0006f6b0 (r0, r1);
    0x0006f814 cmn.w r0, 0x20                                    |         
    0x0006f818 mov r4, r0                                        |         r4 = r0;
    0x0006f81a mov r6, r5                                        |         r6 = r5;
    0x0006f81c bne 0x6f7ae                                       |         
                                                                 |     }
                                                                 | label_2:
    0x0006f81e movs r3, 0                                        |     r3 = 0;
    0x0006f820 strb r3, [r6]                                     |     *(r6) = r3;
    0x0006f822 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
                                                                 |     if (r3 != 0) {
    0x0006f824 cbz r3, 0x6f82c                                   |         
    0x0006f826 ldr r2, [sp, 4]                                   |         r2 = var_4h;
    0x0006f828 subs r6, r6, r2                                   |         r6 -= r2;
    0x0006f82a str r6, [r3]                                      |         *(r3) = r6;
                                                                 |     }
    0x0006f82c ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0006f82e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0006f830 beq 0x6f8ce                                       |         goto label_11;
                                                                 |     }
    0x0006f832 ldr r2, [sp, 4]                                   |     r2 = var_4h;
    0x0006f834 str r2, [r3]                                      |     *(r3) = r2;
    0x0006f836 movs r3, 0                                        |     r3 = 0;
    0x0006f838 mov r4, r3                                        |     r4 = r3;
    0x0006f83a str r3, [sp, 4]                                   |     var_4h = r3;
    0x0006f83c b 0x6f856                                         |     goto label_3;
                                                                 | label_9:
    0x0006f83e cmp r0, sb                                        |     
                                                                 |     if (r0 == sb) {
    0x0006f840 beq 0x6f8d2                                       |         goto label_12;
                                                                 |     }
                                                                 | label_1:
    0x0006f842 mvn r4, 0x15                                      |     r4 = ~0x15;
                                                                 | label_0:
    0x0006f846 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x0006f848 ldr r2, [sp]                                      |     r2 = *(sp);
    0x0006f84a cmp r2, 0                                         |     
    0x0006f84c ite eq                                            |     
                                                                 |     if (r2 != 0) {
    0x0006f84e moveq r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r2 == 0) {
    0x0006f850 andne r3, r3, 1                                   |         r3 &= 1;
                                                                 |     }
    0x0006f852 lsls r1, r0, 0xc                                  |     r1 = r0 << 0xc;
    0x0006f854 cbnz r3, 0x6f878                                  |     
                                                                 |     while (1) {
                                                                 | label_3:
    0x0006f856 ldr r0, [sp, 4]                                   |         r0 = var_4h;
    0x0006f858 blx 0x8dac                                        |         fcn_00008dac ();
    0x0006f85c ldr r2, [pc, 0xa4]                                |         
    0x0006f85e ldr r3, [pc, 0xa0]                                |         r3 = *(0x6f902);
    0x0006f860 add r2, pc                                        |         r2 = 0xdf168;
    0x0006f862 ldr r3, [r2, r3]                                  |         r3 = *(0xdf168);
    0x0006f864 ldr r2, [r3]                                      |         r2 = *(0xdf168);
    0x0006f866 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x0006f868 eors r2, r3                                       |         r2 ^= r3;
    0x0006f86a mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0006f86e bne 0x6f8f8                                       |             goto label_13;
                                                                 |         }
    0x0006f870 mov r0, r4                                        |         r0 = r4;
    0x0006f872 add sp, 0x24                                      |         
    0x0006f874 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x0006f878 ldrd r1, r0, [sp]                                 |         __asm ("ldrd r1, r0, [sp]");
    0x0006f87c mov.w r2, -1                                      |         r2 = -1;
    0x0006f880 blx 0x9014                                        |         fcn_00009014 ();
    0x0006f884 b 0x6f856                                         |         
                                                                 |     }
                                                                 | label_6:
    0x0006f886 mov r4, r7                                        |     r4 = r7;
    0x0006f888 b 0x6f846                                         |     goto label_0;
                                                                 | label_4:
    0x0006f88a ldr r1, [pc, 0x7c]                                |     
    0x0006f88c movw r2, 0x2cd                                    |     r2 = 0x2cd;
    0x0006f890 ldr r3, [pc, 0x78]                                |     
    0x0006f892 ldr r0, [pc, 0x7c]                                |     
    0x0006f894 add r1, pc                                        |     r1 = 0xdf1a2;
    0x0006f896 add r3, pc                                        |     r3 = 0xdf1a6;
    0x0006f898 adds r1, 7                                        |     r1 += 7;
    0x0006f89a add r0, pc                                        |     r0 = 0xdf1b0;
    0x0006f89c bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_7:
    0x0006f8a0 mov r4, sl                                        |     r4 = sl;
    0x0006f8a2 b 0x6f846                                         |     goto label_0;
                                                                 | label_8:
    0x0006f8a4 mov r4, r0                                        |     r4 = r0;
    0x0006f8a6 b 0x6f846                                         |     goto label_0;
                                                                 | label_10:
    0x0006f8a8 tst.w sl, 3                                       |     
                                                                 |     if ((sl & 3) != 0) {
    0x0006f8ac bne 0x6f842                                       |         goto label_1;
                                                                 |     }
    0x0006f8ae ldr r2, [sp, 0x14]                                |     r2 = var_14h;
                                                                 |     if (r2 != 0) {
    0x0006f8b0 cbnz r2, 0x6f8ec                                  |         goto label_14;
                                                                 |     }
    0x0006f8b2 ubfx r3, sl, 2, 6                                 |     r3 = (sl >> 2) & ((1 << 6) - 1);
    0x0006f8b6 ubfx r1, r7, 4, 4                                 |     r1 = (r7 >> 4) & ((1 << 4) - 1);
    0x0006f8ba orr.w r2, r3, r7, lsl 4                           |     r2 = r3 | (r7 << 4);
    0x0006f8bc asrs r7, r0, 8                                    |     r7 = r0 >> 8;
    0x0006f8be orr.w r1, r1, r4, lsl 2                           |     r1 |= (r4 << 2);
    0x0006f8c2 mov r3, r6                                        |     r3 = r6;
    0x0006f8c4 strb r1, [r3], 2                                  |     *(r3) = r1;
                                                                 |     r3 += 2;
    0x0006f8c8 strb r2, [r6, 1]                                  |     *((r6 + 1)) = r2;
    0x0006f8ca mov r6, r3                                        |     r6 = r3;
    0x0006f8cc b 0x6f81e                                         |     goto label_2;
                                                                 | label_11:
    0x0006f8ce ldr r4, [sp, 0xc]                                 |     r4 = var_ch;
    0x0006f8d0 b 0x6f856                                         |     goto label_3;
                                                                 | label_12:
    0x0006f8d2 lsls r3, r7, 0x1c                                 |     r3 = r7 << 0x1c;
                                                                 |     if (r3 != r7) {
    0x0006f8d4 bne 0x6f842                                       |         goto label_1;
                                                                 |     }
    0x0006f8d6 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
                                                                 |     if (r3 == 0) {
    0x0006f8d8 cbnz r3, 0x6f8ec                                  |         
    0x0006f8da lsls r3, r4, 2                                    |         r3 = r4 << 2;
    0x0006f8dc and r3, r3, 0x3fc                                 |         r3 &= 0x3fc;
    0x0006f8e0 orr.w r3, r3, r7, asr 4                           |         r3 |= (r7 >> 4);
    0x0006f8e4 strb r3, [r5], 1                                  |         *(r5) = r3;
                                                                 |         r5++;
    0x0006f8e8 mov r6, r5                                        |         r6 = r5;
    0x0006f8ea b 0x6f81e                                         |         goto label_2;
                                                                 |     }
                                                                 | label_14:
    0x0006f8ec mvn r4, 0x23                                      |     r4 = ~0x23;
    0x0006f8f0 b 0x6f846                                         |     goto label_0;
                                                                 | label_5:
    0x0006f8f2 mvn r4, 0xb                                       |     r4 = ~0xb;
    0x0006f8f6 b 0x6f856                                         |     goto label_3;
                                                                 | label_13:
    0x0006f8f8 blx 0x927c                                        |     fprintf_chk ()
    0x0006f8fc str r3, [sp, 0x208]                               |     *(arg_208h) = r3;
    0x0006f8fe movs r5, r0                                       |     r5 = r0;
    0x0006f900 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0006f902 movs r0, r0                                       |     
    0x0006f904 str r2, [sp, 0x190]                               |     *(arg_190h) = r2;
    0x0006f906 movs r5, r0                                       |     r5 = r0;
    0x0006f908 ldr r5, [pc, 0xe0]                                |     r5 = *(0x6f9ec);
    0x0006f90a movs r3, r0                                       |     r3 = r0;
    0x0006f90c ldr r5, [pc, 0x1c8]                               |     r5 = *(0x6fad8);
    0x0006f90e movs r3, r0                                       |     r3 = r0;
    0x0006f910 ldr r5, [pc, 0x148]                               |     r5 = *(0x6fa5c);
    0x0006f912 movs r3, r0                                       |     r3 = r0;
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6f9c4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0006f9c4 ()                  | void fcn_0006f9c4 (int16_t arg_90h, int16_t arg_178h, int16_t arg_3e8h) {
                                             |     int16_t var_4h;
                                             |     int16_t var_18ch;
                                             |     int16_t var_0h;
                                             |     int16_t var_4h_2;
                                             |     int16_t var_8h;
                                             |     int16_t var_10h;
                                             |     int16_t var_14h;
    0x0006f9c4 blmi 0x12c22ec                |     __asm ("blmi aav.0x000590fa");
    0x0006f9c8 ldr r0, [pc, 0x124]           |     
    0x0006f9ca add r2, pc                    |     r2 += pc;
    0x0006f9cc push {r4, r5, r6, lr}         |     
    0x0006f9ce ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x0006f9d0 sub sp, 0x18                  |     
    0x0006f9d2 add r0, pc                    |     r0 = 0xdf4c6;
    0x0006f9d4 ldr r3, [r3]                  |     r3 = *(r3);
    0x0006f9d6 str r3, [sp, 0x14]            |     var_14h = r3;
    0x0006f9d8 mov.w r3, 0                   |     r3 = 0;
    0x0006f9dc blx 0x8de8                    |     r0 = fcn_00008de8 ();
                                             |     if (r0 == 0) {
    0x0006f9e0 cbz r0, 0x6f9f8               |         goto label_2;
                                             |     }
    0x0006f9e2 movs r1, 0                    |     r1 = 0;
    0x0006f9e4 mov r4, r0                    |     r4 = r0;
    0x0006f9e6 bl 0x6f934                    |     r0 = fcn_0006f934 (r0, r1);
    0x0006f9ea mov r5, r0                    |     r5 = r0;
    0x0006f9ec cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0006f9ee bne 0x6fa9c                   |         goto label_3;
                                             |     }
    0x0006f9f0 bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x0006f9f4 cmp r0, 6                     |     
    0x0006f9f6 bgt 0x6fa7c                   |     
                                             |     while (1) {
                                             | label_2:
    0x0006f9f8 ldr r1, [pc, 0xf8]            |         
    0x0006f9fa movs r4, 0                    |         r4 = 0;
    0x0006f9fc mov r3, r4                    |         r3 = r4;
    0x0006f9fe add r2, sp, 0x10              |         r2 += var_10h;
    0x0006fa00 mov r0, r4                    |         r0 = r4;
    0x0006fa02 str r4, [sp, 0x10]            |         var_10h = r4;
    0x0006fa04 add r1, pc                    |         r1 = 0xdf4fc;
    0x0006fa06 bl 0x73f70                    |         r0 = fcn_00073f70 ();
    0x0006fa0a subs r5, r0, 0                |         r5 = r0 - 0;
                                             |         if (r5 >= r0) {
    0x0006fa0c blt 0x6fa48                   |             
    0x0006fa0e ldr r6, [sp, 0x10]            |             r6 = var_10h;
                                             |             if (r6 == 0) {
    0x0006fa10 cbz r6, 0x6fa52               |                 goto label_1;
                                             |             }
    0x0006fa12 mov r1, r4                    |             r1 = r4;
    0x0006fa14 mov r0, r6                    |             r0 = r6;
    0x0006fa16 bl 0x6f934                    |             r0 = fcn_0006f934 (r0, r1);
    0x0006fa1a mov r5, r0                    |             r5 = r0;
    0x0006fa1c cmp r0, 0                     |             
                                             |             if (r0 != 0) {
    0x0006fa1e bne 0x6fabc                   |                 goto label_4;
                                             |             }
    0x0006fa20 bl 0x70bf8                    |             r0 = fcn_00070bf8 ();
    0x0006fa24 cmp r0, 6                     |             
                                             |             if (r0 <= 6) {
    0x0006fa26 ble 0x6fa52                   |                 goto label_1;
                                             |             }
    0x0006fa28 ldr r2, [pc, 0xcc]            |             
    0x0006fa2a mov r1, r5                    |             r1 = r5;
    0x0006fa2c ldr r3, [pc, 0xcc]            |             
    0x0006fa2e movs r0, 7                    |             r0 = 7;
    0x0006fa30 ldr r4, [pc, 0xcc]            |             
    0x0006fa32 add r2, pc                    |             r2 = 0xdf52e;
    0x0006fa34 str r6, [sp, 8]               |             var_8h = r6;
    0x0006fa36 add r3, pc                    |             r3 = 0xdf536;
    0x0006fa38 adds r2, 7                    |             r2 += 7;
    0x0006fa3a add r4, pc                    |             r4 = 0xdf53e;
    0x0006fa3c str r3, [sp, 4]               |             var_4h_2 = r3;
    0x0006fa3e str r4, [sp]                  |             *(sp) = r4;
    0x0006fa40 movs r3, 0x21                 |             r3 = 0x21;
    0x0006fa42 bl 0x71448                    |             fcn_00071448 ();
    0x0006fa46 b 0x6fa50                     |             
                                             |         } else {
    0x0006fa48 bl 0x70bf8                    |             r0 = fcn_00070bf8 ();
    0x0006fa4c cmp r0, 6                     |             
                                             |             if (r0 > 6) {
    0x0006fa4e bgt 0x6fac2                   |                 goto label_5;
                                             |             }
                                             |         }
    0x0006fa50 ldr r6, [sp, 0x10]            |         r6 = var_10h;
                                             | label_1:
    0x0006fa52 ldr r0, [pc, 0xb0]            |         
    0x0006fa54 add r0, pc                    |         r0 = 0xdf55e;
    0x0006fa56 blx 0x9200                    |         r0 = fcn_00009200 ();
    0x0006fa5a mov r5, r0                    |         r5 = r0;
                                             | label_0:
    0x0006fa5c mov r0, r6                    |         r0 = r6;
    0x0006fa5e blx 0x8dac                    |         fcn_00008dac ();
    0x0006fa62 ldr r2, [pc, 0xa4]            |         
    0x0006fa64 ldr r3, [pc, 0x84]            |         r3 = *(0x6faec);
    0x0006fa66 add r2, pc                    |         r2 = 0xdf574;
    0x0006fa68 ldr r3, [r2, r3]              |         r3 = *(0xdf574);
    0x0006fa6a ldr r2, [r3]                  |         r2 = *(0xdf574);
    0x0006fa6c ldr r3, [sp, 0x14]            |         r3 = var_14h;
    0x0006fa6e eors r2, r3                   |         r2 ^= r3;
    0x0006fa70 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x0006fa74 bne 0x6fae2                   |             goto label_6;
                                             |         }
    0x0006fa76 mov r0, r5                    |         r0 = r5;
    0x0006fa78 add sp, 0x18                  |         
    0x0006fa7a pop {r4, r5, r6, pc}          |         
    0x0006fa7c ldr r2, [pc, 0x8c]            |         
    0x0006fa7e mov r1, r5                    |         r1 = r5;
    0x0006fa80 ldr r3, [pc, 0x8c]            |         
    0x0006fa82 movs r0, 7                    |         r0 = 7;
    0x0006fa84 ldr r6, [pc, 0x8c]            |         
    0x0006fa86 add r2, pc                    |         r2 = 0xdf596;
    0x0006fa88 str r4, [sp, 8]               |         var_8h = r4;
    0x0006fa8a add r3, pc                    |         r3 = 0xdf59e;
    0x0006fa8c adds r2, 7                    |         r2 += 7;
    0x0006fa8e add r6, pc                    |         r6 = 0xdf5a6;
    0x0006fa90 str r3, [sp, 4]               |         var_4h_2 = r3;
    0x0006fa92 str r6, [sp]                  |         *(sp) = r6;
    0x0006fa94 movs r3, 0x17                 |         r3 = 0x17;
    0x0006fa96 bl 0x71448                    |         fcn_00071448 ();
    0x0006fa9a b 0x6f9f8                     |         
                                             |     }
                                             | label_3:
    0x0006fa9c ldr r2, [pc, 0x78]            |     
    0x0006fa9e ldr r3, [pc, 0x4c]            |     r3 = *(0x6faee);
    0x0006faa0 add r2, pc                    |     r2 = 0xdf5bc;
    0x0006faa2 ldr r3, [r2, r3]              |     r3 = *(0xdf5bc);
    0x0006faa4 ldr r2, [r3]                  |     r2 = *(0xdf5bc);
    0x0006faa6 ldr r3, [sp, 0x14]            |     r3 = var_14h;
    0x0006faa8 eors r2, r3                   |     r2 ^= r3;
    0x0006faaa mov.w r3, 0                   |     r3 = 0;
                                             |     if (r2 == r3) {
    0x0006faae bne 0x6fae2                   |         
    0x0006fab0 mov r0, r4                    |         r0 = r4;
    0x0006fab2 add sp, 0x18                  |         
    0x0006fab4 pop.w {r4, r5, r6, lr}        |         
    0x0006fab8 b.w 0x91fc                    |         void (*0x91fc)() ();
                                             | label_4:
    0x0006fabc mov r5, r6                    |         r5 = r6;
    0x0006fabe mov r6, r4                    |         r6 = r4;
    0x0006fac0 b 0x6fa5c                     |         goto label_0;
                                             | label_5:
    0x0006fac2 ldr r2, [pc, 0x58]            |         
    0x0006fac4 movs r3, 0x1d                 |         r3 = 0x1d;
    0x0006fac6 ldr r4, [pc, 0x58]            |         
    0x0006fac8 mov r1, r5                    |         r1 = r5;
    0x0006faca ldr r0, [pc, 0x58]            |         
    0x0006facc add r2, pc                    |         r2 = 0xdf5ee;
    0x0006face add r4, pc                    |         r4 = 0xdf5f4;
    0x0006fad0 adds r2, 7                    |         r2 += 7;
    0x0006fad2 add r0, pc                    |         r0 = 0xdf5fc;
    0x0006fad4 strd r0, r4, [sp]             |         __asm ("strd r0, r4, [sp]");
    0x0006fad8 movs r0, 7                    |         r0 = 7;
    0x0006fada bl 0x71448                    |         fcn_00071448 ();
    0x0006fade ldr r6, [sp, 0x10]            |         r6 = var_10h;
    0x0006fae0 b 0x6fa52                     |         goto label_1;
                                             |     }
                                             | label_6:
    0x0006fae2 blx 0x927c                    |     fprintf_chk ()
    0x0006fae6 nop                           |     
    0x0006fae8 str r0, [sp, 0x3e8]           |     *(arg_3e8h) = r0;
    0x0006faea movs r5, r0                   |     r5 = r0;
    0x0006faec lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x0006faee movs r0, r0                   |     
    0x0006faf0 ldr r4, [pc, 0x268]           |     r4 = *(0x6fd5c);
    0x0006faf2 movs r3, r0                   |     r3 = r0;
    0x0006faf4 ldr r4, [pc, 0x1c0]           |     r4 = *(0x6fcb8);
    0x0006faf6 movs r3, r0                   |     r3 = r0;
    0x0006faf8 ldr r4, [pc, 0x158]           |     r4 = *(0x6fc54);
    0x0006fafa movs r3, r0                   |     r3 = r0;
    0x0006fafc ldr r4, [pc, 0x378]           |     r4 = *(0x6fe78);
    0x0006fafe movs r3, r0                   |     r3 = r0;
    0x0006fb00 ldr r5, [pc, 0xc8]            |     r5 = *(0x6fbcc);
    0x0006fb02 movs r3, r0                   |     r3 = r0;
    0x0006fb04 ldr r4, [pc, 0x3c0]           |     r4 = *(0x6fec8);
    0x0006fb06 movs r3, r0                   |     r3 = r0;
    0x0006fb08 str r0, [sp, 0x178]           |     *(arg_178h) = r0;
    0x0006fb0a movs r5, r0                   |     r5 = r0;
    0x0006fb0c ldr r4, [pc, 8]               |     r4 = *(0x6fb18);
    0x0006fb0e movs r3, r0                   |     r3 = r0;
    0x0006fb10 ldr r4, [pc, 0x88]            |     r4 = *(0x6fb9c);
    0x0006fb12 movs r3, r0                   |     r3 = r0;
    0x0006fb14 ldr r4, [pc, 0x378]           |     r4 = *(0x6fe90);
    0x0006fb16 movs r3, r0                   |     r3 = r0;
    0x0006fb18 str r0, [sp, 0x90]            |     *(arg_90h) = r0;
    0x0006fb1a movs r5, r0                   |     r5 = r0;
    0x0006fb1c ldr r3, [pc, 0x2f0]           |     r3 = *(0x6fe10);
    0x0006fb1e movs r3, r0                   |     r3 = r0;
    0x0006fb20 ldr r4, [pc, 0x68]            |     r4 = *(0x6fb8c);
    0x0006fb22 movs r3, r0                   |     r3 = r0;
    0x0006fb24 ldr r4, [pc, 0x268]           |     r4 = *(0x6fd90);
    0x0006fb26 movs r3, r0                   |     r3 = r0;
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6fb28 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0006fb28 ()                      | void fcn_0006fb28 () {
                                                 |     int16_t var_ch;
                                                 |     int16_t var_4h;
                                                 |     int16_t var_45h;
                                                 |     int16_t var_18ch;
    0x0006fb28 blmi 0x7c23a0                     |     __asm ("blmi aav.0x00058f94");
    0x0006fb2c push {r4, lr}                     |     
    0x0006fb2e sub sp, 0x190                     |     
    0x0006fb30 add r2, pc                        |     r2 += pc;
    0x0006fb32 add r4, sp, 4                     |     r4 += var_4h;
    0x0006fb34 mov r0, r4                        |     r0 = r4;
    0x0006fb36 ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x0006fb38 ldr r3, [r3]                      |     r3 = *(r3);
    0x0006fb3a str r3, [sp, 0x18c]               |     var_18ch = r3;
    0x0006fb3c mov.w r3, 0                       |     r3 = 0;
    0x0006fb40 blx 0x8c60                        |     r0 = fcn_00008c60 ();
    0x0006fb44 cmp r0, 0                         |     
                                                 |     if (r0 < 0) {
    0x0006fb46 blt 0x6fb84                       |         goto label_1;
                                                 |     }
    0x0006fb48 ldrb.w r3, [r4, 0x41]             |     r3 = var_45h;
    0x0006fb4c cbnz r3, 0x6fb6a                  |     
                                                 |     while (r0 == 0) {
    0x0006fb4e bl 0x6f9c4                        |         fcn_0006f9c4 (r0, r1, r2);
                                                 | label_0:
    0x0006fb52 ldr r2, [pc, 0x50]                |         
    0x0006fb54 ldr r3, [pc, 0x48]                |         r3 = *(0x6fba0);
    0x0006fb56 add r2, pc                        |         r2 = 0xdf700;
    0x0006fb58 ldr r3, [r2, r3]                  |         r3 = *(0xdf700);
    0x0006fb5a ldr r2, [r3]                      |         r2 = *(0xdf700);
    0x0006fb5c ldr r3, [sp, 0x18c]               |         r3 = var_18ch;
    0x0006fb5e eors r2, r3                       |         r2 ^= r3;
    0x0006fb60 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0006fb64 bne 0x6fb98                       |             goto label_2;
                                                 |         }
    0x0006fb66 add sp, 0x190                     |         
    0x0006fb68 pop {r4, pc}                      |         
    0x0006fb6a ldr r1, [pc, 0x3c]                |         
    0x0006fb6c add.w r4, sp, 0x45                |         r4 += var_45h;
    0x0006fb70 mov r0, r4                        |         r0 = r4;
    0x0006fb72 add r1, pc                        |         r1 = 0xdf720;
    0x0006fb74 blx 0x95e0                        |         r0 = fcn_000095e0 ();
    0x0006fb78 cmp r0, 0                         |         
    0x0006fb7a beq 0x6fb4e                       |         
                                                 |     }
    0x0006fb7c mov r0, r4                        |     r0 = r4;
    0x0006fb7e blx 0x9200                        |     fcn_00009200 ();
    0x0006fb82 b 0x6fb52                         |     goto label_0;
                                                 | label_1:
    0x0006fb84 ldr r1, [pc, 0x24]                |     
    0x0006fb86 movs r2, 0x2f                     |     r2 = 0x2f;
    0x0006fb88 ldr r3, [pc, 0x24]                |     
    0x0006fb8a ldr r0, [pc, 0x28]                |     
    0x0006fb8c add r1, pc                        |     r1 = 0xdf73c;
    0x0006fb8e add r3, pc                        |     r3 = 0xdf742;
    0x0006fb90 adds r1, 7                        |     r1 += 7;
    0x0006fb92 add r0, pc                        |     r0 = 0xdf74c;
    0x0006fb94 bl 0x71518                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                 | label_2:
    0x0006fb98 blx 0x927c                        |     fprintf_chk ()
    0x0006fb9c ldrh r4, [r2, 0x3c]               |     r4 = *((r2 + 0x3c));
    0x0006fb9e movs r5, r0                       |     r5 = r0;
    0x0006fba0 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x0006fba2 movs r0, r0                       |     
    0x0006fba4 ldrh r6, [r5, 0x3a]               |     r6 = *((r5 + 0x3a));
    0x0006fba6 movs r5, r0                       |     r5 = r0;
    0x0006fba8 ldr r3, [pc, 0x378]               |     r3 = *(0x6ff24);
    0x0006fbaa movs r3, r0                       |     r3 = r0;
    0x0006fbac ldr r2, [pc, 0x3f0]               |     r2 = *(0x6ffa0);
    0x0006fbae movs r3, r0                       |     r3 = r0;
    0x0006fbb0 ldr r3, [pc, 0x328]               |     r3 = *(0x6fedc);
    0x0006fbb2 movs r3, r0                       |     r3 = r0;
    0x0006fbb4 cdp2 p0, 2, c0, c6, c1, 0         |     __asm ("cdp2 p0, 2, c0, c6, c1, 0");
                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6fbb8 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0006fbb8 ()                          | void fcn_0006fbb8 (int16_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4) {
                                                     |     int16_t var_4h;
                                                     |     int16_t var_8h;
                                                     |     int16_t var_ah;
                                                     |     int16_t var_ch_2;
                                                     |     int16_t var_4h_2;
                                                     |     int16_t var_ch;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     |     r2 = arg3;
                                                     |     r3 = arg4;
    0x0006fbb8 blx 0xfec9d180                        |     void (*0xfec9d180)() ();
    0x0006fbbc invalid                               |     
    0x0006fbc0 lsrs r6, r6, 5                        |     r6 >>= 5;
    0x0006fbc2 cmp r1, 0                             |     
    0x0006fbc4 ldr r4, [pc, 0xb8]                    |     
    0x0006fbc6 it eq                                 |     
                                                     |     if (r1 != 0) {
    0x0006fbc8 moveq r6, 0                           |         r6 = 0;
                                                     |     }
    0x0006fbca add r5, pc                            |     r5 += pc;
    0x0006fbcc sub sp, 0x10                          |     
    0x0006fbce ldr r4, [r5, r4]                      |     r4 = *((r5 + r4));
    0x0006fbd0 ldr r4, [r4]                          |     r4 = *(0x6fc80);
    0x0006fbd2 str r4, [sp, 0xc]                     |     var_ch = r4;
    0x0006fbd4 mov.w r4, 0                           |     r4 = 0;
    0x0006fbd8 cmp r6, 0                             |     
                                                     |     if (r6 != 0) {
    0x0006fbda bne 0x6fc64                           |         goto label_2;
                                                     |     }
    0x0006fbdc mov r4, r1                            |     r4 = r1;
                                                     |     if (r1 == 0) {
    0x0006fbde cbz r1, 0x6fc50                       |         goto label_3;
                                                     |     }
    0x0006fbe0 cmp.w r3, -1                          |     
    0x0006fbe4 it eq                                 |     
                                                     |     if (r3 == -1) {
    0x0006fbe6 cmpeq r2, -1                          |         __asm ("cmpeq r2, -1");
                                                     |     }
    0x0006fbea mov r5, r0                            |     r5 = r0;
    0x0006fbec it eq                                 |     
                                                     |     if (r3 != -1) {
    0x0006fbee moveq r2, r6                          |         r2 = r6;
                                                     |     }
                                                     |     if (r3 != -1) {
    0x0006fbf0 bne 0x6fc38                           |         goto label_4;
                                                     |     }
    0x0006fbf2 movs r3, 0                            |     r3 = 0;
    0x0006fbf4 mov r1, r4                            |     r1 = r4;
    0x0006fbf6 mov r0, r5                            |     r0 = r5;
    0x0006fbf8 blx 0x8d2c                            |     r0 = fcn_00008d2c ();
    0x0006fbfc cmp r0, 0                             |     
                                                     |     if (r0 < 0) {
    0x0006fbfe blt 0x6fc54                           |         goto label_5;
                                                     |     }
                                                     |     if (r0 == 0) {
                                                     | label_0:
    0x0006fc00 beq 0x6fc20                           |         goto label_1;
                                                     |     }
    0x0006fc02 mov r1, r0                            |     r1 = r0;
    0x0006fc04 movs r3, 0                            |     r3 = 0;
    0x0006fc06 add.w ip, r5, 6                       |     
                                                     |     do {
    0x0006fc0a ldrsh.w r2, [ip, r3, lsl 3]           |         offset_0 = r3 << 3;
                                                     |         r2 = *((ip + offset_0));
                                                     |         if (r2 != 0) {
    0x0006fc0e cbz r2, 0x6fc16                       |             
    0x0006fc10 lsls r2, r2, 0x1a                     |             r2 <<= 0x1a;
                                                     |             if (r2 < r2) {
    0x0006fc12 bmi 0x6fc5e                           |                 goto label_6;
                                                     |             }
    0x0006fc14 subs r1, 1                            |             r1--;
                                                     |         }
    0x0006fc16 adds r3, 1                            |         r3++;
    0x0006fc18 cmp r1, 0                             |         
    0x0006fc1a it ne                                 |         
                                                     |         if (r1 != 0) {
    0x0006fc1c cmpne r4, r3                          |             __asm ("cmpne r4, r3");
                                                     |         }
    0x0006fc1e bhi 0x6fc0a                           |         
                                                     |     } while (r1 > 0);
                                                     | label_1:
    0x0006fc20 ldr r2, [pc, 0x60]                    |     
    0x0006fc22 ldr r3, [pc, 0x5c]                    |     r3 = *(0x6fc82);
    0x0006fc24 add r2, pc                            |     r2 = 0xdf8ac;
    0x0006fc26 ldr r3, [r2, r3]                      |     r3 = *(0xdf8ac);
    0x0006fc28 ldr r2, [r3]                          |     r2 = *(0xdf8ac);
    0x0006fc2a ldr r3, [sp, 0xc]                     |     r3 = var_ch;
    0x0006fc2c eors r2, r3                           |     r2 ^= r3;
    0x0006fc2e mov.w r3, 0                           |     r3 = 0;
    0x0006fc30 lsls r0, r0, 0xc                      |     r0 <<= 0xc;
                                                     |     if (r0 != r0) {
    0x0006fc32 bne 0x6fc78                           |         goto label_7;
                                                     |     }
    0x0006fc34 add sp, 0x10                          |     
    0x0006fc36 pop {r4, r5, r6, pc}                  |     
                                                     | label_4:
    0x0006fc38 add r0, sp, 4                         |     r0 += var_4h_2;
    0x0006fc3a bl 0x7c6a8                            |     fcn_0007c6a8 (r0, r1, r2, r3, r4);
    0x0006fc3c ldc2 p3, c2, [r5, -0]!                |     __asm ("ldc2 p3, c2, [r5, -0]!");
    0x0006fc40 mov r2, r0                            |     r2 = r0;
    0x0006fc42 mov r1, r4                            |     r1 = r4;
    0x0006fc44 mov r0, r5                            |     r0 = r5;
    0x0006fc46 blx 0x8d2c                            |     r0 = fcn_00008d2c ();
    0x0006fc4a cmp r0, 0                             |     
                                                     |     if (r0 >= 0) {
    0x0006fc4c bge 0x6fc00                           |         goto label_0;
                                                     |     }
    0x0006fc4e b 0x6fc54                             |     goto label_5;
                                                     | label_3:
    0x0006fc50 mov r0, r1                            |     r0 = r1;
    0x0006fc52 b 0x6fc20                             |     goto label_1;
                                                     | label_5:
    0x0006fc54 blx 0x9628                            |     r0 = fcn_00009628 ();
    0x0006fc58 ldr r0, [r0]                          |     r0 = *(r0);
    0x0006fc5a rsbs r0, r0, 0                        |     r0 -= ;
    0x0006fc5c b 0x6fc20                             |     goto label_1;
                                                     | label_6:
    0x0006fc5e mvn r0, 8                             |     r0 = ~8;
    0x0006fc62 b 0x6fc20                             |     goto label_1;
                                                     | label_2:
    0x0006fc64 ldr r1, [pc, 0x20]                    |     
    0x0006fc66 movs r2, 0xa5                         |     r2 = 0xa5;
    0x0006fc68 ldr r3, [pc, 0x20]                    |     
    0x0006fc6a ldr r0, [pc, 0x24]                    |     
    0x0006fc6c add r1, pc                            |     r1 = 0xdf8f8;
    0x0006fc6e add r3, pc                            |     r3 = 0xdf8fe;
    0x0006fc70 adds r1, 7                            |     r1 += 7;
    0x0006fc72 add r0, pc                            |     r0 = 0xdf908;
    0x0006fc74 bl 0x71518                            |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                     | label_7:
    0x0006fc78 blx 0x927c                            |     fprintf_chk ()
    0x0006fc7c ldrh r2, [r7, 0x36]                   |     r2 = *((r7 + 0x36));
    0x0006fc7e movs r5, r0                           |     r5 = r0;
    0x0006fc80 lsls r0, r0, 0x13                     |     r0 <<= 0x13;
    0x0006fc82 movs r0, r0                           |     
    0x0006fc84 ldrh r0, [r4, 0x34]                   |     r0 = *((r4 + 0x34));
    0x0006fc86 movs r5, r0                           |     r5 = r0;
    0x0006fc88 ldr r3, [pc, 0x60]                    |     r3 = *(0x6fcec);
    0x0006fc8a movs r3, r0                           |     r3 = r0;
    0x0006fc8c ldr r3, [pc, 0x178]                   |     r3 = *(0x6fe08);
    0x0006fc8e movs r3, r0                           |     r3 = r0;
    0x0006fc90 ldr r3, [pc, 0xb8]                    |     r3 = *(0x6fd4c);
    0x0006fc92 movs r3, r0                           |     r3 = r0;
                                                     | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6fc94 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0006fc94 ()                          | void fcn_0006fc94 (int16_t arg1, int16_t arg2) {
                                                     |     int16_t var_4h;
                                                     |     int16_t var_8h;
                                                     |     int16_t var_ah;
                                                     |     int16_t var_ch;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0006fc94 pkhbtmi fp, ip, r0, lsl 0xa           |     __asm ("pkhbtmi fp, ip, r0, lsl 0xa");
    0x0006fc98 ldr r4, [pc, 0x50]                    |     
    0x0006fc9a sub sp, 0x10                          |     
    0x0006fc9c movs r1, 0                            |     r1 = 0;
    0x0006fc9e ldr.w lr, [pc, 0x50]                  |     lr = *(0x6fcf2);
    0x0006fca2 add r4, pc                            |     r4 = 0xdf992;
    0x0006fca4 ldr.w lr, [r4, lr]                    |     
    0x0006fca8 ldr.w lr, [lr]                        |     lr = *(0xdf992);
    0x0006fcac str.w lr, [sp, 0xc]                   |     __asm ("str.w lr, [var_ch]");
    0x0006fcb0 mov.w lr, 0                           |     lr = 0;
    0x0006fcb2 lsrs r0, r0, 0x18                     |     r0 >>= 0x18;
    0x0006fcb4 strh.w r1, [sp, 0xa]                  |     var_ah = r1;
    0x0006fcb8 str r0, [sp, 4]                       |     var_4h = r0;
    0x0006fcba movs r1, 1                            |     r1 = 1;
    0x0006fcbc add r0, sp, 4                         |     r0 += var_4h;
    0x0006fcbe strh.w ip, [sp, 8]                    |     var_8h = ip;
    0x0006fcc2 bl 0x6fbb8                            |     fcn_0006fbb8 (r0, r1, r2, r3);
    0x0006fcc6 ldr r2, [pc, 0x2c]                    |     
    0x0006fcc8 cmp r0, 0                             |     
    0x0006fcca ldr r3, [pc, 0x24]                    |     r3 = *(0x6fcf2);
    0x0006fccc it gt                                 |     
                                                     |     if (r0 > 0) {
    0x0006fcce ldrshgt r0, [sp, 0xa]                 |         __asm ("ldrshgt r0, [var_ah]");
                                                     |     }
    0x0006fcd2 add r2, pc                            |     r2 = 0xdf9cc;
    0x0006fcd4 ldr r3, [r2, r3]                      |     r3 = *(0xdf9cc);
    0x0006fcd6 ldr r2, [r3]                          |     r2 = *(0xdf9cc);
    0x0006fcd8 ldr r3, [sp, 0xc]                     |     r3 = var_ch;
    0x0006fcda eors r2, r3                           |     r2 ^= r3;
    0x0006fcdc mov.w r3, 0                           |     r3 = 0;
                                                     |     if (r2 == r3) {
    0x0006fce0 bne 0x6fce6                           |         
    0x0006fce2 add sp, 0x10                          |         
    0x0006fce4 pop {r4, pc}                          |         
                                                     |     }
    0x0006fce6 blx 0x927c                            |     fprintf_chk ()
    0x0006fcea nop                                   |     
    0x0006fcec ldrh r2, [r4, 0x30]                   |     r2 = *((r4 + 0x30));
    0x0006fcee movs r5, r0                           |     r5 = r0;
    0x0006fcf0 lsls r0, r0, 0x13                     |     r0 <<= 0x13;
    0x0006fcf2 movs r0, r0                           |     
    0x0006fcf4 ldrh r2, [r6, 0x2e]                   |     r2 = *((r6 + 0x2e));
    0x0006fcf6 movs r5, r0                           |     r5 = r0;
                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6fcf8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0006fcf8 ()                  | void fcn_0006fcf8 (int16_t arg_804h, int16_t arg1) {
                                             |     int16_t var_4h_2;
                                             |     r0 = arg1;
    0x0006fcf8 blmi 0x88257c                 |     __asm ("blmi aav.0x00058dc2");
    0x0006fcfc push {r4, r5, r6, lr}         |     
    0x0006fcfe subw sp, sp, 0x808            |     __asm ("subw sp, sp, aav.0x000000ff");
    0x0006fd02 add r2, pc                    |     r2 += pc;
    0x0006fd04 movs r5, 0                    |     r5 = 0;
    0x0006fd06 mov r4, r0                    |     r4 = r0;
    0x0006fd08 add r6, sp, 4                 |     r6 += var_4h_2;
    0x0006fd0a ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x0006fd0c ldr r3, [r3]                  |     r3 = *(r3);
    0x0006fd0e str.w r3, [sp, 0x804]         |     __asm ("str.w r3, [arg_804h]");
    0x0006fd12 mov.w r3, 0                   |     r3 = 0;
                                             |     do {
                                             | label_0:
    0x0006fd16 movs r2, 0                    |         r2 = 0;
    0x0006fd18 movs r3, 0                    |         r3 = 0;
    0x0006fd1a movs r1, 1                    |         r1 = 1;
    0x0006fd1c mov r0, r4                    |         r0 = r4;
    0x0006fd1e bl 0x6fc94                    |         r0 = fcn_0006fc94 (r0, r1);
    0x0006fd22 cmp r0, 0                     |         
                                             |         if (r0 < 0) {
    0x0006fd24 blt 0x6fd3e                   |             goto label_2;
                                             |         }
                                             |         if (r0 == 0) {
    0x0006fd26 beq 0x6fd70                   |             goto label_3;
                                             |         }
    0x0006fd28 mov.w r2, 0x800               |         r2 = 0x800;
    0x0006fd2c mov r1, r6                    |         r1 = r6;
    0x0006fd2e mov r0, r4                    |         r0 = r4;
    0x0006fd30 blx 0x8dc4                    |         r0 = fcn_00008dc4 ();
    0x0006fd34 cmp r0, 0                     |         
                                             |         if (r0 < 0) {
    0x0006fd36 blt 0x6fd5e                   |             goto label_4;
                                             |         }
                                             |         if (r0 == 0) {
    0x0006fd38 beq 0x6fd70                   |             goto label_3;
                                             |         }
    0x0006fd3a add r5, r0                    |         r5 += r0;
    0x0006fd3c b 0x6fd16                     |         
                                             |     } while (1);
                                             | label_2:
    0x0006fd3e adds r3, r0, 4                |     r3 = r0 + 4;
                                             |     if (r3 == r0) {
    0x0006fd40 beq 0x6fd16                   |         goto label_0;
                                             |     }
                                             | label_1:
    0x0006fd42 ldr r2, [pc, 0x3c]            |     
    0x0006fd44 ldr r3, [pc, 0x34]            |     r3 = *(0x6fd7c);
    0x0006fd46 add r2, pc                    |     r2 = 0xdfacc;
    0x0006fd48 ldr r3, [r2, r3]              |     r3 = *(0xdfacc);
    0x0006fd4a ldr r2, [r3]                  |     r2 = *(0xdfacc);
    0x0006fd4c ldr.w r3, [sp, 0x804]         |     r3 = *(arg_804h);
    0x0006fd50 eors r2, r3                   |     r2 ^= r3;
    0x0006fd52 mov.w r3, 0                   |     r3 = 0;
                                             |     if (r2 != r3) {
    0x0006fd56 bne 0x6fd74                   |         goto label_5;
                                             |     }
    0x0006fd58 addw sp, sp, 0x808            |     __asm ("addw sp, sp, aav.0x000000ff");
    0x0006fd5c pop {r4, r5, r6, pc}          |     
                                             | label_4:
    0x0006fd5e blx 0x9628                    |     r0 = fcn_00009628 ();
    0x0006fd62 ldr r0, [r0]                  |     r0 = *(r0);
    0x0006fd64 cmp r0, 4                     |     
                                             |     if (r0 == 4) {
    0x0006fd66 beq 0x6fd16                   |         goto label_0;
                                             |     }
    0x0006fd68 cmp r0, 0xb                   |     
    0x0006fd6a it ne                         |     
                                             |     if (r0 == 0xb) {
    0x0006fd6c rsbne r0, r0, 0               |         __asm ("rsbne r0, r0, 0");
                                             |         goto label_6;
                                             |     }
                                             |     if (r0 != 0xb) {
                                             | label_6:
    0x0006fd6e bne 0x6fd42                   |         goto label_1;
                                             |     }
                                             | label_3:
    0x0006fd70 mov r0, r5                    |     r0 = r5;
    0x0006fd72 b 0x6fd42                     |     goto label_1;
                                             | label_5:
    0x0006fd74 blx 0x927c                    |     fprintf_chk ()
    0x0006fd78 ldrh r2, [r0, 0x2e]           |     r2 = *((r0 + 0x2e));
    0x0006fd7a movs r5, r0                   |     r5 = r0;
    0x0006fd7c lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x0006fd7e movs r0, r0                   |     
    0x0006fd80 ldrh r6, [r7, 0x2a]           |     r6 = *((r7 + 0x2a));
    0x0006fd82 movs r5, r0                   |     r5 = r0;
                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x6ff50 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0006ff50 ()                          | void fcn_0006ff50 () {
                                                     |     int16_t var_0h;
                                                     |     int16_t var_4h;
                                                     |     int16_t var_8h;
                                                     |     int16_t var_10h;
                                                     |     int16_t var_14h;
                                                     |     int16_t var_18h;
                                                     |     int32_t var_18h_2;
                                                     |     int16_t var_24h;
    0x0006ff50 movwhs r4, 0x975                      |     __asm ("movwhs r4, aav.0x00058b66");
    0x0006ff54 ldr r2, [pc, 0x1d4]                   |     
    0x0006ff56 movs r0, 0x55                         |     r0 = 0x55;
    0x0006ff58 push.w {r4, r5, r6, r7, r8, lr}       |     
    0x0006ff5c sub sp, 0x28                          |     
    0x0006ff5e add r1, pc                            |     r1 += pc;
    0x0006ff60 ldr r2, [r1, r2]                      |     r2 = *((r1 + r2));
    0x0006ff62 ldr r2, [r2]                          |     r2 = *(0x7012c);
    0x0006ff64 str r2, [sp, 0x24]                    |     var_24h = r2;
    0x0006ff66 mov.w r2, 0                           |     r2 = 0;
    0x0006ff6a strd r3, r3, [sp, 0x10]               |     __asm ("strd r3, r3, [var_14h]");
    0x0006ff6e blx 0x8a90                            |     r0 = pthread_sigmask ();
    0x0006ff72 subs r4, r0, 0                        |     r4 = r0 - 0;
                                                     |     if (r4 <= r0) {
    0x0006ff74 ble.w 0x70096                         |         goto label_3;
                                                     |     }
    0x0006ff76 strh r7, [r1, 4]                      |     *((r1 + 4)) = r7;
    0x0006ff78 bl 0x725dc                            |     fcn_000725dc ();
    0x0006ff7c asrs r3, r4, 0x1f                     |     r3 = r4 >> 0x1f;
    0x0006ff7e umull r7, r4, r4, r0                  |     r7:r4 = r4 * r0;
    0x0006ff82 mov r5, r0                            |     r5 = r0;
    0x0006ff84 add r0, sp, 0x10                      |     r0 += var_10h;
    0x0006ff86 mla r4, r5, r3, r4                    |     __asm ("mla r4, r5, r3, r4");
    0x0006ff8a bl 0x66b34                            |     fcn_00066b34 (r0);
    0x0006ff8c ldc2l p14, c1, [r3, 0x18]             |     __asm ("ldc2l p14, c1, [r3, 0x18]");
                                                     |     if (r4 >= r0) {
    0x0006ff90 blt 0x6fff4                           |         
    0x0006ff92 bl 0x66e7c                            |         fcn_00066e7c ();
    0x0006ff96 subs r6, r0, 0                        |         r6 -= var_10h;
                                                     |         if (r6 < var_10h) {
    0x0006ff98 blt 0x70052                           |             goto label_4;
                                                     |         }
    0x0006ff9a ldr r1, [sp, 0x10]                    |         r1 = var_10h;
    0x0006ff9c add r3, sp, 0x14                      |         r3 += var_14h;
                                                     |         if (r6 != var_10h) {
    0x0006ff9e bne 0x7002a                           |             goto label_5;
                                                     |         }
    0x0006ffa0 ldr r2, [pc, 0x18c]                   |         
    0x0006ffa2 ldr r0, [pc, 0x190]                   |         
    0x0006ffa4 add r2, pc                            |         r2 = 0xe00d8;
    0x0006ffa6 add r0, pc                            |         r0 = 0xe00e0;
    0x0006ffa8 bl 0x673a8                            |         r0 = fcn_000673a8 (r0, r1, r2, r3);
    0x0006ffac subs r6, r0, 0                        |         r6 = r0 - 0;
                                                     |         if (r6 < r0) {
    0x0006ffae blt.w 0x700d4                         |             goto label_6;
                                                     |         }
    0x0006ffb2 ldr r6, [sp, 0x14]                    |         r6 = var_14h;
                                                     | label_0:
    0x0006ffb4 add r2, sp, 0x18                      |         r2 += var_18h;
    0x0006ffb6 mov r0, r6                            |         r0 = r6;
    0x0006ffb8 movs r1, 0                            |         r1 = 0;
    0x0006ffba bl 0x747dc                            |         r0 = fcn_000747dc (r0, r1, r2);
    0x0006ffbe subs.w r8, r0, 0                      |         r8 = r0 - 0;
                                                     |         if (r8 < r0) {
    0x0006ffc2 blt 0x700aa                           |             goto label_7;
                                                     |         }
    0x0006ffc4 ldrd r0, r1, [sp, 0x18]               |         __asm ("ldrd r0, r1, [var_18h]");
    0x0006ffc8 ldr r6, [sp, 0x14]                    |         r6 = var_14h;
    0x0006ffca cmp.w r1, -1                          |         
    0x0006ffce it eq                                 |         
                                                     |         if (r1 == -1) {
    0x0006ffd0 cmpeq r0, -1                          |             __asm ("cmpeq r0, -1");
                                                     |         }
                                                     |         if (r1 == -1) {
    0x0006ffd4 beq 0x6fffe                           |             goto label_1;
                                                     |         }
    0x0006ffd6 movs r3, 0                            |         r3 = 0;
    0x0006ffd8 mov r2, r5                            |         r2 = r5;
    0x0006ffda bl 0x80fd8                            |         r0 = fcn_00080fd8 (r0, r1, r2, r3);
    0x0006ffde umull r0, r3, r0, r5                  |         r0:r3 = r0 * r5;
    0x0006ffe2 mla r1, r5, r1, r3                    |         __asm ("mla r1, r5, r1, r3");
    0x0006ffe6 cmp r0, r7                            |         
    0x0006ffe8 sbcs.w r3, r1, r4                     |         __asm ("sbcs.w r3, r1, r4");
    0x0006ffec itt lo                                |         
                                                     |         if (r0 >= r7) {
    0x0006ffee movlo r7, r0                          |             r7 = r0;
                                                     |         }
                                                     |         if (r0 >= r7) {
    0x0006fff0 movlo r4, r1                          |             r4 = r1;
                                                     |         }
    0x0006fff2 b 0x6fffe                             |         goto label_1;
                                                     |     }
    0x0006fff4 bl 0x70bf8                            |     r0 = fcn_00070bf8 ();
    0x0006fff8 cmp r0, 6                             |     
                                                     |     if (r0 > 6) {
    0x0006fffa bgt 0x70078                           |         goto label_8;
                                                     |     }
                                                     |     do {
                                                     | label_2:
    0x0006fffc ldr r6, [sp, 0x14]                    |         r6 = var_14h;
                                                     | label_1:
    0x0006fffe mov r0, r6                            |         r0 = r6;
    0x00070000 blx 0x8dac                            |         fcn_00008dac ();
    0x00070004 ldr r0, [sp, 0x10]                    |         r0 = var_10h;
    0x00070006 blx 0x8dac                            |         fcn_00008dac ();
    0x00070008 vfnma.f32 s9, s4, s22                 |         __asm ("vfnma.f32 s9, s4, s22");
    0x0007000c ldr r3, [pc, 0x11c]                   |         r3 = *(0x7012c);
    0x0007000e add r2, pc                            |         r2 += pc;
    0x00070010 ldr r3, [r2, r3]                      |         r3 = *((r2 + r3));
    0x00070012 ldr r2, [r3]                          |         r2 = *(0x7012c);
    0x00070014 ldr r3, [sp, 0x24]                    |         r3 = var_24h;
    0x00070016 eors r2, r3                           |         r2 ^= r3;
    0x00070018 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0007001c bne.w 0x70124                         |             goto label_9;
                                                     |         }
    0x00070020 mov r0, r7                            |         r0 = r7;
    0x00070022 mov r1, r4                            |         r1 = r4;
    0x00070024 add sp, 0x28                          |         
    0x00070026 pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_5:
    0x0007002a ldr r2, [pc, 0x110]                   |         
    0x0007002c ldr r0, [pc, 0x110]                   |         
    0x0007002e add r2, pc                            |         r2 = 0xe0170;
    0x00070030 add r0, pc                            |         r0 = 0xe0174;
    0x00070032 bl 0x673a8                            |         r0 = fcn_000673a8 (r0, r1, r2, r3);
    0x00070036 adds r3, r0, 2                        |         r3 = r0 + 2;
    0x00070038 mov r6, r0                            |         r6 = r0;
    0x0007003a beq 0x6fffc                           |         
                                                     |     } while (r3 == r0);
    0x0007003c cmp r0, 0                             |     
                                                     |     if (r0 < 0) {
    0x0007003e blt 0x700fc                           |         goto label_10;
                                                     |     }
    0x00070040 ldr r6, [sp, 0x14]                    |     r6 = var_14h;
    0x00070042 ldr r1, [pc, 0x100]                   |     
    0x00070044 mov r0, r6                            |     r0 = r6;
    0x00070046 add r1, pc                            |     r1 = 0xe0190;
    0x00070048 blx 0x95e0                            |     r0 = fcn_000095e0 ();
    0x0007004c cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0007004e bne 0x6ffb4                           |         goto label_0;
                                                     |     }
    0x00070050 b 0x6fffe                             |     goto label_1;
                                                     | label_4:
    0x00070052 bl 0x70bf8                            |     r0 = fcn_00070bf8 ();
    0x00070056 cmp r0, 6                             |     
                                                     |     if (r0 <= 6) {
    0x00070058 ble 0x6fffc                           |         goto label_2;
                                                     |     }
    0x0007005a ldr r3, [pc, 0xec]                    |     
    0x0007005c mov r1, r6                            |     r1 = r6;
    0x0007005e ldr r2, [pc, 0xec]                    |     
    0x00070060 movs r0, 7                            |     r0 = 7;
    0x00070062 add r3, pc                            |     r3 = 0xe01b0;
    0x00070064 str r3, [sp, 4]                       |     var_4h = r3;
    0x00070066 add r2, pc                            |     r2 = 0xe01b8;
    0x00070068 ldr r3, [pc, 0xe4]                    |     
    0x0007006a adds r2, 7                            |     r2 += 7;
    0x0007006c add r3, pc                            |     r3 = 0xe01c0;
    0x0007006e str r3, [sp]                          |     *(sp) = r3;
    0x00070070 movs r3, 0x27                         |     r3 = 0x27;
    0x00070072 bl 0x71448                            |     fcn_00071448 ();
    0x00070076 b 0x6fffc                             |     goto label_2;
                                                     | label_8:
    0x00070078 ldr r3, [pc, 0xd8]                    |     
    0x0007007a mov r1, r6                            |     r1 = r6;
    0x0007007c ldr r2, [pc, 0xd8]                    |     
    0x0007007e movs r0, 7                            |     r0 = 7;
    0x00070080 add r3, pc                            |     r3 = 0xe01d8;
    0x00070082 str r3, [sp, 4]                       |     var_4h = r3;
    0x00070084 add r2, pc                            |     r2 = 0xe01e0;
    0x00070086 ldr r3, [pc, 0xd4]                    |     
    0x00070088 adds r2, 7                            |     r2 += 7;
    0x0007008a add r3, pc                            |     r3 = 0xe01ec;
    0x0007008c str r3, [sp]                          |     *(sp) = r3;
    0x0007008e movs r3, 0x21                         |     r3 = 0x21;
    0x00070090 bl 0x71448                            |     fcn_00071448 ();
    0x00070094 b 0x6fffc                             |     goto label_2;
                                                     | label_3:
    0x00070096 ldr r1, [pc, 0xc8]                    |     
    0x00070098 movs r2, 0x1a                         |     r2 = 0x1a;
    0x0007009a ldr r3, [pc, 0xc8]                    |     
    0x0007009c ldr r0, [pc, 0xc8]                    |     
    0x0007009e add r1, pc                            |     r1 = 0xe0204;
    0x000700a0 add r3, pc                            |     r3 = 0xe020a;
    0x000700a2 adds r1, 7                            |     r1 += 7;
    0x000700a4 add r0, pc                            |     r0 = 0xe0210;
    0x000700a6 bl 0x71518                            |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                     | label_7:
    0x000700aa bl 0x70bf8                            |     r0 = fcn_00070bf8 ();
    0x000700ae cmp r0, 6                             |     
    0x000700b0 ldr r6, [sp, 0x14]                    |     r6 = var_14h;
                                                     |     if (r0 <= 6) {
    0x000700b2 ble 0x6fffe                           |         goto label_1;
                                                     |     }
    0x000700b4 ldr r3, [pc, 0xb4]                    |     
    0x000700b6 mov r1, r8                            |     r1 = r8;
    0x000700b8 ldr r2, [pc, 0xb4]                    |     
    0x000700ba movs r0, 7                            |     r0 = 7;
    0x000700bc str r6, [sp, 8]                       |     var_8h = r6;
    0x000700be add r3, pc                            |     r3 = 0xe022e;
    0x000700c0 str r3, [sp, 4]                       |     var_4h = r3;
    0x000700c2 add r2, pc                            |     r2 = 0xe0236;
    0x000700c4 ldr r3, [pc, 0xac]                    |     
    0x000700c6 adds r2, 7                            |     r2 += 7;
    0x000700c8 add r3, pc                            |     r3 = 0xe0240;
    0x000700ca str r3, [sp]                          |     *(sp) = r3;
    0x000700cc movs r3, 0x42                         |     r3 = 0x42;
    0x000700ce bl 0x71448                            |     fcn_00071448 ();
    0x000700d2 b 0x6fffc                             |     goto label_2;
                                                     | label_6:
    0x000700d4 bl 0x70bf8                            |     r0 = fcn_00070bf8 ();
    0x000700d8 cmp r0, 6                             |     
                                                     |     if (r0 <= 6) {
    0x000700da ble 0x6fffc                           |         goto label_2;
                                                     |     }
    0x000700dc ldr r3, [pc, 0x98]                    |     
    0x000700de mov r1, r6                            |     r1 = r6;
    0x000700e0 ldr r2, [pc, 0x98]                    |     
    0x000700e2 movs r0, 7                            |     r0 = 7;
    0x000700e4 add r3, pc                            |     r3 = 0xe0260;
    0x000700e6 str r3, [sp, 4]                       |     var_4h = r3;
    0x000700e8 add r2, pc                            |     r2 = 0xe0268;
    0x000700ea ldr r3, [pc, 0x94]                    |     
    0x000700ec adds r2, 7                            |     r2 += 7;
    0x000700ee add r3, pc                            |     r3 = 0xe0274;
    0x000700f0 str r3, [sp]                          |     *(sp) = r3;
    0x000700f2 movs r3, 0x3b                         |     r3 = 0x3b;
    0x000700f4 bl 0x71448                            |     fcn_00071448 ();
    0x000700f8 ldr r6, [sp, 0x14]                    |     r6 = var_14h;
    0x000700fa b 0x6fffe                             |     goto label_1;
                                                     | label_10:
    0x000700fc bl 0x70bf8                            |     r0 = fcn_00070bf8 ();
    0x00070100 cmp r0, 6                             |     
                                                     |     if (r0 <= 6) {
    0x00070102 ble.w 0x6fffc                         |         goto label_2;
                                                     |     }
    0x00070106 ldr r3, [pc, 0x7c]                    |     
    0x00070108 mov r1, r6                            |     r1 = r6;
    0x0007010a ldr r2, [pc, 0x7c]                    |     
    0x0007010c movs r0, 7                            |     r0 = 7;
    0x0007010e add r3, pc                            |     r3 = 0xe0298;
    0x00070110 str r3, [sp, 4]                       |     var_4h = r3;
    0x00070112 add r2, pc                            |     r2 = 0xe02a0;
    0x00070114 ldr r3, [pc, 0x74]                    |     
    0x00070116 adds r2, 7                            |     r2 += 7;
    0x00070118 add r3, pc                            |     r3 = 0xe02a8;
    0x0007011a str r3, [sp]                          |     *(sp) = r3;
    0x0007011c movs r3, 0x32                         |     r3 = 0x32;
    0x0007011e bl 0x71448                            |     fcn_00071448 ();
    0x00070122 b 0x6fffc                             |     goto label_2;
                                                     | label_9:
    0x00070124 blx 0x927c                            |     fprintf_chk ()
    0x00070128 ldrh r6, [r4, 0x1a]                   |     r6 = *((r4 + 0x1a));
    0x0007012a movs r5, r0                           |     r5 = r0;
    0x0007012c lsls r0, r0, 0x13                     |     r0 <<= 0x13;
    0x0007012e movs r0, r0                           |     
    0x00070130 ldr r1, [pc, 0x180]                   |     r1 = *(0x702b4);
    0x00070132 movs r3, r0                           |     r3 = r0;
    0x00070134 cmp r1, 0x12                          |     
    0x00070136 movs r3, r0                           |     r3 = r0;
    0x00070138 ldrh r6, [r6, 0x14]                   |     r6 = *((r6 + 0x14));
    0x0007013a movs r5, r0                           |     r5 = r0;
    0x0007013c ldr r0, [pc, 0x1d8]                   |     r0 = *(0x70318);
    0x0007013e movs r3, r0                           |     r3 = r0;
    0x00070140 cmp r0, 0x88                          |     
    0x00070142 movs r3, r0                           |     r3 = r0;
    0x00070144 ldr r0, [pc, 0x2e8]                   |     r0 = *(0x70430);
    0x00070146 movs r3, r0                           |     r3 = r0;
    0x00070148 invalid                               |     
                                                     | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x70190 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00070190 ()                              | void fcn_00070190 (int16_t arg_138h, int16_t arg_268h, int16_t arg_310h, int16_t arg_3c8h) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_ch;
    0x00070190 ldmdbmi r1!, {r4, r5, r8, sb, fp, lr}     |     __asm ("ldmdbmi r1!, {r4, r5, r8, sb, fp, lr}");
    0x00070194 ldr r2, [pc, 0xc4]                        |     
    0x00070196 add r3, pc                                |     r3 += pc;
    0x00070198 push {lr}                                 |     
    0x0007019a ldr r3, [r3]                              |     r3 = *(r3);
    0x0007019c add r1, pc                                |     r1 += pc;
    0x0007019e sub sp, 0x14                              |     
    0x000701a0 ldr r2, [r1, r2]                          |     r2 = *((r1 + r2));
    0x000701a2 cmp r3, 0                                 |     
    0x000701a4 ldr r2, [r2]                              |     r2 = *(0x7025c);
    0x000701a6 str r2, [sp, 0xc]                         |     var_ch = r2;
    0x000701a8 mov.w r2, 0                               |     r2 = 0;
                                                         |     if (r3 < 0) {
    0x000701ac blt 0x701ce                               |         goto label_2;
                                                         |     }
    0x000701ae ite ne                                    |     
                                                         |     if (r3 == 0) {
    0x000701b0 movne r0, 1                               |         r0 = 1;
                                                         |     }
    0x000701b2 moveq r0, 0                               |     r0 = 0;
                                                         |     while (1) {
                                                         | label_1:
    0x000701b4 ldr r2, [pc, 0xa8]                        |         
    0x000701b6 ldr r3, [pc, 0xa4]                        |         r3 = *(0x7025e);
    0x000701b8 add r2, pc                                |         r2 = 0xe041c;
    0x000701ba ldr r3, [r2, r3]                          |         r3 = *(0xe041c);
    0x000701bc ldr r2, [r3]                              |         r2 = *(0xe041c);
    0x000701be ldr r3, [sp, 0xc]                         |         r3 = var_ch;
    0x000701c0 eors r2, r3                               |         r2 ^= r3;
    0x000701c2 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x000701c6 bne 0x70250                               |             goto label_3;
                                                         |         }
    0x000701c8 add sp, 0x14                              |         
    0x000701ca ldr pc, [sp], 4                           |         pc = *(sp);
                                                         |         sp += 4;
                                                         | label_2:
    0x000701ce ldr r1, [pc, 0x94]                        |         
    0x000701d0 movs r0, 6                                |         r0 = 6;
    0x000701d2 add r1, pc                                |         r1 = 0xe043c;
    0x000701d4 blx 0x8fa8                                |         r0 = fcn_00008fa8 ();
                                                         |         if (r0 != 0) {
    0x000701d8 cbz r0, 0x701ec                           |             
    0x000701da movs r0, 0xe                              |             r0 = 0xe;
    0x000701dc blx 0x9270                                |             r0 = gmtime_r ();
                                                         |             if (r0 == 0) {
    0x000701e0 cbz r0, 0x701ec                           |                 goto label_0;
                                                         |             }
    0x000701e2 ldr r1, [pc, 0x84]                        |             
    0x000701e4 add r1, pc                                |             r1 = 0xe0452;
    0x000701e6 blx 0x95e0                                |             r0 = fcn_000095e0 ();
                                                         |             if (r0 != 0) {
    0x000701ea cbnz r0, 0x701f8                          |                 goto label_4;
                                                         |             }
                                                         |         }
                                                         | label_0:
    0x000701ec ldr r3, [pc, 0x7c]                        |         
    0x000701ee movs r2, 1                                |         r2 = 1;
    0x000701f0 mov r0, r2                                |         r0 = r2;
    0x000701f2 add r3, pc                                |         r3 = 0xe0462;
    0x000701f4 str r2, [r3]                              |         *(r3) = r2;
    0x000701f6 b 0x701b4                                 |         
                                                         |     }
                                                         | label_4:
    0x000701f8 movs r1, 0                                |     r1 = 0;
    0x000701fa mov r0, r1                                |     r0 = r1;
    0x000701fc blx 0x8fa8                                |     r0 = fcn_00008fa8 ();
    0x00070200 mov ip, r0                                |     
    0x00070202 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00070204 beq 0x701ec                               |         goto label_0;
                                                         |     }
    0x00070206 ldr r3, [pc, 0x68]                        |     
    0x00070208 add r3, pc                                |     r3 = 0xe047e;
    0x0007020a ldm.w r3, {r0, r1, r2}                    |     r0 = *(r3);
                                                         |     r1 = *((r3 + 4));
                                                         |     r2 = *((r3 + 8));
    0x0007020e mov r3, sp                                |     r3 = sp;
    0x00070210 stm.w r3, {r0, r1, r2}                    |     *(r3) = r0;
                                                         |     *((r3 + 4)) = r1;
                                                         |     *((r3 + 8)) = r2;
    0x00070214 mov r1, ip                                |     r1 = ip;
    0x00070216 mov r0, r3                                |     r0 = r3;
    0x00070218 bl 0x7af74                                |     r0 = fcn_0007af74 (r0, r1);
                                                         |     if (r0 != 0) {
    0x0007021c cbz r0, 0x70244                           |         
    0x0007021e ldr r0, [pc, 0x54]                        |         
    0x00070220 add r0, pc                                |         r0 = 0xe049a;
    0x00070222 blx 0x8b80                                |         r0 = ftello64 ();
                                                         |         if (r0 == 0) {
    0x00070226 cbnz r0, 0x70244                          |             
    0x00070228 ldr r0, [pc, 0x4c]                        |             
    0x0007022a add r0, pc                                |             r0 = 0xe04a6;
    0x0007022c blx 0x8b80                                |             r0 = ftello64 ();
                                                         |             if (r0 != 0) {
    0x00070230 cbnz r0, 0x70244                          |                 goto label_5;
                                                         |             }
    0x00070232 ldr r0, [pc, 0x48]                        |             
    0x00070234 add r0, pc                                |             r0 = 0xe04b6;
    0x00070236 blx 0x8b80                                |             r0 = ftello64 ();
    0x0007023a clz r0, r0                                |             r0 &= r0;
    0x0007023e lsrs r0, r0, 5                            |             r0 >>= 5;
    0x00070240 mov r2, r0                                |             r2 = r0;
    0x00070242 b 0x70248                                 |             
                                                         |         }
                                                         |     } else {
                                                         | label_5:
    0x00070244 movs r0, 0                                |         r0 = 0;
    0x00070246 mov r2, r0                                |         r2 = r0;
                                                         |     }
    0x00070248 ldr r3, [pc, 0x34]                        |     
    0x0007024a add r3, pc                                |     r3 = 0xe04ce;
    0x0007024c str r2, [r3]                              |     *(r3) = r2;
    0x0007024e b 0x701b4                                 |     goto label_1;
                                                         | label_3:
    0x00070250 blx 0x927c                                |     fprintf_chk ()
    0x00070254 str r1, [sp, 0x138]                       |     *(arg_138h) = r1;
    0x00070256 movs r5, r0                               |     r5 = r0;
    0x00070258 ldrh r0, [r5, 8]                          |     r0 = *((r5 + 8));
    0x0007025a movs r5, r0                               |     r5 = r0;
    0x0007025c lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x0007025e movs r0, r0                               |     
    0x00070260 ldrh r4, [r1, 8]                          |     r4 = *((r1 + 8));
    0x00070262 movs r5, r0                               |     r5 = r0;
    0x00070264 movs r6, 0xfa                             |     r6 = 0xfa;
    0x00070266 movs r1, r0                               |     r1 = r0;
    0x00070268 ldr r0, [pc, 0xe0]                        |     r0 = *(0x7034c);
    0x0007026a movs r3, r0                               |     r3 = r0;
    0x0007026c str r0, [sp, 0x3c8]                       |     *(arg_3c8h) = r0;
    0x0007026e movs r5, r0                               |     r5 = r0;
    0x00070270 str r0, [sp, 0x310]                       |     *(arg_310h) = r0;
    0x00070272 movs r5, r0                               |     r5 = r0;
    0x00070274 ldr r0, [pc, 0x1a0]                       |     r0 = *(0x70418);
    0x00070276 movs r3, r0                               |     r3 = r0;
    0x00070278 ldr r0, [pc, 0x198]                       |     r0 = *(0x70414);
    0x0007027a movs r3, r0                               |     r3 = r0;
    0x0007027c ldr r0, [pc, 0x1a0]                       |     r0 = *(0x70420);
    0x0007027e movs r3, r0                               |     r3 = r0;
    0x00070280 str r0, [sp, 0x268]                       |     *(arg_268h) = r0;
    0x00070282 movs r5, r0                               |     r5 = r0;
                                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x70284 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00070284 ()                  | void fcn_00070284 (int16_t arg_138h) {
                                             |     int16_t var_ch_2;
                                             |     int16_t var_10h;
    0x00070284 blmi 0xa42b24                 |     __asm ("blmi aav.0x00058838");
    0x00070288 push {r4, r5, lr}             |     
    0x0007028a sub sp, 0x14                  |     
    0x0007028c add r2, pc                    |     r2 += pc;
    0x0007028e ldr r5, [pc, 0x98]            |     
    0x00070290 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x00070292 add r5, pc                    |     r5 = 0xe05c0;
    0x00070294 ldr r3, [r3]                  |     r3 = *(r3);
    0x00070296 str r3, [sp, 0xc]             |     var_ch_2 = r3;
    0x00070298 mov.w r3, 0                   |     r3 = 0;
    0x0007029c ldr r3, [r5]                  |     r3 = *(0xe05c0);
    0x0007029e cmp r3, 0                     |     
                                             |     if (r3 < 0) {
    0x000702a0 blt 0x702c2                   |         goto label_2;
                                             |     }
    0x000702a2 ite ne                        |     
                                             |     if (r3 == 0) {
    0x000702a4 movne r4, 1                   |         r4 = 1;
                                             |     }
    0x000702a6 moveq r4, 0                   |     r4 = 0;
                                             |     while (1) {
                                             | label_0:
    0x000702a8 ldr r2, [pc, 0x80]            |         
    0x000702aa ldr r3, [pc, 0x78]            |         r3 = *(0x70326);
    0x000702ac add r2, pc                    |         r2 = 0xe05dc;
    0x000702ae ldr r3, [r2, r3]              |         r3 = *(0xe05dc);
    0x000702b0 ldr r2, [r3]                  |         r2 = *(0xe05dc);
    0x000702b2 ldr r3, [sp, 0xc]             |         r3 = var_ch_2;
    0x000702b4 eors r2, r3                   |         r2 ^= r3;
    0x000702b6 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x000702ba bne 0x7031a                   |             goto label_3;
                                             |         }
    0x000702bc mov r0, r4                    |         r0 = r4;
    0x000702be add sp, 0x14                  |         
    0x000702c0 pop {r4, r5, pc}              |         
                                             | label_2:
    0x000702c2 ldr r0, [pc, 0x6c]            |         
    0x000702c4 add r0, pc                    |         r0 = 0xe05fa;
    0x000702c6 bl 0x6881c                    |         r0 = fcn_0006881c ();
    0x000702ca cmp r0, 0                     |         
                                             |         if (r0 < 0) {
    0x000702cc blt 0x702d8                   |             goto label_4;
                                             |         }
    0x000702ce ite ne                        |         
                                             |         if (r0 == 0) {
    0x000702d0 movne r4, 1                   |             r4 = 1;
                                             |         }
                                             |         if (r0 != 0) {
    0x000702d2 moveq r4, 0                   |             r4 = 0;
                                             |         }
    0x000702d4 str r0, [r5]                  |         *(r5) = r0;
    0x000702d6 b 0x702a8                     |         
                                             |     }
                                             | label_4:
    0x000702d8 bl 0x70190                    |     r0 = fcn_00070190 (r0, r1, r2, r3);
    0x000702dc mov r4, r0                    |     r4 = r0;
    0x000702de mov r2, r0                    |     r2 = r0;
    0x000702e0 cbnz r0, 0x702ea              |     
                                             |     while (1) {
                                             | label_1:
    0x000702e2 ldr r3, [pc, 0x50]            |         
    0x000702e4 add r3, pc                    |         r3 = 0xe061e;
    0x000702e6 str r2, [r3]                  |         *(r3) = r2;
    0x000702e8 b 0x702a8                     |         goto label_0;
    0x000702ea ldr r0, [pc, 0x4c]            |         
    0x000702ec add r0, pc                    |         r0 = 0xe062a;
    0x000702ee blx 0x8b80                    |         r0 = ftello64 ();
    0x000702f2 mov r5, r0                    |         r5 = r0;
                                             |         if (r0 == 0) {
    0x000702f4 cbz r0, 0x70316               |             goto label_5;
                                             |         }
    0x000702f6 ldr r3, [pc, 0x44]            |         
    0x000702f8 add r3, pc                    |         r3 = 0xe063a;
    0x000702fa adds r3, 0xc                  |         r3 += 0xc;
    0x000702fc ldm.w r3, {r0, r1, r2}        |         r0 = *(r3);
                                             |         r1 = *((r3 + 4));
                                             |         r2 = *((r3 + 8));
    0x00070300 mov r3, sp                    |         r3 = sp;
    0x00070302 stm.w r3, {r0, r1, r2}        |         *(r3) = r0;
                                             |         *((r3 + 4)) = r1;
                                             |         *((r3 + 8)) = r2;
    0x00070306 mov r1, r5                    |         r1 = r5;
    0x00070308 mov r0, r3                    |         r0 = r3;
    0x0007030a bl 0x7af74                    |         r0 = fcn_0007af74 (r0, r1);
                                             |         if (r0 == 0) {
    0x0007030e cbz r0, 0x70316               |             goto label_5;
                                             |         }
    0x00070310 movs r4, 0                    |         r4 = 0;
    0x00070312 mov r2, r4                    |         r2 = r4;
    0x00070314 b 0x702e2                     |         
                                             |     }
                                             | label_5:
    0x00070316 movs r2, 1                    |     r2 = 1;
    0x00070318 b 0x702e2                     |     goto label_1;
                                             | label_3:
    0x0007031a blx 0x927c                    |     fprintf_chk ()
    0x0007031e nop                           |     
    0x00070320 ldrh r0, [r7]                 |     r0 = *(r7);
    0x00070322 movs r5, r0                   |     r5 = r0;
    0x00070324 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00070326 movs r0, r0                   |     
    0x00070328 str r0, [sp, 0x158]           |     *(arg_138h) = r0;
    0x0007032a movs r5, r0                   |     r5 = r0;
    0x0007032c ldrh r0, [r3]                 |     r0 = *(r3);
    0x0007032e movs r5, r0                   |     r5 = r0;
    0x00070330 blx ip                        |     r0 = ip (r0);
    0x00070332 movs r3, r0                   |     r3 = r0;
    0x00070334 str r0, [sp, 0x10]            |     var_10h = r0;
    0x00070336 movs r5, r0                   |     r5 = r0;
    0x00070338 blx sb                        |     r0 = sb (r0, r3);
    0x0007033a movs r3, r0                   |     r3 = r0;
    0x0007033c ldrh r4, [r2, 0x3e]           |     r4 = *((r2 + 0x3e));
    0x0007033e movs r5, r0                   |     r5 = r0;
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x70394 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00070394 ()              | void fcn_00070394 (int16_t arg1) {
                                         |     int16_t var_0h;
                                         |     int16_t var_ch;
                                         |     int16_t var_14h;
                                         |     r0 = arg1;
    0x00070394 invalid                   |     
    0x00070398 movs r1, 0                |     r1 = 0;
    0x0007039a ldr r4, [pc, 0x84]        |     
    0x0007039c sub sp, 0x1c              |     
    0x0007039e movs r2, 0                |     r2 = 0;
    0x000703a0 movs r0, 1                |     r0 = 1;
    0x000703a2 ldr r3, [pc, 0x80]        |     r3 = *(0x70426);
    0x000703a4 add r4, pc                |     r4 = 0xe07ca;
    0x000703a6 ldr r3, [r4, r3]          |     
    0x000703a8 ldr r3, [r3]              |     r3 = *(0xe07ca);
    0x000703aa str r3, [sp, 0x14]        |     var_14h = r3;
    0x000703ac mov.w r3, 0               |     r3 = 0;
    0x000703b0 blx 0x8ea8                |     r0 = fcn_00008ea8 ();
    0x000703b4 cmp r0, 0                 |     
                                         |     if (r0 < 0) {
    0x000703b6 blt 0x70412               |         goto label_0;
                                         |     }
    0x000703b8 bl 0x6a198                |     fcn_0006a198 (r0, r1, r2, r3);
    0x000703bc movs r2, 1                |     r2 = 1;
    0x000703be mov.w r1, 0x800000        |     r1 = 0x800000;
    0x000703c0 lsls r0, r0, 4            |     r0 <<= 4;
    0x000703c2 mov r4, r0                |     r4 = r0;
    0x000703c4 add r5, sp, 0xc           |     r5 += var_ch;
    0x000703c6 bl 0x79268                |     r0 = fcn_00079268 (r0, r1, r2);
    0x000703ca bl 0x76a30                |     r0 = fcn_00076a30 (r0);
    0x000703ce cmp r0, 1                 |     
    0x000703d0 mov.w r3, 0               |     r3 = 0;
    0x000703d4 itet ne                   |     
                                         |     if (r0 != 1) {
    0x000703d6 movwne r2, 0x9680         |         __asm ("movwne r2, aav.0x000000ff");
                                         |     }
                                         |     if (r0 == 1) {
    0x000703da movwne r2, 0x2710         |         
                                         |     }
                                         |     if (r0 != 1) {
    0x000703de movt r2, 0x98             |         r2 = 0x982710;
                                         |     }
    0x000703e2 mov r0, r5                |     r0 = r5;
    0x000703e4 bl 0x7c718                |     fcn_0007c718 (r0, r1, r2);
    0x000703e8 movs r0, 8                |     r0 = 8;
    0x000703ea mov r3, r5                |     r3 = r5;
    0x000703ec str r0, [sp]              |     *(sp) = r0;
    0x000703ee movs r2, 0x15             |     r2 = 0x15;
    0x000703f0 movs r1, 1                |     r1 = 1;
    0x000703f2 mov r0, r4                |     r0 = r4;
    0x000703f4 blx 0x9564                |     kmod_module_get_initstate ();
                                         |     do {
    0x000703f8 ldr r2, [pc, 0x2c]        |         
    0x000703fa ldr r3, [pc, 0x28]        |         r3 = *(0x70426);
    0x000703fc add r2, pc                |         r2 = 0xe0828;
    0x000703fe ldr r3, [r2, r3]          |         r3 = *(0xe0828);
    0x00070400 ldr r2, [r3]              |         r2 = *(0xe0828);
    0x00070402 ldr r3, [sp, 0x14]        |         r3 = var_14h;
    0x00070404 eors r2, r3               |         r2 ^= r3;
    0x00070406 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x0007040a bne 0x7041c               |             goto label_1;
                                         |         }
    0x0007040c mov r0, r4                |         r0 = r4;
    0x0007040e add sp, 0x1c              |         
    0x00070410 pop {r4, r5, pc}          |         
                                         | label_0:
    0x00070412 blx 0x9628                |         r0 = fcn_00009628 ();
    0x00070416 ldr r4, [r0]              |         r4 = *(r0);
    0x00070418 rsbs r4, r4, 0            |         r4 -= ;
    0x0007041a b 0x703f8                 |         
                                         |     } while (1);
                                         | label_1:
    0x0007041c blx 0x927c                |     fprintf_chk ()
    0x00070420 strh r0, [r4, 0x38]       |     *((r4 + 0x38)) = r0;
    0x00070422 movs r5, r0               |     r5 = r0;
    0x00070424 lsls r0, r0, 0x13         |     r0 <<= 0x13;
    0x00070426 movs r0, r0               |     
    0x00070428 strh r0, [r1, 0x36]       |     *((r1 + 0x36)) = r0;
    0x0007042a movs r5, r0               |     r5 = r0;
                                         | }


r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x706f8).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x70c24 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00070c24 ()                                      | void fcn_00070c24 (int16_t arg_224h, int16_t arg_250h, int16_t arg_270h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_28h_2;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_11ch;
                                                                 |     int16_t var_148h;
                                                                 |     int16_t var_14ch;
                                                                 |     int16_t var_150h;
                                                                 |     int16_t var_154h;
                                                                 |     int16_t var_158h;
                                                                 |     int16_t var_15ch;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch_2;
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int32_t var_4h;
                                                                 |     int16_t var_0h_3;
                                                                 |     int32_t var_4h_2;
                                                                 |     int16_t var_74h;
                                                                 |     int16_t var_84h;
                                                                 |     int16_t var_94h;
                                                                 |     int16_t var_bch;
                                                                 |     int16_t var_108h;
                                                                 |     int16_t var_1bch;
                                                                 |     int16_t var_1c8h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00070c24 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x00070c28 mov r6, r3                                        |     r6 = r3;
    0x00070c2a ldr r5, [pc, 0x268]                               |     
    0x00070c2c sub sp, 0x1c4                                     |     
    0x00070c2e add.w sb, sp, 0x24                                |     sb += var_24h;
    0x00070c30 lsrs r4, r4, 4                                    |     r4 >>= 4;
    0x00070c32 add.w sl, sp, 0x28                                |     sl += var_28h;
    0x00070c36 ldr r4, [pc, 0x260]                               |     r4 = *(0x70e9a);
    0x00070c38 ldr r3, [pc, 0x260]                               |     
    0x00070c3a add r5, pc                                        |     r5 = 0xe1ad4;
    0x00070c3c ldr r4, [r5, r4]                                  |     
    0x00070c3e add r3, pc                                        |     
    0x00070c40 ldr r3, [r3]                                      |     r3 = *(0xe1ade);
    0x00070c42 ldr r4, [r4]                                      |     r4 = *(0xe1ad4);
    0x00070c44 str r4, [sp, 0x1bc]                               |     var_1bch = r4;
    0x00070c46 mov.w r4, 0                                       |     r4 = 0;
    0x00070c4a movs r4, 0                                        |     r4 = 0;
    0x00070c4c str r1, [sp, 0x1c]                                |     var_1ch = r1;
    0x00070c4e cmp r3, r4                                        |     
    0x00070c50 str.w r4, [sb]                                    |     __asm ("str.w r4, [sb]");
    0x00070c54 str.w r4, [sl]                                    |     __asm ("str.w r4, [sl]");
                                                                 |     if (r3 < r4) {
    0x00070c58 blt 0x70d48                                       |         goto label_6;
                                                                 |     }
    0x00070c5a ldr r3, [pc, 0x244]                               |     
    0x00070c5c mov r8, r2                                        |     r8 = r2;
    0x00070c5e mov r7, r0                                        |     r7 = r0;
    0x00070c60 add r3, pc                                        |     r3 = 0xe1b06;
    0x00070c62 ldr r2, [r3]                                      |     r2 = *(0xe1b06);
    0x00070c64 cmp r2, 1                                         |     
    0x00070c66 it ne                                             |     
                                                                 |     if (r2 == 1) {
    0x00070c68 addne r5, sp, 0x2c                                |         r5 += var_2ch_2;
                                                                 |     }
                                                                 |     if (r2 == 1) {
    0x00070c6a beq.w 0x70e50                                     |         goto label_10;
                                                                 |     }
                                                                 | label_7:
    0x00070c6e ldr r3, [pc, 0x234]                               |     
    0x00070c70 add r3, pc                                        |     r3 = 0xe1b1a;
    0x00070c72 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00070c74 cmp r3, 0                                         |     
    0x00070c76 bne 0x70d64                                       |     
                                                                 |     while (r1 == 0x26) {
                                                                 | label_0:
    0x00070c78 ldr r3, [pc, 0x22c]                               |         
    0x00070c7a add r3, pc                                        |         r3 = 0xe1b26;
    0x00070c7c ldrb r3, [r3]                                     |         r3 = *(r3);
    0x00070c7e cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00070c80 bne.w 0x70df0                                     |             goto label_11;
                                                                 |         }
                                                                 | label_4:
    0x00070c84 bl 0x70c10                                        |         r0 = fcn_00070c10 ();
    0x00070c88 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00070c8a bne.w 0x70db0                                     |             goto label_12;
                                                                 |         }
    0x00070c8e ldr r3, [pc, 0x21c]                               |         
    0x00070c90 add r3, pc                                        |         r3 = 0xe1b42;
    0x00070c92 ldrb r3, [r3]                                     |         r3 = *(r3);
                                                                 |         if (r3 != 0) {
    0x00070c94 cbz r3, 0x70cd2                                   |             
                                                                 | label_2:
    0x00070c96 ldr r3, [pc, 0x218]                               |             
    0x00070c98 add r3, pc                                        |             r3 = 0xe1b4e;
    0x00070c9a mov r7, r3                                        |             r7 = r3;
                                                                 | label_3:
    0x00070c9c strd r8, r3, [sp, 0xc]                            |             __asm ("strd r8, r3, [var_154h]");
    0x00070ca0 movs r2, 1                                        |             r2 = 1;
    0x00070ca2 ldr r3, [sp, 0x1c]                                |             r3 = var_1ch;
    0x00070ca4 add.w r8, r4, 1                                   |             r8 = r4 + 1;
    0x00070ca6 lsrs r1, r0, 0x20                                 |             r1 = r0 >> 0x20;
    0x00070ca8 strd r7, r3, [sp, 4]                              |             __asm ("strd r7, r3, [var_14ch]");
    0x00070cac add r7, sp, 0xbc                                  |             r7 += var_bch;
    0x00070cae ldr r3, [pc, 0x204]                               |             
    0x00070cb0 mov r0, r7                                        |             r0 = r7;
    0x00070cb2 add r3, pc                                        |             r3 = 0xe1b6c;
    0x00070cb4 str r3, [sp]                                      |             *(sp) = r3;
    0x00070cb6 mov.w r3, 0x100                                   |             r3 = 0x100;
    0x00070cba mov r1, r3                                        |             r1 = r3;
    0x00070cbc blx 0x9110                                        |             fcn_00009110 ();
    0x00070cc0 mov r0, r7                                        |             r0 = r7;
    0x00070cc2 blx 0x8f38                                        |             fcn_00008f38 ();
    0x00070cc6 str.w r7, [r5, r4, lsl 3]                         |             __asm ("str.w r7, [r5, r4, lsl 3]");
    0x00070cc8 strb r4, [r6]                                     |             *(r6) = r4;
    0x00070cca add.w r4, r5, r4, lsl 3                           |             r4 = r5 + (r4 << 3);
    0x00070cce str r0, [r4, 4]                                   |             var_4h = r0;
    0x00070cd0 mov r4, r8                                        |             r4 = r8;
                                                                 |         }
                                                                 | label_1:
    0x00070cd2 ldr.w r7, [sb]                                    |         r7 = *(sb);
                                                                 |         if (r7 != 0) {
    0x00070cd6 cbz r7, 0x70cea                                   |             
    0x00070cd8 mov r0, r7                                        |             r0 = r7;
    0x00070cda blx 0x8f38                                        |             fcn_00008f38 ();
    0x00070cde add.w r3, r5, r4, lsl 3                           |             r3 = r5 + (r4 << 3);
    0x00070ce2 str.w r7, [r5, r4, lsl 3]                         |             __asm ("str.w r7, [r5, r4, lsl 3]");
    0x00070ce6 adds r4, 1                                        |             r4++;
    0x00070ce8 str r0, [r3, 4]                                   |             var_4h = r0;
                                                                 |         }
    0x00070cea mov r0, r6                                        |         r0 = r6;
    0x00070cec adds r7, r4, 1                                    |         r7 = r4 + 1;
    0x00070cee blx 0x8f38                                        |         fcn_00008f38 ();
    0x00070cf2 str.w r6, [r5, r4, lsl 3]                         |         __asm ("str.w r6, [r5, r4, lsl 3]");
    0x00070cf6 add.w r3, r5, r4, lsl 3                           |         r3 = r5 + (r4 << 3);
    0x00070cfa ldr.w r6, [sl]                                    |         r6 = *(sl);
    0x00070cfe str r0, [r3, 4]                                   |         var_4h = r0;
    0x00070d00 cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x00070d02 beq.w 0x70e20                                     |             goto label_13;
                                                                 |         }
    0x00070d06 mov r0, r6                                        |         r0 = r6;
    0x00070d08 adds r4, 2                                        |         r4 += 2;
    0x00070d0a blx 0x8f38                                        |         r0 = fcn_00008f38 ();
    0x00070d0c ldmdb r6, {r0, r2, r6, fp, ip, sp, lr, pc}        |         __asm ("ldmdb r6, {r0, r2, r6, fp, ip, sp, lr, pc}");
    0x00070d10 str r7, [r6]                                      |         *(r6) = r7;
    0x00070d12 add.w r7, r5, r7, lsl 3                           |         r7 = r5 + (r7 << 3);
    0x00070d16 str r0, [r7, 4]                                   |         var_4h_2 = r0;
                                                                 | label_5:
    0x00070d18 ldr r3, [pc, 0x19c]                               |         
    0x00070d1a add.w r2, r5, r4, lsl 3                           |         r2 = r5 + (r4 << 3);
    0x00070d1e ldr r6, [pc, 0x19c]                               |         
    0x00070d20 adds r4, 1                                        |         r4++;
    0x00070d22 add r3, pc                                        |         r3 = 0xe1bde;
    0x00070d24 adds r3, 8                                        |         r3 += 8;
    0x00070d26 add r6, pc                                        |         r6 = 0xe1be8;
    0x00070d28 ldm.w r3, {r0, r1}                                |         r0 = *(r3);
                                                                 |         r1 = *((r3 + 4));
    0x00070d2c stm.w r2, {r0, r1}                                |         *(r2) = r0;
                                                                 |         *((r2 + 4)) = r1;
    0x00070d30 mov r2, r4                                        |         r2 = r4;
    0x00070d32 ldr r0, [r6]                                      |         r0 = *(0xe1be8);
    0x00070d34 mov r1, r5                                        |         r1 = r5;
    0x00070d36 blx 0x8d44                                        |         r0 = fcn_00008d44 ();
    0x00070d3a cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x00070d3c bge 0x70d48                                       |             
    0x00070d3e blx 0x9628                                        |             r0 = fcn_00009628 ();
    0x00070d42 ldr r3, [r0]                                      |             r3 = *(r0);
    0x00070d44 cmp r3, 5                                         |             
                                                                 |             if (r3 == 5) {
    0x00070d46 beq 0x70e24                                       |                 goto label_14;
                                                                 |             }
                                                                 |         }
                                                                 | label_6:
    0x00070d48 ldr r2, [pc, 0x174]                               |         
    0x00070d4a ldr r3, [pc, 0x14c]                               |         r3 = *(0x70e9a);
    0x00070d4c add r2, pc                                        |         r2 = 0xe1c10;
    0x00070d4e ldr r3, [r2, r3]                                  |         r3 = *(0xe1c10);
    0x00070d50 ldr r2, [r3]                                      |         r2 = *(0xe1c10);
    0x00070d52 ldr r3, [sp, 0x1bc]                               |         r3 = var_1bch;
    0x00070d54 eors r2, r3                                       |         r2 ^= r3;
    0x00070d56 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00070d5a bne.w 0x70e8e                                     |             goto label_15;
                                                                 |         }
    0x00070d5e add sp, 0x1c4                                     |         
    0x00070d60 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x00070d64 movs r0, 0                                        |         r0 = 0;
    0x00070d66 add.w fp, sp, 0x94                                |         
    0x00070d6a bl 0x7c5e4                                        |         fcn_0007c5e4 (r0, r1, r2);
    0x00070d6e mov r3, r1                                        |         r3 = r1;
    0x00070d70 movs r1, 0                                        |         r1 = 0;
    0x00070d72 mov r2, r0                                        |         r2 = r0;
    0x00070d74 str r1, [sp]                                      |         *(sp) = r1;
    0x00070d76 mov r0, fp                                        |         r0 = fp;
    0x00070d78 movs r1, 0x26                                     |         r1 = 0x26;
    0x00070d7a bl 0x7ceec                                        |         fcn_0007ceec (r0, r1, r2, r3, r4);
    0x00070d7c ldrh.w r2, [r7, 0x800]                            |         r2 = *((r7 + 0x800));
    0x00070d80 beq.w 0x70c78                                     |         
                                                                 |     }
    0x00070d84 mov r0, fp                                        |     r0 = fp;
    0x00070d86 blx 0x8f38                                        |     fcn_00008f38 ();
    0x00070d8a ldr r2, [pc, 0x138]                               |     
    0x00070d8c mov ip, r0                                        |     
    0x00070d8e adds r3, r4, 1                                    |     r3 = r4 + 1;
    0x00070d90 str.w fp, [r5, r4, lsl 3]                         |     __asm ("str.w fp, [r5, r4, lsl 3]");
    0x00070d94 add.w r3, r5, r3, lsl 3                           |     r3 = r5 + (r3 << 3);
    0x00070d98 add r2, pc                                        |     r2 = 0xe1c62;
    0x00070d9a adds r2, 0x10                                     |     r2 += 0x10;
    0x00070d9c ldm.w r2, {r0, r1}                                |     r0 = *(r2);
                                                                 |     r1 = *((r2 + 4));
    0x00070da0 add.w r2, r5, r4, lsl 3                           |     r2 = r5 + (r4 << 3);
    0x00070da4 adds r4, 2                                        |     r4 += 2;
    0x00070da6 str.w ip, [r2, 4]                                 |     __asm ("str.w ip, [var_0h]");
    0x00070daa stm.w r3, {r0, r1}                                |     *(r3) = r0;
                                                                 |     *((r3 + 4)) = r1;
    0x00070dae b 0x70c78                                         |     goto label_0;
                                                                 | label_12:
    0x00070db0 movs r3, 0                                        |     r3 = 0;
    0x00070db2 and r0, r7, 7                                     |     r0 = r7 & 7;
    0x00070db6 mov r2, sl                                        |     r2 = sl;
    0x00070db8 mov r1, sb                                        |     r1 = sb;
    0x00070dba bl 0x7c3c8                                        |     fcn_0007c3c8 (r0, r1, r2, r3);
    0x00070dbe ldr r3, [pc, 0x108]                               |     
    0x00070dc0 add r3, pc                                        |     r3 = 0xe1c8e;
    0x00070dc2 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00070dc4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00070dc6 beq 0x70cd2                                       |         goto label_1;
                                                                 |     }
    0x00070dc8 bl 0x70c10                                        |     r0 = fcn_00070c10 ();
    0x00070dcc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00070dce beq.w 0x70c96                                     |         goto label_2;
                                                                 |     }
    0x00070dd2 bl 0x7c344                                        |     r0 = fcn_0007c344 ();
    0x00070dd6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00070dd8 beq 0x70e82                                       |         goto label_16;
                                                                 |     }
    0x00070dda cmp r0, 0x10                                      |     
                                                                 |     if (r0 != 0x10) {
    0x00070ddc bne 0x70e7c                                       |         goto label_17;
                                                                 |     }
    0x00070dde ldr r7, [pc, 0xec]                                |     
    0x00070de0 add r7, pc                                        |     r7 = 0xe1cb2;
                                                                 | label_8:
    0x00070de2 bl 0x7c344                                        |     r0 = fcn_0007c344 ();
    0x00070de6 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00070de8 bne 0x70e76                                       |         goto label_18;
                                                                 |     }
    0x00070dea ldr r3, [pc, 0xe4]                                |     
    0x00070dec add r3, pc                                        |     r3 = 0xe1cc2;
    0x00070dee b 0x70c9c                                         |     goto label_3;
                                                                 | label_11:
    0x00070df0 blx 0x9158                                        |     fcn_00009158 ();
    0x00070df4 ldr r3, [pc, 0xdc]                                |     
    0x00070df6 add.w fp, sp, 0x84                                |     
    0x00070dfa movs r2, 1                                        |     r2 = 1;
    0x00070dfc str r0, [sp, 4]                                   |     var_14ch = r0;
    0x00070dfe mov r0, fp                                        |     r0 = fp;
    0x00070e00 add r3, pc                                        |     r3 = 0xe1cd8;
    0x00070e02 str r3, [sp]                                      |     *(sp) = r3;
    0x00070e04 movs r3, 0x10                                     |     r3 = 0x10;
    0x00070e06 mov r1, r3                                        |     r1 = r3;
    0x00070e08 blx 0x9110                                        |     fcn_00009110 ();
    0x00070e0c mov r0, fp                                        |     r0 = fp;
    0x00070e0e blx 0x8f38                                        |     fcn_00008f38 ();
    0x00070e12 add.w r3, r5, r4, lsl 3                           |     r3 = r5 + (r4 << 3);
    0x00070e16 str.w fp, [r5, r4, lsl 3]                         |     __asm ("str.w fp, [r5, r4, lsl 3]");
    0x00070e1a adds r4, 1                                        |     r4++;
    0x00070e1c str r0, [r3, 4]                                   |     var_0h = r0;
    0x00070e1e b 0x70c84                                         |     goto label_4;
                                                                 | label_13:
    0x00070e20 mov r4, r7                                        |     r4 = r7;
    0x00070e22 b 0x70d18                                         |     goto label_5;
                                                                 | label_14:
    0x00070e24 bl 0x76a30                                        |     r0 = fcn_00076a30 (r0);
    0x00070e28 cmp r0, 1                                         |     
                                                                 |     if (r0 != 1) {
    0x00070e2a bne 0x70d48                                       |         goto label_6;
                                                                 |     }
    0x00070e2c ldr r0, [r6]                                      |     r0 = *(r6);
    0x00070e2e cmp r0, 2                                         |     
                                                                 |     if (r0 <= 2) {
    0x00070e30 ble 0x70e88                                       |         goto label_19;
                                                                 |     }
    0x00070e32 bl 0x69a04                                        |     fcn_00069a04 (r0, r1, r2, r3);
                                                                 | label_9:
    0x00070e36 ldr r6, [pc, 0xa0]                                |     
    0x00070e38 add r6, pc                                        |     r6 = 0xe1d16;
    0x00070e3a str r0, [r6]                                      |     *(r6) = r0;
    0x00070e3c bl 0x70474                                        |     fcn_00070474 ();
    0x00070e40 ldr r0, [r6]                                      |     r0 = *(0xe1d16);
    0x00070e42 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00070e44 blt 0x70d48                                       |         goto label_6;
                                                                 |     }
    0x00070e46 mov r2, r4                                        |     r2 = r4;
    0x00070e48 mov r1, r5                                        |     r1 = r5;
    0x00070e4a blx 0x8d44                                        |     fcn_00008d44 ();
    0x00070e4e b 0x70d48                                         |     goto label_6;
                                                                 | label_10:
    0x00070e50 ldr r3, [pc, 0x88]                                |     
    0x00070e52 add.w fp, sp, 0x74                                |     
    0x00070e56 str r0, [sp, 4]                                   |     var_14ch = r0;
    0x00070e58 mov r0, fp                                        |     r0 = fp;
    0x00070e5a mov r4, r2                                        |     r4 = r2;
    0x00070e5c add r5, sp, 0x2c                                  |     r5 += var_2ch_2;
    0x00070e5e add r3, pc                                        |     r3 = 0xe1d3e;
    0x00070e60 str r3, [sp]                                      |     *(sp) = r3;
    0x00070e62 movs r3, 0xf                                      |     r3 = 0xf;
    0x00070e64 mov r1, r3                                        |     r1 = r3;
    0x00070e66 blx 0x9110                                        |     fcn_00009110 ();
    0x00070e6a mov r0, fp                                        |     r0 = fp;
    0x00070e6c blx 0x8f38                                        |     r0 = fcn_00008f38 ();
    0x00070e70 strd fp, r0, [r5]                                 |     __asm ("strd fp, r0, [r5]");
    0x00070e74 b 0x70c6e                                         |     goto label_7;
                                                                 | label_18:
    0x00070e76 ldr r3, [pc, 0x68]                                |     
    0x00070e78 add r3, pc                                        |     r3 = 0xe1d5e;
    0x00070e7a b 0x70c9c                                         |     goto label_3;
                                                                 | label_17:
    0x00070e7c ldr r7, [pc, 0x64]                                |     
    0x00070e7e add r7, pc                                        |     r7 = 0xe1d66;
    0x00070e80 b 0x70de2                                         |     goto label_8;
                                                                 | label_16:
    0x00070e82 ldr r7, [pc, 0x64]                                |     
    0x00070e84 add r7, pc                                        |     r7 = 0xe1d72;
    0x00070e86 b 0x70de2                                         |     goto label_8;
                                                                 | label_19:
    0x00070e88 mov.w r0, -1                                      |     r0 = -1;
    0x00070e8c b 0x70e36                                         |     goto label_9;
                                                                 | label_15:
    0x00070e8e blx 0x927c                                        |     fprintf_chk ()
    0x00070e92 nop                                               |     
    0x00070e94 ldrb r2, [r1, 0x1a]                               |     r2 = *((r1 + 0x1a));
    0x00070e96 movs r5, r0                                       |     r5 = r0;
    0x00070e98 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x00070e9a movs r0, r0                                       |     
    0x00070e9c strh r6, [r0, 0x36]                               |     *((r0 + 0x36)) = r6;
    0x00070e9e movs r5, r0                                       |     r5 = r0;
    0x00070ea0 ldr r1, [sp, 0x270]                               |     r1 = *(arg_270h);
    0x00070ea2 movs r5, r0                                       |     r5 = r0;
    0x00070ea4 ldr r1, [sp, 0x250]                               |     r1 = *(arg_250h);
    0x00070ea6 movs r5, r0                                       |     r5 = r0;
    0x00070ea8 ldr r1, [sp, 0x224]                               |     r1 = *(arg_224h);
    0x00070eaa movs r5, r0                                       |     r5 = r0;
    0x00070eac ldr r1, [sp, 0x1c8]                               |     r1 = var_1c8h;
    0x00070eae movs r5, r0                                       |     r5 = r0;
    0x00070eb0 adds r4, r6, 0                                    |     r4 = r6 + 0;
    0x00070eb2 movs r1, r0                                       |     r1 = r0;
    0x00070eb4 lsrs r2, r2                                       |     r2 >>= r2;
    0x00070eb6 movs r3, r0                                       |     r3 = r0;
    0x00070eb8 strh r2, [r1, 0x2e]                               |     *((r1 + 0x2e)) = r2;
    0x00070eba movs r5, r0                                       |     r5 = r0;
    0x00070ebc strh r6, [r3, 0x2e]                               |     *((r3 + 0x2e)) = r6;
    0x00070ebe movs r5, r0                                       |     r5 = r0;
    0x00070ec0 ldrb r0, [r7, 0x15]                               |     r0 = *((r7 + 0x15));
    0x00070ec2 movs r5, r0                                       |     r5 = r0;
    0x00070ec4 strh r4, [r2, 0x2a]                               |     *((r2 + 0x2a)) = r4;
    0x00070ec6 movs r5, r0                                       |     r5 = r0;
    0x00070ec8 ldr r0, [sp, 0x108]                               |     r0 = var_108h;
    0x00070eca movs r5, r0                                       |     r5 = r0;
    0x00070ecc subs r7, 0x78                                     |     r7 -= 0x78;
    0x00070ece movs r3, r0                                       |     r3 = r0;
    0x00070ed0 subs r0, r4, r3                                   |     r0 = r4 - r3;
    0x00070ed2 movs r1, r0                                       |     r1 = r0;
    0x00070ed4 subs r7, 0x90                                     |     r7 -= 0x90;
    0x00070ed6 movs r3, r0                                       |     r3 = r0;
    0x00070ed8 strh r4, [r1, 0x26]                               |     *((r1 + 0x26)) = r4;
    0x00070eda movs r5, r0                                       |     r5 = r0;
    0x00070edc subs r7, 0x1e                                     |     r7 -= 0x1e;
    0x00070ede movs r3, r0                                       |     r3 = r0;
    0x00070ee0 subs r6, 0xfc                                     |     r6 -= 0xfc;
    0x00070ee2 movs r3, r0                                       |     r3 = r0;
    0x00070ee4 subs r6, 0xe6                                     |     r6 -= 0xe6;
    0x00070ee6 movs r3, r0                                       |     r3 = r0;
    0x00070ee8 subs r0, r1, r1                                   |     r0 = r1 - r1;
    0x00070eea movs r1, r0                                       |     r1 = r0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x70eec */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00070eec ()                                      | void fcn_00070eec (int16_t arg_148h, int16_t arg_14ch, int16_t arg_150h, int16_t arg_154h, int16_t arg_158h, int16_t arg_15ch, int16_t arg_358h, int16_t arg_398h, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h_4;
                                                                 |     int16_t var_4h_4;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h_2;
                                                                 |     int16_t var_14h_3;
                                                                 |     int16_t var_1ch_2;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_48h;
                                                                 |     int32_t var_48h_2;
                                                                 |     int16_t var_50h;
                                                                 |     int16_t var_54h;
                                                                 |     int32_t var_58h;
                                                                 |     int32_t var_58h_2;
                                                                 |     int16_t var_60h;
                                                                 |     int16_t var_64h;
                                                                 |     int16_t var_90h;
                                                                 |     int16_t var_94h;
                                                                 |     int16_t var_98h;
                                                                 |     int16_t var_9ch;
                                                                 |     int16_t var_a0h;
                                                                 |     int32_t var_a4h;
                                                                 |     int32_t var_a4h_2;
                                                                 |     int16_t var_ach;
                                                                 |     int16_t var_b0h;
                                                                 |     int16_t var_b4h;
                                                                 |     int16_t var_b8h;
                                                                 |     int16_t var_c8h;
                                                                 |     int16_t var_dch;
                                                                 |     int16_t var_11ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00070eec svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x00070ef0 mov r8, r2                                        |     r8 = r2;
    0x00070ef2 sub sp, 0x124                                     |     
    0x00070ef4 ldr r2, [pc, 0x36c]                               |     
    0x00070ef6 mov sb, r3                                        |     sb = r3;
    0x00070ef8 ldr r4, [sp, 0x148]                               |     r4 = *(arg_148h);
    0x00070efa ldr r3, [pc, 0x36c]                               |     r3 = *(0x7126a);
    0x00070efc add r2, pc                                        |     r2 = 0xe2164;
    0x00070efe strd r1, r4, [sp, 0x20]                           |     __asm ("strd r1, r4, [var_20h]");
    0x00070f00 asrs r0, r1, 0x10                                 |     r0 = r1 >> 0x10;
    0x00070f02 ldr r3, [r2, r3]                                  |     
    0x00070f04 ldr r4, [sp, 0x15c]                               |     r4 = *(arg_15ch);
    0x00070f06 ldr r3, [r3]                                      |     r3 = *(0xe2164);
    0x00070f08 str r3, [sp, 0x11c]                               |     var_11ch = r3;
    0x00070f0a mov.w r3, 0                                       |     r3 = 0;
    0x00070f0e ldr r3, [pc, 0x35c]                               |     
    0x00070f10 add r3, pc                                        |     r3 = 0xe2182;
    0x00070f12 str r3, [sp, 0x38]                                |     var_38h = r3;
    0x00070f14 ldr r3, [sp, 0x14c]                               |     r3 = *(arg_14ch);
    0x00070f16 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x00070f18 ldr r3, [sp, 0x150]                               |     r3 = *(arg_150h);
    0x00070f1a str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00070f1c ldr r3, [sp, 0x154]                               |     r3 = *(arg_154h);
    0x00070f1e str r3, [sp, 0x30]                                |     var_30h = r3;
    0x00070f20 ldr r3, [sp, 0x158]                               |     r3 = *(arg_158h);
    0x00070f22 str r3, [sp, 0x34]                                |     var_34h = r3;
    0x00070f24 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00070f26 beq.w 0x71332                                     |         goto label_15;
                                                                 |     }
    0x00070f2a ldr r3, [pc, 0x344]                               |     
    0x00070f2c add r3, pc                                        |     
    0x00070f2e ldr r3, [r3]                                      |     r3 = *(0xe21a2);
    0x00070f30 cmp r3, 8                                         |     
                                                                 |     if (r3 == 8) {
    0x00070f32 beq.w 0x7104a                                     |         goto label_13;
                                                                 |     }
    0x00070f36 tst.w r0, 0x3f8                                   |     
    0x00070f3a mov r7, r0                                        |     r7 = r0;
                                                                 |     if ((arg_148hx3f8 & undefined) == 0) {
    0x00070f3c bne 0x70f46                                       |         
    0x00070f3e ldr r3, [pc, 0x334]                               |         
    0x00070f40 add r3, pc                                        |         
    0x00070f42 ldr r3, [r3]                                      |         r3 = *(0xe21ba);
    0x00070f44 orrs r7, r3                                       |         r7 |= r3;
                                                                 |     }
    0x00070f46 ldr r3, [pc, 0x330]                               |     
    0x00070f48 add r3, pc                                        |     r3 = 0xe21c6;
    0x00070f4a ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00070f4c cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00070f4e bne.w 0x71256                                     |         goto label_16;
                                                                 |     }
    0x00070f50 strh r2, [r0, 0xc]                                |     *((r0 + 0xc)) = r2;
                                                                 | label_9:
    0x00070f52 ldr r3, [pc, 0x328]                               |     
    0x00070f54 add r3, pc                                        |     r3 = 0xe21d6;
    0x00070f56 str r3, [sp, 0x1c]                                |     var_1ch_2 = r3;
                                                                 |     do {
                                                                 | label_0:
    0x00070f58 ldr r6, [pc, 0x324]                               |         
    0x00070f5a mov r0, r4                                        |         r0 = r4;
    0x00070f5c add r6, pc                                        |         r6 = 0xe21e0;
    0x00070f5e mov r1, r6                                        |         r1 = r6;
    0x00070f60 blx 0x9428                                        |         fcn_00009428 ();
    0x00070f64 ldrb r3, [r4, r0]                                 |         r3 = *((r4 + r0));
    0x00070f66 adds r5, r4, r0                                   |         r5 = r4 + r0;
    0x00070f68 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00070f6a beq 0x7103e                                       |             goto label_1;
                                                                 |         }
    0x00070f6c mov r1, r6                                        |         r1 = r6;
    0x00070f6e mov r0, r5                                        |         r0 = r5;
    0x00070f70 blx 0x9594                                        |         r0 = sched_cpufree ();
    0x00070f74 mov r4, r0                                        |         r4 = r0;
                                                                 |         if (r0 != 0) {
    0x00070f76 cbz r0, 0x70f7e                                   |             
    0x00070f78 movs r3, 0                                        |             r3 = 0;
    0x00070f7a strb r3, [r4], 1                                  |             *(r4) = r3;
                                                                 |             r4++;
                                                                 |         }
    0x00070f7e ldr r3, [pc, 0x304]                               |         
    0x00070f80 add r3, pc                                        |         
    0x00070f82 ldr r3, [r3]                                      |         r3 = *(0xe220a);
    0x00070f84 cmp r3, 4                                         |         
                                                                 |         if (r3 > 4) {
    0x00070f86 bgt.w 0x71094                                     |             goto label_17;
                                                                 |         }
    0x00070f8a cmp r3, 2                                         |         
                                                                 |         if (r3 > 2) {
    0x00070f8c bgt.w 0x711f0                                     |             goto label_18;
                                                                 |         }
                                                                 | label_2:
    0x00070f90 cmp r3, 7                                         |         
                                                                 |         if (r3 > 7) {
    0x00070f92 bhi 0x71080                                       |             goto label_7;
                                                                 |         }
    0x00070f94 movs r2, 0xd4                                     |         r2 = 0xd4;
    0x00070f96 lsr.w r3, r2, r3                                  |         r3 = r2 >> r3;
    0x00070f98 ssat r7, 0x1c, r3, lsl 3                          |         __asm ("ssat r7, 0x1c, r3, lsl 3");
                                                                 |         if (r2 >= 0xd4) {
    0x00070f9c bpl 0x71080                                       |             goto label_7;
                                                                 |         }
                                                                 | label_8:
    0x00070f9e ldr r6, [pc, 0x2e8]                               |         
    0x00070fa0 add r6, pc                                        |         r6 = 0xe222e;
    0x00070fa2 ldr r3, [r6]                                      |         r3 = *(0xe222e);
    0x00070fa4 cmp r3, 0                                         |         
                                                                 |         if (r3 < 0) {
    0x00070fa6 blt 0x71080                                       |             goto label_7;
                                                                 |         }
    0x00070fa8 ldr r0, [pc, 0x2b0]                               |         
    0x00070faa add r0, pc                                        |         r0 = 0xe220a;
    0x00070fac blx 0x9240                                        |         nl_langinfo (r0);
    0x00070fb0 ldr r3, [pc, 0x2ac]                               |         r3 = *(0x71260);
    0x00070fb2 add r0, r3                                        |         r0 += r3;
    0x00070fb4 bl 0x784fc                                        |         r0 = fcn_000784fc (r0, r1);
    0x00070fb8 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00070fba beq 0x71080                                       |             goto label_7;
                                                                 |         }
    0x00070fbc ldr r3, [pc, 0x2cc]                               |         
    0x00070fbe add.w fp, sp, 0xc8                                |         
    0x00070fc2 movs r2, 1                                        |         r2 = 1;
    0x00070fc4 mov r0, fp                                        |         r0 = fp;
    0x00070fc6 str r7, [sp, 4]                                   |         var_4h_4 = r7;
    0x00070fc8 add.w sl, sp, 0xdc                                |         sl += var_dch;
    0x00070fcc add r3, pc                                        |         r3 = 0xe225c;
    0x00070fce str r3, [sp]                                      |         *(sp) = r3;
    0x00070fd0 movs r3, 0xf                                      |         r3 = 0xf;
    0x00070fd2 mov r1, r3                                        |         r1 = r3;
    0x00070fd4 blx 0x9110                                        |         fcn_00009110 ();
    0x00070fd8 bl 0x76a30                                        |         fcn_00076a30 (r0);
    0x00070fdc ldr r3, [pc, 0x2b0]                               |         
    0x00070fde movs r2, 1                                        |         r2 = 1;
    0x00070fe0 str r0, [sp, 4]                                   |         var_4h_4 = r0;
    0x00070fe2 mov r0, sl                                        |         r0 = sl;
    0x00070fe4 add r3, pc                                        |         r3 = 0xe2278;
    0x00070fe6 str r3, [sp]                                      |         *(sp) = r3;
    0x00070fe8 movs r3, 0x11                                     |         r3 = 0x11;
    0x00070fea mov r1, r3                                        |         r1 = r3;
    0x00070fec blx 0x9110                                        |         fcn_00009110 ();
    0x00070ff0 mov r0, fp                                        |         r0 = fp;
    0x00070ff2 str.w fp, [sp, 0x90]                              |         __asm ("str.w fp, [var_90h]");
    0x00070ff6 blx 0x8f38                                        |         fcn_00008f38 ();
    0x00070ffa ldr r2, [sp, 0x38]                                |         r2 = var_38h;
    0x00070ffc ldr r3, [pc, 0x294]                               |         
    0x00070ffe str r0, [sp, 0x94]                                |         var_94h = r0;
    0x00071000 ldr r3, [r2, r3]                                  |         r3 = *((r2 + r3));
    0x00071002 ldr r0, [r3]                                      |         r0 = *(0x71294);
    0x00071004 str r0, [sp, 0x98]                                |         var_98h = r0;
    0x00071006 blx 0x8f38                                        |         fcn_00008f38 ();
    0x0007100a strd r0, sl, [sp, 0x9c]                           |         __asm ("strd r0, sl, [var_9ch]");
    0x0007100e mov r0, sl                                        |         r0 = sl;
    0x00071010 blx 0x8f38                                        |         fcn_00008f38 ();
    0x00071014 strd r0, r5, [sp, 0xa4]                           |         __asm ("strd r0, r5, [var_a4h]");
    0x00071018 mov r0, r5                                        |         r0 = r5;
    0x0007101a blx 0x8f38                                        |         fcn_00008f38 ();
    0x0007101c invalid                                           |         
    0x00071020 movs r2, 5                                        |         r2 = 5;
    0x00071022 str r0, [sp, 0xac]                                |         var_ach = r0;
    0x00071024 add r1, sp, 0x90                                  |         r1 += var_90h;
    0x00071026 ldr r0, [r6]                                      |         r0 = *(r6);
    0x00071028 add r3, pc                                        |         r3 = 0xe22c0;
    0x0007102a str r3, [sp, 0xb0]                                |         var_b0h = r3;
    0x0007102c movs r3, 1                                        |         r3 = 1;
    0x0007102e str r3, [sp, 0xb4]                                |         var_b4h = r3;
    0x00071030 blx 0x8d44                                        |         r0 = fcn_00008d44 ();
    0x00071034 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x00071036 blt.w 0x7134a                                     |             goto label_19;
                                                                 |         }
                                                                 | label_3:
    0x0007103a cmp r4, 0                                         |         
    0x0007103c bne 0x70f58                                       |         
                                                                 |     } while (r4 != 0);
                                                                 | label_1:
    0x0007103e ldr r3, [pc, 0x25c]                               |     
    0x00071040 add r3, pc                                        |     r3 = 0xe22e2;
    0x00071042 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00071044 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00071046 bne.w 0x7132c                                     |         goto label_20;
                                                                 |     }
                                                                 | label_13:
    0x0007104a ldr r2, [pc, 0x254]                               |     
    0x0007104c ldr r3, [pc, 0x218]                               |     r3 = *(0x71268);
    0x0007104e ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x00071050 add r2, pc                                        |     r2 = 0xe22f6;
    0x00071052 ldr r3, [r2, r3]                                  |     r3 = *(0xe22f6);
    0x00071054 cmp r0, 0                                         |     
    0x00071056 it lt                                             |     
                                                                 |     if (r0 < 0) {
    0x00071058 rsblt r0, r0, 0                                   |         __asm ("rsblt r0, r0, 0");
                                                                 |     }
    0x0007105a uxtb r0, r0                                       |     r0 = (int8_t) r0;
    0x0007105c ldr r2, [r3]                                      |     r2 = *(0xe22f6);
    0x0007105e ldr r3, [sp, 0x11c]                               |     r3 = var_11ch;
    0x00071060 eors r2, r3                                       |     r2 ^= r3;
    0x00071062 mov.w r3, 0                                       |     r3 = 0;
    0x00071066 rsb.w r0, r0, 0                                   |     r0 -= ;
                                                                 |     if (r2 != r3) {
    0x0007106a bne.w 0x71362                                     |         goto label_21;
                                                                 |     }
    0x0007106e add sp, 0x124                                     |     
    0x00071070 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_14:
    0x00071074 ldr r0, [r6]                                      |     r0 = *(r6);
    0x00071076 bl 0x69a04                                        |     fcn_00069a04 (r0, r1, r2, r3);
    0x0007107a str r0, [r6]                                      |     *(r6) = r0;
    0x0007107c bl 0x70474                                        |     fcn_00070474 ();
                                                                 | label_7:
    0x00071080 mov r3, r5                                        |     r3 = r5;
    0x00071082 mov r2, sb                                        |     r2 = sb;
    0x00071084 mov r1, r8                                        |     r1 = r8;
    0x00071086 mov r0, r7                                        |     r0 = r7;
    0x00071088 bl 0x70c24                                        |     fcn_00070c24 (r0, r1, r2, r3, r4, r5, r6);
    0x0007108c cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0007108e bne.w 0x70f58                                     |         goto label_0;
                                                                 |     }
    0x00071092 b 0x7103e                                         |     goto label_1;
                                                                 | label_17:
    0x00071094 cmp r3, 7                                         |     
                                                                 |     if (r3 == 7) {
    0x00071096 beq.w 0x711f0                                     |         goto label_18;
                                                                 |     }
    0x00071098 strh r3, [r5, 4]                                  |     *((r5 + 4)) = r3;
    0x0007109a subs r2, r3, 5                                    |     r2 = r3 - 5;
    0x0007109c cmp r2, 1                                         |     
                                                                 |     if (r2 > 1) {
    0x0007109e bhi.w 0x70f90                                     |         goto label_2;
                                                                 |     }
                                                                 | label_6:
    0x000710a2 ldr r3, [pc, 0x200]                               |     
    0x000710a4 add r3, pc                                        |     
    0x000710a6 ldr r3, [r3]                                      |     r3 = *(0xe234e);
    0x000710a8 cmp r3, 0                                         |     
                                                                 |     if (r3 < 0) {
    0x000710aa blt.w 0x71324                                     |         goto label_22;
                                                                 |     }
    0x000710ac strh r3, [r7, 8]                                  |     *((r7 + 8)) = r3;
    0x000710ae ldr r3, [pc, 0x1f8]                               |     
    0x000710b0 add r6, sp, 0xb8                                  |     r6 += var_b8h;
    0x000710b2 movs r2, 1                                        |     r2 = 1;
    0x000710b4 mov r0, r6                                        |     r0 = r6;
    0x000710b6 str r7, [sp, 4]                                   |     var_4h_4 = r7;
    0x000710b8 add.w sl, sp, 0x64                                |     sl += var_64h;
    0x000710bc add r3, pc                                        |     r3 = 0xe236a;
    0x000710be str r3, [sp]                                      |     *(sp) = r3;
    0x000710c0 movs r3, 0xf                                      |     r3 = 0xf;
    0x000710c2 mov r1, r3                                        |     r1 = r3;
    0x000710c4 blx 0x9110                                        |     fcn_00009110 ();
    0x000710c8 movs r0, 0                                        |     r0 = 0;
    0x000710ca bl 0x7c5e4                                        |     fcn_0007c5e4 (r0, r1, r2);
    0x000710ce movw r2, 0x4240                                   |     
    0x000710d2 movs r3, 0                                        |     r3 = 0;
    0x000710d4 movt r2, 0xf                                      |     r2 = 0xf4240;
    0x000710d8 bl 0x80fd8                                        |     fcn_00080fd8 (r0, r1, r2, r3);
    0x000710dc mov r1, sl                                        |     r1 = sl;
    0x000710de str r0, [sp, 0x44]                                |     var_44h = r0;
    0x000710e0 add r0, sp, 0x44                                  |     r0 += var_44h;
    0x000710e2 blx 0x89fc                                        |     r0 = fcn_000089fc ();
    0x000710e6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000710e8 beq.w 0x712e4                                     |         goto label_23;
                                                                 |     }
    0x000710ea strh r4, [r7, 6]                                  |     *((r7 + 6)) = r4;
    0x000710ec ldr r2, [pc, 0x1bc]                               |     
    0x000710ee add.w fp, sp, 0xdc                                |     
    0x000710f2 mov r3, sl                                        |     r3 = sl;
    0x000710f4 movs r1, 0x40                                     |     r1 = 0x40;
    0x000710f6 mov r0, fp                                        |     r0 = fp;
    0x000710f8 add r2, pc                                        |     r2 = 0xe23a8;
    0x000710fa blx 0x93a4                                        |     r0 = fcn_000093a4 ();
    0x000710fe cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00071100 beq.w 0x712e4                                     |         goto label_23;
                                                                 |     }
    0x00071104 bl 0x76a30                                        |     fcn_00076a30 (r0);
    0x00071108 ldr r3, [pc, 0x1a4]                               |     
    0x0007110a add.w sl, sp, 0xc8                                |     sl += var_c8h;
    0x0007110e movs r2, 1                                        |     r2 = 1;
    0x00071110 str r0, [sp, 4]                                   |     var_4h_4 = r0;
    0x00071112 mov r0, sl                                        |     r0 = sl;
    0x00071114 add r3, pc                                        |     r3 = 0xe23c8;
    0x00071116 str r3, [sp]                                      |     *(sp) = r3;
    0x00071118 movs r3, 0x11                                     |     r3 = 0x11;
    0x0007111a mov r1, r3                                        |     r1 = r3;
    0x0007111c blx 0x9110                                        |     fcn_00009110 ();
    0x00071120 mov r0, r6                                        |     r0 = r6;
    0x00071122 str r6, [sp, 0x90]                                |     var_90h = r6;
    0x00071124 blx 0x8f38                                        |     fcn_00008f38 ();
    0x00071128 strd r0, fp, [sp, 0x94]                           |     __asm ("strd r0, fp, [var_0h_4x94]");
    0x0007112c mov r0, fp                                        |     r0 = fp;
    0x0007112e blx 0x8f38                                        |     fcn_00008f38 ();
    0x00071132 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x00071134 add.w fp, sp, 0x48                                |     
    0x00071138 ldr r3, [pc, 0x158]                               |     r3 = *(0x71294);
    0x0007113a str r0, [sp, 0x9c]                                |     var_9ch = r0;
    0x0007113c ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x0007113e ldr r0, [r3]                                      |     r0 = *(0x71294);
    0x00071140 str r0, [sp, 0xa0]                                |     var_a0h = r0;
    0x00071142 blx 0x8f38                                        |     fcn_00008f38 ();
    0x00071146 strd r0, sl, [sp, 0xa4]                           |     __asm ("strd r0, sl, [var_a4h]");
    0x0007114a mov r0, sl                                        |     r0 = sl;
    0x0007114c blx 0x8f38                                        |     fcn_00008f38 ();
    0x00071150 strd r0, r5, [sp, 0xac]                           |     __asm ("strd r0, r5, [var_ach]");
    0x00071154 mov r0, r5                                        |     r0 = r5;
    0x00071156 blx 0x8f38                                        |     fcn_00008f38 ();
    0x0007115a ldr r3, [pc, 0x158]                               |     
    0x0007115c add.w sl, sp, 0x90                                |     sl += var_90h;
    0x00071160 str r0, [sp, 0xb4]                                |     var_b4h = r0;
    0x00071162 str.w sl, [sp, 0x50]                              |     __asm ("str.w sl, [var_50h]");
    0x00071164 adr r0, 0x140                                     |     r0 = 0x140;
    0x00071166 add r3, pc                                        |     r3 = 0xe2420;
    0x00071168 ldrb r2, [r3]                                     |     r2 = *(r3);
    0x0007116a movs r3, 0                                        |     r3 = 0;
    0x0007116c strd r3, r3, [sp, 0x48]                           |     __asm ("strd r3, r3, [var_48h]");
    0x00071170 strd r3, r3, [sp, 0x58]                           |     __asm ("strd r3, r3, [var_58h]");
    0x00071174 str r3, [sp, 0x60]                                |     var_60h = r3;
    0x00071176 movs r3, 5                                        |     r3 = 5;
    0x00071178 str r3, [sp, 0x54]                                |     var_54h = r3;
                                                                 |     if (r2 != 0) {
    0x0007117a cbz r2, 0x71180                                   |         
    0x0007117c adds r0, 1                                        |         r0++;
    0x0007117e str r0, [sp, 0xb4]                                |         var_b4h = r0;
                                                                 |     }
    0x00071180 ldr r3, [pc, 0x134]                               |     
    0x00071182 str r5, [sp, 0x3c]                                |     var_3ch = r5;
    0x00071184 mov r5, fp                                        |     r5 = fp;
    0x00071186 mov fp, sl                                        |     
    0x00071188 add r3, pc                                        |     r3 = 0xe2444;
    0x0007118a mov sl, r3                                        |     sl = r3;
                                                                 | label_4:
    0x0007118c ldr.w r0, [sl]                                    |     r0 = *(sl);
    0x00071190 mov.w r2, 0x4000                                  |     r2 = 0x4000;
    0x00071194 mov r1, r5                                        |     r1 = r5;
    0x00071196 blx 0x8db8                                        |     r0 = fcn_00008db8 ();
    0x0007119a subs.w ip, r0, 0                                  |     
                                                                 |     if (ip < r0) {
    0x0007119e blt.w 0x712d0                                     |         goto label_24;
                                                                 |     }
    0x000711a2 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch_2;
    0x000711a4 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x000711a6 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000711a8 beq.w 0x7103a                                     |         goto label_3;
                                                                 |     }
    0x000711ac mov r1, ip                                        |     r1 = ip;
    0x000711ae mov r3, fp                                        |     r3 = fp;
                                                                 | label_5:
    0x000711b0 ldr r2, [r3, 4]                                   |     r2 = var_94h;
                                                                 |     if (r2 == 0) {
    0x000711b2 cbz r2, 0x711d0                                   |         goto label_25;
                                                                 |     }
    0x000711b4 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x000711b6 beq 0x7118c                                       |         goto label_4;
                                                                 |     }
    0x000711b8 cmp r2, r1                                        |     
    0x000711ba ldr r0, [r3]                                      |     r0 = *(r3);
    0x000711bc mov ip, r2                                        |     
    0x000711be it hs                                             |     
                                                                 |     if (r2 < r1) {
    0x000711c0 movhs ip, r1                                      |         
                                                                 |     }
    0x000711c2 sub.w r1, r1, ip                                  |     r1 -= ip;
    0x000711c6 sub.w r2, r2, ip                                  |     r2 -= ip;
    0x000711ca add r0, ip                                        |     r0 += ip;
    0x000711cc str r2, [r3, 4]                                   |     var_94h = r2;
    0x000711ce str r0, [r3]                                      |     *(r3) = r0;
                                                                 | label_25:
    0x000711d0 adds r3, 8                                        |     r3 += 8;
    0x000711d2 cmp r3, r6                                        |     
                                                                 |     if (r3 != r6) {
    0x000711d4 bne 0x711b0                                       |         goto label_5;
                                                                 |     }
    0x000711d6 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x000711d8 beq.w 0x7103a                                     |         goto label_3;
                                                                 |     }
    0x000711dc ldr r1, [pc, 0xdc]                                |     
    0x000711de movs r2, 0x36                                     |     r2 = 0x36;
    0x000711e0 ldr r3, [pc, 0xdc]                                |     
    0x000711e2 ldr r0, [pc, 0xe0]                                |     
    0x000711e4 add r1, pc                                        |     r1 = 0xe24a4;
    0x000711e6 add r3, pc                                        |     r3 = 0xe24aa;
    0x000711e8 adds r1, 7                                        |     r1 += 7;
    0x000711ea add r0, pc                                        |     r0 = 0xe24b4;
    0x000711ec bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_18:
    0x000711f0 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x000711f2 mov r2, r8                                        |     r2 = r8;
    0x000711f4 ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x000711f6 mov r0, r7                                        |     r0 = r7;
    0x000711f8 str r5, [sp, 0x14]                                |     var_14h_3 = r5;
    0x000711fa str r3, [sp, 0x10]                                |     var_10h_2 = r3;
    0x000711fc ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x000711fe str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00071200 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x00071202 str r3, [sp, 8]                                   |     var_8h_2 = r3;
    0x00071204 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x00071206 str r3, [sp, 4]                                   |     var_4h_4 = r3;
    0x00071208 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x0007120a str r3, [sp]                                      |     *(sp) = r3;
    0x0007120c mov r3, sb                                        |     r3 = sb;
    0x0007120e bl 0x706f8                                        |     r0 = fcn_000706f8 (r0, r1, r2, r3, r4, r5, r6);
    0x00071212 adds.w r3, r0, 0xb                                |     r3 = r0 + 0xb;
    0x00071216 it ne                                             |     
                                                                 |     if (r3 == r0) {
    0x00071218 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0007121a ands.w r3, r3, r0, lsr 31                         |     r3 &= (r0 >> 31);
                                                                 |     if (r3 != r3) {
    0x0007121e bne 0x71308                                       |         goto label_26;
                                                                 |     }
    0x00071220 ldr r3, [pc, 0xa4]                                |     
    0x00071222 add r3, pc                                        |     
    0x00071224 ldr r3, [r3]                                      |     r3 = *(0xe24ee);
    0x00071226 subs r3, 5                                        |     r3 -= 5;
    0x00071228 cmp r3, 1                                         |     
                                                                 |     if (r3 < 1) {
    0x0007122a bls.w 0x710a2                                     |         goto label_6;
                                                                 |     }
                                                                 | label_10:
    0x0007122e cmp r0, 0                                         |     
                                                                 |     if (r0 > 0) {
    0x00071230 bgt.w 0x7103a                                     |         goto label_3;
                                                                 |     }
    0x00071234 ldr r3, [pc, 0x94]                                |     
    0x00071236 add r3, pc                                        |     r3 = 0xe2506;
    0x00071238 ldr r2, [r3]                                      |     r2 = *(0xe2506);
    0x0007123a cmp r2, 7                                         |     
                                                                 |     if (r2 > 7) {
    0x0007123c bhi.w 0x71080                                     |         goto label_7;
                                                                 |     }
    0x00071240 movs r3, 0xd4                                     |     r3 = 0xd4;
    0x00071242 lsrs r3, r2                                       |     r3 >>= r2;
    0x00071244 lsls r1, r3, 0x1f                                 |     r1 = r3 << 0x1f;
                                                                 |     if (r1 >= r3) {
    0x00071246 bpl.w 0x71080                                     |         goto label_7;
                                                                 |     }
    0x0007124a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0007124c beq.w 0x70f9e                                     |         goto label_8;
                                                                 |     }
                                                                 | label_11:
    0x00071250 bl 0x7042c                                        |     fcn_0007042c ();
    0x00071254 b 0x70f9e                                         |     goto label_8;
                                                                 | label_16:
    0x00071256 bl 0x70868                                        |     fcn_00070868 ();
    0x0007125a b 0x70f52                                         |     goto label_9;
                                                                 | label_24:
    0x000712d0 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x000712d4 ldr r0, [r0]                                      |     r0 = *(r0);
    0x000712d6 ldr r5, [sp, 0x3c]                                |     r5 = var_3ch;
    0x000712d8 cmp r0, 0xb                                       |     
    0x000712da it ne                                             |     
                                                                 |     if (r0 != 0xb) {
    0x000712dc cmpne r0, 0                                       |         __asm ("cmpne r0, 0");
                                                                 |     }
    0x000712de it le                                             |     
                                                                 |     if (r0 > 0xb) {
    0x000712e0 rsble r0, r0, 0                                   |         __asm ("rsble r0, r0, 0");
                                                                 |         goto label_27;
                                                                 |     }
                                                                 |     if (r0 <= 0xb) {
                                                                 | label_27:
    0x000712e2 ble 0x7122e                                       |         goto label_10;
                                                                 |     }
                                                                 | label_23:
    0x000712e4 ldr r6, [pc, 0x80]                                |     
    0x000712e6 add r6, pc                                        |     r6 = 0xe2652;
    0x000712e8 ldr r0, [r6]                                      |     r0 = *(0xe2652);
    0x000712ea bl 0x69a04                                        |     fcn_00069a04 (r0, r1, r2, r3);
    0x000712ee ldr r3, [pc, 0x7c]                                |     
    0x000712f0 str r0, [r6]                                      |     *(r6) = r0;
    0x000712f2 add r3, pc                                        |     
    0x000712f4 ldr r3, [r3]                                      |     r3 = *(0xe2664);
                                                                 | label_12:
    0x000712f6 cmp r3, 7                                         |     
                                                                 |     if (r3 > 7) {
    0x000712f8 bhi.w 0x71080                                     |         goto label_7;
                                                                 |     }
    0x000712fc movs r2, 0xd4                                     |     r2 = 0xd4;
    0x000712fe lsr.w r3, r2, r3                                  |     r3 = r2 >> r3;
    0x00071302 lsls r2, r3, 0x1f                                 |     r2 = r3 << 0x1f;
                                                                 |     if (r2 < r3) {
    0x00071304 bmi 0x71250                                       |         goto label_11;
                                                                 |     }
    0x00071306 b 0x71080                                         |     goto label_7;
                                                                 | label_26:
    0x00071308 ldr r6, [pc, 0x64]                                |     
    0x0007130a add r6, pc                                        |     r6 = 0xe267e;
    0x0007130c ldr r0, [r6]                                      |     r0 = *(0xe267e);
    0x0007130e bl 0x69a04                                        |     fcn_00069a04 (r0, r1, r2, r3);
    0x00071312 ldr r3, [pc, 0x60]                                |     
    0x00071314 str r0, [r6]                                      |     *(r6) = r0;
    0x00071316 add r3, pc                                        |     
    0x00071318 ldr r3, [r3]                                      |     r3 = *(0xe2690);
    0x0007131a subs r2, r3, 5                                    |     r2 = r3 - 5;
    0x0007131c cmp r2, 1                                         |     
                                                                 |     if (r2 < 1) {
    0x0007131e bls.w 0x710a2                                     |         goto label_6;
                                                                 |     }
    0x00071322 b 0x712f6                                         |     goto label_12;
                                                                 | label_22:
    0x00071324 ldr r3, [pc, 0x50]                                |     
    0x00071326 add r3, pc                                        |     
    0x00071328 ldr r3, [r3]                                      |     r3 = *(0xe26a2);
    0x0007132a b 0x70f90                                         |     goto label_2;
                                                                 | label_20:
    0x0007132c bl 0x70b9c                                        |     fcn_00070b9c ();
    0x00071330 b 0x7104a                                         |     goto label_13;
                                                                 | label_15:
    0x00071332 ldr r3, [pc, 0x48]                                |     
    0x00071334 movs r2, 7                                        |     r2 = 7;
    0x00071336 ldr r4, [sp, 0x38]                                |     r4 = var_38h;
    0x00071338 movs r1, 1                                        |     r1 = 1;
    0x0007133a ldr r0, [pc, 0x44]                                |     
    0x0007133c ldr r3, [r4, r3]                                  |     r3 = *((r4 + r3));
    0x0007133e add r0, pc                                        |     r0 = 0xe26c4;
    0x00071340 ldr r3, [r3]                                      |     r3 = *(0x7137e);
    0x00071342 blx 0x918c                                        |     open64_2 ();
    0x00071346 blx 0x8a14                                        |     fcn_00008a14 ();
                                                                 | label_19:
    0x0007134a blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x0007134e ldr r3, [r0]                                      |     r3 = *(r0);
    0x00071350 cmp r3, 0                                         |     
                                                                 |     if (r3 > 0) {
    0x00071352 bgt.w 0x71074                                     |         goto label_14;
                                                                 |     }
                                                                 |     if (r3 == 0) {
    0x00071356 beq.w 0x71080                                     |         goto label_7;
                                                                 |     }
    0x0007135a cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0007135c bne.w 0x70f58                                     |         goto label_0;
                                                                 |     }
    0x00071360 b 0x7103e                                         |     goto label_1;
                                                                 | label_21:
    0x00071362 blx 0x927c                                        |     fprintf_chk ()
    0x00071366 nop                                               |     
    0x00071368 strh r6, [r6]                                     |     *(r6) = r6;
    0x0007136a movs r5, r0                                       |     r5 = r0;
    0x0007136c str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0007136e movs r5, r0                                       |     r5 = r0;
    0x00071370 ldrb r6, [r7, 0x1f]                               |     r6 = *((r7 + 0x1f));
    0x00071372 movs r5, r0                                       |     r5 = r0;
    0x00071374 str r2, [sp, 0x398]                               |     *(arg_398h) = r2;
    0x00071376 movs r5, r0                                       |     r5 = r0;
    0x00071378 str r2, [sp, 0x358]                               |     *(arg_358h) = r2;
    0x0007137a movs r5, r0                                       |     r5 = r0;
    0x0007137c lsls r0, r2, 0x14                                 |     r0 = r2 << 0x14;
    0x0007137e movs r0, r0                                       |     
    0x00071380 subs r2, 0x5a                                     |     r2 -= 0x5a;
    0x00071382 movs r3, r0                                       |     r3 = r0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x71384 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00071384 ()                                      | void fcn_00071384 (int16_t arg_81ch, int16_t arg_848h, int16_t arg_84ch, int16_t arg_850h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00071384 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x00071388 mov r6, r0                                        |     r6 = r0;
    0x0007138a ldr r0, [pc, 0xac]                                |     
    0x0007138c mov r7, r1                                        |     r7 = r1;
    0x0007138e subw sp, sp, 0x824                                |     __asm ("subw sp, sp, aav.0x000000ff");
    0x00071392 mov r8, r2                                        |     r8 = r2;
    0x00071394 ldr r1, [pc, 0xa4]                                |     r1 = *(0x7143c);
    0x00071396 mov sb, r3                                        |     sb = r3;
    0x00071398 add r0, pc                                        |     r0 = 0xe27d6;
    0x0007139a eor.w r4, r7, r7, asr 31                          |     r4 = r7 ^ (r7 >> 31);
    0x0007139e ldr.w sl, [sp, 0x848]                             |     sl = *(arg_848h);
    0x000713a2 ldr r1, [r0, r1]                                  |     
    0x000713a4 sub.w r4, r4, r7, asr 31                          |     r4 -= (r7 >> 31);
    0x000713a8 uxtb r4, r4                                       |     r4 = (int8_t) r4;
    0x000713aa ldr r1, [r1]                                      |     r1 = *(0xe27d6);
    0x000713ac str.w r1, [sp, 0x81c]                             |     __asm ("str.w r1, [arg_81ch]");
    0x000713b0 mov.w r1, 0                                       |     r1 = 0;
    0x000713b4 blx 0x9628                                        |     fcn_00009628 ();
    0x000713b8 ldr r3, [pc, 0x84]                                |     
    0x000713ba and r2, r6, 7                                     |     r2 = r6 & 7;
    0x000713be ldr.w r1, [sp, 0x84c]                             |     r1 = *(arg_84ch);
    0x000713c2 mov r5, r0                                        |     r5 = r0;
    0x000713c4 ldr.w fp, [r0]                                    |     fp = *(0xe27d6);
    0x000713c8 add r3, pc                                        |     
    0x000713ca ldr r3, [r3]                                      |     r3 = *(0xe280c);
    0x000713cc cmp r2, r3                                        |     
                                                                 |     if (r2 <= r3) {
    0x000713ce ble 0x713fa                                       |         goto label_0;
                                                                 |     }
    0x000713d0 rsbs r0, r4, 0                                    |     r0 = r4 - ;
                                                                 |     do {
    0x000713d2 ldr r2, [pc, 0x70]                                |         
    0x000713d4 cmp.w fp, 0                                       |         
    0x000713d8 ldr r3, [pc, 0x60]                                |         r3 = *(0x7143c);
    0x000713da it ge                                             |         
                                                                 |         if (fp < 0) {
    0x000713dc strge fp, [r5]                                    |             *(r5) = fp;
                                                                 |         }
    0x000713e0 add r2, pc                                        |         r2 = 0xe282a;
    0x000713e2 ldr r3, [r2, r3]                                  |         r3 = *(0xe282a);
    0x000713e4 ldr r2, [r3]                                      |         r2 = *(0xe282a);
    0x000713e6 ldr.w r3, [sp, 0x81c]                             |         r3 = *(arg_81ch);
    0x000713ea eors r2, r3                                       |         r2 ^= r3;
    0x000713ec mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000713f0 bne 0x71432                                       |             goto label_1;
                                                                 |         }
    0x000713f2 addw sp, sp, 0x824                                |         __asm ("addw sp, sp, aav.0x000000ff");
    0x000713f6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_0:
    0x000713fa ldr.w r3, [sp, 0x850]                             |         r3 = *(arg_850h);
    0x000713fe movs r2, 1                                        |         r2 = 1;
    0x00071400 str r4, [r0]                                      |         *(r0) = r4;
    0x00071402 add r4, sp, 0x1c                                  |         r4 += var_1ch;
    0x00071404 str r1, [sp]                                      |         *(sp) = r1;
    0x00071406 mov r0, r4                                        |         r0 = r4;
    0x00071408 str r3, [sp, 4]                                   |         var_4h = r3;
    0x0007140a mov.w r3, 0x800                                   |         r3 = 0x800;
    0x0007140e mov r1, r3                                        |         r1 = r3;
    0x00071410 blx 0x9074                                        |         fcn_00009074 ();
    0x00071412 cdp p4, 3, c9, c0, c5, 0                          |         __asm ("cdp p4, 3, c9, c0, c5, 0");
    0x00071416 movs r4, 0                                        |         r4 = 0;
    0x00071418 mov r3, sb                                        |         r3 = sb;
    0x0007141a mov r2, r8                                        |         r2 = r8;
    0x0007141c mov r1, r7                                        |         r1 = r7;
    0x0007141e mov r0, r6                                        |         r0 = r6;
    0x00071420 str.w sl, [sp]                                    |         __asm ("str.w sl, [sp]");
    0x00071424 strd r4, r4, [sp, 0xc]                            |         __asm ("strd r4, r4, [sp, 0xc]");
    0x00071428 strd r4, r4, [sp, 4]                              |         __asm ("strd r4, r4, [sp, 4]");
    0x0007142c bl 0x70eec                                        |         fcn_00070eec (r0, r1, r2, r3, r4, r5, r6);
    0x00071430 b 0x713d2                                         |         
                                                                 |     } while (1);
                                                                 | label_1:
    0x00071432 blx 0x927c                                        |     fprintf_chk ()
    0x00071436 nop                                               |     
    0x00071438 strb r4, [r5, 0x1c]                               |     *((r5 + 0x1c)) = r4;
    0x0007143a movs r5, r0                                       |     r5 = r0;
    0x0007143c lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0007143e movs r0, r0                                       |     
    0x00071440 ldrb r4, [r1, 0x1d]                               |     r4 = *((r1 + 0x1d));
    0x00071442 movs r5, r0                                       |     r5 = r0;
    0x00071444 strb r4, [r4, 0x1b]                               |     *((r4 + 0x1b)) = r4;
    0x00071446 movs r5, r0                                       |     r5 = r0;
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x71448 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00071448 ()                  | void fcn_00071448 () {
                                             |     int16_t var_0h_2;
                                             |     int16_t var_4h_2;
                                             |     int16_t var_8h;
                                             |     int16_t var_10h;
                                             |     int16_t var_14h_2;
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     int16_t var_28h_2;
                                             |     if (? >= ?) {
    0x00071448 addlt fp, r6, r0, lsl r5      |         
                                             |     }
    0x0007144c ldr r4, [sp, 0x20]            |     r4 = var_0h;
    0x0007144e ldr.w ip, [pc, 0x40]          |     
    0x00071452 str r4, [sp]                  |     *(sp) = r4;
    0x00071454 ldr r4, [pc, 0x3c]            |     r4 = *(0x71494);
    0x00071456 add ip, pc                    |     ip = 0xe28ec;
    0x00071458 ldr.w r4, [ip, r4]            |     
    0x0007145c ldr r4, [r4]                  |     r4 = *(0xe28ec);
    0x0007145e str r4, [sp, 0x14]            |     var_14h_2 = r4;
    0x00071460 mov.w r4, 0                   |     r4 = 0;
    0x00071464 ldr r4, [sp, 0x24]            |     r4 = var_4h;
    0x00071466 str r4, [sp, 4]               |     var_4h_2 = r4;
    0x00071468 add r4, sp, 0x28              |     r4 += var_28h_2;
    0x0007146a str r4, [sp, 8]               |     var_8h = r4;
    0x0007146c str r4, [sp, 0x10]            |     var_10h = r4;
    0x0007146e bl 0x71384                    |     fcn_00071384 (r0, r1, r2, r3, r4, r5, r6);
    0x00071472 ldr r2, [pc, 0x24]            |     
    0x00071474 ldr r3, [pc, 0x1c]            |     r3 = *(0x71494);
    0x00071476 add r2, pc                    |     r2 = 0xe2914;
    0x00071478 ldr r3, [r2, r3]              |     r3 = *(0xe2914);
    0x0007147a ldr r2, [r3]                  |     r2 = *(0xe2914);
    0x0007147c ldr r3, [sp, 0x14]            |     r3 = var_14h_2;
    0x0007147e eors r2, r3                   |     r2 ^= r3;
    0x00071480 mov.w r3, 0                   |     r3 = 0;
                                             |     if (r2 == r3) {
    0x00071484 bne 0x7148a                   |         
    0x00071486 add sp, 0x18                  |         
    0x00071488 pop {r4, pc}                  |         
                                             |     }
    0x0007148a blx 0x927c                    |     fprintf_chk ()
    0x0007148e nop                           |     
    0x00071490 strb r6, [r5, 0x19]           |     *((r5 + 0x19)) = r6;
    0x00071492 movs r5, r0                   |     r5 = r0;
    0x00071494 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00071496 movs r0, r0                   |     
    0x00071498 strb r6, [r1, 0x19]           |     *((r1 + 0x19)) = r6;
    0x0007149a movs r5, r0                   |     r5 = r0;
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7164c */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.0007164c ()                                      | void fcn_0007164c (int16_t arg_240h, int16_t arg_244h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_214h;
                                                                 |     int16_t var_21ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0007164c svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x00071650 mov r4, r2                                        |     r4 = r2;
    0x00071652 sub.w sp, sp, 0x21c                               |     
    0x00071656 ldr r2, [pc, 0x154]                               |     
    0x00071658 str r3, [sp]                                      |     *(sp) = r3;
    0x0007165a ldr r3, [pc, 0x154]                               |     r3 = *(0x717b2);
    0x0007165c add r2, pc                                        |     r2 = 0xe2e0e;
    0x0007165e ldrd fp, sl, [sp, 0x244]                          |     __asm ("ldrd fp, sl, [arg_244h]");
    0x00071662 ldr r6, [sp, 0x240]                               |     r6 = *(arg_240h);
    0x00071664 ldr r3, [r2, r3]                                  |     
    0x00071666 ldr r3, [r3]                                      |     r3 = *(0xe2e0e);
    0x00071668 str r3, [sp, 0x214]                               |     var_214h = r3;
    0x0007166a mov.w r3, 0                                       |     r3 = 0;
    0x0007166e cmp.w fp, 0                                       |     
                                                                 |     if (fp == 0) {
    0x00071672 beq 0x71744                                       |         goto label_2;
                                                                 |     }
    0x00071674 cmp r6, 0                                         |     
    0x00071676 ldr r3, [pc, 0x13c]                               |     
    0x00071678 it lt                                             |     
                                                                 |     if (r6 < 0) {
    0x0007167a rsblt r6, r6, 0                                   |         __asm ("rsblt r6, r6, 0");
                                                                 |     }
    0x0007167c mov r5, r0                                        |     r5 = r0;
    0x0007167e uxtb r7, r6                                       |     r7 = (int8_t) r6;
    0x00071680 mov r8, r1                                        |     r8 = r1;
    0x00071682 add r3, pc                                        |     r3 = 0xe2e3c;
    0x00071684 str r3, [sp, 4]                                   |     var_4h_2 = r3;
                                                                 | label_0:
    0x00071686 ldr r2, [r4]                                      |     r2 = *(r4);
    0x00071688 adds r2, 1                                        |     r2++;
    0x0007168a cmp r2, r8                                        |     
                                                                 |     if (r2 >= r8) {
    0x0007168c bhs 0x71744                                       |         goto label_2;
                                                                 |     }
    0x0007168e add r6, sp, 0x10                                  |     r6 += var_10h;
    0x00071690 blx 0x9628                                        |     fcn_00009628 ();
    0x00071694 mov r3, sl                                        |     r3 = sl;
    0x00071696 str r7, [r0]                                      |     *(r0) = r7;
    0x00071698 mov r2, fp                                        |     r2 = fp;
    0x0007169a movs r1, 1                                        |     r1 = 1;
    0x0007169c mov r0, r6                                        |     r0 = r6;
    0x0007169e str.w sl, [sp, 0xc]                               |     __asm ("str.w sl, [var_ch]");
    0x000716a2 blx 0x961c                                        |     r0 = fcn_0000961c ();
    0x000716a6 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000716a8 blt 0x7178a                                       |         goto label_3;
                                                                 |     }
    0x000716aa add.w sb, sp, 0x14                                |     sb += var_14h;
    0x000716ae movs r1, 0x80                                     |     r1 = 0x80;
    0x000716b0 mov r2, sb                                        |     r2 = sb;
    0x000716b2 mov r0, fp                                        |     r0 = fp;
    0x000716b4 blx 0x917c                                        |     r0 = fcn_0000917c ();
    0x000716b8 cmp r0, 0x7f                                      |     
                                                                 |     if (r0 > 0x7f) {
    0x000716ba bhi 0x71774                                       |         goto label_4;
                                                                 |     }
                                                                 |     if (r0 == 0) {
    0x000716bc cbz r0, 0x71702                                   |         goto label_5;
                                                                 |     }
    0x000716be add.w r3, sb, r0, lsl 2                           |     r3 = sb + (r0 << 2);
    0x000716c2 mov r2, sb                                        |     r2 = sb;
    0x000716c4 movw r0, 0x107                                    |     r0 = 0x107;
                                                                 |     do {
    0x000716c8 ldr r1, [r2], 4                                   |         r1 = *(r2);
                                                                 |         r2 += 4;
    0x000716cc tst.w r1, 0x800                                   |         
                                                                 |         if ((r1 & 0x800) == 0) {
    0x000716d0 bne 0x716fa                                       |             
    0x000716d2 cmp.w r1, 0x100                                   |             
                                                                 |             if (r1 == 0x100) {
    0x000716d6 beq 0x71766                                       |                 goto label_6;
                                                                 |             }
                                                                 |             if (r1 <= 0x100) {
    0x000716d8 bgt 0x716ee                                       |                 
    0x000716da cmp r1, 7                                         |                 
                                                                 |                 if (r1 > 7) {
    0x000716dc bhi 0x71790                                       |                     goto label_7;
                                                                 |                 }
    0x000716de subs r1, 2                                        |                 r1 -= 2;
    0x000716e0 cmp r1, 5                                         |                 
                                                                 |                 if (r1 > 5) {
    0x000716e2 bhi 0x716fa                                       |                     goto label_8;
                                                                 |                 }
                                                                 |                 /* switch table (6 cases) at 0x716e8 */
    0x000716e4 tbb [pc, r1]                                      |                 __asm ("tbb aav.0x000000ff");
                                                                 |             }
    0x000716ee cmp.w r1, 0x200                                   |             
                                                                 |             if (r1 == 0x200) {
    0x000716f2 beq 0x716fa                                       |                 goto label_8;
                                                                 |             }
    0x000716f4 cmp.w r1, 0x400                                   |             
                                                                 |             if (r1 != 0x400) {
    0x000716f8 bne 0x71762                                       |                 goto label_9;
                                                                 |             }
                                                                 |         }
                                                                 | label_8:
    0x000716fa add.w sl, sl, 4                                   |         sl += 4;
                                                                 | label_1:
    0x000716fe cmp r2, r3                                        |         
    0x00071700 bne 0x716c8                                       |         
                                                                 |     } while (r2 != r3);
                                                                 | label_5:
    0x00071702 ldr.w sb, [r4]                                    |     sb = *(r4);
    0x00071706 ldr r6, [r6]                                      |     r6 = *(r6);
    0x00071708 add.w r1, sb, 1                                   |     r1 = sb + 1;
    0x0007170c mov r0, r6                                        |     r0 = r6;
    0x0007170e str r1, [r4]                                      |     *(r4) = r1;
    0x00071710 blx 0x8f38                                        |     fcn_00008f38 ();
    0x00071714 ldr r3, [sp]                                      |     r3 = *(sp);
    0x00071716 add.w fp, r5, sb, lsl 3                           |     
    0x0007171a str.w r6, [r5, sb, lsl 3]                         |     __asm ("str.w r6, [r5, sb, lsl 3]");
    0x0007171e str.w r0, [fp, 4]                                 |     __asm ("str.w r0, [arg_244h]");
                                                                 |     if (r3 != 0) {
    0x00071722 cbz r3, 0x7173a                                   |         
    0x00071724 ldr r3, [r4]                                      |         r3 = *(r4);
    0x00071726 movs r2, 1                                        |         r2 = 1;
    0x00071728 ldr r1, [sp, 4]                                   |         r1 = var_4h_2;
    0x0007172a str.w r1, [r5, r3, lsl 3]                         |         __asm ("str.w r1, [r5, r3, lsl 3]");
    0x0007172e add.w r3, r5, r3, lsl 3                           |         r3 = r5 + (r3 << 3);
    0x00071732 str r2, [r3, 4]                                   |         *((r3 + 4)) = r2;
    0x00071734 ldr r3, [r4]                                      |         r3 = *(r4);
    0x00071736 add r3, r2                                        |         r3 += r2;
    0x00071738 str r3, [r4]                                      |         *(r4) = r3;
                                                                 |     }
    0x0007173a ldr fp, [sl], 4                                   |     fp = *(sl);
                                                                 |     sl += 4;
    0x0007173e cmp.w fp, 0                                       |     
                                                                 |     if (fp != 0) {
    0x00071742 bne 0x71686                                       |         goto label_0;
                                                                 |     }
                                                                 | label_2:
    0x00071744 movs r0, 0                                        |     r0 = 0;
                                                                 |     do {
    0x00071746 ldr r2, [pc, 0x70]                                |         
    0x00071748 ldr r3, [pc, 0x64]                                |         r3 = *(0x717b0);
    0x0007174a add r2, pc                                        |         r2 = 0xe2f08;
    0x0007174c ldr r3, [r2, r3]                                  |         r3 = *(0xe2f08);
    0x0007174e ldr r2, [r3]                                      |         r2 = *(0xe2f08);
    0x00071750 ldr r3, [sp, 0x214]                               |         r3 = var_214h;
    0x00071752 eors r2, r3                                       |         r2 ^= r3;
    0x00071754 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00071758 bne 0x717a6                                       |             goto label_10;
                                                                 |         }
    0x0007175a add.w sp, sp, 0x21c                               |         
    0x0007175e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_9:
    0x00071762 cmp r1, r0                                        |         
                                                                 |         if (r1 != r0) {
    0x00071764 bne 0x71790                                       |             goto label_7;
                                                                 |         }
                                                                 | label_6:
    0x00071766 add.w sl, sl, 7                                   |         sl += 7;
    0x0007176a bic sl, sl, 7                                     |         sl = BIT_MASK (sl, 7);
    0x0007176e add.w sl, sl, 8                                   |         sl += 8;
    0x00071772 b 0x716fe                                         |         goto label_1;
                                                                 | label_4:
    0x00071774 ldr r1, [pc, 0x44]                                |         
    0x00071776 movw r2, 0x397                                    |         r2 = 0x397;
    0x0007177a ldr r3, [pc, 0x44]                                |         
    0x0007177c ldr r0, [pc, 0x44]                                |         
    0x0007177e add r1, pc                                        |         r1 = 0xe2f3e;
    0x00071780 add r3, pc                                        |         r3 = 0xe2f46;
    0x00071782 adds r1, 7                                        |         r1 += 7;
    0x00071784 add r0, pc                                        |         r0 = 0xe2f4c;
    0x00071786 bl 0x71518                                        |         fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_3:
    0x0007178a mvn r0, 0x15                                      |         r0 = ~0x15;
    0x0007178e b 0x71746                                         |         
                                                                 |     } while (1);
                                                                 | label_7:
    0x00071790 ldr r1, [pc, 0x34]                                |     
    0x00071792 movw r2, 0x397                                    |     r2 = 0x397;
    0x00071796 ldr r3, [pc, 0x34]                                |     
    0x00071798 ldr r0, [pc, 0x34]                                |     
    0x0007179a add r1, pc                                        |     r1 = 0xe2f66;
    0x0007179c add r3, pc                                        |     r3 = 0xe2f6e;
    0x0007179e adds r1, 7                                        |     r1 += 7;
    0x000717a0 add r0, pc                                        |     r0 = 0xe2f74;
    0x000717a2 bl 0x71614                                        |     r0 = fcn_00071614 (r0, r1, r2, r3);
                                                                 | label_10:
    0x000717a6 blx 0x927c                                        |     fprintf_chk ()
    0x000717aa nop                                               |     
    0x000717ac strb r0, [r5, 0x11]                               |     *((r5 + 0x11)) = r0;
    0x000717ae movs r5, r0                                       |     r5 = r0;
    0x000717b0 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x000717b2 movs r0, r0                                       |     
    0x000717b4 subs r6, 0                                        |     
    0x000717b6 movs r3, r0                                       |     r3 = r0;
    0x000717b8 strb r2, [r7, 0xd]                                |     *((r7 + 0xd)) = r2;
    0x000717ba movs r5, r0                                       |     r5 = r0;
    0x000717bc adds r6, 0xa6                                     |     r6 += 0xa6;
    0x000717be movs r3, r0                                       |     r3 = r0;
    0x000717c0 subs r4, 0x88                                     |     r4 -= 0x88;
    0x000717c2 movs r3, r0                                       |     r3 = r0;
    0x000717c4 adds r7, 0x44                                     |     r7 += 0x44;
    0x000717c6 movs r3, r0                                       |     r3 = r0;
    0x000717c8 adds r6, 0x8a                                     |     r6 += 0x8a;
    0x000717ca movs r3, r0                                       |     r3 = r0;
    0x000717cc subs r4, 0x6c                                     |     r4 -= 0x6c;
    0x000717ce movs r3, r0                                       |     r3 = r0;
    0x000717d0 adds r7, 0x44                                     |     r7 += 0x44;
    0x000717d2 movs r3, r0                                       |     r3 = r0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x71828 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.00071828 ()                                      | void fcn_00071828 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h_2;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_18h_3;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_10h;
                                                                 |     int8_t var_2h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h_2;
                                                                 |     int16_t var_0h_3;
                                                                 |     int16_t var_4h_3;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch_2;
                                                                 |     int16_t var_10h_3;
                                                                 |     int16_t var_14h_3;
                                                                 |     int16_t var_18h_4;
                                                                 |     int16_t var_20h_2;
                                                                 |     int16_t var_24h_2;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h_2;
                                                                 |     int16_t var_3ch_2;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_18h;
                                                                 |     int32_t var_4h_4;
                                                                 |     int32_t var_8h_3;
                                                                 |     int32_t var_ch_3;
                                                                 |     int32_t var_10h_4;
                                                                 |     int32_t var_14h_4;
                                                                 |     int32_t var_1ch;
                                                                 |     int16_t var_0h_4;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00071828 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x0007182c mov r5, r0                                        |     r5 = r0;
    0x0007182e ldr r0, [pc, 0x120]                               |     
    0x00071830 mov r6, r1                                        |     r6 = r1;
    0x00071832 sub sp, 0x3c                                      |     
    0x00071834 ldr r1, [pc, 0x11c]                               |     r1 = *(0x71954);
    0x00071836 add r7, sp, 0x18                                  |     r7 += var_18h;
    0x00071838 add r0, pc                                        |     r0 = 0xe318e;
    0x0007183a mov sb, r3                                        |     sb = r3;
    0x0007183c ldr r3, [r7, 0x48]                                |     r3 = *((r7 + 0x48));
    0x0007183e mov r8, r2                                        |     r8 = r2;
    0x00071840 ldr r1, [r0, r1]                                  |     
    0x00071842 ldr r1, [r1]                                      |     r1 = *(0xe318e);
    0x00071844 str r1, [r7, 0x1c]                                |     var_1ch = r1;
    0x00071846 mov.w r1, 0                                       |     r1 = 0;
    0x0007184a str r3, [r7, 0x14]                                |     var_14h_4 = r3;
    0x0007184c ldr r3, [r7, 0x4c]                                |     r3 = *((r7 + 0x4c));
    0x0007184e str r3, [r7, 0x10]                                |     var_10h_4 = r3;
    0x00071850 blx 0x9628                                        |     fcn_00009628 ();
    0x00071854 ldr r3, [pc, 0x100]                               |     
    0x00071856 mov r4, r0                                        |     r4 = r0;
    0x00071858 eor.w r0, r6, r6, asr 31                          |     r0 = r6 ^ (r6 >> 31);
    0x0007185c and r1, r5, 7                                     |     r1 = r5 & 7;
    0x00071860 ldr.w sl, [r4]                                    |     sl = *(r4);
    0x00071864 add r3, pc                                        |     r3 = 0xe31c0;
    0x00071866 sub.w r0, r0, r6, asr 31                          |     r0 -= (r6 >> 31);
    0x0007186a ldr r2, [r3]                                      |     r2 = *(0xe31c0);
    0x0007186c ldrd fp, r3, [r7, 0x50]                           |     __asm ("ldrd fp, r3, [r7, 0x50]");
    0x00071870 uxtb r0, r0                                       |     r0 = (int8_t) r0;
    0x00071872 cmp r1, r2                                        |     
    0x00071874 str r3, [r7, 0xc]                                 |     var_ch_3 = r3;
    0x00071876 ldr r3, [r7, 0x58]                                |     r3 = *((r7 + 0x58));
    0x00071878 str r3, [r7, 8]                                   |     var_8h_3 = r3;
    0x0007187a ldr r3, [r7, 0x5c]                                |     r3 = *((r7 + 0x5c));
                                                                 |     if (r1 <= r2) {
    0x0007187c ble 0x718a6                                       |         goto label_1;
                                                                 |     }
    0x0007187e rsbs r0, r0, 0                                    |     r0 -= ;
                                                                 |     do {
    0x00071880 ldr r2, [pc, 0xd8]                                |         
    0x00071882 cmp.w sl, 0                                       |         
    0x00071886 ldr r3, [pc, 0xcc]                                |         r3 = *(0x71956);
    0x00071888 it ge                                             |         
                                                                 |         if (sl < 0) {
    0x0007188a strge sl, [r4]                                    |             *(r4) = sl;
                                                                 |         }
    0x0007188e add r2, pc                                        |         r2 = 0xe31ee;
    0x00071890 ldr r3, [r2, r3]                                  |         r3 = *(0xe31ee);
    0x00071892 ldr r2, [r3]                                      |         r2 = *(0xe31ee);
    0x00071894 ldr r3, [r7, 0x1c]                                |         r3 = var_1ch;
    0x00071896 eors r2, r3                                       |         r2 ^= r3;
    0x00071898 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0007189c bne 0x7194a                                       |             goto label_2;
                                                                 |         }
    0x0007189e adds r7, 0x24                                     |         r7 += 0x24;
    0x000718a0 mov sp, r7                                        |         
    0x000718a2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_1:
    0x000718a6 str r0, [r4]                                      |         *(r4) = r0;
    0x000718a8 cmp.w fp, 0                                       |         
                                                                 |         if (fp == 0) {
    0x000718ac beq 0x71928                                       |             goto label_3;
                                                                 |         }
    0x000718ae mov r0, fp                                        |         r0 = fp;
    0x000718b0 str r3, [r7, 4]                                   |         var_4h_4 = r3;
    0x000718b2 blx 0x8f38                                        |         r0 = fcn_00008f38 ();
    0x000718b6 addw r2, r0, 0x802                                |         __asm ("addw r2, r0, aav.0x000000ff");
    0x000718ba ldr r3, [r7, 4]                                   |         r3 = var_4h_4;
    0x000718bc cmp.w r2, 0x400000                                |         
                                                                 |         if (r2 > 0x400000) {
    0x000718c0 bhi 0x71934                                       |             goto label_4;
                                                                 |         }
    0x000718c2 addw r0, r0, 0x809                                |         __asm ("addw r0, r0, aav.0x000000ff");
    0x000718c6 str r3, [r7]                                      |         *(r7) = r3;
    0x000718c8 bic r0, r0, 7                                     |         r0 = BIT_MASK (r0, 7);
    0x000718cc mov r1, fp                                        |         r1 = fp;
    0x000718ce sub.w sp, sp, r0                                  |         
    0x000718d2 add r3, sp, 0x18                                  |         r3 += var_18h;
    0x000718d4 mov r0, r3                                        |         r0 = r3;
    0x000718d6 str r3, [r7, 4]                                   |         var_4h_4 = r3;
    0x000718d8 blx 0x8c38                                        |         fcn_00008c38 ();
    0x000718dc ldr r2, [pc, 0x80]                                |         
    0x000718de ldr r3, [r7]                                      |         r3 = *(r7);
    0x000718e0 add r2, pc                                        |         r2 = 0xe3244;
    0x000718e2 ldrh.w ip, [r2]                                   |         ip = *(r2);
    0x000718e6 ldrb r2, [r2, 2]                                  |         r2 = *((r2 + 2));
    0x000718e8 strh.w ip, [r0]                                   |         *(r0) = ip;
    0x000718ec strb r2, [r0, 2]!                                 |         *((r0 += 2)) = r2;
                                                                 | label_0:
    0x000718f0 str r3, [sp]                                      |         *(sp) = r3;
    0x000718f2 movs r2, 1                                        |         r2 = 1;
    0x000718f4 ldr r3, [r7, 0x60]                                |         r3 = *((r7 + 0x60));
    0x000718f6 mov.w r1, 0x800                                   |         r1 = 0x800;
    0x000718fa str r3, [sp, 4]                                   |         var_4h = r3;
    0x000718fc mov.w r3, -1                                      |         r3 = -1;
    0x00071900 blx 0x9074                                        |         fcn_00009074 ();
    0x00071902 subs.w r8, r8, fp, ror 25                         |         r8 -= (fp >>> 25);
    0x00071906 mov r2, r8                                        |         r2 = r8;
    0x00071908 mov r1, r6                                        |         r1 = r6;
    0x0007190a mov r0, r5                                        |         r0 = r5;
    0x0007190c str r3, [sp, 0x14]                                |         var_14h = r3;
    0x0007190e ldr r3, [r7, 8]                                   |         r3 = var_8h_3;
    0x00071910 str r3, [sp, 0x10]                                |         var_10h = r3;
    0x00071912 ldr r3, [r7, 0xc]                                 |         r3 = var_ch_3;
    0x00071914 strd fp, r3, [sp, 8]                              |         __asm ("strd fp, r3, [var_38h]");
    0x00071918 ldr r3, [r7, 0x10]                                |         r3 = var_10h_4;
    0x0007191a str r3, [sp, 4]                                   |         var_4h = r3;
    0x0007191c ldr r3, [r7, 0x14]                                |         r3 = var_14h_4;
    0x0007191e str r3, [sp]                                      |         *(sp) = r3;
    0x00071920 mov r3, sb                                        |         r3 = sb;
    0x00071922 bl 0x70eec                                        |         fcn_00070eec (r0, r1, r2, r3, r4, r5, r6);
    0x00071926 b 0x71880                                         |         
                                                                 |     } while (1);
                                                                 | label_3:
    0x00071928 sub.w sp, sp, 0x800                               |     
    0x0007192c add r2, sp, 0x18                                  |     r2 += var_18h_2;
    0x0007192e mov r0, r2                                        |     r0 = r2;
    0x00071930 str r2, [r7, 4]                                   |     var_4h_4 = r2;
    0x00071932 b 0x718f0                                         |     goto label_0;
                                                                 | label_4:
    0x00071934 ldr r1, [pc, 0x2c]                                |     
    0x00071936 mov.w r2, 0x320                                   |     r2 = 0x320;
    0x0007193a ldr r3, [pc, 0x2c]                                |     
    0x0007193c ldr r0, [pc, 0x2c]                                |     
    0x0007193e add r1, pc                                        |     r1 = 0xe32a6;
    0x00071940 add r3, pc                                        |     r3 = 0xe32ae;
    0x00071942 adds r1, 7                                        |     r1 += 7;
    0x00071944 add r0, pc                                        |     r0 = 0xe32b4;
    0x00071946 bl 0x71518                                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_2:
    0x0007194a blx 0x927c                                        |     fprintf_chk ()
    0x0007194e nop                                               |     
    0x00071950 strb r4, [r1, 0xa]                                |     *((r1 + 0xa)) = r4;
    0x00071952 movs r5, r0                                       |     r5 = r0;
    0x00071954 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x00071956 movs r0, r0                                       |     
    0x00071958 ldrb r0, [r6, 0xa]                                |     r0 = *((r6 + 0xa));
    0x0007195a movs r5, r0                                       |     r5 = r0;
    0x0007195c strb r6, [r6, 8]                                  |     *((r6 + 8)) = r6;
    0x0007195e movs r5, r0                                       |     r5 = r0;
    0x00071960 adds r4, 0xd0                                     |     r4 += 0xd0;
    0x00071962 movs r3, r0                                       |     r3 = r0;
    0x00071964 adds r4, 0xe6                                     |     r4 += 0xe6;
    0x00071966 movs r3, r0                                       |     r3 = r0;
    0x00071968 subs r2, 0x68                                     |     r2 -= 0x68;
    0x0007196a movs r3, r0                                       |     r3 = r0;
    0x0007196c ldrb r4, [r3, r2]                                 |     r4 = *((r3 + r2));
    0x0007196e movs r1, r0                                       |     r1 = r0;
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x71970 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00071970 ()                  | void fcn_00071970 (int16_t arg_30h, int16_t arg_34h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_40h, int16_t arg_44h, int16_t arg_48h) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     int16_t var_8h;
                                             |     int16_t var_ch;
                                             |     int16_t var_10h;
                                             |     int16_t var_14h;
                                             |     int16_t var_18h;
                                             |     int16_t var_20h;
                                             |     int16_t var_24h;
                                             |     if (? >= ?) {
    0x00071970 addlt fp, sl, r0, lsl r5      |         
                                             |     }
    0x00071974 ldr r4, [sp, 0x30]            |     r4 = *(arg_30h);
    0x00071976 ldr.w ip, [pc, 0x50]          |     
    0x0007197a str r4, [sp]                  |     *(sp) = r4;
    0x0007197c ldr r4, [pc, 0x4c]            |     r4 = *(0x719cc);
    0x0007197e add ip, pc                    |     ip = 0xe334c;
    0x00071980 ldr.w r4, [ip, r4]            |     
    0x00071984 ldr r4, [r4]                  |     r4 = *(0xe334c);
    0x00071986 str r4, [sp, 0x24]            |     var_24h = r4;
    0x00071988 mov.w r4, 0                   |     r4 = 0;
    0x0007198c ldr r4, [sp, 0x34]            |     r4 = *(arg_34h);
    0x0007198e str r4, [sp, 4]               |     var_4h = r4;
    0x00071990 ldr r4, [sp, 0x38]            |     r4 = *(arg_38h);
    0x00071992 str r4, [sp, 8]               |     var_8h = r4;
    0x00071994 ldr r4, [sp, 0x3c]            |     r4 = *(arg_3ch);
    0x00071996 str r4, [sp, 0xc]             |     var_ch = r4;
    0x00071998 ldr r4, [sp, 0x40]            |     r4 = *(arg_40h);
    0x0007199a str r4, [sp, 0x10]            |     var_10h = r4;
    0x0007199c ldr r4, [sp, 0x44]            |     r4 = *(arg_44h);
    0x0007199e str r4, [sp, 0x14]            |     var_14h = r4;
    0x000719a0 add r4, sp, 0x48              |     r4 += arg_48h;
    0x000719a2 str r4, [sp, 0x18]            |     var_18h = r4;
    0x000719a4 str r4, [sp, 0x20]            |     var_20h = r4;
    0x000719a6 bl 0x71828                    |     fcn_00071828 (r0, r1, r2, r3);
    0x000719aa ldr r2, [pc, 0x24]            |     
    0x000719ac ldr r3, [pc, 0x1c]            |     r3 = *(0x719cc);
    0x000719ae add r2, pc                    |     r2 = 0xe3384;
    0x000719b0 ldr r3, [r2, r3]              |     r3 = *(0xe3384);
    0x000719b2 ldr r2, [r3]                  |     r2 = *(0xe3384);
    0x000719b4 ldr r3, [sp, 0x24]            |     r3 = var_24h;
    0x000719b6 eors r2, r3                   |     r2 ^= r3;
    0x000719b8 mov.w r3, 0                   |     r3 = 0;
                                             |     if (r2 == r3) {
    0x000719bc bne 0x719c2                   |         
    0x000719be add sp, 0x28                  |         
    0x000719c0 pop {r4, pc}                  |         
                                             |     }
    0x000719c2 blx 0x927c                    |     fprintf_chk ()
    0x000719c6 nop                           |     
    0x000719c8 strb r6, [r0, 5]              |     *((r0 + 5)) = r6;
    0x000719ca movs r5, r0                   |     r5 = r0;
    0x000719cc lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x000719ce movs r0, r0                   |     
    0x000719d0 strb r6, [r2, 4]              |     *((r2 + 4)) = r6;
    0x000719d2 movs r5, r0                   |     r5 = r0;
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x719d4 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.000719d4 ()                                      | void fcn_000719d4 (int16_t arg_38h, int16_t arg_264h, int16_t arg_a5ch, int16_t arg_a88h, int16_t arg_a8ch, int16_t arg_a90h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h_2;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_24h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x000719d4 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x000719d8 mov r7, r0                                        |     r7 = r0;
    0x000719da ldr r4, [pc, 0x2f0]                               |     
    0x000719dc subw sp, sp, 0xa64                                |     __asm ("subw sp, sp, aav.0x000000ff");
    0x000719e0 ldr r0, [pc, 0x2ec]                               |     r0 = *(0x71cd0);
    0x000719e2 add r4, pc                                        |     r4 = 0xe36b4;
    0x000719e4 ldr r0, [r4, r0]                                  |     
    0x000719e6 mov r4, r1                                        |     r4 = r1;
    0x000719e8 ldr r0, [r0]                                      |     r0 = *(0xe36b4);
    0x000719ea str.w r0, [sp, 0xa5c]                             |     __asm ("str.w r0, [arg_a5ch]");
    0x000719ee mov.w r0, 0                                       |     r0 = 0;
    0x000719f2 strd r2, r3, [sp, 0x1c]                           |     __asm ("strd r2, r3, [sp, 0x1c]");
    0x000719f6 ldr.w r3, [sp, 0xa88]                             |     r3 = *(arg_a88h);
    0x000719fa str r3, [sp, 0x24]                                |     var_0h = r3;
    0x000719fc blx 0x9628                                        |     fcn_00009628 ();
    0x00071a00 ldr r3, [pc, 0x2d0]                               |     
    0x00071a02 and r2, r7, 7                                     |     r2 = r7 & 7;
    0x00071a06 ldr.w r8, [sp, 0xa8c]                             |     r8 = *(arg_a8ch);
    0x00071a0a mov r5, r0                                        |     r5 = r0;
    0x00071a0c ldr.w sb, [r0]                                    |     sb = *(r0);
    0x00071a10 add r3, pc                                        |     
    0x00071a12 ldr r3, [r3]                                      |     r3 = *(0xe36e8);
    0x00071a14 cmp r2, r3                                        |     
    0x00071a16 ble 0x71a4e                                       |     
                                                                 |     while (r3 == 8) {
                                                                 | label_0:
    0x00071a18 eor.w r0, r4, r4, asr 31                          |         r0 = r4 ^ (r4 >> 31);
    0x00071a1c sub.w r0, r0, r4, asr 31                          |         r0 -= (r4 >> 31);
    0x00071a20 uxtb r0, r0                                       |         r0 = (int8_t) r0;
    0x00071a22 rsbs r0, r0, 0                                    |         r0 -= ;
                                                                 | label_7:
    0x00071a24 ldr r2, [pc, 0x2b0]                               |         
    0x00071a26 cmp.w sb, 0                                       |         
    0x00071a2a ldr r3, [pc, 0x2a4]                               |         r3 = *(0x71cd2);
    0x00071a2c it ge                                             |         
                                                                 |         if (sb < 0) {
    0x00071a2e strge sb, [r5]                                    |             *(r5) = sb;
                                                                 |         }
    0x00071a32 add r2, pc                                        |         r2 = 0xe370e;
    0x00071a34 ldr r3, [r2, r3]                                  |         r3 = *(0xe370e);
    0x00071a36 ldr r2, [r3]                                      |         r2 = *(0xe370e);
    0x00071a38 ldr.w r3, [sp, 0xa5c]                             |         r3 = *(arg_a5ch);
    0x00071a3c eors r2, r3                                       |         r2 ^= r3;
    0x00071a3e mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00071a42 bne.w 0x71cc8                                     |             goto label_10;
                                                                 |         }
    0x00071a46 addw sp, sp, 0xa64                                |         __asm ("addw sp, sp, aav.0x000000ff");
    0x00071a4a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x00071a4c ldrh r0, [r6, 0x3e]                               |         r0 = *((r6 + 0x3e));
    0x00071a4e ldr r3, [pc, 0x28c]                               |         
    0x00071a50 add r3, pc                                        |         
    0x00071a52 ldr r3, [r3]                                      |         r3 = *(0xe3732);
    0x00071a54 cmp r3, 8                                         |         
    0x00071a56 beq 0x71a18                                       |         
                                                                 |     }
    0x00071a58 tst.w r7, 0x3f8                                   |     
                                                                 |     if ((r7 & 0x3f8) == 0) {
    0x00071a5c bne 0x71a66                                       |         
    0x00071a5e ldr r2, [pc, 0x280]                               |         
    0x00071a60 add r2, pc                                        |         
    0x00071a62 ldr r2, [r2]                                      |         r2 = *(0xe3746);
    0x00071a64 orrs r7, r2                                       |         r7 |= r2;
                                                                 |     }
    0x00071a66 cmp r3, 4                                         |     
                                                                 |     if (r3 <= 4) {
    0x00071a68 ble 0x71b5a                                       |         goto label_11;
                                                                 |     }
    0x00071a6a cmp r3, 7                                         |     
                                                                 |     if (r3 != 7) {
    0x00071a6c bne 0x71b5e                                       |         goto label_12;
                                                                 |     }
                                                                 | label_1:
    0x00071a6e ldr r3, [pc, 0x274]                               |     
    0x00071a70 ldr r2, [pc, 0x274]                               |     
    0x00071a72 add r3, pc                                        |     r3 = 0xe375c;
    0x00071a74 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00071a76 add r2, pc                                        |     
    0x00071a78 ldr r2, [r2]                                      |     r2 = *(0xe3762);
    0x00071a7a cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00071a7c bne.w 0x71c42                                     |         goto label_13;
                                                                 |     }
                                                                 | label_6:
    0x00071a80 ldr r3, [pc, 0x268]                               |     
    0x00071a82 add r3, pc                                        |     
    0x00071a84 ldr r3, [r3]                                      |     r3 = *(0xe3772);
    0x00071a86 cmp r3, 0                                         |     
                                                                 |     if (r3 < 0) {
    0x00071a88 blt 0x71b5e                                       |         goto label_12;
                                                                 |     }
                                                                 | label_5:
    0x00071a8a add r2, sp, 0x5c                                  |     r2 += arg_38h;
    0x00071a8c movs r1, 0                                        |     r1 = 0;
    0x00071a8e mov r6, r2                                        |     r6 = r2;
    0x00071a90 movs r2, 0x88                                     |     r2 = 0x88;
    0x00071a92 mov r0, r6                                        |     r0 = r6;
    0x00071a94 add.w fp, sp, 0x25c                               |     
    0x00071a98 blx 0x8c54                                        |     fcn_00008c54 ();
    0x00071a9c movs r3, 0                                        |     r3 = 0;
    0x00071a9e movs r1, 0                                        |     r1 = 0;
    0x00071aa0 strd r3, r3, [sp, 0x10]                           |     __asm ("strd r3, r3, [sp, 0x10]");
    0x00071aa4 mov r2, r4                                        |     r2 = r4;
    0x00071aa6 strd r3, r3, [sp, 8]                              |     __asm ("strd r3, r3, [sp, 8]");
    0x00071aaa mov r0, fp                                        |     r0 = fp;
    0x00071aac ldr r3, [sp, 0x24]                                |     r3 = var_0h;
    0x00071aae add.w sl, sp, 0x38                                |     sl += var_14h;
    0x00071ab2 str r6, [sp, 0x2c]                                |     var_8h = r6;
    0x00071ab4 str r6, [sp, 0x48]                                |     var_24h = r6;
    0x00071ab6 add r6, sp, 0x3c                                  |     r6 += var_18h;
    0x00071ab8 str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x00071aba ldr r3, [sp, 0x20]                                |     r3 = var_20h_2;
    0x00071abc strd r1, r1, [sp, 0x40]                           |     __asm ("strd r1, r1, [sp, 0x40]");
    0x00071ac0 strd r1, r1, [sp, 0x4c]                           |     __asm ("strd r1, r1, [sp, 0x4c]");
    0x00071ac4 str r3, [sp]                                      |     *(sp) = r3;
    0x00071ac6 add r3, sp, 0x40                                  |     r3 += var_40h;
    0x00071ac8 str r3, [sp, 0x34]                                |     var_10h = r3;
    0x00071aca strd r1, r1, [sp, 0x54]                           |     __asm ("strd r1, r1, [sp, 0x54]");
    0x00071ace ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00071ad0 str r1, [r6]                                      |     *(r6) = r1;
    0x00071ad2 mov r1, r7                                        |     r1 = r7;
    0x00071ad4 bl 0x704cc                                        |     fcn_000704cc (r0, r1, r2, r3, r4, r5, r6);
    0x00071ad8 ldr r3, [r6]                                      |     r3 = *(r6);
    0x00071ada add.w r1, sp, 0xa90                               |     r1 += arg_a90h;
    0x00071ade mov r0, fp                                        |     r0 = fp;
    0x00071ae0 str r1, [sp, 0x28]                                |     var_4h = r1;
    0x00071ae2 adds r2, r3, 1                                    |     r2 = r3 + 1;
    0x00071ae4 str r3, [sp, 0x30]                                |     var_ch = r3;
    0x00071ae6 str r2, [r6]                                      |     *(r6) = r2;
    0x00071ae8 blx 0x8f38                                        |     fcn_00008f38 ();
    0x00071aec ldrd r2, r3, [sp, 0x2c]                           |     __asm ("ldrd r2, r3, [var_8h]");
    0x00071af0 ldr r1, [sp, 0x28]                                |     r1 = var_4h;
    0x00071af2 str.w fp, [r2, r3, lsl 3]                         |     __asm ("str.w fp, [r2, r3, lsl 3]");
    0x00071af6 add.w r3, r2, r3, lsl 3                           |     r3 = r2 + (r3 << 3);
    0x00071afa mov r2, r6                                        |     r2 = r6;
    0x00071afc str r0, [r3, 4]                                   |     *((r3 + 4)) = r0;
    0x00071afe movs r3, 1                                        |     r3 = 1;
    0x00071b00 strd r8, r1, [sp, 4]                              |     __asm ("strd r8, r1, [sp, 4]");
    0x00071b04 str r4, [sp]                                      |     *(sp) = r4;
    0x00071b06 ldr r0, [sp, 0x2c]                                |     r0 = var_8h;
    0x00071b08 str.w r1, [sl]                                    |     __asm ("str.w r1, [sl]");
    0x00071b0c movs r1, 0x11                                     |     r1 = 0x11;
    0x00071b0e bl 0x7164c                                        |     r0 = fcn_0007164c (r0, r1, r2, r3, r4, r5);
    0x00071b12 cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x00071b14 bge.w 0x71c8c                                     |         goto label_14;
                                                                 |     }
    0x00071b18 ldr r3, [r6]                                      |     r3 = *(r6);
    0x00071b1a cmp r3, 1                                         |     
    0x00071b1c itt hi                                            |     
                                                                 |     if (r3 <= 1) {
    0x00071b1e movhi r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 |     if (r3 <= 1) {
    0x00071b20 strhi r3, [sp, 0x30]                              |         var_ch = r3;
                                                                 |     }
                                                                 |     if (r3 < 1) {
    0x00071b22 bls 0x71b68                                       |         goto label_15;
                                                                 |     }
                                                                 | label_8:
    0x00071b24 ldr r3, [sp, 0x2c]                                |     r3 = var_8h;
    0x00071b26 mov.w fp, 1                                       |     
    0x00071b2a str r4, [sp, 0x2c]                                |     var_8h = r4;
    0x00071b2c mov r4, r6                                        |     r4 = r6;
    0x00071b2e mov r6, r3                                        |     r6 = r3;
                                                                 |     do {
    0x00071b30 ldr r0, [r6, 8]                                   |         r0 = *((r6 + 8));
    0x00071b32 add.w fp, fp, 2                                   |         
    0x00071b36 blx 0x8dac                                        |         fcn_00008dac ();
    0x00071b3a ldr r3, [r4]                                      |         r3 = *(r4);
    0x00071b3c adds r6, 0x10                                     |         r6 += 0x10;
    0x00071b3e cmp r3, fp                                        |         
    0x00071b40 bhi 0x71b30                                       |         
                                                                 |     } while (r3 > fp);
    0x00071b42 ldrd r4, r3, [sp, 0x2c]                           |     __asm ("ldrd r4, r3, [var_8h]");
                                                                 |     if (r3 != 0) {
    0x00071b46 cbnz r3, 0x71b68                                  |         goto label_15;
                                                                 |     }
                                                                 | label_9:
    0x00071b48 ldr r3, [pc, 0x1a4]                               |     
    0x00071b4a add r3, pc                                        |     r3 = 0xe383e;
    0x00071b4c ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00071b4e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00071b50 beq.w 0x71a18                                     |         goto label_0;
                                                                 |     }
                                                                 | label_3:
    0x00071b54 bl 0x70b9c                                        |     fcn_00070b9c ();
    0x00071b58 b 0x71a18                                         |     goto label_0;
                                                                 | label_11:
    0x00071b5a cmp r3, 2                                         |     
                                                                 |     if (r3 > 2) {
    0x00071b5c bgt 0x71a6e                                       |         goto label_1;
                                                                 |     }
                                                                 | label_12:
    0x00071b5e add.w sl, sp, 0x38                                |     sl += var_14h;
    0x00071b62 add.w r3, sp, 0xa90                               |     r3 += arg_a90h;
    0x00071b66 str r3, [sp, 0x28]                                |     var_4h = r3;
                                                                 | label_15:
    0x00071b68 ldr r3, [sp, 0x28]                                |     r3 = var_4h;
    0x00071b6a str.w r3, [sl]                                    |     __asm ("str.w r3, [sl]");
    0x00071b6e eor.w r3, r4, r4, asr 31                          |     r3 = r4 ^ (r4 >> 31);
    0x00071b72 sub.w r3, r3, r4, asr 31                          |     r3 -= (r4 >> 31);
    0x00071b76 uxtb r3, r3                                       |     r3 = (int8_t) r3;
    0x00071b78 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00071b7c beq 0x71c26                                       |         goto label_16;
                                                                 |     }
    0x00071b7e ldr r2, [pc, 0x174]                               |     
    0x00071b80 add r1, sp, 0x40                                  |     r1 += var_40h;
    0x00071b82 str.w sb, [sp, 0x28]                              |     __asm ("str.w sb, [var_4h]");
    0x00071b86 add.w fp, sp, 0x25c                               |     
    0x00071b8a str r7, [sp, 0x30]                                |     var_ch = r7;
    0x00071b8c movw r6, 0x107                                    |     r6 = 0x107;
    0x00071b90 add r2, pc                                        |     r2 = 0xe388a;
    0x00071b92 str r4, [sp, 0x2c]                                |     var_8h = r4;
    0x00071b94 mov r7, r3                                        |     r7 = r3;
    0x00071b96 mov r4, r8                                        |     r4 = r8;
    0x00071b98 mov sb, r1                                        |     sb = r1;
    0x00071b9a mov r8, r2                                        |     r8 = r2;
                                                                 | label_2:
    0x00071b9c str r7, [r5]                                      |     *(r5) = r7;
    0x00071b9e movs r2, 1                                        |     r2 = 1;
    0x00071ba0 str r4, [sp]                                      |     *(sp) = r4;
    0x00071ba2 mov r0, fp                                        |     r0 = fp;
    0x00071ba4 ldr.w r3, [sl]                                    |     r3 = *(sl);
    0x00071ba8 str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x00071baa str.w r3, [sb]                                    |     __asm ("str.w r3, [sb]");
    0x00071bae mov.w r3, 0x800                                   |     r3 = 0x800;
    0x00071bb2 mov r1, r3                                        |     r1 = r3;
    0x00071bb4 blx 0x9074                                        |     fcn_00009074 ();
    0x00071bb8 mov r1, r8                                        |     r1 = r8;
    0x00071bba mov r0, fp                                        |     r0 = fp;
    0x00071bbc bl 0x803c0                                        |     r0 = fcn_000803c0 (r0, r1);
    0x00071bc0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00071bc2 bne 0x71c64                                       |         goto label_17;
                                                                 |     }
    0x00071bc4 mov r0, r4                                        |     r0 = r4;
    0x00071bc6 add r4, sp, 0x5c                                  |     r4 += arg_38h;
    0x00071bc8 mov r2, r4                                        |     r2 = r4;
    0x00071bca movs r1, 0x80                                     |     r1 = 0x80;
    0x00071bcc blx 0x917c                                        |     r0 = fcn_0000917c ();
    0x00071bd0 cmp r0, 0x7f                                      |     
                                                                 |     if (r0 > 0x7f) {
    0x00071bd2 bhi 0x71c4e                                       |         goto label_18;
                                                                 |     }
    0x00071bd4 ldr.w r1, [sl]                                    |     r1 = *(sl);
                                                                 |     if (r0 == 0) {
    0x00071bd8 cbz r0, 0x71c16                                   |         goto label_19;
                                                                 |     }
    0x00071bda add.w r0, r4, r0, lsl 2                           |     r0 = r4 + (r0 << 2);
    0x00071bde mov r2, r4                                        |     r2 = r4;
                                                                 |     do {
    0x00071be0 ldr r3, [r2], 4                                   |         r3 = *(r2);
                                                                 |         r2 += 4;
    0x00071be4 lsls r4, r3, 0x14                                 |         r4 = r3 << 0x14;
                                                                 |         if (r4 >= r3) {
    0x00071be6 bmi 0x71c10                                       |             
    0x00071be8 cmp.w r3, 0x100                                   |             
                                                                 |             if (r3 == 0x100) {
    0x00071bec beq 0x71c38                                       |                 goto label_20;
                                                                 |             }
                                                                 |             if (r3 <= 0x100) {
    0x00071bee bgt 0x71c04                                       |                 
    0x00071bf0 cmp r3, 7                                         |                 
                                                                 |                 if (r3 > 7) {
    0x00071bf2 bhi 0x71cb2                                       |                     goto label_21;
                                                                 |                 }
    0x00071bf4 subs r3, 2                                        |                 r3 -= 2;
    0x00071bf6 cmp r3, 5                                         |                 
                                                                 |                 if (r3 > 5) {
    0x00071bf8 bhi 0x71c10                                       |                     goto label_22;
                                                                 |                 }
                                                                 |                 /* switch table (6 cases) at 0x71bfe */
    0x00071bfa tbb [pc, r3]                                      |                 __asm ("tbb aav.0x000000ff");
                                                                 |             }
    0x00071c04 cmp.w r3, 0x200                                   |             
                                                                 |             if (r3 == 0x200) {
    0x00071c08 beq 0x71c10                                       |                 goto label_22;
                                                                 |             }
    0x00071c0a cmp.w r3, 0x400                                   |             
                                                                 |             if (r3 != 0x400) {
    0x00071c0e bne 0x71c34                                       |                 goto label_23;
                                                                 |             }
                                                                 |         }
                                                                 | label_22:
    0x00071c10 adds r1, 4                                        |         r1 += 4;
                                                                 | label_4:
    0x00071c12 cmp r2, r0                                        |         
    0x00071c14 bne 0x71be0                                       |         
                                                                 |     } while (r2 != r0);
                                                                 | label_19:
    0x00071c16 ldr r4, [r1]                                      |     r4 = *(r1);
    0x00071c18 adds r1, 4                                        |     r1 += 4;
    0x00071c1a str.w r1, [sl]                                    |     __asm ("str.w r1, [sl]");
    0x00071c1c asrs r0, r0, 0x20                                 |     r0 >>= 0x20;
    0x00071c1e cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00071c20 bne 0x71b9c                                       |         goto label_2;
                                                                 |     }
    0x00071c22 ldrd sb, r4, [sp, 0x28]                           |     __asm ("ldrd sb, r4, [var_4h]");
                                                                 | label_16:
    0x00071c26 ldr r3, [pc, 0xd0]                                |     
    0x00071c28 add r3, pc                                        |     r3 = 0xe3926;
    0x00071c2a ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00071c2c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00071c2e beq.w 0x71a18                                     |         goto label_0;
                                                                 |     }
    0x00071c32 b 0x71b54                                         |     goto label_3;
                                                                 | label_23:
    0x00071c34 cmp r3, r6                                        |     
                                                                 |     if (r3 != r6) {
    0x00071c36 bne 0x71cb2                                       |         goto label_21;
                                                                 |     }
                                                                 | label_20:
    0x00071c38 adds r1, 7                                        |     r1 += 7;
    0x00071c3a bic r1, r1, 7                                     |     r1 = BIT_MASK (r1, 7);
    0x00071c3e adds r1, 8                                        |     r1 += 8;
    0x00071c40 b 0x71c12                                         |     goto label_4;
                                                                 | label_13:
    0x00071c42 cmp r2, 0                                         |     
                                                                 |     if (r2 >= 0) {
    0x00071c44 bge.w 0x71a8a                                     |         goto label_5;
                                                                 |     }
    0x00071c48 bl 0x70818                                        |     fcn_00070818 ();
    0x00071c4c b 0x71a80                                         |     goto label_6;
                                                                 | label_18:
    0x00071c4e ldr r1, [pc, 0xac]                                |     
    0x00071c50 movw r2, 0x3f7                                    |     r2 = 0x3f7;
    0x00071c54 ldr r3, [pc, 0xa8]                                |     
    0x00071c56 ldr r0, [pc, 0xac]                                |     
    0x00071c58 add r1, pc                                        |     r1 = 0xe395a;
    0x00071c5a add r3, pc                                        |     r3 = 0xe395e;
    0x00071c5c adds r1, 7                                        |     r1 += 7;
    0x00071c5e add r0, pc                                        |     r0 = 0xe3968;
    0x00071c60 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
    0x00071c62 invalid                                           |     
                                                                 | label_17:
    0x00071c64 ldrd r4, r7, [sp, 0x2c]                           |     __asm ("ldrd r4, r7, [var_8h]");
    0x00071c68 ldr r3, [sp, 0x24]                                |     r3 = var_0h;
    0x00071c6a ldr.w sb, [sp, 0x28]                              |     sb = var_4h;
    0x00071c6e mov r1, r4                                        |     r1 = r4;
    0x00071c70 movs r4, 0                                        |     r4 = 0;
    0x00071c72 strd r4, r4, [sp, 0xc]                            |     __asm ("strd r4, r4, [sp, 0xc]");
    0x00071c76 mov r0, r7                                        |     r0 = r7;
    0x00071c78 strd r4, r4, [sp, 4]                              |     __asm ("strd r4, r4, [sp, 4]");
    0x00071c7c add r4, sp, 0x264                                 |     r4 += arg_264h;
    0x00071c7e str r3, [sp]                                      |     *(sp) = r3;
    0x00071c80 str r4, [sp, 0x14]                                |     var_14h_2 = r4;
    0x00071c82 ldrd r2, r3, [sp, 0x1c]                           |     __asm ("ldrd r2, r3, [var_1ch]");
    0x00071c86 bl 0x70eec                                        |     fcn_00070eec (r0, r1, r2, r3, r4, r5, r6);
    0x00071c8a b 0x71a24                                         |     goto label_7;
                                                                 | label_14:
    0x00071c8c ldr r3, [pc, 0x78]                                |     
    0x00071c8e ldr r2, [sp, 0x34]                                |     r2 = var_10h;
    0x00071c90 add r3, pc                                        |     r3 = 0xe399c;
    0x00071c92 ldr r0, [r3]                                      |     r0 = *(0xe399c);
    0x00071c94 mov r1, r2                                        |     r1 = r2;
    0x00071c96 ldr r3, [r6]                                      |     r3 = *(r6);
    0x00071c98 str r3, [r2, 0xc]                                 |     *((r2 + 0xc)) = r3;
    0x00071c9a mov.w r2, 0x4000                                  |     r2 = 0x4000;
    0x00071c9e blx 0x8db8                                        |     fcn_00008db8 ();
    0x00071ca2 ldr r3, [r6]                                      |     r3 = *(r6);
    0x00071ca4 cmp r3, 1                                         |     
    0x00071ca6 itt hi                                            |     
                                                                 |     if (r3 <= 1) {
    0x00071ca8 movhi r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r3 > 1) {
    0x00071caa strhi r3, [sp, 0x30]                              |         var_ch = r3;
                                                                 |         goto label_24;
                                                                 |     }
                                                                 |     if (r3 > 1) {
                                                                 | label_24:
    0x00071cac bhi.w 0x71b24                                     |         goto label_8;
                                                                 |     }
    0x00071cb0 b 0x71b48                                         |     goto label_9;
                                                                 | label_21:
    0x00071cb2 ldr r1, [pc, 0x58]                                |     
    0x00071cb4 movw r2, 0x3f7                                    |     r2 = 0x3f7;
    0x00071cb8 ldr r3, [pc, 0x54]                                |     
    0x00071cba ldr r0, [pc, 0x58]                                |     
    0x00071cbc add r1, pc                                        |     r1 = 0xe39ce;
    0x00071cbe add r3, pc                                        |     r3 = 0xe39d2;
    0x00071cc0 adds r1, 7                                        |     r1 += 7;
    0x00071cc2 add r0, pc                                        |     r0 = 0xe39dc;
    0x00071cc4 bl 0x71614                                        |     r0 = fcn_00071614 (r0, r1, r2, r3);
                                                                 | label_10:
    0x00071cc8 blx 0x927c                                        |     fprintf_chk ()
    0x00071ccc strb r2, [r4, 3]                                  |     *((r4 + 3)) = r2;
    0x00071cce movs r5, r0                                       |     r5 = r0;
    0x00071cd0 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x00071cd2 movs r0, r0                                       |     
    0x00071cd4 ldrb r4, [r0, 4]                                  |     r4 = *((r0 + 4));
    0x00071cd6 movs r5, r0                                       |     r5 = r0;
    0x00071cd8 strb r2, [r2, 2]                                  |     *((r2 + 2)) = r2;
    0x00071cda movs r5, r0                                       |     r5 = r0;
    0x00071cdc ldrh r4, [r5, 0x1c]                               |     r4 = *((r5 + 0x1c));
    0x00071cde movs r5, r0                                       |     r5 = r0;
    0x00071ce0 ldrb r0, [r6, 2]                                  |     r0 = *((r6 + 2));
    0x00071ce2 movs r5, r0                                       |     r5 = r0;
    0x00071ce4 ldrh r6, [r1, 0x1c]                               |     r6 = *((r1 + 0x1c));
    0x00071ce6 movs r5, r0                                       |     r5 = r0;
    0x00071ce8 ldrb r2, [r2, 2]                                  |     r2 = *((r2 + 2));
    0x00071cea movs r5, r0                                       |     r5 = r0;
    0x00071cec ldrb r6, [r0, 2]                                  |     r6 = *((r0 + 2));
    0x00071cee movs r5, r0                                       |     r5 = r0;
    0x00071cf0 ldrh r6, [r6, 0x14]                               |     r6 = *((r6 + 0x14));
    0x00071cf2 movs r5, r0                                       |     r5 = r0;
    0x00071cf4 adds r3, 0xb0                                     |     r3 += 0xb0;
    0x00071cf6 movs r3, r0                                       |     r3 = r0;
    0x00071cf8 ldrh r0, [r3, 0xe]                                |     r0 = *((r3 + 0xe));
    0x00071cfa movs r5, r0                                       |     r5 = r0;
    0x00071cfc adds r1, 0xcc                                     |     r1 += 0xcc;
    0x00071cfe movs r3, r0                                       |     r3 = r0;
    0x00071d00 adds r7, 0x9a                                     |     r7 += 0x9a;
    0x00071d02 movs r3, r0                                       |     r3 = r0;
    0x00071d04 adds r2, 0x6a                                     |     r2 += 0x6a;
    0x00071d06 movs r3, r0                                       |     r3 = r0;
    0x00071d08 strb r0, [r7, 0x19]                               |     *((r7 + 0x19)) = r0;
    0x00071d0a movs r5, r0                                       |     r5 = r0;
    0x00071d0c adds r1, 0x68                                     |     r1 += 0x68;
    0x00071d0e movs r3, r0                                       |     r3 = r0;
    0x00071d10 adds r7, 0x36                                     |     r7 += 0x36;
    0x00071d12 movs r3, r0                                       |     r3 = r0;
    0x00071d14 adds r2, 0x22                                     |     r2 += 0x22;
    0x00071d16 movs r3, r0                                       |     r3 = r0;
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x71dc0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00071dc0 ()                  | void fcn_00071dc0 (int16_t arg1) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     int16_t var_8h;
                                             |     int16_t var_0h_2;
                                             |     int16_t var_4h_2;
                                             |     int16_t var_8h_2;
                                             |     int16_t var_10h;
                                             |     int16_t var_14h;
                                             |     r0 = arg1;
    0x00071dc0 blmi 0xfe444800               |     __asm ("blmi aav.0x00056cfc");
    0x00071dc4 push {r4, lr}                 |     
    0x00071dc6 sub sp, 0x18                  |     
    0x00071dc8 add r2, pc                    |     r2 += pc;
    0x00071dca ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x00071dcc ldr r3, [r3]                  |     r3 = *(r3);
    0x00071dce str r3, [sp, 0x14]            |     var_14h = r3;
    0x00071dd0 mov.w r3, 0                   |     r3 = 0;
    0x00071dd4 bl 0x76a30                    |     r0 = fcn_00076a30 (r0);
    0x00071dd8 cmp r0, 1                     |     
                                             |     if (r0 != 1) {
    0x00071dda beq 0x71df4                   |         
    0x00071ddc ldr r0, [pc, 0x224]           |         
    0x00071dde add r0, pc                    |         r0 = 0xe3de6;
    0x00071de0 blx 0x8b80                    |         r0 = ftello64 ();
    0x00071de4 mov r4, r0                    |         r4 = r0;
                                             |         if (r0 == 0) {
    0x00071de6 cbz r0, 0x71e00               |             goto label_7;
                                             |         }
    0x00071de8 ldrb r3, [r0]                 |         r3 = *(r0);
    0x00071dea cmp r3, 0x2a                  |         
                                             |         if (r3 != 0x2a) {
    0x00071dec bne 0x71e96                   |             goto label_21;
                                             |         }
    0x00071dee ldrb r3, [r0, 1]              |         r3 = *((r0 + 1));
    0x00071df0 cmp r3, 0                     |         
                                             |         if (r3 != 0) {
    0x00071df2 bne 0x71e96                   |             goto label_21;
                                             |         }
                                             |     }
                                             | label_0:
    0x00071df4 ldr r0, [pc, 0x210]           |     
    0x00071df6 movs r2, 1                    |     r2 = 1;
    0x00071df8 movs r1, 0                    |     r1 = 0;
    0x00071dfa add r0, pc                    |     r0 = 0xe3e06;
    0x00071dfc bl 0x763c4                    |     fcn_000763c4 (r0, r1, r2);
                                             |     do {
                                             | label_7:
    0x00071e00 ldr r0, [pc, 0x208]           |         
    0x00071e02 add r0, pc                    |         r0 = 0xe3e12;
    0x00071e04 blx 0x8b80                    |         r0 = ftello64 ();
    0x00071e08 mov r4, r0                    |         r4 = r0;
                                             |         if (r0 != 0) {
    0x00071e0a cbz r0, 0x71e16               |             
    0x00071e0c bl 0x71dac                    |             r0 = fcn_00071dac (r0);
    0x00071e10 cmp r0, 0                     |             
                                             |             if (r0 < 0) {
    0x00071e12 blt.w 0x71f9a                 |                 goto label_22;
                                             |             }
    0x00071e14 strh r2, [r0, 6]              |             *((r0 + 6)) = r2;
                                             |         }
                                             | label_6:
    0x00071e16 ldr r0, [pc, 0x1f8]           |         
    0x00071e18 add r0, pc                    |         r0 = 0xe3e2e;
    0x00071e1a blx 0x8b80                    |         r0 = ftello64 ();
    0x00071e1e mov r4, r0                    |         r4 = r0;
                                             |         if (r0 != 0) {
    0x00071e20 cbz r0, 0x71e2c               |             
    0x00071e22 bl 0x71600                    |             r0 = fcn_00071600 (r0);
    0x00071e26 cmp r0, 0                     |             
                                             |             if (r0 < 0) {
    0x00071e28 blt.w 0x71f6a                 |                 goto label_23;
                                             |             }
                                             |         }
                                             | label_5:
    0x00071e2c ldr r0, [pc, 0x1e4]           |         
    0x00071e2e add r0, pc                    |         r0 = 0xe3e46;
    0x00071e30 blx 0x8b80                    |         r0 = ftello64 ();
    0x00071e34 mov r4, r0                    |         r4 = r0;
                                             |         if (r0 != 0) {
    0x00071e36 cbz r0, 0x71e40               |             
    0x00071e38 bl 0x71d3c                    |             r0 = fcn_00071d3c (r0);
    0x00071e3c cmp r0, 0                     |             
                                             |             if (r0 < 0) {
    0x00071e3e blt 0x71f3a                   |                 goto label_24;
                                             |             }
                                             |         }
                                             | label_4:
    0x00071e40 ldr r0, [pc, 0x1d4]           |         
    0x00071e42 add r0, pc                    |         r0 = 0xe3e5e;
    0x00071e44 blx 0x8b80                    |         r0 = ftello64 ();
    0x00071e48 mov r4, r0                    |         r4 = r0;
                                             |         if (r0 != 0) {
    0x00071e4a cbz r0, 0x71e54               |             
    0x00071e4c bl 0x71d54                    |             r0 = fcn_00071d54 (r0);
    0x00071e50 cmp r0, 0                     |             
                                             |             if (r0 < 0) {
    0x00071e52 blt 0x71f0c                   |                 goto label_25;
                                             |             }
                                             |         }
                                             | label_3:
    0x00071e54 ldr r0, [pc, 0x1c4]           |         
    0x00071e56 add r0, pc                    |         r0 = 0xe3e76;
    0x00071e58 blx 0x8b80                    |         r0 = ftello64 ();
    0x00071e5c mov r4, r0                    |         r4 = r0;
                                             |         if (r0 != 0) {
    0x00071e5e cbz r0, 0x71e68               |             
    0x00071e60 bl 0x71d6c                    |             r0 = fcn_00071d6c (r0);
    0x00071e64 cmp r0, 0                     |             
                                             |             if (r0 < 0) {
    0x00071e66 blt 0x71ede                   |                 goto label_26;
                                             |             }
                                             |         }
                                             | label_2:
    0x00071e68 ldr r0, [pc, 0x1b4]           |         
    0x00071e6a add r0, pc                    |         r0 = 0xe3e8e;
    0x00071e6c blx 0x8b80                    |         r0 = ftello64 ();
    0x00071e70 mov r4, r0                    |         r4 = r0;
                                             |         if (r0 != 0) {
    0x00071e72 cbz r0, 0x71e7c               |             
    0x00071e74 bl 0x71d84                    |             r0 = fcn_00071d84 (r0);
    0x00071e78 cmp r0, 0                     |             
                                             |             if (r0 < 0) {
    0x00071e7a blt 0x71eb0                   |                 goto label_27;
                                             |             }
                                             |         }
                                             | label_1:
    0x00071e7c ldr r2, [pc, 0x1a4]           |         
    0x00071e7e ldr r3, [pc, 0x180]           |         r3 = *(0x72002);
    0x00071e80 add r2, pc                    |         r2 = 0xe3ea8;
    0x00071e82 ldr r3, [r2, r3]              |         r3 = *(0xe3ea8);
    0x00071e84 ldr r2, [r3]                  |         r2 = *(0xe3ea8);
    0x00071e86 ldr r3, [sp, 0x14]            |         r3 = var_14h;
    0x00071e88 eors r2, r3                   |         r2 ^= r3;
    0x00071e8a mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00071e8e bne.w 0x71ff6                 |             goto label_28;
                                             |         }
    0x00071e92 add sp, 0x18                  |         
    0x00071e94 pop {r4, pc}                  |         
                                             | label_21:
    0x00071e96 add r1, sp, 0x10              |         r1 += var_10h;
    0x00071e98 mov r0, r4                    |         r0 = r4;
    0x00071e9a bl 0x74584                    |         r0 = fcn_00074584 (r0, r1);
    0x00071e9e cmp r0, 0                     |         
                                             |         if (r0 < 0) {
    0x00071ea0 blt.w 0x71fca                 |             goto label_29;
                                             |         }
    0x00071ea4 bl 0x76a30                    |         fcn_00076a30 (r0);
    0x00071ea8 ldr r3, [sp, 0x10]            |         r3 = var_10h;
    0x00071eaa cmp r0, r3                    |         
    0x00071eac bne 0x71e00                   |         
                                             |     } while (r0 != r3);
    0x00071eae b 0x71df4                     |     goto label_0;
                                             | label_27:
    0x00071eb0 bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x00071eb4 cmp r0, 3                     |     
                                             |     if (r0 <= 3) {
    0x00071eb6 ble 0x71e7c                   |         goto label_1;
                                             |     }
    0x00071eb8 ldr r2, [pc, 0x16c]           |     
    0x00071eba movw r3, 0x4c6                |     r3 = 0x4c6;
    0x00071ebe ldr r1, [pc, 0x16c]           |     
    0x00071ec0 movs r0, 4                    |     r0 = 4;
    0x00071ec2 ldr.w ip, [pc, 0x16c]         |     
    0x00071ec4 stm r1!, {r2, r3, r5, r6}     |     *(r1!) = r2;
                                             |     *((r1! + 4)) = r3;
                                             |     *((r1! + 8)) = r5;
                                             |     *((r1! + 12)) = r6;
    0x00071ec6 add r2, pc                    |     r2 = 0xe3ef2;
    0x00071ec8 str r4, [sp, 8]               |     var_8h_2 = r4;
    0x00071eca add r1, pc                    |     r1 = 0xe3efc;
    0x00071ecc adds r2, 7                    |     r2 += 7;
    0x00071ece add ip, pc                    |     ip = 0xe3f04;
    0x00071ed0 str r1, [sp, 4]               |     var_4h_2 = r1;
    0x00071ed2 str.w ip, [sp]                |     __asm ("str.w ip, [sp]");
    0x00071ed6 movs r1, 0                    |     r1 = 0;
    0x00071ed8 bl 0x71448                    |     fcn_00071448 ();
    0x00071edc b 0x71e7c                     |     goto label_1;
                                             | label_26:
    0x00071ede bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x00071ee2 cmp r0, 3                     |     
                                             |     if (r0 <= 3) {
    0x00071ee4 ble 0x71e68                   |         goto label_2;
                                             |     }
    0x00071ee6 ldr r2, [pc, 0x14c]           |     
    0x00071ee8 movw r3, 0x4c2                |     r3 = 0x4c2;
    0x00071eec ldr r1, [pc, 0x148]           |     
    0x00071eee movs r0, 4                    |     r0 = 4;
    0x00071ef0 ldr.w ip, [pc, 0x148]         |     
    0x00071ef4 add r2, pc                    |     r2 = 0xe3f2e;
    0x00071ef6 str r4, [sp, 8]               |     var_8h_2 = r4;
    0x00071ef8 add r1, pc                    |     r1 = 0xe3f34;
    0x00071efa adds r2, 7                    |     r2 += 7;
    0x00071efc add ip, pc                    |     ip = 0xe3f3c;
    0x00071efe str r1, [sp, 4]               |     var_4h_2 = r1;
    0x00071f00 str.w ip, [sp]                |     __asm ("str.w ip, [sp]");
    0x00071f04 movs r1, 0                    |     r1 = 0;
    0x00071f06 bl 0x71448                    |     fcn_00071448 ();
    0x00071f0a b 0x71e68                     |     goto label_2;
                                             | label_25:
    0x00071f0c bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x00071f10 cmp r0, 3                     |     
                                             |     if (r0 <= 3) {
    0x00071f12 ble 0x71e54                   |         goto label_3;
                                             |     }
    0x00071f14 ldr r2, [pc, 0x128]           |     
    0x00071f16 movw r3, 0x4be                |     r3 = 0x4be;
    0x00071f1a ldr r1, [pc, 0x128]           |     
    0x00071f1c movs r0, 4                    |     r0 = 4;
    0x00071f1e ldr.w ip, [pc, 0x128]         |     
    0x00071f22 add r2, pc                    |     r2 = 0xe3f66;
    0x00071f24 str r4, [sp, 8]               |     var_8h_2 = r4;
    0x00071f26 add r1, pc                    |     r1 = 0xe3f70;
    0x00071f28 adds r2, 7                    |     r2 += 7;
    0x00071f2a add ip, pc                    |     ip = 0xe3f78;
    0x00071f2c str r1, [sp, 4]               |     var_4h_2 = r1;
    0x00071f2e str.w ip, [sp]                |     __asm ("str.w ip, [sp]");
    0x00071f32 movs r1, 0                    |     r1 = 0;
    0x00071f34 bl 0x71448                    |     fcn_00071448 ();
    0x00071f38 b 0x71e54                     |     goto label_3;
                                             | label_24:
    0x00071f3a bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x00071f3e cmp r0, 3                     |     
                                             |     if (r0 <= 3) {
    0x00071f40 ble.w 0x71e40                 |         goto label_4;
                                             |     }
    0x00071f44 ldr r2, [pc, 0x104]           |     
    0x00071f46 movw r3, 0x4ba                |     r3 = 0x4ba;
    0x00071f4a ldr r1, [pc, 0x104]           |     
    0x00071f4c movs r0, 4                    |     r0 = 4;
    0x00071f4e ldr.w ip, [pc, 0x104]         |     
    0x00071f52 add r2, pc                    |     r2 = 0xe3fa2;
    0x00071f54 str r4, [sp, 8]               |     var_8h_2 = r4;
    0x00071f56 add r1, pc                    |     r1 = 0xe3fac;
    0x00071f58 adds r2, 7                    |     r2 += 7;
    0x00071f5a add ip, pc                    |     ip = 0xe3fb4;
    0x00071f5c str r1, [sp, 4]               |     var_4h_2 = r1;
    0x00071f5e str.w ip, [sp]                |     __asm ("str.w ip, [sp]");
    0x00071f62 movs r1, 0                    |     r1 = 0;
    0x00071f64 bl 0x71448                    |     fcn_00071448 ();
    0x00071f68 b 0x71e40                     |     goto label_4;
                                             | label_23:
    0x00071f6a bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x00071f6e cmp r0, 3                     |     
                                             |     if (r0 <= 3) {
    0x00071f70 ble.w 0x71e2c                 |         goto label_5;
                                             |     }
    0x00071f72 add r7, sp, 0x170             |     r7 = sp + 0x170;
    0x00071f74 ldr r2, [pc, 0xe0]            |     
    0x00071f76 movw r3, 0x4b6                |     r3 = 0x4b6;
    0x00071f7a ldr r1, [pc, 0xe0]            |     
    0x00071f7c movs r0, 4                    |     r0 = 4;
    0x00071f7e ldr.w ip, [pc, 0xe0]          |     
    0x00071f82 add r2, pc                    |     r2 = 0xe3fde;
    0x00071f84 str r4, [sp, 8]               |     var_8h_2 = r4;
    0x00071f86 add r1, pc                    |     r1 = 0xe3fe8;
    0x00071f88 adds r2, 7                    |     r2 += 7;
    0x00071f8a add ip, pc                    |     ip = 0xe3ff0;
    0x00071f8c str r1, [sp, 4]               |     var_4h_2 = r1;
    0x00071f8e str.w ip, [sp]                |     __asm ("str.w ip, [sp]");
    0x00071f92 movs r1, 0                    |     r1 = 0;
    0x00071f94 bl 0x71448                    |     fcn_00071448 ();
    0x00071f98 b 0x71e2c                     |     goto label_5;
                                             | label_22:
    0x00071f9a bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x00071f9e cmp r0, 3                     |     
                                             |     if (r0 <= 3) {
    0x00071fa0 ble.w 0x71e16                 |         goto label_6;
                                             |     }
    0x00071fa4 ldr r2, [pc, 0xbc]            |     
    0x00071fa6 movw r3, 0x4b2                |     r3 = 0x4b2;
    0x00071faa ldr r1, [pc, 0xbc]            |     
    0x00071fac movs r0, 4                    |     r0 = 4;
    0x00071fae ldr.w ip, [pc, 0xbc]          |     
    0x00071fb2 add r2, pc                    |     r2 = 0xe401a;
    0x00071fb4 str r4, [sp, 8]               |     var_8h_2 = r4;
    0x00071fb6 add r1, pc                    |     r1 = 0xe4024;
    0x00071fb8 adds r2, 7                    |     r2 += 7;
    0x00071fba add ip, pc                    |     ip = 0xe402c;
    0x00071fbc str r1, [sp, 4]               |     var_4h_2 = r1;
    0x00071fbe str.w ip, [sp]                |     __asm ("str.w ip, [sp]");
    0x00071fc2 movs r1, 0                    |     r1 = 0;
    0x00071fc4 bl 0x71448                    |     fcn_00071448 ();
    0x00071fc8 b 0x71e16                     |     goto label_6;
                                             | label_29:
    0x00071fca bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x00071fce cmp r0, 6                     |     
                                             |     if (r0 <= 6) {
    0x00071fd0 ble.w 0x71e00                 |         goto label_7;
                                             |     }
    0x00071fd4 ldr r2, [pc, 0x98]            |     
    0x00071fd6 movw r3, 0x4a1                |     r3 = 0x4a1;
    0x00071fda ldr r1, [pc, 0x98]            |     
    0x00071fdc ldr r0, [pc, 0x98]            |     
    0x00071fde add r2, pc                    |     r2 = 0xe4052;
    0x00071fe0 str r4, [sp, 8]               |     var_8h_2 = r4;
    0x00071fe2 add r1, pc                    |     r1 = 0xe405c;
    0x00071fe4 adds r2, 7                    |     r2 += 7;
    0x00071fe6 add r0, pc                    |     r0 = 0xe4062;
    0x00071fe8 str r1, [sp, 4]               |     var_4h_2 = r1;
    0x00071fea str r0, [sp]                  |     *(sp) = r0;
    0x00071fec movs r1, 0                    |     r1 = 0;
    0x00071fee movs r0, 7                    |     r0 = 7;
    0x00071ff0 bl 0x71448                    |     fcn_00071448 ();
    0x00071ff4 b 0x71e00                     |     goto label_7;
                                             | label_28:
    0x00071ff6 blx 0x927c                    |     fprintf_chk ()
    0x00071ffa nop                           |     
    0x00071ffc ldr r4, [r7, 0x4c]            |     r4 = *((r7 + 0x4c));
    0x00071ffe movs r5, r0                   |     r5 = r0;
    0x00072000 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00072002 movs r0, r0                   |     
    0x00072004 adds r1, 0x6e                 |     r1 += 0x6e;
    0x00072006 movs r3, r0                   |     r3 = r0;
    0x00072008 lsls r7, r7, 9                |     r7 <<= 9;
    0x0007200a movs r0, r0                   |     
    0x0007200c adds r1, 0x92                 |     r1 += 0x92;
    0x0007200e movs r3, r0                   |     r3 = r0;
    0x00072010 adds r1, 0xbc                 |     r1 += 0xbc;
    0x00072012 movs r3, r0                   |     r3 = r0;
    0x00072014 adds r1, 0xe6                 |     r1 += 0xe6;
    0x00072016 movs r3, r0                   |     r3 = r0;
    0x00072018 adds r2, 0x12                 |     r2 += 0x12;
    0x0007201a movs r3, r0                   |     r3 = r0;
    0x0007201c adds r2, 0x46                 |     r2 += 0x46;
    0x0007201e movs r3, r0                   |     r3 = r0;
    0x00072020 adds r2, 0x72                 |     r2 += 0x72;
    0x00072022 movs r3, r0                   |     r3 = r0;
    0x00072024 ldr r4, [r0, 0x44]            |     r4 = *((r0 + 0x44));
    0x00072026 movs r5, r0                   |     r5 = r0;
    0x00072028 cmp r7, 0x5e                  |     
    0x0007202a movs r3, r0                   |     r3 = r0;
    0x0007202c adds r2, 0x22                 |     r2 += 0x22;
    0x0007202e movs r3, r0                   |     r3 = r0;
    0x00072030 adds r5, 0x9e                 |     r5 += 0x9e;
    0x00072032 movs r3, r0                   |     r3 = r0;
    0x00072034 cmp r7, 0x30                  |     
    0x00072036 movs r3, r0                   |     r3 = r0;
    0x00072038 adds r1, 0xb8                 |     r1 += 0xb8;
    0x0007203a movs r3, r0                   |     r3 = r0;
    0x0007203c adds r5, 0x70                 |     r5 += 0x70;
    0x0007203e movs r3, r0                   |     r3 = r0;
    0x00072040 cmp r7, 2                     |     
    0x00072042 movs r3, r0                   |     r3 = r0;
    0x00072044 adds r1, 0x46                 |     r1 += 0x46;
    0x00072046 movs r3, r0                   |     r3 = r0;
    0x00072048 adds r5, 0x42                 |     r5 += 0x42;
    0x0007204a movs r3, r0                   |     r3 = r0;
    0x0007204c cmp r6, 0xd2                  |     
    0x0007204e movs r3, r0                   |     r3 = r0;
    0x00072050 adds r0, 0xd2                 |     r0 += 0xd2;
    0x00072052 movs r3, r0                   |     r3 = r0;
    0x00072054 adds r5, 0x12                 |     r5 += 0x12;
    0x00072056 movs r3, r0                   |     r3 = r0;
    0x00072058 cmp r6, 0xa2                  |     
    0x0007205a movs r3, r0                   |     r3 = r0;
    0x0007205c adds r0, 0x62                 |     r0 += 0x62;
    0x0007205e movs r3, r0                   |     r3 = r0;
    0x00072060 adds r4, 0xe2                 |     r4 += 0xe2;
    0x00072062 movs r3, r0                   |     r3 = r0;
    0x00072064 cmp r6, 0x72                  |     
    0x00072066 movs r3, r0                   |     r3 = r0;
    0x00072068 cmp r7, 0xf2                  |     
    0x0007206a movs r3, r0                   |     r3 = r0;
    0x0007206c adds r4, 0xb2                 |     r4 += 0xb2;
    0x0007206e movs r3, r0                   |     r3 = r0;
    0x00072070 cmp r6, 0x46                  |     
    0x00072072 movs r3, r0                   |     r3 = r0;
    0x00072074 cmp r7, 0x7e                  |     
    0x00072076 movs r3, r0                   |     r3 = r0;
    0x00072078 adds r4, 0x36                 |     r4 += 0x36;
    0x0007207a movs r3, r0                   |     r3 = r0;
    0x0007207c push {r4, r5, lr}             |     
    0x0007207e mov r4, r1                    |     r4 = r1;
    0x00072080 ldr r1, [pc, 0x1e0]           |     
    0x00072082 sub sp, 0x14                  |     
    0x00072084 mov r5, r0                    |     r5 = r0;
    0x00072086 add r1, pc                    |     r1 = 0xe42ee;
    0x00072088 blx 0x95e0                    |     r0 = fcn_000095e0 ();
                                             |     if (r0 != 0) {
    0x0007208c cbnz r0, 0x720de              |         goto label_30;
                                             |     }
    0x0007208e cmp r4, 0                     |     
                                             |     if (r4 == 0) {
    0x00072090 beq 0x72138                   |         goto label_31;
                                             |     }
    0x00072092 ldr r1, [pc, 0x1d4]           |     
    0x00072094 mov r0, r5                    |     r0 = r5;
    0x00072096 add r1, pc                    |     r1 = 0xe4304;
    0x00072098 bl 0x765f0                    |     r0 = fcn_000765f0 (r0);
    0x0007209c cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x0007209e beq 0x72108                   |         goto label_32;
                                             |     }
                                             | label_8:
    0x000720a0 mov r0, r4                    |     r0 = r4;
    0x000720a2 bl 0x71dac                    |     r0 = fcn_00071dac (r0);
    0x000720a6 cmp r0, 0                     |     
    0x000720a8 blt 0x720b0                   |     
                                             |     while (r0 <= 3) {
                                             | label_9:
    0x000720aa movs r0, 0                    |         r0 = 0;
    0x000720ac add sp, 0x14                  |         
    0x000720ae pop {r4, r5, pc}              |         
    0x000720b0 bl 0x70bf8                    |         r0 = fcn_00070bf8 ();
    0x000720b4 cmp r0, 3                     |         
    0x000720b6 ble 0x720aa                   |         
                                             |     }
    0x000720b8 ldr r2, [pc, 0x1b0]           |     
    0x000720ba movw r3, 0x46a                |     r3 = 0x46a;
    0x000720be ldr r1, [pc, 0x1b0]           |     
    0x000720c0 ldr r0, [pc, 0x1b0]           |     
    0x000720c2 add r2, pc                    |     r2 = 0xe4332;
    0x000720c4 add r1, pc                    |     r1 = 0xe433a;
    0x000720c6 add r0, pc                    |     r0 = 0xe433e;
                                             | label_11:
    0x000720c8 str r4, [sp, 8]               |     var_8h = r4;
                                             | label_10:
    0x000720ca str r1, [sp, 4]               |     var_4h = r1;
    0x000720cc adds r2, 7                    |     r2 += 7;
    0x000720ce str r0, [sp]                  |     *(sp) = r0;
    0x000720d0 movs r1, 0                    |     r1 = 0;
    0x000720d2 movs r0, 4                    |     r0 = 4;
    0x000720d4 bl 0x71448                    |     fcn_00071448 ();
    0x000720d8 movs r0, 0                    |     r0 = 0;
    0x000720da add sp, 0x14                  |     
    0x000720dc pop {r4, r5, pc}              |     
                                             | label_30:
    0x000720de ldr r1, [pc, 0x198]           |     
    0x000720e0 mov r0, r5                    |     r0 = r5;
    0x000720e2 add r1, pc                    |     r1 = 0xe4360;
    0x000720e4 bl 0x765f0                    |     r0 = fcn_000765f0 (r0);
                                             |     if (r0 == 0) {
    0x000720e8 cbz r0, 0x72144               |         goto label_33;
                                             |     }
    0x000720ea cmp r4, 0                     |     
                                             |     if (r4 != 0) {
    0x000720ec bne 0x720a0                   |         goto label_8;
                                             |     }
                                             | label_13:
    0x000720ee bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x000720f2 cmp r0, 3                     |     
                                             |     if (r0 <= 3) {
    0x000720f4 ble 0x720aa                   |         goto label_9;
                                             |     }
    0x000720f6 ldr r2, [pc, 0x184]           |     
    0x000720f8 movs r3, 0x22                 |     r3 = 0x22;
    0x000720fa ldr r1, [pc, 0x184]           |     
    0x000720fc ldr r0, [pc, 0x184]           |     
    0x000720fe add r2, pc                    |     r2 = 0xe4380;
    0x00072100 str r5, [sp, 8]               |     var_8h = r5;
    0x00072102 add r1, pc                    |     r1 = 0xe4388;
    0x00072104 add r0, pc                    |     r0 = 0xe438c;
    0x00072106 b 0x720ca                     |     goto label_10;
                                             | label_32:
    0x00072108 ldr r1, [pc, 0x17c]           |     
    0x0007210a mov r0, r5                    |     r0 = r5;
    0x0007210c add r1, pc                    |     r1 = 0xe4398;
    0x0007210e bl 0x765f0                    |     r0 = fcn_000765f0 (r0);
                                             |     if (r0 == 0) {
    0x00072112 cbz r0, 0x72158               |         goto label_34;
                                             |     }
                                             | label_12:
    0x00072114 mov r0, r4                    |     r0 = r4;
    0x00072116 bl 0x71600                    |     r0 = fcn_00071600 (r0);
    0x0007211a cmp r0, 0                     |     
                                             |     if (r0 >= 0) {
    0x0007211c bge 0x720aa                   |         goto label_9;
                                             |     }
    0x0007211e bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x00072122 cmp r0, 3                     |     
                                             |     if (r0 <= 3) {
    0x00072124 ble 0x720aa                   |         goto label_9;
                                             |     }
    0x00072126 ldr r2, [pc, 0x164]           |     
    0x00072128 movw r3, 0x472                |     r3 = 0x472;
    0x0007212c ldr r1, [pc, 0x160]           |     
    0x0007212e ldr r0, [pc, 0x164]           |     
    0x00072130 add r2, pc                    |     r2 = 0xe43c2;
    0x00072132 add r1, pc                    |     r1 = 0xe43c6;
    0x00072134 add r0, pc                    |     r0 = 0xe43ce;
    0x00072136 b 0x720c8                     |     goto label_11;
                                             | label_31:
    0x00072138 movs r0, 7                    |     r0 = 7;
    0x0007213a bl 0x715c4                    |     fcn_000715c4 (r0);
    0x0007213e movs r0, 0                    |     r0 = 0;
    0x00072140 add sp, 0x14                  |     
    0x00072142 pop {r4, r5, pc}              |     
                                             | label_33:
    0x00072144 ldr r1, [pc, 0x150]           |     
    0x00072146 mov r0, r5                    |     r0 = r5;
    0x00072148 add r1, pc                    |     r1 = 0xe43e4;
    0x0007214a bl 0x765f0                    |     r0 = fcn_000765f0 (r0);
    0x0007214e cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00072150 beq 0x721f0                   |         goto label_35;
                                             |     }
    0x00072152 cmp r4, 0                     |     
                                             |     if (r4 != 0) {
    0x00072154 bne 0x72114                   |         goto label_12;
                                             |     }
    0x00072156 b 0x720ee                     |     goto label_13;
                                             | label_34:
    0x00072158 ldr r1, [pc, 0x140]           |     
    0x0007215a mov r0, r5                    |     r0 = r5;
    0x0007215c add r1, pc                    |     r1 = 0xe43fc;
    0x0007215e bl 0x765f0                    |     r0 = fcn_000765f0 (r0);
                                             |     if (r0 == 0) {
    0x00072162 cbz r0, 0x72188               |         goto label_36;
                                             |     }
                                             | label_14:
    0x00072164 mov r0, r4                    |     r0 = r4;
                                             | label_15:
    0x00072166 bl 0x71d3c                    |     r0 = fcn_00071d3c (r0);
    0x0007216a cmp r0, 0                     |     
                                             |     if (r0 >= 0) {
    0x0007216c bge 0x720aa                   |         goto label_9;
                                             |     }
    0x0007216e bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x00072172 cmp r0, 3                     |     
                                             |     if (r0 <= 3) {
    0x00072174 ble 0x720aa                   |         goto label_9;
                                             |     }
    0x00072176 ldr r2, [pc, 0x128]           |     
    0x00072178 movw r3, 0x477                |     r3 = 0x477;
    0x0007217c ldr r1, [pc, 0x124]           |     
    0x0007217e ldr r0, [pc, 0x128]           |     
    0x00072180 add r2, pc                    |     r2 = 0xe4426;
    0x00072182 add r1, pc                    |     r1 = 0xe442a;
    0x00072184 add r0, pc                    |     r0 = 0xe4432;
    0x00072186 b 0x720c8                     |     goto label_11;
                                             | label_36:
    0x00072188 ldr r1, [pc, 0x120]           |     
    0x0007218a mov r0, r5                    |     r0 = r5;
    0x0007218c add r1, pc                    |     r1 = 0xe443c;
    0x0007218e bl 0x765f0                    |     r0 = fcn_000765f0 (r0);
                                             |     if (r0 == 0) {
    0x00072192 cbz r0, 0x721b8               |         goto label_16;
                                             |     }
                                             | label_17:
    0x00072194 mov r0, r4                    |     r0 = r4;
                                             | label_18:
    0x00072196 bl 0x71d54                    |     r0 = fcn_00071d54 (r0);
    0x0007219a cmp r0, 0                     |     
                                             |     if (r0 >= 0) {
    0x0007219c bge 0x720aa                   |         goto label_9;
                                             |     }
    0x0007219e bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x000721a2 cmp r0, 3                     |     
                                             |     if (r0 <= 3) {
    0x000721a4 ble 0x720aa                   |         goto label_9;
                                             |     }
    0x000721a6 ldr r2, [pc, 0x108]           |     
    0x000721a8 movw r3, 0x47c                |     r3 = 0x47c;
    0x000721ac ldr r1, [pc, 0x104]           |     
    0x000721ae ldr r0, [pc, 0x108]           |     
    0x000721b0 add r2, pc                    |     r2 = 0xe4466;
    0x000721b2 add r1, pc                    |     r1 = 0xe446a;
    0x000721b4 add r0, pc                    |     r0 = 0xe4472;
    0x000721b6 b 0x720c8                     |     goto label_11;
                                             | label_16:
    0x000721b8 ldr r1, [pc, 0x100]           |     
    0x000721ba mov r0, r5                    |     r0 = r5;
    0x000721bc add r1, pc                    |     r1 = 0xe447c;
    0x000721be bl 0x765f0                    |     r0 = fcn_000765f0 (r0);
                                             |     if (r0 == 0) {
    0x000721c2 cbz r0, 0x7221e               |         goto label_37;
                                             |     }
    0x000721c4 mov r0, r4                    |     r0 = r4;
    0x000721c6 cmp r4, 0                     |     
                                             |     if (r4 == 0) {
    0x000721c8 beq 0x72258                   |         goto label_38;
                                             |     }
                                             | label_19:
    0x000721ca bl 0x71d84                    |     r0 = fcn_00071d84 (r0);
    0x000721ce cmp r0, 0                     |     
                                             |     if (r0 >= 0) {
    0x000721d0 bge.w 0x720aa                 |         goto label_9;
                                             |     }
    0x000721d4 bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x000721d8 cmp r0, 3                     |     
                                             |     if (r0 <= 3) {
    0x000721da ble.w 0x720aa                 |         goto label_9;
                                             |     }
    0x000721de ldr r2, [pc, 0xe0]            |     
    0x000721e0 movw r3, 0x481                |     r3 = 0x481;
    0x000721e2 bics r1, r0                   |     __asm ("bics r1, r0");
    0x000721e4 ldr r1, [pc, 0xdc]            |     
    0x000721e6 ldr r0, [pc, 0xe0]            |     
    0x000721e8 add r2, pc                    |     r2 = 0xe44ae;
    0x000721ea add r1, pc                    |     r1 = 0xe44b2;
    0x000721ec add r0, pc                    |     r0 = 0xe44ba;
    0x000721ee b 0x720c8                     |     goto label_11;
                                             | label_35:
    0x000721f0 ldr r1, [pc, 0xd8]            |     
    0x000721f2 mov r0, r5                    |     r0 = r5;
    0x000721f4 add r1, pc                    |     r1 = 0xe44c4;
    0x000721f6 bl 0x765f0                    |     r0 = fcn_000765f0 (r0);
                                             |     if (r0 == 0) {
    0x000721fa cbz r0, 0x72206               |         goto label_39;
                                             |     }
    0x000721fc cmp r4, 0                     |     
                                             |     if (r4 != 0) {
    0x000721fe bne 0x72164                   |         goto label_14;
                                             |     }
    0x00072200 ldr r0, [pc, 0xcc]            |     
    0x00072202 add r0, pc                    |     r0 = 0xe44d6;
    0x00072204 b 0x72166                     |     goto label_15;
                                             | label_39:
    0x00072206 ldr r1, [pc, 0xcc]            |     
    0x00072208 mov r0, r5                    |     r0 = r5;
    0x0007220a add r1, pc                    |     r1 = 0xe44e4;
    0x0007220c bl 0x765f0                    |     r0 = fcn_000765f0 (r0);
    0x00072210 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00072212 beq 0x721b8                   |         goto label_16;
                                             |     }
    0x00072214 cmp r4, 0                     |     
                                             |     if (r4 != 0) {
    0x00072216 bne 0x72194                   |         goto label_17;
                                             |     }
    0x00072218 ldr r0, [pc, 0xbc]            |     
    0x0007221a add r0, pc                    |     r0 = 0xe44f6;
    0x0007221c b 0x72196                     |     goto label_18;
                                             | label_37:
    0x0007221e ldr r1, [pc, 0xbc]            |     
    0x00072220 mov r0, r5                    |     r0 = r5;
    0x00072222 add r1, pc                    |     r1 = 0xe4504;
    0x00072224 bl 0x765f0                    |     r0 = fcn_000765f0 (r0);
    0x00072228 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x0007222a beq.w 0x720aa                 |         goto label_9;
                                             |     }
    0x0007222e mov r0, r4                    |     r0 = r4;
                                             |     if (r4 == 0) {
    0x00072230 cbz r4, 0x7225e               |         goto label_40;
                                             |     }
                                             | label_20:
    0x00072232 bl 0x71d6c                    |     r0 = fcn_00071d6c (r0);
    0x00072236 cmp r0, 0                     |     
                                             |     if (r0 >= 0) {
    0x00072238 bge.w 0x720aa                 |         goto label_9;
                                             |     }
    0x0007223c bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x00072240 cmp r0, 3                     |     
                                             |     if (r0 <= 3) {
    0x00072242 ble.w 0x720aa                 |         goto label_9;
                                             |     }
    0x00072246 ldr r2, [pc, 0x98]            |     
    0x00072248 movw r3, 0x486                |     r3 = 0x486;
    0x0007224c ldr r1, [pc, 0x94]            |     
    0x0007224e ldr r0, [pc, 0x98]            |     
    0x00072250 add r2, pc                    |     r2 = 0xe4536;
    0x00072252 add r1, pc                    |     r1 = 0xe453a;
    0x00072254 add r0, pc                    |     r0 = 0xe4542;
    0x00072256 b 0x720c8                     |     goto label_11;
                                             | label_38:
    0x00072258 ldr r0, [pc, 0x90]            |     
    0x0007225a add r0, pc                    |     r0 = 0xe454a;
    0x0007225c b 0x721ca                     |     goto label_19;
                                             | label_40:
    0x0007225e ldr r0, [pc, 0x90]            |     
    0x00072260 add r0, pc                    |     r0 = 0xe4556;
    0x00072262 b 0x72232                     |     goto label_20;
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x722f4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.000722f4 ()                                      | void fcn_000722f4 (int16_t arg_24h, int16_t arg_30h, int16_t arg_3ch, int16_t arg_40h, int16_t arg_44h, int16_t arg_844h, int16_t arg_870h, int16_t arg_874h, int16_t arg_878h, int16_t arg_87ch, int16_t arg_880h, int16_t arg_884h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int32_t var_844h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_10h_2;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x000722f4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000722f8 mov r5, r1                                        |     r5 = r1;
    0x000722fa ldr r4, [pc, 0x198]                               |     
    0x000722fc subw sp, sp, 0x84c                                |     __asm ("subw sp, sp, aav.0x000000ff");
    0x00072300 mov r6, r2                                        |     r6 = r2;
    0x00072302 mov sb, r3                                        |     sb = r3;
    0x00072304 ldr r1, [pc, 0x190]                               |     r1 = *(0x72498);
    0x00072306 mov r8, r0                                        |     r8 = r0;
    0x00072308 add r4, pc                                        |     r4 = 0xe47a2;
    0x0007230a ldr r1, [r4, r1]                                  |     
    0x0007230c ldr r1, [r1]                                      |     r1 = *(0xe47a2);
    0x0007230e str.w r1, [sp, 0x844]                             |     __asm ("str.w r1, [arg_844h]");
    0x00072312 mov.w r1, 0                                       |     r1 = 0;
    0x00072316 blx 0x9628                                        |     fcn_00009628 ();
    0x0007231a ldr.w r2, [sp, 0x870]                             |     r2 = *(arg_870h);
    0x0007231e mov r4, r0                                        |     r4 = r0;
    0x00072320 ldr r3, [pc, 0x178]                               |     
    0x00072322 ldr.w fp, [sp, 0x874]                             |     fp = *(arg_874h);
    0x00072326 ldr.w sl, [sp, 0x87c]                             |     sl = *(arg_87ch);
    0x0007232a add r3, pc                                        |     
    0x0007232c eor.w r0, r2, r2, asr 31                          |     r0 = r2 ^ (r2 >> 31);
    0x00072330 ldr r3, [r3]                                      |     r3 = *(0xe47ca);
    0x00072332 sub.w r0, r0, r2, asr 31                          |     r0 -= (r2 >> 31);
    0x00072336 and r2, r5, 7                                     |     r2 = r5 & 7;
    0x0007233a ldr.w r1, [sp, 0x880]                             |     r1 = *(arg_880h);
    0x0007233e cmp r2, r3                                        |     
    0x00072340 ldr r7, [r4]                                      |     r7 = *(r4);
    0x00072342 uxtb r0, r0                                       |     r0 = (int8_t) r0;
    0x00072344 ble 0x7236e                                       |     
                                                                 |     while (r3 == 8) {
    0x00072346 rsbs r0, r0, 0                                    |         r0 -= ;
                                                                 | label_0:
    0x00072348 ldr r2, [pc, 0x154]                               |         
    0x0007234a cmp r7, 0                                         |         
    0x0007234c ldr r3, [pc, 0x148]                               |         r3 = *(0x72498);
    0x0007234e it ge                                             |         
                                                                 |         if (r7 < 0) {
    0x00072350 strge r7, [r4]                                    |             *(r4) = r7;
                                                                 |         }
    0x00072352 add r2, pc                                        |         r2 = 0xe47f6;
    0x00072354 ldr r3, [r2, r3]                                  |         r3 = *(0xe47f6);
    0x00072356 ldr r2, [r3]                                      |         r2 = *(0xe47f6);
    0x00072358 ldr.w r3, [sp, 0x844]                             |         r3 = *(arg_844h);
    0x0007235c eors r2, r3                                       |         r2 ^= r3;
    0x0007235e mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00072362 bne.w 0x72490                                     |             goto label_1;
                                                                 |         }
    0x00072366 addw sp, sp, 0x84c                                |         __asm ("addw sp, var_38h");
    0x0007236a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x0007236c ldrh r0, [r6, 0x3e]                               |         r0 = *((r6 + 0x3e));
    0x0007236e ldr r3, [pc, 0x134]                               |         
    0x00072370 add r3, pc                                        |         
    0x00072372 ldr r3, [r3]                                      |         r3 = *(0xe481a);
    0x00072374 cmp r3, 8                                         |         
    0x00072376 beq 0x72346                                       |         
                                                                 |     }
    0x00072378 add r3, sp, 0x44                                  |     r3 += arg_44h;
    0x0007237a addw r2, sp, 0x884                                |     __asm ("addw r2, arg_884h");
    0x0007237e str r0, [r4]                                      |     *(r4) = r0;
    0x00072380 mov r0, r3                                        |     r0 = r3;
    0x00072382 str r3, [sp, 0x3c]                                |     *(arg_3ch) = r3;
    0x00072384 mov.w r3, 0x800                                   |     r3 = 0x800;
    0x00072386 str r0, [r0, 0x30]                                |     *((r0 + 0x30)) = r0;
    0x00072388 str r1, [sp]                                      |     *(sp) = r1;
    0x0007238a mov r1, r3                                        |     r1 = r3;
    0x0007238c str r2, [sp, 4]                                   |     var_3ch = r2;
    0x0007238e str r2, [sp, 0x40]                                |     *(arg_40h) = r2;
    0x00072390 movs r2, 1                                        |     r2 = 1;
    0x00072392 blx 0x9074                                        |     fcn_00009074 ();
    0x00072396 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x0007239a beq 0x723dc                                       |         goto label_2;
                                                                 |     }
    0x0007239c bl 0x76a30                                        |     r0 = fcn_00076a30 (r0);
    0x000723a0 cmp r0, 1                                         |     
                                                                 |     if (r0 == 1) {
    0x000723a2 beq 0x7248a                                       |         goto label_3;
                                                                 |     }
    0x000723a4 ldr r3, [pc, 0x100]                               |     
    0x000723a6 add r3, pc                                        |     r3 = 0xe4852;
                                                                 |     do {
                                                                 |         if (r6 == 0) {
    0x000723a8 cbnz r6, 0x723e0                                  |             
    0x000723aa str r3, [sp, 0x14]                                |             var_14h_2 = r3;
    0x000723ac mov r2, fp                                        |             r2 = fp;
    0x000723ae ldr r3, [sp, 0x3c]                                |             r3 = *(arg_3ch);
    0x000723b0 mov r0, r5                                        |             r0 = r5;
    0x000723b2 ldr.w r1, [sp, 0x870]                             |             r1 = *(arg_870h);
    0x000723b6 str r6, [sp, 0x1c]                                |             var_1ch = r6;
    0x000723b8 str r3, [sp, 0x10]                                |             var_10h_2 = r3;
    0x000723ba ldr r3, [pc, 0xf0]                                |             
    0x000723bc str.w sl, [sp]                                    |             __asm ("str.w sl, [sp]");
    0x000723c0 str.w r8, [sp, 0x18]                              |             __asm ("str.w r8, [var_18h]");
    0x000723c4 add r3, pc                                        |             r3 = 0xe4876;
    0x000723c6 str.w r8, [sp, 0xc]                               |             __asm ("str.w r8, [var_44h]");
    0x000723ca str r3, [sp, 8]                                   |             var_40h = r3;
    0x000723cc ldr r3, [pc, 0xe0]                                |             
    0x000723ce add r3, pc                                        |             r3 = 0xe4882;
    0x000723d0 str r3, [sp, 4]                                   |             var_3ch = r3;
    0x000723d2 ldr.w r3, [sp, 0x878]                             |             r3 = *(arg_878h);
    0x000723d4 subs r0, 0x78                                     |             r0 -= 0x78;
    0x000723d6 bl 0x719d4                                        |             fcn_000719d4 (r0, r1, r2, r3, r4, r5, r6);
    0x000723da b 0x72348                                         |             goto label_0;
                                                                 | label_2:
    0x000723dc mov r3, r8                                        |             r3 = r8;
                                                                 |             if (r6 == 0) {
    0x000723de cbz r6, 0x7242c                                   |                 goto label_4;
                                                                 |             }
                                                                 |         }
    0x000723e0 cmp.w sb, 0                                       |         
                                                                 |         if (sb != 0) {
    0x000723e4 beq 0x72454                                       |             
    0x000723e6 strd r3, r8, [sp, 0x28]                           |             __asm ("strd r3, r8, [sp, 0x28]");
    0x000723ea mov r2, fp                                        |             r2 = fp;
    0x000723ec ldr r3, [sp, 0x3c]                                |             r3 = *(arg_3ch);
    0x000723ee mov r0, r5                                        |             r0 = r5;
    0x000723f0 ldr.w r1, [sp, 0x870]                             |             r1 = *(arg_870h);
    0x000723f4 str.w sl, [sp]                                    |             __asm ("str.w sl, [sp]");
    0x000723f8 str r3, [sp, 0x24]                                |             *(arg_24h) = r3;
    0x000723fa ldr r3, [pc, 0xb8]                                |             
    0x000723fc str.w sb, [sp, 0x20]                              |             __asm ("str.w sb, [var_20h]");
    0x00072400 str.w sb, [sp, 0x14]                              |             __asm ("str.w sb, [var_14h_2]");
    0x00072404 add r3, pc                                        |             r3 = 0xe48be;
    0x00072406 str r6, [sp, 0x1c]                                |             var_1ch = r6;
    0x00072408 str r3, [sp, 0x18]                                |             var_18h = r3;
    0x0007240a ldr r3, [pc, 0xac]                                |             
    0x0007240c str r6, [sp, 0xc]                                 |             var_44h = r6;
    0x0007240e add r3, pc                                        |             r3 = 0xe48cc;
    0x00072410 str r3, [sp, 0x10]                                |             var_10h_2 = r3;
    0x00072412 ldr r3, [pc, 0xa8]                                |             
    0x00072414 add r3, pc                                        |             r3 = 0xe48d6;
    0x00072416 str r3, [sp, 8]                                   |             var_40h = r3;
    0x00072418 ldr r3, [pc, 0xa4]                                |             
    0x0007241a add r3, pc                                        |             r3 = 0xe48de;
    0x0007241c str r3, [sp, 4]                                   |             var_3ch = r3;
    0x0007241e movs r3, 0                                        |             r3 = 0;
    0x00072420 str r3, [sp, 0x30]                                |             *(arg_30h) = r3;
    0x00072422 ldr.w r3, [sp, 0x878]                             |             r3 = *(arg_878h);
    0x00072426 bl 0x719d4                                        |             fcn_000719d4 (r0, r1, r2, r3, r4, r5, r6);
    0x0007242a b 0x72348                                         |             goto label_0;
                                                                 | label_4:
    0x0007242c ldr r3, [sp, 0x3c]                                |             r3 = *(arg_3ch);
    0x0007242e mov r2, fp                                        |             r2 = fp;
    0x00072430 ldr.w r1, [sp, 0x870]                             |             r1 = *(arg_870h);
    0x00072434 mov r0, r5                                        |             r0 = r5;
    0x00072436 str r6, [sp, 0x10]                                |             var_10h_2 = r6;
    0x00072438 str r3, [sp, 0xc]                                 |             var_44h = r3;
    0x0007243a ldr r3, [pc, 0x88]                                |             
    0x0007243c str.w sl, [sp]                                    |             __asm ("str.w sl, [sp]");
    0x00072440 add r3, pc                                        |             r3 = 0xe490a;
    0x00072442 str r3, [sp, 8]                                   |             var_40h = r3;
    0x00072444 ldr r3, [pc, 0x80]                                |             
    0x00072446 add r3, pc                                        |             r3 = 0xe4912;
    0x00072448 str r3, [sp, 4]                                   |             var_3ch = r3;
    0x0007244a ldr.w r3, [sp, 0x878]                             |             r3 = *(arg_878h);
    0x0007244c subs r0, 0x78                                     |             r0 -= 0x78;
    0x0007244e bl 0x719d4                                        |             fcn_000719d4 (r0, r1, r2, r3, r4, r5, r6);
    0x00072452 b 0x72348                                         |             goto label_0;
                                                                 |         }
    0x00072454 str r3, [sp, 0x1c]                                |         var_1ch = r3;
    0x00072456 mov r2, fp                                        |         r2 = fp;
    0x00072458 ldr r3, [sp, 0x3c]                                |         r3 = *(arg_3ch);
    0x0007245a mov r0, r5                                        |         r0 = r5;
    0x0007245c ldr.w r1, [sp, 0x870]                             |         r1 = *(arg_870h);
    0x00072460 strd r8, sb, [sp, 0x20]                           |         __asm ("strd r8, sb, [sp, 0x20]");
    0x00072464 str r3, [sp, 0x18]                                |         var_18h = r3;
    0x00072466 ldr r3, [pc, 0x64]                                |         
    0x00072468 str.w sl, [sp]                                    |         __asm ("str.w sl, [sp]");
    0x0007246c str r6, [sp, 0x14]                                |         var_14h_2 = r6;
    0x0007246e add r3, pc                                        |         r3 = 0xe4940;
    0x00072470 str r6, [sp, 0xc]                                 |         var_44h = r6;
    0x00072472 str r3, [sp, 0x10]                                |         var_10h_2 = r3;
    0x00072474 ldr r3, [pc, 0x58]                                |         
    0x00072476 add r3, pc                                        |         r3 = 0xe494a;
    0x00072478 str r3, [sp, 8]                                   |         var_40h = r3;
    0x0007247a ldr r3, [pc, 0x58]                                |         
    0x0007247c add r3, pc                                        |         r3 = 0xe4956;
    0x0007247e str r3, [sp, 4]                                   |         var_3ch = r3;
    0x00072480 ldr.w r3, [sp, 0x878]                             |         r3 = *(arg_878h);
    0x00072484 bl 0x719d4                                        |         fcn_000719d4 (r0, r1, r2, r3, r4, r5, r6);
    0x00072488 b 0x72348                                         |         goto label_0;
                                                                 | label_3:
    0x0007248a ldr r3, [pc, 0x4c]                                |         
    0x0007248c add r3, pc                                        |         r3 = 0xe496a;
    0x0007248e b 0x723a8                                         |         
                                                                 |     } while (1);
                                                                 | label_1:
    0x00072490 blx 0x927c                                        |     fprintf_chk ()
    0x00072494 str r4, [r7, 0x78]                                |     *((r7 + 0x78)) = r4;
    0x00072496 movs r5, r0                                       |     r5 = r0;
    0x00072498 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0007249a movs r0, r0                                       |     
    0x0007249c ldr r2, [r5, 0x7c]                                |     r2 = *((r5 + 0x7c));
    0x0007249e movs r5, r0                                       |     r5 = r0;
    0x000724a0 str r2, [r6, 0x74]                                |     *((r6 + 0x74)) = r2;
    0x000724a2 movs r5, r0                                       |     r5 = r0;
    0x000724a4 strh r4, [r1, 0x14]                               |     *((r1 + 0x14)) = r4;
    0x000724a6 movs r5, r0                                       |     r5 = r0;
    0x000724a8 cmp r6, 0xf6                                      |     
    0x000724aa movs r3, r0                                       |     r3 = r0;
    0x000724ac cmp r7, 0x48                                      |     
    0x000724ae movs r3, r0                                       |     r3 = r0;
    0x000724b0 cmp r7, 0x12                                      |     
    0x000724b2 movs r3, r0                                       |     r3 = r0;
    0x000724b4 cmp r6, 0xa8                                      |     
    0x000724b6 movs r3, r0                                       |     r3 = r0;
    0x000724b8 cmp r6, 0xb2                                      |     
    0x000724ba movs r3, r0                                       |     r3 = r0;
    0x000724bc cmp r6, 0xbc                                      |     
    0x000724be movs r3, r0                                       |     r3 = r0;
    0x000724c0 cmp r6, 0xc6                                      |     
    0x000724c2 movs r3, r0                                       |     r3 = r0;
    0x000724c4 cmp r6, 0xdc                                      |     
    0x000724c6 movs r3, r0                                       |     r3 = r0;
    0x000724c8 cmp r6, 0x9a                                      |     
    0x000724ca movs r3, r0                                       |     r3 = r0;
    0x000724cc cmp r6, 0x9e                                      |     
    0x000724ce movs r3, r0                                       |     r3 = r0;
    0x000724d0 cmp r6, 0x5a                                      |     
    0x000724d2 movs r3, r0                                       |     r3 = r0;
    0x000724d4 cmp r6, 0x64                                      |     
    0x000724d6 movs r3, r0                                       |     r3 = r0;
    0x000724d8 cmp r6, 8                                         |     
    0x000724da movs r3, r0                                       |     r3 = r0;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x727a8 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) fcn.000727a8 ()                                  | void fcn_000727a8 (int16_t arg_d0h, int16_t arg_d4h, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_10h;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_18h;
                                                             |     int16_t var_24h;
                                                             |     int16_t var_28h;
                                                             |     int16_t var_38h;
                                                             |     int16_t var_40h;
                                                             |     int16_t var_44h;
                                                             |     int16_t var_94h;
                                                             |     int32_t var_98h;
                                                             |     int32_t var_98h_2;
                                                             |     int16_t var_a0h;
                                                             |     int16_t var_a4h;
                                                             |     int16_t var_a8h;
                                                             |     int16_t var_ach;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
                                                             |     if (? >= ?) {
    0x000727a8 ldrbmi lr, [r0, sp, lsr 18]!                  |         
                                                             |     }
    0x000727ac mov r7, r2                                    |     r7 = r2;
    0x000727ae ldr r2, [pc, 0x2b4]                           |     
    0x000727b0 mov r8, r3                                    |     r8 = r3;
    0x000727b2 sub sp, 0xb0                                  |     
    0x000727b4 ldr r3, [pc, 0x2b0]                           |     r3 = *(0x72a68);
    0x000727b6 add r2, pc                                    |     r2 = 0xe5220;
    0x000727b8 ldr.w sb, [sp, 0xd4]                          |     sb = *(arg_d4h);
    0x000727bc ldr r3, [r2, r3]                              |     
    0x000727be ldr r3, [r3]                                  |     r3 = *(0xe5220);
    0x000727c0 str r3, [sp, 0xac]                            |     var_ach = r3;
    0x000727c2 mov.w r3, 0                                   |     r3 = 0;
    0x000727c6 ldr r3, [pc, 0x2a4]                           |     
    0x000727c8 add r3, pc                                    |     r3 = 0xe523a;
    0x000727ca cmp r0, 0                                     |     
                                                             |     if (arg_d0h == ) {
    0x000727cc beq.w 0x72970                                 |         goto label_4;
                                                             |     }
    0x000727d0 ldr r2, [pc, 0x29c]                           |     r2 = *(0x72a70);
    0x000727d2 ldr r3, [r3, r2]                              |     r3 = *((r3 + r2));
    0x000727d4 cmp.w sb, 0                                   |     
    0x000727d8 it ne                                         |     
                                                             |     if (sb != 0) {
    0x000727da cmpne sb, r3                                  |         __asm ("cmpne sb, r3");
                                                             |     }
                                                             |     if (sb == 0) {
    0x000727dc beq.w 0x7295c                                 |         goto label_5;
                                                             |     }
    0x000727e0 mov r6, r1                                    |     r6 = r1;
    0x000727e2 mov r4, r0                                    |     r4 = r0;
    0x000727e4 blx sb                                        |     r0 = sb ();
    0x000727e6 cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x000727e8 blt 0x727fa                                   |         
    0x000727ea mov r3, r8                                    |         r3 = r8;
    0x000727ec mov r2, r7                                    |         r2 = r7;
    0x000727ee mov r1, r6                                    |         r1 = r6;
    0x000727f0 mov r0, r4                                    |         r0 = r4;
    0x000727f2 bl 0x6c398                                    |         r0 = fcn_0006c398 (r0, r1, r2);
    0x000727f6 subs r5, r0, 0                                |         r5 = r0 - 0;
                                                             |         if (r5 < r0) {
    0x000727f8 blt 0x7283e                                   |             goto label_0;
                                                             |         }
                                                             |     }
    0x000727fa add.w sl, sp, 0x28                            |     sl += var_28h;
    0x000727fe mov r0, r4                                    |     r0 = r4;
    0x00072800 mov r1, sl                                    |     r1 = sl;
    0x00072802 blx 0x931c                                    |     r0 = fcn_0000931c ();
    0x00072806 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00072808 blt 0x7290a                                   |         goto label_6;
                                                             |     }
    0x0007280a ldr r2, [sp, 0xd0]                            |     r2 = *(arg_d0h);
    0x0007280c ldr r5, [sp, 0x38]                            |     r5 = var_38h;
    0x0007280e lsls r1, r2, 0x1f                             |     r1 = r2 << 0x1f;
    0x00072810 and r3, r5, 0xf000                            |     r3 = r5 & 0xf000;
                                                             |     if (r1 < r2) {
    0x00072814 bpl 0x7281e                                   |         
    0x00072816 cmp.w r3, 0xa000                              |         
                                                             |         if (r3 == 0xa000) {
    0x0007281a beq.w 0x72984                                 |             goto label_7;
                                                             |         }
                                                             |     }
                                                             | label_1:
    0x0007281e cmp.w r3, 0x4000                              |     
                                                             |     if (r3 == 0x4000) {
    0x00072822 beq 0x7285c                                   |         goto label_8;
                                                             |     }
    0x00072824 ldr r3, [sp, 0xd0]                            |     r3 = *(arg_d0h);
    0x00072826 tst.w r3, 2                                   |     
    0x0007282a ite ne                                        |     
                                                             |     if ((r3 & 2) == 0) {
    0x0007282c movne r5, 4                                   |         r5 = 4;
                                                             |     }
                                                             |     if ((r3 & 2) != 0) {
    0x0007282e moveq r5, 7                                   |         r5 = 7;
                                                             |     }
    0x00072830 bl 0x70bf8                                    |     r0 = fcn_00070bf8 ();
    0x00072834 cmp r0, r5                                    |     
    0x00072836 it lt                                         |     
                                                             |     if (r0 >= r5) {
    0x00072838 mvnlt r5, 0x13                                |         r5 = ~0x13;
                                                             |     }
                                                             |     if (r0 >= r5) {
    0x0007283c bge 0x7292e                                   |         goto label_9;
                                                             |     }
                                                             |     do {
                                                             | label_0:
    0x0007283e ldr r2, [pc, 0x234]                           |         
    0x00072840 ldr r3, [pc, 0x224]                           |         r3 = *(0x72a68);
    0x00072842 add r2, pc                                    |         r2 = 0xe52bc;
    0x00072844 ldr r3, [r2, r3]                              |         r3 = *(0xe52bc);
    0x00072846 ldr r2, [r3]                                  |         r2 = *(0xe52bc);
    0x00072848 ldr r3, [sp, 0xac]                            |         r3 = var_ach;
    0x0007284a eors r2, r3                                   |         r2 ^= r3;
    0x0007284c mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00072850 bne.w 0x72a48                                 |             goto label_10;
                                                             |         }
    0x00072854 mov r0, r5                                    |         r0 = r5;
    0x00072856 add sp, 0xb0                                  |         
    0x00072858 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_8:
    0x0007285c and r3, r5, 7                                 |         r3 = r5 & 7;
    0x00072860 and r2, r6, 7                                 |         r2 = r6 & 7;
    0x00072864 cmp r3, r2                                    |         
                                                             |         if (r3 > r2) {
    0x00072866 bhi 0x72914                                   |             goto label_11;
                                                             |         }
    0x00072868 and r3, r5, 0x38                              |         r3 = r5 & 0x38;
    0x0007286c and r2, r6, 0x38                              |         r2 = r6 & 0x38;
    0x00072870 cmp r3, r2                                    |         
                                                             |         if (r3 > r2) {
    0x00072872 bhi 0x72914                                   |             goto label_11;
                                                             |         }
    0x00072874 and r3, r5, 0x1c0                             |         r3 = r5 & 0x1c0;
    0x00072878 and r2, r6, 0x1c0                             |         r2 = r6 & 0x1c0;
    0x0007287c cmp r3, r2                                    |         
                                                             |         if (r3 > r2) {
    0x0007287e bhi 0x72914                                   |             goto label_11;
                                                             |         }
    0x00072880 adds r2, r7, 1                                |         r2 = r7 + 1;
                                                             |         if (r2 == r7) {
    0x00072882 beq.w 0x729b4                                 |             goto label_12;
                                                             |         }
    0x00072886 ldr r3, [sp, 0x40]                            |         r3 = var_40h;
    0x00072888 cmp r3, r7                                    |         
                                                             |         if (r3 == r7) {
    0x0007288a beq.w 0x729b4                                 |             goto label_12;
                                                             |         }
    0x0007288e ldr r2, [pc, 0x1e8]                           |         
    0x00072890 movs r1, 0x2d                                 |         r1 = 0x2d;
    0x00072892 movs r3, 0xc                                  |         r3 = 0xc;
    0x00072894 str r1, [sp, 0x94]                            |         var_94h = r1;
    0x00072896 str r1, [sp, 0xa0]                            |         var_a0h = r1;
    0x00072898 movs r1, 0                                    |         r1 = 0;
    0x0007289a add r2, pc                                    |         r2 = 0xe5318;
    0x0007289c str r1, [sp, 0xa8]                            |         var_a8h = r1;
    0x0007289e str r2, [sp]                                  |         *(sp) = r2;
    0x000728a0 add r0, sp, 0x94                              |         r0 += var_94h;
    0x000728a2 strd r1, r1, [sp, 0x98]                       |         __asm ("strd r1, r1, [var_98h]");
    0x000728a6 movs r2, 1                                    |         r2 = 1;
    0x000728a8 str r1, [sp, 0xa4]                            |         var_a4h = r1;
    0x000728aa mov r1, r3                                    |         r1 = r3;
    0x000728ac str r7, [sp, 4]                               |         var_4h = r7;
    0x000728ae blx 0x9110                                    |         fcn_00009110 ();
    0x000728b2 cmp.w r8, -1                                  |         
                                                             |         if (r8 != -1) {
    0x000728b6 bne.w 0x729d4                                 |             goto label_3;
                                                             |         }
                                                             | label_2:
    0x000728ba ldr r3, [sp, 0xd0]                            |         r3 = *(arg_d0h);
    0x000728bc tst.w r3, 2                                   |         
    0x000728c0 ite ne                                        |         
                                                             |         if ((r3 & 2) == 0) {
    0x000728c2 movne r5, 4                                   |             r5 = 4;
                                                             |         }
                                                             |         if ((r3 & 2) != 0) {
    0x000728c4 moveq r5, 7                                   |             r5 = 7;
                                                             |         }
    0x000728c6 bl 0x70bf8                                    |         r0 = fcn_00070bf8 ();
    0x000728ca cmp r0, r5                                    |         
                                                             |         if (r0 < r5) {
    0x000728cc blt 0x72928                                   |             goto label_13;
                                                             |         }
    0x000728ce ldrd r1, r3, [sp, 0x40]                       |         __asm ("ldrd r1, r3, [var_40h]");
    0x000728d2 mov r0, r5                                    |         r0 = r5;
    0x000728d4 str r4, [sp, 8]                               |         var_8h = r4;
    0x000728d6 ldr r4, [pc, 0x1a4]                           |         
    0x000728d8 str r3, [sp, 0x10]                            |         var_10h = r3;
    0x000728da ldr r2, [pc, 0x1a4]                           |         
    0x000728dc ldr r3, [pc, 0x1a4]                           |         
    0x000728de add r4, pc                                    |         r4 = 0xe5360;
    0x000728e0 str r4, [sp]                                  |         *(sp) = r4;
    0x000728e2 add r4, sp, 0xa0                              |         r4 += var_a0h;
    0x000728e4 str r1, [sp, 0xc]                             |         var_ch = r1;
    0x000728e6 add r2, pc                                    |         r2 = 0xe536c;
    0x000728e8 add r3, pc                                    |         r3 = 0xe5370;
    0x000728ea str r4, [sp, 0x18]                            |         var_18h = r4;
    0x000728ec movs r1, 0x11                                 |         r1 = 0x11;
    0x000728ee add r4, sp, 0x94                              |         r4 += var_94h;
    0x000728f0 str r3, [sp, 4]                               |         var_4h = r3;
    0x000728f2 adds r2, 7                                    |         r2 += 7;
    0x000728f4 movs r3, 0x49                                 |         r3 = 0x49;
    0x000728f6 movt r1, 0x4000                               |         r1 = (r1 & 0xFFFF) | 0x40000000;
    0x000728fa str r4, [sp, 0x14]                            |         var_14h = r4;
    0x000728fc bl 0x71448                                    |         r0 = fcn_00071448 ();
    0x00072900 subs r5, r0, 0                                |         r5 = r0 - 0;
    0x00072902 it ge                                         |         
                                                             |         if (r5 < r0) {
    0x00072904 mvnge r5, 0x55                                |             r5 = ~0x55;
                                                             |         }
    0x00072908 b 0x7283e                                     |         
                                                             |     } while (1);
                                                             | label_6:
    0x0007290a blx 0x9628                                    |     r0 = fcn_00009628 ();
    0x0007290e ldr r5, [r0]                                  |     r5 = *(r0);
    0x00072910 rsbs r5, r5, 0                                |     r5 -= ;
    0x00072912 b 0x7283e                                     |     goto label_0;
                                                             | label_11:
    0x00072914 ldr r3, [sp, 0xd0]                            |     r3 = *(arg_d0h);
    0x00072916 tst.w r3, 2                                   |     
    0x0007291a ite ne                                        |     
                                                             |     if ((r3 & 2) == 0) {
    0x0007291c movne r7, 4                                   |         r7 = 4;
                                                             |     }
                                                             |     if ((r3 & 2) != 0) {
    0x0007291e moveq r7, 7                                   |         r7 = 7;
                                                             |     }
    0x00072920 bl 0x70bf8                                    |     r0 = fcn_00070bf8 ();
    0x00072924 cmp r0, r7                                    |     
                                                             |     if (r0 >= r7) {
    0x00072926 bge 0x729ea                                   |         goto label_14;
                                                             |     }
                                                             | label_13:
    0x00072928 mvn r5, 0x10                                  |     r5 = ~0x10;
    0x0007292c b 0x7283e                                     |     goto label_0;
                                                             | label_9:
    0x0007292e ldr r2, [pc, 0x158]                           |     
    0x00072930 movs r1, 0x14                                 |     r1 = 0x14;
    0x00072932 ldr r3, [pc, 0x158]                           |     
    0x00072934 mov r0, r5                                    |     r0 = r5;
    0x00072936 ldr r6, [pc, 0x158]                           |     
    0x00072938 movt r1, 0x4000                               |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x0007293c add r2, pc                                    |     r2 = 0xe53ca;
    0x0007293e str r4, [sp, 8]                               |     var_8h = r4;
    0x00072940 add r3, pc                                    |     r3 = 0xe53d2;
    0x00072942 adds r2, 7                                    |     r2 += 7;
    0x00072944 add r6, pc                                    |     r6 = 0xe53da;
    0x00072946 str r3, [sp, 4]                               |     var_4h = r3;
    0x00072948 str r6, [sp]                                  |     *(sp) = r6;
    0x0007294a movs r3, 0x38                                 |     r3 = 0x38;
    0x0007294c bl 0x71448                                    |     r0 = fcn_00071448 ();
    0x00072950 subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 < r0) {
    0x00072952 blt.w 0x7283e                                 |         goto label_0;
                                                             |     }
                                                             |     do {
    0x00072956 mvn r5, 0x55                                  |         r5 = ~0x55;
    0x0007295a b 0x7283e                                     |         goto label_0;
                                                             | label_5:
    0x0007295c ldr r1, [pc, 0x134]                           |         
    0x0007295e movs r2, 0x1d                                 |         r2 = 0x1d;
    0x00072960 ldr r3, [pc, 0x134]                           |         
    0x00072962 ldr r0, [pc, 0x138]                           |         
    0x00072964 add r1, pc                                    |         r1 = 0xe53fc;
    0x00072966 add r3, pc                                    |         r3 = 0xe5402;
    0x00072968 adds r1, 7                                    |         r1 += 7;
    0x0007296a add r0, pc                                    |         r0 = 0xe540c;
    0x0007296c bl 0x71518                                    |         fcn_00071518 (r0, r1, r2, r3);
                                                             | label_4:
    0x00072970 ldr r1, [pc, 0x12c]                           |         
    0x00072972 movs r2, 0x1c                                 |         r2 = 0x1c;
    0x00072974 ldr r3, [pc, 0x12c]                           |         
    0x00072976 ldr r0, [pc, 0x130]                           |         
    0x00072978 add r1, pc                                    |         r1 = 0xe541c;
    0x0007297a add r3, pc                                    |         r3 = 0xe5422;
    0x0007297c adds r1, 7                                    |         r1 += 7;
    0x0007297e add r0, pc                                    |         r0 = 0xe542c;
    0x00072980 bl 0x71518                                    |         fcn_00071518 (r0, r1, r2, r3);
                                                             | label_7:
    0x00072984 movs r1, 0                                    |         r1 = 0;
    0x00072986 add r3, sp, 0x24                              |         r3 += var_24h;
    0x00072988 movs r2, 2                                    |         r2 = 2;
    0x0007298a mov r0, r4                                    |         r0 = r4;
    0x0007298c str r1, [sp]                                  |         *(sp) = r1;
    0x0007298e str r1, [sp, 0x24]                            |         var_24h = r1;
    0x00072990 bl 0x6c85c                                    |         r0 = fcn_0006c85c (r0, r1, r2, r3);
    0x00072994 subs r5, r0, 0                                |         r5 = r0 - 0;
                                                             |         if (r5 < r0) {
    0x00072996 blt 0x72a32                                   |             goto label_15;
                                                             |         }
    0x00072998 ldr r0, [sp, 0x24]                            |         r0 = var_24h;
                                                             |         if (r5 == r0) {
    0x0007299a beq 0x72a1a                                   |             goto label_16;
                                                             |         }
    0x0007299c mov r1, sl                                    |         r1 = sl;
    0x0007299e blx 0x931c                                    |         r0 = fcn_0000931c ();
    0x000729a2 cmp r0, 0                                     |         
                                                             |         if (r0 < 0) {
    0x000729a4 blt 0x72a3e                                   |             goto label_17;
                                                             |         }
    0x000729a6 ldr r0, [sp, 0x24]                            |         r0 = var_24h;
    0x000729a8 blx 0x8dac                                    |         fcn_00008dac ();
    0x000729ac ldr r5, [sp, 0x38]                            |         r5 = var_38h;
    0x000729ae and r3, r5, 0xf000                            |         r3 = r5 & 0xf000;
    0x000729b2 b 0x7281e                                     |         goto label_1;
                                                             | label_12:
    0x000729b4 cmp.w r8, -1                                  |         
                                                             |         if (r8 == -1) {
    0x000729b8 beq 0x72a3a                                   |             goto label_18;
                                                             |         }
    0x000729ba ldr r3, [sp, 0x44]                            |         r3 = var_44h;
    0x000729bc cmp r3, r8                                    |         
                                                             |         if (r3 == r8) {
    0x000729be beq 0x72a3a                                   |             goto label_18;
                                                             |         }
    0x000729c0 movs r3, 0x2d                                 |         r3 = 0x2d;
    0x000729c2 str r3, [sp, 0x94]                            |         var_94h = r3;
    0x000729c4 str r3, [sp, 0xa0]                            |         var_a0h = r3;
    0x000729c6 movs r3, 0                                    |         r3 = 0;
    0x000729c8 strd r3, r3, [sp, 0x98]                       |         __asm ("strd r3, r3, [var_98h]");
    0x000729cc strd r3, r3, [sp, 0xa4]                       |         __asm ("strd r3, r3, [var_a8h]");
    0x000729d0 adds r3, r7, 1                                |         r3 = r7 + 1;
                                                             |         if (r3 != r7) {
    0x000729d2 bne 0x72a4c                                   |             goto label_19;
                                                             |         }
                                                             | label_3:
    0x000729d4 ldr r1, [pc, 0xd4]                            |         
    0x000729d6 movs r3, 0xc                                  |         r3 = 0xc;
    0x000729d8 movs r2, 1                                    |         r2 = 1;
    0x000729da add r0, sp, 0xa0                              |         r0 += var_a0h;
    0x000729dc add r1, pc                                    |         r1 = 0xe548c;
    0x000729de strd r1, r8, [sp]                             |         __asm ("strd r1, r8, [sp]");
    0x000729e2 mov r1, r3                                    |         r1 = r3;
    0x000729e4 blx 0x9110                                    |         fcn_00009110 ();
    0x000729e8 b 0x728ba                                     |         goto label_2;
                                                             | label_14:
    0x000729ea str r6, [sp, 0x10]                            |         var_10h = r6;
    0x000729ec ubfx r5, r5, 0, 9                             |         r5 = (r5 >> 0) & ((1 << 9) - 1);
    0x000729f0 str r4, [sp, 8]                               |         var_8h = r4;
    0x000729f2 movs r1, 0x11                                 |         r1 = 0x11;
    0x000729f4 ldr r2, [pc, 0xb8]                            |         
    0x000729f6 mov r0, r7                                    |         r0 = r7;
    0x000729f8 ldr r6, [pc, 0xb8]                            |         
    0x000729fa movs r3, 0x3d                                 |         r3 = 0x3d;
    0x000729fc ldr r4, [pc, 0xb8]                            |         
    0x000729fe movt r1, 0x4000                               |         r1 = (r1 & 0xFFFF) | 0x40000000;
    0x00072a02 add r2, pc                                    |         r2 = 0xe54b6;
    0x00072a04 str r5, [sp, 0xc]                             |         var_ch = r5;
    0x00072a06 add r6, pc                                    |         r6 = 0xe54be;
    0x00072a08 adds r2, 7                                    |         r2 += 7;
    0x00072a0a add r4, pc                                    |         r4 = 0xe54c6;
    0x00072a0c strd r4, r6, [sp]                             |         __asm ("strd r4, r6, [sp]");
    0x00072a10 bl 0x71448                                    |         r0 = fcn_00071448 ();
    0x00072a14 subs r5, r0, 0                                |         r5 = r0 - 0;
    0x00072a16 bge 0x72956                                   |         
                                                             |     } while (r5 >= r0);
    0x00072a18 b 0x7283e                                     |     goto label_0;
                                                             | label_16:
    0x00072a1a ldr r4, [sp, 0xd0]                            |     r4 = *(arg_d0h);
    0x00072a1c mov r3, r8                                    |     r3 = r8;
    0x00072a1e mov r2, r7                                    |     r2 = r7;
    0x00072a20 mov r1, r6                                    |     r1 = r6;
    0x00072a22 str.w sb, [sp, 4]                             |     __asm ("str.w sb, [var_4h]");
    0x00072a26 bic r4, r4, 1                                 |     r4 = BIT_MASK (r4, 1);
    0x00072a2a str r4, [sp]                                  |     *(sp) = r4;
    0x00072a2c bl 0x727a8                                    |     r0 = fcn_000727a8 (r0, r1, r2, r3, r4, r5);
    0x00072a30 mov r5, r0                                    |     r5 = r0;
                                                             |     do {
                                                             | label_15:
    0x00072a32 ldr r0, [sp, 0x24]                            |         r0 = var_24h;
    0x00072a34 blx 0x8dac                                    |         fcn_00008dac ();
    0x00072a38 b 0x7283e                                     |         goto label_0;
                                                             | label_18:
    0x00072a3a movs r5, 0                                    |         r5 = 0;
    0x00072a3c b 0x7283e                                     |         goto label_0;
                                                             | label_17:
    0x00072a3e blx 0x9628                                    |         r0 = fcn_00009628 ();
    0x00072a42 ldr r5, [r0]                                  |         r5 = *(r0);
    0x00072a44 rsbs r5, r5, 0                                |         r5 -= ;
    0x00072a46 b 0x72a32                                     |         
                                                             |     } while (1);
                                                             | label_10:
    0x00072a48 blx 0x927c                                    |     fprintf_chk ()
                                                             | label_19:
    0x00072a4c ldr r2, [pc, 0x6c]                            |     
    0x00072a4e movs r3, 0xc                                  |     r3 = 0xc;
    0x00072a50 mov r1, r3                                    |     r1 = r3;
    0x00072a52 add r0, sp, 0x94                              |     r0 += var_94h;
    0x00072a54 add r2, pc                                    |     r2 = 0xe5514;
    0x00072a56 strd r2, r7, [sp]                             |     __asm ("strd r2, r7, [sp]");
    0x00072a5a movs r2, 1                                    |     r2 = 1;
    0x00072a5c blx 0x9110                                    |     fcn_00009110 ();
    0x00072a60 b 0x729d4                                     |     goto label_3;
                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x72ac0 */
                                                                     | #include <stdint.h>
                                                                     |  
                                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                     |  
    ; (fcn) fcn.00072ac0 ()                                          | void fcn_00072ac0 (int16_t arg_318h, int16_t arg1, uint32_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_8h_2;
                                                                     |     int16_t var_0h_2;
                                                                     |     int16_t var_4h_2;
                                                                     |     int8_t var_0h_4;
                                                                     |     int16_t var_8h;
                                                                     |     int32_t var_4h_3;
                                                                     |     int16_t var_fh;
                                                                     |     int32_t var_8h_3;
                                                                     |     int32_t var_ch;
                                                                     |     int32_t var_14h;
                                                                     |     int16_t var_0h_3;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x00072ac0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x00072ac4 sub sp, 0x24                                          |     
    0x00072ac6 add r7, sp, 8                                         |     r7 += var_8h;
    0x00072ac8 mov fp, r3                                            |     
    0x00072aca str r2, [r7]                                          |     *(r7) = r2;
    0x00072acc ldr r2, [pc, 0x1b0]                                   |     
    0x00072ace ldr r3, [pc, 0x1b4]                                   |     r3 = *(0x72c86);
    0x00072ad0 add r2, pc                                            |     r2 = 0xe5754;
    0x00072ad2 ldr r3, [r2, r3]                                      |     
    0x00072ad4 ldr r2, [r7, 0x48]                                    |     r2 = *((r7 + 0x48));
    0x00072ad6 ldr r3, [r3]                                          |     r3 = *(0xe5754);
    0x00072ad8 str r3, [r7, 0x14]                                    |     var_14h = r3;
    0x00072ada mov.w r3, 0                                           |     r3 = 0;
    0x00072ade ldr r3, [pc, 0x1a8]                                   |     
    0x00072ae0 str r2, [r7, 4]                                       |     var_4h_3 = r2;
    0x00072ae2 add r3, pc                                            |     r3 = 0xe5770;
    0x00072ae4 cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x00072ae6 beq.w 0x72c4c                                         |         goto label_3;
                                                                     |     }
    0x00072aea ldr r2, [pc, 0x1a0]                                   |     r2 = *(0x72c8e);
    0x00072aec ldr r3, [r3, r2]                                      |     r3 = *((r3 + r2));
    0x00072aee ldr r2, [r7, 4]                                       |     r2 = var_4h_3;
    0x00072af0 cmp r2, r3                                            |     
                                                                     |     if (r2 == r3) {
    0x00072af2 beq.w 0x72c60                                         |         goto label_4;
                                                                     |     }
    0x00072af6 mov r8, r0                                            |     r8 = r0;
    0x00072af8 mov r5, r1                                            |     r5 = r1;
                                                                     |     if (r0 != 0) {
    0x00072afa cbz r0, 0x72b0c                                       |         
    0x00072afc mov r1, r0                                            |         r1 = r0;
    0x00072afe movs r2, 1                                            |         r2 = 1;
    0x00072b00 mov r0, r5                                            |         r0 = r5;
    0x00072b02 bl 0x75208                                            |         fcn_00075208 (r0, r1, r2);
    0x00072b04 smull r2, r8, r1, r0                                  |         r2:r8 = r1 * r0;
    0x00072b06 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x00072b08 beq.w 0x72c74                                         |             goto label_5;
                                                                     |         }
                                                                     |     }
    0x00072b0c movs r1, 0x2f                                         |     r1 = 0x2f;
    0x00072b0e mov r0, r5                                            |     r0 = r5;
    0x00072b10 blx 0x8c90                                            |     r0 = fcn_00008c90 ();
    0x00072b14 cmp r5, r0                                            |     
    0x00072b16 it ne                                                 |     
                                                                     |     if (r5 != r0) {
    0x00072b18 cmpne r0, 0                                           |         __asm ("cmpne r0, 0");
                                                                     |     }
    0x00072b1a ite eq                                                |     
                                                                     |     if (r5 != r0) {
    0x00072b1c moveq r3, 1                                           |         r3 = 1;
                                                                     |     }
                                                                     |     if (r5 == r0) {
    0x00072b1e movne r3, 0                                           |         r3 = 0;
                                                                     |     }
    0x00072b20 str r3, [r7, 8]                                       |     var_8h_3 = r3;
                                                                     |     if (r5 == r0) {
    0x00072b22 beq 0x72bc8                                           |         goto label_6;
                                                                     |     }
    0x00072b24 subs r1, r0, r5                                       |     r1 = r0 - r5;
    0x00072b26 mov r0, r5                                            |     r0 = r5;
    0x00072b28 blx 0x92c8                                            |     r0 = fcn_000092c8 ();
    0x00072b2c add.w r3, r0, 8                                       |     r3 = r0 + 8;
    0x00072b30 mov r2, r0                                            |     r2 = r0;
    0x00072b32 bic r3, r3, 7                                         |     r3 = BIT_MASK (r3, 7);
    0x00072b36 ldr r4, [r7, 8]                                       |     r4 = var_8h_3;
    0x00072b38 sub.w sp, sp, r3                                      |     
    0x00072b3c mov r1, r5                                            |     r1 = r5;
    0x00072b3e add.w r0, sp, 0xf                                     |     r0 += var_fh;
    0x00072b42 lsrs r3, r0, 3                                        |     r3 = r0 >> 3;
    0x00072b44 bic r0, r0, 7                                         |     r0 = BIT_MASK (r0, 7);
    0x00072b48 strb.w r4, [r2, r3, lsl 3]                            |     offset_0 = r3 << 3;
                                                                     |     *((r2 + offset_0)) = r4;
    0x00072b4c blx 0x8f9c                                            |     fcn_00008f9c ();
    0x00072b50 movs r1, 1                                            |     r1 = 1;
    0x00072b52 bl 0x79c8c                                            |     r0 = fcn_00079c8c ();
    0x00072b56 cmp r0, 0                                             |     
                                                                     |     if (r0 > 0) {
    0x00072b58 bgt 0x72bc8                                           |         goto label_6;
                                                                     |     }
                                                                     |     if (r0 == 0) {
    0x00072b5a beq.w 0x72c74                                         |         goto label_5;
                                                                     |     }
    0x00072b5e ldr.w sb, [pc, 0x130]                                 |     
    0x00072b62 mov r0, r5                                            |     r0 = r5;
    0x00072b64 add sb, pc                                            |     sb = 0xe57fa;
    0x00072b66 mov r1, sb                                            |     r1 = sb;
    0x00072b68 blx 0x9428                                            |     r0 = fcn_00009428 ();
    0x00072b6c adds r4, r5, r0                                       |     r4 = r5 + r0;
                                                                     |     do {
                                                                     | label_2:
    0x00072b6e mov r0, r5                                            |         r0 = r5;
    0x00072b70 mov sl, sp                                            |         sl = sp;
    0x00072b72 blx 0x8f38                                            |         fcn_00008f38 ();
    0x00072b76 adds r0, 8                                            |         r0 += 8;
    0x00072b78 mov r1, sb                                            |         r1 = sb;
    0x00072b7a bic r0, r0, 7                                         |         r0 = BIT_MASK (r0, 7);
    0x00072b7e sub.w sp, sp, r0                                      |         
    0x00072b82 mov r0, r4                                            |         r0 = r4;
    0x00072b84 blx 0x9488                                            |         r0 = fcn_00009488 ();
    0x00072b88 adds r2, r4, r0                                       |         r2 = r4 + r0;
    0x00072b8a mov r1, sb                                            |         r1 = sb;
    0x00072b8c mov r0, r2                                            |         r0 = r2;
    0x00072b8e str r2, [r7, 0xc]                                     |         var_ch = r2;
    0x00072b90 blx 0x9428                                            |         fcn_00009428 ();
    0x00072b94 ldr r2, [r7, 0xc]                                     |         r2 = var_ch;
    0x00072b96 add r6, sp, 8                                         |         r6 += var_8h;
    0x00072b98 ldrb r3, [r2, r0]                                     |         r3 = *((r2 + r0));
    0x00072b9a adds r4, r2, r0                                       |         r4 = r2 + r0;
    0x00072b9c cmp r3, 0                                             |         
                                                                     |         if (r3 == 0) {
    0x00072b9e beq 0x72c46                                           |             goto label_7;
                                                                     |         }
    0x00072ba0 subs r2, r2, r5                                       |         r2 -= r5;
    0x00072ba2 mov r1, r5                                            |         r1 = r5;
    0x00072ba4 mov r0, r6                                            |         r0 = r6;
    0x00072ba6 str r2, [r7, 0xc]                                     |         var_ch = r2;
    0x00072ba8 blx 0x8f9c                                            |         fcn_00008f9c ();
    0x00072bac ldrd r3, r2, [r7, 8]                                  |         __asm ("ldrd r3, r2, [var_8h_3]");
    0x00072bae adds r2, 2                                            |         r2 += 2;
    0x00072bb0 strb r3, [r6, r2]                                     |         *((r6 + r2)) = r3;
    0x00072bb2 cmp.w r8, 0                                           |         
                                                                     |         if (r8 == 0) {
    0x00072bb6 beq 0x72be6                                           |             goto label_8;
                                                                     |         }
    0x00072bb8 movs r2, 1                                            |         r2 = 1;
    0x00072bba mov r1, r6                                            |         r1 = r6;
    0x00072bbc mov r0, r8                                            |         r0 = r8;
    0x00072bbe bl 0x75208                                            |         fcn_00075208 (r0, r1, r2);
    0x00072bc0 invalid                                               |         
                                                                     | label_0:
    0x00072bc4 mov sp, sl                                            |         
    0x00072bc6 b 0x72b6e                                             |         
                                                                     |     } while (1);
                                                                     | label_6:
    0x00072bc8 movs r0, 0                                            |     r0 = 0;
                                                                     | label_1:
    0x00072bca ldr r2, [pc, 0xc8]                                    |     
    0x00072bcc ldr r3, [pc, 0xb4]                                    |     r3 = *(0x72c84);
    0x00072bce add r2, pc                                            |     r2 = 0xe5868;
    0x00072bd0 ldr r3, [r2, r3]                                      |     r3 = *(0xe5868);
    0x00072bd2 ldr r2, [r3]                                          |     r2 = *(0xe5868);
    0x00072bd4 ldr r3, [r7, 0x14]                                    |     r3 = var_14h;
    0x00072bd6 eors r2, r3                                           |     r2 ^= r3;
    0x00072bd8 mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x00072bdc bne 0x72c7a                                           |         goto label_9;
                                                                     |     }
    0x00072bde adds r7, 0x1c                                         |     r7 += 0x1c;
    0x00072be0 mov sp, r7                                            |     
    0x00072be2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_8:
    0x00072be6 mov r0, fp                                            |     r0 = fp;
    0x00072be8 bl 0x7d7d0                                            |     r0 = fcn_0007d7d0 (r0);
                                                                     |     if (r0 == 0) {
    0x00072bec cbnz r0, 0x72c06                                      |         
    0x00072bee ldr r0, [r7, 0x40]                                    |         r0 = *((r7 + 0x40));
    0x00072bf0 bl 0x7d7d0                                            |         fcn_0007d7d0 (r0);
    0x00072bf4 ldr r3, [r7, 0x44]                                    |         r3 = *((r7 + 0x44));
    0x00072bf6 eor r0, r0, 1                                         |         r0 ^= 1;
    0x00072bfa cmp r3, 0                                             |         
    0x00072bfc ite ne                                                |         
                                                                     |         if (r3 == 0) {
    0x00072bfe movne r0, 0                                           |             r0 = 0;
                                                                     |         }
                                                                     |         if (r3 != 0) {
    0x00072c00 andeq r0, r0, 1                                       |             r0 &= 1;
                                                                     |         }
                                                                     |         if (r0 != 0) {
    0x00072c04 cbnz r0, 0x72c2c                                      |             goto label_10;
                                                                     |         }
                                                                     |     }
    0x00072c06 ldr r3, [r7, 4]                                       |     r3 = var_4h_3;
    0x00072c08 mov r0, r6                                            |     r0 = r6;
    0x00072c0a mov r2, fp                                            |     r2 = fp;
    0x00072c0c str r3, [sp, 4]                                       |     var_4h_2 = r3;
    0x00072c0e ldr r3, [r7, 0x44]                                    |     r3 = *((r7 + 0x44));
    0x00072c10 str r3, [sp]                                          |     *(sp) = r3;
    0x00072c12 ldr r3, [r7, 0x40]                                    |     r3 = *((r7 + 0x40));
    0x00072c14 ldr r1, [r7]                                          |     r1 = *(r7);
    0x00072c16 bl 0x727a8                                            |     r0 = fcn_000727a8 (r0, r1, r2, r3, r4, r5);
    0x00072c1a adds.w r3, r0, 0x11                                   |     r3 = r0 + 0x11;
    0x00072c1c lsls r1, r2, 0xc                                      |     r1 = r2 << 0xc;
    0x00072c1e it ne                                                 |     
                                                                     |     if (r1 == r2) {
    0x00072c20 movne r3, 1                                           |         r3 = 1;
                                                                     |     }
    0x00072c22 ands.w r3, r3, r0, lsr 31                             |     r3 &= (r0 >> 31);
                                                                     |     if (r3 == r3) {
    0x00072c26 beq 0x72bc4                                           |         goto label_0;
                                                                     |     }
                                                                     |     do {
    0x00072c28 mov sp, sl                                            |         
    0x00072c2a b 0x72bca                                             |         goto label_1;
                                                                     | label_10:
    0x00072c2c ldrd r1, r3, [r7]                                     |         __asm ("ldrd r1, r3, [r7]");
    0x00072c30 mov r0, r6                                            |         r0 = r6;
    0x00072c32 blx r3                                                |         r0 = uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
    0x00072c34 adds.w r3, r0, 0x11                                   |         r3 = r0 + 0x11;
    0x00072c38 it ne                                                 |         
                                                                     |         if (r3 == r0) {
    0x00072c3a movne r3, 1                                           |             r3 = 1;
                                                                     |         }
    0x00072c3c ands.w r3, r3, r0, lsr 31                             |         r3 &= (r0 >> 31);
    0x00072c40 bne 0x72c28                                           |         
                                                                     |     } while (r3 != r3);
    0x00072c42 mov sp, sl                                            |     
    0x00072c44 b 0x72b6e                                             |     goto label_2;
                                                                     | label_7:
    0x00072c46 mov r0, r3                                            |     r0 = r3;
    0x00072c48 mov sp, sl                                            |     
    0x00072c4a b 0x72bca                                             |     goto label_1;
                                                                     | label_3:
    0x00072c4c ldr r1, [pc, 0x48]                                    |     
    0x00072c4e movs r2, 0x65                                         |     r2 = 0x65;
    0x00072c50 ldr r3, [pc, 0x48]                                    |     
    0x00072c52 ldr r0, [pc, 0x4c]                                    |     
    0x00072c54 add r1, pc                                            |     r1 = 0xe58f0;
    0x00072c56 add r3, pc                                            |     r3 = 0xe58f6;
    0x00072c58 adds r1, 7                                            |     r1 += 7;
    0x00072c5a add r0, pc                                            |     r0 = 0xe5900;
    0x00072c5c bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_4:
    0x00072c60 ldr r1, [pc, 0x40]                                    |     
    0x00072c62 movs r2, 0x66                                         |     r2 = 0x66;
    0x00072c64 ldr r3, [pc, 0x40]                                    |     
    0x00072c66 ldr r0, [pc, 0x44]                                    |     
    0x00072c68 add r1, pc                                            |     r1 = 0xe5910;
    0x00072c6a add r3, pc                                            |     r3 = 0xe5916;
    0x00072c6c adds r1, 7                                            |     r1 += 7;
    0x00072c6e add r0, pc                                            |     r0 = 0xe5920;
    0x00072c70 bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_5:
    0x00072c74 mvn r0, 0x13                                          |     r0 = ~0x13;
    0x00072c78 b 0x72bca                                             |     goto label_1;
                                                                     | label_9:
    0x00072c7a blx 0x927c                                            |     fprintf_chk ()
    0x00072c7e nop                                                   |     
    0x00072c80 ldrsh r4, [r6, r7]                                    |     r4 = *((r6 + r7));
    0x00072c82 movs r5, r0                                           |     r5 = r0;
    0x00072c84 lsls r0, r0, 0x13                                     |     r0 <<= 0x13;
    0x00072c86 movs r0, r0                                           |     
    0x00072c88 ldrsh r2, [r4, r7]                                    |     r2 = *((r4 + r7));
    0x00072c8a movs r5, r0                                           |     r5 = r0;
    0x00072c8c lsls r0, r4, 0x11                                     |     r0 = r4 << 0x11;
    0x00072c8e movs r0, r0                                           |     
    0x00072c90 subs.w r0, ip, 0x810000                               |     r0 = ip - 0x810000;
    0x00072c92 movs r1, r0                                           |     r1 = r0;
    0x00072c94 ldrsh r6, [r6, r3]                                    |     r6 = *((r6 + r3));
    0x00072c96 movs r5, r0                                           |     r5 = r0;
    0x00072c98 cmp r2, 0x48                                          |     
    0x00072c9a movs r3, r0                                           |     r3 = r0;
    0x00072c9c cmp r3, 0x9e                                          |     
    0x00072c9e movs r3, r0                                           |     r3 = r0;
    0x00072ca0 add r2, sp, 0x318                                     |     r2 += arg_318h;
    0x00072ca2 movs r2, r0                                           |     r2 = r0;
    0x00072ca4 cmp r2, 0x34                                          |     
    0x00072ca6 movs r3, r0                                           |     r3 = r0;
    0x00072ca8 cmp r3, 0x8a                                          |     
    0x00072caa movs r3, r0                                           |     r3 = r0;
    0x00072cac cmp r3, 0x62                                          |     
    0x00072cae movs r3, r0                                           |     r3 = r0;
                                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x72de0 */
                                             | #include <stdint.h>
                                             |  
                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                             |  
    ; (fcn) fcn.00072de0 ()                  | void fcn_00072de0 (uint32_t arg1) {
                                             |     int16_t var_0h;
                                             |     int32_t var_4h;
                                             |     int16_t var_0h_2;
                                             |     r0 = arg1;
    0x00072de0 invalid                       |     
    0x00072de4 ldr r3, [pc, 0x84]            |     
    0x00072de6 push {r4, r5, r6, r7, lr}     |     
    0x00072de8 sub sp, 0xc                   |     
    0x00072dea add r2, pc                    |     r2 += pc;
    0x00072dec add r7, sp, 0                 |     r7 += var_0h;
    0x00072dee mov r5, r0                    |     r5 = r0;
    0x00072df0 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x00072df2 ldr r3, [r3]                  |     r3 = *(0x72e6c);
    0x00072df4 str r3, [r7, 4]               |     var_4h = r3;
    0x00072df6 mov.w r3, 0                   |     r3 = 0;
    0x00072dfa blx 0x8bb0                    |     r0 = get_current_dir_name ();
                                             |     if (r0 == 0) {
    0x00072dfe cbz r0, 0x72e5a               |         goto label_0;
                                             |     }
    0x00072e00 subs r6, r0, r5               |     r6 = r0 - r5;
    0x00072e02 mov r4, r0                    |     r4 = r0;
    0x00072e04 cmp.w r6, 0x1000              |     
                                             |     if (r6 <= 0x1000) {
    0x00072e08 bgt 0x72e16                   |         
    0x00072e0a ldr r1, [pc, 0x64]            |         
    0x00072e0c add r1, pc                    |         r1 = 0xe5c82;
    0x00072e0e blx 0x9428                    |         fcn_00009428 ();
    0x00072e12 ldrb r4, [r4, r0]             |         r4 = *((r4 + r0));
                                             |         if (r4 == 0) {
    0x00072e14 cbz r4, 0x72e32               |             goto label_1;
                                             |         }
                                             |     }
    0x00072e16 movs r0, 0                    |     r0 = 0;
                                             |     do {
    0x00072e18 ldr r2, [pc, 0x58]            |         
    0x00072e1a ldr r3, [pc, 0x50]            |         r3 = *(0x72e6e);
    0x00072e1c add r2, pc                    |         r2 = 0xe5c94;
    0x00072e1e ldr r3, [r2, r3]              |         r3 = *(0xe5c94);
    0x00072e20 ldr r2, [r3]                  |         r2 = *(0xe5c94);
    0x00072e22 ldr r3, [r7, 4]               |         r3 = var_4h;
    0x00072e24 eors r2, r3                   |         r2 ^= r3;
    0x00072e26 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00072e2a bne 0x72e62                   |             goto label_2;
                                             |         }
    0x00072e2c adds r7, 0xc                  |         r7 += 0xc;
    0x00072e2e mov sp, r7                    |         
    0x00072e30 pop {r4, r5, r6, r7, pc}      |         
                                             | label_1:
    0x00072e32 mov r1, r6                    |         r1 = r6;
    0x00072e34 mov r0, r5                    |         r0 = r5;
    0x00072e36 blx 0x92c8                    |         r0 = fcn_000092c8 ();
    0x00072e3a add.w r3, r0, 8               |         r3 = r0 + 8;
    0x00072e3e mov r2, r0                    |         r2 = r0;
    0x00072e40 bic r3, r3, 7                 |         r3 = BIT_MASK (r3, 7);
    0x00072e44 mov r1, r5                    |         r1 = r5;
    0x00072e46 sub.w sp, sp, r3              |         
    0x00072e4a mov r0, sp                    |         r0 = sp;
    0x00072e4c strb.w r4, [sp, r2]           |         *((sp + r2)) = r4;
    0x00072e50 blx 0x8f9c                    |         fcn_00008f9c ();
    0x00072e52 invalid                       |         
    0x00072e54 bl 0x75c84                    |         fcn_00075c84 (r0);
    0x00072e56 vaba.u16 q7, q11, q7          |         __asm ("vaba.u16 q7, q11, q7");
                                             | label_0:
    0x00072e5a mov r0, r5                    |         r0 = r5;
    0x00072e5c bl 0x75c84                    |         fcn_00075c84 (r0);
    0x00072e60 b 0x72e18                     |         
                                             |     } while (1);
                                             | label_2:
    0x00072e62 blx 0x927c                    |     fprintf_chk ()
    0x00072e66 nop                           |     
    0x00072e68 ldrb r2, [r3, r3]             |     r2 = *((r3 + r3));
    0x00072e6a movs r5, r0                   |     r5 = r0;
    0x00072e6c lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00072e6e movs r0, r0                   |     
    0x00072e70 invalid                       |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x72e78 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00072e78 ()                  | void fcn_00072e78 (int16_t arg1, int16_t arg2, uint32_t arg3, uint32_t arg4) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     int16_t var_8h;
                                             |     int16_t var_ch;
                                             |     int16_t var_2h;
                                             |     int16_t var_2ch;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
                                             |     r3 = arg4;
                                             |     if (? < ?) {
    0x00072e78 strhs fp, [r0], -0x5f0        |         *(r0) = fp;
                                             |         r0 += -0x5f0;
                                             |     }
    0x00072e7c ldr r6, [pc, 0x130]           |     
    0x00072e7e sub sp, 0x34                  |     
    0x00072e80 ldr r5, [pc, 0x130]           |     r5 = *(0x72fb4);
    0x00072e82 add r6, pc                    |     r6 = 0xe5e36;
    0x00072e84 ldr r5, [r6, r5]              |     
    0x00072e86 ldr r5, [r5]                  |     r5 = *(0xe5e36);
    0x00072e88 str r5, [sp, 0x2c]            |     var_2ch = r5;
    0x00072e8a mov.w r5, 0                   |     r5 = 0;
    0x00072e8e str r4, [sp, 8]               |     var_8h = r4;
    0x00072e90 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00072e92 beq 0x72f7c                   |         goto label_1;
                                             |     }
    0x00072e94 mov r6, r3                    |     r6 = r3;
    0x00072e96 bics r3, r2, 0x1400           |     __asm ("bics r3, r2, aav.0x000000ff");
                                             |     if (r3 != 0) {
    0x00072e9a bne 0x72f90                   |         goto label_2;
                                             |     }
    0x00072e9c lsls r4, r2, 0x13             |     r4 = r2 << 0x13;
                                             |     if (r4 < r2) {
    0x00072e9e bpl 0x72ec2                   |         
                                             |         if (r1 != 0) {
    0x00072ea0 cbz r1, 0x72ea6               |             
    0x00072ea2 ldrb r3, [r1]                 |             r3 = *(r1);
                                             |             if (r3 != 0) {
    0x00072ea4 cbnz r3, 0x72ec2              |                 goto label_3;
                                             |             }
                                             |         }
    0x00072ea6 ldr r1, [pc, 0x110]           |         
    0x00072ea8 movs r3, 0x1e                 |         r3 = 0x1e;
    0x00072eaa add r4, sp, 0xc               |         r4 += var_ch;
    0x00072eac str r0, [sp, 4]               |         var_4h = r0;
    0x00072eae movs r2, 1                    |         r2 = 1;
    0x00072eb0 mov r0, r4                    |         r0 = r4;
    0x00072eb2 add r1, pc                    |         r1 = 0xe5e70;
    0x00072eb4 mov.w r5, -1                  |         r5 = -1;
    0x00072eb8 str r1, [sp]                  |         *(sp) = r1;
    0x00072eba mov r1, r3                    |         r1 = r3;
    0x00072ebc blx 0x9110                    |         fcn_00009110 ();
    0x00072ec0 b 0x72eee                     |         
                                             |     } else {
                                             | label_3:
    0x00072ec2 tst.w r2, 0x400               |         
    0x00072ec6 ite ne                        |         
                                             |         if ((r2 & 0x400) == 0) {
    0x00072ec8 movne r2, 0x280000            |             r2 = 0x280000;
                                             |         }
                                             |         if ((r2 & 0x400) == 0) {
    0x00072ecc mov.w r2, 0x288000            |             r2 = 0x288000;
                                             |         }
    0x00072ed0 blx 0x8acc                    |         r0 = isoc99_fscanf ();
    0x00072ed4 subs r5, r0, 0                |         r5 = r0 - 0;
                                             |         if (r5 < r0) {
    0x00072ed6 blt 0x72f3c                   |             goto label_4;
                                             |         }
    0x00072ed8 ldr r2, [pc, 0xe0]            |         
    0x00072eda add r4, sp, 0xc               |         r4 += var_ch;
    0x00072edc movs r3, 0x1e                 |         r3 = 0x1e;
    0x00072ede mov r0, r4                    |         r0 = r4;
    0x00072ee0 mov r1, r3                    |         r1 = r3;
    0x00072ee2 add r2, pc                    |         r2 = 0xe5ea2;
    0x00072ee4 strd r2, r5, [sp]             |         __asm ("strd r2, r5, [sp]");
    0x00072ee8 movs r2, 1                    |         r2 = 1;
    0x00072eea blx 0x9110                    |         fcn_00009110 ();
                                             |     }
    0x00072eee movs r3, 0                    |     r3 = 0;
    0x00072ef0 mov r0, r4                    |     r0 = r4;
    0x00072ef2 add r2, sp, 8                 |     r2 += var_8h;
    0x00072ef4 mov.w r1, -1                  |     r1 = -1;
    0x00072ef8 bl 0x6a7bc                    |     fcn_0006a7bc (r0, r1, r2);
    0x00072efc adds r3, r0, 2                |     r3 += var_2h;
    0x00072efe mov r4, r0                    |     r4 = r0;
                                             |     if (r3 == var_2h) {
    0x00072f00 beq 0x72fa4                   |         goto label_5;
                                             |     }
    0x00072f02 cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x00072f04 blt 0x72f44                   |         goto label_0;
                                             |     }
    0x00072f06 ldr r7, [sp, 8]               |     r7 = var_8h;
    0x00072f08 ldr r1, [pc, 0xb4]            |     
    0x00072f0a mov r0, r7                    |     r0 = r7;
    0x00072f0c add r1, pc                    |     r1 = 0xe5ed0;
    0x00072f0e bl 0x803c0                    |     r0 = fcn_000803c0 (r0, r1);
    0x00072f12 mov r4, r0                    |     r4 = r0;
    0x00072f14 cbz r0, 0x72f6a               |     
                                             |     while (1) {
    0x00072f16 ldr r7, [pc, 0xac]            |         
    0x00072f18 mov r0, r4                    |         r0 = r4;
    0x00072f1a add r7, pc                    |         r7 = 0xe5ee4;
    0x00072f1c mov r1, r7                    |         r1 = r7;
    0x00072f1e blx 0x9428                    |         r0 = fcn_00009428 ();
    0x00072f22 add r4, r0                    |         r4 += r0;
    0x00072f24 mov r1, r7                    |         r1 = r7;
    0x00072f26 mov r0, r4                    |         r0 = r4;
    0x00072f28 blx 0x9488                    |         fcn_00009488 ();
    0x00072f2c movs r3, 0                    |         r3 = 0;
    0x00072f2e mov r1, r6                    |         r1 = r6;
    0x00072f30 strb r3, [r4, r0]             |         *((r4 + r0)) = r3;
    0x00072f32 mov r0, r4                    |         r0 = r4;
    0x00072f34 bl 0x746ac                    |         r0 = fcn_000746ac (r0, r1);
    0x00072f38 mov r4, r0                    |         r4 = r0;
    0x00072f3a b 0x72f44                     |         goto label_0;
                                             | label_4:
    0x00072f3c blx 0x9628                    |         r0 = fcn_00009628 ();
    0x00072f40 ldr r4, [r0]                  |         r4 = *(r0);
    0x00072f42 rsbs r4, r4, 0                |         r4 -= ;
                                             | label_0:
    0x00072f44 mov r0, r5                    |         r0 = r5;
    0x00072f46 bl 0x69a04                    |         fcn_00069a04 (r0, r1, r2, r3);
    0x00072f4a ldr r0, [sp, 8]               |         r0 = var_8h;
    0x00072f4c blx 0x8dac                    |         fcn_00008dac ();
    0x00072f50 ldr r2, [pc, 0x74]            |         
    0x00072f52 ldr r3, [pc, 0x60]            |         r3 = *(0x72fb6);
    0x00072f54 add r2, pc                    |         r2 = 0xe5f20;
    0x00072f56 ldr r3, [r2, r3]              |         r3 = *(0xe5f20);
    0x00072f58 ldr r2, [r3]                  |         r2 = *(0xe5f20);
    0x00072f5a ldr r3, [sp, 0x2c]            |         r3 = var_2ch;
    0x00072f5c eors r2, r3                   |         r2 ^= r3;
    0x00072f5e mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00072f62 bne 0x72faa                   |             goto label_6;
                                             |         }
    0x00072f64 mov r0, r4                    |         r0 = r4;
    0x00072f66 add sp, 0x34                  |         
    0x00072f68 pop {r4, r5, r6, r7, pc}      |         
    0x00072f6a ldr r1, [pc, 0x60]            |         
    0x00072f6c mov r0, r7                    |         r0 = r7;
    0x00072f6e add r1, pc                    |         r1 = 0xe5f40;
    0x00072f70 blx 0x9164                    |         fcn_00009164 ();
    0x00072f72 ldrd fp, r1, [r8], 0x2c0      |         __asm ("ldrd fp, r1, [r8], aav.0x000000ff");
    0x00072f76 add.w r4, r0, 8               |         r4 = r0 + 8;
    0x00072f7a b 0x72f16                     |         
                                             |     }
                                             | label_1:
    0x00072f7c ldr r1, [pc, 0x50]            |     
    0x00072f7e movs r2, 0x67                 |     r2 = 0x67;
    0x00072f80 ldr r3, [pc, 0x50]            |     
    0x00072f82 ldr r0, [pc, 0x54]            |     
    0x00072f84 add r1, pc                    |     r1 = 0xe5f58;
    0x00072f86 add r3, pc                    |     r3 = 0xe5f5e;
    0x00072f88 adds r1, 7                    |     r1 += 7;
    0x00072f8a add r0, pc                    |     r0 = 0xe5f68;
    0x00072f8c bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_2:
    0x00072f90 ldr r1, [pc, 0x48]            |     
    0x00072f92 movs r2, 0x68                 |     r2 = 0x68;
    0x00072f94 ldr r3, [pc, 0x48]            |     
    0x00072f96 ldr r0, [pc, 0x4c]            |     
    0x00072f98 add r1, pc                    |     r1 = 0xe5f78;
    0x00072f9a add r3, pc                    |     r3 = 0xe5f7e;
    0x00072f9c adds r1, 7                    |     r1 += 7;
    0x00072f9e add r0, pc                    |     r0 = 0xe5f88;
    0x00072fa0 bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_5:
    0x00072fa4 mvn r4, 0x5e                  |     r4 = ~0x5e;
    0x00072fa8 b 0x72f44                     |     goto label_0;
                                             | label_6:
    0x00072faa blx 0x927c                    |     fprintf_chk ()
    0x00072fae nop                           |     
    0x00072fb0 ldrb r2, [r0, r1]             |     r2 = *((r0 + r1));
    0x00072fb2 movs r5, r0                   |     r5 = r0;
    0x00072fb4 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00072fb6 movs r0, r0                   |     
    0x00072fb8 cmp r1, 0xfa                  |     
    0x00072fba movs r3, r0                   |     r3 = r0;
    0x00072fbc cmp r1, 0xca                  |     
    0x00072fbe movs r3, r0                   |     r3 = r0;
    0x00072fc0 cmp r1, 0x8c                  |     
    0x00072fc2 movs r3, r0                   |     r3 = r0;
    0x00072fc4 subs r2, 0x22                 |     r2 -= 0x22;
    0x00072fc6 movs r1, r0                   |     r1 = r0;
    0x00072fc8 ldrh r0, [r6, r5]             |     r0 = *((r6 + r5));
    0x00072fca movs r5, r0                   |     r5 = r0;
    0x00072fcc cmp r1, 0x32                  |     
    0x00072fce movs r3, r0                   |     r3 = r0;
    0x00072fd0 cmp r0, 0xb0                  |     
    0x00072fd2 movs r3, r0                   |     r3 = r0;
    0x00072fd4 cmp r1, 0x9e                  |     
    0x00072fd6 movs r3, r0                   |     r3 = r0;
    0x00072fd8 cmp r0, 0xce                  |     
    0x00072fda movs r3, r0                   |     r3 = r0;
    0x00072fdc cmp r0, 0x9c                  |     
    0x00072fde movs r3, r0                   |     r3 = r0;
    0x00072fe0 cmp r1, 0x8a                  |     
    0x00072fe2 movs r3, r0                   |     r3 = r0;
    0x00072fe4 cmp r0, 0xc6                  |     
    0x00072fe6 movs r3, r0                   |     r3 = r0;
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x73044 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00073044 ()                                      | void fcn_00073044 (int16_t arg_40h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch_2;
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h_2;
                                                                 |     int16_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00073044 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x00073048 sub sp, 0x1c                                      |     
    0x0007304a ldr r5, [pc, 0xfc]                                |     
    0x0007304c mov r8, r3                                        |     r8 = r3;
    0x0007304e ldr r4, [pc, 0xfc]                                |     r4 = *(0x7314e);
    0x00073050 ldr r3, [sp, 0x40]                                |     r3 = *(arg_40h);
    0x00073052 add r5, pc                                        |     r5 = 0xe61a0;
    0x00073054 ldr r4, [r5, r4]                                  |     
    0x00073056 bics r3, r3, 0x1400                               |     __asm ("bics r3, r3, aav.0x000000ff");
    0x0007305a ldr r4, [r4]                                      |     r4 = *(0xe61a0);
    0x0007305c str r4, [sp, 0x14]                                |     var_14h = r4;
    0x0007305e mov.w r4, 0                                       |     r4 = 0;
    0x00073062 str r3, [sp, 0xc]                                 |     var_ch = r3;
                                                                 |     if (? != ?) {
    0x00073064 bne 0x73120                                       |         goto label_1;
                                                                 |     }
    0x00073066 mov r6, r0                                        |     r6 = r0;
    0x00073068 mov r7, r1                                        |     r7 = r1;
    0x0007306a mov sb, r2                                        |     sb = r2;
    0x0007306c movs r4, 0x80                                     |     r4 = 0x80;
    0x0007306e mov.w sl, -1                                      |     sl = -1;
    0x00073072 add.w fp, sp, 0x10                                |     
    0x00073076 b 0x73080                                         |     
                                                                 |     while (r3 <= 9) {
    0x00073078 mov r0, r5                                        |         r0 = r5;
    0x0007307a mov r4, r3                                        |         r4 = r3;
    0x0007307c blx 0x8dac                                        |         fcn_00008dac ();
    0x00073080 add.w r1, r4, 8                                   |         r1 = r4 + 8;
    0x00073084 movs r0, 1                                        |         r0 = 1;
    0x00073086 str.w sl, [sp, 0x10]                              |         __asm ("str.w sl, [var_10h_2]");
    0x0007308a blx 0x8c20                                        |         r0 = fcn_00008c20 ();
    0x0007308e mov r5, r0                                        |         r5 = r0;
    0x00073090 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00073092 beq 0x7313a                                       |             goto label_2;
                                                                 |         }
    0x00073094 str r4, [r0]                                      |         *(r0) = r4;
    0x00073096 mov r2, r0                                        |         r2 = r0;
    0x00073098 ldr r0, [sp, 0x40]                                |         r0 = *(arg_40h);
    0x0007309a mov r3, fp                                        |         r3 = fp;
    0x0007309c mov r1, r7                                        |         r1 = r7;
    0x0007309e str r0, [sp]                                      |         *(sp) = r0;
    0x000730a0 mov r0, r6                                        |         r0 = r6;
    0x000730a2 blx 0x8ed8                                        |         r0 = fcn_00008ed8 ();
    0x000730a6 cmp r0, 0                                         |         
                                                                 |         if (r0 >= 0) {
    0x000730a8 bge 0x73100                                       |             goto label_3;
                                                                 |         }
    0x000730aa blx 0x9628                                        |         r0 = fcn_00009628 ();
    0x000730ae ldr r3, [r0]                                      |         r3 = *(r0);
    0x000730b0 cmp r3, 0x4b                                      |         
                                                                 |         if (r3 != 0x4b) {
    0x000730b2 bne 0x7311a                                       |             goto label_4;
                                                                 |         }
    0x000730b4 clz r3, sb                                        |         r3 &= sb;
    0x000730b8 cmp.w r8, 0                                       |         
    0x000730bc lsr.w r3, r3, 5                                   |         r3 >>= 5;
    0x000730c0 it eq                                             |         
                                                                 |         if (r8 != 0) {
    0x000730c2 moveq r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r3 != 0) {
    0x000730c4 cbz r3, 0x730cc                                   |             
    0x000730c6 ldr r3, [sp, 0x10]                                |             r3 = var_10h_2;
    0x000730c8 cmp r3, 0                                         |             
                                                                 |             if (r3 >= 0) {
    0x000730ca bge 0x73134                                       |                 goto label_5;
                                                                 |             }
                                                                 |         }
    0x000730cc ldr r3, [r5]                                      |         r3 = *(r5);
    0x000730ce cmn.w r3, 9                                       |         
    0x000730d2 it ls                                             |         
                                                                 |         if (r3 <= 9) {
    0x000730d4 cmpls r4, r3                                      |             __asm ("cmpls r4, r3");
                                                                 |         }
    0x000730d6 blo 0x73078                                       |         
                                                                 |     }
    0x000730d8 mvn r3, 0x4a                                      |     r3 = ~0x4a;
    0x000730dc str r3, [sp, 0xc]                                 |     var_ch = r3;
                                                                 |     do {
                                                                 | label_0:
    0x000730de mov r0, r5                                        |         r0 = r5;
    0x000730e0 blx 0x8dac                                        |         fcn_00008dac ();
    0x000730e4 ldr r2, [pc, 0x68]                                |         
    0x000730e6 ldr r3, [pc, 0x64]                                |         r3 = *(0x7314e);
    0x000730e8 add r2, pc                                        |         r2 = 0xe623c;
    0x000730ea ldr r3, [r2, r3]                                  |         r3 = *(0xe623c);
    0x000730ec ldr r2, [r3]                                      |         r2 = *(0xe623c);
    0x000730ee ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x000730f0 eors r2, r3                                       |         r2 ^= r3;
    0x000730f2 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000730f6 bne 0x73142                                       |             goto label_6;
                                                                 |         }
    0x000730f8 ldr r0, [sp, 0xc]                                 |         r0 = var_ch;
    0x000730fa add sp, 0x1c                                      |         
    0x000730fc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_3:
    0x00073100 cmp.w sb, 0                                       |         
                                                                 |         if (sb != 0) {
    0x00073104 beq 0x7310c                                       |             
    0x00073106 str.w r5, [sb]                                    |             __asm ("str.w r5, [sb]");
    0x0007310a movs r5, 0                                        |             r5 = 0;
                                                                 |         }
    0x0007310c cmp.w r8, 0                                       |         
    0x00073110 beq 0x730de                                       |         
                                                                 |     } while (r8 == 0);
    0x00073112 ldr r3, [sp, 0x10]                                |     r3 = var_10h_2;
    0x00073114 str.w r3, [r8]                                    |     __asm ("str.w r3, [r8]");
    0x00073116 adds r0, 0                                        |     r0 += 0;
    0x00073118 b 0x730de                                         |     goto label_0;
                                                                 | label_4:
    0x0007311a rsbs r3, r3, 0                                    |     r3 -= ;
    0x0007311c str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0007311e b 0x730de                                         |     goto label_0;
                                                                 | label_1:
    0x00073120 ldr r1, [pc, 0x30]                                |     
    0x00073122 movs r2, 0x28                                     |     r2 = 0x28;
    0x00073124 ldr r3, [pc, 0x30]                                |     
    0x00073126 ldr r0, [pc, 0x34]                                |     
    0x00073128 add r1, pc                                        |     r1 = 0xe6280;
    0x0007312a add r3, pc                                        |     r3 = 0xe6286;
    0x0007312c adds r1, 7                                        |     r1 += 7;
    0x0007312e add r0, pc                                        |     r0 = 0xe6290;
    0x00073130 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
    0x00073132 invalid                                           |     
                                                                 | label_5:
    0x00073134 str.w r3, [r8]                                    |     __asm ("str.w r3, [r8]");
    0x00073138 b 0x730de                                         |     goto label_0;
                                                                 | label_2:
    0x0007313a mvn r3, 0xb                                       |     r3 = ~0xb;
    0x0007313e str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00073140 b 0x730de                                         |     goto label_0;
                                                                 | label_6:
    0x00073142 blx 0x927c                                        |     fprintf_chk ()
    0x00073146 nop                                               |     
    0x00073148 ldrh r2, [r6, r1]                                 |     r2 = *((r6 + r1));
    0x0007314a movs r5, r0                                       |     r5 = r0;
    0x0007314c lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0007314e movs r0, r0                                       |     
    0x00073150 ldr r4, [r3, r7]                                  |     r4 = *((r3 + r7));
    0x00073152 movs r5, r0                                       |     r5 = r0;
    0x00073154 movs r7, 0xc                                      |     r7 = 0xc;
    0x00073156 movs r3, r0                                       |     r3 = r0;
    0x00073158 cmp r0, 0x46                                      |     
    0x0007315a movs r3, r0                                       |     r3 = r0;
    0x0007315c movs r7, 0x36                                     |     r7 = 0x36;
    0x0007315e movs r3, r0                                       |     r3 = r0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x73160 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.00073160 ()                                      | void fcn_00073160 (int16_t arg1, uint32_t arg2, int16_t arg3) {
                                                                 |     int16_t var_bp_0h;
                                                                 |     int16_t var_bp_1ch;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch_3;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_88h;
                                                                 |     int16_t var_f8h;
                                                                 |     int16_t var_1f4h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00073160 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x00073164 sub sp, 0x1fc                                     |     
    0x00073166 ldr r4, [pc, 0x2f8]                               |     
    0x00073168 movs r6, 0                                        |     r6 = 0;
    0x0007316a add r7, sp, 0x10                                  |     r7 += var_10h;
    0x0007316c add.w r8, sp, 0x14                                |     r8 += var_14h_2;
    0x0007316e lsrs r4, r2, 0x20                                 |     r4 = r2 >> 0x20;
    0x00073170 ldr r3, [pc, 0x2f0]                               |     r3 = *(0x73464);
    0x00073172 add.w sb, sp, 0x18                                |     sb += var_18h;
    0x00073176 add r4, pc                                        |     r4 = 0xe65dc;
    0x00073178 add.w sl, sp, 0x1c                                |     sl += var_1ch;
    0x0007317c ldr r3, [r4, r3]                                  |     
    0x0007317e ldr r3, [r3]                                      |     r3 = *(0xe65dc);
    0x00073180 str r3, [sp, 0x1f4]                               |     var_1f4h = r3;
    0x00073182 mov.w r3, 0                                       |     r3 = 0;
    0x00073186 str r6, [r7]                                      |     *(r7) = r6;
    0x00073188 str.w r6, [r8]                                    |     __asm ("str.w r6, [r8]");
    0x0007318c subs r6, r0, 0                                    |     r6 -= var_0h;
    0x0007318e mov.w r3, -1                                      |     r3 = -1;
    0x00073192 str.w r3, [sb]                                    |     __asm ("str.w r3, [sb]");
    0x00073196 str.w r3, [sl]                                    |     __asm ("str.w r3, [sl]");
                                                                 |     if (r6 < var_0h) {
    0x0007319a blt.w 0x733e0                                     |         goto label_5;
                                                                 |     }
    0x0007319c strh r1, [r4, 8]                                  |     *((r4 + 8)) = r1;
    0x0007319e mov r5, r1                                        |     r5 = r1;
    0x000731a0 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x000731a2 beq.w 0x733f4                                     |         goto label_6;
                                                                 |     }
    0x000731a6 bics r3, r2, 0x1400                               |     __asm ("bics r3, r2, aav.0x000000ff");
    0x000731aa mov r4, r2                                        |     r4 = r2;
                                                                 |     if (r1 != 0) {
    0x000731ac bne.w 0x73408                                     |         goto label_7;
                                                                 |     }
    0x000731b0 mov r0, r1                                        |     r0 = r1;
    0x000731b2 bl 0x72de0                                        |     fcn_00072de0 (r0);
    0x000731b6 str r0, [sp, 0xc]                                 |     var_ch_3 = r0;
    0x000731b8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000731ba beq.w 0x73452                                     |         goto label_8;
                                                                 |     }
    0x000731be ands r3, r4, 0x400                                |     r3 = r4 & 0x400;
    0x000731c2 and r2, r4, 0x1000                                |     r2 = r4 & 0x1000;
    0x000731c6 str r3, [sp, 8]                                   |     var_8h_2 = r3;
    0x000731c8 ite eq                                            |     
                                                                 |     if (r3 != r4) {
    0x000731ca moveq r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 |     if (r3 == r4) {
    0x000731cc movne r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x000731ce add.w fp, sp, 0xf0                                |     
    0x000731d0 lsrs r0, r6, 0xf                                  |     r0 = r6 >> 0xf;
    0x000731d2 orr.w r2, r2, r3, lsl 8                           |     r2 |= (r3 << 8);
    0x000731d6 mov r1, r5                                        |     r1 = r5;
    0x000731d8 movs r3, 1                                        |     r3 = 1;
    0x000731da str.w fp, [sp]                                    |     __asm ("str.w fp, [sp]");
    0x000731de orr r2, r2, 0x800                                 |     r2 |= 0x800;
    0x000731e2 mov r0, r6                                        |     r0 = r6;
    0x000731e4 blx 0x9548                                        |     r0 = fcn_00009548 ();
    0x000731e8 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000731ea blt 0x73256                                       |         goto label_9;
                                                                 |     }
    0x000731ec ldr.w r3, [fp, 0x38]                              |     r3 = var_38h;
    0x000731f0 and r3, r3, 0x2000                                |     r3 &= 0x2000;
    0x000731f4 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000731f6 bne.w 0x733d2                                     |         goto label_10;
                                                                 |     }
    0x000731fa ldr.w r2, [fp]                                    |     r2 = *(fp);
    0x000731fe lsls r3, r2, 0x1f                                 |     r3 = r2 << 0x1f;
                                                                 |     if (r3 < r2) {
    0x00073200 bmi 0x732b0                                       |         goto label_11;
                                                                 |     }
                                                                 |     do {
                                                                 | label_0:
    0x00073202 mov r3, sb                                        |         r3 = sb;
    0x00073204 mov r2, r7                                        |         r2 = r7;
    0x00073206 mov r1, r5                                        |         r1 = r5;
    0x00073208 mov r0, r6                                        |         r0 = r6;
    0x0007320a str r4, [sp]                                      |         *(sp) = r4;
    0x0007320c bl 0x73044                                        |         r0 = fcn_00073044 (r0, r1, r2, r3, r4);
    0x00073210 subs.w fp, r0, 0                                  |         
                                                                 |         if (fp < r0) {
    0x00073214 blt.w 0x73394                                     |             goto label_12;
                                                                 |         }
    0x00073218 ldr r1, [pc, 0x24c]                               |         
    0x0007321a mov.w r3, 0x1000                                  |         r3 = 0x1000;
    0x0007321e str r3, [sp]                                      |         *(sp) = r3;
    0x00073220 mov r2, r8                                        |         r2 = r8;
    0x00073222 mov r3, sl                                        |         r3 = sl;
    0x00073224 mov r0, r6                                        |         r0 = r6;
    0x00073226 add r1, pc                                        |         r1 = 0xe6692;
    0x00073228 bl 0x73044                                        |         r0 = fcn_00073044 (r0, r1, r2, r3, r4);
    0x0007322c subs.w fp, r0, 0                                  |         
                                                                 |         if (fp < r0) {
    0x00073230 blt 0x732c8                                       |             goto label_13;
                                                                 |         }
    0x00073232 ldr r0, [r7]                                      |         r0 = *(r7);
    0x00073234 ldr.w r4, [r8]                                    |         r4 = *(r8);
    0x00073236 ands r0, r0                                       |         r0 &= r0;
    0x00073238 ldr r2, [r0]                                      |         r2 = *(r0);
    0x0007323a ldr r3, [r4]                                      |         r3 = *(r4);
    0x0007323c cmp r2, r3                                        |         
                                                                 |         if (r2 == r3) {
    0x0007323e beq.w 0x7341c                                     |             goto label_14;
                                                                 |         }
                                                                 | label_3:
    0x00073242 ldr.w r2, [sb]                                    |         r2 = *(sb);
    0x00073246 ldr.w r3, [sl]                                    |         r3 = *(sl);
    0x0007324a subs.w fp, r2, r3                                 |         
    0x0007324e it ne                                             |         
                                                                 |         if (fp == r2) {
    0x00073250 movne fp, 1                                       |             
                                                                 |         }
    0x00073254 b 0x7327e                                         |         goto label_1;
                                                                 | label_9:
    0x00073256 blx 0x9628                                        |         r0 = fcn_00009628 ();
    0x0007325a ldr r2, [r0]                                      |         r2 = *(r0);
    0x0007325c eor.w r3, r2, r2, asr 31                          |         r3 = r2 ^ (r2 >> 31);
    0x00073260 sub.w r3, r3, r2, asr 31                          |         r3 -= (r2 >> 31);
    0x00073264 cmp r3, 0x26                                      |         
    0x00073266 beq 0x73202                                       |         
                                                                 |     } while (r3 == 0x26);
                                                                 |     if (r3 > 0x26) {
    0x00073268 bgt 0x732a8                                       |         goto label_15;
                                                                 |     }
    0x0007326a cmp r3, 0x19                                      |     
                                                                 |     if (r3 == 0x19) {
    0x0007326c beq 0x73202                                       |         goto label_0;
                                                                 |     }
    0x0007326e cmp r3, 1                                         |     
                                                                 |     if (r3 == 1) {
    0x00073270 beq 0x73202                                       |         goto label_0;
                                                                 |     }
    0x00073272 cmp r3, 0xd                                       |     
                                                                 |     if (r3 == 0xd) {
    0x00073274 beq 0x73202                                       |         goto label_0;
                                                                 |     }
                                                                 |     do {
    0x00073276 ldr.w r4, [r8]                                    |         r4 = *(r8);
    0x0007327a rsb.w fp, r2, 0                                   |         
                                                                 | label_1:
    0x0007327e mov r0, r4                                        |         r0 = r4;
    0x00073280 blx 0x8dac                                        |         fcn_00008dac ();
    0x00073284 ldr r0, [r7]                                      |         r0 = *(r7);
    0x00073286 blx 0x8dac                                        |         fcn_00008dac ();
    0x0007328a ldr r2, [pc, 0x1e0]                               |         
    0x0007328c ldr r3, [pc, 0x1d4]                               |         r3 = *(0x73464);
    0x0007328e add r2, pc                                        |         r2 = 0xe6700;
    0x00073290 ldr r3, [r2, r3]                                  |         r3 = *(0xe6700);
    0x00073292 ldr r2, [r3]                                      |         r2 = *(0xe6700);
    0x00073294 ldr r3, [sp, 0x1f4]                               |         r3 = var_1f4h;
    0x00073296 eors r2, r3                                       |         r2 ^= r3;
    0x00073298 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0007329c bne.w 0x7345a                                     |             goto label_16;
                                                                 |         }
    0x000732a0 mov r0, fp                                        |         r0 = fp;
    0x000732a2 add sp, 0x1fc                                     |         
    0x000732a4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_15:
    0x000732a8 subs r3, 0x5d                                     |         r3 -= 0x5d;
    0x000732aa cmp r3, 4                                         |         
    0x000732ac bhi 0x73276                                       |         
                                                                 |     } while (r3 > 4);
    0x000732ae b 0x73202                                         |     goto label_0;
                                                                 | label_11:
    0x000732b0 ldrh.w r2, [fp, 0x1c]                             |     r2 = var_bp_1ch;
    0x000732b4 and r2, r2, 0xf000                                |     r2 &= 0xf000;
    0x000732b8 cmp.w r2, 0xa000                                  |     
                                                                 |     if (r2 != 0xa000) {
    0x000732bc bne 0x73202                                       |         goto label_0;
                                                                 |     }
                                                                 |     do {
    0x000732be ldr.w r4, [r8]                                    |         r4 = *(r8);
    0x000732c2 mov.w fp, 0                                       |         
    0x000732c6 b 0x7327e                                         |         goto label_1;
                                                                 | label_13:
    0x000732c8 bl 0x72fe8                                        |         r0 = fcn_00072fe8 (r0);
    0x000732cc cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000732ce bne 0x733c2                                       |             goto label_17;
                                                                 |         }
    0x000732d0 cmn.w fp, 0x5f                                    |         
                                                                 |         if (fp == 0x5f) {
    0x000732d4 beq 0x733c8                                       |             goto label_18;
                                                                 |         }
                                                                 | label_2:
    0x000732d6 mov r3, sb                                        |         r3 = sb;
    0x000732d8 mov r2, r4                                        |         r2 = r4;
    0x000732da mov r1, r5                                        |         r1 = r5;
    0x000732dc mov r0, r6                                        |         r0 = r6;
    0x000732de bl 0x72e78                                        |         r0 = fcn_00072e78 (r0, r1, r2, r3);
    0x000732e2 cmn.w r0, 0xd                                     |         
    0x000732e6 mov fp, r0                                        |         
                                                                 |         if (r0 != 0xd) {
    0x000732e8 beq 0x73320                                       |             
    0x000732ea cmp.w r0, -1                                      |             
                                                                 |             if (r0 == -1) {
    0x000732ee beq 0x73320                                       |                 goto label_19;
                                                                 |             }
    0x000732f0 cmn.w r0, 0x5f                                    |             
                                                                 |             if (r0 == 0x5f) {
    0x000732f4 beq 0x73320                                       |                 goto label_19;
                                                                 |             }
    0x000732f6 cmp r0, 0                                         |             
                                                                 |             if (r0 < 0) {
    0x000732f8 blt 0x733c2                                       |                 goto label_17;
                                                                 |             }
    0x000732fa ldr r1, [pc, 0x174]                               |             
    0x000732fc mov r3, sl                                        |             r3 = sl;
    0x000732fe mov.w r2, 0x1000                                  |             r2 = 0x1000;
    0x00073302 mov r0, r6                                        |             r0 = r6;
    0x00073304 add r1, pc                                        |             r1 = 0xe677a;
    0x00073306 bl 0x72e78                                        |             r0 = fcn_00072e78 (r0, r1, r2, r3);
    0x0007330a subs.w fp, r0, 0                                  |             
                                                                 |             if (fp < r0) {
    0x0007330e blt 0x733c2                                       |                 goto label_17;
                                                                 |             }
    0x00073310 ldr.w r2, [sb]                                    |             r2 = *(sb);
    0x00073314 ldr.w r3, [sl]                                    |             r3 = *(sl);
    0x00073316 adds r0, 0                                        |             r0 += 0;
    0x00073318 cmp r2, r3                                        |             
                                                                 |             if (r2 != r3) {
    0x0007331a bne 0x733c8                                       |                 goto label_18;
                                                                 |             }
    0x0007331c movs r3, 0                                        |             r3 = 0;
    0x0007331e str r3, [sp, 0xc]                                 |             var_ch_3 = r3;
                                                                 |         }
                                                                 | label_19:
    0x00073320 ldr r3, [sp, 8]                                   |         r3 = var_8h_2;
    0x00073322 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00073324 bne.w 0x7343c                                     |             goto label_20;
                                                                 |         }
    0x00073328 orr r3, r4, 0x100                                 |         r3 = r4 | 0x100;
                                                                 | label_4:
    0x0007332c mov r1, r5                                        |         r1 = r5;
    0x0007332e add r5, sp, 0x20                                  |         r5 += var_20h;
    0x00073330 mov r0, r6                                        |         r0 = r6;
    0x00073332 mov r2, r5                                        |         r2 = r5;
    0x00073334 blx 0x9334                                        |         fcn_00009334 ();
    0x00073336 invalid                                           |         
                                                                 |         if (r3 < 0) {
    0x0007333a blt.w 0x73442                                     |             goto label_21;
                                                                 |         }
    0x0007333e ldr r3, [r5, 0x10]                                |         r3 = *((r5 + 0x10));
    0x00073340 and r3, r3, 0xf000                                |         r3 &= 0xf000;
    0x00073342 muls r0, r6, r0                                   |         r0 = r6 * r0;
    0x00073344 cmp.w r3, 0xa000                                  |         
    0x00073348 beq 0x732be                                       |         
                                                                 |     } while (r3 == 0xa000);
    0x0007334a ldr r1, [pc, 0x128]                               |     
    0x0007334c mov r0, r6                                        |     r0 = r6;
    0x0007334e add r6, sp, 0x88                                  |     r6 += var_88h;
    0x00073350 mov.w r3, 0x1000                                  |     r3 = 0x1000;
    0x00073354 mov r2, r6                                        |     r2 = r6;
    0x00073356 add r1, pc                                        |     r1 = 0xe67d0;
    0x00073358 blx 0x9334                                        |     r0 = fcn_00009334 ();
    0x0007335c cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0007335e blt 0x73442                                       |         goto label_21;
                                                                 |     }
    0x00073360 ldrd r0, r2, [r5]                                 |     __asm ("ldrd r0, r2, [r5]");
    0x00073364 ldrd r1, r3, [r6]                                 |     __asm ("ldrd r1, r3, [r6]");
    0x00073368 ldr.w r4, [r8]                                    |     r4 = *(r8);
    0x0007336c cmp r2, r3                                        |     
    0x0007336e it eq                                             |     
                                                                 |     if (r2 == r3) {
    0x00073370 cmpeq r0, r1                                      |         __asm ("cmpeq r0, r1");
                                                                 |     }
    0x00073372 it ne                                             |     
                                                                 |     if (r2 != r3) {
    0x00073374 ldrne fp, [sp, 0xc]                               |         fp = var_ch_3;
                                                                 |         goto label_22;
                                                                 |     }
                                                                 |     if (r2 != r3) {
                                                                 | label_22:
    0x00073378 bne 0x7327e                                       |         goto label_1;
                                                                 |     }
    0x0007337a ldrd r0, r2, [r5, 0x60]                           |     __asm ("ldrd r0, r2, [r5, 0x60]");
    0x0007337e ldrd r1, r3, [r6, 0x60]                           |     __asm ("ldrd r1, r3, [r6, 0x60]");
    0x00073382 cmp r2, r3                                        |     
    0x00073384 it eq                                             |     
                                                                 |     if (r2 == r3) {
    0x00073386 cmpeq r0, r1                                      |         __asm ("cmpeq r0, r1");
                                                                 |     }
    0x00073388 ite eq                                            |     
                                                                 |     if (r2 != r3) {
    0x0007338a moveq fp, 1                                       |         
                                                                 |     }
                                                                 |     if (r2 != r3) {
    0x0007338e mov.w fp, 0                                       |         
                                                                 |     }
    0x00073392 b 0x7327e                                         |     goto label_1;
                                                                 | label_12:
    0x00073394 bl 0x72fe8                                        |     r0 = fcn_00072fe8 (r0);
                                                                 |     if (r0 != 0) {
    0x00073398 cbnz r0, 0x733c2                                  |         goto label_17;
                                                                 |     }
    0x0007339a cmn.w fp, 0x5f                                    |     
                                                                 |     if (fp != 0x5f) {
    0x0007339e bne 0x732d6                                       |         goto label_2;
                                                                 |     }
    0x000733a0 ldr r1, [pc, 0xd4]                                |     
    0x000733a2 mov.w r3, 0x1000                                  |     r3 = 0x1000;
    0x000733a6 str r3, [sp]                                      |     *(sp) = r3;
    0x000733a8 mov r2, r8                                        |     r2 = r8;
    0x000733aa mov r3, sl                                        |     r3 = sl;
    0x000733ac mov r0, r6                                        |     r0 = r6;
    0x000733ae add r1, pc                                        |     r1 = 0xe682a;
    0x000733b0 bl 0x73044                                        |     fcn_00073044 (r0, r1, r2, r3, r4);
    0x000733b2 mcr2 p1, 2, pc, c8, c0, 5                         |     __asm ("mcr2 p1, 2, pc, c8, c0, 5");
    0x000733b6 lsrs r0, r0, 0xc                                  |     r0 >>= 0xc;
                                                                 |     if (r0 >= r0) {
    0x000733b8 bge 0x733c8                                       |         goto label_18;
                                                                 |     }
    0x000733ba bl 0x72fe8                                        |     r0 = fcn_00072fe8 (r0);
    0x000733be cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000733c0 beq 0x732d6                                       |         goto label_2;
                                                                 |     }
                                                                 | label_17:
    0x000733c2 ldr.w r4, [r8]                                    |     r4 = *(r8);
    0x000733c6 b 0x7327e                                         |     goto label_1;
                                                                 | label_18:
    0x000733c8 ldr.w r4, [r8]                                    |     r4 = *(r8);
    0x000733cc mov.w fp, 1                                       |     
    0x000733d0 b 0x7327e                                         |     goto label_1;
                                                                 | label_10:
    0x000733d2 ldr.w r3, [fp, 8]                                 |     r3 = var_f8h;
    0x000733d6 ldr.w r4, [r8]                                    |     r4 = *(r8);
    0x000733da ubfx fp, r3, 0xd, 1                               |     fp = (r3 >> 0xd) & ((1 << 1) - 1);
    0x000733de b 0x7327e                                         |     goto label_1;
                                                                 | label_5:
    0x000733e0 ldr r1, [pc, 0x98]                                |     
    0x000733e2 movs r2, 0xb5                                     |     r2 = 0xb5;
    0x000733e4 ldr r3, [pc, 0x98]                                |     
    0x000733e6 ldr r0, [pc, 0x9c]                                |     
    0x000733e8 add r1, pc                                        |     r1 = 0xe6868;
    0x000733ea add r3, pc                                        |     r3 = 0xe686e;
    0x000733ec adds r1, 7                                        |     r1 += 7;
    0x000733ee add r0, pc                                        |     r0 = 0xe6878;
    0x000733f0 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_6:
    0x000733f4 ldr r1, [pc, 0x90]                                |     
    0x000733f6 movs r2, 0xb6                                     |     r2 = 0xb6;
    0x000733f8 ldr r3, [pc, 0x90]                                |     
    0x000733fa ldr r0, [pc, 0x94]                                |     
    0x000733fc add r1, pc                                        |     r1 = 0xe6888;
    0x000733fe add r3, pc                                        |     r3 = 0xe688e;
    0x00073400 adds r1, 7                                        |     r1 += 7;
    0x00073402 add r0, pc                                        |     r0 = 0xe6898;
    0x00073404 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_7:
    0x00073408 ldr r1, [pc, 0x88]                                |     
    0x0007340a movs r2, 0xb7                                     |     r2 = 0xb7;
    0x0007340c ldr r3, [pc, 0x88]                                |     
    0x0007340e ldr r0, [pc, 0x8c]                                |     
    0x00073410 add r1, pc                                        |     r1 = 0xe68a8;
    0x00073412 add r3, pc                                        |     r3 = 0xe68ae;
    0x00073414 adds r1, 7                                        |     r1 += 7;
    0x00073416 add r0, pc                                        |     r0 = 0xe68b8;
    0x00073418 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_14:
    0x0007341c ldr r1, [r0, 4]                                   |     r1 = *((r0 + 4));
    0x0007341e ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x00073420 cmp r1, r3                                        |     
                                                                 |     if (r1 != r3) {
    0x00073422 bne.w 0x73242                                     |         goto label_3;
                                                                 |     }
    0x00073426 adds r0, 8                                        |     r0 += 8;
    0x00073428 add.w r1, r4, 8                                   |     r1 = r4 + 8;
    0x0007342c mov.w fp, 1                                       |     
    0x00073430 blx 0x8a78                                        |     r0 = getauxval ();
    0x00073434 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00073436 bne.w 0x73242                                     |         goto label_3;
                                                                 |     }
    0x0007343a b 0x7327e                                         |     goto label_1;
                                                                 | label_20:
    0x0007343c bic r3, r4, 0x400                                 |     r3 = BIT_MASK (r4, 0x400);
    0x00073440 b 0x7332c                                         |     goto label_4;
                                                                 | label_21:
    0x00073442 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x00073446 ldr r3, [r0]                                      |     r3 = *(r0);
    0x00073448 ldr.w r4, [r8]                                    |     r4 = *(r8);
    0x0007344c rsb.w fp, r3, 0                                   |     
    0x00073450 b 0x7327e                                         |     goto label_1;
                                                                 | label_8:
    0x00073452 ldr r4, [sp, 0xc]                                 |     r4 = var_ch_3;
    0x00073454 mvn fp, 0x15                                      |     
    0x00073458 b 0x7327e                                         |     goto label_1;
                                                                 | label_16:
    0x0007345a blx 0x927c                                        |     fprintf_chk ()
    0x0007345e nop                                               |     
    0x00073460 ldr r6, [r1, r5]                                  |     r6 = *((r1 + r5));
    0x00073462 movs r5, r0                                       |     r5 = r0;
    0x00073464 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x00073466 movs r0, r0                                       |     
    0x00073468 subw r0, r6, 0x800                                |     __asm ("subw r0, r6, aav.0x000000ff");
    0x0007346a movs r0, r0                                       |     
    0x0007346c ldr r6, [r6, r0]                                  |     r6 = *((r6 + r0));
    0x0007346e movs r5, r0                                       |     r5 = r0;
    0x00073470 rsb.w r0, r8, 0x800000                            |     r0 = 0x800000 - r8;
    0x00073474 sbcs r0, r6, 0x800000                             |     __asm ("sbcs r0, r6, aav.0x000000ff");
    0x00073478 adds.w r0, lr, 0x800000                           |     r0 = lr + 0x800000;
    0x0007347c movs r4, 0x4c                                     |     r4 = 0x4c;
    0x0007347e movs r3, r0                                       |     r3 = r0;
    0x00073480 movs r5, 0x72                                     |     r5 = 0x72;
    0x00073482 movs r3, r0                                       |     r3 = r0;
    0x00073484 add r4, sp, 0xf8                                  |     r4 += var_f8h;
    0x00073486 movs r2, r0                                       |     r2 = r0;
    0x00073488 movs r4, 0x38                                     |     r4 = 0x38;
    0x0007348a movs r3, r0                                       |     r3 = r0;
    0x0007348c movs r5, 0x5e                                     |     r5 = 0x5e;
    0x0007348e movs r3, r0                                       |     r3 = r0;
    0x00073490 adr r1, 0x2a8                                     |     r1 = 0x2a8;
    0x00073492 movs r1, r0                                       |     r1 = r0;
    0x00073494 movs r4, 0x24                                     |     r4 = 0x24;
    0x00073496 movs r3, r0                                       |     r3 = r0;
    0x00073498 movs r5, 0x4a                                     |     r5 = 0x4a;
    0x0007349a movs r3, r0                                       |     r3 = r0;
    0x0007349c movs r4, 0x4e                                     |     r4 = 0x4e;
    0x0007349e movs r3, r0                                       |     r3 = r0;
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x734a0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000734a0 ()                  | void fcn_000734a0 (uint32_t arg1, int16_t arg2, int16_t arg3) {
                                             |     int16_t var_0h_4;
                                             |     int16_t var_8h;
                                             |     int16_t var_ch;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x000734a0 invalid                       |     
    0x000734a4 ldr r1, [pc, 0xd0]            |     
    0x000734a6 mov r4, r2                    |     r4 = r2;
    0x000734a8 sub sp, 0x14                  |     
    0x000734aa movs r3, 0                    |     r3 = 0;
    0x000734ac ldr r2, [pc, 0xcc]            |     r2 = *(0x7357c);
    0x000734ae add r1, pc                    |     r1 = 0xe6a2a;
    0x000734b0 ldr r2, [r1, r2]              |     
    0x000734b2 ldr r2, [r2]                  |     r2 = *(0xe6a2a);
    0x000734b4 str r2, [sp, 0xc]             |     var_ch = r2;
    0x000734b6 mov.w r2, 0                   |     r2 = 0;
    0x000734b8 lsls r0, r0, 8                |     r0 <<= 8;
    0x000734ba str r3, [sp, 8]               |     var_8h = r3;
    0x000734bc cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x000734be beq 0x73546                   |         goto label_2;
                                             |     }
    0x000734c0 bics r7, r4, 0x400            |     __asm ("bics r7, r4, aav.0x000000ff");
                                             |     if (r0 != 0) {
    0x000734c4 bne 0x7355c                   |         goto label_3;
                                             |     }
    0x000734c6 ldr r1, [pc, 0xb8]            |     
    0x000734c8 mov r5, r0                    |     r5 = r0;
    0x000734ca add r1, pc                    |     r1 = 0xe6a50;
    0x000734cc bl 0x754cc                    |     r0 = fcn_000754cc (r0, r1);
                                             |     if (r0 == 0) {
    0x000734d0 cbz r0, 0x7353e               |         goto label_4;
                                             |     }
    0x000734d2 lsls r3, r4, 0x15             |     r3 = r4 << 0x15;
                                             |     if (r3 < r4) {
    0x000734d4 bmi 0x73522                   |         goto label_5;
                                             |     }
                                             | label_0:
    0x000734d6 mov r0, r5                    |     r0 = r5;
    0x000734d8 movs r2, 0                    |     r2 = 0;
    0x000734da mov.w r1, 0x280000            |     r1 = 0x280000;
    0x000734de bl 0x6d090                    |     fcn_0006d090 (r0, r1, r2);
    0x000734e0 ldc2l p14, c1, [r7, 0x18]     |     __asm ("ldc2l p14, c1, [r7, 0x18]");
    0x000734e4 it lt                         |     
                                             |     if (r2 >= 0) {
    0x000734e6 movlt r5, r6                  |         r5 = r6;
                                             |     }
                                             |     if (r2 < 0) {
    0x000734e8 blt 0x734fc                   |         goto label_1;
                                             |     }
    0x000734ea mov r0, r5                    |     r0 = r5;
    0x000734ec bl 0x7570c                    |     fcn_0007570c (r0);
    0x000734ee invalid                       |     
    0x000734f2 mov r1, r0                    |     r1 = r0;
    0x000734f4 mov r0, r6                    |     r0 = r6;
    0x000734f6 bl 0x73160                    |     r0 = fcn_00073160 (r0, r1, r2);
    0x000734fa mov r5, r0                    |     r5 = r0;
                                             |     do {
                                             | label_1:
    0x000734fc mov r0, r6                    |         r0 = r6;
    0x000734fe bl 0x69a04                    |         fcn_00069a04 (r0, r1, r2, r3);
    0x00073500 invalid                       |         
    0x00073504 blx 0x8dac                    |         fcn_00008dac ();
    0x00073508 ldr r2, [pc, 0x78]            |         
    0x0007350a ldr r3, [pc, 0x70]            |         r3 = *(0x7357e);
    0x0007350c add r2, pc                    |         r2 = 0xe6a94;
    0x0007350e ldr r3, [r2, r3]              |         r3 = *(0xe6a94);
    0x00073510 ldr r2, [r3]                  |         r2 = *(0xe6a94);
    0x00073512 ldr r3, [sp, 0xc]             |         r3 = var_ch;
    0x00073514 eors r2, r3                   |         r2 ^= r3;
    0x00073516 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x0007351a bne 0x73572                   |             goto label_6;
                                             |         }
    0x0007351c mov r0, r5                    |         r0 = r5;
    0x0007351e add sp, 0x14                  |         
    0x00073520 pop {r4, r5, r6, r7, pc}      |         
                                             | label_5:
    0x00073522 mov r1, r6                    |         r1 = r6;
    0x00073524 mov r0, r5                    |         r0 = r5;
    0x00073526 add r3, sp, 8                 |         r3 += var_8h;
    0x00073528 movs r2, 0x10                 |         r2 = 0x10;
    0x0007352a str r7, [sp]                  |         *(sp) = r7;
    0x0007352c bl 0x6c85c                    |         r0 = fcn_0006c85c (r0, r1, r2, r3);
    0x00073530 subs r5, r0, 0                |         r5 = r0 - 0;
    0x00073532 it lt                         |         
                                             |         if (r5 >= r0) {
    0x00073534 movlt r6, -1                  |             r6 = -1;
                                             |         }
    0x00073536 adds r6, 0xff                 |         r6 += 0xff;
    0x00073538 blt 0x734fc                   |         
                                             |     } while (r6 < 0xff);
    0x0007353a ldr r5, [sp, 8]               |     r5 = var_8h;
    0x0007353c b 0x734d6                     |     goto label_0;
                                             | label_4:
    0x0007353e mov.w r6, -1                  |     r6 = -1;
    0x00073542 movs r5, 1                    |     r5 = 1;
    0x00073544 b 0x734fc                     |     goto label_1;
                                             | label_2:
    0x00073546 ldr r1, [pc, 0x40]            |     
    0x00073548 movw r2, 0x139                |     r2 = 0x139;
    0x0007354c ldr r3, [pc, 0x3c]            |     
    0x0007354e ldr r0, [pc, 0x40]            |     
    0x00073550 add r1, pc                    |     r1 = 0xe6ade;
    0x00073552 add r3, pc                    |     r3 = 0xe6ae2;
    0x00073554 adds r1, 7                    |     r1 += 7;
    0x00073556 add r0, pc                    |     r0 = 0xe6aec;
    0x00073558 bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_3:
    0x0007355c ldr r1, [pc, 0x34]            |     
    0x0007355e mov.w r2, 0x13a               |     r2 = 0x13a;
    0x00073560 strb r5, [r3, 0xa]            |     *((r3 + 0xa)) = r5;
    0x00073562 ldr r3, [pc, 0x34]            |     
    0x00073564 ldr r0, [pc, 0x34]            |     
    0x00073566 add r1, pc                    |     r1 = 0xe6afe;
    0x00073568 add r3, pc                    |     r3 = 0xe6b06;
    0x0007356a adds r1, 7                    |     r1 += 7;
    0x0007356c add r0, pc                    |     r0 = 0xe6b0c;
    0x0007356e bl 0x71518                    |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                             | label_6:
    0x00073572 blx 0x927c                    |     fprintf_chk ()
    0x00073576 nop                           |     
    0x00073578 ldrsb r6, [r2, r0]            |     r6 = *((r2 + r0));
    0x0007357a movs r5, r0                   |     r5 = r0;
    0x0007357c lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x0007357e movs r0, r0                   |     
    0x00073580 mrrc p0, 0, r0, r6, c1        |     __asm ("mrrc p0, 0, r0, r6, c1");
    0x00073582 movs r1, r0                   |     r1 = r0;
    0x00073584 strb r0, [r7, r6]             |     *((r7 + r6)) = r0;
    0x00073586 movs r5, r0                   |     r5 = r0;
    0x00073588 movs r2, 0xe4                 |     r2 = 0xe4;
    0x0007358a movs r3, r0                   |     r3 = r0;
    0x0007358c movs r3, 0xbe                 |     r3 = 0xbe;
    0x0007358e movs r3, r0                   |     r3 = r0;
    0x00073590 ldr r2, [r6, 0x38]            |     r2 = *((r6 + 0x38));
    0x00073592 movs r1, r0                   |     r1 = r0;
    0x00073594 movs r2, 0xce                 |     r2 = 0xce;
    0x00073596 movs r3, r0                   |     r3 = r0;
    0x00073598 movs r3, 0xa8                 |     r3 = 0xa8;
    0x0007359a movs r3, r0                   |     r3 = r0;
    0x0007359c movs r3, 0x58                 |     r3 = 0x58;
    0x0007359e movs r3, r0                   |     r3 = r0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x735a0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000735a0 ()                  | void fcn_000735a0 (int16_t arg1, int16_t arg2) {
                                             |     int16_t var_0h;
                                             |     int16_t var_8h_2;
                                             |     int16_t var_10ch;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x000735a0 invalid                       |     
    0x000735a4 ldr r0, [pc, 0xb4]            |     
    0x000735a6 mov r6, r1                    |     r6 = r1;
    0x000735a8 sub sp, 0x110                 |     
    0x000735aa mov.w r3, 0x1000              |     r3 = 0x1000;
    0x000735ae ldr r1, [pc, 0xb0]            |     r1 = *(0x73662);
    0x000735b0 add r4, sp, 8                 |     r4 += var_8h_2;
    0x000735b2 add r0, pc                    |     r0 = 0xe6c12;
    0x000735b4 str r4, [sp]                  |     *(sp) = r4;
    0x000735b6 mov.w r2, 0x900               |     r2 = 0x900;
    0x000735ba ldr r1, [r0, r1]              |     
    0x000735bc mvn r0, 0x63                  |     r0 = ~0x63;
    0x000735c0 ldr r1, [r1]                  |     r1 = *(0xe6c12);
    0x000735c2 str r1, [sp, 0x10c]           |     var_10ch = r1;
    0x000735c4 mov.w r1, 0                   |     r1 = 0;
    0x000735c8 mov r1, r5                    |     r1 = r5;
    0x000735ca blx 0x9548                    |     r0 = fcn_00009548 ();
    0x000735ce cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x000735d0 blt 0x7362a                   |         goto label_2;
                                             |     }
    0x000735d2 ldr r3, [r4]                  |     r3 = *(r4);
    0x000735d4 lsls r3, r3, 0x13             |     r3 <<= 0x13;
                                             |     if (r3 < r3) {
    0x000735d6 bmi 0x73620                   |         goto label_3;
                                             |     }
                                             | label_1:
    0x000735d8 movs r2, 0                    |     r2 = 0;
    0x000735da mov r3, r6                    |     r3 = r6;
    0x000735dc mov r1, r5                    |     r1 = r5;
    0x000735de mvn r0, 0x63                  |     r0 = ~0x63;
    0x000735e2 str r2, [sp]                  |     *(sp) = r2;
    0x000735e4 bl 0x73044                    |     r0 = fcn_00073044 (r0, r1, r2, r3, r4);
    0x000735e8 mov r4, r0                    |     r4 = r0;
    0x000735ea cbnz r0, 0x73606              |     
                                             |     while (r0 != 0) {
                                             | label_0:
    0x000735ec ldr r2, [pc, 0x74]            |         
    0x000735ee ldr r3, [pc, 0x70]            |         r3 = *(0x73662);
    0x000735f0 add r2, pc                    |         r2 = 0xe6c58;
    0x000735f2 ldr r3, [r2, r3]              |         r3 = *(0xe6c58);
    0x000735f4 ldr r2, [r3]                  |         r2 = *(0xe6c58);
    0x000735f6 ldr r3, [sp, 0x10c]           |         r3 = var_10ch;
    0x000735f8 eors r2, r3                   |         r2 ^= r3;
    0x000735fa mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x000735fe bne 0x73656                   |             goto label_4;
                                             |         }
    0x00073600 mov r0, r4                    |         r0 = r4;
    0x00073602 add sp, 0x110                 |         
    0x00073604 pop {r4, r5, r6, pc}          |         
    0x00073606 bl 0x72fe8                    |         r0 = fcn_00072fe8 (r0);
    0x0007360a cmp r0, 0                     |         
    0x0007360c bne 0x735ec                   |         
                                             |     }
    0x0007360e mov r2, r0                    |     r2 = r0;
    0x00073610 mov r3, r6                    |     r3 = r6;
    0x00073612 mov r1, r5                    |     r1 = r5;
    0x00073614 mvn r0, 0x63                  |     r0 = ~0x63;
    0x00073616 lsls r3, r4, 1                |     r3 = r4 << 1;
    0x00073618 bl 0x72e78                    |     fcn_00072e78 (r0, r1, r2, r3);
    0x0007361a stc2 p6, c4, [lr], -0x10      |     __asm ("stc2 p6, c4, [lr], -0x10");
    0x0007361e b 0x735ec                     |     goto label_0;
                                             | label_3:
    0x00073620 ldr.w r3, [r4, 0x90]          |     r3 = *((r4 + 0x90));
    0x00073624 movs r4, 0                    |     r4 = 0;
    0x00073626 str r3, [r6]                  |     *(r6) = r3;
    0x00073628 b 0x735ec                     |     goto label_0;
                                             | label_2:
    0x0007362a blx 0x9628                    |     r0 = fcn_00009628 ();
    0x0007362e ldr r4, [r0]                  |     r4 = *(r0);
    0x00073630 eor.w r3, r4, r4, asr 31      |     r3 = r4 ^ (r4 >> 31);
    0x00073632 strb r4, [r4, 0xf]            |     *((r4 + 0xf)) = r4;
    0x00073634 sub.w r3, r3, r4, asr 31      |     r3 -= (r4 >> 31);
    0x00073636 strb r4, [r4, 0xf]            |     *((r4 + 0xf)) = r4;
    0x00073638 cmp r3, 0x26                  |     
                                             |     if (r3 == 0x26) {
    0x0007363a beq 0x735d8                   |         goto label_1;
                                             |     }
                                             |     if (r3 > 0x26) {
    0x0007363c bgt 0x7364c                   |         goto label_5;
                                             |     }
    0x0007363e cmp r3, 0x19                  |     
                                             |     if (r3 == 0x19) {
    0x00073640 beq 0x735d8                   |         goto label_1;
                                             |     }
    0x00073642 cmp r3, 1                     |     
                                             |     if (r3 == 1) {
    0x00073644 beq 0x735d8                   |         goto label_1;
                                             |     }
    0x00073646 cmp r3, 0xd                   |     
                                             |     if (r3 == 0xd) {
    0x00073648 beq 0x735d8                   |         goto label_1;
                                             |     }
    0x0007364a b 0x73652                     |     goto label_6;
                                             | label_5:
    0x0007364c subs r3, 0x5d                 |     r3 -= 0x5d;
    0x0007364e cmp r3, 4                     |     
                                             |     if (r3 < 4) {
    0x00073650 bls 0x735d8                   |         goto label_1;
                                             |     }
                                             | label_6:
    0x00073652 rsbs r4, r4, 0                |     r4 -= ;
    0x00073654 b 0x735ec                     |     goto label_0;
                                             | label_4:
    0x00073656 blx 0x927c                    |     fprintf_chk ()
    0x0007365a nop                           |     
    0x0007365c strb r2, [r2, r4]             |     *((r2 + r4)) = r2;
    0x0007365e movs r5, r0                   |     r5 = r0;
    0x00073660 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00073662 movs r0, r0                   |     
    0x00073664 strb r4, [r2, r3]             |     *((r2 + r3)) = r4;
    0x00073666 movs r5, r0                   |     r5 = r0;
                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x73668 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00073668 ()                              | void fcn_00073668 () {
                                                         |     int16_t var_4h;
                                                         |     int16_t var_8h_3;
                                                         |     int16_t var_ch_2;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_14h;
    0x00073668 mvnsmi lr, 0xb4000                        |     __asm ("mvnsmi lr, aav.0x000000ff");
    0x0007366c sub sp, 0x1c                              |     
    0x0007366e ldr r4, [pc, 0xc8]                        |     
    0x00073670 movs r3, 0                                |     r3 = 0;
    0x00073672 add r1, sp, 8                             |     r1 += var_8h_3;
    0x00073674 ldr r2, [pc, 0xc4]                        |     r2 = *(0x7373c);
    0x00073676 add r4, pc                                |     r4 = 0xe6db4;
    0x00073678 ldr r0, [pc, 0xc4]                        |     
    0x0007367a ldr r2, [r4, r2]                          |     
    0x0007367c add r0, pc                                |     r0 = 0xe6dc0;
    0x0007367e ldr r2, [r2]                              |     r2 = *(0xe6db4);
    0x00073680 str r2, [sp, 0x14]                        |     var_14h = r2;
    0x00073682 mov.w r2, 0                               |     r2 = 0;
    0x00073686 str r3, [sp, 4]                           |     var_4h = r3;
    0x00073688 bl 0x735a0                                |     r0 = fcn_000735a0 (r0, r1);
    0x0007368c subs r4, r0, 0                            |     r4 = r0 - 0;
                                                         |     if (r4 < r0) {
    0x0007368e blt 0x7370c                               |         goto label_1;
                                                         |     }
    0x00073690 ldr r1, [pc, 0xb0]                        |     
    0x00073692 add r2, sp, 4                             |     r2 += var_4h;
    0x00073694 ldr r0, [pc, 0xb0]                        |     
    0x00073696 add r1, pc                                |     r1 = 0xe6dde;
    0x00073698 add r0, pc                                |     r0 = 0xe6de4;
    0x0007369a bl 0x6a520                                |     r0 = fcn_0006a520 (r0);
    0x0007369e subs r4, r0, 0                            |     r4 = r0 - 0;
                                                         |     if (r4 < r0) {
    0x000736a0 blt 0x7370c                               |         goto label_1;
                                                         |     }
    0x000736a2 ldr r7, [pc, 0xa8]                        |     
    0x000736a4 add r6, sp, 0xc                           |     r6 += var_ch_2;
    0x000736a6 ldr.w r8, [pc, 0xa8]                      |     
    0x000736aa ldr.w sb, [pc, 0xa8]                      |     
    0x000736ae add r7, pc                                |     r7 = 0xe6e00;
    0x000736b0 add r8, pc                                |     r8 = 0xe6e06;
    0x000736b2 add sb, pc                                |     sb = 0xe6e0c;
    0x000736b4 b 0x736da                                 |     
                                                         |     while (r0 == 1) {
    0x000736b6 ldr r2, [sp, 0x10]                        |         r2 = var_10h;
    0x000736b8 ldrd r3, r5, [sp, 8]                      |         __asm ("ldrd r3, r5, [var_8h_3]");
    0x000736bc cmp r2, r3                                |         
                                                         |         if (r2 == r3) {
    0x000736be bne 0x736d4                               |             
    0x000736c0 mov r1, r8                                |             r1 = r8;
    0x000736c2 mov r0, r5                                |             r0 = r5;
    0x000736c4 blx 0x9164                                |             r0 = fcn_00009164 ();
                                                         |             if (r0 == 0) {
    0x000736c8 cbz r0, 0x736d4                           |                 goto label_0;
                                                         |             }
    0x000736ca adds r0, 3                                |             r0 += 3;
    0x000736cc mov r1, sb                                |             r1 = sb;
    0x000736ce bl 0x803c0                                |             r0 = fcn_000803c0 (r0, r1);
                                                         |             if (r0 != 0) {
    0x000736d2 cbnz r0, 0x73706                          |                 goto label_2;
                                                         |             }
                                                         |         }
                                                         | label_0:
    0x000736d4 mov r0, r5                                |         r0 = r5;
    0x000736d6 blx 0x8dac                                |         fcn_00008dac ();
    0x000736da movs r2, 0                                |         r2 = 0;
    0x000736dc ldr r0, [sp, 4]                           |         r0 = var_4h;
    0x000736de mov r3, r6                                |         r3 = r6;
    0x000736e0 mov.w r1, 0x100000                        |         r1 = 0x100000;
    0x000736e4 str r2, [sp, 0xc]                         |         var_ch_2 = r2;
    0x000736e6 bl 0x6b144                                |         r0 = fcn_0006b144 (r0, r1, r2, r3);
    0x000736ea subs r4, r0, 0                            |         r4 = r0 - 0;
                                                         |         if (r4 < r0) {
    0x000736ec blt 0x73704                               |             goto label_3;
                                                         |         }
    0x000736ee ldr r0, [sp, 0xc]                         |         r0 = var_ch_2;
                                                         |         if (r4 == r0) {
    0x000736f0 beq 0x7372e                               |             goto label_4;
                                                         |         }
    0x000736f2 add r2, sp, 0x10                          |         r2 += var_10h;
    0x000736f4 mov r1, r7                                |         r1 = r7;
    0x000736f6 blx 0x8b20                                |         r0 = kmod_list_next ();
    0x000736fa cmp r0, 1                                 |         
    0x000736fc mov r4, r0                                |         r4 = r0;
    0x000736fe beq 0x736b6                               |         
                                                         |     }
    0x00073700 ldr r5, [sp, 0xc]                         |     r5 = var_ch_2;
    0x00073702 b 0x736d4                                 |     goto label_0;
                                                         | label_3:
    0x00073704 ldr r5, [sp, 0xc]                         |     r5 = var_ch_2;
                                                         | label_2:
    0x00073706 mov r0, r5                                |     r0 = r5;
    0x00073708 blx 0x8dac                                |     fcn_00008dac ();
                                                         |     do {
                                                         | label_1:
    0x0007370c ldr r0, [sp, 4]                           |         r0 = var_4h;
    0x0007370e bl 0x69b30                                |         fcn_00069b30 (r0, r1, r2, r3);
    0x00073712 ldr r2, [pc, 0x44]                        |         
    0x00073714 ldr r3, [pc, 0x24]                        |         r3 = *(0x7373c);
    0x00073716 add r2, pc                                |         r2 = 0xe6e74;
    0x00073718 ldr r3, [r2, r3]                          |         r3 = *(0xe6e74);
    0x0007371a ldr r2, [r3]                              |         r2 = *(0xe6e74);
    0x0007371c ldr r3, [sp, 0x14]                        |         r3 = var_14h;
    0x0007371e eors r2, r3                               |         r2 ^= r3;
    0x00073720 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00073724 bne 0x73734                               |             goto label_5;
                                                         |         }
    0x00073726 mov r0, r4                                |         r0 = r4;
    0x00073728 add sp, 0x1c                              |         
    0x0007372a pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_4:
    0x0007372e blx 0x8dac                                |         fcn_00008dac ();
    0x00073732 b 0x7370c                                 |         
                                                         |     } while (1);
                                                         | label_5:
    0x00073734 blx 0x927c                                |     fprintf_chk ()
    0x00073738 strb r6, [r1, r1]                         |     *((r1 + r1)) = r6;
    0x0007373a movs r5, r0                               |     r5 = r0;
    0x0007373c lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x0007373e movs r0, r0                               |     
    0x00073740 adds r3, 0x18                             |     r3 += 0x18;
    0x00073742 movs r1, r0                               |     r1 = r0;
    0x00073744 strh r2, [r6, 0x3c]                       |     *((r6 + 0x3c)) = r2;
    0x00073746 movs r2, r0                               |     r2 = r0;
    0x00073748 movs r2, 0x50                             |     r2 = 0x50;
    0x0007374a movs r3, r0                               |     r3 = r0;
    0x0007374c subs r2, r6, r1                           |     r2 = r6 - r1;
    0x0007374e movs r1, r0                               |     r1 = r0;
    0x00073750 movs r2, 0x50                             |     r2 = 0x50;
    0x00073752 movs r3, r0                               |     r3 = r0;
    0x00073754 movs r2, 0x52                             |     r2 = 0x52;
    0x00073756 movs r3, r0                               |     r3 = r0;
    0x00073758 strh r6, [r5, r6]                         |     *((r5 + r6)) = r6;
    0x0007375a movs r5, r0                               |     r5 = r0;
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7375c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0007375c ()                                      | void fcn_0007375c (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_8h_4;
                                                                 |     int16_t var_0h_3;
                                                                 |     int16_t var_4h_3;
                                                                 |     int16_t var_8h_7;
                                                                 |     int16_t var_8h_8;
                                                                 |     int16_t var_4h_4;
                                                                 |     int16_t var_8h_9;
                                                                 |     int16_t var_8h_6;
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_8h_5;
                                                                 |     int16_t var_8h_10;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0007375c svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x00073760 sub sp, 0x24                                      |     
    0x00073762 ldr r5, [pc, 0x32c]                               |     
    0x00073764 add r7, sp, 8                                     |     r7 += var_8h_4;
    0x00073766 ldr r4, [pc, 0x32c]                               |     r4 = *(0x73a96);
    0x00073768 add r5, pc                                        |     r5 = 0xe71fe;
    0x0007376a ldr r4, [r5, r4]                                  |     
    0x0007376c ldr r4, [r4]                                      |     r4 = *(0xe71fe);
    0x0007376e str r4, [r7, 0x14]                                |     *((r7 + 0x14)) = r4;
    0x00073770 mov.w r4, 0                                       |     r4 = 0;
    0x00073774 ldr r4, [r7, 0x40]                                |     r4 = *((r7 + 0x40));
    0x00073776 str r4, [r7, 4]                                   |     var_4h_4 = r4;
    0x00073778 ldr r4, [r7, 0x44]                                |     r4 = *((r7 + 0x44));
    0x0007377a strd r4, r3, [r7, 8]                              |     __asm ("strd r4, r3, [var_8h_9]");
    0x0007377e subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 < r0) {
    0x00073780 blt.w 0x73a78                                     |         goto label_11;
                                                                 |     }
    0x00073784 mov r6, r1                                        |     r6 = r1;
    0x00073786 mov r5, r2                                        |     r5 = r2;
    0x00073788 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0007378a beq.w 0x73976                                     |         goto label_12;
                                                                 |     }
    0x0007378c strh r4, [r6, 6]                                  |     *((r6 + 6)) = r4;
    0x0007378e cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00073790 beq.w 0x7394e                                     |         goto label_13;
                                                                 |     }
    0x00073794 ldr r3, [pc, 0x300]                               |     
    0x00073796 sub sp, 0x20                                      |     
    0x00073798 add.w r8, sp, 8                                   |     r8 += var_8h_5;
    0x0007379c movs r2, 0x1a                                     |     r2 = 0x1a;
    0x0007379e movs r1, 1                                        |     r1 = 1;
    0x000737a0 mov r0, r8                                        |     r0 = r8;
    0x000737a2 add r3, pc                                        |     r3 = 0xe723e;
    0x000737a4 str r4, [sp]                                      |     *(sp) = r4;
    0x000737a6 str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x000737a8 ldr r3, [pc, 0x2f0]                               |     
    0x000737aa add r3, pc                                        |     r3 = 0xe724a;
    0x000737ac blx 0x9494                                        |     fcn_00009494 ();
                                                                 |     do {
    0x000737b0 mov.w r1, 0x100                                   |         r1 = 0x100;
    0x000737b4 mov r0, r8                                        |         r0 = r8;
    0x000737b6 movt r1, 8                                        |         r1 = (r1 & 0xFFFF) | 0x80000;
    0x000737b8 lsls r0, r1, 4                                    |         r0 = r1 << 4;
    0x000737ba blx 0x908c                                        |         r0 = fcn_0000908c ();
    0x000737be subs.w r8, r0, 0                                  |         r8 = r0 - 0;
                                                                 |         if (r8 < r0) {
    0x000737c2 blt.w 0x73a0c                                     |             goto label_14;
                                                                 |         }
    0x000737c6 cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x000737c8 beq.w 0x73980                                     |             goto label_15;
                                                                 |         }
                                                                 | label_0:
    0x000737cc cmp r4, 0                                         |         
                                                                 |         if (r4 != 0) {
    0x000737ce bne.w 0x739aa                                     |             goto label_16;
                                                                 |         }
    0x000737d2 ldr r3, [pc, 0x2cc]                               |         
    0x000737d4 sub sp, 0x18                                      |         
    0x000737d6 add.w sb, sp, 8                                   |         sb += var_8h_10;
    0x000737da ldr r2, [pc, 0x2c8]                               |         
    0x000737dc add r3, pc                                        |         r3 = 0xe7282;
    0x000737de ldrh r1, [r3, 4]                                  |         r1 = *((r3 + 4));
    0x000737e0 add r2, pc                                        |         r2 = 0xe728a;
    0x000737e2 strh.w r1, [sb, 0xf]                              |         *((sb + 0xf)) = r1;
    0x000737e6 ldrb r1, [r3, 6]                                  |         r1 = *((r3 + 6));
    0x000737e8 strb.w r1, [sb, 0x11]                             |         *((sb + 0x11)) = r1;
    0x000737ec ldm r2, {r0, r1, r2}                              |         r0 = *(r2);
                                                                 |         r1 = *((r2 + 4));
                                                                 |         r2 = *((r2 + 8));
    0x000737ee stm.w sb, {r0, r1, r2}                            |         *(sb) = r0;
                                                                 |         *((sb + 4)) = r1;
                                                                 |         *((sb + 8)) = r2;
    0x000737f2 ldr r0, [r3]                                      |         r0 = *(0xe7282);
    0x000737f4 str.w r0, [sb, 0xb]                               |         __asm ("str.w r0, [sb, 0xb]");
                                                                 | label_5:
    0x000737f8 mov.w r1, 0x100                                   |         r1 = 0x100;
    0x000737fc mov r0, sb                                        |         r0 = sb;
    0x000737fe movt r1, 8                                        |         r1 = (r1 & 0xFFFF) | 0x80000;
    0x00073800 lsls r0, r1, 4                                    |         r0 = r1 << 4;
    0x00073802 blx 0x908c                                        |         r0 = fcn_0000908c ();
    0x00073806 subs.w sb, r0, 0                                  |         sb = r0 - 0;
                                                                 |         if (sb < r0) {
    0x0007380a blt.w 0x73a56                                     |             goto label_17;
                                                                 |         }
    0x0007380e ldr r3, [r7, 0xc]                                 |         r3 = *((r7 + 0xc));
    0x00073810 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00073812 beq.w 0x7398c                                     |             goto label_18;
                                                                 |         }
                                                                 | label_1:
    0x00073816 cmp r4, 0                                         |         
                                                                 |         if (r4 != 0) {
    0x00073818 bne.w 0x739c8                                     |             goto label_19;
                                                                 |         }
    0x0007381c ldr r3, [pc, 0x288]                               |         
    0x0007381e sub sp, 0x18                                      |         
    0x00073820 add.w sl, sp, 8                                   |         sl += var_8h_6;
    0x00073824 ldr r2, [pc, 0x284]                               |         
    0x00073826 add r3, pc                                        |         r3 = 0xe72d2;
    0x00073828 ldrh r1, [r3, 4]                                  |         r1 = *((r3 + 4));
    0x0007382a add r2, pc                                        |         r2 = 0xe72da;
    0x0007382c strh.w r1, [sl, 0xf]                              |         *((sl + 0xf)) = r1;
    0x00073830 ldrb r1, [r3, 6]                                  |         r1 = *((r3 + 6));
    0x00073832 strb.w r1, [sl, 0x11]                             |         *((sl + 0x11)) = r1;
    0x00073836 ldm r2, {r0, r1, r2}                              |         r0 = *(r2);
                                                                 |         r1 = *((r2 + 4));
                                                                 |         r2 = *((r2 + 8));
    0x00073838 stm.w sl, {r0, r1, r2}                            |         *(sl) = r0;
                                                                 |         *((sl + 4)) = r1;
                                                                 |         *((sl + 8)) = r2;
    0x0007383a movs r7, r0                                       |         r7 = r0;
    0x0007383c ldr r0, [r3]                                      |         r0 = *(0xe72d2);
    0x0007383e str.w r0, [sl, 0xb]                               |         __asm ("str.w r0, [sl, 0xb]");
                                                                 | label_6:
    0x00073842 mov.w r1, 0x100                                   |         r1 = 0x100;
    0x00073846 mov r0, sl                                        |         r0 = sl;
    0x00073848 movt r1, 8                                        |         r1 = (r1 & 0xFFFF) | 0x80000;
    0x0007384c blx 0x908c                                        |         r0 = fcn_0000908c ();
    0x00073850 subs.w fp, r0, 0                                  |         
                                                                 |         if (fp < r0) {
    0x00073854 blt.w 0x73a66                                     |             goto label_20;
                                                                 |         }
    0x00073858 ldr r3, [r7, 4]                                   |         r3 = var_4h_4;
    0x0007385a cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0007385c beq.w 0x73998                                     |             goto label_21;
                                                                 |         }
                                                                 | label_2:
    0x00073860 cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x00073862 beq.w 0x739e6                                     |             goto label_22;
                                                                 |         }
    0x00073866 ldr r3, [pc, 0x248]                               |         
    0x00073868 sub sp, 0x20                                      |         
    0x0007386a add.w sl, sp, 8                                   |         sl += var_8h_9;
    0x0007386e movs r2, 0x1b                                     |         r2 = 0x1b;
    0x00073870 movs r1, 1                                        |         r1 = 1;
    0x00073872 mov r0, sl                                        |         r0 = sl;
    0x00073874 add r3, pc                                        |         r3 = 0xe732a;
    0x00073876 str r4, [sp]                                      |         *(sp) = r4;
    0x00073878 str r3, [sp, 4]                                   |         var_4h_4 = r3;
    0x0007387a ldr r3, [pc, 0x238]                               |         
    0x0007387c add r3, pc                                        |         r3 = 0xe7336;
    0x0007387e blx 0x9494                                        |         fcn_00009494 ();
    0x00073880 invalid                                           |         
                                                                 | label_7:
    0x00073882 mov.w r1, 0x100                                   |         r1 = 0x100;
    0x00073886 mov r0, sl                                        |         r0 = sl;
    0x00073888 movt r1, 8                                        |         r1 = (r1 & 0xFFFF) | 0x80000;
    0x0007388c blx 0x908c                                        |         r0 = fcn_0000908c ();
    0x00073890 subs.w sl, r0, 0                                  |         sl = r0 - 0;
                                                                 |         if (sl < r0) {
    0x00073894 blt.w 0x73a44                                     |             goto label_23;
                                                                 |         }
                                                                 | label_10:
    0x00073898 ldr r3, [r7, 8]                                   |         r3 = var_8h_9;
    0x0007389a cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0007389c beq.w 0x739a4                                     |             goto label_24;
                                                                 |         }
                                                                 | label_3:
    0x000738a0 cmp r4, 0                                         |         
                                                                 |         if (r4 != 0) {
    0x000738a2 bne.w 0x73a28                                     |             goto label_25;
                                                                 |         }
    0x000738a6 ldr.w ip, [pc, 0x210]                             |         
    0x000738aa sub sp, 0x10                                      |         
    0x000738ac ldr r3, [pc, 0x20c]                               |         
    0x000738ae add r4, sp, 8                                     |         r4 += var_8h_8;
    0x000738b0 add ip, pc                                        |         ip = 0xe736e;
    0x000738b2 ldrb.w r2, [ip, 4]                                |         r2 = *((ip + 4));
    0x000738b6 add r3, pc                                        |         r3 = 0xe7376;
    0x000738b8 strb r2, [r4, 0xf]                                |         *((r4 + 0xf)) = r2;
    0x000738ba ldm.w r3, {r0, r1, r2}                            |         r0 = *(r3);
                                                                 |         r1 = *((r3 + 4));
                                                                 |         r2 = *((r3 + 8));
    0x000738be stm.w r4, {r0, r1, r2}                            |         *(r4) = r0;
                                                                 |         *((r4 + 4)) = r1;
                                                                 |         *((r4 + 8)) = r2;
    0x000738c2 ldr.w r0, [ip]                                    |         r0 = *(0xe736e);
    0x000738c6 str.w r0, [r4, 0xb]                               |         __asm ("str.w r0, [r4, 0xb]");
                                                                 | label_9:
    0x000738ca mov.w r1, 0x4100                                  |         r1 = 0x4100;
    0x000738ce mov r0, r4                                        |         r0 = r4;
    0x000738d0 movt r1, 8                                        |         r1 = (r1 & 0xFFFF) | 0x80000;
    0x000738d4 blx 0x908c                                        |         r0 = fcn_0000908c ();
    0x000738d8 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x000738da blt.w 0x73a1e                                     |             goto label_26;
                                                                 |         }
    0x000738dc strh r0, [r4, 4]                                  |         *((r4 + 4)) = r0;
                                                                 |         if (r6 != 0) {
                                                                 | label_4:
    0x000738de cbz r6, 0x738e8                                   |             
    0x000738e0 str.w sb, [r6]                                    |             __asm ("str.w sb, [r6]");
    0x000738e4 mov.w sb, -1                                      |             sb = -1;
                                                                 |         }
                                                                 |         if (r5 != 0) {
    0x000738e8 cbz r5, 0x738f2                                   |             
    0x000738ea str.w r8, [r5]                                    |             __asm ("str.w r8, [r5]");
    0x000738ee mov.w r8, -1                                      |             r8 = -1;
                                                                 |         }
    0x000738f2 ldr r3, [r7, 0xc]                                 |         r3 = *((r7 + 0xc));
                                                                 |         if (r3 != 0) {
    0x000738f4 cbz r3, 0x738fe                                   |             
    0x000738f6 str.w fp, [r3]                                    |             __asm ("str.w fp, [r3]");
    0x000738fa mov.w fp, -1                                      |             
                                                                 |         }
    0x000738fe ldr r3, [r7, 4]                                   |         r3 = var_4h_4;
                                                                 |         if (r3 != 0) {
    0x00073900 cbz r3, 0x7390a                                   |             
    0x00073902 str.w sl, [r3]                                    |             __asm ("str.w sl, [r3]");
    0x00073906 mov.w sl, -1                                      |             sl = -1;
    0x00073908 subs r2, 0xff                                     |             r2 -= 0xff;
                                                                 |         }
    0x0007390a ldr r3, [r7, 8]                                   |         r3 = var_8h_9;
    0x0007390c cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0007390e beq.w 0x73a74                                     |             goto label_27;
                                                                 |         }
    0x00073912 movs r4, 0                                        |         r4 = 0;
    0x00073914 str r0, [r3]                                      |         *(r3) = r0;
                                                                 | label_8:
    0x00073916 mov r0, sl                                        |         r0 = sl;
    0x00073918 bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
    0x0007391a invalid                                           |         
    0x0007391c mov r0, fp                                        |         r0 = fp;
    0x0007391e bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
    0x00073922 mov r0, r8                                        |         r0 = r8;
    0x00073924 bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
    0x00073928 mov r0, sb                                        |         r0 = sb;
    0x0007392a bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
    0x0007392e ldr r2, [pc, 0x190]                               |         
    0x00073930 ldr r3, [pc, 0x160]                               |         r3 = *(0x73a94);
    0x00073932 add r2, pc                                        |         r2 = 0xe73f8;
    0x00073934 ldr r3, [r2, r3]                                  |         r3 = *(0xe73f8);
    0x00073936 ldr r2, [r3]                                      |         r2 = *(0xe73f8);
    0x00073938 ldr r3, [r7, 0x14]                                |         r3 = *((r7 + 0x14));
    0x0007393a eors r2, r3                                       |         r2 ^= r3;
    0x0007393c mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00073940 bne.w 0x73a8c                                     |             goto label_28;
                                                                 |         }
    0x00073944 mov r0, r4                                        |         r0 = r4;
    0x00073946 adds r7, 0x1c                                     |         r7 += 0x1c;
    0x00073948 mov sp, r7                                        |         
    0x0007394a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x0007394c ldrh r0, [r6, 0x3e]                               |         r0 = *((r6 + 0x3e));
                                                                 | label_13:
    0x0007394e ldr r3, [pc, 0x174]                               |         
    0x00073950 sub sp, 0x18                                      |         
    0x00073952 add.w r8, sp, 8                                   |         r8 += var_8h_10;
    0x00073954 lsrs r0, r1, 0x20                                 |         r0 = r1 >> 0x20;
    0x00073956 ldr r2, [pc, 0x170]                               |         
    0x00073958 add r3, pc                                        |         r3 = 0xe7422;
    0x0007395a ldrh r1, [r3, 4]                                  |         r1 = *((r3 + 4));
    0x0007395c add r2, pc                                        |         r2 = 0xe742a;
    0x0007395e strh.w r1, [r8, 0xf]                              |         *((r8 + 0xf)) = r1;
    0x00073962 ldrb r1, [r3, 6]                                  |         r1 = *((r3 + 6));
    0x00073964 strb.w r1, [r8, 0x11]                             |         *((r8 + 0x11)) = r1;
    0x00073968 ldm r2, {r0, r1, r2}                              |         r0 = *(r2);
                                                                 |         r1 = *((r2 + 4));
                                                                 |         r2 = *((r2 + 8));
    0x0007396a stm.w r8, {r0, r1, r2}                            |         *(r8) = r0;
                                                                 |         *((r8 + 4)) = r1;
                                                                 |         *((r8 + 8)) = r2;
    0x0007396e ldr r0, [r3]                                      |         r0 = *(0xe7422);
    0x00073970 str.w r0, [r8, 0xb]                               |         __asm ("str.w r0, [r8, 0xb]");
    0x00073974 b 0x737b0                                         |         
                                                                 |     } while (1);
                                                                 | label_12:
    0x00073976 mov.w r8, -1                                      |     r8 = -1;
    0x0007397a cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x0007397c bne.w 0x737cc                                     |         goto label_0;
                                                                 |     }
                                                                 | label_15:
    0x00073980 ldr r3, [r7, 0xc]                                 |     r3 = *((r7 + 0xc));
    0x00073982 mov.w sb, -1                                      |     sb = -1;
    0x00073986 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00073988 bne.w 0x73816                                     |         goto label_1;
                                                                 |     }
                                                                 | label_18:
    0x0007398c ldr r3, [r7, 4]                                   |     r3 = var_4h_4;
    0x0007398e mov.w fp, -1                                      |     
    0x00073992 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00073994 bne.w 0x73860                                     |         goto label_2;
                                                                 |     }
                                                                 | label_21:
    0x00073998 ldr r3, [r7, 8]                                   |     r3 = var_8h_9;
    0x0007399a mov.w sl, -1                                      |     sl = -1;
    0x0007399e cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000739a0 bne.w 0x738a0                                     |         goto label_3;
                                                                 |     }
    0x000739a2 add r7, sp, 0x1f8                                 |     r7 = sp + 0x1f8;
                                                                 | label_24:
    0x000739a4 mov.w r0, -1                                      |     r0 = -1;
    0x000739a8 b 0x738de                                         |     goto label_4;
                                                                 | label_16:
    0x000739aa ldr r3, [pc, 0x120]                               |     
    0x000739ac sub sp, 0x20                                      |     
    0x000739ae add.w sb, sp, 8                                   |     sb += var_8h_5;
    0x000739b2 movs r2, 0x1a                                     |     r2 = 0x1a;
    0x000739b4 movs r1, 1                                        |     r1 = 1;
    0x000739b6 mov r0, sb                                        |     r0 = sb;
    0x000739b8 add r3, pc                                        |     r3 = 0xe748a;
    0x000739ba str r4, [sp]                                      |     *(sp) = r4;
    0x000739bc str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x000739be ldr r3, [pc, 0x110]                               |     
    0x000739c0 add r3, pc                                        |     r3 = 0xe7496;
    0x000739c2 blx 0x9494                                        |     fcn_00009494 ();
    0x000739c6 b 0x737f8                                         |     goto label_5;
                                                                 | label_19:
    0x000739c8 ldr r3, [pc, 0x108]                               |     
    0x000739ca sub sp, 0x20                                      |     
    0x000739cc add.w sl, sp, 8                                   |     sl += var_8h_9;
    0x000739d0 movs r2, 0x1a                                     |     r2 = 0x1a;
    0x000739d2 movs r1, 1                                        |     r1 = 1;
    0x000739d4 mov r0, sl                                        |     r0 = sl;
    0x000739d6 add r3, pc                                        |     r3 = 0xe74ae;
    0x000739d8 str r4, [sp]                                      |     *(sp) = r4;
    0x000739da str r3, [sp, 4]                                   |     var_4h_4 = r3;
    0x000739dc ldr r3, [pc, 0xf8]                                |     
    0x000739de add r3, pc                                        |     r3 = 0xe74ba;
    0x000739e0 blx 0x9494                                        |     fcn_00009494 ();
    0x000739e4 b 0x73842                                         |     goto label_6;
                                                                 | label_22:
    0x000739e6 ldr r3, [pc, 0xf4]                                |     
    0x000739e8 sub sp, 0x18                                      |     
    0x000739ea ldr.w ip, [pc, 0xf4]                              |     
    0x000739ee add.w sl, sp, 8                                   |     sl += var_8h_6;
    0x000739f2 add r3, pc                                        |     r3 = 0xe74d4;
    0x000739f4 ldm.w r3, {r0, r1, r2}                            |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
                                                                 |     r2 = *((r3 + 8));
    0x000739f8 add ip, pc                                        |     ip = 0xe74de;
    0x000739fa stm.w sl, {r0, r1, r2}                            |     *(sl) = r0;
                                                                 |     *((sl + 4)) = r1;
                                                                 |     *((sl + 8)) = r2;
    0x000739fe ldm.w ip!, {r0, r1}                               |     r0 = *(ip!);
                                                                 |     r1 = *((ip! + 4));
    0x00073a02 str.w r0, [sl, 0xb]                               |     __asm ("str.w r0, [sl, 0xb]");
    0x00073a06 str.w r1, [sl, 0xf]                               |     __asm ("str.w r1, [sl, 0xf]");
    0x00073a0a b 0x73882                                         |     goto label_7;
                                                                 | label_14:
    0x00073a0c blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x00073a10 ldr r4, [r0]                                      |     r4 = *(r0);
    0x00073a12 mov.w sl, -1                                      |     sl = -1;
    0x00073a16 mov fp, sl                                        |     
    0x00073a18 mov sb, sl                                        |     sb = sl;
    0x00073a1a rsbs r4, r4, 0                                    |     r4 -= ;
    0x00073a1c b 0x73916                                         |     goto label_8;
                                                                 | label_26:
    0x00073a1e blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x00073a22 ldr r4, [r0]                                      |     r4 = *(r0);
    0x00073a24 rsbs r4, r4, 0                                    |     r4 -= ;
    0x00073a26 b 0x73916                                         |     goto label_8;
                                                                 | label_25:
    0x00073a28 ldr r3, [pc, 0xb8]                                |     
    0x00073a2a sub sp, 0x18                                      |     
    0x00073a2c str r4, [sp]                                      |     *(sp) = r4;
    0x00073a2e add r4, sp, 8                                     |     r4 += var_8h_7;
    0x00073a30 movs r2, 0x18                                     |     r2 = 0x18;
    0x00073a32 movs r1, 1                                        |     r1 = 1;
    0x00073a34 add r3, pc                                        |     r3 = 0xe751c;
    0x00073a36 mov r0, r4                                        |     r0 = r4;
    0x00073a38 str r3, [sp, 4]                                   |     var_4h_3 = r3;
    0x00073a3a ldr r3, [pc, 0xac]                                |     
    0x00073a3c add r3, pc                                        |     r3 = 0xe752a;
    0x00073a3e blx 0x9494                                        |     fcn_00009494 ();
    0x00073a40 stc p7, c14, [sl, -0x108]!                        |     __asm ("stc p7, c14, aav.0x000000ff!");
    0x00073a42 b 0x738ca                                         |     goto label_9;
                                                                 | label_23:
    0x00073a44 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x00073a48 ldr r3, [r0]                                      |     r3 = *(r0);
    0x00073a4a cmp r3, 2                                         |     
    0x00073a4c it ne                                             |     
                                                                 |     if (r3 == 2) {
    0x00073a4e rsbne r4, r3, 0                                   |         __asm ("rsbne r4, r3, 0");
                                                                 |         goto label_29;
                                                                 |     }
                                                                 |     if (r3 != 2) {
                                                                 | label_29:
    0x00073a50 bne.w 0x73916                                     |         goto label_8;
                                                                 |     }
    0x00073a54 b 0x73898                                         |     goto label_10;
                                                                 | label_17:
    0x00073a56 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x00073a5a ldr r4, [r0]                                      |     r4 = *(r0);
    0x00073a5c mov.w sl, -1                                      |     sl = -1;
    0x00073a60 mov fp, sl                                        |     
    0x00073a62 rsbs r4, r4, 0                                    |     r4 -= ;
    0x00073a64 b 0x73916                                         |     goto label_8;
                                                                 | label_20:
    0x00073a66 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x00073a6a ldr r4, [r0]                                      |     r4 = *(r0);
    0x00073a6c mov.w sl, -1                                      |     sl = -1;
    0x00073a70 rsbs r4, r4, 0                                    |     r4 -= ;
    0x00073a72 b 0x73916                                         |     goto label_8;
                                                                 | label_27:
    0x00073a74 ldr r4, [r7, 8]                                   |     r4 = var_8h_9;
    0x00073a76 b 0x73916                                         |     goto label_8;
                                                                 | label_11:
    0x00073a78 ldr r1, [pc, 0x70]                                |     
    0x00073a7a movs r2, 0x14                                     |     r2 = 0x14;
    0x00073a7c ldr r3, [pc, 0x70]                                |     
    0x00073a7e ldr r0, [pc, 0x74]                                |     
    0x00073a80 add r1, pc                                        |     r1 = 0xe7570;
    0x00073a82 add r3, pc                                        |     r3 = 0xe7576;
    0x00073a84 adds r1, 7                                        |     r1 += 7;
    0x00073a86 add r0, pc                                        |     r0 = 0xe7580;
    0x00073a88 bl 0x71518                                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_28:
    0x00073a8c blx 0x927c                                        |     fprintf_chk ()
    0x00073a90 strh r4, [r3, r5]                                 |     *((r3 + r5)) = r4;
    0x00073a92 movs r5, r0                                       |     r5 = r0;
    0x00073a94 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x00073a96 movs r0, r0                                       |     
    0x00073a98 movs r2, 0xa                                      |     r2 = 0xa;
    0x00073a9a movs r3, r0                                       |     r3 = r0;
    0x00073a9c asrs r6, r2, 0xf                                  |     r6 = r2 >> 0xf;
    0x00073a9e movs r2, r0                                       |     r2 = r0;
    0x00073aa0 movs r1, 0xd8                                     |     r1 = 0xd8;
    0x00073aa2 movs r3, r0                                       |     r3 = r0;
    0x00073aa4 asrs r4, r1, 0xe                                  |     r4 = r1 >> 0xe;
    0x00073aa6 movs r2, r0                                       |     r2 = r0;
    0x00073aa8 invalid                                           |     
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x73af8 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00073af8 ()                              | void fcn_00073af8 (int16_t arg_48h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     int16_t var_8h;
                                                         |     int16_t var_24h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x00073af8 mvnsmi lr, 0xb4000                        |     __asm ("mvnsmi lr, aav.0x000000ff");
    0x00073afc sub sp, 0x2c                              |     
    0x00073afe ldr r5, [pc, 0x104]                       |     
    0x00073b00 mov r6, r1                                |     r6 = r1;
    0x00073b02 mov r7, r2                                |     r7 = r2;
    0x00073b04 ldr r4, [pc, 0x100]                       |     r4 = *(0x73c08);
    0x00073b06 add r5, pc                                |     r5 = 0xe7710;
    0x00073b08 ldr.w r8, [sp, 0x48]                      |     r8 = *(arg_48h);
    0x00073b0c ldr r4, [r5, r4]                          |     
    0x00073b0e mov r5, r0                                |     r5 = r0;
    0x00073b10 ldr r4, [r4]                              |     r4 = *(0xe7710);
    0x00073b12 str r4, [sp, 0x24]                        |     var_24h = r4;
    0x00073b14 mov.w r4, 0                               |     r4 = 0;
    0x00073b18 subs r4, r3, 0                            |     r4 = r3 - 0;
                                                         |     if (r4 >= r3) {
    0x00073b1a bge 0x73bbe                               |         goto label_6;
                                                         |     }
    0x00073b1c cmp r5, 0                                 |     
                                                         |     if (r5 >= 0) {
    0x00073b1e bge 0x73bf0                               |         goto label_7;
                                                         |     }
                                                         | label_5:
    0x00073b20 cmp r6, 0                                 |     
    0x00073b22 bge 0x73b66                               |     
                                                         |     while (r0 >= 0) {
    0x00073b24 cmp r7, 0                                 |         
                                                         |         if (r7 >= 0) {
    0x00073b26 bge 0x73b96                               |             goto label_8;
                                                         |         }
    0x00073b28 cmp r4, 0                                 |         
                                                         |         if (r4 >= 0) {
    0x00073b2a bge 0x73ba8                               |             goto label_9;
                                                         |         }
                                                         | label_0:
    0x00073b2c cmp.w r8, 0                               |         
                                                         |         if (r8 >= 0) {
    0x00073b30 blt 0x73b48                               |             
                                                         | label_2:
    0x00073b32 mov r0, r8                                |             r0 = r8;
    0x00073b34 blx 0x94ac                                |             r0 = fcn_000094ac ();
    0x00073b38 cmp r0, 0                                 |             
                                                         |             if (r0 < 0) {
    0x00073b3a blt 0x73b74                               |                 goto label_1;
                                                         |             }
    0x00073b3c ldr r0, [pc, 0xcc]                        |             
    0x00073b3e add r0, pc                                |             r0 = 0xe774e;
    0x00073b40 blx 0x9044                                |             r0 = fcn_00009044 ();
    0x00073b44 cmp r0, 0                                 |             
                                                         |             if (r0 < 0) {
    0x00073b46 blt 0x73b74                               |                 goto label_1;
                                                         |             }
                                                         |         }
                                                         | label_3:
    0x00073b48 ldr r2, [pc, 0xc4]                        |         
    0x00073b4a ldr r3, [pc, 0xbc]                        |         r3 = *(0x73c0a);
    0x00073b4c add r2, pc                                |         r2 = 0xe7760;
    0x00073b4e ldr r3, [r2, r3]                          |         r3 = *(0xe7760);
    0x00073b50 ldr r2, [r3]                              |         r2 = *(0xe7760);
    0x00073b52 ldr r3, [sp, 0x24]                        |         r3 = var_24h;
    0x00073b54 eors r2, r3                               |         r2 ^= r3;
    0x00073b56 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00073b5a bne 0x73c00                               |             goto label_10;
                                                         |         }
    0x00073b5c add sp, 0x2c                              |         
    0x00073b5e pop.w {r4, r5, r6, r7, r8, sb, lr}        |         
    0x00073b62 b.w 0x7daf0                               |         void (*0x7daf0)() ();
    0x00073b66 mov.w r1, 0x20000                         |         r1 = 0x20000;
    0x00073b6a mov r0, r6                                |         r0 = r6;
    0x00073b6c blx 0x9440                                |         r0 = fcn_00009440 ();
    0x00073b70 cmp r0, 0                                 |         
    0x00073b72 bge 0x73b24                               |         
                                                         |     }
                                                         |     do {
                                                         | label_1:
    0x00073b74 blx 0x9628                                |         r0 = fcn_00009628 ();
    0x00073b78 ldr r0, [r0]                              |         r0 = *(r0);
    0x00073b7a rsbs r0, r0, 0                            |         r0 -= ;
                                                         | label_4:
    0x00073b7c ldr r2, [pc, 0x94]                        |         
    0x00073b7e ldr r3, [pc, 0x88]                        |         r3 = *(0x73c0a);
    0x00073b80 add r2, pc                                |         r2 = 0xe7798;
    0x00073b82 ldr r3, [r2, r3]                          |         r3 = *(0xe7798);
    0x00073b84 ldr r2, [r3]                              |         r2 = *(0xe7798);
    0x00073b86 ldr r3, [sp, 0x24]                        |         r3 = var_24h;
    0x00073b88 eors r2, r3                               |         r2 ^= r3;
    0x00073b8a mov.w r3, 0                               |         r3 = 0;
    0x00073b8c lsls r0, r0, 0xc                          |         r0 <<= 0xc;
                                                         |         if (r0 != r0) {
    0x00073b8e bne 0x73c00                               |             goto label_10;
                                                         |         }
    0x00073b90 add sp, 0x2c                              |         
    0x00073b92 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
    0x00073b94 strh r0, [r6, 0x1e]                       |         *((r6 + 0x1e)) = r0;
                                                         | label_8:
    0x00073b96 mov.w r1, 0x40000000                      |         r1 = 0x40000000;
    0x00073b9a mov r0, r7                                |         r0 = r7;
    0x00073b9c blx 0x9440                                |         fcn_00009440 ();
    0x00073b9e mrrc p8, 0, r2, r0, c0                    |         __asm ("mrrc p8, 0, r2, r0, c0");
    0x00073ba2 blt 0x73b74                               |         
                                                         |     } while (r0 < r0);
    0x00073ba4 cmp r4, 0                                 |     
                                                         |     if (r4 < 0) {
    0x00073ba6 blt 0x73b2c                               |         goto label_0;
                                                         |     }
                                                         | label_9:
    0x00073ba8 mov.w r1, 0x10000000                      |     r1 = 0x10000000;
    0x00073bac mov r0, r4                                |     r0 = r4;
    0x00073bae blx 0x9440                                |     r0 = fcn_00009440 ();
    0x00073bb2 cmp r0, 0                                 |     
                                                         |     if (r0 < 0) {
    0x00073bb4 blt 0x73b74                               |         goto label_1;
                                                         |     }
    0x00073bb6 cmp.w r8, 0                               |     
                                                         |     if (r8 >= 0) {
    0x00073bba bge 0x73b32                               |         goto label_2;
                                                         |     }
    0x00073bbc b 0x73b48                                 |     goto label_3;
                                                         | label_6:
    0x00073bbe ldr r3, [pc, 0x58]                        |     
    0x00073bc0 add.w sb, sp, 8                           |     sb += var_8h;
    0x00073bc4 movs r2, 1                                |     r2 = 1;
    0x00073bc6 mov r0, sb                                |     r0 = sb;
    0x00073bc8 str r4, [sp, 4]                           |     var_4h = r4;
    0x00073bca add r3, pc                                |     r3 = 0xe77e8;
    0x00073bcc str r3, [sp]                              |     *(sp) = r3;
    0x00073bce movs r3, 0x1a                             |     r3 = 0x1a;
    0x00073bd0 mov r1, r3                                |     r1 = r3;
    0x00073bd2 blx 0x9110                                |     fcn_00009110 ();
    0x00073bd6 ldr r1, [pc, 0x44]                        |     
    0x00073bd8 mov r0, sb                                |     r0 = sb;
    0x00073bda movs r2, 0                                |     r2 = 0;
    0x00073bdc add r1, pc                                |     r1 = 0xe77fe;
    0x00073bde bl 0x79fe4                                |     r0 = fcn_00079fe4 (r0, r1, r2);
    0x00073be2 cmp r0, 0                                 |     
                                                         |     if (r0 < 0) {
    0x00073be4 blt 0x73b7c                               |         goto label_4;
                                                         |     }
    0x00073be6 it ne                                     |     
                                                         |     if (r0 == 0) {
    0x00073be8 movne r4, -1                              |         r4 = -1;
                                                         |     }
    0x00073bec cmp r5, 0                                 |     
                                                         |     if (r5 < 0) {
    0x00073bee blt 0x73b20                               |         goto label_5;
                                                         |     }
                                                         | label_7:
    0x00073bf0 mov r0, r5                                |     r0 = r5;
    0x00073bf2 mov.w r1, 0x20000000                      |     r1 = 0x20000000;
    0x00073bf4 str r0, [r0, r4]                          |     *((r0 + r4)) = r0;
    0x00073bf6 blx 0x9440                                |     fcn_00009440 ();
    0x00073bf8 stc p8, c2, [r4], -0                      |     __asm ("stc p8, c2, [r4], -0");
                                                         |     if (r5 >= 0) {
    0x00073bfc bge 0x73b20                               |         goto label_5;
                                                         |     }
    0x00073bfe b 0x73b74                                 |     goto label_1;
                                                         | label_10:
    0x00073c00 blx 0x927c                                |     fprintf_chk ()
    0x00073c04 ldr r7, [pc, 0x2f8]                       |     r7 = *(0x73f00);
    0x00073c06 movs r5, r0                               |     r5 = r0;
    0x00073c08 lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x00073c0a movs r0, r0                               |     
    0x00073c0c ldr r2, [pc, 0xb8]                        |     r2 = *(0x73cc8);
    0x00073c0e movs r1, r0                               |     r1 = r0;
    0x00073c10 ldr r7, [pc, 0x1e0]                       |     r7 = *(0x73df4);
    0x00073c12 movs r5, r0                               |     r5 = r0;
    0x00073c14 ldr r7, [pc, 0x110]                       |     r7 = *(0x73d28);
    0x00073c16 movs r5, r0                               |     r5 = r0;
    0x00073c18 adds r2, r7, 7                            |     r2 = r7 + 7;
    0x00073c1a movs r3, r0                               |     r3 = r0;
    0x00073c1c adds r4, r7, 7                            |     r4 = r7 + 7;
    0x00073c1e movs r3, r0                               |     r3 = r0;
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x73c94 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.00073c94 ()                                      | void fcn_00073c94 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch_2;
                                                                 |     int16_t var_0h;
                                                                 |     int32_t var_0h_3;
                                                                 |     int16_t var_8h_3;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_1h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int32_t var_8h_4;
                                                                 |     int32_t var_10h_2;
                                                                 |     int32_t var_14h;
                                                                 |     int16_t var_0h_2;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00073c94 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x00073c98 mov r6, r2                                        |     r6 = r2;
    0x00073c9a ldr r2, [pc, 0x18c]                               |     
    0x00073c9c mov r8, r3                                        |     r8 = r3;
    0x00073c9e sub sp, 0x2c                                      |     
    0x00073ca0 ldr r3, [pc, 0x188]                               |     r3 = *(0x73e2c);
    0x00073ca2 add r7, sp, 0x10                                  |     r7 += var_10h;
    0x00073ca4 add r2, pc                                        |     r2 = 0xe7ad2;
    0x00073ca6 movs r4, 0                                        |     r4 = 0;
    0x00073ca8 mov r5, r0                                        |     r5 = r0;
    0x00073caa mov sb, r1                                        |     sb = r1;
    0x00073cac ldr r3, [r2, r3]                                  |     
    0x00073cae ldr r3, [r3]                                      |     r3 = *(0xe7ad2);
    0x00073cb0 str r3, [r7, 0x14]                                |     var_14h = r3;
    0x00073cb2 mov.w r3, 0                                       |     r3 = 0;
    0x00073cb6 str r4, [r7]                                      |     *(r7) = r4;
    0x00073cb8 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00073cba beq.w 0x73dc6                                     |         goto label_3;
                                                                 |     }
    0x00073cbe mov r0, r1                                        |     r0 = r1;
    0x00073cc0 bl 0x73c50                                        |     r0 = fcn_00073c50 (r0);
    0x00073cc4 mov r4, r0                                        |     r4 = r0;
    0x00073cc6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00073cc8 beq 0x73d86                                       |         goto label_4;
                                                                 |     }
    0x00073cca mov r0, sb                                        |     r0 = sb;
    0x00073ccc blx 0x8f38                                        |     r0 = fcn_00008f38 ();
    0x00073cd0 add.w r3, r0, 0x30                                |     r3 = r0 + 0x30;
    0x00073cd4 cmp.w r3, 0x400000                                |     
                                                                 |     if (r3 > 0x400000) {
    0x00073cd8 bhi.w 0x73e10                                     |         goto label_5;
                                                                 |     }
    0x00073cdc ldr.w ip, [pc, 0x150]                             |     
    0x00073ce0 adds r0, 0x37                                     |     r0 += 0x37;
    0x00073ce2 bic r0, r0, 7                                     |     r0 = BIT_MASK (r0, 7);
    0x00073ce6 sub.w sp, sp, r0                                  |     
    0x00073cea add ip, pc                                        |     ip = 0xe7b1e;
    0x00073cec add.w sl, sp, 0x10                                |     sl += var_10h;
    0x00073cf0 ldm.w ip!, {r0, r1, r2, r3}                       |     r0 = *(ip!);
                                                                 |     r1 = *((ip! + 4));
                                                                 |     r2 = *((ip! + 8));
                                                                 |     r3 = *((ip! + 12));
    0x00073cf4 mov r4, sl                                        |     r4 = sl;
    0x00073cf6 stm r4!, {r0, r1, r2, r3}                         |     *(r4!) = r0;
                                                                 |     *((r4! + 4)) = r1;
                                                                 |     *((r4! + 8)) = r2;
                                                                 |     *((r4! + 12)) = r3;
    0x00073cf8 ldm.w ip!, {r0, r1, r2, r3}                       |     r0 = *(ip!);
                                                                 |     r1 = *((ip! + 4));
                                                                 |     r2 = *((ip! + 8));
                                                                 |     r3 = *((ip! + 12));
    0x00073cfc stm r4!, {r0, r1, r2, r3}                         |     *(r4!) = r0;
                                                                 |     *((r4! + 4)) = r1;
                                                                 |     *((r4! + 8)) = r2;
                                                                 |     *((r4! + 12)) = r3;
    0x00073cfe ldm.w ip, {r0, r1, r2, r3}                        |     r0 = *(ip);
                                                                 |     r1 = *((ip + 4));
                                                                 |     r2 = *((ip + 8));
                                                                 |     r3 = *((ip + 12));
    0x00073d02 stm.w r4, {r0, r1, r2, r3}                        |     *(r4) = r0;
                                                                 |     *((r4 + 4)) = r1;
                                                                 |     *((r4 + 8)) = r2;
                                                                 |     *((r4 + 12)) = r3;
    0x00073d06 mov r1, sb                                        |     r1 = sb;
    0x00073d08 add.w r0, sl, 0x2f                                |     r0 = sl + 0x2f;
    0x00073d0c blx 0x9050                                        |     fcn_00009050 ();
    0x00073d10 mov r3, r6                                        |     r3 = r6;
                                                                 |     if (r6 != 0) {
    0x00073d12 cbz r6, 0x73d16                                   |         
    0x00073d14 mov r3, r7                                        |         r3 = r7;
                                                                 |     }
    0x00073d16 mov r2, r8                                        |     r2 = r8;
    0x00073d18 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x00073d1c beq 0x73d20                                       |         
    0x00073d1e adds r2, r7, 4                                    |         r2 += var_4h;
                                                                 |     }
    0x00073d20 str r2, [sp]                                      |     *(sp) = r2;
    0x00073d22 mov r1, r5                                        |     r1 = r5;
    0x00073d24 mov r0, sl                                        |     r0 = sl;
    0x00073d26 movs r2, 1                                        |     r2 = 1;
    0x00073d28 bl 0x6c85c                                        |     fcn_0006c85c (r0, r1, r2, r3);
    0x00073d2a ldc2 p6, c4, [r8, 0x10]                           |     __asm ("ldc2 p6, c4, [r8, 0x10]");
                                                                 | label_1:
    0x00073d2e cmp r4, 0                                         |     
                                                                 |     if (r4 < 0) {
    0x00073d30 blt 0x73e0c                                       |         goto label_6;
                                                                 |     }
    0x00073d32 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x00073d36 beq 0x73d58                                       |         
    0x00073d38 mov.w r1, 0x100                                   |         r1 = 0x100;
    0x00073d3c ldr r0, [r7, 4]                                   |         r0 = var_4h;
    0x00073d3e movt r1, 8                                        |         r1 = (r1 & 0xFFFF) | 0x80000;
    0x00073d42 bl 0x6a3dc                                        |         r0 = fcn_0006a3dc (r0, r1, r2);
    0x00073d46 mov r4, r0                                        |         r4 = r0;
    0x00073d48 ldr r0, [r7, 4]                                   |         r0 = var_4h;
    0x00073d4a bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
    0x00073d4e cmp r4, 0                                         |         
    0x00073d50 it ge                                             |         
                                                                 |         if (r4 < 0) {
    0x00073d52 strge r4, [r8]                                    |             *(r8) = r4;
                                                                 |         }
                                                                 |         if (r4 < 0) {
    0x00073d56 blt 0x73e0c                                       |             goto label_6;
                                                                 |         }
                                                                 |     }
    0x00073d58 ldr r0, [r7]                                      |     r0 = *(r7);
    0x00073d5a mov r4, r6                                        |     r4 = r6;
                                                                 |     if (r6 == 0) {
    0x00073d5c cbz r6, 0x73d64                                   |         goto label_0;
                                                                 |     }
    0x00073d5e str r0, [r6]                                      |     *(r6) = r0;
    0x00073d60 movs r0, 0                                        |     r0 = 0;
    0x00073d62 mov r4, r0                                        |     r4 = r0;
                                                                 |     do {
                                                                 | label_0:
    0x00073d64 blx 0x8dac                                        |         fcn_00008dac ();
    0x00073d68 ldr r2, [pc, 0xc8]                                |         
    0x00073d6a ldr r3, [pc, 0xc0]                                |         r3 = *(0x73e2e);
    0x00073d6c add r2, pc                                        |         r2 = 0xe7ba4;
    0x00073d6e ldr r3, [r2, r3]                                  |         r3 = *(0xe7ba4);
    0x00073d70 ldr r2, [r3]                                      |         r2 = *(0xe7ba4);
    0x00073d72 ldr r3, [r7, 0x14]                                |         r3 = var_14h;
    0x00073d74 eors r2, r3                                       |         r2 ^= r3;
    0x00073d76 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00073d7a bne 0x73e24                                       |             goto label_7;
                                                                 |         }
    0x00073d7c mov r0, r4                                        |         r0 = r4;
    0x00073d7e adds r7, 0x1c                                     |         r7 += 0x1c;
    0x00073d80 mov sp, r7                                        |         
    0x00073d82 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_4:
    0x00073d86 bl 0x70bf8                                        |         r0 = fcn_00070bf8 ();
    0x00073d8a cmp r0, 6                                         |         
    0x00073d8c itt le                                            |         
                                                                 |         if (r0 > 6) {
    0x00073d8e movle r0, r4                                      |             r0 = r4;
                                                                 |         }
                                                                 |         if (r0 > 6) {
    0x00073d90 mvnle r4, 0x15                                    |             r4 = ~0x15;
                                                                 |         }
    0x00073d94 ble 0x73d64                                       |         
                                                                 |     } while (r0 <= 6);
    0x00073d96 ldr r2, [pc, 0xa0]                                |     
    0x00073d98 movs r1, 0x16                                     |     r1 = 0x16;
    0x00073d9a ldr r5, [pc, 0xa0]                                |     
    0x00073d9c movs r3, 0x3f                                     |     r3 = 0x3f;
    0x00073d9e ldr r4, [pc, 0xa0]                                |     
    0x00073da0 movt r1, 0x4000                                   |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x00073da4 add r2, pc                                        |     r2 = 0xe7be2;
    0x00073da6 movs r0, 7                                        |     r0 = 7;
    0x00073da8 add r5, pc                                        |     r5 = 0xe7bea;
    0x00073daa adds r2, 7                                        |     r2 += 7;
    0x00073dac add r4, pc                                        |     r4 = 0xe7bf2;
    0x00073dae str.w sb, [sp, 8]                                 |     __asm ("str.w sb, [var_8h_3]");
    0x00073db2 strd r4, r5, [sp]                                 |     __asm ("strd r4, r5, [sp]");
    0x00073db6 bl 0x71448                                        |     r0 = fcn_00071448 ();
    0x00073dba subs r4, r0, 0                                    |     r4 = r0 - 0;
    0x00073dbc ldr r0, [r7]                                      |     r0 = *(r7);
    0x00073dbe it ge                                             |     
                                                                 |     if (r4 < r0) {
    0x00073dc0 mvnge r4, 0x55                                    |         r4 = ~0x55;
                                                                 |     }
    0x00073dc4 b 0x73d64                                         |     goto label_0;
                                                                 | label_3:
    0x00073dc6 cmp r6, 0                                         |     
    0x00073dc8 ldr r0, [pc, 0x78]                                |     
    0x00073dca ldr r3, [pc, 0x7c]                                |     
    0x00073dcc mov fp, r7                                        |     
    0x00073dce it eq                                             |     
                                                                 |     if (r6 != 0) {
    0x00073dd0 moveq fp, 0                                       |         
                                                                 |     }
    0x00073dd4 cmp.w r8, 0                                       |     
    0x00073dd8 add.w sl, r7, 4                                   |     sl += var_4h;
    0x00073ddc add.w sb, r7, 8                                   |     sb += var_8h;
    0x00073de0 it eq                                             |     
                                                                 |     if (r8 != 0) {
    0x00073de2 moveq sl, 0                                       |         sl = 0;
                                                                 |     }
    0x00073de6 add r0, pc                                        |     r0 = 0xe7c2e;
    0x00073de8 add r3, pc                                        |     r3 = 0xe7c36;
    0x00073dea str r1, [r7, 0x10]                                |     var_10h_2 = r1;
    0x00073dec strd r0, r3, [r7, 8]                              |     __asm ("strd r0, r3, [var_8h]");
                                                                 | label_2:
    0x00073df0 mov r3, fp                                        |     r3 = fp;
    0x00073df2 movs r2, 1                                        |     r2 = 1;
    0x00073df4 mov r1, r5                                        |     r1 = r5;
    0x00073df6 str.w sl, [sp]                                    |     __asm ("str.w sl, [sp]");
    0x00073dfa bl 0x6c85c                                        |     r0 = fcn_0006c85c (r0, r1, r2, r3);
    0x00073dfe adds r3, r0, 2                                    |     r3 = r0 + 2;
    0x00073e00 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r3 != r0) {
    0x00073e02 bne 0x73d2e                                       |         goto label_1;
                                                                 |     }
    0x00073e04 ldr r0, [sb, 4]!                                  |     r0 = var_8h_4;
    0x00073e08 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00073e0a bne 0x73df0                                       |         goto label_2;
                                                                 |     }
                                                                 | label_6:
    0x00073e0c ldr r0, [r7]                                      |     r0 = *(r7);
    0x00073e0e b 0x73d64                                         |     goto label_0;
                                                                 | label_5:
    0x00073e10 ldr r1, [pc, 0x38]                                |     
    0x00073e12 movs r2, 0x42                                     |     r2 = 0x42;
    0x00073e14 ldr r3, [pc, 0x38]                                |     
    0x00073e16 ldr r0, [pc, 0x3c]                                |     
    0x00073e18 add r1, pc                                        |     r1 = 0xe7c68;
    0x00073e1a add r3, pc                                        |     r3 = 0xe7c6e;
    0x00073e1c adds r1, 7                                        |     r1 += 7;
    0x00073e1e add r0, pc                                        |     r0 = 0xe7c78;
    0x00073e20 bl 0x71518                                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_7:
    0x00073e24 blx 0x927c                                        |     fprintf_chk ()
    0x00073e28 ldr r6, [pc, 0x80]                                |     r6 = *(0x73eac);
    0x00073e2a movs r5, r0                                       |     r5 = r0;
    0x00073e2c lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x00073e2e movs r0, r0                                       |     
    0x00073e30 adds r6, r4, 5                                    |     r6 = r4 + 5;
    0x00073e32 movs r3, r0                                       |     r3 = r0;
    0x00073e34 ldr r5, [pc, 0x160]                               |     r5 = *(0x73f98);
    0x00073e36 movs r5, r0                                       |     r5 = r0;
    0x00073e38 adds r4, r5, 1                                    |     r4 = r5 + 1;
    0x00073e3a movs r3, r0                                       |     r3 = r0;
    0x00073e3c adds r4, r0, 2                                    |     r4 = r0 + 2;
    0x00073e3e movs r3, r0                                       |     r3 = r0;
    0x00073e40 adds r0, r0, 4                                    |     r0 += 4;
    0x00073e42 movs r3, r0                                       |     r3 = r0;
    0x00073e44 adds r2, r3, 0                                    |     r2 = r3 + 0;
    0x00073e46 movs r3, r0                                       |     r3 = r0;
    0x00073e48 adds r0, r3, 2                                    |     r0 = r3 + 2;
    0x00073e4a movs r3, r0                                       |     r3 = r0;
    0x00073e4c subs r0, r7, r7                                   |     r0 = r7 - r7;
    0x00073e4e movs r3, r0                                       |     r3 = r0;
    0x00073e50 adds r2, r7, 1                                    |     r2 += var_1h;
    0x00073e52 movs r3, r0                                       |     r3 = r0;
    0x00073e54 adds r7, 0xc2                                     |     r7 += 0xc2;
    0x00073e56 movs r1, r0                                       |     r1 = r0;
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x73e58 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00073e58 ()                  | void fcn_00073e58 (int16_t arg1, int16_t arg2, int16_t arg3, uint32_t arg4) {
                                             |     int16_t var_4h;
                                             |     int16_t var_8h;
                                             |     int16_t var_ch;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
                                             |     r3 = arg4;
    0x00073e58 strdlt fp, ip, [r5], r0       |     __asm ("strdlt fp, ip, [r5], r0");
    0x00073e5c ldr r5, [pc, 0x8c]            |     
    0x00073e5e mov.w r6, -1                  |     r6 = -1;
    0x00073e62 ldr r4, [pc, 0x8c]            |     r4 = *(0x73ef2);
    0x00073e64 add r5, pc                    |     r5 = 0xe7d54;
    0x00073e66 ldr r4, [r5, r4]              |     
    0x00073e68 ldr r4, [r4]                  |     r4 = *(0xe7d54);
    0x00073e6a str r4, [sp, 0xc]             |     var_ch = r4;
    0x00073e6c mov.w r4, 0                   |     r4 = 0;
    0x00073e6e lsls r0, r0, 0x10             |     r0 <<= 0x10;
    0x00073e70 movs r4, 0                    |     r4 = 0;
    0x00073e72 strd r4, r6, [sp, 4]          |     __asm ("strd r4, r6, [sp, 4]");
    0x00073e76 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00073e78 beq 0x73ee0                   |         goto label_1;
                                             |     }
    0x00073e7a mov r4, r0                    |     r4 = r0;
    0x00073e7c mov ip, r1                    |     
    0x00073e7e mov r5, r2                    |     r5 = r2;
    0x00073e80 mov r6, r3                    |     r6 = r3;
                                             |     if (r2 != 0) {
    0x00073e82 cbz r2, 0x73e86               |         
    0x00073e84 add r2, sp, 4                 |         r2 += var_4h;
                                             |     }
    0x00073e86 add r7, sp, 8                 |     r7 += var_8h;
    0x00073e88 mov r0, r4                    |     r0 = r4;
    0x00073e8a mov r1, ip                    |     r1 = ip;
    0x00073e8c mov r3, r7                    |     r3 = r7;
    0x00073e8e bl 0x73c94                    |     fcn_00073c94 (r0, r1, r2, r3);
    0x00073e90 vcge.f32 d1, d1, d4           |     __asm ("vcge.f32 d1, d1, d4");
                                             |     if (r2 < 0) {
    0x00073e94 blt 0x73eb0                   |         goto label_0;
                                             |     }
    0x00073e96 ldr r1, [pc, 0x5c]            |     
    0x00073e98 mov r0, r7                    |     r0 = r7;
    0x00073e9a add r1, pc                    |     r1 = 0xe7d94;
    0x00073e9c bl 0x6a5e4                    |     r0 = fcn_0006a5e4 (r0, r1, r2);
                                             |     if (r0 == 0) {
    0x00073ea0 cbz r0, 0x73ed6               |         goto label_2;
                                             |     }
                                             |     if (r5 != 0) {
    0x00073ea2 cbz r5, 0x73eac               |         
    0x00073ea4 ldr r3, [sp, 4]               |         r3 = var_4h;
    0x00073ea6 movs r2, 0                    |         r2 = 0;
    0x00073ea8 str r2, [sp, 4]               |         var_4h = r2;
    0x00073eaa str r3, [r5]                  |         *(r5) = r3;
                                             |     }
    0x00073eac movs r4, 0                    |     r4 = 0;
    0x00073eae str r0, [r6]                  |     *(r6) = r0;
                                             |     do {
                                             | label_0:
    0x00073eb0 ldr r0, [sp, 8]               |         r0 = var_8h;
    0x00073eb2 bl 0x69a04                    |         fcn_00069a04 (r0, r1, r2, r3);
    0x00073eb6 ldr r0, [sp, 4]               |         r0 = var_4h;
    0x00073eb8 blx 0x8dac                    |         fcn_00008dac ();
    0x00073eba invalid                       |         
    0x00073ebc ldr r2, [pc, 0x38]            |         
    0x00073ebe ldr r3, [pc, 0x30]            |         r3 = *(0x73ef2);
    0x00073ec0 add r2, pc                    |         r2 = 0xe7dbc;
    0x00073ec2 ldr r3, [r2, r3]              |         r3 = *(0xe7dbc);
    0x00073ec4 ldr r2, [r3]                  |         r2 = *(0xe7dbc);
    0x00073ec6 ldr r3, [sp, 0xc]             |         r3 = var_ch;
    0x00073ec8 eors r2, r3                   |         r2 ^= r3;
    0x00073eca mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00073ece bne 0x73ee8                   |             goto label_3;
                                             |         }
    0x00073ed0 mov r0, r4                    |         r0 = r4;
    0x00073ed2 add sp, 0x14                  |         
    0x00073ed4 pop {r4, r5, r6, r7, pc}      |         
                                             | label_2:
    0x00073ed6 blx 0x9628                    |         r0 = fcn_00009628 ();
    0x00073eda ldr r4, [r0]                  |         r4 = *(r0);
    0x00073edc rsbs r4, r4, 0                |         r4 -= ;
    0x00073ede b 0x73eb0                     |         
                                             |     } while (1);
                                             | label_1:
    0x00073ee0 bl 0x73c94                    |     r0 = fcn_00073c94 (r0, r1, r2, r3);
    0x00073ee4 mov r4, r0                    |     r4 = r0;
    0x00073ee6 b 0x73eb0                     |     goto label_0;
                                             | label_3:
    0x00073ee8 blx 0x927c                    |     fprintf_chk ()
    0x00073eec ldr r4, [pc, 0x180]           |     r4 = *(0x74070);
    0x00073eee movs r5, r0                   |     r5 = r0;
    0x00073ef0 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00073ef2 movs r0, r0                   |     
    0x00073ef4 str r2, [r6, 0x4c]            |     *((r6 + 0x4c)) = r2;
    0x00073ef6 movs r1, r0                   |     r1 = r0;
    0x00073ef8 ldr r4, [pc, 0x10]            |     r4 = *(0x73f0c);
    0x00073efa movs r5, r0                   |     r5 = r0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x73efc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00073efc ()                  | void fcn_00073efc (int16_t arg3) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h_2;
                                             |     int16_t var_10h;
                                             |     int16_t var_4h;
                                             |     int16_t var_8h;
                                             |     int16_t var_ch;
                                             |     r2 = arg3;
    0x00073efc invalid                       |     
    0x00073f00 push {r4, r5, lr}             |     
    0x00073f02 mov r5, r2                    |     r5 = r2;
    0x00073f04 ldr r2, [pc, 0x60]            |     
    0x00073f06 sub sp, 0x14                  |     
    0x00073f08 add ip, pc                    |     
    0x00073f0a movs r4, 0                    |     r4 = 0;
    0x00073f0c add r3, sp, 4                 |     r3 += var_4h;
    0x00073f0e ldr.w r2, [ip, r2]            |     r2 = *((ip + r2));
    0x00073f12 ldr r2, [r2]                  |     r2 = *(0x73f68);
    0x00073f14 str r2, [sp, 0xc]             |     var_ch = r2;
    0x00073f16 mov.w r2, 0                   |     r2 = 0;
    0x00073f1a add r2, sp, 8                 |     r2 += var_8h;
    0x00073f1c strd r4, r4, [sp, 4]          |     __asm ("strd r4, r4, [var_4h]");
    0x00073f20 bl 0x73e58                    |     r0 = fcn_00073e58 (r0, r1, r2, r3);
    0x00073f24 subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 >= r0) {
    0x00073f26 blt 0x73f34                   |         
    0x00073f28 ldrd r0, r1, [sp, 4]          |         __asm ("ldrd r0, r1, [var_4h]");
    0x00073f2c mov r2, r5                    |         r2 = r5;
    0x00073f2e bl 0x68644                    |         r0 = fcn_00068644 (r0);
    0x00073f32 mov r4, r0                    |         r4 = r0;
                                             |     }
    0x00073f34 ldr r0, [sp, 8]               |     r0 = var_8h;
    0x00073f36 blx 0x8dac                    |     fcn_00008dac ();
    0x00073f3a movs r3, 0                    |     r3 = 0;
    0x00073f3c ldr r0, [sp, 4]               |     r0 = var_4h;
    0x00073f3e str r3, [sp, 8]               |     var_8h = r3;
    0x00073f40 bl 0x69b30                    |     fcn_00069b30 (r0, r1, r2, r3);
    0x00073f44 ldr r2, [pc, 0x24]            |     
    0x00073f46 ldr r3, [pc, 0x20]            |     r3 = *(0x73f6a);
    0x00073f48 add r2, pc                    |     r2 = 0xe7eb8;
    0x00073f4a ldr r3, [r2, r3]              |     r3 = *(0xe7eb8);
    0x00073f4c ldr r2, [r3]                  |     r2 = *(0xe7eb8);
    0x00073f4e ldr r3, [sp, 0xc]             |     r3 = var_ch;
    0x00073f50 eors r2, r3                   |     r2 ^= r3;
    0x00073f52 mov.w r3, 0                   |     r3 = 0;
                                             |     if (r2 == r3) {
    0x00073f56 bne 0x73f5e                   |         
    0x00073f58 mov r0, r4                    |         r0 = r4;
    0x00073f5a add sp, 0x14                  |         
    0x00073f5c pop {r4, r5, pc}              |         
                                             |     }
    0x00073f5e blx 0x927c                    |     fprintf_chk ()
    0x00073f62 nop                           |     
    0x00073f64 ldr r3, [pc, 0x2f0]           |     r3 = *(0x74258);
    0x00073f66 movs r5, r0                   |     r5 = r0;
    0x00073f68 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00073f6a movs r0, r0                   |     
    0x00073f6c ldr r3, [pc, 0x1f0]           |     r3 = *(0x74160);
    0x00073f6e movs r5, r0                   |     r5 = r0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x73f70 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00073f70 ()                  | void fcn_00073f70 () {
                                             |     int16_t var_1ch;
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     int32_t var_4h_3;
                                             |     int16_t var_10h;
                                             |     int16_t var_4h_2;
    0x00073f70 invalid                       |     
    0x00073f74 push {r0, r1, r2, r3}         |     
    0x00073f76 movs r1, 0                    |     r1 = 0;
    0x00073f78 ldr r3, [pc, 0x44]            |     
    0x00073f7a add ip, pc                    |     
    0x00073f7c push {lr}                     |     
    0x00073f7e sub sp, 0xc                   |     
    0x00073f80 add r2, sp, 0x10              |     r2 += var_10h;
    0x00073f82 ldr.w r3, [ip, r3]            |     r3 = *((ip + r3));
    0x00073f86 ldr r0, [r2], 4               |     r0 = *(r2);
                                             |     r2 += 4;
    0x00073f88 lsrs r4, r0, 0xc              |     r4 = r0 >> 0xc;
    0x00073f8a ldr r3, [r3]                  |     r3 = *(0x73fc0);
    0x00073f8c str r3, [sp, 4]               |     var_4h = r3;
    0x00073f8e mov.w r3, 0                   |     r3 = 0;
    0x00073f92 str r2, [sp]                  |     *(sp) = r2;
    0x00073f94 bl 0x73efc                    |     fcn_00073efc (r0);
    0x00073f98 ldr r2, [pc, 0x28]            |     
    0x00073f9a ldr r3, [pc, 0x24]            |     r3 = *(0x73fc2);
    0x00073f9c add r2, pc                    |     r2 = 0xe7f64;
    0x00073f9e ldr r3, [r2, r3]              |     r3 = *(0xe7f64);
    0x00073fa0 ldr r2, [r3]                  |     r2 = *(0xe7f64);
    0x00073fa2 ldr r3, [sp, 4]               |     r3 = var_4h;
    0x00073fa4 eors r2, r3                   |     r2 ^= r3;
    0x00073fa6 mov.w r3, 0                   |     r3 = 0;
                                             |     if (r2 == r3) {
    0x00073faa bne 0x73fb6                   |         
    0x00073fac add sp, 0xc                   |         
    0x00073fae ldr lr, [sp], 4               |         
    0x00073fb2 add sp, 0x10                  |         
    0x00073fb4 bx lr                         |         return;
                                             |     }
    0x00073fb6 blx 0x927c                    |     fprintf_chk ()
    0x00073fba nop                           |     
    0x00073fbc ldr r3, [pc, 0x128]           |     r3 = *(0x740e8);
    0x00073fbe movs r5, r0                   |     r5 = r0;
    0x00073fc0 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00073fc2 movs r0, r0                   |     
    0x00073fc4 ldr r3, [pc, 0xa0]            |     r3 = *(0x74068);
    0x00073fc6 movs r5, r0                   |     r5 = r0;
                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x73fc8 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00073fc8 ()                          | void fcn_00073fc8 (int16_t arg1, int16_t arg2) {
                                                     |     int16_t var_ch;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x00073fc8 blmi 0xb06874                         |     __asm ("blmi aav.0x00054af2");
    0x00073fcc push.w {r4, r5, r6, r7, r8, lr}       |     
    0x00073fd0 sub sp, 0x10                          |     
    0x00073fd2 add r2, pc                            |     r2 += pc;
    0x00073fd4 ldr r7, [r1]                          |     r7 = *(r1);
    0x00073fd6 mov r4, r0                            |     r4 = r0;
    0x00073fd8 ldr r3, [r2, r3]                      |     r3 = *((r2 + r3));
    0x00073fda ldr r3, [r3]                          |     r3 = *(r3);
    0x00073fdc str r3, [sp, 0xc]                     |     var_ch = r3;
    0x00073fde mov.w r3, 0                           |     r3 = 0;
    0x00073fe2 bics r3, r7, 0x70000000               |     __asm ("bics r3, r7, aav.0x000000ff");
                                                     |     if (? != ?) {
    0x00073fe6 bne 0x74034                           |         goto label_0;
                                                     |     }
    0x00073fe8 ldr r2, [pc, 0x8c]                    |     
    0x00073fea mov r6, r1                            |     r6 = r1;
    0x00073fec ldr r3, [pc, 0x8c]                    |     
    0x00073fee mov r8, sp                            |     r8 = sp;
    0x00073ff0 mov r5, r8                            |     r5 = r8;
    0x00073ff2 add r2, pc                            |     r2 = 0xe806e;
    0x00073ff4 ldm r2, {r0, r1, r2}                  |     r0 = *(r2);
                                                     |     r1 = *((r2 + 4));
                                                     |     r2 = *((r2 + 8));
    0x00073ff6 add r3, pc                            |     r3 = 0xe8076;
    0x00073ff8 stm.w r8, {r0, r1, r2}                |     *(r8) = r0;
                                                     |     *((r8 + 4)) = r1;
                                                     |     *((r8 + 8)) = r2;
    0x00073ffc b 0x74004                             |     
                                                     |     while (r0 == 0) {
    0x00073ffe ldr r3, [r5, 4]!                      |         r3 = *((r5 += 4));
                                                     |         if (r3 == 0) {
    0x00074002 cbz r3, 0x74038                       |             goto label_3;
                                                     |         }
    0x00074004 mov r1, r3                            |         r1 = r3;
    0x00074006 mov r0, r4                            |         r0 = r4;
    0x00074008 bl 0x803c0                            |         r0 = fcn_000803c0 (r0, r1);
    0x0007400c cmp r0, 0                             |         
    0x0007400e beq 0x73ffe                           |         
                                                     |     }
    0x00074010 and r7, r7, 0x70000000                |     r7 &= 0x70000000;
    0x00074014 orr r7, r7, 2                         |     r7 |= 2;
    0x00074016 lsls r2, r0, 0x1c                     |     r2 = r0 << 0x1c;
    0x00074018 str r7, [r6]                          |     *(r6) = r7;
                                                     |     do {
                                                     | label_2:
    0x0007401a ldr r2, [pc, 0x64]                    |         
    0x0007401c ldr r3, [pc, 0x54]                    |         r3 = *(0x74074);
    0x0007401e add r2, pc                            |         r2 = 0xe80a4;
    0x00074020 ldr r3, [r2, r3]                      |         r3 = *(0xe80a4);
    0x00074022 ldr r2, [r3]                          |         r2 = *(0xe80a4);
    0x00074024 ldr r3, [sp, 0xc]                     |         r3 = var_ch;
    0x00074026 eors r2, r3                           |         r2 ^= r3;
    0x00074028 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0007402c bne 0x7406c                           |             goto label_4;
                                                     |         }
    0x0007402e add sp, 0x10                          |         
    0x00074030 pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_0:
    0x00074034 mov r0, r4                            |         r0 = r4;
    0x00074036 b 0x7401a                             |         
                                                     |     } while (1);
                                                     | label_3:
    0x00074038 ldr r2, [pc, 0x48]                    |     
    0x0007403a mov r5, r8                            |     r5 = r8;
    0x0007403c ldr r3, [pc, 0x48]                    |     
    0x0007403e add r2, pc                            |     r2 = 0xe80c6;
    0x00074040 adds r2, 0xc                          |     r2 += 0xc;
    0x00074042 add r3, pc                            |     r3 = 0xe80ce;
    0x00074044 ldm r2, {r0, r1, r2}                  |     r0 = *(r2);
                                                     |     r1 = *((r2 + 4));
                                                     |     r2 = *((r2 + 8));
    0x00074046 stm.w r8, {r0, r1, r2}                |     *(r8) = r0;
                                                     |     *((r8 + 4)) = r1;
                                                     |     *((r8 + 8)) = r2;
    0x0007404a b 0x74054                             |     goto label_5;
                                                     | label_1:
    0x0007404c ldr r3, [r5, 4]!                      |     r3 = *((r5 += 4));
    0x00074050 cmp r3, 0                             |     
                                                     |     if (r3 == 0) {
    0x00074052 beq 0x74034                           |         goto label_0;
                                                     |     }
                                                     | label_5:
    0x00074054 mov r1, r3                            |     r1 = r3;
    0x00074056 mov r0, r4                            |     r0 = r4;
    0x00074058 bl 0x803c0                            |     r0 = fcn_000803c0 (r0, r1);
    0x0007405c cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0007405e beq 0x7404c                           |         goto label_1;
                                                     |     }
    0x00074060 and r7, r7, 0x70000000                |     r7 &= 0x70000000;
    0x00074064 orr r7, r7, 8                         |     r7 |= 8;
    0x00074068 str r7, [r6]                          |     *(r6) = r7;
    0x0007406a b 0x7401a                             |     goto label_2;
                                                     | label_4:
    0x0007406c blx 0x927c                            |     fprintf_chk ()
    0x00074070 ldr r2, [pc, 0x3c8]                   |     r2 = *(0x7443c);
    0x00074072 movs r5, r0                           |     r5 = r0;
    0x00074074 lsls r0, r0, 0x13                     |     r0 <<= 0x13;
    0x00074076 movs r0, r0                           |     
    0x00074078 strh r2, [r6, r4]                     |     *((r6 + r4)) = r2;
    0x0007407a movs r5, r0                           |     r5 = r0;
    0x0007407c subs r6, r1, r3                       |     r6 = r1 - r3;
    0x0007407e movs r3, r0                           |     r3 = r0;
    0x00074080 ldr r2, [pc, 0x298]                   |     r2 = *(0x7431c);
    0x00074082 movs r5, r0                           |     r5 = r0;
    0x00074084 strh r6, [r4, r3]                     |     *((r4 + r3)) = r6;
    0x00074086 movs r5, r0                           |     r5 = r0;
    0x00074088 subs r6, r0, r2                       |     r6 = r0 - r2;
    0x0007408a movs r3, r0                           |     r3 = r0;
                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7408c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0007408c ()                      | void fcn_0007408c (int16_t arg1) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_1ch;
                                                 |     r0 = arg1;
    0x0007408c blmi 0x94691c                     |     __asm ("blmi aav.0x00054a30");
    0x00074090 push {r4, r5, r6, lr}             |     
    0x00074092 sub sp, 0x20                      |     
    0x00074094 add r2, pc                        |     r2 += pc;
    0x00074096 ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x00074098 ldr r3, [r3]                      |     r3 = *(r3);
    0x0007409a str r3, [sp, 0x1c]                |     var_1ch = r3;
    0x0007409c mov.w r3, 0                       |     r3 = 0;
                                                 |     if (r0 == 0) {
    0x000740a0 cbz r0, 0x7410c                   |         goto label_1;
                                                 |     }
    0x000740a2 ldr r4, [pc, 0x7c]                |     
    0x000740a4 mov r5, r0                        |     r5 = r0;
    0x000740a6 mov ip, sp                        |     
    0x000740a8 mov r6, sp                        |     r6 = sp;
    0x000740aa add r4, pc                        |     r4 = 0xe81d0;
    0x000740ac add.w lr, r4, 0x18                |     lr = r4 + 0x18;
    0x000740b0 ldm.w lr!, {r0, r1, r2, r3}       |     r0 = *(lr!);
                                                 |     r1 = *((lr! + 4));
                                                 |     r2 = *((lr! + 8));
                                                 |     r3 = *((lr! + 12));
    0x000740b4 stm.w ip!, {r0, r1, r2, r3}       |     *(ip!) = r0;
                                                 |     *((ip! + 4)) = r1;
                                                 |     *((ip! + 8)) = r2;
                                                 |     *((ip! + 12)) = r3;
    0x000740b8 ldm.w lr, {r0, r1, r2}            |     r0 = *(lr);
                                                 |     r1 = *((lr + 4));
                                                 |     r2 = *((lr + 8));
    0x000740bc stm.w ip, {r0, r1, r2}            |     *(ip) = r0;
                                                 |     *((ip + 4)) = r1;
                                                 |     *((ip + 8)) = r2;
    0x000740c0 mov r1, r5                        |     r1 = r5;
    0x000740c2 mov r0, r6                        |     r0 = r6;
    0x000740c4 bl 0x7afbc                        |     r0 = fcn_0007afbc (r0, r1);
                                                 |     if (r0 == 0) {
    0x000740c8 cbz r0, 0x740e4                   |         goto label_2;
                                                 |     }
    0x000740ca movs r0, 1                        |     r0 = 1;
                                                 |     do {
                                                 | label_0:
    0x000740cc ldr r2, [pc, 0x54]                |         
    0x000740ce ldr r3, [pc, 0x4c]                |         r3 = *(0x7411e);
    0x000740d0 add r2, pc                        |         r2 = 0xe81f8;
    0x000740d2 ldr r3, [r2, r3]                  |         r3 = *(0xe81f8);
    0x000740d4 ldr r2, [r3]                      |         r2 = *(0xe81f8);
    0x000740d6 ldr r3, [sp, 0x1c]                |         r3 = var_1ch;
    0x000740d8 eors r2, r3                       |         r2 ^= r3;
    0x000740da mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x000740de bne 0x74112                       |             goto label_3;
                                                 |         }
    0x000740e0 add sp, 0x20                      |         
    0x000740e2 pop {r4, r5, r6, pc}              |         
                                                 | label_2:
    0x000740e4 add.w ip, r4, 0x34                |         
    0x000740e8 mov r4, r6                        |         r4 = r6;
    0x000740ea ldm.w ip!, {r0, r1, r2, r3}       |         r0 = *(ip!);
                                                 |         r1 = *((ip! + 4));
                                                 |         r2 = *((ip! + 8));
                                                 |         r3 = *((ip! + 12));
    0x000740ee stm r4!, {r0, r1, r2, r3}         |         *(r4!) = r0;
                                                 |         *((r4! + 4)) = r1;
                                                 |         *((r4! + 8)) = r2;
                                                 |         *((r4! + 12)) = r3;
    0x000740f0 ldm.w ip, {r0, r1, r2}            |         r0 = *(ip);
                                                 |         r1 = *((ip + 4));
                                                 |         r2 = *((ip + 8));
    0x000740f4 stm.w r4, {r0, r1, r2}            |         *(r4) = r0;
                                                 |         *((r4 + 4)) = r1;
                                                 |         *((r4 + 8)) = r2;
    0x000740f8 mov r1, r5                        |         r1 = r5;
    0x000740fa mov r0, r6                        |         r0 = r6;
    0x000740fc bl 0x7afbc                        |         r0 = fcn_0007afbc (r0, r1);
    0x00074100 cmp r0, 0                         |         
    0x00074102 ite eq                            |         
                                                 |         if (r0 != 0) {
    0x00074104 mvneq r0, 0x15                    |             r0 = ~0x15;
                                                 |         }
                                                 |         if (r0 != 0) {
    0x00074108 movs r0, 0                        |             r0 = 0;
                                                 |         }
    0x0007410a b 0x740cc                         |         
                                                 |     } while (1);
                                                 | label_1:
    0x0007410c mvn r0, 0x15                      |     r0 = ~0x15;
    0x00074110 b 0x740cc                         |     goto label_0;
                                                 | label_3:
    0x00074112 blx 0x927c                        |     fprintf_chk ()
    0x00074116 nop                               |     
    0x00074118 ldr r2, [pc, 0xc0]                |     r2 = *(0x741dc);
    0x0007411a movs r5, r0                       |     r5 = r0;
    0x0007411c lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x0007411e movs r0, r0                       |     
    0x00074120 strh r2, [r7, r1]                 |     *((r7 + r1)) = r2;
    0x00074122 movs r5, r0                       |     r5 = r0;
    0x00074124 ldr r1, [pc, 0x3d0]               |     r1 = *(0x744f8);
    0x00074126 movs r5, r0                       |     r5 = r0;
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x74128 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00074128 ()                                      | void fcn_00074128 (int16_t arg_264h, int16_t arg_268h, int16_t arg1, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch_2;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_68h;
                                                                 |     r0 = arg1;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00074128 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x0007412c mov r6, r0                                        |     r6 = r0;
    0x0007412e vpush {d8, d9}                                    |     __asm ("vpush {d8, d9}");
    0x00074132 sub sp, 0x34                                      |     
    0x00074134 ldr r1, [sp, 0x68]                                |     r1 = var_68h;
    0x00074136 ldr r0, [pc, 0x258]                               |     
    0x00074138 str r1, [sp, 0x1c]                                |     var_1ch_2 = r1;
    0x0007413a ldr r1, [pc, 0x258]                               |     r1 = *(0x74396);
    0x0007413c add r0, pc                                        |     r0 = 0xe84d2;
    0x0007413e ldr r1, [r0, r1]                                  |     
    0x00074140 ldr r1, [r1]                                      |     r1 = *(0xe84d2);
    0x00074142 str r1, [sp, 0x2c]                                |     var_2ch = r1;
    0x00074144 mov.w r1, 0                                       |     r1 = 0;
    0x00074148 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x0007414a beq.w 0x7434e                                     |         goto label_6;
                                                                 |     }
    0x0007414e sub.w r1, r2, 0x3e8                               |     r1 = r2 - 0x3e8;
    0x00074152 orrs r1, r3                                       |     r1 |= r3;
                                                                 |     if (r1 == r3) {
    0x00074154 beq.w 0x7433e                                     |         goto label_7;
                                                                 |     }
    0x00074158 sub.w r2, r2, 0x400                               |     r2 -= 0x400;
    0x0007415c orrs r2, r3                                       |     r2 |= r3;
                                                                 |     if (r2 != r3) {
    0x0007415e beq 0x74174                                       |         
    0x00074160 ldr r1, [pc, 0x234]                               |         
    0x00074162 movs r2, 0xb5                                     |         r2 = 0xb5;
    0x00074164 ldr r3, [pc, 0x234]                               |         
    0x00074166 ldr r0, [pc, 0x238]                               |         
    0x00074168 add r1, pc                                        |         r1 = 0xe8504;
    0x0007416a add r3, pc                                        |         r3 = 0xe850a;
    0x0007416c adds r1, 7                                        |         r1 += 7;
    0x0007416e add r0, pc                                        |         r0 = 0xe8514;
    0x00074170 bl 0x71518                                        |         fcn_00071518 (r0, r1, r2, r3);
                                                                 |     }
    0x00074174 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch_2;
    0x00074176 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00074178 beq.w 0x74362                                     |         goto label_8;
                                                                 |     }
    0x0007417c ldr r3, [pc, 0x224]                               |     
    0x0007417e add r3, pc                                        |     r3 = 0xe8526;
    0x00074180 str r3, [sp, 0x18]                                |     var_18h = r3;
                                                                 | label_4:
    0x00074182 ldr r3, [pc, 0x224]                               |     
    0x00074184 movs r4, 0                                        |     r4 = 0;
    0x00074186 vldr d9, [pc, 0x200]                              |     __asm ("vldr d9, aav.0x000000ff");
    0x0007418a mov r5, r4                                        |     r5 = r4;
    0x0007418c mov fp, r4                                        |     
    0x0007418e add r3, pc                                        |     r3 = 0xe853c;
    0x00074190 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x00074192 blx 0x9628                                        |     fcn_00009628 ();
    0x00074196 ldr r3, [pc, 0x214]                               |     
    0x00074198 str r0, [sp, 8]                                   |     var_8h = r0;
    0x0007419a add r3, pc                                        |     r3 = 0xe854c;
    0x0007419c str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0007419e add r3, sp, 0x24                                  |     r3 += var_24h;
    0x000741a0 str r3, [sp, 0x10]                                |     var_10h = r3;
                                                                 | label_0:
    0x000741a2 ldr r1, [sp, 0xc]                                 |     r1 = var_ch;
    0x000741a4 mov r0, r6                                        |     r0 = r6;
    0x000741a6 blx 0x9428                                        |     r0 = fcn_00009428 ();
    0x000741aa add.w sl, r6, r0                                  |     sl = r6 + r0;
    0x000741ae ldr r6, [sp, 8]                                   |     r6 = var_8h;
    0x000741b0 movs r7, 0                                        |     r7 = 0;
    0x000741b2 ldr r1, [sp, 0x10]                                |     r1 = var_10h;
    0x000741b4 movs r2, 0xa                                      |     r2 = 0xa;
    0x000741b6 mov r0, sl                                        |     r0 = sl;
    0x000741b8 str r7, [r6]                                      |     *(r6) = r7;
    0x000741ba blx 0x8d90                                        |     free (r0);
    0x000741bc stcl p6, c4, [sl, 0x200]!                         |     __asm ("stcl p6, c4, aav.0x000000ff!");
    0x000741c0 ldr r0, [r6]                                      |     r0 = *(r6);
    0x000741c2 mov sb, r1                                        |     sb = r1;
    0x000741c4 cmp r0, r7                                        |     
                                                                 |     if (r0 > r7) {
    0x000741c6 bgt.w 0x7434a                                     |         goto label_9;
                                                                 |     }
    0x000741ca ldr r6, [sp, 0x24]                                |     r6 = var_24h;
    0x000741cc cmp r6, sl                                        |     
                                                                 |     if (r6 == sl) {
    0x000741ce beq.w 0x742d8                                     |         goto label_10;
                                                                 |     }
    0x000741d2 ldrb.w r3, [sl]                                   |     r3 = *(sl);
    0x000741d6 cmp r3, 0x2d                                      |     
                                                                 |     if (r3 == 0x2d) {
    0x000741d8 beq 0x742d2                                       |         goto label_11;
                                                                 |     }
    0x000741da ldrb r3, [r6]                                     |     r3 = *(r6);
    0x000741dc cmp r3, 0x2e                                      |     
                                                                 |     if (r3 == 0x2e) {
    0x000741de beq.w 0x742fa                                     |         goto label_12;
                                                                 |     }
    0x000741e2 vmov.i64 d8, 0                                    |     __asm ("vmov.i64 d8, 0");
                                                                 | label_3:
    0x000741e6 mov r0, r6                                        |     r0 = r6;
    0x000741e8 ldr r1, [sp, 0x14]                                |     r1 = var_14h;
    0x000741ea blx 0x9428                                        |     fcn_00009428 ();
    0x000741ee cmp r4, 8                                         |     
    0x000741f0 add r6, r0                                        |     r6 += r0;
    0x000741f2 str r6, [sp, 0x24]                                |     var_24h = r6;
                                                                 |     if (r4 == 8) {
    0x000741f4 beq 0x742d8                                       |         goto label_10;
                                                                 |     }
    0x000741f6 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x000741f8 add.w sl, r3, r4, lsl 4                           |     sl = r3 + (r4 << 4);
    0x000741fc b 0x74208                                         |     
                                                                 |     while (r0 == 0) {
    0x000741fe adds r4, 1                                        |         r4++;
    0x00074200 add.w sl, sl, 0x10                                |         sl += 0x10;
    0x00074202 lsrs r0, r2, 8                                    |         r0 = r2 >> 8;
    0x00074204 cmp r4, 8                                         |         
                                                                 |         if (r4 == 8) {
    0x00074206 beq 0x742d8                                       |             goto label_10;
                                                                 |         }
    0x00074208 ldr.w r7, [sl]                                    |         r7 = *(sl);
    0x0007420c mov r0, r6                                        |         r0 = r6;
    0x0007420e mov r1, r7                                        |         r1 = r7;
    0x00074210 bl 0x803c0                                        |         r0 = fcn_000803c0 (r0, r1);
    0x00074214 cmp r0, 0                                         |         
    0x00074216 beq 0x741fe                                       |         
                                                                 |     }
    0x00074218 vcmpe.f64 d8, 0                                   |     __asm ("vcmpe.f64 d8, 0");
    0x0007421c vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
    0x00074220 ite gt                                            |     
                                                                 |     if (r0 <= 0) {
    0x00074222 movgt r1, 1                                       |         r1 = 1;
                                                                 |     }
                                                                 |     if (r0 > 0) {
    0x00074224 movle r1, 0                                       |         r1 = 0;
                                                                 |     }
    0x00074226 adds.w r1, r1, r8                                 |     r1 += r8;
    0x0007422a ldrd r3, r2, [sl, 8]                              |     __asm ("ldrd r3, r2, [sl, 8]");
    0x0007422e adc r0, sb, 0                                     |     __asm ("adc r0, sb, 0");
    0x00074232 mov.w sl, 0                                       |     sl = 0;
    0x00074236 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00074238 bne 0x742b2                                       |         goto label_13;
                                                                 |     }
    0x0007423a mov r0, r2                                        |     r0 = r2;
    0x0007423c mov ip, r1                                        |     
    0x0007423e cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x00074240 bne 0x742b6                                       |         goto label_14;
                                                                 |     }
                                                                 | label_1:
    0x00074242 cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x00074246 bne 0x742d2                                       |         goto label_11;
                                                                 |     }
                                                                 | label_2:
    0x00074248 mov r0, r3                                        |     r0 = r3;
    0x0007424a mov r1, r2                                        |     r1 = r2;
    0x0007424c str r3, [sp, 4]                                   |     var_4h = r3;
    0x0007424e str r2, [sp]                                      |     *(sp) = r2;
    0x00074250 bl 0x80f6c                                        |     r0 = fcn_00080f6c (r0, r1, r2);
    0x00074254 vmov d16, r0, r1                                  |     __asm ("vmov d16, r0, r1");
    0x00074258 vmul.f64 d16, d16, d8                             |     __asm ("vmul.f64 d16, d16, d8");
    0x0007425a lsrs r0, r1, 0xe                                  |     r0 = r1 >> 0xe;
    0x0007425c vmov r0, r1, d16                                  |     __asm ("vmov r0, r1, d16");
    0x0007425e lsrs r0, r6, 0xc                                  |     r0 = r6 >> 0xc;
    0x00074260 bl 0x81018                                        |     fcn_00081018 (r0, r1);
    0x00074264 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x00074266 ldr r2, [sp]                                      |     r2 = *(sp);
    0x00074268 mul sb, r3, sb                                    |     sb = r3 * sb;
    0x0007426c mla sb, r8, r2, sb                                |     __asm ("mla sb, r8, r2, sb");
    0x00074270 umull r3, r8, r3, r8                              |     r3:r8 = r3 * r8;
    0x00074274 adds r3, r0, r3                                   |     r3 = r0 + r3;
    0x00074276 add r8, sb                                        |     r8 += sb;
    0x00074278 adc.w r8, r8, r1                                  |     __asm ("adc.w r8, r8, r1");
    0x0007427c adds r2, r5, r3                                   |     r2 = r5 + r3;
    0x0007427e adcs.w r2, fp, r8                                 |     __asm ("adcs.w r2, fp, r8");
    0x00074282 it hs                                             |     
                                                                 |     if (r2 < r5) {
    0x00074284 movhs sl, 1                                       |         sl = 1;
                                                                 |     }
    0x00074288 cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x0007428c bne 0x742d2                                       |         goto label_11;
                                                                 |     }
    0x0007428e adds r3, r5, r3                                   |     r3 = r5 + r3;
    0x00074290 mov r0, r7                                        |     r0 = r7;
    0x00074292 mov r5, r3                                        |     r5 = r3;
    0x00074294 adc.w fp, fp, r8                                  |     __asm ("adc.w fp, fp, r8");
    0x00074298 blx 0x8f38                                        |     fcn_00008f38 ();
    0x0007429c ldrb r3, [r6, r0]                                 |     r3 = *((r6 + r0));
    0x0007429e adds r4, 1                                        |     r4++;
    0x000742a0 add r6, r0                                        |     r6 += r0;
    0x000742a2 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000742a4 bne.w 0x741a2                                     |         goto label_0;
                                                                 |     }
    0x000742a8 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch_2;
    0x000742aa mov r0, sl                                        |     r0 = sl;
    0x000742ac strd r5, fp, [r3]                                 |     __asm ("strd r5, fp, [r3]");
    0x000742b0 b 0x742dc                                         |     goto label_5;
                                                                 |     if (r2 != 0) {
                                                                 | label_13:
    0x000742b2 cbnz r2, 0x742c8                                  |         goto label_15;
                                                                 |     }
    0x000742b4 mov ip, r3                                        |     
                                                                 | label_14:
    0x000742b6 umull r0, ip, ip, r0                              |     r0:ip = ip * r0;
    0x000742ba umull lr, r1, r1, r3                              |     lr:r1 = r1 * r3;
    0x000742be adds r1, r0, r1                                   |     r1 = r0 + r1;
    0x000742c0 adc r1, ip, 0                                     |     __asm ("adc r1, ip, 0");
    0x000742c4 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x000742c6 beq 0x74242                                       |         goto label_1;
                                                                 |     }
                                                                 | label_15:
    0x000742c8 mov.w sl, 1                                       |     sl = 1;
    0x000742cc cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x000742d0 beq 0x74248                                       |         goto label_2;
                                                                 |     }
                                                                 | label_11:
    0x000742d2 mvn r0, 0x21                                      |     r0 = ~0x21;
    0x000742d6 b 0x742dc                                         |     goto label_5;
                                                                 | label_10:
    0x000742d8 mvn r0, 0x15                                      |     r0 = ~0x15;
                                                                 | label_5:
    0x000742dc ldr r2, [pc, 0xd0]                                |     
    0x000742de ldr r3, [pc, 0xb4]                                |     r3 = *(0x74396);
    0x000742e0 add r2, pc                                        |     r2 = 0xe8694;
    0x000742e2 ldr r3, [r2, r3]                                  |     r3 = *(0xe8694);
    0x000742e4 ldr r2, [r3]                                      |     r2 = *(0xe8694);
    0x000742e6 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x000742e8 eors r2, r3                                       |     r2 ^= r3;
    0x000742ea mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x000742ee bne 0x7437e                                       |         goto label_16;
                                                                 |     }
    0x000742f0 add sp, 0x34                                      |     
    0x000742f2 vpop {d8, d9}                                     |     __asm ("vpop {d8, d9}");
    0x000742f6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_12:
    0x000742fa adds r0, r6, 1                                    |     r0 = r6 + 1;
    0x000742fc str r0, [sp, 0x24]                                |     var_24h = r0;
    0x000742fe ldrb r3, [r6, 1]                                  |     r3 = *((r6 + 1));
    0x00074300 subs r3, 0x30                                     |     r3 -= 0x30;
    0x00074302 cmp r3, 9                                         |     
                                                                 |     if (r3 >= 9) {
    0x00074304 bls 0x7430e                                       |         
    0x00074306 vmov.i64 d8, 0                                    |         __asm ("vmov.i64 d8, 0");
    0x0007430a mov r6, r0                                        |         r6 = r0;
    0x0007430c b 0x741e6                                         |         goto label_3;
                                                                 |     }
    0x0007430e movs r2, 0xa                                      |     r2 = 0xa;
    0x00074310 add r1, sp, 0x28                                  |     r1 += var_28h;
    0x00074312 blx 0x8d90                                        |     free (r0);
    0x00074316 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x00074318 ldr r3, [r3]                                      |     r3 = *(r3);
    0x0007431a cmp r3, 0                                         |     
                                                                 |     if (r3 > 0) {
    0x0007431c bgt 0x7437a                                       |         goto label_17;
                                                                 |     }
    0x0007431e bl 0x80f6c                                        |     fcn_00080f6c (r0, r1, r2);
    0x00074322 ldrd r3, r6, [sp, 0x24]                           |     __asm ("ldrd r3, r6, [var_24h]");
    0x00074326 vmov d8, r0, r1                                   |     __asm ("vmov d8, r0, r1");
    0x0007432a cmp r6, r3                                        |     
                                                                 |     if (r6 < r3) {
    0x0007432c bls 0x74376                                       |         goto label_18;
                                                                 |     }
    0x0007432e subs r3, r6, r3                                   |     r3 = r6 - r3;
                                                                 |     do {
    0x00074330 adds r7, 1                                        |         r7++;
    0x00074332 vmul.f64 d8, d8, d9                               |         __asm ("vmul.f64 d8, d8, d9");
    0x00074336 cmp r3, r7                                        |         
    0x00074338 bne 0x74330                                       |         
                                                                 |     } while (r3 != r7);
    0x0007433a str r6, [sp, 0x24]                                |     var_24h = r6;
    0x0007433c b 0x741e6                                         |     goto label_3;
                                                                 | label_7:
    0x0007433e ldr r3, [sp, 0x1c]                                |     r3 = var_1ch_2;
                                                                 |     if (r3 != 0) {
    0x00074340 cbz r3, 0x74362                                   |         
    0x00074342 ldr r3, [pc, 0x70]                                |         
    0x00074344 add r3, pc                                        |         r3 = 0xe86fe;
    0x00074346 str r3, [sp, 0x18]                                |         var_18h = r3;
    0x00074348 b 0x74182                                         |         goto label_4;
                                                                 | label_9:
    0x0007434a rsbs r0, r0, 0                                    |         r0 -= ;
    0x0007434c b 0x742dc                                         |         goto label_5;
                                                                 | label_6:
    0x0007434e ldr r1, [pc, 0x68]                                |         
    0x00074350 movs r2, 0xb4                                     |         r2 = 0xb4;
    0x00074352 ldr r3, [pc, 0x68]                                |         
    0x00074354 ldr r0, [pc, 0x68]                                |         
    0x00074356 add r1, pc                                        |         r1 = 0xe8714;
    0x00074358 add r3, pc                                        |         r3 = 0xe871a;
    0x0007435a adds r1, 7                                        |         r1 += 7;
    0x0007435c add r0, pc                                        |         r0 = 0xe8720;
    0x0007435e bl 0x71518                                        |         fcn_00071518 (r0, r1, r2, r3);
                                                                 |     }
                                                                 | label_8:
    0x00074362 ldr r1, [pc, 0x60]                                |     
    0x00074364 movs r2, 0xb6                                     |     r2 = 0xb6;
    0x00074366 ldr r3, [pc, 0x60]                                |     
    0x00074368 ldr r0, [pc, 0x60]                                |     
    0x0007436a add r1, pc                                        |     r1 = 0xe8734;
    0x0007436c add r3, pc                                        |     r3 = 0xe873a;
    0x0007436e adds r1, 7                                        |     r1 += 7;
    0x00074370 add r0, pc                                        |     r0 = 0xe8740;
    0x00074372 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_18:
    0x00074376 mov r6, r3                                        |     r6 = r3;
    0x00074378 b 0x741e6                                         |     goto label_3;
                                                                 | label_17:
    0x0007437a rsbs r0, r3, 0                                    |     r0 = r3 - ;
    0x0007437c b 0x742dc                                         |     goto label_5;
                                                                 | label_16:
    0x0007437e blx 0x927c                                        |     fprintf_chk ()
    0x00074382 nop                                               |     
    0x00074384 nop.w                                             |     
    0x00074388 ldr r1, [sp, 0x268]                               |     r1 = *(arg_268h);
    0x0007438a ldr r1, [sp, 0x264]                               |     r1 = *(arg_264h);
    0x0007438c ldr r1, [sp, 0x264]                               |     r1 = *(arg_264h);
    0x0007438e subs r7, 0xb9                                     |     r7 -= 0xb9;
    0x00074390 ldr r1, [pc, 0x220]                               |     r1 = *(0x745b4);
    0x00074392 movs r5, r0                                       |     r5 = r0;
    0x00074394 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x00074396 movs r0, r0                                       |     
    0x00074398 adds r4, r4, r5                                   |     r4 += r5;
    0x0007439a movs r3, r0                                       |     r3 = r0;
    0x0007439c adds r2, r5, r7                                   |     r2 = r5 + r7;
    0x0007439e movs r3, r0                                       |     r3 = r0;
    0x000743a0 adds r6, r7, r5                                   |     r6 = r7 + r5;
    0x000743a2 movs r3, r0                                       |     r3 = r0;
    0x000743a4 subs r4, 0x1e                                     |     r4 -= 0x1e;
    0x000743a6 movs r5, r0                                       |     r5 = r0;
    0x000743a8 movs r7, 0xae                                     |     r7 = 0xae;
    0x000743aa movs r1, r0                                       |     r1 = r0;
    0x000743ac movs r7, 0xa2                                     |     r7 = 0xa2;
    0x000743ae movs r1, r0                                       |     r1 = r0;
    0x000743b0 invalid                                           |     
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x743d0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000743d0 ()                  | void fcn_000743d0 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                             |     int16_t var_4h;
                                             |     int16_t var_8h_2;
                                             |     int16_t var_ch;
                                             |     int16_t var_0h;
                                             |     int16_t var_8h;
                                             |     int32_t var_8h_3;
                                             |     int16_t var_14h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x000743d0 invalid                       |     
    0x000743d4 push {r4, r5, lr}             |     
    0x000743d6 mov r4, r0                    |     r4 = r0;
    0x000743d8 mov r0, r1                    |     r0 = r1;
    0x000743da ldr r1, [pc, 0x68]            |     
    0x000743dc sub sp, 0x1c                  |     
    0x000743de add ip, pc                    |     
    0x000743e0 add r3, sp, 8                 |     r3 += var_8h;
    0x000743e2 mov r5, r2                    |     r5 = r2;
    0x000743e4 str r3, [sp]                  |     *(sp) = r3;
    0x000743e6 mov.w r2, 0x400               |     r2 = 0x400;
    0x000743ea ldr.w r1, [ip, r1]            |     r1 = *((ip + r1));
    0x000743ee movs r3, 0                    |     r3 = 0;
    0x000743f0 ldr r1, [r1]                  |     r1 = *(0x74446);
    0x000743f2 str r1, [sp, 0x14]            |     var_14h = r1;
    0x000743f4 mov.w r1, 0                   |     r1 = 0;
    0x000743f8 bl 0x74128                    |     fcn_00074128 (r0, r1, r2, r3, r4);
    0x000743fa cdp2 p8, 9, c2, c6, c0, 0     |     __asm ("cdp2 p8, 9, c2, c6, c0, 0");
                                             |     if (r3 >= 0) {
    0x000743fe blt 0x7441c                   |         
    0x00074400 ldrd r1, r3, [sp, 8]          |         __asm ("ldrd r1, r3, [var_8h]");
    0x00074404 movs r0, 0                    |         r0 = 0;
                                             |         if (r3 != 0) {
    0x00074406 cbnz r3, 0x74434              |             goto label_0;
                                             |         }
    0x00074408 cmp r4, 0xa                   |         
    0x0007440a ite eq                        |         
                                             |         if (r4 != 0xa) {
    0x0007440c moveq r2, 0x500               |             r2 = 0x500;
                                             |         }
                                             |         if (r4 != 0xa) {
    0x00074410 movs r2, 0x44                 |             r2 = 0x44;
                                             |         }
    0x00074412 cmp r1, r2                    |         
    0x00074414 sbcs r3, r3, 0                |         __asm ("sbcs r3, r3, 0");
                                             |         if (r1 <= r2) {
    0x00074418 blo 0x74434                   |             goto label_0;
                                             |         }
    0x0007441a str r1, [r5]                  |         *(r5) = r1;
                                             |     }
    0x0007441c ldr r2, [pc, 0x28]            |     
    0x0007441e ldr r3, [pc, 0x24]            |     r3 = *(0x74446);
    0x00074420 add r2, pc                    |     r2 = 0xe886c;
    0x00074422 ldr r3, [r2, r3]              |     r3 = *(0xe886c);
    0x00074424 ldr r2, [r3]                  |     r2 = *(0xe886c);
    0x00074426 ldr r3, [sp, 0x14]            |     r3 = var_14h;
    0x00074428 eors r2, r3                   |     r2 ^= r3;
    0x0007442a mov.w r3, 0                   |     r3 = 0;
                                             |     if (r2 == r3) {
    0x0007442e bne 0x7443a                   |         
    0x00074430 add sp, 0x1c                  |         
    0x00074432 pop {r4, r5, pc}              |         
                                             | label_0:
    0x00074434 mvn r2, 0x4e                  |         r2 = ~0x4e;
    0x00074438 movs r1, r0                   |         r1 = r0;
                                             |     }
    0x0007443a blx 0x927c                    |     fprintf_chk ()
    0x0007443e nop                           |     
    0x00074440 mov lr, ip                    |     lr = ip;
    0x00074442 movs r5, r0                   |     r5 = r0;
    0x00074444 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00074446 movs r0, r0                   |     
    0x00074448 mov ip, r4                    |     
    0x0007444a movs r5, r0                   |     r5 = r0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7444c */
                                             | #include <stdint.h>
                                             |  
                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                             |  
    ; (fcn) fcn.0007444c ()                  | void fcn_0007444c (int16_t arg1, int16_t arg2, uint32_t arg3) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     int16_t var_8h;
                                             |     int16_t var_ch;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x0007444c invalid                       |     
    0x00074450 movs r7, r0                   |     r7 = r0;
    0x00074452 mov r6, r2                    |     r6 = r2;
    0x00074454 sub sp, 0x10                  |     
    0x00074456 movs r3, 0                    |     r3 = 0;
    0x00074458 ldr r2, [pc, 0x100]           |     
    0x0007445a add r0, pc                    |     r0 += pc;
    0x0007445c str r1, [sp, 4]               |     var_4h = r1;
    0x0007445e ldr r2, [r0, r2]              |     r2 = *((r0 + r2));
    0x00074460 ldr r2, [r2]                  |     r2 = *(0x7455c);
    0x00074462 str r2, [sp, 0xc]             |     var_ch = r2;
    0x00074464 mov.w r2, 0                   |     r2 = 0;
    0x00074468 str r3, [sp, 8]               |     var_8h = r3;
    0x0007446a cmp r4, 0                     |     
                                             |     if (r4 == 0) {
    0x0007446c beq 0x74520                   |         goto label_3;
                                             |     }
    0x0007446e bic r3, r1, 0x70000000        |     r3 = BIT_MASK (r1, 0x70000000);
    0x00074472 mov r5, r1                    |     r5 = r1;
    0x00074474 cmp r3, 0x10                  |     
                                             |     if (r3 > 0x10) {
    0x00074476 bhi 0x74536                   |         goto label_4;
                                             |     }
    0x00074478 lsls r0, r1, 3                |     r0 = r1 << 3;
                                             |     if (r0 < r1) {
    0x0007447a bpl 0x7448a                   |         
    0x0007447c ldr r0, [pc, 0xe0]            |         
    0x0007447e ldrb r1, [r4]                 |         r1 = *(r4);
    0x00074480 add r0, pc                    |         r0 = 0xe89e4;
    0x00074482 blx 0x8bb0                    |         r0 = get_current_dir_name ();
    0x00074486 cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x00074488 bne 0x74512                   |             goto label_2;
                                             |         }
                                             |     }
    0x0007448a ldr r1, [pc, 0xd8]            |     
    0x0007448c mov r0, r4                    |     r0 = r4;
    0x0007448e add r1, pc                    |     r1 = 0xe89f8;
    0x00074490 blx 0x9428                    |     fcn_00009428 ();
    0x00074494 lsls r1, r5, 1                |     r1 = r5 << 1;
    0x00074496 mov r3, r0                    |     r3 = r0;
    0x00074498 add r0, r4                    |     r0 += r4;
    0x0007449a bmi 0x74508                   |     
                                             |     while ((r2 & 0xfd) != 0) {
    0x0007449c lsls r2, r5, 2                |         r2 = r5 << 2;
                                             |         if (r2 < r5) {
    0x0007449e bpl 0x744a6                   |             
    0x000744a0 ldrb r3, [r4, r3]             |             r3 = *((r4 + r3));
    0x000744a2 cmp r3, 0x30                  |             
                                             |             if (r3 == 0x30) {
    0x000744a4 beq 0x74518                   |                 goto label_5;
                                             |             }
                                             |         }
                                             | label_1:
    0x000744a6 add r1, sp, 4                 |         r1 += var_4h;
    0x000744a8 bl 0x73fc8                    |         fcn_00073fc8 (r0, r1);
    0x000744aa stc2 p6, c4, [lr, 0x14]       |         __asm ("stc2 p6, c4, [lr, 0x14]");
    0x000744ae blx 0x9628                    |         fcn_00009628 ();
    0x000744b2 ldr r2, [sp, 4]               |         r2 = var_4h;
    0x000744b4 movs r3, 0                    |         r3 = 0;
    0x000744b6 str r3, [r0]                  |         *(r0) = r3;
    0x000744b8 mov r4, r0                    |         r4 = r0;
    0x000744ba add r1, sp, 8                 |         r1 += var_8h;
    0x000744bc mov r0, r5                    |         r0 = r5;
    0x000744be bic r2, r2, 0x70000000        |         r2 = BIT_MASK (r2, 0x70000000);
    0x000744c2 blx 0x8f80                    |         fcn_00008f80 ();
    0x000744c6 ldr r3, [r4]                  |         r3 = *(r4);
    0x000744c8 mov r2, r0                    |         r2 = r0;
    0x000744ca cmp r3, 0                     |         
    0x000744cc it gt                         |         
                                             |         if (r3 > 0) {
    0x000744ce rsbgt r0, r3, 0               |             __asm ("rsbgt r0, r3, 0");
                                             |         }
                                             |         if (r3 <= 0) {
    0x000744d0 bgt 0x744f0                   |             
    0x000744d2 ldr r3, [sp, 8]               |             r3 = var_8h;
    0x000744d4 cmp r3, 0                     |             
    0x000744d6 it ne                         |             
                                             |             if (r3 != 0) {
    0x000744d8 cmpne r3, r5                  |                 __asm ("cmpne r3, r5");
                                             |             }
                                             |             if (r3 == 0) {
    0x000744da beq 0x74512                   |                 goto label_2;
                                             |             }
    0x000744dc ldrb r3, [r3]                 |             r3 = *(r3);
                                             |             if (r3 != 0) {
    0x000744de cbnz r3, 0x74512              |                 goto label_2;
                                             |             }
                                             |             if (r2 != 0) {
    0x000744e0 cbz r2, 0x744e8               |                 
    0x000744e2 ldrb r3, [r5]                 |                 r3 = *(r5);
    0x000744e4 cmp r3, 0x2d                  |                 
                                             |                 if (r3 == 0x2d) {
    0x000744e6 beq 0x7454c                   |                     goto label_6;
                                             |                 }
                                             |             }
    0x000744e8 mov r0, r6                    |             r0 = r6;
                                             |             if (r6 == 0) {
    0x000744ea cbz r6, 0x744f0               |                 goto label_0;
                                             |             }
    0x000744ec movs r0, 0                    |             r0 = 0;
    0x000744ee str r2, [r6]                  |             *(r6) = r2;
                                             |         }
                                             | label_0:
    0x000744f0 ldr r2, [pc, 0x74]            |         
    0x000744f2 ldr r3, [pc, 0x68]            |         r3 = *(0x7455e);
    0x000744f4 add r2, pc                    |         r2 = 0xe8a60;
    0x000744f6 ldr r3, [r2, r3]              |         r3 = *(0xe8a60);
    0x000744f8 ldr r2, [r3]                  |         r2 = *(0xe8a60);
    0x000744fa ldr r3, [sp, 0xc]             |         r3 = var_ch;
    0x000744fc eors r2, r3                   |         r2 ^= r3;
    0x000744fe mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00074502 bne 0x74552                   |             goto label_7;
                                             |         }
    0x00074504 add sp, 0x10                  |         
    0x00074506 pop {r4, r5, r6, pc}          |         
    0x00074508 ldrb r2, [r4, r3]             |         r2 = *((r4 + r3));
    0x0007450a subs r2, 0x2b                 |         r2 -= 0x2b;
    0x0007450c tst.w r2, 0xfd                |         
    0x00074510 bne 0x7449c                   |         
                                             |     }
                                             | label_2:
    0x00074512 mvn r0, 0x15                  |     r0 = ~0x15;
    0x00074516 b 0x744f0                     |     goto label_0;
                                             | label_5:
    0x00074518 ldrb r3, [r0, 1]              |     r3 = *((r0 + 1));
    0x0007451a cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x0007451c beq 0x744a6                   |         goto label_1;
                                             |     }
    0x0007451e b 0x74512                     |     goto label_2;
                                             | label_3:
    0x00074520 ldr r1, [pc, 0x48]            |     
    0x00074522 movw r2, 0x15b                |     r2 = 0x15b;
    0x00074526 ldr r3, [pc, 0x48]            |     
    0x00074528 ldr r0, [pc, 0x48]            |     
    0x0007452a add r1, pc                    |     r1 = 0xe8a9a;
    0x0007452c add r3, pc                    |     r3 = 0xe8aa2;
    0x0007452e adds r1, 7                    |     r1 += 7;
    0x00074530 add r0, pc                    |     r0 = 0xe8aa8;
    0x00074532 bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_4:
    0x00074536 ldr r1, [pc, 0x40]            |     
    0x00074538 mov.w r2, 0x15c               |     r2 = 0x15c;
    0x0007453c ldr r3, [pc, 0x3c]            |     
    0x0007453e ldr r0, [pc, 0x40]            |     
    0x00074540 add r1, pc                    |     r1 = 0xe8abe;
    0x00074542 add r3, pc                    |     r3 = 0xe8ac2;
    0x00074544 adds r1, 7                    |     r1 += 7;
    0x00074546 add r0, pc                    |     r0 = 0xe8acc;
    0x00074548 bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_6:
    0x0007454c mvn r0, 0x21                  |     r0 = ~0x21;
    0x00074550 b 0x744f0                     |     goto label_0;
                                             | label_7:
    0x00074552 blx 0x927c                    |     fprintf_chk ()
    0x00074556 nop                           |     
    0x00074558 mov r2, sp                    |     r2 = sp;
    0x0007455a movs r5, r0                   |     r5 = r0;
    0x0007455c lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x0007455e movs r0, r0                   |     
    0x00074560 movs r4, 0xbc                 |     r4 = 0xbc;
    0x00074562 movs r1, r0                   |     r1 = r0;
    0x00074564 movs r4, 0xae                 |     r4 = 0xae;
    0x00074566 movs r1, r0                   |     r1 = r0;
    0x00074568 cmp r8, sl                    |     
    0x0007456a movs r5, r0                   |     r5 = r0;
    0x0007456c asrs r2, r4, 0x16             |     r2 = r4 >> 0x16;
    0x0007456e movs r3, r0                   |     r3 = r0;
    0x00074570 asrs r0, r3, 0x18             |     r0 = r3 >> 0x18;
    0x00074572 movs r3, r0                   |     r3 = r0;
    0x00074574 bx sl                         |     return uint32_t (*sl)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x74584 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00074584 ()              | void fcn_00074584 (int16_t arg1, int16_t arg2) {
                                         |     int16_t var_4h_2;
                                         |     int16_t var_0h;
                                         |     int16_t var_4h;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00074584 blmi 0x846e04             |     __asm ("blmi aav.0x00054538");
    0x00074588 push {r4, r5, lr}         |     
    0x0007458a movs r5, 0                |     r5 = 0;
    0x0007458c add r2, pc                |     r2 += pc;
    0x0007458e sub sp, 0xc               |     
    0x00074590 ldr r3, [r2, r3]          |     r3 = *((r2 + r3));
    0x00074592 ldr r3, [r3]              |     r3 = *(r3);
    0x00074594 str r3, [sp, 4]           |     var_4h = r3;
    0x00074596 mov.w r3, 0               |     r3 = 0;
    0x00074598 lsls r0, r0, 0xc          |     r0 <<= 0xc;
    0x0007459a str r5, [sp]              |     *(sp) = r5;
                                         |     if (r0 != 0) {
    0x0007459c cbz r0, 0x745d4           |         
    0x0007459e mov r4, r1                |         r4 = r1;
                                         |         if (r1 == 0) {
    0x000745a0 cbz r1, 0x745e8           |             goto label_0;
                                         |         }
    0x000745a2 mov r2, sp                |         r2 = sp;
    0x000745a4 mov r1, r5                |         r1 = r5;
    0x000745a6 bl 0x7444c                |         r0 = fcn_0007444c (r0, r1, r2);
    0x000745aa cmp r0, 0                 |         
                                         |         if (r0 >= 0) {
    0x000745ac blt 0x745bc               |             
    0x000745ae ldr r3, [sp]              |             r3 = *(sp);
    0x000745b0 cmp r3, 0                 |             
    0x000745b2 itet gt                   |             
                                         |             if (r3 <= 0) {
    0x000745b4 movgt r0, r5              |                 r0 = r5;
                                         |             }
                                         |             if (r3 > 0) {
    0x000745b6 mvnle r0, 0x21            |                 r0 = ~0x21;
                                         |             }
                                         |             if (r3 <= 0) {
    0x000745ba str r3, [r4]              |                 *(r4) = r3;
                                         |                 goto label_1;
                                         |             }
                                         |         }
                                         | label_1:
    0x000745bc ldr r2, [pc, 0x48]        |         
    0x000745be ldr r3, [pc, 0x44]        |         r3 = *(0x74606);
    0x000745c0 add r2, pc                |         r2 = 0xe8bcc;
    0x000745c2 ldr r3, [r2, r3]          |         r3 = *(0xe8bcc);
    0x000745c4 ldr r2, [r3]              |         r2 = *(0xe8bcc);
    0x000745c6 ldr r3, [sp, 4]           |         r3 = var_4h;
    0x000745c8 eors r2, r3               |         r2 ^= r3;
    0x000745ca mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x000745ce bne 0x745fc               |             goto label_2;
                                         |         }
    0x000745d0 add sp, 0xc               |         
    0x000745d2 pop {r4, r5, pc}          |         
                                         |     }
    0x000745d4 ldr r1, [pc, 0x34]        |     
    0x000745d6 movs r2, 0x35             |     r2 = 0x35;
    0x000745d8 ldr r3, [pc, 0x34]        |     
    0x000745da ldr r0, [pc, 0x38]        |     
    0x000745dc add r1, pc                |     r1 = 0xe8bec;
    0x000745de add r3, pc                |     r3 = 0xe8bf2;
    0x000745e0 adds r1, 7                |     r1 += 7;
    0x000745e2 add r0, pc                |     r0 = 0xe8bfc;
    0x000745e4 bl 0x71518                |     fcn_00071518 (r0, r1, r2, r3);
                                         | label_0:
    0x000745e8 ldr r1, [pc, 0x2c]        |     
    0x000745ea movs r2, 0x36             |     r2 = 0x36;
    0x000745ec ldr r3, [pc, 0x2c]        |     
    0x000745ee ldr r0, [pc, 0x30]        |     
    0x000745f0 add r1, pc                |     r1 = 0xe8c0c;
    0x000745f2 add r3, pc                |     r3 = 0xe8c12;
    0x000745f4 adds r1, 7                |     r1 += 7;
    0x000745f6 add r0, pc                |     r0 = 0xe8c1c;
    0x000745f8 bl 0x71518                |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                         | label_2:
    0x000745fc blx 0x927c                |     r0 = fprintf_chk ()
    0x00074600 cmp r0, r7                |     
    0x00074602 movs r5, r0               |     r5 = r0;
    0x00074604 lsls r0, r0, 0x13         |     r0 <<= 0x13;
    0x00074606 movs r0, r0               |     
    0x00074608 cmp r4, r0                |     
    0x0007460a movs r5, r0               |     r5 = r0;
    0x0007460c asrs r0, r6, 0x13         |     r0 = r6 >> 0x13;
    0x0007460e movs r3, r0               |     r3 = r0;
    0x00074610 asrs r6, r3, 0x16         |     r6 = r3 >> 0x16;
    0x00074612 movs r3, r0               |     r3 = r0;
    0x00074614 mov sl, r4                |     sl = r4;
    0x00074616 movs r1, r0               |     r1 = r0;
    0x00074618 asrs r4, r3, 0x13         |     r4 = r3 >> 0x13;
    0x0007461a movs r3, r0               |     r3 = r0;
    0x0007461c asrs r2, r1, 0x16         |     r2 = r1 >> 0x16;
    0x0007461e movs r3, r0               |     r3 = r0;
    0x00074620 asrs r2, r6, 0x14         |     r2 = r6 >> 0x14;
    0x00074622 movs r3, r0               |     r3 = r0;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x74624 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00074624 ()              | void fcn_00074624 (int16_t arg1, int16_t arg2) {
                                         |     int16_t var_ch;
                                         |     int16_t var_0h;
                                         |     int16_t var_4h;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00074624 blmi 0x786e98             |     __asm ("blmi aav.0x00054498");
    0x00074628 push {r4, lr}             |     
    0x0007462a sub sp, 8                 |     
    0x0007462c add r2, pc                |     r2 += pc;
    0x0007462e ldr r3, [r2, r3]          |     r3 = *((r2 + r3));
    0x00074630 ldr r3, [r3]              |     r3 = *(r3);
    0x00074632 str r3, [sp, 4]           |     var_4h = r3;
    0x00074634 mov.w r3, 0               |     r3 = 0;
                                         |     if (r0 == 0) {
    0x00074638 cbz r0, 0x74674           |         goto label_0;
                                         |     }
    0x0007463a mov r4, r1                |     r4 = r1;
    0x0007463c movs r1, 8                |     r1 = 8;
    0x0007463e mov r2, sp                |     r2 = sp;
    0x00074640 movt r1, 0x4000           |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x00074644 bl 0x7444c                |     r0 = fcn_0007444c (r0, r1, r2);
    0x00074648 cmp r0, 0                 |     
                                         |     if (r0 < 0) {
    0x0007464a blt 0x7465c               |         goto label_1;
                                         |     }
    0x0007464c ldr r3, [sp]              |     r3 = *(sp);
    0x0007464e cmp.w r3, 0x1000          |     
                                         |     if (r3 >= 0x1000) {
    0x00074652 bhs 0x74688               |         goto label_2;
                                         |     }
    0x00074654 mov r0, r4                |     r0 = r4;
                                         |     if (r4 == 0) {
    0x00074656 cbz r4, 0x7465c           |         goto label_1;
                                         |     }
    0x00074658 movs r0, 0                |     r0 = 0;
    0x0007465a str r3, [r4]              |     *(r4) = r3;
                                         |     do {
                                         | label_1:
    0x0007465c ldr r2, [pc, 0x3c]        |         
    0x0007465e ldr r3, [pc, 0x38]        |         r3 = *(0x7469a);
    0x00074660 add r2, pc                |         r2 = 0xe8d00;
    0x00074662 ldr r3, [r2, r3]          |         r3 = *(0xe8d00);
    0x00074664 ldr r2, [r3]              |         r2 = *(0xe8d00);
    0x00074666 ldr r3, [sp, 4]           |         r3 = var_4h;
    0x00074668 eors r2, r3               |         r2 ^= r3;
    0x0007466a mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x0007466e bne 0x7468e               |             goto label_3;
                                         |         }
    0x00074670 add sp, 8                 |         
    0x00074672 pop {r4, pc}              |         
                                         | label_0:
    0x00074674 ldr r1, [pc, 0x28]        |         
    0x00074676 movs r2, 0x4c             |         r2 = 0x4c;
    0x00074678 ldr r3, [pc, 0x28]        |         
    0x0007467a ldr r0, [pc, 0x2c]        |         
    0x0007467c add r1, pc                |         r1 = 0xe8d20;
    0x0007467e add r3, pc                |         r3 = 0xe8d26;
    0x00074680 adds r1, 7                |         r1 += 7;
    0x00074682 add r0, pc                |         r0 = 0xe8d30;
    0x00074684 bl 0x71518                |         fcn_00071518 (r0, r1, r2, r3);
                                         | label_2:
    0x00074688 mvn r0, 0x21              |         r0 = ~0x21;
    0x0007468c b 0x7465c                 |         
                                         |     } while (1);
                                         | label_3:
    0x0007468e blx 0x927c                |     fprintf_chk ()
    0x00074692 nop                       |     
    0x00074694 add r8, r3                |     r8 += r3;
    0x00074696 movs r5, r0               |     r5 = r0;
    0x00074698 lsls r0, r0, 0x13         |     r0 <<= 0x13;
    0x0007469a movs r0, r0               |     
    0x0007469c add r4, ip                |     r4 += ip;
    0x0007469e movs r5, r0               |     r5 = r0;
    0x000746a0 asrs r0, r2, 0x11         |     r0 = r2 >> 0x11;
    0x000746a2 movs r3, r0               |     r3 = r0;
    0x000746a4 asrs r2, r6, 0x13         |     r2 = r6 >> 0x13;
    0x000746a6 movs r3, r0               |     r3 = r0;
    0x000746a8 mov r2, r0                |     r2 = r0;
    0x000746aa movs r1, r0               |     r1 = r0;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x746ac */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000746ac ()                  | void fcn_000746ac (int16_t arg1, uint32_t arg2) {
                                             |     int16_t var_4h_5;
                                             |     int16_t var_8h_4;
                                             |     int16_t var_ch;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x000746ac blmi 0xa86f50                 |     __asm ("blmi aav.0x00054410");
    0x000746b0 push {r4, r5, r6, r7, lr}     |     
    0x000746b2 movs r7, 0                    |     r7 = 0;
    0x000746b4 add r2, pc                    |     r2 += pc;
    0x000746b6 sub sp, 0x14                  |     
    0x000746b8 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x000746ba ldr r3, [r3]                  |     r3 = *(r3);
    0x000746bc str r3, [sp, 0xc]             |     var_ch = r3;
    0x000746be mov.w r3, 0                   |     r3 = 0;
    0x000746c2 strd r7, r7, [sp, 4]          |     __asm ("strd r7, r7, [var_4h_5]");
                                             |     if (r0 == 0) {
    0x000746c6 cbz r0, 0x7472a               |         goto label_1;
                                             |     }
    0x000746c8 mov r6, r1                    |     r6 = r1;
    0x000746ca ldr r1, [pc, 0x88]            |     
    0x000746cc mov r4, r0                    |     r4 = r0;
    0x000746ce add r1, pc                    |     r1 = 0xe8e28;
    0x000746d0 blx 0x9428                    |     fcn_00009428 ();
    0x000746d4 add r1, sp, 4                 |     r1 += var_4h_5;
    0x000746d6 add r0, r4                    |     r0 += r4;
    0x000746d8 bl 0x73fc8                    |     r0 = fcn_00073fc8 (r0, r1);
    0x000746dc mov r5, r0                    |     r5 = r0;
    0x000746de blx 0x9628                    |     fcn_00009628 ();
    0x000746e2 ldr r2, [sp, 4]               |     r2 = var_4h_5;
    0x000746e4 mov r4, r0                    |     r4 = r0;
    0x000746e6 str r7, [r0]                  |     *(r0) = r7;
    0x000746e8 add r1, sp, 8                 |     r1 += var_8h_4;
    0x000746ea mov r0, r5                    |     r0 = r5;
    0x000746ec blx 0x902c                    |     fcn_0000902c ();
    0x000746f0 ldr r3, [r4]                  |     r3 = *(r4);
    0x000746f2 mov r2, r0                    |     r2 = r0;
    0x000746f4 cmp r3, 0                     |     
    0x000746f6 it gt                         |     
                                             |     if (r3 > 0) {
    0x000746f8 rsbgt r0, r3, 0               |         __asm ("rsbgt r0, r3, 0");
                                             |     }
                                             |     if (r3 > 0) {
    0x000746fa bgt 0x7470e                   |         goto label_0;
                                             |     }
    0x000746fc ldr r3, [sp, 8]               |     r3 = var_8h_4;
    0x000746fe cmp r3, 0                     |     
    0x00074700 it ne                         |     
                                             |     if (r3 != 0) {
    0x00074702 cmpne r3, r5                  |         __asm ("cmpne r3, r5");
                                             |     }
                                             |     if (r3 == 0) {
    0x00074704 beq 0x74740                   |         goto label_2;
                                             |     }
    0x00074706 ldrb r0, [r3]                 |     r0 = *(r3);
                                             |     if (r0 != 0) {
    0x00074708 cbnz r0, 0x74740              |         goto label_2;
                                             |     }
                                             |     if (r6 == 0) {
    0x0007470a cbz r6, 0x74726               |         goto label_3;
                                             |     }
    0x0007470c str r2, [r6]                  |     *(r6) = r2;
                                             |     do {
                                             | label_0:
    0x0007470e ldr r2, [pc, 0x48]            |         
    0x00074710 ldr r3, [pc, 0x3c]            |         r3 = *(0x74750);
    0x00074712 add r2, pc                    |         r2 = 0xe8e70;
    0x00074714 ldr r3, [r2, r3]              |         r3 = *(0xe8e70);
    0x00074716 ldr r2, [r3]                  |         r2 = *(0xe8e70);
    0x00074718 ldr r3, [sp, 0xc]             |         r3 = var_ch;
    0x0007471a eors r2, r3                   |         r2 ^= r3;
    0x0007471c mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00074720 bne 0x74746                   |             goto label_4;
                                             |         }
    0x00074722 add sp, 0x14                  |         
    0x00074724 pop {r4, r5, r6, r7, pc}      |         
                                             | label_3:
    0x00074726 mov r0, r6                    |         r0 = r6;
    0x00074728 b 0x7470e                     |         
                                             |     } while (1);
                                             | label_1:
    0x0007472a ldr r1, [pc, 0x30]            |     
    0x0007472c movw r2, 0x18f                |     r2 = 0x18f;
    0x00074730 ldr r3, [pc, 0x2c]            |     
    0x00074732 ldr r0, [pc, 0x30]            |     
    0x00074734 add r1, pc                    |     r1 = 0xe8e96;
    0x00074736 add r3, pc                    |     r3 = 0xe8e9a;
    0x00074738 adds r1, 7                    |     r1 += 7;
    0x0007473a add r0, pc                    |     r0 = 0xe8ea4;
    0x0007473c bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_2:
    0x00074740 mvn r0, 0x15                  |     r0 = ~0x15;
    0x00074744 b 0x7470e                     |     goto label_0;
                                             | label_4:
    0x00074746 blx 0x927c                    |     fprintf_chk ()
    0x0007474a nop                           |     
    0x0007474c add r0, r2                    |     r0 += r2;
    0x0007474e movs r5, r0                   |     r5 = r0;
    0x00074750 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00074752 movs r0, r0                   |     
    0x00074754 movs r2, 0x6e                 |     r2 = 0x6e;
    0x00074756 movs r1, r0                   |     r1 = r0;
    0x00074758 bics r2, r6                   |     __asm ("bics r2, r6");
    0x0007475a movs r5, r0                   |     r5 = r0;
    0x0007475c asrs r0, r3, 0xe              |     r0 = r3 >> 0xe;
    0x0007475e movs r3, r0                   |     r3 = r0;
    0x00074760 asrs r6, r0, 0x12             |     r6 = r0 >> 0x12;
    0x00074762 movs r3, r0                   |     r3 = r0;
    0x00074764 cmp r2, sb                    |     
    0x00074766 movs r1, r0                   |     r1 = r0;
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x74768 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00074768 ()              | void fcn_00074768 (uint32_t arg1) {
                                         |     int16_t var_0h_2;
                                         |     int16_t var_4h;
                                         |     r0 = arg1;
    0x00074768 blmi 0x646fc8             |     __asm ("blmi aav.0x00054354");
    0x0007476c push {lr}                 |     
    0x0007476e sub sp, 0xc               |     
    0x00074770 add r2, pc                |     r2 += pc;
    0x00074772 ldr r3, [r2, r3]          |     r3 = *((r2 + r3));
    0x00074774 ldr r3, [r3]              |     r3 = *(r3);
    0x00074776 str r3, [sp, 4]           |     var_4h = r3;
    0x00074778 mov.w r3, 0               |     r3 = 0;
                                         |     if (r0 != 0) {
    0x0007477c cbz r0, 0x747ac           |         
    0x0007477e mov r1, sp                |         r1 = sp;
    0x00074780 bl 0x746ac                |         r0 = fcn_000746ac (r0, r1);
    0x00074784 cmp r0, 0                 |         
                                         |         if (r0 >= 0) {
    0x00074786 blt 0x74792               |             
    0x00074788 ldr r0, [sp]              |             r0 = *(sp);
    0x0007478a cmp r0, 0                 |             
    0x0007478c it le                     |             
                                         |             if (r0 <= 0) {
    0x0007478e mvnle r0, 0x15            |                 r0 = ~0x15;
                                         |                 goto label_0;
                                         |             }
                                         |         }
                                         | label_0:
    0x00074792 ldr r2, [pc, 0x38]        |         
    0x00074794 ldr r3, [pc, 0x30]        |         r3 = *(0x747c8);
    0x00074796 add r2, pc                |         r2 = 0xe8f68;
    0x00074798 ldr r3, [r2, r3]          |         r3 = *(0xe8f68);
    0x0007479a ldr r2, [r3]              |         r2 = *(0xe8f68);
    0x0007479c ldr r3, [sp, 4]           |         r3 = var_4h;
    0x0007479e eors r2, r3               |         r2 ^= r3;
    0x000747a0 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x000747a4 bne 0x747c0               |             goto label_1;
                                         |         }
    0x000747a6 add sp, 0xc               |         
    0x000747a8 ldr pc, [sp], 4           |         pc = *(sp);
                                         |         sp += 4;
                                         |     }
    0x000747ac ldr r1, [pc, 0x20]        |     
    0x000747ae movs r2, 0x61             |     r2 = 0x61;
    0x000747b0 ldr r3, [pc, 0x20]        |     
    0x000747b2 ldr r0, [pc, 0x24]        |     
    0x000747b4 add r1, pc                |     r1 = 0xe8f88;
    0x000747b6 add r3, pc                |     r3 = 0xe8f8e;
    0x000747b8 adds r1, 7                |     r1 += 7;
    0x000747ba add r0, pc                |     r0 = 0xe8f98;
    0x000747bc bl 0x71518                |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                         | label_1:
    0x000747c0 blx 0x927c                |     fprintf_chk ()
    0x000747c4 muls r4, r2, r4           |     r4 = r2 * r4;
    0x000747c6 movs r5, r0               |     r5 = r0;
    0x000747c8 lsls r0, r0, 0x13         |     r0 <<= 0x13;
    0x000747ca movs r0, r0               |     
    0x000747cc orrs r6, r5               |     r6 |= r5;
    0x000747ce movs r5, r0               |     r5 = r0;
    0x000747d0 asrs r0, r3, 0xc          |     r0 = r3 >> 0xc;
    0x000747d2 movs r3, r0               |     r3 = r0;
    0x000747d4 asrs r2, r5, 0xe          |     r2 = r5 >> 0xe;
    0x000747d6 movs r3, r0               |     r3 = r0;
    0x000747d8 add sl, sb                |     sl += sb;
    0x000747da movs r1, r0               |     r1 = r0;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x747dc */
                                             | #include <stdint.h>
                                             |  
                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                             |  
    ; (fcn) fcn.000747dc ()                  | void fcn_000747dc (int16_t arg1, int16_t arg2, int16_t arg3) {
                                             |     int16_t var_4h_2;
                                             |     int16_t var_8h;
                                             |     int16_t var_ch_2;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x000747dc invalid                       |     
    0x000747e0 ldr r0, [pc, 0x108]           |     
    0x000747e2 mov r6, r2                    |     r6 = r2;
    0x000747e4 sub sp, 0x10                  |     
    0x000747e6 movs r3, 0                    |     r3 = 0;
    0x000747e8 ldr r2, [pc, 0x104]           |     r2 = *(0x748f0);
    0x000747ea add r0, pc                    |     r0 = 0xe90da;
    0x000747ec str r1, [sp, 4]               |     var_4h_2 = r1;
    0x000747ee ldr r2, [r0, r2]              |     
    0x000747f0 ldr r2, [r2]                  |     r2 = *(0xe90da);
    0x000747f2 str r2, [sp, 0xc]             |     var_ch_2 = r2;
    0x000747f4 mov.w r2, 0                   |     r2 = 0;
    0x000747f8 str r3, [sp, 8]               |     var_8h = r3;
    0x000747fa cmp r4, 0                     |     
                                             |     if (r4 == 0) {
    0x000747fc beq 0x748b6                   |         goto label_3;
                                             |     }
    0x000747fe bic r3, r1, 0x70000000        |     r3 = BIT_MASK (r1, 0x70000000);
    0x00074802 mov r5, r1                    |     r5 = r1;
    0x00074804 cmp r3, 0x10                  |     
                                             |     if (r3 > 0x10) {
    0x00074806 bhi 0x748cc                   |         goto label_4;
                                             |     }
    0x00074808 lsls r0, r1, 3                |     r0 = r1 << 3;
                                             |     if (r0 < r1) {
    0x0007480a bpl 0x7481a                   |         
    0x0007480c ldr r0, [pc, 0xe4]            |         
    0x0007480e ldrb r1, [r4]                 |         r1 = *(r4);
    0x00074810 add r0, pc                    |         r0 = 0xe9108;
    0x00074812 blx 0x8bb0                    |         r0 = get_current_dir_name ();
    0x00074816 cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x00074818 bne 0x748a8                   |             goto label_2;
                                             |         }
                                             |     }
    0x0007481a ldr r1, [pc, 0xdc]            |     
    0x0007481c mov r0, r4                    |     r0 = r4;
    0x0007481e add r1, pc                    |     r1 = 0xe911c;
    0x00074820 blx 0x9428                    |     fcn_00009428 ();
    0x00074824 lsls r1, r5, 1                |     r1 = r5 << 1;
    0x00074826 mov r3, r0                    |     r3 = r0;
    0x00074828 add r0, r4                    |     r0 += r4;
    0x0007482a bmi 0x7489e                   |     
                                             |     while ((r2 & 0xfd) != 0) {
    0x0007482c lsls r2, r5, 2                |         r2 = r5 << 2;
                                             |         if (r2 < r5) {
    0x0007482e bpl 0x74836                   |             
    0x00074830 ldrb r3, [r4, r3]             |             r3 = *((r4 + r3));
    0x00074832 cmp r3, 0x30                  |             
                                             |             if (r3 == 0x30) {
    0x00074834 beq 0x748ae                   |                 goto label_5;
                                             |             }
                                             |         }
                                             | label_1:
    0x00074836 add r1, sp, 4                 |         r1 += var_4h_2;
    0x00074838 bl 0x73fc8                    |         r0 = fcn_00073fc8 (r0, r1);
    0x0007483c mov r5, r0                    |         r5 = r0;
    0x0007483e blx 0x9628                    |         fcn_00009628 ();
    0x00074842 ldr r2, [sp, 4]               |         r2 = var_4h_2;
    0x00074844 movs r3, 0                    |         r3 = 0;
    0x00074846 str r3, [r0]                  |         *(r0) = r3;
    0x00074848 mov r4, r0                    |         r4 = r0;
    0x0007484a add r1, sp, 8                 |         r1 += var_8h;
    0x0007484c mov r0, r5                    |         r0 = r5;
    0x0007484e bic r2, r2, 0x70000000        |         r2 = BIT_MASK (r2, 0x70000000);
    0x00074852 blx 0x8d90                    |         free (r0);
    0x00074856 ldr r3, [r4]                  |         r3 = *(r4);
    0x00074858 mov r2, r0                    |         r2 = r0;
    0x0007485a cmp r3, 0                     |         
    0x0007485c it gt                         |         
                                             |         if (r3 > 0) {
    0x0007485e rsbgt r0, r3, 0               |             __asm ("rsbgt r0, r3, 0");
                                             |         }
                                             |         if (r3 <= 0) {
    0x00074860 bgt 0x74886                   |             
    0x00074862 ldr r3, [sp, 8]               |             r3 = var_8h;
    0x00074864 cmp r3, 0                     |             
    0x00074866 it ne                         |             
                                             |             if (r3 != 0) {
    0x00074868 cmpne r3, r5                  |                 __asm ("cmpne r3, r5");
                                             |             }
                                             |             if (r3 == 0) {
    0x0007486a beq 0x748a8                   |                 goto label_2;
                                             |             }
    0x0007486c ldrb r3, [r3]                 |             r3 = *(r3);
                                             |             if (r3 != 0) {
    0x0007486e cbnz r3, 0x748a8              |                 goto label_2;
                                             |             }
    0x00074870 orrs.w r3, r2, r1             |             r3 = r2 | r1;
                                             |             if (r3 != r2) {
    0x00074874 beq 0x7487c                   |                 
    0x00074876 ldrb r3, [r5]                 |                 r3 = *(r5);
    0x00074878 cmp r3, 0x2d                  |                 
                                             |                 if (r3 == 0x2d) {
    0x0007487a beq 0x748e2                   |                     goto label_6;
                                             |                 }
                                             |             }
    0x0007487c mov r0, r6                    |             r0 = r6;
                                             |             if (r6 == 0) {
    0x0007487e cbz r6, 0x74886               |                 goto label_0;
                                             |             }
    0x00074880 movs r0, 0                    |             r0 = 0;
    0x00074882 strd r2, r1, [r6]             |             __asm ("strd r2, r1, [r6]");
                                             |         }
                                             | label_0:
    0x00074886 ldr r2, [pc, 0x74]            |         
    0x00074888 ldr r3, [pc, 0x64]            |         r3 = *(0x748f0);
    0x0007488a add r2, pc                    |         r2 = 0xe918c;
    0x0007488c ldr r3, [r2, r3]              |         r3 = *(0xe918c);
    0x0007488e ldr r2, [r3]                  |         r2 = *(0xe918c);
    0x00074890 ldr r3, [sp, 0xc]             |         r3 = var_ch_2;
    0x00074892 eors r2, r3                   |         r2 ^= r3;
    0x00074894 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00074898 bne 0x748e8                   |             goto label_7;
                                             |         }
    0x0007489a add sp, 0x10                  |         
    0x0007489c pop {r4, r5, r6, pc}          |         
    0x0007489e ldrb r2, [r4, r3]             |         r2 = *((r4 + r3));
    0x000748a0 subs r2, 0x2b                 |         r2 -= 0x2b;
    0x000748a2 tst.w r2, 0xfd                |         
    0x000748a6 bne 0x7482c                   |         
                                             |     }
                                             | label_2:
    0x000748a8 mvn r0, 0x15                  |     r0 = ~0x15;
    0x000748ac b 0x74886                     |     goto label_0;
                                             | label_5:
    0x000748ae ldrb r3, [r0, 1]              |     r3 = *((r0 + 1));
    0x000748b0 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x000748b2 beq 0x74836                   |         goto label_1;
                                             |     }
    0x000748b4 b 0x748a8                     |     goto label_2;
                                             | label_3:
    0x000748b6 ldr r1, [pc, 0x48]            |     
    0x000748b8 movw r2, 0x1a7                |     r2 = 0x1a7;
    0x000748bc ldr r3, [pc, 0x44]            |     
    0x000748be ldr r0, [pc, 0x48]            |     
    0x000748c0 add r1, pc                    |     r1 = 0xe91c6;
    0x000748c2 add r3, pc                    |     r3 = 0xe91ca;
    0x000748c4 adds r1, 7                    |     r1 += 7;
    0x000748c6 add r0, pc                    |     r0 = 0xe91d4;
    0x000748c8 bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_4:
    0x000748cc ldr r1, [pc, 0x3c]            |     
    0x000748ce mov.w r2, 0x1a8               |     r2 = 0x1a8;
    0x000748d2 ldr r3, [pc, 0x3c]            |     
    0x000748d4 ldr r0, [pc, 0x3c]            |     
    0x000748d6 add r1, pc                    |     r1 = 0xe91e6;
    0x000748d8 add r3, pc                    |     r3 = 0xe91ee;
    0x000748da adds r1, 7                    |     r1 += 7;
    0x000748dc add r0, pc                    |     r0 = 0xe91f4;
    0x000748de bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_6:
    0x000748e2 mvn r0, 0x21                  |     r0 = ~0x21;
    0x000748e6 b 0x74886                     |     goto label_0;
                                             | label_7:
    0x000748e8 blx 0x927c                    |     fprintf_chk ()
    0x000748ec cmn r2, r3                    |     
    0x000748ee movs r5, r0                   |     r5 = r0;
    0x000748f0 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x000748f2 movs r0, r0                   |     
    0x000748f4 movs r1, 0x2c                 |     r1 = 0x2c;
    0x000748f6 movs r1, r0                   |     r1 = r0;
    0x000748f8 movs r1, 0x1e                 |     r1 = 0x1e;
    0x000748fa movs r1, r0                   |     r1 = r0;
    0x000748fc tst r2, r7                    |     
    0x000748fe movs r5, r0                   |     r5 = r0;
    0x00074900 asrs r4, r1, 8                |     r4 = r1 >> 8;
    0x00074902 movs r3, r0                   |     r3 = r0;
    0x00074904 asrs r6, r4, 0xb              |     r6 = r4 >> 0xb;
    0x00074906 movs r3, r0                   |     r3 = r0;
    0x00074908 bics r6, r7                   |     __asm ("bics r6, r7");
    0x0007490a movs r1, r0                   |     r1 = r0;
    0x0007490c asrs r6, r6, 7                |     r6 >>= 7;
    0x0007490e movs r3, r0                   |     r3 = r0;
    0x00074910 asrs r0, r2, 0xb              |     r0 = r2 >> 0xb;
    0x00074912 movs r3, r0                   |     r3 = r0;
    0x00074914 asrs r4, r5, 8                |     r4 = r5 >> 8;
    0x00074916 movs r3, r0                   |     r3 = r0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x74918 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00074918 ()                  | void fcn_00074918 (int16_t arg1, int16_t arg2) {
                                             |     int16_t var_4h_4;
                                             |     int16_t var_8h_3;
                                             |     int16_t var_ch_3;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00074918 blmi 0xa871bc                 |     __asm ("blmi aav.0x000541a4");
    0x0007491c push {r4, r5, r6, r7, lr}     |     
    0x0007491e movs r7, 0                    |     r7 = 0;
    0x00074920 add r2, pc                    |     r2 += pc;
    0x00074922 sub sp, 0x14                  |     
    0x00074924 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x00074926 ldr r3, [r3]                  |     r3 = *(r3);
    0x00074928 str r3, [sp, 0xc]             |     var_ch_3 = r3;
    0x0007492a mov.w r3, 0                   |     r3 = 0;
    0x0007492e strd r7, r7, [sp, 4]          |     __asm ("strd r7, r7, [sp, 4]");
                                             |     if (r0 == 0) {
    0x00074932 cbz r0, 0x74998               |         goto label_1;
                                             |     }
    0x00074934 mov r5, r1                    |     r5 = r1;
    0x00074936 ldr r1, [pc, 0x88]            |     
    0x00074938 mov r4, r0                    |     r4 = r0;
    0x0007493a add r1, pc                    |     r1 = 0xe9300;
    0x0007493c blx 0x9428                    |     fcn_00009428 ();
    0x00074940 add r1, sp, 4                 |     r1 += var_4h_4;
    0x00074942 add r0, r4                    |     r0 += r4;
    0x00074944 bl 0x73fc8                    |     r0 = fcn_00073fc8 (r0, r1);
    0x00074948 mov r6, r0                    |     r6 = r0;
    0x0007494a blx 0x9628                    |     fcn_00009628 ();
    0x0007494e ldr r2, [sp, 4]               |     r2 = var_4h_4;
    0x00074950 mov r4, r0                    |     r4 = r0;
    0x00074952 str r7, [r0]                  |     *(r0) = r7;
    0x00074954 add r1, sp, 8                 |     r1 += var_8h_3;
    0x00074956 mov r0, r6                    |     r0 = r6;
    0x00074958 blx 0x8cfc                    |     fcn_00008cfc ();
    0x0007495c ldr r3, [r4]                  |     r3 = *(r4);
    0x0007495e mov r2, r0                    |     r2 = r0;
    0x00074960 cmp r3, 0                     |     
    0x00074962 it gt                         |     
                                             |     if (r3 > 0) {
    0x00074964 rsbgt r0, r3, 0               |         __asm ("rsbgt r0, r3, 0");
                                             |     }
                                             |     if (r3 > 0) {
    0x00074966 bgt 0x7497c                   |         goto label_0;
                                             |     }
    0x00074968 ldr r3, [sp, 8]               |     r3 = var_8h_3;
    0x0007496a cmp r3, 0                     |     
    0x0007496c it ne                         |     
                                             |     if (r3 != 0) {
    0x0007496e cmpne r3, r6                  |         __asm ("cmpne r3, r6");
                                             |     }
                                             |     if (r3 == 0) {
    0x00074970 beq 0x749ae                   |         goto label_2;
                                             |     }
    0x00074972 ldrb r0, [r3]                 |     r0 = *(r3);
                                             |     if (r0 != 0) {
    0x00074974 cbnz r0, 0x749ae              |         goto label_2;
                                             |     }
                                             |     if (r5 == 0) {
    0x00074976 cbz r5, 0x74994               |         goto label_3;
                                             |     }
    0x00074978 strd r2, r1, [r5]             |     __asm ("strd r2, r1, [r5]");
                                             |     do {
                                             | label_0:
    0x0007497c ldr r2, [pc, 0x44]            |         
    0x0007497e ldr r3, [pc, 0x3c]            |         r3 = *(0x749be);
    0x00074980 add r2, pc                    |         r2 = 0xe9348;
    0x00074982 ldr r3, [r2, r3]              |         r3 = *(0xe9348);
    0x00074984 ldr r2, [r3]                  |         r2 = *(0xe9348);
    0x00074986 ldr r3, [sp, 0xc]             |         r3 = var_ch_3;
    0x00074988 eors r2, r3                   |         r2 ^= r3;
    0x0007498a mov.w r3, 0                   |         r3 = 0;
    0x0007498c lsls r0, r0, 0xc              |         r0 <<= 0xc;
                                             |         if (r0 != r0) {
    0x0007498e bne 0x749b4                   |             goto label_4;
                                             |         }
    0x00074990 add sp, 0x14                  |         
    0x00074992 pop {r4, r5, r6, r7, pc}      |         
                                             | label_3:
    0x00074994 mov r0, r5                    |         r0 = r5;
    0x00074996 b 0x7497c                     |         
                                             |     } while (1);
                                             | label_1:
    0x00074998 ldr r1, [pc, 0x2c]            |     
    0x0007499a mov.w r2, 0x1ce               |     r2 = 0x1ce;
    0x0007499e ldr r3, [pc, 0x2c]            |     
    0x000749a0 ldr r0, [pc, 0x2c]            |     
    0x000749a2 add r1, pc                    |     r1 = 0xe936e;
    0x000749a4 add r3, pc                    |     r3 = 0xe9376;
    0x000749a6 adds r1, 7                    |     r1 += 7;
    0x000749a8 add r0, pc                    |     r0 = 0xe937c;
    0x000749aa bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_2:
    0x000749ae mvn r0, 0x15                  |     r0 = ~0x15;
    0x000749b2 b 0x7497c                     |     goto label_0;
                                             | label_4:
    0x000749b4 blx 0x927c                    |     fprintf_chk ()
    0x000749b8 sbcs r4, r4                   |     __asm ("sbcs r4, r4");
    0x000749ba movs r5, r0                   |     r5 = r0;
    0x000749bc lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x000749be movs r0, r0                   |     
    0x000749c0 movs r0, 2                    |     r0 = 2;
    0x000749c2 movs r1, r0                   |     r1 = r0;
    0x000749c4 adcs r4, r0                   |     __asm ("adcs r4, r0");
    0x000749c6 movs r5, r0                   |     r5 = r0;
    0x000749c8 asrs r2, r5, 4                |     r2 = r5 >> 4;
    0x000749ca movs r3, r0                   |     r3 = r0;
    0x000749cc asrs r0, r7, 7                |     r0 = r7 >> 7;
    0x000749ce movs r3, r0                   |     r3 = r0;
    0x000749d0 cmn r4, r3                    |     
    0x000749d2 movs r1, r0                   |     r1 = r0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x749d4 */
                                             | #include <stdint.h>
                                             |  
                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                             |  
    ; (fcn) fcn.000749d4 ()                  | void fcn_000749d4 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                             |     int16_t var_4h_3;
                                             |     int16_t var_8h_2;
                                             |     int16_t var_ch_4;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x000749d4 invalid                       |     
    0x000749d8 ldr r0, [pc, 0x10c]           |     
    0x000749da mov r6, r2                    |     r6 = r2;
    0x000749dc sub sp, 0x10                  |     
    0x000749de movs r3, 0                    |     r3 = 0;
    0x000749e0 ldr r2, [pc, 0x108]           |     r2 = *(0x74aec);
    0x000749e2 add r0, pc                    |     r0 = 0xe94ce;
    0x000749e4 str r1, [sp, 4]               |     var_4h_3 = r1;
    0x000749e6 ldr r2, [r0, r2]              |     
    0x000749e8 ldr r2, [r2]                  |     r2 = *(0xe94ce);
    0x000749ea str r2, [sp, 0xc]             |     var_ch_4 = r2;
    0x000749ec mov.w r2, 0                   |     r2 = 0;
    0x000749f0 str r3, [sp, 8]               |     var_8h_2 = r3;
    0x000749f2 cmp r4, 0                     |     
                                             |     if (r4 == 0) {
    0x000749f4 beq 0x74ab2                   |         goto label_4;
                                             |     }
    0x000749f6 bic r3, r1, 0x70000000        |     r3 = BIT_MASK (r1, 0x70000000);
    0x000749fa mov r5, r1                    |     r5 = r1;
    0x000749fc cmp r3, 0x10                  |     
                                             |     if (r3 > 0x10) {
    0x000749fe bhi 0x74ac8                   |         goto label_5;
                                             |     }
    0x00074a00 lsls r0, r1, 3                |     r0 = r1 << 3;
                                             |     if (r0 < r1) {
    0x00074a02 bpl 0x74a12                   |         
    0x00074a04 ldr r0, [pc, 0xe8]            |         
    0x00074a06 ldrb r1, [r4]                 |         r1 = *(r4);
    0x00074a08 add r0, pc                    |         r0 = 0xe94fc;
    0x00074a0a blx 0x8bb0                    |         r0 = get_current_dir_name ();
    0x00074a0e cmp r0, 0                     |         
                                             |         if (r0 != 0) {
    0x00074a10 bne 0x74aa0                   |             goto label_3;
                                             |         }
                                             |     }
    0x00074a12 ldr r1, [pc, 0xe0]            |     
    0x00074a14 mov r0, r4                    |     r0 = r4;
    0x00074a16 add r1, pc                    |     r1 = 0xe9510;
    0x00074a18 blx 0x9428                    |     fcn_00009428 ();
    0x00074a1c lsls r1, r5, 1                |     r1 = r5 << 1;
    0x00074a1e mov r3, r0                    |     r3 = r0;
    0x00074a20 add r0, r4                    |     r0 += r4;
    0x00074a22 bmi 0x74a96                   |     
                                             |     while ((r2 & 0xfd) != 0) {
    0x00074a24 lsls r2, r5, 2                |         r2 = r5 << 2;
                                             |         if (r2 < r5) {
    0x00074a26 bpl 0x74a2e                   |             
    0x00074a28 ldrb r3, [r4, r3]             |             r3 = *((r4 + r3));
    0x00074a2a cmp r3, 0x30                  |             
                                             |             if (r3 == 0x30) {
    0x00074a2c beq 0x74aaa                   |                 goto label_6;
                                             |             }
                                             |         }
                                             | label_2:
    0x00074a2e add r1, sp, 4                 |         r1 += var_4h_3;
    0x00074a30 bl 0x73fc8                    |         r0 = fcn_00073fc8 (r0, r1);
    0x00074a34 mov r5, r0                    |         r5 = r0;
    0x00074a36 blx 0x9628                    |         fcn_00009628 ();
    0x00074a3a ldr r2, [sp, 4]               |         r2 = var_4h_3;
    0x00074a3c movs r3, 0                    |         r3 = 0;
    0x00074a3e str r3, [r0]                  |         *(r0) = r3;
    0x00074a40 mov r4, r0                    |         r4 = r0;
    0x00074a42 add r1, sp, 8                 |         r1 += var_8h_2;
    0x00074a44 mov r0, r5                    |         r0 = r5;
    0x00074a46 bic r2, r2, 0x70000000        |         r2 = BIT_MASK (r2, 0x70000000);
    0x00074a4a blx 0x8f80                    |         fcn_00008f80 ();
    0x00074a4e ldr r3, [r4]                  |         r3 = *(r4);
    0x00074a50 cmp r3, 0                     |         
    0x00074a52 it gt                         |         
                                             |         if (r3 > 0) {
    0x00074a54 rsbgt r0, r3, 0               |             __asm ("rsbgt r0, r3, 0");
                                             |         }
                                             |         if (r3 <= 0) {
    0x00074a56 bgt 0x74a7e                   |             
    0x00074a58 ldr r3, [sp, 8]               |             r3 = var_8h_2;
    0x00074a5a cmp r3, 0                     |             
    0x00074a5c it ne                         |             
                                             |             if (r3 != 0) {
    0x00074a5e cmpne r3, r5                  |                 __asm ("cmpne r3, r5");
                                             |             }
                                             |             if (r3 == 0) {
    0x00074a60 beq 0x74aa0                   |                 goto label_3;
                                             |             }
    0x00074a62 ldrb r3, [r3]                 |             r3 = *(r3);
                                             |             if (r3 != 0) {
    0x00074a64 cbnz r3, 0x74aa0              |                 goto label_3;
                                             |             }
                                             |             if (r0 == 0) {
    0x00074a66 cbz r0, 0x74aa6               |                 goto label_7;
                                             |             }
    0x00074a68 ldrb r3, [r5]                 |             r3 = *(r5);
    0x00074a6a cmp r3, 0x2d                  |             
                                             |             if (r3 == 0x2d) {
    0x00074a6c beq 0x74ade                   |                 goto label_8;
                                             |             }
    0x00074a6e uxth r2, r0                   |             r2 = (int16_t) r0;
    0x00074a70 cmp r2, r0                    |             
    0x00074a72 mov r3, r2                    |             r3 = r2;
                                             |             if (r2 != r0) {
    0x00074a74 bne 0x74ade                   |                 goto label_8;
                                             |             }
                                             | label_1:
    0x00074a76 mov r0, r6                    |             r0 = r6;
                                             |             if (r6 == 0) {
    0x00074a78 cbz r6, 0x74a7e               |                 goto label_0;
                                             |             }
    0x00074a7a movs r0, 0                    |             r0 = 0;
    0x00074a7c strh r3, [r6]                 |             *(r6) = r3;
                                             |         }
                                             | label_0:
    0x00074a7e ldr r2, [pc, 0x78]            |         
    0x00074a80 ldr r3, [pc, 0x68]            |         r3 = *(0x74aec);
    0x00074a82 add r2, pc                    |         r2 = 0xe9580;
    0x00074a84 ldr r3, [r2, r3]              |         r3 = *(0xe9580);
    0x00074a86 ldr r2, [r3]                  |         r2 = *(0xe9580);
    0x00074a88 ldr r3, [sp, 0xc]             |         r3 = var_ch_4;
    0x00074a8a eors r2, r3                   |         r2 ^= r3;
    0x00074a8c mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00074a90 bne 0x74ae4                   |             goto label_9;
                                             |         }
    0x00074a92 add sp, 0x10                  |         
    0x00074a94 pop {r4, r5, r6, pc}          |         
    0x00074a96 ldrb r2, [r4, r3]             |         r2 = *((r4 + r3));
    0x00074a98 subs r2, 0x2b                 |         r2 -= 0x2b;
    0x00074a9a tst.w r2, 0xfd                |         
    0x00074a9e bne 0x74a24                   |         
                                             |     }
                                             | label_3:
    0x00074aa0 mvn r0, 0x15                  |     r0 = ~0x15;
    0x00074aa4 b 0x74a7e                     |     goto label_0;
                                             | label_7:
    0x00074aa6 mov r3, r0                    |     r3 = r0;
    0x00074aa8 b 0x74a76                     |     goto label_1;
                                             | label_6:
    0x00074aaa ldrb r3, [r0, 1]              |     r3 = *((r0 + 1));
    0x00074aac cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00074aae beq 0x74a2e                   |         goto label_2;
                                             |     }
    0x00074ab0 b 0x74aa0                     |     goto label_3;
                                             | label_4:
    0x00074ab2 ldr r1, [pc, 0x48]            |     
    0x00074ab4 mov.w r2, 0x1fe               |     r2 = 0x1fe;
    0x00074ab8 ldr r3, [pc, 0x44]            |     
    0x00074aba ldr r0, [pc, 0x48]            |     
    0x00074abc add r1, pc                    |     r1 = 0xe95be;
    0x00074abe add r3, pc                    |     r3 = 0xe95c2;
    0x00074ac0 adds r1, 7                    |     r1 += 7;
    0x00074ac2 add r0, pc                    |     r0 = 0xe95cc;
    0x00074ac4 bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_5:
    0x00074ac8 ldr r1, [pc, 0x3c]            |     
    0x00074aca movw r2, 0x1ff                |     r2 = 0x1ff;
    0x00074ace ldr r3, [pc, 0x3c]            |     
    0x00074ad0 ldr r0, [pc, 0x3c]            |     
    0x00074ad2 add r1, pc                    |     r1 = 0xe95de;
    0x00074ad4 add r3, pc                    |     r3 = 0xe95e6;
    0x00074ad6 adds r1, 7                    |     r1 += 7;
    0x00074ad8 add r0, pc                    |     r0 = 0xe95ec;
    0x00074ada bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_8:
    0x00074ade mvn r0, 0x21                  |     r0 = ~0x21;
    0x00074ae2 b 0x74a7e                     |     goto label_0;
                                             | label_9:
    0x00074ae4 blx 0x927c                    |     fprintf_chk ()
    0x00074ae8 lsrs r2, r4                   |     r2 >>= r4;
    0x00074aea movs r5, r0                   |     r5 = r0;
    0x00074aec lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00074aee movs r0, r0                   |     
    0x00074af0 subs r4, r6, 4                |     r4 = r6 - 4;
    0x00074af2 movs r1, r0                   |     r1 = r0;
    0x00074af4 subs r6, r4, 4                |     r6 = r4 - 4;
    0x00074af6 movs r1, r0                   |     r1 = r0;
    0x00074af8 eors r2, r0                   |     r2 ^= r0;
    0x00074afa movs r5, r0                   |     r5 = r0;
    0x00074afc asrs r0, r2, 0x20             |     r0 = r2 >> 0x20;
    0x00074afe movs r3, r0                   |     r3 = r0;
    0x00074b00 asrs r2, r1, 3                |     r2 = r1 >> 3;
    0x00074b02 movs r3, r0                   |     r3 = r0;
    0x00074b04 rors r2, r0                   |     __asm ("rors r2, r0");
    0x00074b06 movs r1, r0                   |     r1 = r0;
    0x00074b08 lsrs r2, r7, 0x1f             |     r2 = r7 >> 0x1f;
    0x00074b0a movs r3, r0                   |     r3 = r0;
    0x00074b0c asrs r4, r6, 2                |     r4 = r6 >> 2;
    0x00074b0e movs r3, r0                   |     r3 = r0;
    0x00074b10 asrs r0, r6, 0x20             |     r0 = r6 >> 0x20;
    0x00074b12 movs r3, r0                   |     r3 = r0;
                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x74b14 */
                                                         | #include <stdint.h>
                                                         |  
                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                         |  
    ; (fcn) fcn.00074b14 ()                              | void fcn_00074b14 (int16_t arg1, int16_t arg2) {
                                                         |     int16_t var_0h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00074b14 blmi 0xdc73ec                             |     __asm ("blmi aav.0x00053fa6");
    0x00074b18 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x00074b1c mov r6, r1                                |     r6 = r1;
    0x00074b1e add r2, pc                                |     r2 += pc;
    0x00074b20 ldr r1, [pc, 0xcc]                        |     
    0x00074b22 sub sp, 0x10                              |     
    0x00074b24 ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x00074b26 add r7, sp, 0                             |     r7 += var_0h;
    0x00074b28 add r1, pc                                |     r1 = 0xe971c;
    0x00074b2a mov r5, r0                                |     r5 = r0;
    0x00074b2c ldr r3, [r3]                              |     r3 = *(r3);
    0x00074b2e str r3, [r7, 0xc]                         |     *((r7 + 0xc)) = r3;
    0x00074b30 mov.w r3, 0                               |     r3 = 0;
    0x00074b34 blx 0x9428                                |     r0 = fcn_00009428 ();
    0x00074b38 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00074b3a beq 0x74bd6                               |         goto label_1;
                                                         |     }
    0x00074b3c ldrb r3, [r5, r0]                         |     r3 = *((r5 + r0));
    0x00074b3e mov r4, r0                                |     r4 = r0;
    0x00074b40 cmp r3, 0x3a                              |     
                                                         |     if (r3 != 0x3a) {
    0x00074b42 bne 0x74bd6                               |         goto label_1;
                                                         |     }
    0x00074b44 mov r1, r0                                |     r1 = r0;
    0x00074b46 mov r0, r5                                |     r0 = r5;
    0x00074b48 blx 0x92c8                                |     r0 = fcn_000092c8 ();
    0x00074b4c add.w r3, r0, 8                           |     r3 = r0 + 8;
    0x00074b50 mov.w r8, 0                               |     r8 = 0;
    0x00074b54 bic r3, r3, 7                             |     r3 = BIT_MASK (r3, 7);
    0x00074b58 mov r2, r0                                |     r2 = r0;
    0x00074b5a sub.w sp, sp, r3                          |     
    0x00074b5e mov r1, r5                                |     r1 = r5;
    0x00074b60 mov r3, sp                                |     r3 = sp;
    0x00074b62 lsrs r3, r3, 3                            |     r3 >>= 3;
    0x00074b64 strb.w r8, [r0, r3, lsl 3]                |     offset_0 = r3 << 3;
                                                         |     *((r0 + offset_0)) = r8;
    0x00074b68 mov r0, sp                                |     r0 = sp;
    0x00074b6a blx 0x8f9c                                |     fcn_00008f9c ();
    0x00074b6e adds r2, r7, 4                            |     r2 = r7 + 4;
    0x00074b70 mov r1, r8                                |     r1 = r8;
    0x00074b72 bl 0x7444c                                |     r0 = fcn_0007444c (r0, r1, r2);
    0x00074b76 cmp r0, 0                                 |     
                                                         |     if (r0 < 0) {
    0x00074b78 blt 0x74bba                               |         goto label_0;
                                                         |     }
    0x00074b7a adds r4, 1                                |     r4++;
    0x00074b7c add.w r2, r7, 8                           |     r2 = r7 + 8;
    0x00074b80 mov r1, r8                                |     r1 = r8;
    0x00074b82 adds r0, r5, r4                           |     r0 = r5 + r4;
    0x00074b84 bl 0x7444c                                |     r0 = fcn_0007444c (r0, r1, r2);
    0x00074b88 cmp r0, 0                                 |     
                                                         |     if (r0 < 0) {
    0x00074b8a blt 0x74bba                               |         goto label_0;
                                                         |     }
    0x00074b8c ldr r1, [r7, 4]                           |     r1 = *((r7 + 4));
    0x00074b8e cmp.w r1, 0x1000                          |     
                                                         |     if (r1 >= 0x1000) {
    0x00074b92 bhs 0x74bdc                               |         goto label_2;
                                                         |     }
    0x00074b94 ldr r3, [r7, 8]                           |     r3 = *((r7 + 8));
    0x00074b96 cmp.w r3, 0x100000                        |     
    0x00074b98 subs r0, r0, 6                            |     r0 -= 6;
                                                         |     if (r0 >= r0) {
    0x00074b9a bhs 0x74bdc                               |         goto label_2;
                                                         |     }
    0x00074b9c mov r2, r8                                |     r2 = r8;
    0x00074b9e uxtb r4, r3                               |     r4 = (int8_t) r3;
    0x00074ba0 movt r2, 0xfff0                           |     r2 = (r2 & 0xFFFF) | 0xfff00000;
    0x00074ba4 and.w r2, r2, r3, lsl 12                  |     r2 &= (r3 << 12);
    0x00074ba8 lsrs r3, r3, 0x14                         |     r3 >>= 0x14;
    0x00074baa orr.w r4, r4, r1, lsl 8                   |     r4 |= (r1 << 8);
    0x00074bae orr.w r3, r3, r1, lsr 24                  |     r3 |= (r1 >> 24);
    0x00074bb2 mov r0, r8                                |     r0 = r8;
    0x00074bb4 orrs r2, r4                               |     r2 |= r4;
    0x00074bb6 str r2, [r6]                              |     *(r6) = r2;
    0x00074bb8 str r3, [r6, 4]                           |     *((r6 + 4)) = r3;
                                                         |     do {
                                                         | label_0:
    0x00074bba ldr r2, [pc, 0x38]                        |         
    0x00074bbc ldr r3, [pc, 0x2c]                        |         r3 = *(0x74bec);
    0x00074bbe add r2, pc                                |         r2 = 0xe97b8;
    0x00074bc0 ldr r3, [r2, r3]                          |         r3 = *(0xe97b8);
    0x00074bc2 ldr r2, [r3]                              |         r2 = *(0xe97b8);
    0x00074bc4 ldr r3, [r7, 0xc]                         |         r3 = *((r7 + 0xc));
    0x00074bc6 eors r2, r3                               |         r2 ^= r3;
    0x00074bc8 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00074bcc bne 0x74be2                               |             goto label_3;
                                                         |         }
    0x00074bce adds r7, 0x10                             |         r7 += 0x10;
    0x00074bd0 mov sp, r7                                |         
    0x00074bd2 pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         | label_1:
    0x00074bd6 mvn r0, 0x15                              |         r0 = ~0x15;
    0x00074bda b 0x74bba                                 |         
                                                         |     } while (1);
                                                         | label_2:
    0x00074bdc mvn r0, 0x21                              |     r0 = ~0x21;
    0x00074be0 b 0x74bba                                 |     goto label_0;
                                                         | label_3:
    0x00074be2 blx 0x927c                                |     fprintf_chk ()
    0x00074be6 nop                                       |     
    0x00074be8 subs r7, 0xa6                             |     r7 -= 0xa6;
    0x00074bea movs r5, r0                               |     r5 = r0;
    0x00074bec lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x00074bee movs r0, r0                               |     
    0x00074bf0 adds r4, r3, 5                            |     r4 = r3 + 5;
    0x00074bf2 movs r2, r0                               |     r2 = r0;
    0x00074bf4 subs r7, 6                                |     r7 -= 6;
    0x00074bf6 movs r5, r0                               |     r5 = r0;
                                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x74ccc */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00074ccc ()                              | void fcn_00074ccc () {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     int16_t var_28h;
                                                         |     int16_t var_2ch;
                                                         |     int16_t var_30h;
                                                         |     int16_t var_4h_2;
    0x00074ccc bmi 0x1461d10                             |     
    0x00074cd0 ldr r3, [pc, 0x13c]                       |     
    0x00074cd2 push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x00074cd6 sub sp, 0xc                               |     
    0x00074cd8 add r2, pc                                |     r2 += pc;
    0x00074cda ldr r6, [sp, 0x28]                        |     r6 = var_28h;
    0x00074cdc ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x00074cde ldr r3, [r3]                              |     r3 = *(0x74e10);
    0x00074ce0 str r3, [sp, 4]                           |     var_4h = r3;
    0x00074ce2 mov.w r3, 0                               |     r3 = 0;
    0x00074ce6 cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x00074ce8 beq 0x74dd2                               |         goto label_7;
                                                         |     }
    0x00074cea ldr.w r8, [r6]                            |     r8 = *(r6);
    0x00074cee mov r5, r8                                |     r5 = r8;
    0x00074cf0 cmp.w r8, 0                               |     
    0x00074cf2 lsrs r0, r0, 0x1c                         |     r0 >>= 0x1c;
                                                         |     if (r0 != r0) {
    0x00074cf4 beq 0x74cfe                               |         
    0x00074cf6 mov r0, r8                                |         r0 = r8;
    0x00074cf8 blx 0x8f38                                |         r0 = fcn_00008f38 ();
    0x00074cfa ldmdb lr, {r0, r2, sb, sl, lr}            |         __asm ("ldmdb lr, {r0, r2, sb, sl, lr}");
                                                         |     }
    0x00074cfe ldr r0, [sp, 0x2c]                        |     r0 = var_2ch;
    0x00074d00 add r3, sp, 0x30                          |     r3 += var_30h;
    0x00074d02 str r3, [sp]                              |     *(sp) = r3;
    0x00074d04 add r4, sp, 0x2c                          |     r4 += var_2ch;
    0x00074d06 adds r3, r0, 1                            |     r3 = r0 + 1;
    0x00074d08 it eq                                     |     
                                                         |     if (r3 != r0) {
    0x00074d0a moveq r7, r5                              |         r7 = r5;
                                                         |     }
                                                         |     if (r3 == r0) {
    0x00074d0c beq 0x74d36                               |         goto label_8;
                                                         |     }
                                                         | label_1:
    0x00074d0e mov r7, r5                                |     r7 = r5;
                                                         |     do {
                                                         |         if (r0 != 0) {
    0x00074d10 cbz r0, 0x74d22                           |             
    0x00074d12 ldrb r3, [r0]                             |             r3 = *(r0);
                                                         |             if (r3 == 0) {
    0x00074d14 cbz r3, 0x74d22                           |                 goto label_9;
                                                         |             }
    0x00074d16 blx 0x8f38                                |             fcn_00008f38 ();
    0x00074d1a adds r0, 1                                |             r0++;
    0x00074d1c adds r0, r0, r7                           |             r0 += r7;
                                                         |             if (r0 >= r0) {
    0x00074d1e bhs 0x74e02                               |                 goto label_10;
                                                         |             }
    0x00074d20 mov r7, r0                                |             r7 = r0;
                                                         |         }
                                                         | label_9:
    0x00074d22 ldr r3, [sp]                              |         r3 = *(sp);
    0x00074d24 ldr r0, [r3]                              |         r0 = *(r3);
    0x00074d26 adds r3, 4                                |         r3 += 4;
    0x00074d28 str r3, [sp]                              |         *(sp) = r3;
    0x00074d2a adds r2, r0, 1                            |         r2 = r0 + 1;
    0x00074d2c bne 0x74d10                               |         
                                                         |     } while (r2 != r0);
    0x00074d2e cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x00074d30 beq 0x74dfc                               |         goto label_11;
                                                         |     }
    0x00074d32 ldr.w r8, [r6]                            |     r8 = *(r6);
                                                         | label_8:
    0x00074d36 mov r0, r8                                |     r0 = r8;
    0x00074d38 adds r1, r7, 1                            |     r1 = r7 + 1;
                                                         | label_5:
    0x00074d3a cmp r1, 2                                 |     
                                                         |     if (r1 < 2) {
    0x00074d3c bls 0x74df8                               |         goto label_12;
                                                         |     }
    0x00074d3e clz r7, r7                                |     r7 &= r7;
                                                         |     if (r7 != 0) {
    0x00074d42 cbz r7, 0x74d4c                           |         
    0x00074d44 rsb.w r7, r7, 0x20                        |         r7 = 0x20 - r7;
    0x00074d48 movs r1, 1                                |         r1 = 1;
    0x00074d4a lsls r1, r7                               |         r1 <<= r7;
                                                         |     }
                                                         | label_4:
    0x00074d4c blx 0x94dc                                |     r0 = fcn_000094dc ();
    0x00074d50 mov r7, r0                                |     r7 = r0;
                                                         |     if (r0 == 0) {
    0x00074d52 cbz r0, 0x74db2                           |         goto label_2;
                                                         |     }
                                                         |     if (r6 != 0) {
    0x00074d54 cbz r6, 0x74d58                           |         
    0x00074d56 str r0, [r6]                              |         *(r6) = r0;
                                                         |     }
    0x00074d58 cmp r5, 0                                 |     
                                                         |     if (r5 == 0) {
    0x00074d5a beq 0x74dee                               |         goto label_13;
                                                         |     }
    0x00074d5c add r5, r7                                |     r5 += r7;
    0x00074d5e ldrb r0, [r5, -0x1]                       |     r0 = *((r5 - 0x1));
    0x00074d62 sub.w r0, r0, 0x2f                        |     r0 -= 0x2f;
    0x00074d66 clz r0, r0                                |     r0 &= r0;
    0x00074d6a lsrs r0, r0, 5                            |     r0 >>= 5;
                                                         | label_3:
    0x00074d6c ldr.w r8, [pc, 0xa4]                      |     r8 = *(0x74e14);
                                                         | label_6:
    0x00074d70 mov.w sb, 0x2f                            |     sb = 0x2f;
    0x00074d74 add r8, pc                                |     r8 += pc;
                                                         |     do {
    0x00074d76 ldr r6, [r4]                              |         r6 = *(r4);
    0x00074d78 adds r4, 4                                |         r4 += 4;
    0x00074d7a str r4, [sp]                              |         *(sp) = r4;
    0x00074d7c adds r3, r6, 1                            |         r3 = r6 + 1;
                                                         |         if (r3 == r6) {
    0x00074d7e beq 0x74db2                               |             goto label_2;
                                                         |         }
                                                         |         if (r6 == 0) {
                                                         | label_0:
    0x00074d80 cbz r6, 0x74daa                           |             goto label_14;
                                                         |         }
    0x00074d82 ldrb r3, [r6]                             |         r3 = *(r6);
                                                         |         if (r3 == 0) {
    0x00074d84 cbz r3, 0x74daa                           |             goto label_14;
                                                         |         }
                                                         |         if (r0 == 0) {
    0x00074d86 cbnz r0, 0x74d90                          |             
    0x00074d88 cmp r3, 0x2f                              |             
    0x00074d8a it ne                                     |             
                                                         |             if (r3 != 0x2f) {
    0x00074d8c strbne sb, [r5], 1                        |                 *(r5) = sb;
                                                         |                 r5++;
                                                         |                 goto label_15;
                                                         |             }
                                                         |         }
                                                         | label_15:
    0x00074d90 mov r1, r6                                |         r1 = r6;
    0x00074d92 mov r0, r5                                |         r0 = r5;
    0x00074d94 blx 0x8c38                                |         fcn_00008c38 ();
    0x00074d98 mov r1, r8                                |         r1 = r8;
    0x00074d9a mov r5, r0                                |         r5 = r0;
    0x00074d9c mov r0, r6                                |         r0 = r6;
    0x00074d9e bl 0x80428                                |         fcn_00080428 (r0, r1);
    0x00074da2 subs r0, 0                                |         
    0x00074da4 it ne                                     |         
                                                         |         if (r0 == 0) {
    0x00074da6 movne r0, 1                               |             r0 = 1;
                                                         |         }
    0x00074da8 b 0x74d76                                 |         
                                                         |     } while (1);
                                                         | label_14:
    0x00074daa ldr r6, [r4], 4                           |     r6 = *(r4);
                                                         |     r4 += 4;
    0x00074dae adds r1, r6, 1                            |     r1 = r6 + 1;
                                                         |     if (r1 != r6) {
    0x00074db0 bne 0x74d80                               |         goto label_0;
                                                         |     }
                                                         | label_2:
    0x00074db2 ldr r2, [pc, 0x64]                        |     
    0x00074db4 ldr r3, [pc, 0x58]                        |     r3 = *(0x74e10);
    0x00074db6 add r2, pc                                |     r2 = 0xe9bd4;
    0x00074db8 ldr r3, [r2, r3]                          |     r3 = *(0xe9bd4);
    0x00074dba ldr r2, [r3]                              |     r2 = *(0xe9bd4);
    0x00074dbc ldr r3, [sp, 4]                           |     r3 = var_4h;
    0x00074dbe eors r2, r3                               |     r2 ^= r3;
    0x00074dc0 mov.w r3, 0                               |     r3 = 0;
                                                         |     if (r2 != r3) {
    0x00074dc4 bne 0x74e06                               |         goto label_16;
                                                         |     }
    0x00074dc6 mov r0, r7                                |     r0 = r7;
    0x00074dc8 add sp, 0xc                               |     
    0x00074dca pop.w {r4, r5, r6, r7, r8, sb, lr}        |     
    0x00074dce add sp, 0x10                              |     
    0x00074dd0 bx lr                                     |     return;
                                                         | label_7:
    0x00074dd2 ldr r0, [sp, 0x2c]                        |     r0 = var_2ch;
    0x00074dd4 add r3, sp, 0x30                          |     r3 += var_30h;
    0x00074dd6 add r4, sp, 0x2c                          |     r4 += var_2ch;
    0x00074dd8 str r3, [sp]                              |     *(sp) = r3;
    0x00074dda adds r2, r0, 1                            |     r2 = r0 + 1;
    0x00074ddc it ne                                     |     
                                                         |     if (r2 != r0) {
    0x00074dde movne r5, r6                              |         r5 = r6;
                                                         |         goto label_17;
                                                         |     }
                                                         |     if (r2 != r0) {
                                                         | label_17:
    0x00074de0 bne 0x74d0e                               |         goto label_1;
                                                         |     }
    0x00074de2 movs r0, 2                                |     r0 = 2;
    0x00074de4 blx 0x9234                                |     r0 = blkid_safe_string ();
    0x00074de8 mov r7, r0                                |     r7 = r0;
    0x00074dea cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00074dec beq 0x74db2                               |         goto label_2;
                                                         |     }
                                                         | label_13:
    0x00074dee movs r3, 0                                |     r3 = 0;
    0x00074df0 movs r0, 1                                |     r0 = 1;
    0x00074df2 mov r5, r7                                |     r5 = r7;
    0x00074df4 strb r3, [r7]                             |     *(r7) = r3;
    0x00074df6 b 0x74d6c                                 |     goto label_3;
                                                         | label_12:
    0x00074df8 movs r1, 2                                |     r1 = 2;
    0x00074dfa b 0x74d4c                                 |     goto label_4;
                                                         | label_11:
    0x00074dfc adds r1, r7, 1                            |     r1 = r7 + 1;
    0x00074dfe mov r0, r6                                |     r0 = r6;
    0x00074e00 b 0x74d3a                                 |     goto label_5;
                                                         | label_10:
    0x00074e02 movs r7, 0                                |     r7 = 0;
    0x00074e04 b 0x74db2                                 |     goto label_2;
                                                         | label_16:
    0x00074e06 blx 0x927c                                |     fprintf_chk ()
    0x00074e0a nop                                       |     
    0x00074e0c subs r5, 0xec                             |     r5 -= 0xec;
    0x00074e0e movs r5, r0                               |     r5 = r0;
    0x00074e10 lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x00074e12 movs r0, r0                               |     
                                                         |     if (r0 <= r0) {
    0x00074e14 blo 0x74d70                               |         goto label_6;
                                                         |     }
    0x00074e16 movs r1, r0                               |     r1 = r0;
    0x00074e18 subs r5, 0xe                              |     r5 -= 0xe;
    0x00074e1a movs r5, r0                               |     r5 = r0;
                                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x74e1c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00074e1c ()                  | void fcn_00074e1c (int16_t arg1, uint32_t arg2) {
                                             |     int16_t var_0h_3;
                                             |     int16_t var_4h_2;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00074e1c ldr r2, [pc, 0xa8]            |     
    0x00074e1e ldr r3, [pc, 0xac]            |     r3 = *(0x74ece);
    0x00074e20 push {r4, r5, r6, r7, lr}     |     
    0x00074e22 sub sp, 0xc                   |     
    0x00074e24 add r2, pc                    |     r2 = 0xe9cf0;
    0x00074e26 ldr r3, [r2, r3]              |     
    0x00074e28 ldr r3, [r3]                  |     r3 = *(0xe9cf0);
    0x00074e2a str r3, [sp, 4]               |     var_4h_2 = r3;
    0x00074e2c mov.w r3, 0                   |     r3 = 0;
                                             |     if (r0 == 0) {
    0x00074e30 cbz r0, 0x74e94               |         goto label_1;
                                             |     }
    0x00074e32 mov r5, r1                    |     r5 = r1;
    0x00074e34 cmp r1, 0                     |     
                                             |     if (r1 == 0) {
    0x00074e36 beq 0x74ea8                   |         goto label_2;
                                             |     }
    0x00074e38 ldrb r3, [r0]                 |     r3 = *(r0);
    0x00074e3a mov r4, r0                    |     r4 = r0;
    0x00074e3c cmp r3, 0x2f                  |     
                                             |     if (r3 == 0x2f) {
    0x00074e3e beq 0x74e84                   |         goto label_3;
                                             |     }
    0x00074e40 movs r7, 0                    |     r7 = 0;
    0x00074e42 mov r0, sp                    |     r0 = sp;
    0x00074e44 str r7, [sp]                  |     *(sp) = r7;
    0x00074e46 bl 0x74c74                    |     r0 = fcn_00074c74 (r0);
    0x00074e4a subs r6, r0, 0                |     r6 = r0 - 0;
                                             |     if (r6 < r0) {
    0x00074e4c blt 0x74e8c                   |         goto label_4;
                                             |     }
    0x00074e4e mov r2, r4                    |     r2 = r4;
    0x00074e50 ldr r1, [sp]                  |     r1 = *(sp);
    0x00074e52 mov.w r3, -1                  |     r3 = -1;
    0x00074e56 mov r0, r7                    |     r0 = r7;
    0x00074e58 bl 0x74ccc                    |     r0 = fcn_00074ccc ();
    0x00074e5c mov r4, r0                    |     r4 = r0;
    0x00074e5e ldr r0, [sp]                  |     r0 = *(sp);
    0x00074e60 blx 0x8dac                    |     fcn_00008dac ();
                                             |     if (r4 == 0) {
                                             |         do {
    0x00074e64 cbz r4, 0x74ebc               |             goto label_5;
                                             |         }
    0x00074e66 movs r6, 0                    |         r6 = 0;
    0x00074e68 str r4, [r5]                  |         *(r5) = r4;
                                             | label_0:
    0x00074e6a ldr r2, [pc, 0x64]            |         
    0x00074e6c ldr r3, [pc, 0x5c]            |         r3 = *(0x74ecc);
    0x00074e6e add r2, pc                    |         r2 = 0xe9d44;
    0x00074e70 ldr r3, [r2, r3]              |         r3 = *(0xe9d44);
    0x00074e72 ldr r2, [r3]                  |         r2 = *(0xe9d44);
    0x00074e74 ldr r3, [sp, 4]               |         r3 = var_4h_2;
    0x00074e76 eors r2, r3                   |         r2 ^= r3;
    0x00074e78 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00074e7c bne 0x74ec2                   |             goto label_6;
                                             |         }
    0x00074e7e mov r0, r6                    |         r0 = r6;
    0x00074e80 add sp, 0xc                   |         
    0x00074e82 pop {r4, r5, r6, r7, pc}      |         
                                             | label_3:
    0x00074e84 blx 0x9200                    |         r0 = fcn_00009200 ();
    0x00074e88 mov r4, r0                    |         r4 = r0;
    0x00074e8a b 0x74e64                     |         
                                             |     } while (1);
                                             | label_4:
    0x00074e8c ldr r0, [sp]                  |     r0 = *(sp);
    0x00074e8e blx 0x8dac                    |     fcn_00008dac ();
    0x00074e92 b 0x74e6a                     |     goto label_0;
                                             | label_1:
    0x00074e94 ldr r1, [pc, 0x3c]            |     
    0x00074e96 movs r2, 0x56                 |     r2 = 0x56;
    0x00074e98 ldr r3, [pc, 0x3c]            |     
    0x00074e9a ldr r0, [pc, 0x40]            |     
    0x00074e9c add r1, pc                    |     r1 = 0xe9d74;
    0x00074e9e add r3, pc                    |     r3 = 0xe9d7a;
    0x00074ea0 adds r1, 7                    |     r1 += 7;
    0x00074ea2 add r0, pc                    |     r0 = 0xe9d84;
    0x00074ea4 bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_2:
    0x00074ea8 ldr r1, [pc, 0x34]            |     
    0x00074eaa movs r2, 0x57                 |     r2 = 0x57;
    0x00074eac ldr r3, [pc, 0x34]            |     
    0x00074eae ldr r0, [pc, 0x38]            |     
    0x00074eb0 add r1, pc                    |     r1 = 0xe9d94;
    0x00074eb2 add r3, pc                    |     r3 = 0xe9d9a;
    0x00074eb4 adds r1, 7                    |     r1 += 7;
    0x00074eb6 add r0, pc                    |     r0 = 0xe9da4;
    0x00074eb8 bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_5:
    0x00074ebc mvn r6, 0xb                   |     r6 = ~0xb;
    0x00074ec0 b 0x74e6a                     |     goto label_0;
                                             | label_6:
    0x00074ec2 blx 0x927c                    |     fprintf_chk ()
    0x00074ec6 nop                           |     
    0x00074ec8 subs r4, 0xa0                 |     r4 -= 0xa0;
    0x00074eca movs r5, r0                   |     r5 = r0;
    0x00074ecc lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00074ece movs r0, r0                   |     
    0x00074ed0 subs r4, 0x56                 |     r4 -= 0x56;
    0x00074ed2 movs r5, r0                   |     r5 = r0;
    0x00074ed4 lsrs r0, r6, 0x14             |     r0 = r6 >> 0x14;
    0x00074ed6 movs r3, r0                   |     r3 = r0;
    0x00074ed8 lsrs r6, r1, 0x1c             |     r6 = r1 >> 0x1c;
    0x00074eda movs r3, r0                   |     r3 = r0;
    0x00074edc strh r6, [r5, r1]             |     *((r5 + r1)) = r6;
    0x00074ede movs r1, r0                   |     r1 = r0;
    0x00074ee0 lsrs r4, r3, 0x14             |     r4 = r3 >> 0x14;
    0x00074ee2 movs r3, r0                   |     r3 = r0;
    0x00074ee4 lsrs r2, r7, 0x1b             |     r2 = r7 >> 0x1b;
    0x00074ee6 movs r3, r0                   |     r3 = r0;
    0x00074ee8 sbcs r0, lr, 0x800000         |     __asm ("sbcs r0, lr, aav.0x000000ff");
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x74eec */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00074eec ()                                      | void fcn_00074eec (uint32_t arg1, uint32_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_4h_3;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_68h;
                                                                 |     int16_t var_84h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00074eec svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x00074ef0 mov r8, r2                                        |     r8 = r2;
    0x00074ef2 ldr r2, [pc, 0xe4]                                |     
    0x00074ef4 sub sp, 0x8c                                      |     
    0x00074ef6 ldr r3, [pc, 0xe4]                                |     r3 = *(0x74fde);
    0x00074ef8 add r2, pc                                        |     r2 = 0xe9ed6;
    0x00074efa ldr r3, [r2, r3]                                  |     
    0x00074efc ldr r3, [r3]                                      |     r3 = *(0xe9ed6);
    0x00074efe str r3, [sp, 0x84]                                |     var_84h = r3;
    0x00074f00 mov.w r3, 0                                       |     r3 = 0;
    0x00074f04 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00074f06 beq 0x74fba                                       |         goto label_1;
                                                                 |     }
    0x00074f08 mov r7, r0                                        |     r7 = r0;
    0x00074f0a mov sl, r0                                        |     sl = r0;
    0x00074f0c cmp r0, 0                                         |     
                                                                 |     if (var_0h_2 == ) {
    0x00074f0e beq 0x74f98                                       |         goto label_0;
                                                                 |     }
    0x00074f10 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00074f12 mov r6, r1                                        |     r6 = r1;
    0x00074f14 ldrd r3, r2, [r1]                                 |     __asm ("ldrd r3, r2, [r1]");
    0x00074f16 adds r2, 0                                        |     r2 += 0;
    0x00074f18 cmp r0, 0                                         |     
                                                                 |     if (var_0h_2 == ) {
    0x00074f1a beq 0x74fd0                                       |         goto label_2;
                                                                 |     }
    0x00074f1c orrs r3, r2                                       |     r3 |= r2;
    0x00074f1e ldr r2, [pc, 0xc0]                                |     
    0x00074f20 ldr r3, [pc, 0xc0]                                |     
    0x00074f22 mov.w sl, 0                                       |     sl = 0;
    0x00074f26 ldr.w fp, [pc, 0xc0]                              |     
    0x00074f28 sub sp, 0x100                                     |     
    0x00074f2a add.w sb, sp, 0x18                                |     sb += var_18h;
    0x00074f2e add r2, pc                                        |     r2 = 0xe9f14;
    0x00074f30 add r3, pc                                        |     r3 = 0xe9f18;
    0x00074f32 it ne                                             |     
                                                                 |     if (r3 == r2) {
    0x00074f34 movne r3, r2                                      |         r3 = r2;
                                                                 |     }
    0x00074f36 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x00074f38 add fp, pc                                        |     fp = 0xe9f26;
    0x00074f3a ldr r3, [pc, 0xb0]                                |     
    0x00074f3c add.w fp, fp, 7                                   |     
    0x00074f40 add r3, pc                                        |     r3 = 0xe9f32;
    0x00074f42 str r3, [sp, 0x14]                                |     var_14h = r3;
                                                                 |     do {
    0x00074f44 mov r1, sb                                        |         r1 = sb;
    0x00074f46 blx 0x8e3c                                        |         r0 = fcn_00008e3c ();
    0x00074f4a cmp r0, 0                                         |         
                                                                 |         if (r0 >= 0) {
    0x00074f4c blt 0x74f90                                       |             
    0x00074f4e add r0, sp, 0x68                                  |             r0 += var_68h;
    0x00074f50 bl 0x7c590                                        |             fcn_0007c590 (r0, r1);
    0x00074f54 ldrd r2, r3, [r6]                                 |             __asm ("ldrd r2, r3, [r6]");
    0x00074f58 mov r5, r0                                        |             r5 = r0;
    0x00074f5a mov r4, r1                                        |             r4 = r1;
    0x00074f5c cmp r2, r0                                        |             
    0x00074f5e sbcs r3, r1                                       |             __asm ("sbcs r3, r1");
                                                                 |             if (r2 >= r0) {
    0x00074f60 bhs 0x74f90                                       |                 goto label_3;
                                                                 |             }
    0x00074f62 bl 0x70bf8                                        |             r0 = fcn_00070bf8 ();
    0x00074f66 cmp r0, 6                                         |             
                                                                 |             if (r0 > 6) {
    0x00074f68 ble 0x74f84                                       |                 
    0x00074f6a ldr r2, [sp, 0x10]                                |                 r2 = var_10h;
    0x00074f6c movs r1, 0                                        |                 r1 = 0;
    0x00074f6e ldr r3, [r7]                                      |                 r3 = *(r7);
    0x00074f70 movs r0, 7                                        |                 r0 = 7;
    0x00074f72 str r2, [sp, 4]                                   |                 var_4h_3 = r2;
    0x00074f74 ldr r2, [sp, 0x14]                                |                 r2 = var_14h;
    0x00074f76 str r3, [sp, 8]                                   |                 var_8h = r3;
    0x00074f78 movw r3, 0x2e3                                    |                 r3 = 0x2e3;
    0x00074f7c str r2, [sp]                                      |                 *(sp) = r2;
    0x00074f7e mov r2, fp                                        |                 r2 = fp;
    0x00074f80 bl 0x71448                                        |                 fcn_00071448 ();
                                                                 |             }
    0x00074f84 cmp.w r8, 0                                       |             
                                                                 |             if (r8 == 0) {
    0x00074f88 beq 0x74fb4                                       |                 goto label_4;
                                                                 |             }
    0x00074f8a mov sl, r8                                        |             sl = r8;
    0x00074f8c strd r5, r4, [r6]                                 |             __asm ("strd r5, r4, [r6]");
                                                                 |         }
                                                                 | label_3:
    0x00074f90 ldr r0, [r7, 4]!                                  |         r0 = *((r7 += 4));
    0x00074f94 cmp r0, 0                                         |         
    0x00074f96 bne 0x74f44                                       |         
                                                                 |     } while (r0 != 0);
                                                                 |     do {
                                                                 | label_0:
    0x00074f98 ldr r2, [pc, 0x54]                                |         
    0x00074f9a ldr r3, [pc, 0x40]                                |         r3 = *(0x74fde);
    0x00074f9c add r2, pc                                        |         r2 = 0xe9f90;
    0x00074f9e ldr r3, [r2, r3]                                  |         r3 = *(0xe9f90);
    0x00074fa0 ldr r2, [r3]                                      |         r2 = *(0xe9f90);
    0x00074fa2 ldr r3, [sp, 0x84]                                |         r3 = var_84h;
    0x00074fa4 eors r2, r3                                       |         r2 ^= r3;
    0x00074fa6 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00074faa bne 0x74fd4                                       |             goto label_5;
                                                                 |         }
    0x00074fac mov r0, sl                                        |         r0 = sl;
    0x00074fae add sp, 0x8c                                      |         
    0x00074fb0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_4:
    0x00074fb4 mov.w sl, 1                                       |         sl = 1;
    0x00074fb8 b 0x74f98                                         |         
                                                                 |     } while (1);
                                                                 | label_1:
    0x00074fba ldr r1, [pc, 0x38]                                |     
    0x00074fbc movw r2, 0x2cf                                    |     r2 = 0x2cf;
    0x00074fc0 ldr r3, [pc, 0x34]                                |     
    0x00074fc2 ldr r0, [pc, 0x38]                                |     
    0x00074fc4 add r1, pc                                        |     r1 = 0xe9fbe;
    0x00074fc6 add r3, pc                                        |     r3 = 0xe9fc2;
    0x00074fc8 adds r1, 7                                        |     r1 += 7;
    0x00074fca add r0, pc                                        |     r0 = 0xe9fcc;
    0x00074fcc bl 0x71518                                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_2:
    0x00074fd0 mov sl, r0                                        |     sl = r0;
    0x00074fd2 b 0x74f98                                         |     goto label_0;
                                                                 | label_5:
    0x00074fd4 blx 0x927c                                        |     fprintf_chk ()
    0x00074fd8 subs r3, 0xcc                                     |     r3 -= 0xcc;
    0x00074fda movs r5, r0                                       |     r5 = r0;
    0x00074fdc lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x00074fde movs r0, r0                                       |     
    0x00074fe0 lsrs r6, r4, 0x13                                 |     r6 = r4 >> 0x13;
    0x00074fe2 movs r3, r0                                       |     r3 = r0;
    0x00074fe4 lsrs r0, r1, 0x13                                 |     r0 = r1 >> 0x13;
    0x00074fe6 movs r3, r0                                       |     r3 = r0;
    0x00074fe8 lsrs r4, r2, 0x12                                 |     r4 = r2 >> 0x12;
    0x00074fea movs r3, r0                                       |     r3 = r0;
    0x00074fec lsrs r4, r6, 0x1b                                 |     r4 = r6 >> 0x1b;
    0x00074fee movs r3, r0                                       |     r3 = r0;
    0x00074ff0 subs r3, 0x28                                     |     r3 -= 0x28;
    0x00074ff2 movs r5, r0                                       |     r5 = r0;
    0x00074ff4 lsrs r0, r1, 0x10                                 |     r0 = r1 >> 0x10;
    0x00074ff6 movs r3, r0                                       |     r3 = r0;
    0x00074ff8 lsrs r2, r0, 0x16                                 |     r2 = r0 >> 0x16;
    0x00074ffa movs r3, r0                                       |     r3 = r0;
    0x00074ffc lsrs r2, r4, 0x10                                 |     r2 = r4 >> 0x10;
    0x00074ffe movs r3, r0                                       |     r3 = r0;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x75130 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00075130 ()                              | void fcn_00075130 (uint32_t arg1) {
                                                         |     int16_t var_14h;
                                                         |     int16_t var_4h;
                                                         |     int16_t var_8h;
                                                         |     int16_t var_ch;
                                                         |     int16_t var_0h;
                                                         |     r0 = arg1;
    0x00075130 blmi 0xc879f4                             |     __asm ("blmi aav.0x0005398a");
    0x00075134 push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x00075138 sub sp, 0x14                              |     
    0x0007513a add r2, pc                                |     r2 += pc;
    0x0007513c ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x0007513e ldr r3, [r3]                              |     r3 = *(r3);
    0x00075140 str r3, [sp, 0xc]                         |     var_ch = r3;
    0x00075142 mov.w r3, 0                               |     r3 = 0;
    0x00075146 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00075148 beq 0x751d4                               |         goto label_2;
                                                         |     }
    0x0007514a ldrb r3, [r0]                             |     r3 = *(r0);
    0x0007514c mov r6, r0                                |     r6 = r0;
                                                         |     if (r3 == 0) {
    0x0007514e cbnz r3, 0x7516c                          |         
                                                         | label_0:
    0x00075150 ldr r2, [pc, 0xa4]                        |         
    0x00075152 ldr r3, [pc, 0xa0]                        |         r3 = *(0x751f6);
    0x00075154 add r2, pc                                |         r2 = 0xea350;
    0x00075156 ldr r3, [r2, r3]                          |         r3 = *(0xea350);
    0x00075158 ldr r2, [r3]                              |         r2 = *(0xea350);
    0x0007515a ldr r3, [sp, 0xc]                         |         r3 = var_ch;
    0x0007515c eors r2, r3                               |         r2 ^= r3;
    0x0007515e mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00075162 bne 0x751ea                               |             goto label_3;
                                                         |         }
    0x00075164 mov r0, r6                                |         r0 = r6;
    0x00075166 add sp, 0x14                              |         
    0x00075168 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
    0x0007516a strh r0, [r6, 0x1e]                       |         *((r6 + 0x1e)) = r0;
                                                         |     }
    0x0007516c cmp r3, 0x2f                              |     
    0x0007516e it ne                                     |     
                                                         |     if (r3 == 0x2f) {
    0x00075170 movne r4, r0                              |         r4 = r0;
                                                         |     }
                                                         |     if (r3 == 0x2f) {
    0x00075172 beq 0x751bc                               |         goto label_4;
                                                         |     }
                                                         | label_1:
    0x00075174 movs r5, 0                                |     r5 = 0;
    0x00075176 add.w r8, sp, 8                           |     r8 += var_8h;
    0x0007517a add r7, sp, 4                             |     r7 += var_4h;
    0x0007517c mov.w sb, 0x2f                            |     sb = 0x2f;
    0x0007517e lsrs r7, r5, 4                            |     r7 = r5 >> 4;
    0x00075180 str r4, [sp, 4]                           |     var_4h = r4;
    0x00075182 b 0x7519a                                 |     
                                                         |     while (r0 != 0) {
                                                         |         if (r5 != 0) {
    0x00075184 cbz r5, 0x7518a                           |             
    0x00075186 strb sb, [r4], 1                          |             *(r4) = sb;
                                                         |             r4++;
                                                         |         }
    0x0007518a cmp r2, 0                                 |         
                                                         |         if (r2 < 0) {
    0x0007518c blt 0x751c0                               |             goto label_5;
                                                         |         }
    0x0007518e mov r0, r4                                |         r0 = r4;
    0x00075190 ldr r1, [sp, 8]                           |         r1 = var_8h;
    0x00075192 add r4, r2                                |         r4 += r2;
    0x00075194 movs r5, 1                                |         r5 = 1;
    0x00075196 blx 0x9358                                |         fcn_00009358 ();
    0x0007519a mov r2, r8                                |         r2 = r8;
    0x0007519c movs r1, 1                                |         r1 = 1;
    0x0007519e mov r0, r7                                |         r0 = r7;
    0x000751a0 bl 0x75070                                |         r0 = fcn_00075070 (r0, r1, r2);
    0x000751a4 mov r2, r0                                |         r2 = r0;
    0x000751a6 cmp r0, 0                                 |         
    0x000751a8 bne 0x75184                               |         
                                                         |     }
    0x000751aa cmp r6, r4                                |     
    0x000751ac ittt eq                                   |     
                                                         |     if (r6 != r4) {
    0x000751ae moveq r4, r6                              |         r4 = r6;
                                                         |     }
                                                         |     if (r6 != r4) {
    0x000751b0 moveq r3, 0x2e                            |         r3 = 0x2e;
                                                         |     }
                                                         |     if (r6 != r4) {
    0x000751b2 strbeq r3, [r4], 1                        |         *(r4) = r3;
                                                         |         r4++;
                                                         |     }
    0x000751b6 movs r3, 0                                |     r3 = 0;
    0x000751b8 strb r3, [r4]                             |     *(r4) = r3;
    0x000751ba b 0x75150                                 |     goto label_0;
                                                         | label_4:
    0x000751bc adds r4, r6, 1                            |     r4 = r6 + 1;
    0x000751be b 0x75174                                 |     goto label_1;
                                                         | label_5:
    0x000751c0 ldr r5, [sp, 4]                           |     r5 = var_4h;
    0x000751c2 mov r0, r5                                |     r0 = r5;
    0x000751c4 blx 0x8f38                                |     fcn_00008f38 ();
    0x000751c8 mov r1, r5                                |     r1 = r5;
    0x000751ca adds r2, r0, 1                            |     r2 = r0 + 1;
    0x000751cc mov r0, r4                                |     r0 = r4;
    0x000751ce blx 0x9358                                |     fcn_00009358 ();
    0x000751d2 b 0x75150                                 |     goto label_0;
                                                         | label_2:
    0x000751d4 ldr r1, [pc, 0x24]                        |     
    0x000751d6 movw r2, 0x14f                            |     r2 = 0x14f;
    0x000751da ldr r3, [pc, 0x24]                        |     
    0x000751dc ldr r0, [pc, 0x24]                        |     
    0x000751de add r1, pc                                |     r1 = 0xea3de;
    0x000751e0 add r3, pc                                |     r3 = 0xea3e6;
    0x000751e2 adds r1, 7                                |     r1 += 7;
    0x000751e4 add r0, pc                                |     r0 = 0xea3ec;
    0x000751e6 bl 0x71518                                |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                         | label_3:
    0x000751ea blx 0x927c                                |     fprintf_chk ()
    0x000751ee nop                                       |     
    0x000751f0 subs r1, 0x8a                             |     r1 -= 0x8a;
    0x000751f2 movs r5, r0                               |     r5 = r0;
    0x000751f4 lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x000751f6 movs r0, r0                               |     
    0x000751f8 subs r1, 0x70                             |     r1 -= 0x70;
    0x000751fa movs r5, r0                               |     r5 = r0;
    0x000751fc lsrs r6, r5, 7                            |     r6 = r5 >> 7;
    0x000751fe movs r3, r0                               |     r3 = r0;
    0x00075200 lsrs r0, r5, 0xe                          |     r0 = r5 >> 0xe;
    0x00075202 movs r3, r0                               |     r3 = r0;
    0x00075204 strh r4, [r7, 0x28]                       |     *((r7 + 0x28)) = r4;
    0x00075206 movs r2, r0                               |     r2 = r0;
                                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x75208 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00075208 ()                              | void fcn_00075208 (int16_t arg1, uint32_t arg2, int16_t arg3) {
                                                         |     uint32_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     int16_t var_ch;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_14h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
    0x00075208 mvnsmi lr, 0xb4000                        |     __asm ("mvnsmi lr, aav.0x000000ff");
    0x0007520c sub sp, 0x1c                              |     
    0x0007520e strd r1, r0, [sp]                         |     __asm ("strd r1, r0, [sp]");
    0x00075212 mov r3, r0                                |     r3 = r0;
    0x00075214 mov r5, r2                                |     r5 = r2;
    0x00075216 ldr r0, [pc, 0xc4]                        |     
    0x00075218 ldr r2, [pc, 0xc4]                        |     r2 = *(0x752e0);
    0x0007521a add r0, pc                                |     r0 = 0xea4fc;
    0x0007521c ldr r2, [r0, r2]                          |     
    0x0007521e ldr r2, [r2]                              |     r2 = *(0xea4fc);
    0x00075220 str r2, [sp, 0x14]                        |     var_14h = r2;
    0x00075222 mov.w r2, 0                               |     r2 = 0;
    0x00075224 lsls r0, r0, 8                            |     r0 <<= 8;
    0x00075226 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00075228 beq 0x752aa                               |         goto label_1;
                                                         |     }
    0x0007522a cmp r1, 0                                 |     
                                                         |     if (r1 == 0) {
    0x0007522c beq 0x752c0                               |         goto label_2;
                                                         |     }
    0x0007522e ldrb r2, [r3]                             |     r2 = *(r3);
    0x00075230 ldrb r3, [r1]                             |     r3 = *(r1);
    0x00075232 sub.w r2, r2, 0x2f                        |     r2 -= 0x2f;
    0x00075236 sub.w r3, r3, 0x2f                        |     r3 -= 0x2f;
    0x0007523a clz r2, r2                                |     r2 &= r2;
    0x0007523e clz r3, r3                                |     r3 &= r3;
    0x00075242 lsrs r2, r2, 5                            |     r2 >>= 5;
    0x00075244 lsrs r3, r3, 5                            |     r3 >>= 5;
    0x00075246 cmp r2, r3                                |     
                                                         |     if (r2 != r3) {
    0x00075248 bne 0x75284                               |         goto label_3;
                                                         |     }
    0x0007524a add r7, sp, 0xc                           |     r7 += var_ch;
    0x0007524c add r6, sp, 4                             |     r6 += var_4h;
    0x0007524e add.w sb, sp, 0x10                        |     sb += var_10h;
    0x00075252 mov r8, sp                                |     r8 = sp;
    0x00075254 b 0x75276                                 |     
                                                         |     while (r4 >= var_4h) {
    0x00075256 mov r2, sb                                |         r2 = sb;
    0x00075258 mov r1, r5                                |         r1 = r5;
    0x0007525a mov r0, r8                                |         r0 = r8;
    0x0007525c bl 0x75070                                |         r0 = fcn_00075070 (r0, r1, r2);
    0x00075260 cmp r0, 0                                 |         
                                                         |         if (r0 < 0) {
    0x00075262 blt 0x75284                               |             goto label_3;
                                                         |         }
                                                         |         if (r0 == 0) {
    0x00075264 beq 0x752a0                               |             goto label_4;
                                                         |         }
    0x00075266 cmp r4, r0                                |         
                                                         |         if (r4 != r0) {
    0x00075268 bne 0x75284                               |             goto label_3;
                                                         |         }
    0x0007526a ldrd r0, r1, [sp, 0xc]                    |         __asm ("ldrd r0, r1, [var_ch]");
    0x0007526e mov r2, r4                                |         r2 = r4;
    0x00075270 blx 0x94b8                                |         r0 = fcn_000094b8 ();
                                                         |         if (r0 != 0) {
    0x00075274 cbnz r0, 0x75284                          |             goto label_3;
                                                         |         }
    0x00075276 mov r2, r7                                |         r2 = r7;
    0x00075278 mov r1, r5                                |         r1 = r5;
    0x0007527a mov r0, r6                                |         r0 = r6;
    0x0007527c bl 0x75070                                |         fcn_00075070 (r0, r1, r2);
    0x00075280 subs r4, r0, 0                            |         r4 -= var_4h;
    0x00075282 bge 0x75256                               |         
                                                         |     }
                                                         | label_3:
    0x00075284 movs r0, 0                                |     r0 = 0;
                                                         |     do {
                                                         | label_0:
    0x00075286 ldr r2, [pc, 0x5c]                        |         
    0x00075288 ldr r3, [pc, 0x54]                        |         r3 = *(0x752e0);
    0x0007528a add r2, pc                                |         r2 = 0xea574;
    0x0007528c ldr r3, [r2, r3]                          |         r3 = *(0xea574);
    0x0007528e ldr r2, [r3]                              |         r2 = *(0xea574);
    0x00075290 ldr r3, [sp, 0x14]                        |         r3 = var_14h;
    0x00075292 eors r2, r3                               |         r2 ^= r3;
    0x00075294 mov.w r3, 0                               |         r3 = 0;
    0x00075296 lsls r0, r0, 0xc                          |         r0 <<= 0xc;
                                                         |         if (r0 != r0) {
    0x00075298 bne 0x752d6                               |             goto label_5;
                                                         |         }
    0x0007529a add sp, 0x1c                              |         
    0x0007529c pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_4:
    0x000752a0 ldr r0, [sp, 0xc]                         |         r0 = var_ch;
    0x000752a2 cmp r0, 0                                 |         
    0x000752a4 bne 0x75286                               |         
                                                         |     } while (r0 != 0);
    0x000752a6 ldr r0, [sp, 4]                           |     r0 = var_4h;
    0x000752a8 b 0x75286                                 |     goto label_0;
                                                         | label_1:
    0x000752aa ldr r1, [pc, 0x3c]                        |     
    0x000752ac movw r2, 0x1ab                            |     r2 = 0x1ab;
    0x000752b0 ldr r3, [pc, 0x38]                        |     
    0x000752b2 ldr r0, [pc, 0x3c]                        |     
    0x000752b4 add r1, pc                                |     r1 = 0xea5a2;
    0x000752b6 add r3, pc                                |     r3 = 0xea5a6;
    0x000752b8 adds r1, 7                                |     r1 += 7;
    0x000752ba add r0, pc                                |     r0 = 0xea5b0;
    0x000752bc bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
                                                         | label_2:
    0x000752c0 ldr r1, [pc, 0x30]                        |     
    0x000752c2 mov.w r2, 0x1ac                           |     r2 = 0x1ac;
    0x000752c6 ldr r3, [pc, 0x30]                        |     
    0x000752c8 ldr r0, [pc, 0x30]                        |     
    0x000752ca add r1, pc                                |     r1 = 0xea5c2;
    0x000752cc add r3, pc                                |     r3 = 0xea5ca;
    0x000752ce adds r1, 7                                |     r1 += 7;
    0x000752d0 add r0, pc                                |     r0 = 0xea5d0;
    0x000752d2 bl 0x71518                                |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                         | label_5:
    0x000752d6 blx 0x927c                                |     fprintf_chk ()
    0x000752da nop                                       |     
    0x000752dc subs r0, 0xaa                             |     r0 -= 0xaa;
    0x000752de movs r5, r0                               |     r5 = r0;
    0x000752e0 lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x000752e2 movs r0, r0                               |     
    0x000752e4 subs r0, 0x3a                             |     r0 -= 0x3a;
    0x000752e6 movs r5, r0                               |     r5 = r0;
    0x000752e8 lsrs r0, r3, 4                            |     r0 = r3 >> 4;
    0x000752ea movs r3, r0                               |     r3 = r0;
    0x000752ec lsrs r2, r7, 0xa                          |     r2 = r7 >> 0xa;
    0x000752ee movs r3, r0                               |     r3 = r0;
    0x000752f0 strh r6, [r4, 0x22]                       |     *((r4 + 0x22)) = r6;
    0x000752f2 movs r2, r0                               |     r2 = r0;
    0x000752f4 lsrs r2, r0, 4                            |     r2 = r0 >> 4;
    0x000752f6 movs r3, r0                               |     r3 = r0;
    0x000752f8 lsrs r4, r4, 0xa                          |     r4 >>= 0xa;
    0x000752fa movs r3, r0                               |     r3 = r0;
    0x000752fc ldrb r0, [r3, 0xc]                        |     r0 = *((r3 + 0xc));
    0x000752fe movs r2, r0                               |     r2 = r0;
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x75328 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00075328 ()                                      | void fcn_00075328 (uint32_t arg1, int16_t arg2) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00075328 blmi 0x1787c9c                                    |     __asm ("blmi aav.0x00053792");
    0x0007532c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00075330 sub sp, 0x24                                      |     
    0x00075332 add r2, pc                                        |     r2 += pc;
    0x00075334 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00075336 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00075338 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x0007533a mov.w r3, 0                                       |     r3 = 0;
    0x0007533e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00075340 beq 0x75442                                       |         goto label_4;
                                                                 |     }
    0x00075342 ldr r4, [r0]                                      |     r4 = *(r0);
    0x00075344 mov sb, r0                                        |     sb = r0;
    0x00075346 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00075348 beq 0x75400                                       |         goto label_5;
                                                                 |     }
    0x0007534a ldr r3, [pc, 0x154]                               |     
    0x0007534c movs r6, 0                                        |     r6 = 0;
    0x0007534e mov r5, r1                                        |     r5 = r1;
    0x00075350 mov r8, r0                                        |     r8 = r0;
    0x00075352 add.w fp, sp, 0x18                                |     
    0x00075356 str r6, [sp, 0xc]                                 |     var_ch = r6;
    0x00075358 add r3, pc                                        |     r3 = 0xea7fe;
    0x0007535a str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0007535c b 0x753d8                                         |     
                                                                 |     while (sl == 0x2f) {
    0x0007535e cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x00075360 beq 0x7541c                                       |             goto label_6;
                                                                 |         }
    0x00075362 mov.w r3, -1                                      |         r3 = -1;
    0x00075366 mov r2, r4                                        |         r2 = r4;
    0x00075368 mov r1, r5                                        |         r1 = r5;
    0x0007536a movs r0, 0                                        |         r0 = 0;
    0x0007536c bl 0x74ccc                                        |         r0 = fcn_00074ccc ();
    0x00075370 mov r7, r0                                        |         r7 = r0;
    0x00075372 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00075374 beq 0x7545c                                       |             goto label_7;
                                                                 |         }
    0x00075376 movs r3, 0                                        |         r3 = 0;
    0x00075378 movs r2, 0                                        |         r2 = 0;
    0x0007537a str r3, [sp]                                      |         *(sp) = r3;
    0x0007537c mov r1, r5                                        |         r1 = r5;
    0x0007537e mov r3, fp                                        |         r3 = fp;
    0x00075380 bl 0x6c85c                                        |         r0 = fcn_0006c85c (r0, r1, r2, r3);
    0x00075384 adds r2, r0, 2                                    |         r2 = r0 + 2;
    0x00075386 mov r3, r0                                        |         r3 = r0;
                                                                 |         if (r2 == r0) {
    0x00075388 beq 0x75446                                       |             goto label_8;
                                                                 |         }
    0x0007538a cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0007538c blt 0x75470                                       |             goto label_9;
                                                                 |         }
    0x0007538e mov r0, r7                                        |         r0 = r7;
    0x00075390 blx 0x8dac                                        |         fcn_00008dac ();
    0x00075394 ldr r7, [sp, 0x18]                                |         r7 = var_18h;
    0x00075396 movs r2, 1                                        |         r2 = 1;
    0x00075398 mov r1, r5                                        |         r1 = r5;
    0x0007539a mov r0, r7                                        |         r0 = r7;
    0x0007539c bl 0x75208                                        |         fcn_00075208 (r0, r1, r2);
    0x000753a0 str r0, [sp, 0x10]                                |         var_10h = r0;
    0x000753a2 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000753a4 beq 0x75486                                       |             goto label_10;
                                                                 |         }
    0x000753a6 ldr r1, [sp, 0x14]                                |         r1 = var_14h;
    0x000753a8 bl 0x803c0                                        |         fcn_000803c0 (r0, r1);
    0x000753ac ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x000753ae cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000753b0 beq 0x75462                                       |             goto label_11;
                                                                 |         }
                                                                 | label_3:
    0x000753b2 mov r0, r3                                        |         r0 = r3;
    0x000753b4 blx 0x9200                                        |         r0 = fcn_00009200 ();
    0x000753b8 mov sl, r0                                        |         sl = r0;
    0x000753ba mov r0, r7                                        |         r0 = r7;
    0x000753bc blx 0x8dac                                        |         fcn_00008dac ();
    0x000753c0 cmp.w sl, 0                                       |         
                                                                 |         if (sl == 0) {
    0x000753c4 beq 0x7545c                                       |             goto label_7;
                                                                 |         }
                                                                 | label_1:
    0x000753c6 mov r0, r4                                        |         r0 = r4;
    0x000753c8 str.w sl, [sb, r6, lsl 2]                         |         __asm ("str.w sl, [sb, r6, lsl 2]");
    0x000753cc blx 0x8dac                                        |         fcn_00008dac ();
    0x000753d0 ldr r4, [r8, 4]!                                  |         r4 = *((r8 += 4));
    0x000753d4 adds r6, 1                                        |         r6++;
                                                                 |         if (r4 == 0) {
    0x000753d6 cbz r4, 0x753f8                                   |             goto label_12;
                                                                 |         }
                                                                 | label_0:
    0x000753d8 ldrb.w sl, [r4]                                   |         sl = *(r4);
    0x000753dc cmp.w sl, 0x2f                                    |         
    0x000753e0 beq 0x7535e                                       |         
                                                                 |     }
    0x000753e2 mov r0, r4                                        |     r0 = r4;
    0x000753e4 movs r4, 0                                        |     r4 = 0;
    0x000753e6 blx 0x8dac                                        |     fcn_00008dac ();
                                                                 | label_2:
    0x000753ea mov r0, r4                                        |     r0 = r4;
    0x000753ec blx 0x8dac                                        |     fcn_00008dac ();
    0x000753f0 ldr r4, [r8, 4]!                                  |     r4 = *((r8 += 4));
    0x000753f4 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x000753f6 bne 0x753d8                                       |         goto label_0;
                                                                 |     }
                                                                 | label_12:
    0x000753f8 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000753fa str.w r4, [sb, r6, lsl 2]                         |     __asm ("str.w r4, [sb, r6, lsl 2]");
                                                                 |     if (r3 != 0) {
    0x000753fe cbnz r3, 0x75442                                  |         goto label_4;
                                                                 |     }
                                                                 | label_5:
    0x00075400 mov r0, sb                                        |     r0 = sb;
                                                                 |     do {
    0x00075402 ldr r2, [pc, 0xa0]                                |         
    0x00075404 ldr r3, [pc, 0x94]                                |         r3 = *(0x7549c);
    0x00075406 add r2, pc                                        |         r2 = 0xea8b0;
    0x00075408 ldr r3, [r2, r3]                                  |         r3 = *(0xea8b0);
    0x0007540a ldr r2, [r3]                                      |         r2 = *(0xea8b0);
    0x0007540c ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x0007540e eors r2, r3                                       |         r2 ^= r3;
    0x00075410 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00075414 bne 0x75494                                       |             goto label_13;
                                                                 |         }
    0x00075416 add sp, 0x24                                      |         
    0x00075418 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_6:
    0x0007541c mov r3, fp                                        |         r3 = fp;
    0x0007541e mov r1, r5                                        |         r1 = r5;
    0x00075420 mov r2, r5                                        |         r2 = r5;
    0x00075422 mov r0, r4                                        |         r0 = r4;
    0x00075424 str r5, [sp]                                      |         *(sp) = r5;
    0x00075426 bl 0x6c85c                                        |         r0 = fcn_0006c85c (r0, r1, r2, r3);
    0x0007542a adds r1, r0, 2                                    |         r1 = r0 + 2;
    0x0007542c mov r3, r0                                        |         r3 = r0;
                                                                 |         if (r1 == r0) {
    0x0007542e beq 0x75456                                       |             goto label_14;
                                                                 |         }
    0x00075430 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x00075432 blt 0x7546c                                       |             goto label_15;
                                                                 |         }
    0x00075434 mov r0, r4                                        |         r0 = r4;
    0x00075436 mov r4, r5                                        |         r4 = r5;
    0x00075438 blx 0x8dac                                        |         fcn_00008dac ();
    0x0007543c ldr.w sl, [sp, 0x18]                              |         sl = var_18h;
    0x00075440 b 0x753c6                                         |         goto label_1;
                                                                 | label_4:
    0x00075442 movs r0, 0                                        |         r0 = 0;
    0x00075444 b 0x75402                                         |         
                                                                 |     } while (1);
                                                                 | label_8:
    0x00075446 mov r0, r7                                        |     r0 = r7;
    0x00075448 str r4, [sp, 0x18]                                |     var_18h = r4;
    0x0007544a blx 0x8dac                                        |     fcn_00008dac ();
    0x0007544e movs r4, 0                                        |     r4 = 0;
    0x00075450 ldr.w sl, [sp, 0x18]                              |     sl = var_18h;
    0x00075454 b 0x753c6                                         |     goto label_1;
                                                                 | label_14:
    0x00075456 mov sl, r4                                        |     sl = r4;
    0x00075458 mov r4, r5                                        |     r4 = r5;
    0x0007545a b 0x753c6                                         |     goto label_1;
                                                                 | label_7:
    0x0007545c movs r3, 1                                        |     r3 = 1;
    0x0007545e str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00075460 b 0x753ea                                         |     goto label_2;
                                                                 | label_11:
    0x00075462 strb sl, [r3, -0x1]                               |     *((r3 - 0x1)) = sl;
    0x00075466 subs r3, 1                                        |     r3--;
    0x00075468 ldr r7, [sp, 0x18]                                |     r7 = var_18h;
    0x0007546a b 0x753b2                                         |     goto label_3;
                                                                 | label_15:
    0x0007546c mov r7, r4                                        |     r7 = r4;
    0x0007546e mov r4, r5                                        |     r4 = r5;
                                                                 | label_9:
    0x00075470 mov r0, r7                                        |     r0 = r7;
    0x00075472 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x00075474 blx 0x8dac                                        |     fcn_00008dac ();
    0x00075478 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0007547a adds r3, 0xc                                      |     r3 += 0xc;
    0x0007547c ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0007547e it eq                                             |     
                                                                 |     if (r3 != 0xc) {
    0x00075480 moveq r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x00075482 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00075484 b 0x753ea                                         |     goto label_2;
                                                                 | label_10:
    0x00075486 mov r0, r7                                        |     r0 = r7;
    0x00075488 mov sl, r4                                        |     sl = r4;
    0x0007548a blx 0x8dac                                        |     fcn_00008dac ();
    0x0007548e ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00075490 mov r4, r3                                        |     r4 = r3;
    0x00075492 b 0x753c6                                         |     goto label_1;
                                                                 | label_13:
    0x00075494 blx 0x927c                                        |     fprintf_chk ()
    0x00075498 adds r7, 0x92                                     |     r7 += 0x92;
    0x0007549a movs r5, r0                                       |     r5 = r0;
    0x0007549c lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0007549e movs r0, r0                                       |     
    0x000754a0 ldm r5!, {r3, r6, r7}                             |     r3 = *(r5!);
                                                                 |     r6 = *((r5! + 4));
                                                                 |     r7 = *((r5! + 8));
    0x000754a2 movs r1, r0                                       |     r1 = r0;
    0x000754a4 adds r6, 0xbe                                     |     r6 += 0xbe;
    0x000754a6 movs r5, r0                                       |     r5 = r0;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x754cc */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.000754cc ()                              | void fcn_000754cc (uint32_t arg1, uint32_t arg2) {
                                                         |     uint32_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     int16_t var_ch;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_14h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x000754cc blmi 0x1087dd0                            |     __asm ("blmi aav.0x000535ee");
    0x000754d0 push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x000754d4 sub sp, 0x1c                              |     
    0x000754d6 add r2, pc                                |     r2 += pc;
    0x000754d8 strd r1, r0, [sp]                         |     __asm ("strd r1, r0, [sp]");
    0x000754dc ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x000754de ldr r3, [r3]                              |     r3 = *(r3);
    0x000754e0 str r3, [sp, 0x14]                        |     var_14h = r3;
    0x000754e2 mov.w r3, 0                               |     r3 = 0;
    0x000754e4 lsls r0, r0, 0xc                          |     r0 <<= 0xc;
    0x000754e6 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x000754e8 beq 0x75590                               |         goto label_1;
                                                         |     }
    0x000754ea cmp r1, 0                                 |     
                                                         |     if (r1 == 0) {
    0x000754ec beq 0x755a6                               |         goto label_2;
                                                         |     }
    0x000754ee ldrb r3, [r0]                             |     r3 = *(r0);
    0x000754f0 ldrb r2, [r1]                             |     r2 = *(r1);
    0x000754f2 sub.w r3, r3, 0x2f                        |     r3 -= 0x2f;
    0x000754f6 sub.w r2, r2, 0x2f                        |     r2 -= 0x2f;
    0x000754fa clz r3, r3                                |     r3 &= r3;
    0x000754fe clz r2, r2                                |     r2 &= r2;
    0x00075502 lsrs r3, r3, 5                            |     r3 >>= 5;
    0x00075504 lsrs r2, r2, 5                            |     r2 >>= 5;
    0x00075506 cmp r2, r3                                |     
                                                         |     if (r2 > r3) {
    0x00075508 bhi 0x7558a                               |         goto label_3;
                                                         |     }
                                                         |     if (r2 <= r3) {
    0x0007550a blo 0x7556e                               |         goto label_4;
                                                         |     }
    0x0007550c add.w r8, sp, 0xc                         |     r8 += var_ch;
    0x00075510 add r7, sp, 4                             |     r7 += var_4h;
    0x00075512 add r6, sp, 0x10                          |     r6 += var_10h;
    0x00075514 mov r5, sp                                |     r5 = sp;
    0x00075516 b 0x75538                                 |     
                                                         |     while (r1 >= sb) {
    0x00075518 cmp.w sb, 0                               |         
                                                         |         if (sb == 0) {
    0x0007551c beq 0x755bc                               |             goto label_5;
                                                         |         }
                                                         |         if (r0 == 0) {
    0x0007551e cbz r0, 0x7556e                           |             goto label_4;
                                                         |         }
    0x00075520 cmp sb, r4                                |         
    0x00075522 mov r2, sb                                |         r2 = sb;
    0x00075524 ldrd r0, r1, [sp, 0xc]                    |         __asm ("ldrd r0, r1, [var_ch]");
    0x00075528 it ge                                     |         
                                                         |         if (sb < r4) {
    0x0007552a movge r2, r4                              |             r2 = r4;
                                                         |         }
    0x0007552c blx 0x8a78                                |         r0 = getauxval ();
                                                         |         if (r0 != 0) {
    0x00075530 cbnz r0, 0x75570                          |             goto label_0;
                                                         |         }
    0x00075532 cmp sb, r4                                |         
                                                         |         if (sb < r4) {
    0x00075534 blt 0x7558a                               |             goto label_3;
                                                         |         }
                                                         |         if (sb > r4) {
    0x00075536 bgt 0x7556e                               |             goto label_4;
                                                         |         }
    0x00075538 mov r2, r8                                |         r2 = r8;
    0x0007553a movs r1, 1                                |         r1 = 1;
    0x0007553c mov r0, r7                                |         r0 = r7;
    0x0007553e bl 0x75070                                |         fcn_00075070 (r0, r1, r2);
    0x00075542 mov r2, r6                                |         r2 = r6;
    0x00075544 mov sb, r0                                |         sb = r0;
    0x00075546 movs r1, 1                                |         r1 = 1;
    0x00075548 mov r0, r5                                |         r0 = r5;
    0x0007554a bl 0x75070                                |         r0 = fcn_00075070 (r0, r1, r2);
    0x0007554e orrs.w r1, sb, r0                         |         r1 = sb | r0;
    0x00075552 lsr.w r2, sb, 0x1f                        |         r2 = sb >> 0x1f;
    0x00075556 lsr.w r3, r0, 0x1f                        |         r3 = r0 >> 0x1f;
    0x0007555a mov r4, r0                                |         r4 = r0;
    0x0007555c bpl 0x75518                               |         
                                                         |     }
    0x0007555e cmp r2, r3                                |     
                                                         |     if (r2 < r3) {
    0x00075560 blt 0x7558a                               |         goto label_3;
                                                         |     }
                                                         |     if (r2 <= r3) {
    0x00075562 bgt 0x7556e                               |         
    0x00075564 ldrd r1, r0, [sp]                         |         __asm ("ldrd r1, r0, [sp]");
    0x00075568 blx 0x95e0                                |         fcn_000095e0 ();
    0x0007556c b 0x75570                                 |         
                                                         |     } else {
                                                         | label_4:
    0x0007556e movs r0, 1                                |         r0 = 1;
                                                         |     }
                                                         |     do {
                                                         | label_0:
    0x00075570 ldr r2, [pc, 0x60]                        |         
    0x00075572 ldr r3, [pc, 0x5c]                        |         r3 = *(0x755d2);
    0x00075574 add r2, pc                                |         r2 = 0xeab4c;
    0x00075576 ldr r3, [r2, r3]                          |         r3 = *(0xeab4c);
    0x00075578 ldr r2, [r3]                              |         r2 = *(0xeab4c);
    0x0007557a ldr r3, [sp, 0x14]                        |         r3 = var_14h;
    0x0007557c eors r2, r3                               |         r2 ^= r3;
    0x0007557e mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00075582 bne 0x755c6                               |             goto label_6;
                                                         |         }
    0x00075584 add sp, 0x1c                              |         
    0x00075586 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_3:
    0x0007558a mov.w r0, -1                              |         r0 = -1;
    0x0007558e b 0x75570                                 |         
                                                         |     } while (1);
                                                         | label_1:
    0x00075590 ldr r1, [pc, 0x44]                        |     
    0x00075592 movw r2, 0x1d5                            |     r2 = 0x1d5;
    0x00075596 ldr r3, [pc, 0x44]                        |     
    0x00075598 ldr r0, [pc, 0x44]                        |     
    0x0007559a add r1, pc                                |     r1 = 0xeab76;
    0x0007559c add r3, pc                                |     r3 = 0xeab7e;
    0x0007559e adds r1, 7                                |     r1 += 7;
    0x000755a0 add r0, pc                                |     r0 = 0xeab84;
    0x000755a2 bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
                                                         | label_2:
    0x000755a6 ldr r1, [pc, 0x3c]                        |     
    0x000755a8 mov.w r2, 0x1d6                           |     r2 = 0x1d6;
    0x000755ac ldr r3, [pc, 0x38]                        |     
    0x000755ae ldr r0, [pc, 0x3c]                        |     
    0x000755b0 add r1, pc                                |     r1 = 0xeab9a;
    0x000755b2 add r3, pc                                |     r3 = 0xeab9e;
    0x000755b4 adds r1, 7                                |     r1 += 7;
    0x000755b6 add r0, pc                                |     r0 = 0xeaba8;
    0x000755b8 bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
    0x000755ba invalid                                   |     
                                                         | label_5:
    0x000755bc subs r4, r0, 0                            |     r4 = r0 - 0;
    0x000755be it ne                                     |     
                                                         |     if (r4 == r0) {
    0x000755c0 movne r4, 1                               |         r4 = 1;
                                                         |     }
    0x000755c2 rsbs r0, r4, 0                            |     r0 = r4 - ;
    0x000755c4 b 0x75570                                 |     goto label_0;
                                                         | label_6:
    0x000755c6 blx 0x927c                                |     fprintf_chk ()
    0x000755ca nop                                       |     
    0x000755cc adds r5, 0xee                             |     r5 += 0xee;
    0x000755ce movs r5, r0                               |     r5 = r0;
    0x000755d0 lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x000755d2 movs r0, r0                               |     
    0x000755d4 adds r5, 0x50                             |     r5 += 0x50;
    0x000755d6 movs r5, r0                               |     r5 = r0;
    0x000755d8 lsls r2, r6, 0x18                         |     r2 = r6 << 0x18;
    0x000755da movs r3, r0                               |     r3 = r0;
    0x000755dc lsls r4, r0, 0x1f                         |     r4 = r0 << 0x1f;
    0x000755de movs r3, r0                               |     r3 = r0;
    0x000755e0 str r4, [r1, 0x70]                        |     *((r1 + 0x70)) = r4;
    0x000755e2 movs r1, r0                               |     r1 = r0;
    0x000755e4 lsls r4, r3, 0x18                         |     r4 = r3 << 0x18;
    0x000755e6 movs r3, r0                               |     r3 = r0;
    0x000755e8 lsls r6, r5, 0x1e                         |     r6 = r5 << 0x1e;
    0x000755ea movs r3, r0                               |     r3 = r0;
    0x000755ec str r6, [r0, 0x60]                        |     *((r0 + 0x60)) = r6;
    0x000755ee movs r1, r0                               |     r1 = r0;
                                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x75754 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00075754 ()              | void fcn_00075754 (int16_t arg1, int16_t arg2) {
                                         |     int16_t var_14h;
                                         |     int16_t var_0h;
                                         |     int16_t var_4h;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00075754 blmi 0x6c7fbc             |     __asm ("blmi aav.0x00053368");
    0x00075758 push {r4, r5, r6, lr}     |     
    0x0007575a sub sp, 8                 |     
    0x0007575c add r2, pc                |     r2 += pc;
    0x0007575e mov r4, r0                |     r4 = r0;
    0x00075760 ldr r3, [r2, r3]          |     r3 = *((r2 + r3));
    0x00075762 ldr r3, [r3]              |     r3 = *(r3);
    0x00075764 str r3, [sp, 4]           |     var_4h = r3;
    0x00075766 mov.w r3, 0               |     r3 = 0;
    0x00075768 lsls r0, r0, 0xc          |     r0 <<= 0xc;
                                         |     if (r0 == 0) {
    0x0007576a cbz r0, 0x75796           |         goto label_0;
                                         |     }
    0x0007576c ldrb r0, [r0]             |     r0 = *(r0);
                                         |     if (r0 == 0) {
    0x0007576e cbz r0, 0x75796           |         goto label_0;
                                         |     }
    0x00075770 mov r6, r1                |     r6 = r1;
    0x00075772 mov r5, sp                |     r5 = sp;
    0x00075774 str r4, [sp]              |     *(sp) = r4;
    0x00075776 b 0x75786                 |     
                                         |     while (r0 >= 0) {
    0x00075778 ldr r3, [sp]              |         r3 = *(sp);
    0x0007577a subs r2, r3, r4           |         r2 = r3 - r4;
    0x0007577c cmp.w r2, 0x1000          |         
                                         |         if (r2 >= 0x1000) {
    0x00075780 bge 0x75794               |             goto label_1;
                                         |         }
    0x00075782 ldrb r3, [r3]             |         r3 = *(r3);
                                         |         if (r3 == 0) {
    0x00075784 cbz r3, 0x757ae           |             goto label_2;
                                         |         }
    0x00075786 movs r2, 0                |         r2 = 0;
    0x00075788 mov r1, r6                |         r1 = r6;
    0x0007578a mov r0, r5                |         r0 = r5;
    0x0007578c bl 0x75070                |         r0 = fcn_00075070 (r0, r1, r2);
    0x00075790 cmp r0, 0                 |         
    0x00075792 bge 0x75778               |         
                                         |     }
                                         | label_1:
    0x00075794 movs r0, 0                |     r0 = 0;
                                         |     do {
                                         | label_0:
    0x00075796 ldr r2, [pc, 0x28]        |         
    0x00075798 ldr r3, [pc, 0x20]        |         r3 = *(0x757bc);
    0x0007579a add r2, pc                |         r2 = 0xeaf60;
    0x0007579c ldr r3, [r2, r3]          |         r3 = *(0xeaf60);
    0x0007579e ldr r2, [r3]              |         r2 = *(0xeaf60);
    0x000757a0 ldr r3, [sp, 4]           |         r3 = var_4h;
    0x000757a2 eors r2, r3               |         r2 ^= r3;
    0x000757a4 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x000757a8 bne 0x757b2               |             goto label_3;
                                         |         }
    0x000757aa add sp, 8                 |         
    0x000757ac pop {r4, r5, r6, pc}      |         
                                         | label_2:
    0x000757ae movs r0, 1                |         r0 = 1;
    0x000757b0 b 0x75796                 |         
                                         |     } while (1);
                                         | label_3:
    0x000757b2 blx 0x927c                |     fprintf_chk ()
    0x000757b6 nop                       |     
    0x000757b8 adds r3, 0x68             |     r3 += 0x68;
    0x000757ba movs r5, r0               |     r5 = r0;
    0x000757bc lsls r0, r0, 0x13         |     r0 <<= 0x13;
    0x000757be movs r0, r0               |     
    0x000757c0 adds r3, 0x2a             |     r3 += 0x2a;
    0x000757c2 movs r5, r0               |     r5 = r0;
                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x757c4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.000757c4 ()                              | void fcn_000757c4 (int16_t arg1, uint32_t arg2, int16_t arg3) {
                                                         |     uint32_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     int16_t var_ch;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_14h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
    0x000757c4 mvnsmi lr, 0xb4000                        |     __asm ("mvnsmi lr, aav.0x000000ff");
    0x000757c8 sub sp, 0x1c                              |     
    0x000757ca strd r1, r0, [sp]                         |     __asm ("strd r1, r0, [sp]");
    0x000757ce mov r3, r0                                |     r3 = r0;
    0x000757d0 mov sb, r2                                |     sb = r2;
    0x000757d2 ldr r0, [pc, 0x1b4]                       |     
    0x000757d4 ldr r2, [pc, 0x1b4]                       |     r2 = *(0x7598c);
    0x000757d6 add r0, pc                                |     r0 = 0xeb164;
    0x000757d8 ldr r2, [r0, r2]                          |     
    0x000757da ldr r2, [r2]                              |     r2 = *(0xeb164);
    0x000757dc str r2, [sp, 0x14]                        |     var_14h = r2;
    0x000757de mov.w r2, 0                               |     r2 = 0;
    0x000757e2 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x000757e4 beq.w 0x7591c                             |         goto label_7;
                                                         |     }
    0x000757e8 cmp r1, 0                                 |     
                                                         |     if (r1 == 0) {
    0x000757ea beq.w 0x75930                             |         goto label_8;
                                                         |     }
    0x000757ee cmp.w sb, 0                               |     
                                                         |     if (sb == 0) {
    0x000757f2 beq.w 0x75944                             |         goto label_9;
                                                         |     }
    0x000757f6 ldrb r3, [r3]                             |     r3 = *(r3);
    0x000757f8 cmp r3, 0x2f                              |     
                                                         |     if (r3 != 0x2f) {
    0x000757fa bne.w 0x75972                             |         goto label_6;
                                                         |     }
    0x000757fe ldrb r3, [r1]                             |     r3 = *(r1);
    0x00075800 cmp r3, 0x2f                              |     
                                                         |     if (r3 != 0x2f) {
    0x00075802 bne.w 0x75972                             |         goto label_6;
                                                         |     }
    0x00075806 add r6, sp, 0xc                           |     r6 += var_ch;
    0x00075808 add r5, sp, 4                             |     r5 += var_4h;
    0x0007580a add.w r8, sp, 0x10                        |     r8 += var_10h;
    0x0007580e mov r7, sp                                |     r7 = sp;
    0x00075810 b 0x75832                                 |     
                                                         |     while (r4 >= var_4h) {
    0x00075812 mov r2, r8                                |         r2 = r8;
    0x00075814 movs r1, 1                                |         r1 = 1;
    0x00075816 mov r0, r7                                |         r0 = r7;
    0x00075818 bl 0x75070                                |         r0 = fcn_00075070 (r0, r1, r2);
    0x0007581c cmp r0, 0                                 |         
                                                         |         if (r0 < 0) {
    0x0007581e blt 0x7587e                               |             goto label_10;
                                                         |         }
                                                         |         if (r4 == 0) {
    0x00075820 cbz r4, 0x75884                           |             goto label_11;
                                                         |         }
    0x00075822 cmp r4, r0                                |         
                                                         |         if (r4 != r0) {
    0x00075824 bne 0x75866                               |             goto label_12;
                                                         |         }
    0x00075826 ldrd r0, r1, [sp, 0xc]                    |         __asm ("ldrd r0, r1, [var_10h]");
    0x0007582a mov r2, r4                                |         r2 = r4;
    0x0007582c blx 0x94b8                                |         r0 = fcn_000094b8 ();
                                                         |         if (r0 != 0) {
    0x00075830 cbnz r0, 0x75866                          |             goto label_12;
                                                         |         }
    0x00075832 mov r2, r6                                |         r2 = r6;
    0x00075834 movs r1, 1                                |         r1 = 1;
    0x00075836 mov r0, r5                                |         r0 = r5;
    0x00075838 bl 0x75070                                |         fcn_00075070 (r0, r1, r2);
    0x0007583c subs r4, r0, 0                            |         r4 -= var_4h;
    0x0007583e bge 0x75812                               |         
                                                         |     }
                                                         | label_0:
    0x00075840 movs r5, 0                                |     r5 = 0;
                                                         | label_1:
    0x00075842 mov r0, r5                                |     r0 = r5;
    0x00075844 blx 0x8dac                                |     fcn_00008dac ();
    0x00075848 ldr r2, [pc, 0x144]                       |     
    0x0007584a ldr r3, [pc, 0x140]                       |     r3 = *(0x7598e);
    0x0007584c add r2, pc                                |     r2 = 0xeb1e0;
    0x0007584e ldr r3, [r2, r3]                          |     r3 = *(0xeb1e0);
    0x00075850 ldr r2, [r3]                              |     r2 = *(0xeb1e0);
    0x00075852 ldr r3, [sp, 0x14]                        |     r3 = var_14h;
    0x00075854 eors r2, r3                               |     r2 ^= r3;
    0x00075856 mov.w r3, 0                               |     r3 = 0;
                                                         |     if (r2 != r3) {
    0x0007585a bne.w 0x75982                             |         goto label_13;
                                                         |     }
    0x0007585e mov r0, r4                                |     r0 = r4;
    0x00075860 add sp, 0x1c                              |     
    0x00075862 pop.w {r4, r5, r6, r7, r8, sb, pc}        |     
                                                         | label_12:
    0x00075866 movs r7, 1                                |     r7 = 1;
    0x00075868 b 0x7586e                                 |     
                                                         |     if (r7 == 1) {
                                                         |         while (r4 >= var_4h) {
    0x0007586a beq 0x7589e                               |             goto label_14;
                                                         |         }
    0x0007586c adds r7, 1                                |         r7++;
    0x0007586e mov r2, r6                                |         r2 = r6;
    0x00075870 movs r1, 0                                |         r1 = 0;
    0x00075872 mov r0, r5                                |         r0 = r5;
    0x00075874 bl 0x75070                                |         fcn_00075070 (r0, r1, r2);
    0x00075878 subs r4, r0, 0                            |         r4 -= var_4h;
    0x0007587a bge 0x7586a                               |         
                                                         |     }
    0x0007587c b 0x75840                                 |     goto label_0;
                                                         | label_10:
    0x0007587e mov r4, r0                                |     r4 = r0;
    0x00075880 movs r5, 0                                |     r5 = 0;
    0x00075882 b 0x75842                                 |     goto label_1;
                                                         | label_11:
    0x00075884 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00075886 bne 0x75958                               |         goto label_15;
                                                         |     }
    0x00075888 ldr r0, [pc, 0x108]                       |     
    0x0007588a add r0, pc                                |     r0 = 0xeb222;
    0x0007588c blx 0x9200                                |     fcn_00009200 ();
    0x0007588e ldc p6, c4, [r8], 0x14                    |     __asm ("ldc p6, c4, [r8], 0x14");
    0x00075892 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00075894 beq 0x75964                               |         goto label_16;
                                                         |     }
                                                         | label_2:
    0x00075896 str.w r5, [sb]                            |     __asm ("str.w r5, [sb]");
    0x0007589a movs r5, 0                                |     r5 = 0;
    0x0007589c b 0x75842                                 |     goto label_1;
                                                         | label_14:
    0x0007589e ldr r6, [sp, 0x10]                        |     r6 = var_10h;
    0x000758a0 add.w r5, r7, r7, lsl 1                   |     r5 = r7 + (r7 << 1);
    0x000758a4 cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x000758a6 beq 0x7597a                               |         goto label_17;
                                                         |     }
    0x000758a8 ldrb.w r8, [r6]                           |     r8 = *(r6);
    0x000758ac cmp.w r8, 0                               |     
                                                         |     if (r8 == 0) {
    0x000758b0 beq 0x7596c                               |         goto label_18;
                                                         |     }
                                                         | label_4:
    0x000758b2 mov r0, r6                                |     r0 = r6;
    0x000758b4 cmp.w r8, 0                               |     
    0x000758b8 it ne                                     |     
                                                         |     if (r8 == 0) {
    0x000758ba addne r5, 1                               |         r5++;
                                                         |     }
    0x000758bc blx 0x8f38                                |     r0 = fcn_00008f38 ();
    0x000758c0 add r5, r0                                |     r5 += r0;
                                                         | label_5:
    0x000758c2 cmp r5, 1                                 |     
    0x000758c4 mov r0, r5                                |     r0 = r5;
    0x000758c6 it lo                                     |     
                                                         |     if (r5 >= 1) {
    0x000758c8 movlo r0, 1                               |         r0 = 1;
                                                         |     }
    0x000758ca blx 0x9234                                |     r0 = blkid_safe_string ();
    0x000758ce mov r5, r0                                |     r5 = r0;
    0x000758d0 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x000758d2 beq 0x75964                               |         goto label_16;
                                                         |     }
                                                         |     if (r7 == 0) {
    0x000758d4 cbz r7, 0x758ea                           |         goto label_19;
                                                         |     }
    0x000758d6 ldr r3, [pc, 0xc0]                        |     
    0x000758d8 add r3, pc                                |     r3 = 0xeb276;
    0x000758da ldrh r2, [r3]                             |     r2 = *(r3);
    0x000758dc ldrb r3, [r3, 2]                          |     r3 = *((r3 + 2));
                                                         |     do {
    0x000758de subs r7, 1                                |         r7--;
    0x000758e0 strh r2, [r0]                             |         *(r0) = r2;
    0x000758e2 strb r3, [r0, 2]                          |         *((r0 + 2)) = r3;
    0x000758e4 add.w r0, r0, 3                           |         r0 += 3;
    0x000758e8 bne 0x758de                               |         
                                                         |     } while (r7 != 1);
                                                         |     if (r6 == 0) {
                                                         | label_19:
    0x000758ea cbz r6, 0x7590e                           |         goto label_20;
                                                         |     }
    0x000758ec ldrb r3, [r6]                             |     r3 = *(r6);
                                                         |     if (r3 == 0) {
    0x000758ee cbz r3, 0x7590e                           |         goto label_20;
                                                         |     }
    0x000758f0 mov r1, r6                                |     r1 = r6;
    0x000758f2 blx 0x9050                                |     fcn_00009050 ();
    0x000758f6 mov r0, r5                                |     r0 = r5;
                                                         | label_3:
    0x000758f8 bl 0x75130                                |     fcn_00075130 (r0);
    0x000758fc movs r1, 1                                |     r1 = 1;
    0x000758fe mov r0, r5                                |     r0 = r5;
    0x00075900 bl 0x75754                                |     r0 = fcn_00075754 (r0, r1);
    0x00075904 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00075906 bne 0x75896                               |         goto label_2;
                                                         |     }
    0x00075908 mvn r4, 0x15                              |     r4 = ~0x15;
    0x0007590c b 0x75842                                 |     goto label_1;
                                                         | label_20:
    0x0007590e movs r3, 0                                |     r3 = 0;
    0x00075910 str.w r5, [sb]                            |     __asm ("str.w r5, [sb]");
    0x00075914 strb r3, [r0, -0x1]                       |     *((r0 - 0x1)) = r3;
    0x00075916 subs r4, 1                                |     r4--;
    0x00075918 mov r5, r3                                |     r5 = r3;
    0x0007591a b 0x75842                                 |     goto label_1;
                                                         | label_7:
    0x0007591c ldr r1, [pc, 0x7c]                        |     
    0x0007591e movs r2, 0x75                             |     r2 = 0x75;
    0x00075920 ldr r3, [pc, 0x7c]                        |     
    0x00075922 ldr r0, [pc, 0x80]                        |     
    0x00075924 add r1, pc                                |     r1 = 0xeb2c4;
    0x00075926 add r3, pc                                |     r3 = 0xeb2ca;
    0x00075928 adds r1, 7                                |     r1 += 7;
    0x0007592a add r0, pc                                |     r0 = 0xeb2d4;
    0x0007592c bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
                                                         | label_8:
    0x00075930 ldr r1, [pc, 0x74]                        |     
    0x00075932 movs r2, 0x76                             |     r2 = 0x76;
    0x00075934 ldr r3, [pc, 0x74]                        |     
    0x00075936 ldr r0, [pc, 0x78]                        |     
    0x00075938 add r1, pc                                |     r1 = 0xeb2e4;
    0x0007593a add r3, pc                                |     r3 = 0xeb2ea;
    0x0007593c adds r1, 7                                |     r1 += 7;
    0x0007593e add r0, pc                                |     r0 = 0xeb2f4;
    0x00075940 bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
                                                         | label_9:
    0x00075944 ldr r1, [pc, 0x6c]                        |     
    0x00075946 movs r2, 0x77                             |     r2 = 0x77;
    0x00075948 ldr r3, [pc, 0x6c]                        |     
    0x0007594a ldr r0, [pc, 0x70]                        |     
    0x0007594c add r1, pc                                |     r1 = 0xeb304;
    0x0007594e add r3, pc                                |     r3 = 0xeb30a;
    0x00075950 adds r1, 7                                |     r1 += 7;
    0x00075952 add r0, pc                                |     r0 = 0xeb314;
    0x00075954 bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
                                                         | label_15:
    0x00075958 ldr r0, [sp, 0x10]                        |     r0 = var_10h;
    0x0007595a blx 0x9200                                |     r0 = fcn_00009200 ();
    0x0007595e mov r5, r0                                |     r5 = r0;
    0x00075960 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00075962 bne 0x758f8                               |         goto label_3;
                                                         |     }
                                                         | label_16:
    0x00075964 movs r5, 0                                |     r5 = 0;
    0x00075966 mvn r4, 0xb                               |     r4 = ~0xb;
    0x0007596a b 0x75842                                 |     goto label_1;
                                                         | label_18:
    0x0007596c cmp.w r5, 0x1000                          |     
                                                         |     if (r5 < 0x1000) {
    0x00075970 bls 0x758b2                               |         goto label_4;
                                                         |     }
                                                         | label_6:
    0x00075972 movs r5, 0                                |     r5 = 0;
    0x00075974 mvn r4, 0x15                              |     r4 = ~0x15;
    0x00075978 b 0x75842                                 |     goto label_1;
                                                         | label_17:
    0x0007597a cmp.w r5, 0x1000                          |     
                                                         |     if (r5 < 0x1000) {
    0x0007597e bls 0x758c2                               |         goto label_5;
                                                         |     }
    0x00075980 b 0x75972                                 |     goto label_6;
                                                         | label_13:
    0x00075982 blx 0x927c                                |     fprintf_chk ()
    0x00075986 nop                                       |     
    0x00075988 adds r2, 0xee                             |     r2 += 0xee;
    0x0007598a movs r5, r0                               |     r5 = r0;
    0x0007598c lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x0007598e movs r0, r0                               |     
    0x00075990 adds r2, 0x78                             |     r2 += 0x78;
    0x00075992 movs r5, r0                               |     r5 = r0;
    0x00075994 cmp r4, 0xe2                              |     
    0x00075996 movs r1, r0                               |     r1 = r0;
    0x00075998 adds r2, 0xb4                             |     r2 += 0xb4;
    0x0007599a movs r1, r0                               |     r1 = r0;
    0x0007599c lsls r0, r5, 0xa                          |     r0 = r5 << 0xa;
    0x0007599e movs r3, r0                               |     r3 = r0;
    0x000759a0 lsls r2, r6, 0x11                         |     r2 = r6 << 0x11;
    0x000759a2 movs r3, r0                               |     r3 = r0;
    0x000759a4 lsls r6, r0, 0xc                          |     r6 = r0 << 0xc;
    0x000759a6 movs r3, r0                               |     r3 = r0;
    0x000759a8 lsls r4, r2, 0xa                          |     r4 = r2 << 0xa;
    0x000759aa movs r3, r0                               |     r3 = r0;
    0x000759ac lsls r6, r3, 0x11                         |     r6 = r3 << 0x11;
    0x000759ae movs r3, r0                               |     r3 = r0;
    0x000759b0 invalid                                   |     
                                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x759c0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000759c0 ()              | void fcn_000759c0 (int16_t arg1, int16_t arg2) {
                                         |     int16_t var_4h;
                                         |     int16_t var_8h;
                                         |     int16_t var_ch;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x000759c0 blmi 0x90824c             |     __asm ("blmi aav.0x000530fc");
    0x000759c4 push {r4, r5, r6, lr}     |     
    0x000759c6 mov r5, r1                |     r5 = r1;
    0x000759c8 add r2, pc                |     r2 += pc;
    0x000759ca sub sp, 0x10              |     
    0x000759cc movs r6, 0                |     r6 = 0;
    0x000759ce movs r1, 1                |     r1 = 1;
    0x000759d0 ldr r3, [r2, r3]          |     r3 = *((r2 + r3));
    0x000759d2 mov r4, r0                |     r4 = r0;
    0x000759d4 ldr r3, [r3]              |     r3 = *(r3);
    0x000759d6 str r3, [sp, 0xc]         |     var_ch = r3;
    0x000759d8 mov.w r3, 0               |     r3 = 0;
    0x000759dc str r6, [sp, 8]           |     var_8h = r6;
    0x000759de bl 0x75754                |     r0 = fcn_00075754 (r0, r1);
                                         |     if (r0 == 0) {
    0x000759e2 cbz r0, 0x75a30           |         goto label_1;
                                         |     }
    0x000759e4 mov r0, r4                |     r0 = r4;
    0x000759e6 add r3, sp, 4             |     r3 += var_4h;
    0x000759e8 add r2, sp, 8             |     r2 += var_8h;
    0x000759ea mov r1, r6                |     r1 = r6;
    0x000759ec bl 0x755f0                |     r0 = fcn_000755f0 (r0, r1, r2, r3);
    0x000759f0 subs r4, r0, 0            |     r4 = r0 - 0;
                                         |     if (r4 < r0) {
    0x000759f2 blt 0x75a16               |         goto label_0;
                                         |     }
                                         |     if (r4 == r0) {
    0x000759f4 beq 0x75a36               |         goto label_2;
                                         |     }
    0x000759f6 ldr r6, [sp, 4]           |     r6 = var_4h;
    0x000759f8 mov r1, r4                |     r1 = r4;
    0x000759fa mov r0, r6                |     r0 = r6;
    0x000759fc blx 0x8f2c                |     r0 = fcn_00008f2c ();
    0x00075a00 mov r3, r0                |     r3 = r0;
                                         |     if (r0 == 0) {
    0x00075a02 cbz r0, 0x75a40           |         goto label_3;
                                         |     }
    0x00075a04 mov r0, r6                |     r0 = r6;
    0x00075a06 str r3, [r5]              |     *(r5) = r3;
    0x00075a08 blx 0x8f38                |     r0 = fcn_00008f38 ();
    0x00075a0c cmp r4, r0                |     
    0x00075a0e ite hs                    |     
                                         |     if (r4 < r0) {
    0x00075a10 movhs r4, 0               |         r4 = 0;
                                         |     }
                                         |     if (r4 >= r0) {
    0x00075a12 movlo r4, 1               |         r4 = 1;
                                         |     }
    0x00075a14 lsls r4, r4, 0xe          |     r4 <<= 0xe;
                                         |     do {
                                         | label_0:
    0x00075a16 ldr r2, [pc, 0x38]        |         
    0x00075a18 ldr r3, [pc, 0x30]        |         r3 = *(0x75a4c);
    0x00075a1a add r2, pc                |         r2 = 0xeb470;
    0x00075a1c ldr r3, [r2, r3]          |         r3 = *(0xeb470);
    0x00075a1e ldr r2, [r3]              |         r2 = *(0xeb470);
    0x00075a20 ldr r3, [sp, 0xc]         |         r3 = var_ch;
    0x00075a22 eors r2, r3               |         r2 ^= r3;
    0x00075a24 mov.w r3, 0               |         r3 = 0;
    0x00075a26 lsls r0, r0, 0xc          |         r0 <<= 0xc;
                                         |         if (r0 != r0) {
    0x00075a28 bne 0x75a3c               |             goto label_4;
                                         |         }
    0x00075a2a mov r0, r4                |         r0 = r4;
    0x00075a2c add sp, 0x10              |         
    0x00075a2e pop {r4, r5, r6, pc}      |         
                                         | label_1:
    0x00075a30 mvn r4, 0x15              |         r4 = ~0x15;
    0x00075a34 b 0x75a16                 |         
                                         |     } while (1);
                                         | label_2:
    0x00075a36 mvn r4, 0x62              |     r4 = ~0x62;
    0x00075a3a b 0x75a16                 |     goto label_0;
                                         | label_4:
    0x00075a3c blx 0x927c                |     fprintf_chk ()
                                         | label_3:
    0x00075a40 mvn r4, 0xb               |     r4 = ~0xb;
    0x00075a44 b 0x75a16                 |     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/libexec/udevadm @ 0x75a54 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00075a54 ()                      | void fcn_00075a54 (int16_t arg1, int16_t arg2) {
                                                 |     int16_t var_4h;
                                                 |     int16_t var_8h;
                                                 |     int16_t var_ch;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00075a54 push {r4, r5, r6, r7, lr}         |     
    0x00075a56 mov r7, r1                        |     r7 = r1;
    0x00075a58 ldr r1, [pc, 0xb0]                |     
    0x00075a5a sub sp, 0x14                      |     
    0x00075a5c movs r6, 0                        |     r6 = 0;
    0x00075a5e add r3, sp, 4                     |     r3 += var_4h;
    0x00075a60 ldr r2, [pc, 0xac]                |     r2 = *(0x75b10);
    0x00075a62 mov r4, r0                        |     r4 = r0;
    0x00075a64 add r1, pc                        |     r1 = 0xeb574;
    0x00075a66 ldr r2, [r1, r2]                  |     
    0x00075a68 mov r1, r6                        |     r1 = r6;
    0x00075a6a ldr r2, [r2]                      |     r2 = *(0xeb574);
    0x00075a6c str r2, [sp, 0xc]                 |     var_ch = r2;
    0x00075a6e mov.w r2, 0                       |     r2 = 0;
    0x00075a72 add r2, sp, 8                     |     r2 += var_8h;
    0x00075a74 str r6, [sp, 8]                   |     var_8h = r6;
    0x00075a76 bl 0x755f0                        |     r0 = fcn_000755f0 (r0, r1, r2, r3);
    0x00075a7a subs r5, r0, 0                    |     r5 = r0 - 0;
    0x00075a7c it lt                             |     
                                                 |     if (r5 >= r0) {
    0x00075a7e movlt r4, r6                      |         r4 = r6;
                                                 |     }
                                                 |     if (r5 < r0) {
    0x00075a80 blt 0x75aac                       |         goto label_0;
                                                 |     }
                                                 |     if (r5 == r0) {
    0x00075a82 beq 0x75acc                       |         goto label_1;
                                                 |     }
    0x00075a84 ldr r1, [sp, 8]                   |     r1 = var_8h;
    0x00075a86 cmp r1, r4                        |     
                                                 |     if (r1 == r4) {
    0x00075a88 beq 0x75ae0                       |         goto label_2;
                                                 |     }
    0x00075a8a subs r1, r1, r4                   |     r1 -= r4;
    0x00075a8c mov r0, r4                        |     r0 = r4;
    0x00075a8e blx 0x8f2c                        |     r0 = fcn_00008f2c ();
    0x00075a92 mov r4, r0                        |     r4 = r0;
    0x00075a94 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x00075a96 beq 0x75b04                       |         goto label_3;
                                                 |     }
    0x00075a98 bl 0x75130                        |     fcn_00075130 (r0);
    0x00075a9c movs r1, 1                        |     r1 = 1;
    0x00075a9e mov r0, r4                        |     r0 = r4;
    0x00075aa0 bl 0x75754                        |     r0 = fcn_00075754 (r0, r1);
                                                 |     if (r0 == 0) {
    0x00075aa4 cbz r0, 0x75ada                   |         goto label_4;
                                                 |     }
    0x00075aa6 str r4, [r7]                      |     *(r7) = r4;
    0x00075aa8 mov r5, r6                        |     r5 = r6;
    0x00075aaa mov r4, r6                        |     r4 = r6;
                                                 |     do {
                                                 | label_0:
    0x00075aac mov r0, r4                        |         r0 = r4;
    0x00075aae blx 0x8dac                        |         fcn_00008dac ();
    0x00075ab2 ldr r2, [pc, 0x60]                |         
    0x00075ab4 ldr r3, [pc, 0x58]                |         r3 = *(0x75b10);
    0x00075ab6 add r2, pc                        |         r2 = 0xeb5d0;
    0x00075ab8 ldr r3, [r2, r3]                  |         r3 = *(0xeb5d0);
    0x00075aba ldr r2, [r3]                      |         r2 = *(0xeb5d0);
    0x00075abc ldr r3, [sp, 0xc]                 |         r3 = var_ch;
    0x00075abe eors r2, r3                       |         r2 ^= r3;
    0x00075ac0 mov.w r3, 0                       |         r3 = 0;
    0x00075ac2 lsls r0, r0, 0xc                  |         r0 <<= 0xc;
                                                 |         if (r0 != r0) {
    0x00075ac4 bne 0x75b00                       |             goto label_5;
                                                 |         }
    0x00075ac6 mov r0, r5                        |         r0 = r5;
    0x00075ac8 add sp, 0x14                      |         
    0x00075aca pop {r4, r5, r6, r7, pc}          |         
                                                 |         if (r4 == 0) {
                                                 | label_1:
    0x00075acc cbz r4, 0x75ada                   |             goto label_4;
                                                 |         }
    0x00075ace ldrb r3, [r4]                     |         r3 = *(r4);
    0x00075ad0 mov r4, r5                        |         r4 = r5;
    0x00075ad2 mvn r5, 0x62                      |         r5 = ~0x62;
    0x00075ad6 cmp r3, 0                         |         
    0x00075ad8 bne 0x75aac                       |         
                                                 |     } while (r3 != 0);
                                                 | label_4:
    0x00075ada mvn r5, 0x15                      |     r5 = ~0x15;
    0x00075ade b 0x75aac                         |     goto label_0;
                                                 | label_2:
    0x00075ae0 ldrb r3, [r4]                     |     r3 = *(r4);
    0x00075ae2 cmp r3, 0x2f                      |     
                                                 |     if (r3 == 0x2f) {
    0x00075ae4 bne 0x75af8                       |         
    0x00075ae6 ldr r0, [pc, 0x30]                |         
    0x00075ae8 add r0, pc                        |         r0 = 0xeb606;
    0x00075aea blx 0x9200                        |         fcn_00009200 ();
    0x00075aec invalid                           |         
    0x00075af0 mov r4, r6                        |         r4 = r6;
    0x00075af2 mov r5, r6                        |         r5 = r6;
    0x00075af4 str r0, [r7]                      |         *(r7) = r0;
    0x00075af6 b 0x75aac                         |         goto label_0;
                                                 |     }
    0x00075af8 mov r4, r6                        |     r4 = r6;
    0x00075afa mvn r5, 0x58                      |     r5 = ~0x58;
    0x00075afe b 0x75aac                         |     goto label_0;
                                                 | label_5:
    0x00075b00 blx 0x927c                        |     fprintf_chk ()
                                                 | label_3:
    0x00075b04 movs r4, 0                        |     r4 = 0;
    0x00075b06 mvn r5, 0xb                       |     r5 = ~0xb;
    0x00075b0a b 0x75aac                         |     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/libexec/udevadm @ 0x75b88 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00075b88 ()                      | void fcn_00075b88 (uint32_t arg1) {
                                                 |     int16_t var_4h;
                                                 |     int16_t var_4ch;
                                                 |     r0 = arg1;
    0x00075b88 ldr r2, [pc, 0xa8]                |     
    0x00075b8a ldr r3, [pc, 0xac]                |     r3 = *(0x75c3a);
    0x00075b8c push {r4, lr}                     |     
    0x00075b8e sub sp, 0x50                      |     
    0x00075b90 add r2, pc                        |     r2 = 0xeb7c8;
    0x00075b92 ldr r3, [r2, r3]                  |     
    0x00075b94 ldr r3, [r3]                      |     r3 = *(0xeb7c8);
    0x00075b96 str r3, [sp, 0x4c]                |     var_4ch = r3;
    0x00075b98 mov.w r3, 0                       |     r3 = 0;
    0x00075b9c cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x00075b9e beq 0x75c1a                       |         goto label_1;
                                                 |     }
    0x00075ba0 ldrb r3, [r0]                     |     r3 = *(r0);
    0x00075ba2 mov r4, r0                        |     r4 = r0;
    0x00075ba4 cmp r3, 0x2e                      |     
                                                 |     if (r3 != 0x2e) {
    0x00075ba6 beq 0x75bd6                       |         
    0x00075ba8 ldr r1, [pc, 0x90]                |         
    0x00075baa add r1, pc                        |         r1 = 0xeb7ea;
    0x00075bac blx 0x95e0                        |         r0 = fcn_000095e0 ();
                                                 |         if (r0 == 0) {
    0x00075bb0 cbz r0, 0x75bd6                   |             goto label_2;
                                                 |         }
    0x00075bb2 ldr r1, [pc, 0x8c]                |         
    0x00075bb4 mov r0, r4                        |         r0 = r4;
    0x00075bb6 add r1, pc                        |         r1 = 0xeb7fc;
    0x00075bb8 blx 0x95e0                        |         r0 = fcn_000095e0 ();
                                                 |         if (r0 == 0) {
    0x00075bbc cbz r0, 0x75bd6                   |             goto label_2;
                                                 |         }
    0x00075bbe ldr r1, [pc, 0x84]                |         
    0x00075bc0 mov r0, r4                        |         r0 = r4;
    0x00075bc2 add r1, pc                        |         r1 = 0xeb80c;
    0x00075bc4 blx 0x95e0                        |         fcn_000095e0 ();
    0x00075bc6 stc p1, c11, [ip, -0xa0]          |         __asm ("stc p1, c11, [ip, -0xa0]");
    0x00075bca ldr r1, [pc, 0x7c]                |         
    0x00075bcc mov r0, r4                        |         r0 = r4;
    0x00075bce add r1, pc                        |         r1 = 0xeb81c;
    0x00075bd0 bl 0x80428                        |         r0 = fcn_00080428 (r0, r1);
                                                 |         if (r0 == 0) {
    0x00075bd4 cbz r0, 0x75bf0                   |             goto label_3;
                                                 |         }
                                                 |     }
                                                 | label_2:
    0x00075bd6 movs r0, 1                        |     r0 = 1;
                                                 |     do {
                                                 | label_0:
    0x00075bd8 ldr r2, [pc, 0x70]                |         
    0x00075bda ldr r3, [pc, 0x5c]                |         r3 = *(0x75c3a);
    0x00075bdc add r2, pc                        |         r2 = 0xeb82c;
    0x00075bde ldr r3, [r2, r3]                  |         r3 = *(0xeb82c);
    0x00075be0 ldr r2, [r3]                      |         r2 = *(0xeb82c);
    0x00075be2 ldr r3, [sp, 0x4c]                |         r3 = var_4ch;
    0x00075be4 eors r2, r3                       |         r2 ^= r3;
    0x00075be6 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00075bea bne 0x75c30                       |             goto label_4;
                                                 |         }
    0x00075bec add sp, 0x50                      |         
    0x00075bee pop {r4, pc}                      |         
                                                 | label_3:
    0x00075bf0 mov r0, r4                        |         r0 = r4;
    0x00075bf2 movs r1, 0x2e                     |         r1 = 0x2e;
    0x00075bf4 blx 0x8c90                        |         r0 = fcn_00008c90 ();
    0x00075bf8 mov r4, r0                        |         r4 = r0;
    0x00075bfa cmp r0, 0                         |         
    0x00075bfc beq 0x75bd8                       |         
                                                 |     } while (r0 == 0);
    0x00075bfe ldr r1, [pc, 0x50]                |     
    0x00075c00 add r3, sp, 4                     |     r3 += var_4h;
    0x00075c02 movs r2, 0x48                     |     r2 = 0x48;
    0x00075c04 mov r0, r3                        |     r0 = r3;
    0x00075c06 add r1, pc                        |     r1 = 0xeb85c;
    0x00075c08 blx 0x8f9c                        |     fcn_00008f9c ();
    0x00075c0c adds r1, r4, 1                    |     r1 = r4 + 1;
    0x00075c0e bl 0x7af74                        |     fcn_0007af74 (r0, r1);
    0x00075c12 subs r0, 0                        |     
    0x00075c14 it ne                             |     
                                                 |     if (r0 == 0) {
    0x00075c16 movne r0, 1                       |         r0 = 1;
                                                 |     }
    0x00075c18 b 0x75bd8                         |     goto label_0;
                                                 | label_1:
    0x00075c1a ldr r1, [pc, 0x38]                |     
    0x00075c1c movw r2, 0x4b2                    |     r2 = 0x4b2;
    0x00075c20 ldr r3, [pc, 0x34]                |     
    0x00075c22 ldr r0, [pc, 0x38]                |     
    0x00075c24 add r1, pc                        |     r1 = 0xeb87e;
    0x00075c26 add r3, pc                        |     r3 = 0xeb882;
    0x00075c28 adds r1, 7                        |     r1 += 7;
    0x00075c2a add r0, pc                        |     r0 = 0xeb88c;
    0x00075c2c bl 0x71518                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                 | label_4:
    0x00075c30 blx 0x927c                        |     fprintf_chk ()
    0x00075c34 cmp r7, 0x34                      |     
    0x00075c36 movs r5, r0                       |     r5 = r0;
    0x00075c38 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x00075c3a movs r0, r0                       |     
    0x00075c3c lsls r6, r2, 2                    |     r6 = r2 << 2;
    0x00075c3e movs r3, r0                       |     r3 = r0;
    0x00075c40 lsls r6, r2, 2                    |     r6 = r2 << 2;
    0x00075c42 movs r3, r0                       |     r3 = r0;
    0x00075c44 lsls r6, r2, 2                    |     r6 = r2 << 2;
    0x00075c46 movs r3, r0                       |     r3 = r0;
    0x00075c48 lsls r2, r3, 2                    |     r2 = r3 << 2;
    0x00075c4a movs r3, r0                       |     r3 = r0;
    0x00075c4c cmp r6, 0xe8                      |     
    0x00075c4e movs r5, r0                       |     r5 = r0;
    0x00075c50 adds r7, 0x6e                     |     r7 += 0x6e;
    0x00075c52 movs r5, r0                       |     r5 = r0;
    0x00075c54 vaddl.u32 q0, d8, d2              |     __asm ("vaddl.u32 q0, d8, d2");
    0x00075c58 lsls r6, r5, 6                    |     r6 = r5 << 6;
    0x00075c5a movs r3, r0                       |     r3 = r0;
    0x00075c5c ldrb r2, [r0, 6]                  |     r2 = *((r0 + 6));
    0x00075c5e movs r1, r0                       |     r1 = r0;
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x76194 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00076194 ()                                      | void fcn_00076194 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00076194 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x00076198 sub sp, 0x1c                                      |     
    0x0007619a str r1, [sp, 4]                                   |     var_4h = r1;
    0x0007619c mov r6, r2                                        |     r6 = r2;
    0x0007619e mov r5, r0                                        |     r5 = r0;
    0x000761a0 add.w r8, sp, 0x10                                |     r8 += var_10h;
    0x000761a2 lsrs r0, r2, 0x20                                 |     r0 = r2 >> 0x20;
    0x000761a4 ldr r1, [pc, 0xb4]                                |     
    0x000761a6 add.w sl, sp, 0xc                                 |     sl += var_ch;
    0x000761aa ldr r2, [pc, 0xb4]                                |     r2 = *(0x76262);
    0x000761ac mov.w sb, 0                                       |     sb = 0;
    0x000761b0 ldr.w fp, [pc, 0xb0]                              |     
    0x000761b4 add r1, pc                                        |     r1 = 0xec414;
    0x000761b6 ldr r3, [r0]                                      |     r3 = *(r0);
    0x000761b8 ldr r2, [r1, r2]                                  |     
    0x000761ba add fp, pc                                        |     fp = 0xec422;
    0x000761bc ldr r2, [r2]                                      |     r2 = *(0xec414);
    0x000761be str r2, [sp, 0x14]                                |     var_14h = r2;
    0x000761c0 mov.w r2, 0                                       |     r2 = 0;
    0x000761c4 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x000761c6 movs r3, 0xa1                                     |     r3 = 0xa1;
    0x000761c8 movs r2, 0                                        |     r2 = 0;
    0x000761ca mov r1, r8                                        |     r1 = r8;
    0x000761cc mov r0, sl                                        |     r0 = sl;
    0x000761ce str.w sb, [sp, 0x10]                              |     __asm ("str.w sb, [var_10h]");
    0x000761d2 bl 0x695ac                                        |     fcn_000695ac (r0, r1, r2, r3);
    0x000761d6 subs r4, r0, 0                                    |     r4 -= var_ch;
                                                                 |     if (r4 < var_ch) {
    0x000761d8 blt 0x76242                                       |         goto label_3;
                                                                 |     }
    0x000761da ldr r7, [sp, 0x10]                                |     r7 = var_10h;
                                                                 |     if (r4 == var_ch) {
    0x000761dc beq 0x76246                                       |         goto label_4;
                                                                 |     }
    0x000761de mov r1, fp                                        |     r1 = fp;
    0x000761e0 mov r0, r7                                        |     r0 = r7;
    0x000761e2 bl 0x803c0                                        |     r0 = fcn_000803c0 (r0, r1);
    0x000761e6 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r0 == 0) {
    0x000761e8 cbz r0, 0x76222                                   |         goto label_5;
                                                                 |     }
    0x000761ea bl 0x7e874                                        |     r0 = fcn_0007e874 ();
                                                                 |     if (r0 == 0) {
    0x000761ee cbz r0, 0x7622e                                   |         goto label_6;
                                                                 |     }
    0x000761f0 lsls r2, r6, 0x1f                                 |     r2 = r6 << 0x1f;
                                                                 |     if (r2 < r6) {
    0x000761f2 bmi 0x76236                                       |         goto label_7;
                                                                 |     }
                                                                 | label_0:
    0x000761f4 ldr r7, [sp, 0x10]                                |     r7 = var_10h;
                                                                 |     do {
    0x000761f6 ldr r2, [sp, 0xc]                                 |         r2 = var_ch;
    0x000761f8 movs r0, 0                                        |         r0 = 0;
    0x000761fa ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x000761fc movs r4, 1                                        |         r4 = 1;
    0x000761fe str r2, [r5]                                      |         *(r5) = r2;
    0x00076200 str r7, [r3]                                      |         *(r3) = r7;
                                                                 | label_1:
    0x00076202 blx 0x8dac                                        |         fcn_00008dac ();
                                                                 | label_2:
    0x00076206 ldr r2, [pc, 0x60]                                |         
    0x00076208 ldr r3, [pc, 0x54]                                |         r3 = *(0x76260);
    0x0007620a add r2, pc                                        |         r2 = 0xec478;
    0x0007620c ldr r3, [r2, r3]                                  |         r3 = *(0xec478);
    0x0007620e ldr r2, [r3]                                      |         r2 = *(0xec478);
    0x00076210 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x00076212 eors r2, r3                                       |         r2 ^= r3;
    0x00076214 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00076218 bne 0x76256                                       |             goto label_8;
                                                                 |         }
    0x0007621a mov r0, r4                                        |         r0 = r4;
    0x0007621c add sp, 0x1c                                      |         
    0x0007621e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_5:
    0x00076222 lsls r3, r6, 0x1d                                 |         r3 = r6 << 0x1d;
    0x00076224 bpl 0x761f6                                       |         
                                                                 |     } while (r3 >= r6);
    0x00076226 bl 0x7e874                                        |     r0 = fcn_0007e874 ();
    0x0007622a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0007622c beq 0x761f4                                       |         goto label_0;
                                                                 |     }
                                                                 | label_6:
    0x0007622e ldr r0, [sp, 0x10]                                |     r0 = var_10h;
    0x00076230 blx 0x8dac                                        |     fcn_00008dac ();
    0x00076232 ldc p7, c14, [ip, 0x31c]!                         |     __asm ("ldc p7, c14, aav.0x000000ff!");
                                                                 | label_7:
    0x00076236 mov r1, r4                                        |     r1 = r4;
    0x00076238 mov r0, r8                                        |     r0 = r8;
    0x0007623a bl 0x7adac                                        |     fcn_0007adac (r0, r1);
    0x0007623e subs r4, r0, 0                                    |     r4 -= var_10h;
                                                                 |     if (r4 >= var_10h) {
    0x00076240 bge 0x761f4                                       |         goto label_0;
                                                                 |     }
                                                                 | label_3:
    0x00076242 ldr r0, [sp, 0x10]                                |     r0 = var_10h;
    0x00076244 b 0x76202                                         |     goto label_1;
                                                                 | label_4:
    0x00076246 mov r0, r7                                        |     r0 = r7;
    0x00076248 blx 0x8dac                                        |     fcn_00008dac ();
    0x0007624c ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0007624e str r3, [r5]                                      |     *(r5) = r3;
    0x00076250 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x00076252 str r4, [r3]                                      |     *(r3) = r4;
    0x00076254 b 0x76206                                         |     goto label_2;
                                                                 | label_8:
    0x00076256 blx 0x927c                                        |     fprintf_chk ()
    0x0007625a nop                                               |     
    0x0007625c cmp r1, 0x10                                      |     
    0x0007625e movs r5, r0                                       |     r5 = r0;
    0x00076260 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x00076262 movs r0, r0                                       |     
    0x00076264 pop {r1, r2, r4}                                  |     
    0x00076266 movs r1, r0                                       |     r1 = r0;
    0x00076268 cmp r0, 0xba                                      |     
    0x0007626a movs r5, r0                                       |     r5 = r0;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7626c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0007626c ()                                  | void fcn_0007626c (int16_t arg1) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_10h;
                                                             |     int16_t var_14h;
                                                             |     r0 = arg1;
    0x0007626c movwlt fp, 0x8570                             |     __asm ("movwlt fp, aav.0x000000ff");
    0x00076270 mov r4, r0                                    |     r4 = r0;
    0x00076272 ldr r0, [pc, 0x5c]                            |     
    0x00076274 add r0, pc                                    |     r0 = 0xec54a;
    0x00076276 blx 0x8de8                                    |     r0 = fcn_00008de8 ();
    0x0007627a mov r5, r0                                    |     r5 = r0;
                                                             |     if (r0 != 0) {
    0x0007627c cbz r0, 0x7628c                               |         
    0x0007627e blx 0x9200                                    |         r0 = fcn_00009200 ();
    0x00076282 mov r3, r0                                    |         r3 = r0;
                                                             |         if (r0 == 0) {
    0x00076284 cbz r0, 0x762c8                               |             goto label_3;
                                                             |         }
    0x00076286 movs r0, 0                                    |         r0 = 0;
    0x00076288 str r3, [r4]                                  |         *(r4) = r3;
    0x0007628a pop {r4, r5, r6, pc}                          |         
                                                             |     }
    0x0007628c bl 0x7fdf4                                    |     r0 = fcn_0007fdf4 ();
    0x00076290 cmp r0, 0                                     |     
                                                             |     if (r0 > 0) {
    0x00076292 ble 0x762a6                                   |         
    0x00076294 mov r3, r4                                    |         r3 = r4;
    0x00076296 mov r2, r5                                    |         r2 = r5;
    0x00076298 mov.w r1, -1                                  |         r1 = -1;
    0x0007629a adds r1, 0xff                                 |         r1 += 0xff;
    0x0007629c pop.w {r4, r5, r6, lr}                        |         
    0x000762a0 movs r0, 1                                    |         r0 = 1;
    0x000762a2 b.w 0x76f84                                   |         
                                                             |     } else {
    0x000762a6 ldr r0, [pc, 0x2c]                            |         
    0x000762a8 mov r1, r4                                    |         r1 = r4;
    0x000762aa pop.w {r4, r5, r6, lr}                        |         
    0x000762ae add r0, pc                                    |         r0 = 0xec588;
    0x000762b0 b.w 0x6b320                                   |         void (*0x6b320)() ();
    0x000762b4 ldr r1, [pc, 0x20]                            |         
    0x000762b6 movs r2, 0x15                                 |         r2 = 0x15;
    0x000762b8 ldr r3, [pc, 0x20]                            |         
    0x000762ba ldr r0, [pc, 0x24]                            |         
    0x000762bc add r1, pc                                    |         r1 = 0xec598;
    0x000762be add r3, pc                                    |         r3 = 0xec59e;
    0x000762c0 adds r1, 7                                    |         r1 += 7;
    0x000762c2 add r0, pc                                    |         r0 = 0xec5a8;
    0x000762c4 bl 0x71518                                    |         fcn_00071518 (r0, r1, r2, r3);
                                                             | label_3:
    0x000762c8 mvn r0, 0xb                                   |         r0 = ~0xb;
    0x000762cc pop {r4, r5, r6, pc}                          |         
                                                             |     }
    0x00076f84 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00076f88 sub sp, 0x18                                  |     
    0x00076f8a ldr r6, [pc, 0x188]                           |     
    0x00076f8c ldr r5, [pc, 0x188]                           |     r5 = *(0x77118);
    0x00076f8e add r6, pc                                    |     r6 = 0xee0a8;
    0x00076f90 ldr r5, [r6, r5]                              |     
    0x00076f92 ldr r5, [r5]                                  |     r5 = *(0xee0a8);
    0x00076f94 str r5, [sp, 0x14]                            |     var_14h = r5;
    0x00076f96 mov.w r5, 0                                   |     r5 = 0;
    0x00076f98 lsls r0, r0, 0x14                             |     r0 <<= 0x14;
    0x00076f9a movs r5, 0                                    |     r5 = 0;
    0x00076f9c str r5, [sp, 0xc]                             |     var_ch = r5;
    0x00076f9e cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00076fa0 beq.w 0x770ce                                 |         goto label_4;
                                                             |     }
    0x00076fa4 cmp r0, 0                                     |     
    0x00076fa6 mov r4, r0                                    |     r4 = r0;
                                                             |     if (r0 < 0) {
    0x00076fa8 blt.w 0x770e2                                 |         goto label_5;
                                                             |     }
    0x00076fac mov r7, r3                                    |     r7 = r3;
    0x00076fae add r3, sp, 0x10                              |     r3 += var_10h;
    0x00076fb0 str r3, [sp]                                  |     *(sp) = r3;
    0x00076fb2 add r3, sp, 0xc                               |     r3 += var_ch;
    0x00076fb4 mov sb, r1                                    |     sb = r1;
    0x00076fb6 mov r6, r2                                    |     r6 = r2;
    0x00076fb8 bl 0x76e40                                    |     fcn_00076e40 (r0, r1, r2, r3);
    0x00076fba vcge.f32 d17, d2, d5                          |     __asm ("vcge.f32 d17, d2, d5");
    0x00076fbe it lt                                         |     
                                                             |     if (r0 >= 0) {
    0x00076fc0 ldrlt r8, [sp, 0xc]                           |         r8 = var_ch;
                                                             |     }
                                                             |     if (r0 < 0) {
    0x00076fc4 blt 0x77022                                   |         goto label_0;
                                                             |     }
    0x00076fc6 tst.w r6, 0xc                                 |     
    0x00076fca and sl, r6, 2                                 |     sl = r6 & 2;
                                                             |     if ((r6 & 0xc) == 0) {
    0x00076fce beq 0x77044                                   |         goto label_6;
                                                             |     }
    0x00076fd0 lsrs r6, r6, 2                                |     r6 >>= 2;
    0x00076fd2 and r6, r6, 2                                 |     r6 &= 2;
    0x00076fd6 orr r6, r6, 4                                 |     r6 |= 4;
    0x00076fda cmp.w sl, 0                                   |     
                                                             |     if (sl != 0) {
    0x00076fde bne.w 0x770f6                                 |         goto label_7;
                                                             |     }
    0x00076fe2 ldrd r8, r1, [sp, 0xc]                        |     __asm ("ldrd r8, r1, [var_ch]");
    0x00076fe6 mov r0, r8                                    |     r0 = r8;
    0x00076fe8 bl 0x7b69c                                    |     r0 = fcn_0007b69c (r0, r1, r2);
    0x00076fec mov sb, r0                                    |     sb = r0;
    0x00076fee cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00076ff0 beq.w 0x7710a                                 |         goto label_8;
                                                             |     }
    0x00076ff4 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00076ff6 mov r5, sb                                    |     r5 = sb;
                                                             |     if (r0 != 0) {
    0x00076ff8 cbnz r0, 0x7700c                              |         goto label_9;
                                                             |     }
    0x00076ffa b 0x770b2                                     |     goto label_10;
                                                             |     do {
    0x00076ffc ldr r0, [r5]                                  |         r0 = *(r5);
    0x00076ffe blx 0x8dac                                    |         fcn_00008dac ();
    0x00077002 str r4, [r5]                                  |         *(r5) = r4;
    0x00077004 ldr r0, [r5, 4]!                              |         r0 = *((r5 += 4));
    0x00077008 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0007700a beq 0x770b2                                   |             goto label_10;
                                                             |         }
                                                             | label_9:
    0x0007700c mov r1, r6                                    |         r1 = r6;
    0x0007700e bl 0x691b4                                    |         r0 = fcn_000691b4 (r0, r1);
    0x00077012 mov r4, r0                                    |         r4 = r0;
    0x00077014 cmp r0, 0                                     |         
    0x00077016 bne 0x76ffc                                   |         
                                                             |     } while (r0 != 0);
                                                             | label_1:
    0x00077018 mov r0, sb                                    |     r0 = sb;
    0x0007701a mvn r5, 0xb                                   |     r5 = ~0xb;
    0x0007701e bl 0x7b004                                    |     fcn_0007b004 (r0);
                                                             | label_0:
    0x00077022 mov r0, r8                                    |     r0 = r8;
    0x00077024 blx 0x8dac                                    |     fcn_00008dac ();
    0x00077028 ldr r2, [pc, 0xf0]                            |     
    0x0007702a ldr r3, [pc, 0xec]                            |     r3 = *(0x7711a);
    0x0007702c add r2, pc                                    |     r2 = 0xee14c;
    0x0007702e ldr r3, [r2, r3]                              |     r3 = *(0xee14c);
    0x00077030 ldr r2, [r3]                                  |     r2 = *(0xee14c);
    0x00077032 ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x00077034 eors r2, r3                                   |     r2 ^= r3;
    0x00077036 mov.w r3, 0                                   |     r3 = 0;
                                                             |     if (r2 != r3) {
    0x0007703a bne 0x77110                                   |         goto label_11;
                                                             |     }
    0x0007703c mov r0, r5                                    |     r0 = r5;
    0x0007703e add sp, 0x18                                  |     
    0x00077040 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
                                                             | label_6:
    0x00077044 ldrd r8, r0, [sp, 0xc]                        |     __asm ("ldrd r8, r0, [var_ch]");
    0x00077048 cmp r0, 1                                     |     
    0x0007704a itttt ne                                      |     
                                                             |     if (r0 == 1) {
    0x0007704c subne r0, 2                                   |         r0 -= 2;
                                                             |     }
                                                             |     if (r0 == 1) {
    0x0007704e addne r4, r8, -1                              |         r4 = r8 + -1;
                                                             |     }
                                                             |     if (r0 == 1) {
    0x00077052 addne r0, r8                                  |         r0 += r8;
                                                             |     }
                                                             |     if (r0 != 1) {
    0x00077054 movs r2, 0x20                                 |         r2 = 0x20;
                                                             |     }
                                                             |     if (r2 == 0x20) {
    0x00077056 beq 0x77064                                   |         goto label_12;
                                                             |     }
                                                             |     do {
    0x00077058 ldrb r3, [r4, 1]!                             |         r3 = *((r4 += 1));
                                                             |         if (r3 == 0) {
    0x0007705c cbnz r3, 0x77060                              |             
    0x0007705e strb r2, [r4]                                 |             *(r4) = r2;
                                                             |         }
    0x00077060 cmp r0, r4                                    |         
    0x00077062 bne 0x77058                                   |         
                                                             |     } while (r0 != r4);
                                                             | label_12:
    0x00077064 ldr r1, [pc, 0xb8]                            |     
    0x00077066 mov r0, r8                                    |     r0 = r8;
    0x00077068 add r1, pc                                    |     r1 = 0xee18c;
    0x0007706a bl 0x7a954                                    |     fcn_0007a954 (r0, r1);
    0x0007706e cmp.w sl, 0                                   |     
    0x00077072 bne 0x770a4                                   |     
                                                             |     while (1) {
    0x00077074 clz r2, r5                                    |         r2 &= r5;
    0x00077078 mov r1, sb                                    |         r1 = sb;
    0x0007707a lsrs r2, r2, 5                                |         r2 >>= 5;
    0x0007707c mov r0, r8                                    |         r0 = r8;
    0x0007707e orr.w r2, sl, r2, lsl 1                       |         r2 = sl | (r2 << 1);
    0x00077082 bl 0x69194                                    |         r0 = fcn_00069194 (r0, r1, r2, r3, r4, r5, r6);
    0x00077086 mov r4, r0                                    |         r4 = r0;
    0x00077088 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0007708a beq 0x7710a                                   |             goto label_8;
                                                             |         }
    0x0007708c blx 0x8f38                                    |         r0 = fcn_00008f38 ();
    0x00077090 adds r1, r0, 1                                |         r1 = r0 + 1;
    0x00077092 mov r0, r4                                    |         r0 = r4;
    0x00077094 blx 0x94dc                                    |         r0 = fcn_000094dc ();
    0x00077098 cmp r0, 0                                     |         
    0x0007709a it ne                                         |         
                                                             |         if (r0 == 0) {
    0x0007709c movne r4, r0                                  |             r4 = r0;
                                                             |         }
                                                             | label_2:
    0x0007709e movs r5, 0                                    |         r5 = 0;
    0x000770a0 str r4, [r7]                                  |         *(r7) = r4;
    0x000770a2 b 0x77022                                     |         goto label_0;
    0x000770a4 bl 0x70190                                    |         r0 = fcn_00070190 (r0, r1, r2, r3);
    0x000770a8 eor sl, r0, 1                                 |         sl = r0 ^ 1;
    0x000770ac uxtb.w sl, sl                                 |         sl = (int8_t) sl;
    0x000770b0 b 0x77074                                     |         
                                                             |     }
                                                             | label_10:
    0x000770b2 ldr r1, [pc, 0x70]                            |     
    0x000770b4 movs r3, 0                                    |     r3 = 0;
    0x000770b6 mov r2, r3                                    |     r2 = r3;
    0x000770b8 mov r0, sb                                    |     r0 = sb;
    0x000770ba add r1, pc                                    |     r1 = 0xee1e4;
    0x000770bc bl 0x7b3b0                                    |     r0 = fcn_0007b3b0 (r0, r1, r2, r3, r4, r5);
    0x000770c0 mov r4, r0                                    |     r4 = r0;
    0x000770c2 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000770c4 beq 0x77018                                   |         goto label_1;
                                                             |     }
    0x000770c6 mov r0, sb                                    |     r0 = sb;
    0x000770c8 bl 0x7b004                                    |     fcn_0007b004 (r0);
    0x000770cc b 0x7709e                                     |     goto label_2;
                                                             | label_4:
    0x000770ce ldr r1, [pc, 0x58]                            |     
    0x000770d0 movs r2, 0xbe                                 |     r2 = 0xbe;
    0x000770d2 ldr r3, [pc, 0x58]                            |     
    0x000770d4 ldr r0, [pc, 0x58]                            |     r0 = *(0x77130);
    0x000770d6 add r1, pc                                    |     r1 = 0xee204;
    0x000770d8 add r3, pc                                    |     r3 = 0xee20a;
    0x000770da adds r1, 7                                    |     r1 += 7;
                                                             |     do {
    0x000770dc add r0, pc                                    |         r0 += pc;
    0x000770de bl 0x71518                                    |         fcn_00071518 (r0, r1, r2, r3);
                                                             | label_5:
    0x000770e2 ldr r1, [pc, 0x50]                            |         
    0x000770e4 movs r2, 0xbf                                 |         r2 = 0xbf;
    0x000770e6 ldr r3, [pc, 0x50]                            |         
    0x000770e8 ldr r0, [pc, 0x50]                            |         
    0x000770ea add r1, pc                                    |         r1 = 0xee224;
    0x000770ec add r3, pc                                    |         r3 = 0xee22a;
    0x000770ee adds r1, 7                                    |         r1 += 7;
    0x000770f0 add r0, pc                                    |         r0 = 0xee230;
    0x000770f2 bl 0x71518                                    |         fcn_00071518 (r0, r1, r2, r3);
                                                             | label_7:
    0x000770f6 ldr r1, [pc, 0x48]                            |         
    0x000770f8 movs r2, 0xd7                                 |         r2 = 0xd7;
    0x000770fa ldr r3, [pc, 0x48]                            |         
    0x000770fc ldr r0, [pc, 0x48]                            |         
    0x000770fe add r1, pc                                    |         r1 = 0xee244;
    0x00077100 add r3, pc                                    |         r3 = 0xee24a;
    0x00077102 adds r1, 7                                    |         r1 += 7;
    0x00077104 add r0, pc                                    |         r0 = 0xee250;
    0x00077106 bl 0x71518                                    |         fcn_00071518 (r0, r1, r2, r3);
    0x00077108 invalid                                       |         
                                                             | label_8:
    0x0007710a mvn r5, 0xb                                   |         r5 = ~0xb;
    0x0007710e b 0x77022                                     |         goto label_0;
                                                             | label_11:
    0x00077110 blx 0x927c                                    |         fprintf_chk ()
    0x00077114 subs r6, r6, r4                               |         r6 -= r4;
    0x00077116 movs r5, r0                                   |         r5 = r0;
    0x00077118 lsls r0, r0, 0x13                             |         r0 <<= 0x13;
    0x0007711a movs r0, r0                                   |         
    0x0007711c subs r0, r3, r2                               |         r0 = r3 - r2;
    0x0007711e movs r5, r0                                   |         r5 = r0;
    0x00077120 ldr.w r0, [r4]                                |         r0 = *(r4);
    0x00077124 bgt 0x770dc                                   |         
                                                             |     } while (r5 > r0);
    0x00077126 movs r2, r0                                   |     r2 = r0;
    0x00077128 vaddl.s16 q0, d14, d2                         |     __asm ("vaddl.s16 q0, d14, d2");
    0x0007712c subs.w r0, r4, 0x820000                       |     r0 = r4 - 0x820000;
    0x0007712e movs r2, r0                                   |     r2 = r0;
    0x00077130 rors r0, r5                                   |     __asm ("rors r0, r5");
    0x00077132 movs r1, r0                                   |     r1 = r0;
    0x00077134 vaddl.s8 q0, d10, d2                          |     __asm ("vaddl.s8 q0, d10, d2");
    0x00077138 sub.w r0, r0, 0x820000                        |     r0 -= 0x820000;
    0x0007713a movs r2, r0                                   |     r2 = r0;
    0x0007713c ldrsb r4, [r7, r6]                            |     r4 = *((r7 + r6));
    0x0007713e movs r2, r0                                   |     r2 = r0;
    0x00077140 invalid                                       |     
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x762e4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.000762e4 ()                                      | void fcn_000762e4 (int16_t arg1, uint32_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x000762e4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000762e8 mov r7, r2                                        |     r7 = r2;
    0x000762ea ldr r2, [pc, 0xb4]                                |     
    0x000762ec mov r5, r3                                        |     r5 = r3;
    0x000762ee sub sp, 0x14                                      |     
    0x000762f0 ldr r3, [pc, 0xb0]                                |     r3 = *(0x763a4);
    0x000762f2 add r2, pc                                        |     r2 = 0xec698;
    0x000762f4 ldr r3, [r2, r3]                                  |     
    0x000762f6 ldr r3, [r3]                                      |     r3 = *(0xec698);
    0x000762f8 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x000762fa mov.w r3, 0                                       |     r3 = 0;
    0x000762fe cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00076300 beq 0x76374                                       |         goto label_0;
                                                                 |     }
    0x00076302 ands r4, r5, 2                                    |     r4 = r5 & 2;
    0x00076306 itttt eq                                          |     
                                                                 |     if (r4 != r5) {
    0x00076308 moveq r6, r1                                      |         r6 = r1;
                                                                 |     }
                                                                 |     if (r4 != r5) {
    0x0007630a addeq sb, sp, 8                                   |         sb += var_8h;
                                                                 |     }
                                                                 |     if (r4 != r5) {
    0x0007630e addeq r8, sp, 4                                   |         r8 += var_4h;
                                                                 |     }
                                                                 |     if (r4 == r5) {
    0x00076312 str r0, [sp, 4]                                   |         var_4h = r0;
                                                                 |     }
                                                                 |     if (r4 == r5) {
    0x00076314 beq 0x7633c                                       |         goto label_1;
                                                                 |     }
    0x00076316 b 0x76388                                         |     goto label_2;
                                                                 |     if (r4 == r5) {
                                                                 |         do {
    0x00076318 beq 0x76352                                       |             goto label_3;
                                                                 |         }
    0x0007631a movs r1, 0x3d                                     |         r1 = 0x3d;
    0x0007631c mov r0, fp                                        |         r0 = fp;
    0x0007631e blx 0x8bb0                                        |         r0 = get_current_dir_name ();
    0x00076322 mov r1, r0                                        |         r1 = r0;
                                                                 |         if (r0 != 0) {
    0x00076324 cbz r0, 0x7632a                                   |             
    0x00076326 strb r4, [r1], 1                                  |             *(r1) = r4;
                                                                 |             r1++;
                                                                 |         }
    0x0007632a mov r2, r7                                        |         r2 = r7;
    0x0007632c mov r0, fp                                        |         r0 = fp;
    0x0007632e blx r6                                            |         r0 = uint32_t (*r6)(uint32_t, uint32_t) (r0, r2);
    0x00076330 subs.w sl, r0, 0                                  |         sl = r0 - 0;
                                                                 |         if (sl < r0) {
    0x00076334 blt 0x76352                                       |             goto label_3;
                                                                 |         }
    0x00076336 mov r0, fp                                        |         r0 = fp;
    0x00076338 blx 0x8dac                                        |         fcn_00008dac ();
                                                                 | label_1:
    0x0007633c mov r2, r5                                        |         r2 = r5;
    0x0007633e mov r1, sb                                        |         r1 = sb;
    0x00076340 mov r0, r8                                        |         r0 = r8;
    0x00076342 str r4, [sp, 8]                                   |         var_8h = r4;
    0x00076344 bl 0x76194                                        |         fcn_00076194 (r0, r1, r2);
    0x00076348 subs.w sl, r0, 0                                  |         sl -= var_4h;
    0x0007634c ldr.w fp, [sp, 8]                                 |         fp = var_8h;
    0x00076350 bge 0x76318                                       |         
                                                                 |     } while (sl >= var_4h);
                                                                 | label_3:
    0x00076352 mov r0, fp                                        |     r0 = fp;
    0x00076354 blx 0x8dac                                        |     fcn_00008dac ();
    0x00076358 ldr r2, [pc, 0x4c]                                |     
    0x0007635a ldr r3, [pc, 0x48]                                |     r3 = *(0x763a6);
    0x0007635c add r2, pc                                        |     r2 = 0xec708;
    0x0007635e ldr r3, [r2, r3]                                  |     r3 = *(0xec708);
    0x00076360 ldr r2, [r3]                                      |     r2 = *(0xec708);
    0x00076362 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00076364 eors r2, r3                                       |     r2 ^= r3;
    0x00076366 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 == r3) {
    0x0007636a bne 0x7639c                                       |         
    0x0007636c mov r0, sl                                        |         r0 = sl;
    0x0007636e add sp, 0x14                                      |         
    0x00076370 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_0:
    0x00076374 ldr r1, [pc, 0x34]                                |         
    0x00076376 movs r2, 0x55                                     |         r2 = 0x55;
    0x00076378 ldr r3, [pc, 0x34]                                |         
    0x0007637a ldr r0, [pc, 0x38]                                |         
    0x0007637c add r1, pc                                        |         r1 = 0xec72c;
    0x0007637e add r3, pc                                        |         r3 = 0xec732;
    0x00076380 adds r1, 7                                        |         r1 += 7;
    0x00076382 add r0, pc                                        |         r0 = 0xec73c;
    0x00076384 bl 0x71518                                        |         fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_2:
    0x00076388 ldr r1, [pc, 0x2c]                                |         r1 = *(0x763b8);
    0x0007638a movs r2, 0x59                                     |         r2 = 0x59;
    0x0007638c ldr r3, [pc, 0x2c]                                |         
    0x0007638e bics r2, r3                                       |         __asm ("bics r2, r3");
    0x00076390 movs r7, r0                                       |         r7 = r0;
    0x00076392 add r3, pc                                        |         r3 = 0xec752;
    0x00076394 adds r1, 7                                        |         r1 += 7;
    0x00076396 add r0, pc                                        |         r0 += pc;
    0x00076398 bl 0x71518                                        |         r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 |     }
    0x0007639c blx 0x927c                                        |     fprintf_chk ()
    0x000763a0 add r3, pc                                        |     r3 += pc;
    0x000763a2 movs r5, r0                                       |     r5 = r0;
    0x000763a4 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x000763a6 movs r0, r0                                       |     
    0x000763a8 movs r7, 0x68                                     |     r7 = 0x68;
    0x000763aa movs r5, r0                                       |     r5 = r0;
    0x000763ac invalid                                           |     
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x763c4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000763c4 ()                  | void fcn_000763c4 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x000763c4 invalid                       |     
    0x000763c8 ldr r1, [pc, 0x68]            |     
    0x000763ca mov r7, r2                    |     r7 = r2;
    0x000763cc sub sp, 0xc                   |     
    0x000763ce movs r3, 0                    |     r3 = 0;
    0x000763d0 ldr r2, [pc, 0x64]            |     r2 = *(0x76438);
    0x000763d2 add r1, pc                    |     r1 = 0xec80a;
    0x000763d4 ldr r2, [r1, r2]              |     
    0x000763d6 ldr r2, [r2]                  |     r2 = *(0xec80a);
    0x000763d8 str r2, [sp, 4]               |     var_4h = r2;
    0x000763da mov.w r2, 0                   |     r2 = 0;
    0x000763de str r3, [sp]                  |     *(sp) = r3;
                                             |     if (r0 != 0) {
    0x000763e0 cbz r0, 0x7641c               |         
    0x000763e2 mov r5, r0                    |         r5 = r0;
    0x000763e4 mov r0, sp                    |         r0 = sp;
    0x000763e6 bl 0x7626c                    |         fcn_0007626c (r0);
    0x000763ea subs r4, r0, 0                |         r4 -= var_0h;
                                             |         if (r4 >= var_0h) {
    0x000763ec blt 0x763fc                   |             
    0x000763ee ldr r0, [sp]                  |             r0 = *(sp);
    0x000763f0 mov r3, r7                    |             r3 = r7;
    0x000763f2 mov r2, r6                    |             r2 = r6;
    0x000763f4 mov r1, r5                    |             r1 = r5;
    0x000763f6 bl 0x762e4                    |             r0 = fcn_000762e4 (r0, r1, r2, r3);
    0x000763fa mov r4, r0                    |             r4 = r0;
                                             |         }
    0x000763fc ldr r0, [sp]                  |         r0 = *(sp);
    0x000763fe blx 0x8dac                    |         fcn_00008dac ();
    0x00076402 ldr r2, [pc, 0x38]            |         
    0x00076404 ldr r3, [pc, 0x30]            |         r3 = *(0x76438);
    0x00076406 add r2, pc                    |         r2 = 0xec848;
    0x00076408 ldr r3, [r2, r3]              |         r3 = *(0xec848);
    0x0007640a ldr r2, [r3]                  |         r2 = *(0xec848);
    0x0007640c ldr r3, [sp, 4]               |         r3 = var_4h;
    0x0007640e eors r2, r3                   |         r2 ^= r3;
    0x00076410 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00076414 bne 0x76430                   |             goto label_0;
                                             |         }
    0x00076416 mov r0, r4                    |         r0 = r4;
    0x00076418 add sp, 0xc                   |         
    0x0007641a pop {r4, r5, r6, r7, pc}      |         
                                             |     }
    0x0007641c ldr r1, [pc, 0x20]            |     
    0x0007641e movs r2, 0x76                 |     r2 = 0x76;
    0x00076420 ldr r3, [pc, 0x20]            |     
    0x00076422 ldr r0, [pc, 0x24]            |     
    0x00076424 add r1, pc                    |     r1 = 0xec868;
    0x00076426 add r3, pc                    |     r3 = 0xec86e;
    0x00076428 adds r1, 7                    |     r1 += 7;
    0x0007642a add r0, pc                    |     r0 = 0xec878;
    0x0007642c bl 0x71518                    |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                             | label_0:
    0x00076430 blx 0x927c                    |     fprintf_chk ()
    0x00076434 movs r6, 0xf2                 |     r6 = 0xf2;
    0x00076436 movs r5, r0                   |     r5 = r0;
    0x00076438 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x0007643a movs r0, r0                   |     
    0x0007643c movs r6, 0xbe                 |     r6 = 0xbe;
    0x0007643e movs r5, r0                   |     r5 = r0;
    0x00076440 smlawb r0, r0, r2, r0         |     __asm ("smlawb r0, r0, r2, r0");
    0x00076444 invalid                       |     
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x764c4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.000764c4 ()                                      | void fcn_000764c4 (uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x000764c4 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x000764c8 mov r4, r2                                        |     r4 = r2;
    0x000764ca ldr r2, [pc, 0x100]                               |     
    0x000764cc mov r6, r3                                        |     r6 = r3;
    0x000764ce sub sp, 0x1c                                      |     
    0x000764d0 movs r7, 0                                        |     r7 = 0;
    0x000764d2 ldr r3, [pc, 0xfc]                                |     r3 = *(0x765d2);
    0x000764d4 add r2, pc                                        |     r2 = 0xecaa6;
    0x000764d6 ldr r3, [r2, r3]                                  |     
    0x000764d8 ldr r3, [r3]                                      |     r3 = *(0xecaa6);
    0x000764da str r3, [sp, 0x14]                                |     var_14h = r3;
    0x000764dc mov.w r3, 0                                       |     r3 = 0;
    0x000764e0 str r7, [sp, 8]                                   |     var_8h = r7;
    0x000764e2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000764e4 beq 0x7659e                                       |         goto label_4;
                                                                 |     }
    0x000764e6 mov r5, r1                                        |     r5 = r1;
    0x000764e8 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x000764ea beq 0x765b2                                       |         goto label_5;
                                                                 |     }
    0x000764ec and r3, r4, 2                                     |     r3 = r4 & 2;
    0x000764f0 add.w sb, sp, 0x10                                |     sb += var_10h;
    0x000764f2 lsrs r0, r2, 4                                    |     r0 = r2 >> 4;
    0x000764f4 add.w r8, sp, 0xc                                 |     r8 += var_ch;
    0x000764f8 str r7, [sp]                                      |     *(sp) = r7;
    0x000764fa str r0, [sp, 0xc]                                 |     var_ch = r0;
    0x000764fc str r3, [sp, 4]                                   |     var_4h = r3;
    0x000764fe b 0x7651c                                         |     
                                                                 |     while (r6 != 0) {
    0x00076500 bl 0x7644c                                        |         r0 = fcn_0007644c (r0, r1);
                                                                 |         if (r0 != 0) {
    0x00076504 cbz r0, 0x76516                                   |             
    0x00076506 ldrb r3, [r0]                                     |             r3 = *(r0);
    0x00076508 cmp r3, 0x3d                                      |             
                                                                 |             if (r3 == 0x3d) {
    0x0007650a beq 0x76552                                       |                 goto label_6;
                                                                 |             }
                                                                 |             if (r3 != 0) {
    0x0007650c cbnz r3, 0x76516                                  |                 goto label_0;
                                                                 |             }
    0x0007650e ldr r3, [sp, 4]                                   |             r3 = var_4h;
                                                                 |             if (r3 == 0) {
    0x00076510 cbz r3, 0x76516                                   |                 goto label_0;
                                                                 |             }
                                                                 | label_1:
    0x00076512 movs r3, 1                                        |             r3 = 1;
    0x00076514 str r3, [sp]                                      |             *(sp) = r3;
                                                                 |         }
                                                                 | label_0:
    0x00076516 mov r0, sl                                        |         r0 = sl;
    0x00076518 blx 0x8dac                                        |         fcn_00008dac ();
    0x0007651c mov r2, r4                                        |         r2 = r4;
    0x0007651e mov r1, sb                                        |         r1 = sb;
    0x00076520 mov r0, r8                                        |         r0 = r8;
    0x00076522 str r7, [sp, 0x10]                                |         var_10h = r7;
    0x00076524 bl 0x76194                                        |         fcn_00076194 (r0, r1, r2);
    0x00076528 subs.w fp, r0, 0                                  |         
    0x0007652c ldr.w sl, [sp, 0x10]                              |         sl = var_10h;
                                                                 |         if (fp < var_ch) {
    0x00076530 blt 0x76560                                       |             goto label_7;
                                                                 |         }
                                                                 |         if (fp == var_ch) {
    0x00076532 beq 0x76588                                       |             goto label_8;
                                                                 |         }
    0x00076534 mov r1, r5                                        |         r1 = r5;
    0x00076536 mov r0, sl                                        |         r0 = sl;
    0x00076538 cmp r6, 0                                         |         
    0x0007653a bne 0x76500                                       |         
                                                                 |     }
    0x0007653c blx 0x95e0                                        |     r0 = fcn_000095e0 ();
    0x00076540 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00076542 bne 0x76516                                       |         goto label_0;
                                                                 |     }
    0x00076544 mov r0, sl                                        |     r0 = sl;
    0x00076546 mov.w fp, 1                                       |     
    0x0007654a blx 0x8dac                                        |     fcn_00008dac ();
                                                                 | label_2:
    0x0007654e ldr r0, [sp, 8]                                   |     r0 = var_8h;
    0x00076550 b 0x76568                                         |     goto label_3;
                                                                 | label_6:
    0x00076552 adds r1, r0, 1                                    |     r1 = r0 + 1;
    0x00076554 add r0, sp, 8                                     |     r0 += var_8h;
    0x00076556 bl 0x7adac                                        |     fcn_0007adac (r0, r1);
    0x0007655a subs.w fp, r0, 0                                  |     
                                                                 |     if (fp >= var_8h) {
    0x0007655e bge 0x76512                                       |         goto label_1;
                                                                 |     }
                                                                 | label_7:
    0x00076560 mov r0, sl                                        |     r0 = sl;
    0x00076562 blx 0x8dac                                        |     fcn_00008dac ();
    0x00076566 ldr r0, [sp, 8]                                   |     r0 = var_8h;
                                                                 | label_3:
    0x00076568 blx 0x8dac                                        |     fcn_00008dac ();
    0x0007656c ldr r1, [pc, 0x64]                                |     
    0x0007656e ldr r2, [pc, 0x60]                                |     r2 = *(0x765d2);
    0x00076570 add r1, pc                                        |     r1 = 0xecb48;
    0x00076572 ldr r2, [r1, r2]                                  |     r2 = *(0xecb48);
    0x00076574 ldr r1, [r2]                                      |     r1 = *(0xecb48);
    0x00076576 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x00076578 eors r1, r2                                       |     r1 ^= r2;
    0x0007657a mov.w r2, 0                                       |     r2 = 0;
                                                                 |     if (r1 != r2) {
    0x0007657e bne 0x765c6                                       |         goto label_9;
                                                                 |     }
    0x00076580 mov r0, fp                                        |     r0 = fp;
    0x00076582 add sp, 0x1c                                      |     
    0x00076584 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_8:
    0x00076588 mov r0, sl                                        |     r0 = sl;
    0x0007658a ldr.w fp, [sp]                                    |     fp = *(sp);
    0x0007658e blx 0x8dac                                        |     fcn_00008dac ();
    0x00076590 invalid                                           |     
                                                                 |     if (r1 == r2) {
    0x00076594 beq 0x7654e                                       |         goto label_2;
                                                                 |     }
    0x00076596 ldr r2, [sp, 8]                                   |     r2 = var_8h;
    0x00076598 movs r0, 0                                        |     r0 = 0;
    0x0007659a str r2, [r6]                                      |     *(r6) = r2;
    0x0007659c b 0x76568                                         |     goto label_3;
                                                                 | label_4:
    0x0007659e ldr r1, [pc, 0x38]                                |     
    0x000765a0 movs r2, 0xb5                                     |     r2 = 0xb5;
    0x000765a2 ldr r3, [pc, 0x38]                                |     
    0x000765a4 ldr r0, [pc, 0x38]                                |     
    0x000765a6 add r1, pc                                        |     r1 = 0xecb84;
    0x000765a8 add r3, pc                                        |     r3 = 0xecb8a;
    0x000765aa adds r1, 7                                        |     r1 += 7;
    0x000765ac add r0, pc                                        |     r0 = 0xecb90;
    0x000765ae bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_5:
    0x000765b2 ldr r1, [pc, 0x30]                                |     
    0x000765b4 movs r2, 0xb6                                     |     r2 = 0xb6;
    0x000765b6 ldr r3, [pc, 0x30]                                |     
    0x000765b8 ldr r0, [pc, 0x30]                                |     
    0x000765ba add r1, pc                                        |     r1 = 0xecba4;
    0x000765bc add r3, pc                                        |     r3 = 0xecbaa;
    0x000765be adds r1, 7                                        |     r1 += 7;
    0x000765c0 add r0, pc                                        |     r0 = 0xecbb0;
    0x000765c2 bl 0x71518                                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_9:
    0x000765c6 blx 0x927c                                        |     fprintf_chk ()
    0x000765ca nop                                               |     
    0x000765cc movs r5, 0xf0                                     |     r5 = 0xf0;
    0x000765ce movs r5, r0                                       |     r5 = r0;
    0x000765d0 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x000765d2 movs r0, r0                                       |     
    0x000765d4 movs r5, 0x54                                     |     r5 = 0x54;
    0x000765d6 movs r5, r0                                       |     r5 = r0;
    0x000765d8 vld1.8 {d0[0]}, [lr], r2                          |     __asm ("vld1.8 {d0[0]}, [lr], r2");
    0x000765dc invalid                                           |     
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x76668 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00076668 ()                          | void fcn_00076668 (uint32_t arg1, int16_t arg2, int16_t arg3) {
                                                     |     int16_t var_4h;
                                                     |     int16_t var_8h;
                                                     |     int16_t var_ch;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     |     r2 = arg3;
    0x00076668 mvnsmi lr, sp, lsr 18                 |     __asm ("mvnsmi lr, sp, lsr 18");
    0x0007666c mov r6, r2                            |     r6 = r2;
    0x0007666e ldr r2, [pc, 0xb8]                    |     
    0x00076670 sub sp, 0x10                          |     
    0x00076672 movs r4, 0                            |     r4 = 0;
    0x00076674 mov r5, r0                            |     r5 = r0;
    0x00076676 ldr r3, [pc, 0xb4]                    |     r3 = *(0x7672e);
    0x00076678 add r2, pc                            |     r2 = 0xecda6;
    0x0007667a ldr r3, [r2, r3]                      |     
    0x0007667c ldr r3, [r3]                          |     r3 = *(0xecda6);
    0x0007667e str r3, [sp, 0xc]                     |     var_ch = r3;
    0x00076680 mov.w r3, 0                           |     r3 = 0;
    0x00076684 strd r4, r4, [sp, 4]                  |     __asm ("strd r4, r4, [var_ch]");
    0x00076688 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0007668a beq 0x766fc                           |         goto label_1;
                                                     |     }
    0x0007668c ldrb r3, [r0]                         |     r3 = *(r0);
                                                     |     if (r3 == 0) {
    0x0007668e cbz r3, 0x766f2                       |         goto label_2;
                                                     |     }
    0x00076690 clz r0, r6                            |     r0 &= r6;
    0x00076694 mov r7, r1                            |     r7 = r1;
    0x00076696 lsrs r0, r0, 5                        |     r0 >>= 5;
    0x00076698 ands.w r8, r0, r1, lsr 1              |     r8 = r0 & (r1 >> 1);
                                                     |     if (r8 != r0) {
    0x0007669c bne 0x766fa                           |         goto label_3;
                                                     |     }
    0x0007669e add r0, sp, 4                         |     r0 += var_ch;
    0x000766a0 bl 0x7626c                            |     fcn_0007626c (r0);
    0x000766a4 subs r4, r0, 0                        |     r4 -= var_ch;
                                                     |     if (r4 >= var_ch) {
    0x000766a6 blt 0x766c8                           |         
    0x000766a8 lsls r3, r7, 0x1c                     |         r3 = r7 << 0x1c;
    0x000766aa ldr r0, [sp, 4]                       |         r0 = var_ch;
                                                     |         if (r3 < r7) {
    0x000766ac bmi 0x76702                           |             goto label_4;
                                                     |         }
    0x000766ae mov r3, r6                            |         r3 = r6;
                                                     |         if (r6 != 0) {
    0x000766b0 cbz r6, 0x766b4                       |             
    0x000766b2 add r3, sp, 8                         |             r3 += var_8h;
                                                     |         }
    0x000766b4 mov r1, r5                            |         r1 = r5;
    0x000766b6 mov r2, r7                            |         r2 = r7;
    0x000766b8 bl 0x764c4                            |         r0 = fcn_000764c4 (r0, r1, r2, r3);
    0x000766bc subs r4, r0, 0                        |         r4 = r0 - 0;
    0x000766be ldr r5, [sp, 8]                       |         r5 = var_8h;
                                                     |         if (r4 < r0) {
    0x000766c0 blt 0x766ca                           |             goto label_0;
                                                     |         }
                                                     |         if (r4 == r0) {
    0x000766c2 beq 0x76712                           |             goto label_5;
                                                     |         }
                                                     |         if (r6 == 0) {
    0x000766c4 cbz r6, 0x766ca                       |             goto label_0;
                                                     |         }
    0x000766c6 str r5, [r6]                          |         *(r6) = r5;
                                                     |     }
    0x000766c8 movs r5, 0                            |     r5 = 0;
                                                     |     do {
                                                     | label_0:
    0x000766ca mov r0, r5                            |         r0 = r5;
    0x000766cc blx 0x8dac                            |         fcn_00008dac ();
    0x000766d0 ldr r0, [sp, 4]                       |         r0 = var_ch;
    0x000766d2 blx 0x8dac                            |         fcn_00008dac ();
    0x000766d6 ldr r2, [pc, 0x58]                    |         
    0x000766d8 ldr r3, [pc, 0x50]                    |         r3 = *(0x7672c);
    0x000766da add r2, pc                            |         r2 = 0xece10;
    0x000766dc ldr r3, [r2, r3]                      |         r3 = *(0xece10);
    0x000766de ldr r2, [r3]                          |         r2 = *(0xece10);
    0x000766e0 ldr r3, [sp, 0xc]                     |         r3 = var_ch;
    0x000766e2 eors r2, r3                           |         r2 ^= r3;
    0x000766e4 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x000766e8 bne 0x76722                           |             goto label_6;
                                                     |         }
    0x000766ea mov r0, r4                            |         r0 = r4;
    0x000766ec add sp, 0x10                          |         
    0x000766ee pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_2:
    0x000766f2 mov r5, r3                            |         r5 = r3;
    0x000766f4 mvn r4, 0x15                          |         r4 = ~0x15;
    0x000766f8 b 0x766ca                             |         
                                                     |     } while (1);
                                                     | label_3:
    0x000766fa mov r5, r4                            |     r5 = r4;
                                                     | label_1:
    0x000766fc mvn r4, 0x15                          |     r4 = ~0x15;
    0x00076700 b 0x766ca                             |     goto label_0;
                                                     | label_4:
    0x00076702 mov r1, r5                            |     r1 = r5;
    0x00076704 mov r3, r6                            |     r3 = r6;
    0x00076706 mov r2, r7                            |     r2 = r7;
    0x00076708 mov r5, r8                            |     r5 = r8;
    0x0007670a bl 0x764c4                            |     r0 = fcn_000764c4 (r0, r1, r2, r3);
    0x0007670e mov r4, r0                            |     r4 = r0;
    0x00076710 b 0x766ca                             |     goto label_0;
                                                     | label_5:
    0x00076712 ldr r0, [sp, 4]                       |     r0 = var_ch;
    0x00076714 blx 0x8dac                            |     fcn_00008dac ();
    0x00076718 str r4, [sp, 4]                       |     var_ch = r4;
    0x0007671a cmp r6, 0                             |     
                                                     |     if (r6 == 0) {
    0x0007671c beq 0x766ca                           |         goto label_0;
                                                     |     }
    0x0007671e str r4, [r6]                          |     *(r6) = r4;
    0x00076720 b 0x766ca                             |     goto label_0;
                                                     | label_6:
    0x00076722 blx 0x927c                            |     fprintf_chk ()
    0x00076726 nop                                   |     
    0x00076728 movs r4, 0x4c                         |     r4 = 0x4c;
    0x0007672a movs r5, r0                           |     r5 = r0;
    0x0007672c lsls r0, r0, 0x13                     |     r0 <<= 0x13;
    0x0007672e movs r0, r0                           |     
    0x00076730 movs r3, 0xea                         |     r3 = 0xea;
    0x00076732 movs r5, r0                           |     r5 = r0;
                                                     | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x76734 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00076734 ()              | void fcn_00076734 (int16_t arg1, int16_t arg2) {
                                         |     int16_t var_0h;
                                         |     int16_t var_4h_2;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00076734 invalid                   |     
    0x00076738 ldr r1, [pc, 0x84]        |     
    0x0007673a sub sp, 8                 |     
    0x0007673c movs r3, 0                |     r3 = 0;
    0x0007673e ldr r2, [pc, 0x84]        |     r2 = *(0x767c6);
    0x00076740 add r1, pc                |     r1 = 0xecf04;
    0x00076742 ldr r2, [r1, r2]          |     
    0x00076744 ldr r2, [r2]              |     r2 = *(0xecf04);
    0x00076746 str r2, [sp, 4]           |     var_4h_2 = r2;
    0x00076748 mov.w r2, 0               |     r2 = 0;
    0x0007674c str r3, [sp]              |     *(sp) = r3;
                                         |     if (r5 == 0) {
    0x0007674e cbz r5, 0x767a4           |         goto label_0;
                                         |     }
    0x00076750 mov r2, sp                |     r2 = sp;
    0x00076752 movs r1, 2                |     r1 = 2;
    0x00076754 bl 0x76668                |     r0 = fcn_00076668 (r0, r1, r2);
    0x00076758 subs r4, r0, 0            |     r4 = r0 - 0;
    0x0007675a ldr r6, [sp]              |     r6 = *(sp);
                                         |     if (r4 < r0) {
    0x0007675c blt 0x7677c               |         goto label_1;
                                         |     }
    0x0007675e it eq                     |     
                                         |     if (r4 != r0) {
    0x00076760 strbeq r4, [r5]           |         *(r5) = r4;
                                         |     }
                                         |     if (r4 == r0) {
    0x00076762 beq 0x7677c               |         goto label_1;
                                         |     }
                                         |     if (r6 == 0) {
    0x00076764 cbz r6, 0x7679c           |         goto label_2;
                                         |     }
    0x00076766 mov r0, r6                |     r0 = r6;
    0x00076768 bl 0x7408c                |     r0 = fcn_0007408c (r0);
    0x0007676c subs r4, r0, 0            |     r4 = r0 - 0;
                                         |     if (r4 < r0) {
    0x0007676e blt 0x7677c               |         goto label_1;
                                         |     }
    0x00076770 mov.w r4, 1               |     r4 = 1;
    0x00076774 ite ne                    |     
                                         |     if (r4 == r0) {
    0x00076776 movne r3, 1               |         r3 = 1;
                                         |     }
                                         |     if (r4 != r0) {
    0x00076778 moveq r3, 0               |         r3 = 0;
                                         |     }
    0x0007677a strb r3, [r5]             |     *(r5) = r3;
                                         |     do {
                                         | label_1:
    0x0007677c mov r0, r6                |         r0 = r6;
    0x0007677e blx 0x8dac                |         fcn_00008dac ();
    0x00076782 ldr r2, [pc, 0x44]        |         
    0x00076784 ldr r3, [pc, 0x3c]        |         r3 = *(0x767c4);
    0x00076786 add r2, pc                |         r2 = 0xecf54;
    0x00076788 ldr r3, [r2, r3]          |         r3 = *(0xecf54);
    0x0007678a ldr r2, [r3]              |         r2 = *(0xecf54);
    0x0007678c ldr r3, [sp, 4]           |         r3 = var_4h_2;
    0x0007678e eors r2, r3               |         r2 ^= r3;
    0x00076790 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x00076794 bne 0x767ba               |             goto label_3;
                                         |         }
    0x00076796 mov r0, r4                |         r0 = r4;
    0x00076798 add sp, 8                 |         
    0x0007679a pop {r4, r5, r6, pc}      |         
                                         | label_2:
    0x0007679c movs r3, 1                |         r3 = 1;
    0x0007679e mov r4, r3                |         r4 = r3;
    0x000767a0 strb r3, [r5]             |         *(r5) = r3;
    0x000767a2 b 0x7677c                 |         
                                         |     } while (1);
                                         | label_0:
    0x000767a4 ldr r1, [pc, 0x24]        |     
    0x000767a6 mov.w r2, 0x11c           |     r2 = 0x11c;
    0x000767aa ldr r3, [pc, 0x24]        |     
    0x000767ac ldr r0, [pc, 0x24]        |     
    0x000767ae add r1, pc                |     r1 = 0xecf7e;
    0x000767b0 add r3, pc                |     r3 = 0xecf86;
    0x000767b2 adds r1, 7                |     r1 += 7;
    0x000767b4 add r0, pc                |     r0 = 0xecf8c;
    0x000767b6 bl 0x71518                |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                         | label_3:
    0x000767ba blx 0x927c                |     fprintf_chk ()
    0x000767be nop                       |     
    0x000767c0 movs r3, 0x84             |     r3 = 0x84;
    0x000767c2 movs r5, r0               |     r5 = r0;
    0x000767c4 lsls r0, r0, 0x13         |     r0 <<= 0x13;
    0x000767c6 movs r0, r0               |     
    0x000767c8 movs r3, 0x3e             |     r3 = 0x3e;
    0x000767ca movs r5, r0               |     r5 = r0;
    0x000767cc invalid                   |     
                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x76820 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00076820 ()                              | void fcn_00076820 (uint32_t arg1, int16_t arg2) {
                                                         |     uint32_t var_0h_2;
                                                         |     int32_t var_0h_3;
                                                         |     int16_t var_8h_3;
                                                         |     int16_t var_8h_2;
                                                         |     int32_t var_bh;
                                                         |     int16_t var_8h;
                                                         |     int32_t var_4h;
                                                         |     int16_t var_0h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00076820 stmdahs r0, {r1, r3, r5, sb, fp, lr}      |     __asm ("stmdahs r0, {r1, r3, r5, sb, fp, lr}");
    0x00076824 ldr r3, [pc, 0xa8]                        |     
    0x00076826 push {r4, r5, r7, lr}                     |     
    0x00076828 sub sp, 0x10                              |     
    0x0007682a add r2, pc                                |     r2 += pc;
    0x0007682c add r7, sp, 8                             |     r7 += var_8h;
    0x0007682e ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x00076830 ldr r3, [r3]                              |     r3 = *(0x768d0);
    0x00076832 str r3, [r7, 4]                           |     var_4h = r3;
    0x00076834 mov.w r3, 0                               |     r3 = 0;
                                                         |     if (? < ?) {
    0x00076838 blt 0x768b2                               |         goto label_0;
                                                         |     }
    0x0007683a mov r4, r1                                |     r4 = r1;
                                                         |     if (? == ?) {
    0x0007683c beq 0x76892                               |         goto label_1;
                                                         |     }
    0x0007683e ldr r1, [pc, 0x94]                        |     
    0x00076840 sub sp, 0x18                              |     
    0x00076842 ldr r3, [pc, 0x94]                        |     
    0x00076844 add r5, sp, 8                             |     r5 += var_8h_3;
    0x00076846 movs r2, 0x17                             |     r2 = 0x17;
    0x00076848 add r1, pc                                |     r1 = 0xed122;
    0x0007684a strd r0, r1, [sp]                         |     __asm ("strd r0, r1, [sp]");
    0x0007684e add r3, pc                                |     r3 = 0xed12c;
    0x00076850 movs r1, 1                                |     r1 = 1;
    0x00076852 mov r0, r5                                |     r0 = r5;
    0x00076854 blx 0x9494                                |     fcn_00009494 ();
    0x00076856 invalid                                   |     
                                                         |     do {
    0x00076858 mov r1, r4                                |         r1 = r4;
    0x0007685a mov r0, r5                                |         r0 = r5;
    0x0007685c bl 0x767e8                                |         fcn_000767e8 (r0, r1);
    0x0007685e vmlal.u8 q9, d4, d0                       |         __asm ("vmlal.u8 q9, d4, d0");
    0x00076860 cmp r0, 0                                 |         
                                                         |         if (r0 >= 0) {
    0x00076862 blt 0x76878                               |             
    0x00076864 ldr r1, [pc, 0x74]                        |             
    0x00076866 ldr r0, [r4]                              |             r0 = *(r4);
    0x00076868 add r1, pc                                |             r1 = 0xed148;
    0x0007686a bl 0x80428                                |             r0 = fcn_00080428 (r0, r1);
    0x0007686e mov r3, r0                                |             r3 = r0;
                                                         |             if (r0 == 0) {
    0x00076870 cbz r0, 0x76878                           |                 goto label_2;
                                                         |             }
    0x00076872 movs r2, 0                                |             r2 = 0;
    0x00076874 mov r0, r2                                |             r0 = r2;
    0x00076876 strb r2, [r3]                             |             *(r3) = r2;
                                                         |         }
                                                         | label_2:
    0x00076878 ldr r2, [pc, 0x64]                        |         
    0x0007687a ldr r3, [pc, 0x54]                        |         r3 = *(0x768d2);
    0x0007687c add r2, pc                                |         r2 = 0xed160;
    0x0007687e ldr r3, [r2, r3]                          |         r3 = *(0xed160);
    0x00076880 ldr r2, [r3]                              |         r2 = *(0xed160);
    0x00076882 ldr r3, [r7, 4]                           |         r3 = var_4h;
    0x00076884 eors r2, r3                               |         r2 ^= r3;
    0x00076886 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0007688a bne 0x768c8                               |             goto label_3;
                                                         |         }
    0x0007688c adds r7, 8                                |         r7 += 8;
    0x0007688e mov sp, r7                                |         
    0x00076890 pop {r4, r5, r7, pc}                      |         
                                                         | label_1:
    0x00076892 ldr r3, [pc, 0x50]                        |         
    0x00076894 sub sp, 0x10                              |         
    0x00076896 ldr.w ip, [pc, 0x50]                      |         
    0x00076898 stm r0!, {r4, r6}                         |         *(r0!) = r4;
                                                         |         *((r0! + 4)) = r6;
    0x0007689a add r5, sp, 8                             |         r5 += var_8h_2;
    0x0007689c add r3, pc                                |         r3 = 0xed186;
    0x0007689e ldm.w r3, {r0, r1, r2}                    |         r0 = *(r3);
                                                         |         r1 = *((r3 + 4));
                                                         |         r2 = *((r3 + 8));
    0x000768a2 add ip, pc                                |         ip = 0xed190;
    0x000768a4 stm.w r5, {r0, r1, r2}                    |         *(r5) = r0;
                                                         |         *((r5 + 4)) = r1;
                                                         |         *((r5 + 8)) = r2;
    0x000768a8 ldr.w r0, [ip]                            |         r0 = *(0xed190);
    0x000768aa movs r0, r0                               |         
    0x000768ac str.w r0, [r5, 0xb]                       |         __asm ("str.w r0, [var_bh]");
    0x000768b0 b 0x76858                                 |         
                                                         |     } while (1);
                                                         | label_0:
    0x000768b2 ldr r1, [pc, 0x38]                        |     
    0x000768b4 mov.w r2, 0x1f2                           |     r2 = 0x1f2;
    0x000768b8 ldr r3, [pc, 0x34]                        |     
    0x000768ba ldr r0, [pc, 0x38]                        |     
    0x000768bc add r1, pc                                |     r1 = 0xed1ae;
    0x000768be add r3, pc                                |     r3 = 0xed1b2;
    0x000768c0 adds r1, 7                                |     r1 += 7;
    0x000768c2 add r0, pc                                |     r0 = 0xed1bc;
    0x000768c4 bl 0x71518                                |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                         | label_3:
    0x000768c8 blx 0x927c                                |     fprintf_chk ()
    0x000768cc movs r2, 0x9a                             |     r2 = 0x9a;
    0x000768ce movs r5, r0                               |     r5 = r0;
    0x000768d0 lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x000768d2 movs r0, r0                               |     
    0x000768d4 ldr.w r0, [ip, r2]                        |     r0 = *((ip + r2));
    0x000768d8 b 0x76f40                                 |     return void (*0x76f40)() ();
                                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x768f8 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000768f8 ()              | void fcn_000768f8 (int16_t arg1, int16_t arg2) {
                                         |     int16_t var_4h;
                                         |     int16_t var_84h;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x000768f8 ldr r2, [pc, 0x98]        |     
    0x000768fa ldr r3, [pc, 0x9c]        |     r3 = *(0x7699a);
    0x000768fc push {r4, r5, lr}         |     
    0x000768fe subs r5, r0, 0            |     r5 = r0 - 0;
    0x00076900 add r2, pc                |     r2 = 0xed298;
    0x00076902 sub sp, 0x8c              |     
    0x00076904 ldr r3, [r2, r3]          |     
    0x00076906 ldr r3, [r3]              |     r3 = *(0xed298);
    0x00076908 str r3, [sp, 0x84]        |     var_84h = r3;
    0x0007690a mov.w r3, 0               |     r3 = 0;
    0x0007690c lsls r0, r0, 0xc          |     r0 <<= 0xc;
                                         |     if (r0 <= r0) {
    0x0007690e ble 0x7695c               |         goto label_2;
                                         |     }
    0x00076910 mov r4, r1                |     r4 = r1;
                                         |     if (r1 == 0) {
    0x00076912 cbz r1, 0x76958           |         goto label_3;
                                         |     }
                                         |     do {
                                         | label_0:
    0x00076914 movs r2, 0x80             |         r2 = 0x80;
    0x00076916 movs r1, 0                |         r1 = 0;
    0x00076918 mov r0, r4                |         r0 = r4;
    0x0007691a blx 0x8c54                |         fcn_00008c54 ();
    0x0007691e movs r3, 4                |         r3 = 4;
    0x00076920 mov r2, r4                |         r2 = r4;
    0x00076922 mov r1, r5                |         r1 = r5;
    0x00076924 movs r0, 1                |         r0 = 1;
    0x00076926 blx 0x8ba4                |         r0 = strchr (r0, r1);
    0x0007692a cmp r0, 0                 |         
                                         |         if (r0 >= 0) {
    0x0007692c bge 0x76972               |             goto label_4;
                                         |         }
    0x0007692e blx 0x9628                |         r0 = fcn_00009628 ();
    0x00076932 ldr r0, [r0]              |         r0 = *(r0);
    0x00076934 cmp r0, 4                 |         
    0x00076936 beq 0x76914               |         
                                         |     } while (r0 == 4);
    0x00076938 cmp r0, 0                 |     
    0x0007693a it gt                     |     
                                         |     if (r0 > 0) {
    0x0007693c rsbgt r0, r0, 0           |         __asm ("rsbgt r0, r0, 0");
                                         |     }
                                         |     if (r0 <= 0) {
    0x0007693e ble 0x76976               |         goto label_5;
                                         |     }
                                         |     do {
                                         | label_1:
    0x00076940 ldr r2, [pc, 0x58]        |         
    0x00076942 ldr r3, [pc, 0x54]        |         r3 = *(0x7699a);
    0x00076944 add r2, pc                |         r2 = 0xed2e4;
    0x00076946 ldr r3, [r2, r3]          |         r3 = *(0xed2e4);
    0x00076948 ldr r2, [r3]              |         r2 = *(0xed2e4);
    0x0007694a ldr r3, [sp, 0x84]        |         r3 = var_84h;
    0x0007694c eors r2, r3               |         r2 ^= r3;
    0x0007694e mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x00076952 bne 0x76990               |             goto label_6;
                                         |         }
    0x00076954 add sp, 0x8c              |         
    0x00076956 pop {r4, r5, pc}          |         
                                         | label_3:
    0x00076958 add r4, sp, 4             |         r4 += var_4h;
    0x0007695a b 0x76914                 |         goto label_0;
                                         | label_2:
    0x0007695c ldr r1, [pc, 0x40]        |         
    0x0007695e mov.w r2, 0x2d0           |         r2 = 0x2d0;
    0x00076962 ldr r3, [pc, 0x40]        |         
    0x00076964 ldr r0, [pc, 0x40]        |         
    0x00076966 add r1, pc                |         r1 = 0xed30a;
    0x00076968 add r3, pc                |         r3 = 0xed312;
    0x0007696a adds r1, 7                |         r1 += 7;
    0x0007696c add r0, pc                |         r0 = 0xed318;
    0x0007696e bl 0x71518                |         fcn_00071518 (r0, r1, r2, r3);
                                         | label_4:
    0x00076972 movs r0, 0                |         r0 = 0;
    0x00076974 b 0x76940                 |         
                                         |     } while (1);
                                         | label_5:
    0x00076976 ldr r1, [pc, 0x34]        |     
    0x00076978 movs r2, 0x1e             |     r2 = 0x1e;
    0x0007697a ldr r3, [pc, 0x34]        |     
    0x0007697c ldr r0, [pc, 0x34]        |     
    0x0007697e add r1, pc                |     r1 = 0xed330;
    0x00076980 add r3, pc                |     r3 = 0xed336;
    0x00076982 adds r1, 7                |     r1 += 7;
    0x00076984 add r0, pc                |     r0 = 0xed33c;
    0x00076986 bl 0x717d4                |     fcn_000717d4 (r0, r1, r2, r3);
    0x0007698a mvn r0, 0x15              |     r0 = ~0x15;
    0x0007698e b 0x76940                 |     goto label_1;
                                         | label_6:
    0x00076990 blx 0x927c                |     fprintf_chk ()
    0x00076994 movs r1, 0xc4             |     r1 = 0xc4;
    0x00076996 movs r5, r0               |     r5 = r0;
    0x00076998 lsls r0, r0, 0x13         |     r0 <<= 0x13;
    0x0007699a movs r0, r0               |     
    0x0007699c movs r1, 0x80             |     r1 = 0x80;
    0x0007699e movs r5, r0               |     r5 = r0;
    0x000769a0 ssat r0, 3, lr            |     __asm ("ssat r0, 3, lr");
    0x000769a4 stc2l p0, c0, [r4], 8     |     __asm ("stc2l p0, c0, [r4], 8");
    0x000769a8 sbfx r0, r4, 0, 3         |     __asm ("sbfx r0, r4, 0, 3");
    0x000769aa movs r2, r0               |     r2 = r0;
    0x000769ac subs r6, 0x4a             |     r6 -= 0x4a;
    0x000769ae movs r2, r0               |     r2 = r0;
    0x000769b0 ldc2 p0, c0, [ip], 8      |     __asm ("ldc2 p0, c0, [ip], 8");
    0x000769b4 subs r6, 0x64             |     r6 -= 0x64;
    0x000769b6 movs r2, r0               |     r2 = r0;
                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x76ac0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00076ac0 ()                      | void fcn_00076ac0 (int16_t arg_28h, int16_t arg_94h, uint32_t arg1, int16_t arg2) {
                                                 |     int32_t var_0h_3;
                                                 |     int32_t var_0h_4;
                                                 |     int16_t var_8h_2;
                                                 |     int16_t var_2h;
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     int16_t var_8h;
                                                 |     int16_t var_ch;
                                                 |     int16_t var_10h;
                                                 |     int16_t var_0h_2;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00076ac0 invalid                           |     
    0x00076ac4 ldr r1, [pc, 0xec]                |     
    0x00076ac6 sub sp, 0x14                      |     
    0x00076ac8 movs r3, 0                        |     r3 = 0;
    0x00076aca ldr r2, [pc, 0xec]                |     r2 = *(0x76bba);
    0x00076acc add r7, sp, 8                     |     r7 += var_8h;
    0x00076ace add r1, pc                        |     r1 = 0xed686;
    0x00076ad0 ldr r2, [r1, r2]                  |     
    0x00076ad2 ldr r2, [r2]                      |     r2 = *(0xed686);
    0x00076ad4 str r2, [r7, 4]                   |     var_ch = r2;
    0x00076ad6 mov.w r2, 0                       |     r2 = 0;
    0x00076ada str r3, [r7]                      |     *(r7) = r3;
    0x00076adc cmp r4, 0                         |     
                                                 |     if (r4 == 0) {
    0x00076ade beq 0x76b7c                       |         goto label_6;
                                                 |     }
    0x00076ae0 cmp r0, 0                         |     
    0x00076ae2 mov r5, r0                        |     r5 = r0;
                                                 |     if (arg_28h < ) {
    0x00076ae4 blt 0x76b90                       |         goto label_7;
                                                 |     }
    0x00076ae6 bne 0x76b3c                       |     
                                                 |     while (r0 == r5) {
    0x00076ae8 movs r1, 1                        |         r1 = 1;
    0x00076aea movs r0, 0x11                     |         r0 = 0x11;
    0x00076aec blx 0x8c20                        |         r0 = fcn_00008c20 ();
    0x00076af0 mov r1, r0                        |         r1 = r0;
    0x00076af2 str r0, [r7]                      |         *(r7) = r0;
    0x00076af4 cmp r0, 0                         |         
                                                 |         if (r0 == 0) {
    0x00076af6 beq 0x76baa                       |             goto label_8;
                                                 |         }
    0x00076af8 movs r0, 0x10                     |         r0 = 0x10;
    0x00076afa blx 0x93bc                        |         r0 = fcn_000093bc ();
    0x00076afe cmp r0, 0                         |         
                                                 |         if (r0 < 0) {
    0x00076b00 blt 0x76b72                       |             goto label_9;
                                                 |         }
                                                 | label_0:
    0x00076b02 movs r0, 0x80                     |         r0 = 0x80;
    0x00076b04 blx 0x9234                        |         blkid_safe_string ();
    0x00076b08 ldr r2, [r7]                      |         r2 = *(r7);
    0x00076b0a mov r5, r0                        |         r5 = r0;
    0x00076b0c cmp r0, 0                         |         
                                                 |         if (r0 == 0) {
    0x00076b0e beq 0x76baa                       |             goto label_8;
                                                 |         }
    0x00076b10 movs r6, 0                        |         r6 = 0;
    0x00076b12 movs r1, 0x80                     |         r1 = 0x80;
    0x00076b14 bl 0x7aa9c                        |         fcn_0007aa9c (r0, r1, r2);
    0x00076b18 str r5, [r4]                      |         *(r4) = r5;
                                                 | label_1:
    0x00076b1a ldr r0, [r7]                      |         r0 = *(r7);
    0x00076b1c blx 0x8dac                        |         fcn_00008dac ();
    0x00076b1e strd r4, sl, [r6, -0x98]          |         __asm ("strd r4, sl, [r6, -0x98]");
    0x00076b22 ldr r3, [pc, 0x94]                |         r3 = *(0x76bba);
    0x00076b24 add r2, pc                        |         r2 += pc;
    0x00076b26 ldr r3, [r2, r3]                  |         r3 = *((r2 + r3));
    0x00076b28 ldr r2, [r3]                      |         r2 = *(0x76bba);
    0x00076b2a ldr r3, [r7, 4]                   |         r3 = var_ch;
    0x00076b2c eors r2, r3                       |         r2 ^= r3;
    0x00076b2e mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00076b32 bne 0x76bb0                       |             goto label_10;
                                                 |         }
    0x00076b34 mov r0, r6                        |         r0 = r6;
    0x00076b36 adds r7, 0xc                      |         r7 += 0xc;
    0x00076b38 mov sp, r7                        |         
    0x00076b3a pop {r4, r5, r6, r7, pc}          |         
    0x00076b3c bl 0x76a30                        |         r0 = fcn_00076a30 (r0);
    0x00076b40 cmp r0, r5                        |         
    0x00076b42 beq 0x76ae8                       |         
                                                 |     }
    0x00076b44 ldr r1, [pc, 0x78]                |     
    0x00076b46 sub sp, 0x18                      |     
    0x00076b48 ldr r3, [pc, 0x78]                |     
    0x00076b4a add r6, sp, 8                     |     r6 += var_8h_2;
    0x00076b4c movs r2, 0x18                     |     r2 = 0x18;
    0x00076b4e mov r0, r6                        |     r0 = r6;
    0x00076b50 add r1, pc                        |     r1 = 0xed714;
    0x00076b52 add r3, pc                        |     r3 = 0xed71a;
    0x00076b54 strd r5, r1, [sp]                 |     __asm ("strd r5, r1, [sp]");
    0x00076b58 movs r1, 1                        |     r1 = 1;
    0x00076b5a blx 0x9494                        |     fcn_00009494 ();
    0x00076b5e mov r0, r6                        |     r0 = r6;
    0x00076b60 mov r1, r7                        |     r1 = r7;
    0x00076b62 bl 0x6b320                        |     fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x00076b66 adds r3, r0, 2                    |     r3 += var_2h;
    0x00076b68 mov r6, r0                        |     r6 = r0;
                                                 |     if (r3 == var_2h) {
    0x00076b6a beq 0x76ba4                       |         goto label_11;
                                                 |     }
    0x00076b6c cmp r0, 0                         |     
                                                 |     if (r0 >= 0) {
    0x00076b6e bge 0x76b02                       |         goto label_0;
                                                 |     }
    0x00076b70 b 0x76b1a                         |     goto label_1;
                                                 | label_9:
    0x00076b72 blx 0x9628                        |     r0 = fcn_00009628 ();
    0x00076b76 ldr r6, [r0]                      |     r6 = *(r0);
    0x00076b78 rsbs r6, r6, 0                    |     r6 -= ;
    0x00076b7a b 0x76b1a                         |     goto label_1;
                                                 | label_6:
    0x00076b7c ldr r1, [pc, 0x48]                |     
    0x00076b7e movs r2, 0x5c                     |     r2 = 0x5c;
    0x00076b80 ldr r3, [pc, 0x48]                |     
    0x00076b82 ldr r0, [pc, 0x4c]                |     
    0x00076b84 add r1, pc                        |     r1 = 0xed750;
    0x00076b86 add r3, pc                        |     r3 = 0xed756;
    0x00076b88 adds r1, 7                        |     r1 += 7;
    0x00076b8a add r0, pc                        |     r0 = 0xed760;
    0x00076b8c bl 0x71518                        |     fcn_00071518 (r0, r1, r2, r3);
    0x00076b8e invalid                           |     
                                                 | label_7:
    0x00076b90 ldr r1, [pc, 0x40]                |     
    0x00076b92 movs r2, 0x5d                     |     r2 = 0x5d;
    0x00076b94 ldr r3, [pc, 0x40]                |     
    0x00076b96 ldr r0, [pc, 0x44]                |     
    0x00076b98 add r1, pc                        |     r1 = 0xed770;
    0x00076b9a add r3, pc                        |     r3 = 0xed776;
    0x00076b9c adds r1, 7                        |     r1 += 7;
    0x00076b9e add r0, pc                        |     r0 = 0xed780;
    0x00076ba0 bl 0x71518                        |     fcn_00071518 (r0, r1, r2, r3);
    0x00076ba2 invalid                           |     
                                                 | label_11:
    0x00076ba4 mvn r6, 2                         |     r6 = ~2;
    0x00076ba8 b 0x76b1a                         |     goto label_1;
                                                 | label_8:
    0x00076baa mvn r6, 0xb                       |     r6 = ~0xb;
    0x00076bae b 0x76b1a                         |     goto label_1;
                                                 | label_10:
    0x00076bb0 blx 0x927c                        |     fprintf_chk ()
    0x00076bb4 subs r6, r6, 7                    |     r6 -= 7;
    0x00076bb6 movs r5, r0                       |     r5 = r0;
    0x00076bb8 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x00076bba movs r0, r0                       |     
    0x00076bbc subs r0, r4, 6                    |     r0 = r4 - 6;
    0x00076bbe movs r5, r0                       |     r5 = r0;
    0x00076bc0 sbc r0, ip, 0x820000              |     __asm ("sbc r0, ip, aav.0x000000ff");
    0x00076bc4 b 0x76c24                         |     
    0x00076c24 vmull.u32 q9, d9, d1              |     __asm ("vmull.u32 q9, d9, d1");
                                                 |     if (r5 == r0) {
    0x00076c28 beq 0x76cdc                       |         goto label_12;
                                                 |     }
    0x00076c2a subs r4, 2                        |     r4 -= 2;
    0x00076c2c cmp r4, 1                         |     
                                                 |     if (r4 < 1) {
    0x00076c2e bls.w 0x76d8e                     |         goto label_13;
                                                 |     }
    0x00076c32 cmp r7, r0                        |     
                                                 |     if (r7 <= r0) {
    0x00076c34 ble 0x76c5c                       |         goto label_14;
                                                 |     }
                                                 | label_5:
    0x00076c36 mvn r4, 0x46                      |     r4 = ~0x46;
                                                 |     do {
                                                 | label_3:
    0x00076c3a ldr r0, [sp, 0x10]                |         r0 = var_10h;
    0x00076c3c blx 0x8dac                        |         fcn_00008dac ();
    0x00076c40 ldr r2, [pc, 0x194]               |         
    0x00076c42 ldr r3, [pc, 0x190]               |         r3 = *(0x76dd6);
    0x00076c44 add r2, pc                        |         r2 = 0xeda20;
    0x00076c46 ldr r3, [r2, r3]                  |         r3 = *(0xeda20);
    0x00076c48 ldr r2, [r3]                      |         r2 = *(0xeda20);
    0x00076c4a ldr r3, [sp, 0x94]                |         r3 = *(arg_94h);
    0x00076c4c eors r2, r3                       |         r2 ^= r3;
    0x00076c4e mov.w r3, 0                       |         r3 = 0;
    0x00076c50 lsls r0, r0, 0xc                  |         r0 <<= 0xc;
                                                 |         if (r0 != r0) {
    0x00076c52 bne.w 0x76dcc                     |             goto label_15;
                                                 |         }
    0x00076c54 strh r3, [r7, 4]                  |         *((r7 + 4)) = r3;
    0x00076c56 mov r0, r4                        |         r0 = r4;
    0x00076c58 add sp, 0x9c                      |         
    0x00076c5a pop {r4, r5, r6, r7, pc}          |         
                                                 | label_14:
    0x00076c5c cmp r5, 0                         |         
                                                 |         if (r5 == 0) {
    0x00076c5e beq 0x76cc6                       |             goto label_16;
                                                 |         }
                                                 | label_2:
    0x00076c60 ldr r2, [pc, 0x178]               |         
    0x00076c62 mov r0, r7                        |         r0 = r7;
    0x00076c64 ldr r3, [pc, 0x178]               |         
    0x00076c66 movs r1, 0                        |         r1 = 0;
    0x00076c68 ldr r4, [pc, 0x178]               |         
    0x00076c6a add r2, pc                        |         r2 = 0xeda4a;
    0x00076c6c str r5, [sp, 8]                   |         var_8h = r5;
    0x00076c6e add r3, pc                        |         r3 = 0xeda52;
    0x00076c70 adds r2, 7                        |         r2 += 7;
    0x00076c72 add r4, pc                        |         r4 = 0xeda5a;
    0x00076c74 str r3, [sp, 4]                   |         var_4h = r3;
    0x00076c76 str r4, [sp]                      |         *(sp) = r4;
    0x00076c78 movw r3, 0x316                    |         r3 = 0x316;
    0x00076c7a adds r3, 0x16                     |         r3 += 0x16;
    0x00076c7c mvn r4, 0x46                      |         r4 = ~0x46;
    0x00076c80 bl 0x71448                        |         fcn_00071448 ();
    0x00076c84 b 0x76c3a                         |         
                                                 |     } while (1);
                                                 | label_16:
    0x00076cc6 ldr r5, [pc, 0x12c]               |     
    0x00076cc8 add r5, pc                        |     r5 = 0xedac2;
    0x00076cca b 0x76c60                         |     goto label_2;
                                                 | label_12:
    0x00076cdc ldr r4, [sp, 0x28]                |     r4 = *(arg_28h);
                                                 |     if (r4 == 0) {
    0x00076cde cbz r4, 0x76d2e                   |         goto label_17;
                                                 |     }
    0x00076ce0 tst.w r6, 2                       |     
    0x00076ce4 ite ne                            |     
                                                 |     if ((r6 & 2) == 0) {
    0x00076ce6 movne r3, 3                       |         r3 = 3;
                                                 |     }
                                                 |     if ((r6 & 2) != 0) {
    0x00076ce8 moveq r3, 7                       |         r3 = 7;
                                                 |     }
    0x00076cea cmp r3, r0                        |     
                                                 |     if (r3 > r0) {
    0x00076cec bgt 0x76c3a                       |         goto label_3;
                                                 |     }
    0x00076cee cmp r5, 0                         |     
                                                 |     if (r5 == 0) {
    0x00076cf0 beq 0x76d88                       |         goto label_18;
                                                 |     }
                                                 | label_4:
    0x00076cf2 ldr r2, [pc, 0x104]               |     
    0x00076cf4 mov r0, r3                        |     r0 = r3;
    0x00076cf6 ldr r6, [pc, 0x104]               |     
    0x00076cf8 movw r3, 0x309                    |     r3 = 0x309;
    0x00076cfc ldr r1, [pc, 0x100]               |     
    0x00076cfe add r2, pc                        |     r2 = 0xedafc;
    0x00076d00 str r4, [sp, 0xc]                 |     var_ch = r4;
    0x00076d02 add r6, pc                        |     r6 = 0xedb04;
    0x00076d04 adds r2, 7                        |     r2 += 7;
    0x00076d06 add r1, pc                        |     r1 = 0xedb0a;
    0x00076d08 str r5, [sp, 8]                   |     var_8h = r5;
    0x00076d0a strd r1, r6, [sp]                 |     __asm ("strd r1, r6, [sp]");
    0x00076d0c asrs r0, r0, 0x18                 |     r0 >>= 0x18;
    0x00076d0e movs r1, 0                        |     r1 = 0;
    0x00076d10 bl 0x71448                        |     fcn_00071448 ();
    0x00076d12 invalid                           |     
    0x00076d16 b 0x76c3a                         |     goto label_3;
                                                 | label_17:
    0x00076d2e cmp r0, 6                         |     
                                                 |     if (r0 <= 6) {
    0x00076d30 ble 0x76c3a                       |         goto label_3;
                                                 |     }
    0x00076d32 ldr r2, [pc, 0xdc]                |     
    0x00076d34 mov r1, r4                        |     r1 = r4;
    0x00076d36 ldr r3, [pc, 0xdc]                |     
    0x00076d38 movs r0, 7                        |     r0 = 7;
    0x00076d3a ldr r6, [pc, 0xdc]                |     
    0x00076d3c add r2, pc                        |     r2 = 0xedb52;
    0x00076d3e str r5, [sp, 8]                   |     var_8h = r5;
    0x00076d40 add r3, pc                        |     r3 = 0xedb5a;
    0x00076d42 adds r2, 7                        |     r2 += 7;
    0x00076d44 add r6, pc                        |     r6 = 0xedb62;
    0x00076d46 str r3, [sp, 4]                   |     var_4h = r3;
    0x00076d48 str r6, [sp]                      |     *(sp) = r6;
    0x00076d4a mov.w r3, 0x30c                   |     r3 = 0x30c;
    0x00076d4c strb r3, [r0, 0xd]                |     *((r0 + 0xd)) = r3;
    0x00076d4e bl 0x71448                        |     fcn_00071448 ();
    0x00076d50 usada8 ip, fp, sl, sb             |     __asm ("usada8 ip, fp, sl, sb");
    0x00076d54 b 0x76c3a                         |     goto label_3;
                                                 | label_18:
    0x00076d88 ldr r5, [pc, 0xa0]                |     
    0x00076d8a add r5, pc                        |     r5 = 0xedbba;
    0x00076d8c b 0x76cf2                         |     goto label_4;
                                                 | label_13:
    0x00076d8e cmp r7, r0                        |     
                                                 |     if (r7 > r0) {
    0x00076d90 bgt.w 0x76c36                     |         goto label_5;
                                                 |     }
    0x00076d94 cbz r5, 0x76dc6                   |     
                                                 |     while (1) {
    0x00076d96 ldr r0, [sp, 0x28]                |         r0 = *(arg_28h);
    0x00076d98 mvn r4, 0x46                      |         r4 = ~0x46;
    0x00076d9c bl 0x78824                        |         r0 = fcn_00078824 (r0);
    0x00076da0 mov r3, r0                        |         r3 = r0;
    0x00076da2 ldr r2, [pc, 0x8c]                |         
    0x00076da4 str r3, [sp, 0xc]                 |         var_ch = r3;
    0x00076da6 mov r0, r7                        |         r0 = r7;
    0x00076da8 ldr r3, [pc, 0x88]                |         
    0x00076daa ldr r1, [pc, 0x8c]                |         
    0x00076dac add r2, pc                        |         r2 = 0xedbe2;
    0x00076dae adds r2, 7                        |         r2 += 7;
    0x00076db0 str r5, [sp, 8]                   |         var_8h = r5;
    0x00076db2 add r3, pc                        |         r3 = 0xedbea;
    0x00076db4 add r1, pc                        |         r1 = 0xedbf2;
    0x00076db6 str r3, [sp, 4]                   |         var_4h = r3;
    0x00076db8 str r1, [sp]                      |         *(sp) = r1;
    0x00076dba movw r3, 0x312                    |         r3 = 0x312;
    0x00076dbe movs r1, 0                        |         r1 = 0;
    0x00076dc0 bl 0x71448                        |         fcn_00071448 ();
    0x00076dc4 b 0x76c3a                         |         goto label_3;
    0x00076dc6 ldr r5, [pc, 0x74]                |         
    0x00076dc8 add r5, pc                        |         r5 = 0xedc0a;
    0x00076dca b 0x76d96                         |         
                                                 |     }
                                                 | label_15:
    0x00076dcc blx 0x927c                        |     fprintf_chk ()
    0x00076dd0 subs r4, r2, 3                    |     r4 = r2 - 3;
    0x00076dd2 movs r5, r0                       |     r5 = r0;
    0x00076dd4 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x00076dd6 movs r0, r0                       |     
    0x00076dd8 subs r0, r0, 2                    |     r0 -= 2;
    0x00076dda movs r5, r0                       |     r5 = r0;
    0x00076ddc and r0, sl, 0x820000              |     r0 = sl & 0x820000;
    0x00076de0 invalid                           |     
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x76e40 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00076e40 ()                                      | void fcn_00076e40 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_2h;
                                                                 |     int16_t var_8h_3;
                                                                 |     int32_t var_bh;
                                                                 |     int32_t var_fh;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_8h_4;
                                                                 |     int32_t var_ch;
                                                                 |     int8_t var_12h;
                                                                 |     int16_t var_0h_2;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00076e40 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x00076e44 mov sb, r2                                        |     sb = r2;
    0x00076e46 ldr r2, [pc, 0x118]                               |     
    0x00076e48 mov r8, r3                                        |     r8 = r3;
    0x00076e4a sub sp, 0x1c                                      |     
    0x00076e4c ldr r3, [pc, 0x114]                               |     r3 = *(0x76f64);
    0x00076e4e add r7, sp, 8                                     |     r7 += var_8h;
    0x00076e50 add r2, pc                                        |     r2 = 0xeddb6;
    0x00076e52 ldr.w sl, [r7, 0x38]                              |     sl = *((r7 + 0x38));
    0x00076e56 mov r6, r1                                        |     r6 = r1;
    0x00076e58 mov r5, r0                                        |     r5 = r0;
    0x00076e5a ldr r3, [r2, r3]                                  |     
    0x00076e5c ldr r3, [r3]                                      |     r3 = *(0xeddb6);
    0x00076e5e str r3, [r7, 0xc]                                 |     var_ch = r3;
    0x00076e60 mov.w r3, 0                                       |     r3 = 0;
    0x00076e64 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00076e66 bne 0x76f2c                                       |         goto label_3;
                                                                 |     }
    0x00076e68 ldr r3, [pc, 0xfc]                                |     
    0x00076e6a sub sp, 0x18                                      |     
    0x00076e6c ldr.w ip, [pc, 0xfc]                              |     
    0x00076e70 add r4, sp, 8                                     |     r4 += var_8h_3;
    0x00076e72 add r3, pc                                        |     r3 = 0xeddde;
    0x00076e74 ldm.w r3, {r0, r1, r2}                            |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
                                                                 |     r2 = *((r3 + 8));
    0x00076e78 add ip, pc                                        |     ip = 0xedde8;
    0x00076e7a stm.w r4, {r0, r1, r2}                            |     *(r4) = r0;
                                                                 |     *((r4 + 4)) = r1;
                                                                 |     *((r4 + 8)) = r2;
    0x00076e7e ldm.w ip!, {r0, r1}                               |     r0 = *(ip!);
                                                                 |     r1 = *((ip! + 4));
    0x00076e82 str.w r0, [r4, 0xb]                               |     __asm ("str.w r0, [var_bh]");
    0x00076e86 str.w r1, [r4, 0xf]                               |     __asm ("str.w r1, [var_fh]");
    0x00076e8a mov r0, r4                                        |     r0 = r4;
    0x00076e8c adds r3, r7, 4                                    |     r3 += var_4h_2;
    0x00076e8e mov r2, r7                                        |     r2 = r7;
    0x00076e90 mov r1, r6                                        |     r1 = r6;
    0x00076e92 bl 0x6a7bc                                        |     fcn_0006a7bc (r0, r1, r2);
    0x00076e96 adds r3, r0, 2                                    |     r3 += var_2h;
    0x00076e98 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r3 == var_2h) {
    0x00076e9a beq 0x76f54                                       |         goto label_4;
                                                                 |     }
    0x00076e9c cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00076e9e blt 0x76eb2                                       |         goto label_1;
                                                                 |     }
    0x00076ea0 ldrd r0, fp, [r7]                                 |     __asm ("ldrd r0, fp, [r7]");
    0x00076ea4 cmp.w fp, 0                                       |     
    0x00076ea6 lsrs r0, r0, 0x1c                                 |     r0 >>= 0x1c;
                                                                 |     if (r0 == r0) {
    0x00076ea8 beq 0x76ed0                                       |         goto label_5;
                                                                 |     }
                                                                 | label_0:
    0x00076eaa str.w r0, [r8]                                    |     __asm ("str.w r0, [r8]");
    0x00076eae str.w fp, [sl]                                    |     __asm ("str.w fp, [sl]");
                                                                 |     do {
                                                                 | label_1:
    0x00076eb2 ldr r2, [pc, 0xbc]                                |         
    0x00076eb4 ldr r3, [pc, 0xac]                                |         r3 = *(0x76f64);
    0x00076eb6 add r2, pc                                        |         r2 = 0xede2c;
    0x00076eb8 ldr r3, [r2, r3]                                  |         r3 = *(0xede2c);
    0x00076eba ldr r2, [r3]                                      |         r2 = *(0xede2c);
    0x00076ebc ldr r3, [r7, 0xc]                                 |         r3 = var_ch;
    0x00076ebe eors r2, r3                                       |         r2 ^= r3;
    0x00076ec0 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00076ec4 bne 0x76f5a                                       |             goto label_6;
                                                                 |         }
    0x00076ec6 mov r0, r4                                        |         r0 = r4;
    0x00076ec8 adds r7, 0x14                                     |         r7 += 0x14;
    0x00076eca mov sp, r7                                        |         
    0x00076ecc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_5:
    0x00076ed0 blx 0x8dac                                        |         fcn_00008dac ();
    0x00076ed4 tst.w sb, 1                                       |         
    0x00076ed8 str.w fp, [r7]                                    |         __asm ("str.w fp, [r7]");
    0x00076edc it eq                                             |         
                                                                 |         if ((sb & 1) != 0) {
    0x00076ede mvneq r4, 1                                       |             r4 = ~1;
                                                                 |         }
    0x00076ee2 beq 0x76eb2                                       |         
                                                                 |     } while ((sb & 1) == 0);
    0x00076ee4 add.w r1, r7, 8                                   |     r1 += var_8h_4;
    0x00076ee8 mov r0, r5                                        |     r0 = r5;
    0x00076eea str.w fp, [r7, 8]                                 |     __asm ("str.w fp, [var_8h_4]");
    0x00076eee bl 0x76ac0                                        |     fcn_00076ac0 (r0, r1, r2, r3);
    0x00076ef0 stc2l p14, c1, [r7, 0x10]!                        |     __asm ("stc2l p14, c1, [r7, 0x10]!");
                                                                 |     if ((sb & 1) >= 0) {
    0x00076ef4 blt 0x76f4c                                       |         
    0x00076ef6 ldr r2, [pc, 0x7c]                                |         
    0x00076ef8 mov r3, fp                                        |         r3 = fp;
    0x00076efa ldr r0, [pc, 0x7c]                                |         
    0x00076efc ldr r1, [r7, 8]                                   |         r1 = var_8h_4;
    0x00076efe add r2, pc                                        |         r2 = 0xede78;
    0x00076f00 add r0, pc                                        |         r0 = 0xede7e;
    0x00076f02 bl 0x7a8a8                                        |         r0 = fcn_0007a8a8 (r0, r1);
    0x00076f06 mov r5, r0                                        |         r5 = r0;
    0x00076f08 str r0, [r7]                                      |         *(r7) = r0;
                                                                 |         if (r0 != 0) {
    0x00076f0a cbz r0, 0x76f48                                   |             
    0x00076f0c blx 0x8f38                                        |             r0 = fcn_00008f38 ();
    0x00076f10 cmp r6, r0                                        |             
    0x00076f12 str r0, [r7, 4]                                   |             var_4h_2 = r0;
    0x00076f14 ite lo                                            |             
                                                                 |             if (r6 >= r0) {
    0x00076f16 strblo fp, [r5, r6]                               |                 *((r5 + r6)) = fp;
                                                                 |             }
                                                                 |             if (r6 >= r0) {
    0x00076f1a movs r4, 1                                        |                 r4 = 1;
                                                                 |             }
    0x00076f1c ldr r0, [r7, 8]                                   |             r0 = var_8h_4;
    0x00076f1e it lo                                             |             
                                                                 |             if (r4 >= 1) {
    0x00076f20 movlo r4, 0                                       |                 r4 = 0;
                                                                 |             }
    0x00076f22 blx 0x8dac                                        |             fcn_00008dac ();
    0x00076f26 ldrd r0, fp, [r7]                                 |             __asm ("ldrd r0, fp, [r7]");
    0x00076f2a b 0x76eaa                                         |             goto label_0;
                                                                 | label_3:
    0x00076f2c ldr r3, [pc, 0x4c]                                |             
    0x00076f2e sub sp, 0x20                                      |             
    0x00076f30 add r4, sp, 8                                     |             r4 += var_8h_2;
    0x00076f32 str r0, [sp]                                      |             *(sp) = r0;
    0x00076f34 movs r2, 0x1b                                     |             r2 = 0x1b;
    0x00076f36 movs r1, 1                                        |             r1 = 1;
    0x00076f38 add r3, pc                                        |             r3 = 0xedeb8;
    0x00076f3a mov r0, r4                                        |             r0 = r4;
    0x00076f3c str r3, [sp, 4]                                   |             var_4h = r3;
    0x00076f3e ldr r3, [pc, 0x40]                                |             r3 = *(0x76f82);
    0x00076f40 add r3, pc                                        |             r3 += pc;
    0x00076f42 blx 0x9494                                        |             fcn_00009494 ();
    0x00076f44 invalid                                           |             
                                                                 |         }
    0x00076f48 mvn r4, 0xb                                       |         r4 = ~0xb;
                                                                 |     }
    0x00076f4c ldr r0, [r7, 8]                                   |     r0 = var_8h_4;
    0x00076f4e blx 0x8dac                                        |     fcn_00008dac ();
    0x00076f50 vabd.s32 d14, d30, d30                            |     __asm ("vabd.s32 d14, d30, d30");
                                                                 | label_4:
    0x00076f54 mvn r4, 2                                         |     r4 = ~2;
    0x00076f58 b 0x76eb2                                         |     goto label_1;
                                                                 | label_6:
    0x00076f5a invalid                                           |     
                                                                 | label_2:
    0x00076f5c invalid                                           |     
                                                                 |     do {
    0x00076f60 adds r4, r6, 1                                    |         r4 = r6 + 1;
    0x00076f62 movs r5, r0                                       |         r5 = r0;
    0x00076f64 lsls r0, r0, 0x13                                 |         r0 <<= 0x13;
    0x00076f66 movs r0, r0                                       |         
    0x00076f68 bgt 0x76f60                                       |         
                                                                 |     } while (r0 > r0);
    0x00076f6a movs r1, r0                                       |     r1 = r0;
    0x00076f6c subs r0, r2, 0                                    |     r0 = r2 - 0;
    0x00076f6e movs r1, r0                                       |     r1 = r0;
    0x00076f70 adds r6, r1, 0                                    |     r6 = r1 + 0;
    0x00076f72 movs r5, r0                                       |     r5 = r0;
                                                                 |     if (r5 < r0) {
    0x00076f74 blt 0x76f5c                                       |         goto label_2;
                                                                 |     }
    0x00076f76 movs r2, r0                                       |     r2 = r0;
    0x00076f78 invalid                                           |     
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7714c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0007714c ()                                      | void fcn_0007714c (int16_t arg_0h, int16_t arg1, uint32_t arg2, uint32_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_2h;
                                                                 |     int16_t var_8h;
                                                                 |     int32_t var_4h_2;
                                                                 |     int16_t var_8h_3;
                                                                 |     int32_t var_ch;
                                                                 |     int16_t var_0h_2;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x0007714c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00077150 sub sp, 0x1c                                      |     
    0x00077152 ldr r4, [pc, 0x18c]                               |     
    0x00077154 mov.w fp, 0                                       |     
    0x00077158 add r7, sp, 8                                     |     r7 += var_8h;
    0x0007715a ldr r3, [pc, 0x188]                               |     r3 = *(0x772e6);
    0x0007715c add r4, pc                                        |     r4 = 0xee442;
    0x0007715e ldr r3, [r4, r3]                                  |     
    0x00077160 subs r4, r0, 0                                    |     r4 -= arg_0h;
    0x00077162 ldr r3, [r3]                                      |     r3 = *(0xee442);
    0x00077164 str r3, [r7, 0xc]                                 |     var_ch = r3;
    0x00077166 mov.w r3, 0                                       |     r3 = 0;
    0x0007716a str.w fp, [r7, 4]                                 |     __asm ("str.w fp, [var_4h_2]");
    0x0007716c add sp, 0x10                                      |     
                                                                 |     if (r4 < arg_0h) {
    0x0007716e blt 0x7725c                                       |         goto label_2;
                                                                 |     }
    0x00077170 mov r5, r1                                        |     r5 = r1;
    0x00077172 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00077174 beq 0x77272                                       |         goto label_3;
                                                                 |     }
    0x00077176 mov r8, r2                                        |     r8 = r2;
    0x00077178 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0007717a beq.w 0x77288                                     |         goto label_4;
                                                                 |     }
    0x0007717e cbnz r4, 0x771c0                                  |     
                                                                 |     while (r0 == r4) {
    0x00077180 mov r0, r5                                        |         r0 = r5;
    0x00077182 blx 0x8b80                                        |         r0 = ftello64 ();
    0x00077186 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00077188 beq 0x77254                                       |             goto label_5;
                                                                 |         }
    0x0007718a blx 0x9200                                        |         r0 = fcn_00009200 ();
    0x0007718e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00077190 beq.w 0x772d2                                     |             goto label_6;
                                                                 |         }
    0x00077194 movs r4, 1                                        |         r4 = 1;
    0x00077196 str.w r0, [r8]                                    |         __asm ("str.w r0, [r8]");
                                                                 | label_0:
    0x0007719a ldr r0, [r7, 4]                                   |         r0 = var_4h_2;
    0x0007719c bl 0x69b30                                        |         fcn_00069b30 (r0, r1, r2, r3);
    0x000771a0 ldr r2, [pc, 0x144]                               |         
    0x000771a2 ldr r3, [pc, 0x140]                               |         r3 = *(0x772e6);
    0x000771a4 add r2, pc                                        |         r2 = 0xee490;
    0x000771a6 ldr r3, [r2, r3]                                  |         r3 = *(0xee490);
    0x000771a8 ldr r2, [r3]                                      |         r2 = *(0xee490);
    0x000771aa ldr r3, [r7, 0xc]                                 |         r3 = var_ch;
    0x000771ac eors r2, r3                                       |         r2 ^= r3;
    0x000771ae mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000771b2 bne.w 0x772ce                                     |             goto label_7;
                                                                 |         }
    0x000771b6 mov r0, r4                                        |         r0 = r4;
    0x000771b8 adds r7, 0x14                                     |         r7 += 0x14;
    0x000771ba mov sp, r7                                        |         
    0x000771bc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x000771c0 bl 0x76a30                                        |         r0 = fcn_00076a30 (r0);
    0x000771c4 cmp r0, r4                                        |         
    0x000771c6 beq 0x77180                                       |         
                                                                 |     }
    0x000771c8 ldr r2, [pc, 0x120]                               |     
    0x000771ca sub sp, 0x20                                      |     
    0x000771cc ldr r3, [pc, 0x120]                               |     
    0x000771ce add r6, sp, 8                                     |     r6 += var_8h_2;
    0x000771d0 movs r1, 1                                        |     r1 = 1;
    0x000771d2 str r4, [sp]                                      |     *(sp) = r4;
    0x000771d4 add r2, pc                                        |     r2 = 0xee4c4;
    0x000771d6 mov r0, r6                                        |     r0 = r6;
    0x000771d8 add r3, pc                                        |     r3 = 0xee4cc;
    0x000771da str r2, [sp, 4]                                   |     var_4h = r2;
    0x000771dc movs r2, 0x1b                                     |     r2 = 0x1b;
    0x000771de blx 0x9494                                        |     fcn_00009494 ();
    0x000771e2 ldr r1, [pc, 0x110]                               |     
    0x000771e4 adds r2, r7, 4                                    |     r2 += var_4h_2;
    0x000771e6 mov r0, r6                                        |     r0 = r6;
    0x000771e8 add r1, pc                                        |     r1 = 0xee4e2;
    0x000771ea bl 0x6a520                                        |     fcn_0006a520 (r0);
    0x000771ee adds r3, r0, 2                                    |     r3 += var_2h;
    0x000771f0 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r3 == var_2h) {
    0x000771f2 beq 0x772c8                                       |         goto label_8;
                                                                 |     }
    0x000771f4 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000771f6 blt 0x7719a                                       |         goto label_0;
                                                                 |     }
    0x000771f8 mov r0, r5                                        |     r0 = r5;
    0x000771fa mov r6, fp                                        |     r6 = fp;
    0x000771fc blx 0x8f38                                        |     fcn_00008f38 ();
    0x00077200 add.w sl, r7, 8                                   |     sl += var_8h_3;
    0x00077204 mov sb, r0                                        |     sb = r0;
    0x00077206 str.w fp, [r7, 8]                                 |     __asm ("str.w fp, [var_8h_3]");
    0x00077208 add sp, 0x20                                      |     
    0x0007720a b 0x77236                                         |     
                                                                 |     while (r4 >= r0) {
                                                                 |         if (r0 == 0) {
    0x0007720c beq 0x7729e                                       |             goto label_9;
                                                                 |         }
    0x0007720e mov r2, sb                                        |         r2 = sb;
    0x00077210 mov r1, r5                                        |         r1 = r5;
    0x00077212 mov r0, fp                                        |         r0 = fp;
    0x00077214 add r6, r4                                        |         r6 += r4;
    0x00077216 blx 0x94b8                                        |         r0 = fcn_000094b8 ();
                                                                 |         if (r0 == 0) {
    0x0007721a cbnz r0, 0x77224                                  |             
    0x0007721c ldrb.w r2, [fp, sb]                               |             r2 = *((fp + sb));
    0x00077220 cmp r2, 0x3d                                      |             
                                                                 |             if (r2 == 0x3d) {
    0x00077222 beq 0x772b4                                       |                 goto label_10;
                                                                 |             }
                                                                 |         }
    0x00077224 mov r0, fp                                        |         r0 = fp;
    0x00077226 blx 0x8dac                                        |         fcn_00008dac ();
    0x0007722a cmp.w r6, 0x500000                                |         
    0x0007722e mov.w r3, 0                                       |         r3 = 0;
    0x00077232 str r3, [r7, 8]                                   |         var_8h_3 = r3;
                                                                 |         if (r6 > 0x500000) {
    0x00077234 bhi 0x772aa                                       |             goto label_11;
                                                                 |         }
    0x00077236 ldr r0, [r7, 4]                                   |         r0 = var_4h_2;
    0x00077238 mov r3, sl                                        |         r3 = sl;
    0x0007723a movs r2, 1                                        |         r2 = 1;
    0x0007723c mov.w r1, 0x100000                                |         r1 = 0x100000;
    0x0007723e asrs r0, r0, 6                                    |         r0 >>= 6;
    0x00077240 bl 0x6b144                                        |         r0 = fcn_0006b144 (r0, r1, r2, r3);
    0x00077244 subs r4, r0, 0                                    |         r4 = r0 - 0;
    0x00077246 ldr.w fp, [r7, 8]                                 |         fp = var_8h_3;
    0x0007724a bge 0x7720c                                       |         
                                                                 |     }
                                                                 |     do {
                                                                 | label_1:
    0x0007724c mov r0, fp                                        |         r0 = fp;
    0x0007724e blx 0x8dac                                        |         fcn_00008dac ();
    0x00077252 b 0x7719a                                         |         goto label_0;
                                                                 | label_5:
    0x00077254 mov r4, r0                                        |         r4 = r0;
    0x00077256 str.w r0, [r8]                                    |         __asm ("str.w r0, [r8]");
    0x0007725a b 0x7719a                                         |         goto label_0;
                                                                 | label_2:
    0x0007725c ldr r1, [pc, 0x98]                                |         
    0x0007725e movw r2, 0x387                                    |         r2 = 0x387;
    0x00077260 adds r2, 0x87                                     |         r2 += 0x87;
    0x00077262 ldr r3, [pc, 0x98]                                |         
    0x00077264 ldr r0, [pc, 0x98]                                |         
    0x00077266 add r1, pc                                        |         r1 = 0xee562;
    0x00077268 add r3, pc                                        |         r3 = 0xee56a;
    0x0007726a adds r1, 7                                        |         r1 += 7;
    0x0007726c add r0, pc                                        |         r0 = 0xee570;
    0x0007726e bl 0x71518                                        |         fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_3:
    0x00077272 ldr r1, [pc, 0x90]                                |         
    0x00077274 mov.w r2, 0x388                                   |         r2 = 0x388;
    0x00077278 ldr r3, [pc, 0x8c]                                |         
    0x0007727a ldr r0, [pc, 0x90]                                |         
    0x0007727c add r1, pc                                        |         r1 = 0xee586;
    0x0007727e add r3, pc                                        |         r3 = 0xee58a;
    0x00077280 adds r1, 7                                        |         r1 += 7;
    0x00077282 add r0, pc                                        |         r0 = 0xee594;
    0x00077284 bl 0x71518                                        |         fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_4:
    0x00077288 ldr r1, [pc, 0x84]                                |         
    0x0007728a movw r2, 0x389                                    |         r2 = 0x389;
    0x0007728e ldr r3, [pc, 0x84]                                |         
    0x00077290 ldr r0, [pc, 0x84]                                |         
    0x00077292 add r1, pc                                        |         r1 = 0xee5a6;
    0x00077294 add r3, pc                                        |         r3 = 0xee5ae;
    0x00077296 adds r1, 7                                        |         r1 += 7;
    0x00077298 add r0, pc                                        |         r0 = 0xee5b4;
    0x0007729a bl 0x71518                                        |         fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_9:
    0x0007729e mov r0, fp                                        |         r0 = fp;
    0x000772a0 blx 0x8dac                                        |         fcn_00008dac ();
    0x000772a4 str.w r4, [r8]                                    |         __asm ("str.w r4, [r8]");
    0x000772a8 b 0x7719a                                         |         goto label_0;
                                                                 | label_11:
    0x000772aa mov.w fp, 0                                       |         
    0x000772ae mvn r4, 0x68                                      |         r4 = ~0x68;
    0x000772b2 b 0x7724c                                         |         
                                                                 |     } while (1);
                                                                 | label_10:
    0x000772b4 add.w r0, sb, 1                                   |     r0 = sb + 1;
    0x000772b8 add r0, fp                                        |     r0 += fp;
    0x000772ba blx 0x9200                                        |     r0 = fcn_00009200 ();
                                                                 |     if (r0 != 0) {
    0x000772be cbz r0, 0x772d8                                   |         
    0x000772c0 movs r4, 1                                        |         r4 = 1;
    0x000772c2 str.w r0, [r8]                                    |         __asm ("str.w r0, [r8]");
    0x000772c6 b 0x7724c                                         |         goto label_1;
                                                                 | label_8:
    0x000772c8 mvn r4, 2                                         |         r4 = ~2;
    0x000772cc b 0x7719a                                         |         goto label_0;
                                                                 | label_7:
    0x000772ce blx 0x927c                                        |         fprintf_chk ()
                                                                 | label_6:
    0x000772d2 mvn r4, 0xb                                       |         r4 = ~0xb;
    0x000772d6 b 0x7719a                                         |         goto label_0;
                                                                 |     }
    0x000772d8 mvn r4, 0xb                                       |     r4 = ~0xb;
    0x000772dc b 0x7724c                                         |     goto label_1;
                                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x77350 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00077350 ()                      | void fcn_00077350 (int16_t arg1) {
                                                 |     int32_t var_0h_2;
                                                 |     int32_t var_0h_3;
                                                 |     int16_t var_8h_2;
                                                 |     int16_t var_2h;
                                                 |     int16_t var_8h;
                                                 |     int16_t var_7h;
                                                 |     int32_t var_8h_3;
                                                 |     int32_t var_ch;
                                                 |     int16_t var_0h;
                                                 |     r0 = arg1;
    0x00077350 ldr r1, [pc, 0xc8]                |     
    0x00077352 movs r3, 0                        |     r3 = 0;
    0x00077354 ldr r2, [pc, 0xc8]                |     r2 = *(0x77420);
    0x00077356 push {r4, r5, r7, lr}             |     
    0x00077358 sub sp, 0x18                      |     
    0x0007735a add r1, pc                        |     r1 = 0xee77a;
    0x0007735c subs r4, r0, 0                    |     r4 = r0 - 0;
    0x0007735e add r7, sp, 8                     |     r7 += var_8h;
    0x00077360 ldr r2, [r1, r2]                  |     
    0x00077362 ldr r2, [r2]                      |     r2 = *(0xee77a);
    0x00077364 str r2, [r7, 0xc]                 |     var_ch = r2;
    0x00077366 mov.w r2, 0                       |     r2 = 0;
    0x00077368 lsls r0, r0, 8                    |     r0 <<= 8;
    0x0007736a str r3, [r7, 8]                   |     var_8h_3 = r3;
                                                 |     if (r0 < r0) {
    0x0007736c blt 0x773fe                       |         goto label_1;
                                                 |     }
    0x0007736e it eq                             |     
                                                 |     if (r0 != r0) {
    0x00077370 moveq r5, 0x52                    |         r5 = 0x52;
                                                 |     }
                                                 |     if (r0 == r0) {
    0x00077372 beq 0x773d6                       |         goto label_0;
                                                 |     }
    0x00077374 bl 0x76a30                        |     r0 = fcn_00076a30 (r0);
    0x00077378 cmp r0, r4                        |     
                                                 |     if (r0 == r4) {
    0x0007737a beq 0x773f8                       |         goto label_2;
                                                 |     }
    0x0007737c ldr r0, [pc, 0xa4]                |     
    0x0007737e sub sp, 0x18                      |     
    0x00077380 ldr r3, [pc, 0xa4]                |     
    0x00077382 add r5, sp, 8                     |     r5 += var_8h_2;
    0x00077384 movs r2, 0x18                     |     r2 = 0x18;
    0x00077386 movs r1, 1                        |     r1 = 1;
    0x00077388 add r0, pc                        |     r0 = 0xee7b0;
    0x0007738a add r3, pc                        |     r3 = 0xee7b6;
    0x0007738c strd r4, r0, [sp]                 |     __asm ("strd r4, r0, [sp]");
    0x0007738e ands r0, r0                       |     r0 &= r0;
    0x00077390 mov r0, r5                        |     r0 = r5;
    0x00077392 blx 0x9494                        |     fcn_00009494 ();
    0x00077396 mov r0, r5                        |     r0 = r5;
    0x00077398 add.w r1, r7, 8                   |     r1 += var_8h_3;
    0x0007739c bl 0x6b320                        |     fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x000773a0 adds r3, r0, 2                    |     r3 += var_2h;
    0x000773a2 mov r5, r0                        |     r5 = r0;
    0x000773a4 ldr r4, [r7, 8]                   |     r4 = var_8h_3;
    0x000773a6 it eq                             |     
                                                 |     if (r3 != var_2h) {
    0x000773a8 mvneq r5, 2                       |         r5 = ~2;
                                                 |     }
    0x000773aa lsls r2, r0, 0x14                 |     r2 = r0 << 0x14;
                                                 |     if (r2 == r0) {
    0x000773ac beq 0x773d6                       |         goto label_0;
                                                 |     }
    0x000773ae cmp r5, 0                         |     
                                                 |     if (r5 < 0) {
    0x000773b0 blt 0x773d6                       |         goto label_0;
                                                 |     }
    0x000773b2 movs r1, 0x29                     |     r1 = 0x29;
    0x000773b4 mov r0, r4                        |     r0 = r4;
    0x000773b6 blx 0x8c90                        |     fcn_00008c90 ();
    0x000773b8 stcl p3, c11, [ip], -0x140        |     __asm ("stcl p3, c11, [ip], -aav.0x000000ff");
    0x000773bc ldr r1, [pc, 0x6c]                |     
    0x000773be adds r2, r7, 7                    |     r2 += var_7h;
    0x000773c0 adds r0, 1                        |     r0++;
    0x000773c2 add r1, pc                        |     r1 = 0xee7f2;
    0x000773c4 blx 0x8b20                        |     r0 = kmod_list_next ();
    0x000773c8 cmp r0, 1                         |     
    0x000773ca ittee ne                          |     
                                                 |     if (r0 == 1) {
    0x000773cc ldrne r4, [r7, 8]                 |         r4 = *((r7 + 8));
                                                 |     }
                                                 |     if (r0 == 1) {
    0x000773ce mvnne r5, 4                       |         r5 = ~4;
                                                 |     }
                                                 |     if (r0 != 1) {
    0x000773d2 ldrbeq r5, [r7, 7]                |         r5 = var_7h;
                                                 |     }
    0x000773d4 ldr r4, [r7, 8]                   |     r4 = var_8h_3;
                                                 |     while (1) {
                                                 | label_0:
    0x000773d6 mov r0, r4                        |         r0 = r4;
    0x000773d8 blx 0x8dac                        |         fcn_00008dac ();
    0x000773dc ldr r2, [pc, 0x50]                |         
    0x000773de ldr r3, [pc, 0x40]                |         r3 = *(0x77422);
    0x000773e0 add r2, pc                        |         r2 = 0xee814;
    0x000773e2 ldr r3, [r2, r3]                  |         r3 = *(0xee814);
    0x000773e4 ldr r2, [r3]                      |         r2 = *(0xee814);
    0x000773e6 ldr r3, [r7, 0xc]                 |         r3 = var_ch;
    0x000773e8 eors r2, r3                       |         r2 ^= r3;
    0x000773ea mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x000773ee bne 0x77418                       |             goto label_3;
                                                 |         }
    0x000773f0 mov r0, r5                        |         r0 = r5;
    0x000773f2 adds r7, 0x10                     |         r7 += 0x10;
    0x000773f4 mov sp, r7                        |         
    0x000773f6 pop {r4, r5, r7, pc}              |         
                                                 | label_2:
    0x000773f8 ldr r4, [r7, 8]                   |         r4 = var_8h_3;
    0x000773fa movs r5, 0x52                     |         r5 = 0x52;
    0x000773fc b 0x773d6                         |         
                                                 |     }
                                                 | label_1:
    0x000773fe ldr r1, [pc, 0x34]                |     
    0x00077400 movs r2, 0x3e                     |     r2 = 0x3e;
    0x00077402 ldr r3, [pc, 0x34]                |     
    0x00077404 ldr r0, [pc, 0x34]                |     
    0x00077406 add r1, pc                        |     r1 = 0xee840;
    0x00077408 add r3, pc                        |     r3 = 0xee846;
    0x0007740a adds r1, 7                        |     r1 += 7;
    0x0007740c add r0, pc                        |     r0 = 0xee84c;
    0x0007740e bl 0x71518                        |     fcn_00071518 (r0, r1, r2, r3);
    0x00077412 mvn r5, 4                         |     r5 = ~4;
    0x00077416 b 0x773d6                         |     goto label_0;
                                                 |     do {
                                                 | label_3:
    0x00077418 blx 0x927c                        |         fprintf_chk ()
    0x0007741c asrs r2, r5, 0x1d                 |         r2 = r5 >> 0x1d;
    0x0007741e movs r5, r0                       |         r5 = r0;
    0x00077420 lsls r0, r0, 0x13                 |         r0 <<= 0x13;
    0x00077422 movs r0, r0                       |         
    0x00077424 cdp p0, 2, c0, c8, c2, 0          |         __asm ("cdp p0, 2, c0, c8, c2, 0");
    0x00077428 bvc 0x77418                       |         __asm ("bvc aav.0x000000ff");
                                                 |     } while (1);
    0x0007742a movs r1, r0                       |     r1 = r0;
    0x0007742c ldcl p0, c0, [r6, 8]!             |     __asm ("ldcl p0, c0, [r6, 8]!");
    0x00077430 asrs r4, r4, 0x1b                 |     r4 >>= 0x1b;
    0x00077432 movs r5, r0                       |     r5 = r0;
    0x00077434 stcl p0, c0, [lr], -8             |     __asm ("stcl p0, c0, [lr], -8");
    0x00077438 invalid                           |     
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x77a6c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00077a6c ()                                      | void fcn_00077a6c () {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_a4h;
                                                                 | label_1:
    0x00077a00 strd r3, r7, [sp, 8]                              |     __asm ("strd r3, r7, [sp, 8]");
    0x00077a04 movs r1, 0                                        |     r1 = 0;
    0x00077a06 ldr.w r3, [pc, 0x540]                             |     
    0x00077a0a movs r0, 7                                        |     r0 = 7;
    0x00077a0c ldr.w r2, [pc, 0x53c]                             |     
    0x00077a10 add r3, pc                                        |     r3 = 0xef95e;
    0x00077a12 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00077a14 add r2, pc                                        |     r2 = 0xef964;
    0x00077a16 ldr.w r3, [pc, 0x538]                             |     
    0x00077a1a adds r2, 7                                        |     r2 += 7;
    0x00077a1c add r3, pc                                        |     r3 = 0xef972;
    0x00077a1e str r3, [sp]                                      |     *(sp) = r3;
    0x00077a20 movw r3, 0x531                                    |     r3 = 0x531;
    0x00077a22 strh r1, [r6, r4]                                 |     *((r6 + r4)) = r1;
    0x00077a24 bl 0x71448                                        |     fcn_00071448 ();
    0x00077a28 lsls r3, r4, 0x18                                 |     r3 = r4 << 0x18;
                                                                 |     if (r3 >= r4) {
    0x00077a2a bpl 0x77a4e                                       |         goto label_3;
                                                                 |     }
    0x00077a2c ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00077a2e cmp r3, 0                                         |     
    0x00077a30 bne.w 0x77e06                                     |     
                                                                 |     while (1) {
    0x00077a34 cmp.w sl, 0                                       |         
    0x00077a38 mov r0, r6                                        |         r0 = r6;
    0x00077a3a ite eq                                            |         
                                                                 |         if (sl != 0) {
    0x00077a3c moveq r2, sl                                      |             r2 = sl;
                                                                 |         }
                                                                 |         if (sl == 0) {
    0x00077a3e movne r2, 3                                       |             r2 = 3;
                                                                 |         }
    0x00077a40 mov r1, r7                                        |         r1 = r7;
    0x00077a42 bl 0x76be0                                        |         r0 = fcn_00076be0 (r0, r1, r2);
    0x00077a46 subs r4, r0, 0                                    |         r4 = r0 - 0;
                                                                 |         if (r4 >= r0) {
    0x00077a48 blt 0x77a5a                                       |             
                                                                 |             if (r4 != r0) {
    0x00077a4a bne.w 0x77e60                                     |                 goto label_4;
                                                                 |             }
                                                                 | label_3:
    0x00077a4e movs r4, 1                                        |             r4 = 1;
    0x00077a50 cmp.w r8, 0                                       |             
    0x00077a52 lsrs r0, r0, 0x1c                                 |             r0 >>= 0x1c;
                                                                 |             if (r0 == r0) {
    0x00077a54 beq 0x77a5a                                       |                 goto label_0;
                                                                 |             }
    0x00077a56 str.w r7, [r8]                                    |             __asm ("str.w r7, [r8]");
                                                                 |         }
                                                                 |         if (r5 != 0) {
                                                                 | label_0:
    0x00077a5a cbz r5, 0x77a66                                   |             
    0x00077a5c movs r2, 0                                        |             r2 = 0;
    0x00077a5e mov r1, r5                                        |             r1 = r5;
    0x00077a60 movs r0, 2                                        |             r0 = 2;
    0x00077a62 blx 0x9258                                        |             sigaction ();
                                                                 |         }
    0x00077a66 ldr.w r2, [pc, 0x4ec]                             |         r2 = *(0x77f56);
    0x00077a6a invalid                                           |         
    0x00077a6c adds r4, 0xd4                                     |         r4 += 0xd4;
    0x00077a6e add r2, pc                                        |         r2 += pc;
    0x00077a70 ldr r3, [r2, r3]                                  |         r3 = *((r2 + r3));
    0x00077a72 ldr r2, [r3]                                      |         r2 = *(r3);
    0x00077a74 ldr r3, [sp, 0x124]                               |         r3 = *((sp + 0x124));
    0x00077a76 eors r2, r3                                       |         r2 ^= r3;
    0x00077a78 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00077a7c bne.w 0x77ece                                     |             goto label_5;
                                                                 |         }
    0x00077a80 mov r0, r4                                        |         r0 = r4;
    0x00077a82 add sp, 0x12c                                     |         
    0x00077a84 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x00077e06 add r4, sp, 0xa4                                  |         r4 += var_a4h;
    0x00077e08 movs r2, 0x80                                     |         r2 = 0x80;
    0x00077e0a add r1, sp, 0x24                                  |         r1 += var_24h;
    0x00077e0c mov r0, r4                                        |         r0 = r4;
    0x00077e0e blx 0x8f9c                                        |         fcn_00008f9c ();
    0x00077e12 movs r1, 0x11                                     |         r1 = 0x11;
    0x00077e14 mov r0, r4                                        |         r0 = r4;
    0x00077e16 blx 0x9038                                        |         r0 = fcn_00009038 ();
    0x00077e1a cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x00077e1c blt 0x77eb8                                       |             goto label_6;
                                                                 |         }
    0x00077e1e mov r1, r4                                        |         r1 = r4;
    0x00077e20 movs r2, 0                                        |         r2 = 0;
    0x00077e22 movs r0, 2                                        |         r0 = 2;
    0x00077e24 blx 0x9258                                        |         sigaction ();
    0x00077e28 b 0x77a34                                         |         
                                                                 |     }
                                                                 | label_4:
    0x00077e60 mvn r4, 0x46                                      |     r4 = ~0x46;
    0x00077e64 b 0x77a5a                                         |     goto label_0;
                                                                 |     do {
                                                                 | label_2:
    0x00077e74 movs r0, 1                                        |         r0 = 1;
    0x00077e76 blx 0x8d68                                        |         fcn_00008d68 ();
    0x00077e7a ldr r3, [pc, 0x16c]                               |         
    0x00077e7c add r3, pc                                        |         r3 = 0xefe6a;
    0x00077e7e b 0x77a00                                         |         goto label_1;
                                                                 | label_6:
    0x00077eb8 ldr r1, [pc, 0x148]                               |         
    0x00077eba movw r2, 0x537                                    |         r2 = 0x537;
    0x00077ebe ldr r3, [pc, 0x148]                               |         
    0x00077ec0 ldr r0, [pc, 0x148]                               |         
    0x00077ec2 add r1, pc                                        |         r1 = 0xefeca;
    0x00077ec4 add r3, pc                                        |         r3 = 0xefed2;
    0x00077ec6 adds r1, 7                                        |         r1 += 7;
    0x00077ec8 add r0, pc                                        |         r0 = 0xefed8;
    0x00077eca bl 0x71518                                        |         r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_5:
    0x00077ece blx 0x927c                                        |         fprintf_chk ()
    0x00077ed2 bl 0x70bf8                                        |         r0 = fcn_00070bf8 ();
    0x00077ed6 cmp r0, sb                                        |         
    0x00077ed8 blt 0x77e74                                       |         
                                                                 |     } while (r0 < sb);
    0x00077eda ldr r2, [pc, 0x134]                               |     
    0x00077edc mov r1, r6                                        |     r1 = r6;
    0x00077ede ldr r4, [pc, 0x134]                               |     
    0x00077ee0 mov r0, sb                                        |     r0 = sb;
    0x00077ee2 ldr r3, [pc, 0x134]                               |     
    0x00077ee4 add r2, pc                                        |     r2 = 0xefefa;
    0x00077ee6 add r4, pc                                        |     r4 = 0xeff00;
    0x00077ee8 adds r2, 7                                        |     r2 += 7;
    0x00077eea add r3, pc                                        |     r3 = 0xeff08;
    0x00077eec strd r3, r4, [sp]                                 |     __asm ("strd r3, r4, [sp]");
    0x00077ef0 movw r3, 0x563                                    |     r3 = 0x563;
    0x00077ef4 bl 0x71448                                        |     fcn_00071448 ();
    0x00077ef8 b 0x77e74                                         |     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/libexec/udevadm @ 0x78034 */
                                                         | #include <stdint.h>
                                                         |  
                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                         |  
    ; (fcn) fcn.00078034 ()                              | void fcn_00078034 (int16_t arg_30h, int16_t arg_34h, int16_t arg_3ch, int16_t arg_44h, int16_t arg_48h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     int16_t var_0h;
                                                         |     int32_t var_0h_2;
                                                         |     int16_t var_8h;
                                                         |     int16_t var_ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x00078034 push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x00078038 mov r4, r2                                |     r4 = r2;
    0x0007803a ldr r2, [pc, 0xdc]                        |     
    0x0007803c mov r5, r3                                |     r5 = r3;
    0x0007803e sub sp, 0x14                              |     
    0x00078040 mov r6, r1                                |     r6 = r1;
    0x00078042 ldr r3, [pc, 0xd8]                        |     r3 = *(0x7811e);
    0x00078044 mov r1, r4                                |     r1 = r4;
    0x00078046 add r2, pc                                |     r2 = 0xf0164;
    0x00078048 ldr.w sb, [sp, 0x30]                      |     sb = *(arg_30h);
    0x0007804c ldr r7, [sp, 0x48]                        |     r7 = *(arg_48h);
    0x0007804e ldr r3, [r2, r3]                          |     
    0x00078050 mov r2, r5                                |     r2 = r5;
    0x00078052 ldr r3, [r3]                              |     r3 = *(0xf0164);
    0x00078054 str r3, [sp, 0xc]                         |     var_ch = r3;
    0x00078056 mov.w r3, 0                               |     r3 = 0;
    0x00078058 lsls r0, r0, 0xc                          |     r0 <<= 0xc;
    0x0007805a bic r3, sb, 0x324                         |     r3 = BIT_MASK (sb, 0x324);
    0x0007805e orr r3, r3, 4                             |     r3 |= 4;
    0x00078062 str r7, [sp]                              |     *(sp) = r7;
    0x00078064 bl 0x77968                                |     r0 = fcn_00077968 (r0, r1, r2, r3, r4);
    0x00078068 cmp r0, 0                                 |     
                                                         |     if (r0 < 0) {
    0x0007806a blt 0x78072                               |         goto label_0;
                                                         |     }
    0x0007806c it ne                                     |     
                                                         |     if (r0 == 0) {
    0x0007806e movne r0, 1                               |         r0 = 1;
                                                         |     }
    0x00078070 beq 0x7808c                               |     
                                                         |     while (r7 == 0) {
                                                         | label_0:
    0x00078072 ldr r2, [pc, 0xac]                        |         
    0x00078074 ldr r3, [pc, 0xa4]                        |         r3 = *(0x7811c);
    0x00078076 add r2, pc                                |         r2 = 0xf019c;
    0x00078078 ldr r3, [r2, r3]                          |         r3 = *(0xf019c);
    0x0007807a ldr r2, [r3]                              |         r2 = *(0xf019c);
    0x0007807c ldr r3, [sp, 0xc]                         |         r3 = var_ch;
    0x0007807e eors r2, r3                               |         r2 ^= r3;
    0x00078080 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00078084 bne 0x78112                               |             goto label_1;
                                                         |         }
    0x00078086 add sp, 0x14                              |         
    0x00078088 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
    0x0007808c ldr r3, [sp, 0x44]                        |         r3 = *(arg_44h);
    0x0007808e ldrd r0, r1, [sp, 0x34]                   |         __asm ("ldrd r0, r1, [arg_34h]");
    0x00078092 str r3, [sp]                              |         *(sp) = r3;
    0x00078094 ldrd r2, r3, [sp, 0x3c]                   |         __asm ("ldrd r2, r3, [arg_3ch]");
    0x00078098 bl 0x73af8                                |         r0 = fcn_00073af8 (r0, r1, r2, r3, r4);
    0x0007809c subs.w r8, r0, 0                          |         r8 = r0 - 0;
                                                         |         if (r8 < r0) {
    0x000780a0 blt 0x780dc                               |             goto label_2;
                                                         |         }
    0x000780a2 add r3, sp, 8                             |         r3 += var_8h;
    0x000780a4 mov r2, r5                                |         r2 = r5;
    0x000780a6 str r3, [sp]                              |         *(sp) = r3;
    0x000780a8 mov r1, r4                                |         r1 = r4;
    0x000780aa bic r3, sb, 0x93                          |         r3 = BIT_MASK (sb, 0x93);
    0x000780ae mov r0, r6                                |         r0 = r6;
    0x000780b0 bl 0x77968                                |         r0 = fcn_00077968 (r0, r1, r2, r3, r4);
    0x000780b4 cmp r0, 0                                 |         
                                                         |         if (r0 < 0) {
    0x000780b6 blt 0x7810c                               |             goto label_3;
                                                         |         }
                                                         |         if (r0 != 0) {
    0x000780b8 beq 0x780d2                               |             
    0x000780ba ands r2, sb, 0x40                         |             r2 = sb & 0x40;
    0x000780be ldr r1, [sp, 8]                           |             r1 = var_8h;
    0x000780c0 it ne                                     |             
                                                         |             if (r2 == sb) {
    0x000780c2 movne r2, 3                               |                 r2 = 3;
                                                         |             }
    0x000780c4 mov r0, r6                                |             r0 = r6;
    0x000780c6 bl 0x76be0                                |             r0 = fcn_00076be0 (r0, r1, r2);
    0x000780ca cmp r0, 0                                 |             
                                                         |             if (r0 < 0) {
    0x000780cc blt 0x7810c                               |                 goto label_3;
                                                         |             }
    0x000780ce blx 0x8d68                                |             fcn_00008d68 ();
                                                         |         }
    0x000780d2 cmp r7, 0                                 |         
    0x000780d4 beq 0x78072                               |         
                                                         |     }
    0x000780d6 ldr r3, [sp, 8]                           |     r3 = var_8h;
    0x000780d8 str r3, [r7]                              |     *(r7) = r3;
    0x000780da b 0x78072                                 |     goto label_0;
                                                         | label_2:
    0x000780dc tst.w sb, 0x40                            |     
    0x000780e0 ite ne                                    |     
                                                         |     if ((sb & 0x40) == 0) {
    0x000780e2 movne r5, 3                               |         r5 = 3;
                                                         |     }
                                                         |     if ((sb & 0x40) != 0) {
    0x000780e4 moveq r5, 7                               |         r5 = 7;
                                                         |     }
    0x000780e6 bl 0x70bf8                                |     r0 = fcn_00070bf8 ();
    0x000780ea cmp r0, r5                                |     
                                                         |     if (r0 >= r5) {
    0x000780ec blt 0x7810c                               |         
    0x000780ee ldr r2, [pc, 0x34]                        |         
    0x000780f0 mov r1, r8                                |         r1 = r8;
    0x000780f2 ldr r4, [pc, 0x34]                        |         
    0x000780f4 mov r0, r5                                |         r0 = r5;
    0x000780f6 ldr r3, [pc, 0x34]                        |         
    0x000780f8 add r2, pc                                |         r2 = 0xf0222;
    0x000780fa add r4, pc                                |         r4 = 0xf0228;
    0x000780fc adds r2, 7                                |         r2 += 7;
    0x000780fe add r3, pc                                |         r3 = 0xf0230;
    0x00078100 strd r3, r4, [sp]                         |         __asm ("strd r3, r4, [sp]");
    0x00078104 movw r3, 0x5d7                            |         r3 = 0x5d7;
    0x00078108 bl 0x71448                                |         fcn_00071448 ();
                                                         |     }
                                                         | label_3:
    0x0007810c movs r0, 1                                |     r0 = 1;
    0x0007810e blx 0x8d68                                |     fcn_00008d68 ();
                                                         | label_1:
    0x00078112 blx 0x927c                                |     fprintf_chk ()
    0x00078116 nop                                       |     
    0x00078118 lsrs r6, r7, 9                            |     r6 = r7 >> 9;
    0x0007811a movs r5, r0                               |     r5 = r0;
    0x0007811c lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x0007811e movs r0, r0                               |     
    0x00078120 lsrs r6, r1, 9                            |     r6 = r1 >> 9;
    0x00078122 movs r5, r0                               |     r5 = r0;
    0x00078124 svc 0x7c                                  |     __asm ("svc 0x7c");
    0x00078126 movs r2, r0                               |     r2 = r0;
    0x00078128 b 0x77a90                                 |     return void (*0x77a90)() ();
                                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x78130 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00078130 ()                      | void fcn_00078130 (int16_t arg1) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_8h;
                                                 |     int16_t var_14h;
                                                 |     r0 = arg1;
    0x00078130 push {r4, lr}                     |     
    0x00078132 sub sp, 0x18                      |     
    0x00078134 ldr r4, [pc, 0x48]                |     
    0x00078136 movs r2, 0xc                      |     r2 = 0xc;
    0x00078138 movs r1, 1                        |     r1 = 1;
    0x0007813a str r0, [sp]                      |     *(sp) = r0;
    0x0007813c ldr r0, [pc, 0x44]                |     r0 = *(0x78184);
    0x0007813e add r4, pc                        |     r4 = 0xf02c2;
    0x00078140 ldr r3, [pc, 0x44]                |     
    0x00078142 ldr r0, [r4, r0]                  |     
    0x00078144 add r4, sp, 8                     |     r4 += var_8h;
    0x00078146 add r3, pc                        |     r3 = 0xf02d2;
    0x00078148 ldr r0, [r0]                      |     r0 = *(0xf02c2);
    0x0007814a str r0, [sp, 0x14]                |     var_14h = r0;
    0x0007814c mov.w r0, 0                       |     r0 = 0;
    0x00078150 mov r0, r4                        |     r0 = r4;
    0x00078152 blx 0x9494                        |     fcn_00009494 ();
    0x00078156 ldr r0, [pc, 0x34]                |     
    0x00078158 movs r3, 0                        |     r3 = 0;
    0x0007815a movs r2, 0x90                     |     r2 = 0x90;
    0x0007815c mov r1, r4                        |     r1 = r4;
    0x0007815e add r0, pc                        |     r0 = 0xf02f0;
    0x00078160 bl 0x6ae3c                        |     fcn_0006ae3c (r0, r1, r2, r3);
    0x00078164 ldr r2, [pc, 0x28]                |     
    0x00078166 ldr r3, [pc, 0x1c]                |     r3 = *(0x78186);
    0x00078168 add r2, pc                        |     r2 = 0xf02fc;
    0x0007816a ldr r3, [r2, r3]                  |     r3 = *(0xf02fc);
    0x0007816c ldr r2, [r3]                      |     r2 = *(0xf02fc);
    0x0007816e ldr r3, [sp, 0x14]                |     r3 = var_14h;
    0x00078170 eors r2, r3                       |     r2 ^= r3;
    0x00078172 mov.w r3, 0                       |     r3 = 0;
                                                 |     if (r2 == r3) {
    0x00078176 bne 0x7817c                       |         
    0x00078178 add sp, 0x18                      |         
    0x0007817a pop {r4, pc}                      |         
                                                 |     }
    0x0007817c blx 0x927c                        |     r0 = fprintf_chk ()
    0x00078180 lsrs r6, r0, 6                    |     r6 = r0 >> 6;
    0x00078182 movs r5, r0                       |     r5 = r0;
    0x00078184 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x00078186 movs r0, r0                       |     
    0x00078188 ldm r7, {r1, r3, r4, r6, r7}      |     r1 = *(r7);
                                                 |     r3 = *((r7 + 4));
                                                 |     r4 = *((r7 + 8));
                                                 |     r6 = *((r7 + 12));
                                                 |     r7 = *((r7 + 16));
    0x0007818a movs r0, r0                       |     
    0x0007818c b 0x77a6c                         |     return void (*0x77a6c)() ();
                                                 | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x781ec */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000781ec ()              | void fcn_000781ec () {
                                         |     int16_t var_0h;
                                         |     int16_t var_4h;
    0x000781ec ldr r3, [pc, 0x98]        |     
    0x000781ee ldr r1, [pc, 0x9c]        |     
    0x000781f0 ldr r2, [pc, 0x9c]        |     r2 = *(0x78290);
    0x000781f2 add r3, pc                |     r3 = 0xf047e;
    0x000781f4 push {r4, r5, r6, lr}     |     
    0x000781f6 add r1, pc                |     r1 = 0xf0488;
    0x000781f8 ldrb r3, [r3]             |     r3 = *(r3);
    0x000781fa sub sp, 8                 |     
    0x000781fc ldr r2, [r1, r2]          |     
    0x000781fe ldr r2, [r2]              |     r2 = *(0xf0488);
    0x00078200 str r2, [sp, 4]           |     var_4h = r2;
    0x00078202 mov.w r2, 0               |     r2 = 0;
    0x00078206 cbz r3, 0x78220           |     
                                         |     while (r1 != 0) {
                                         | label_0:
    0x00078208 ldr r2, [pc, 0x88]        |         
    0x0007820a ldr r3, [pc, 0x84]        |         r3 = *(0x78292);
    0x0007820c add r2, pc                |         r2 = 0xf04a4;
    0x0007820e ldr r3, [r2, r3]          |         r3 = *(0xf04a4);
    0x00078210 ldr r2, [r3]              |         r2 = *(0xf04a4);
    0x00078212 ldr r3, [sp, 4]           |         r3 = var_4h;
    0x00078214 eors r2, r3               |         r2 ^= r3;
    0x00078216 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x0007821a bne 0x78284               |             goto label_2;
                                         |         }
    0x0007821c add sp, 8                 |         
    0x0007821e pop {r4, r5, r6, pc}      |         
    0x00078220 movs r0, 0x19             |         r0 = 0x19;
    0x00078222 blx 0x8a84                |         r0 = sysconf ();
    0x00078226 mov r5, r0                |         r5 = r0;
                                         |         if (r0 != 0) {
    0x00078228 cbnz r0, 0x78276          |             goto label_3;
                                         |         }
                                         | label_1:
    0x0007822a movs r0, 0                |         r0 = 0;
    0x0007822c bl 0x7c5e4                |         r0 = fcn_0007c5e4 (r0, r1, r2);
    0x00078230 mov r6, r0                |         r6 = r0;
    0x00078232 blx 0x9158                |         r0 = fcn_00009158 ();
    0x00078236 mov r4, r0                |         r4 = r0;
    0x00078238 mov r0, sp                |         r0 = sp;
    0x0007823a bl 0x781e4                |         r0 = fcn_000781e4 ();
    0x0007823e cmp r0, 0                 |         
    0x00078240 eor.w r4, r4, r6          |         r4 ^= r6;
    0x00078244 it ge                     |         
                                         |         if (r0 < 0) {
    0x00078246 ldrge r3, [sp]            |             r3 = *(sp);
                                         |         }
    0x00078248 eor.w r4, r4, r5          |         r4 ^= r5;
    0x0007824c ldr r5, [pc, 0x48]        |         
    0x0007824e it ge                     |         
                                         |         if (r0 < 0) {
    0x00078250 eorge r4, r3              |             r4 ^= r3;
                                         |         }
    0x00078252 mov r0, r4                |         r0 = r4;
    0x00078254 add r5, pc                |         r5 = 0xf04f0;
    0x00078256 blx 0x8a38                |         fcn_00008a38 ();
    0x0007825a ldr r3, [pc, 0x40]        |         
    0x0007825c movs r4, 1                |         r4 = 1;
    0x0007825e ldrb r1, [r5]             |         r1 = *(r5);
    0x00078260 add r3, pc                |         r3 = 0xf0502;
    0x00078262 strb r4, [r3]             |         *(r3) = r4;
    0x00078264 cmp r1, 0                 |         
    0x00078266 bne 0x78208               |         
                                         |     }
    0x00078268 ldr r2, [pc, 0x34]        |     
    0x0007826a mov r0, r1                |     r0 = r1;
    0x0007826c add r2, pc                |     r2 = 0xf0510;
    0x0007826e bl 0x8115c                |     fcn_0008115c ();
    0x00078272 strb r4, [r5]             |     *(r5) = r4;
    0x00078274 b 0x78208                 |     goto label_0;
                                         | label_3:
    0x00078276 ldr r2, [pc, 0x2c]        |     
    0x00078278 movs r1, 0x10             |     r1 = 0x10;
    0x0007827a add r2, pc                |     r2 = 0xf0524;
    0x0007827c bl 0x78f1c                |     r0 = fcn_00078f1c (r0, r1, r2);
    0x00078280 mov r5, r0                |     r5 = r0;
    0x00078282 b 0x7822a                 |     goto label_1;
                                         | label_2:
    0x00078284 blx 0x927c                |     fprintf_chk ()
    0x00078288 movs r4, 0x27             |     r4 = 0x27;
    0x0007828a movs r5, r0               |     r5 = r0;
    0x0007828c lsrs r6, r1, 3            |     r6 = r1 >> 3;
    0x0007828e movs r5, r0               |     r5 = r0;
    0x00078290 lsls r0, r0, 0x13         |     r0 <<= 0x13;
    0x00078292 movs r0, r0               |     
    0x00078294 lsrs r0, r7, 2            |     r0 = r7 >> 2;
    0x00078296 movs r5, r0               |     r5 = r0;
    0x00078298 movs r3, 0xc4             |     r3 = 0xc4;
    0x0007829a movs r5, r0               |     r5 = r0;
    0x0007829c movs r3, 0xb9             |     r3 = 0xb9;
    0x0007829e movs r5, r0               |     r5 = r0;
    0x000782a0 invalid                   |     
                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x782e4 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.000782e4 ()                                      | void fcn_000782e4 (int16_t arg1, uint32_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x000782e4 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x000782e8 mov r8, r2                                        |     r8 = r2;
    0x000782ea ldr r2, [pc, 0x1c0]                               |     
    0x000782ec sub sp, 0xc                                       |     
    0x000782ee ldr r3, [pc, 0x1c0]                               |     r3 = *(0x784b2);
    0x000782f0 add r2, pc                                        |     r2 = 0xf07a2;
    0x000782f2 ldr r3, [r2, r3]                                  |     
    0x000782f4 ldr r3, [r3]                                      |     r3 = *(0xf07a2);
    0x000782f6 str r3, [sp, 4]                                   |     var_4h = r3;
    0x000782f8 mov.w r3, 0                                       |     r3 = 0;
    0x000782fc cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x000782fe beq 0x783b8                                       |         goto label_4;
                                                                 |     }
    0x00078300 ands r5, r8, 8                                    |     r5 = r8 & 8;
    0x00078304 mov r6, r0                                        |     r6 = r0;
    0x00078306 mov r4, r1                                        |     r4 = r1;
                                                                 |     if (r5 == r8) {
    0x00078308 bne 0x7837c                                       |         
                                                                 | label_0:
    0x0007830a ldr r3, [pc, 0x1a8]                               |         
    0x0007830c add r3, pc                                        |         
    0x0007830e ldr r3, [r3]                                      |         r3 = *(0xf07c6);
                                                                 |         if (r3 != 0) {
    0x00078310 cbz r3, 0x7835a                                   |             
    0x00078312 ldr.w sb, [pc, 0x1a4]                             |             
    0x00078316 lsr.w sl, r8, 2                                   |             sl = r8 >> 2;
    0x0007831a and fp, r8, 2                                     |             
    0x0007831e movs r7, 1                                        |             r7 = 1;
    0x00078320 add sb, pc                                        |             sb = 0xf07de;
                                                                 | label_1:
    0x00078322 and r2, sl, 4                                     |             r2 = sl & 4;
    0x00078326 mov r1, r4                                        |             r1 = r4;
    0x00078328 cmp.w fp, 0                                       |             
    0x0007832c it eq                                             |             
                                                                 |             if (fp != 0) {
    0x0007832e orreq r2, r2, 1                                   |                 r2 |= 1;
                                                                 |             }
    0x00078332 mov r0, r6                                        |             r0 = r6;
    0x00078334 blx 0x8f5c                                        |             r0 = fcn_00008f5c ();
    0x00078338 cmp r0, 0                                         |             
                                                                 |             if (r0 <= 0) {
    0x0007833a ble 0x783e0                                       |                 goto label_5;
                                                                 |             }
    0x0007833c cmp r4, r0                                        |             
    0x0007833e str.w r7, [sb]                                    |             __asm ("str.w r7, [sb]");
                                                                 |             if (r4 == r0) {
    0x00078342 beq 0x783b8                                       |                 goto label_4;
                                                                 |             }
    0x00078344 cmp r0, r4                                        |             
                                                                 |             if (r0 >= r4) {
    0x00078346 bhs 0x7843e                                       |                 goto label_6;
                                                                 |             }
    0x00078348 tst.w r8, 1                                       |             
    0x0007834c add r6, r0                                        |             r6 += r0;
    0x0007834e sub.w r4, r4, r0                                  |             r4 -= r0;
                                                                 |             if ((r8 & 1) != 0) {
    0x00078352 bne 0x78452                                       |                 goto label_7;
                                                                 |             }
    0x00078354 cmp.w fp, 0                                       |             
                                                                 |             if (fp != 0) {
    0x00078358 bne 0x78426                                       |                 goto label_8;
                                                                 |             }
                                                                 |         }
                                                                 | label_2:
    0x0007835a ldr r0, [pc, 0x160]                               |         
    0x0007835c mov.w r1, 0x100                                   |         
    0x00078360 movt r1, 8                                        |         r1 = 0x80100;
    0x00078364 add r0, pc                                        |         r0 = 0xf0826;
    0x00078366 blx 0x908c                                        |         r0 = fcn_0000908c ();
    0x0007836a subs r5, r0, 0                                    |         r5 = r0 - 0;
                                                                 |         if (r5 < r0) {
    0x0007836c blt 0x7842a                                       |             goto label_9;
                                                                 |         }
    0x0007836e mov r2, r4                                        |         r2 = r4;
    0x00078370 movs r3, 1                                        |         r3 = 1;
    0x00078372 mov r1, r6                                        |         r1 = r6;
    0x00078374 bl 0x6fe5c                                        |         r0 = fcn_0006fe5c (r0, r1, r2, r3);
    0x00078378 mov r4, r0                                        |         r4 = r0;
    0x0007837a b 0x783be                                         |         goto label_3;
                                                                 |     }
    0x0007837c movs r5, 0                                        |     r5 = 0;
    0x0007837e mov r7, sp                                        |     r7 = sp;
    0x00078380 b 0x7839c                                         |     
                                                                 |     while (r0 >= 0) {
    0x00078382 cmp r4, 4                                         |         
    0x00078384 mov r5, r4                                        |         r5 = r4;
    0x00078386 it hs                                             |         
                                                                 |         if (r4 < 4) {
    0x00078388 movhs r5, 4                                       |             r5 = 4;
                                                                 |         }
    0x0007838a mov r0, r6                                        |         r0 = r6;
    0x0007838c mov r2, r5                                        |         r2 = r5;
    0x0007838e mov r1, r7                                        |         r1 = r7;
    0x00078390 blx 0x8f9c                                        |         fcn_00008f9c ();
    0x00078394 subs r4, r4, r5                                   |         r4 -= r5;
    0x00078396 add r6, r5                                        |         r6 += r5;
                                                                 |         if (r4 == r4) {
    0x00078398 beq 0x783b8                                       |             goto label_4;
                                                                 |         }
    0x0007839a movs r5, 1                                        |         r5 = 1;
    0x0007839c mov r0, r7                                        |         r0 = r7;
    0x0007839e bl 0x781e4                                        |         r0 = fcn_000781e4 ();
    0x000783a2 cmp r0, 0                                         |         
    0x000783a4 bge 0x78382                                       |         
                                                                 |     }
    0x000783a6 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x000783a8 beq 0x7830a                                       |         goto label_0;
                                                                 |     }
    0x000783aa tst.w r8, 1                                       |     
                                                                 |     if ((r8 & 1) == 0) {
    0x000783ae beq 0x7830a                                       |         goto label_0;
                                                                 |     }
    0x000783b0 mov r1, r4                                        |     r1 = r4;
    0x000783b2 mov r0, r6                                        |     r0 = r6;
    0x000783b4 bl 0x782a8                                        |     fcn_000782a8 (r0, r1);
                                                                 | label_4:
    0x000783b8 mov.w r5, -1                                      |     r5 = -1;
    0x000783bc movs r4, 0                                        |     r4 = 0;
                                                                 | label_3:
    0x000783be mov r0, r5                                        |     r0 = r5;
    0x000783c0 bl 0x69a04                                        |     fcn_00069a04 (r0, r1, r2, r3);
    0x000783c4 ldr r2, [pc, 0xf8]                                |     
    0x000783c6 ldr r3, [pc, 0xe8]                                |     r3 = *(0x784b2);
    0x000783c8 add r2, pc                                        |     r2 = 0xf088c;
    0x000783ca ldr r3, [r2, r3]                                  |     r3 = *(0xf088c);
    0x000783cc ldr r2, [r3]                                      |     r2 = *(0xf088c);
    0x000783ce ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x000783d0 eors r2, r3                                       |     r2 ^= r3;
    0x000783d2 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x000783d6 bne 0x784a8                                       |         goto label_10;
                                                                 |     }
    0x000783d8 mov r0, r4                                        |     r0 = r4;
    0x000783da add sp, 0xc                                       |     
    0x000783dc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 |     if (r2 == r3) {
                                                                 | label_5:
    0x000783e0 beq 0x78462                                       |         goto label_11;
                                                                 |     }
    0x000783e2 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x000783e6 ldr r3, [r0]                                      |     r3 = *(r0);
    0x000783e8 eor.w r2, r3, r3, asr 31                          |     r2 = r3 ^ (r3 >> 31);
    0x000783ec sub.w r2, r2, r3, asr 31                          |     r2 -= (r3 >> 31);
    0x000783f0 cmp r2, 0x26                                      |     
                                                                 |     if (r2 == 0x26) {
    0x000783f2 beq 0x7841c                                       |         goto label_12;
                                                                 |     }
                                                                 |     if (r2 > 0x26) {
    0x000783f4 bgt 0x78416                                       |         goto label_13;
                                                                 |     }
    0x000783f6 cmp r2, 0x19                                      |     
                                                                 |     if (r2 == 0x19) {
    0x000783f8 beq 0x7841c                                       |         goto label_12;
                                                                 |     }
                                                                 |     do {
    0x000783fa cmp r3, 0xb                                       |         
                                                                 |         if (r3 == 0xb) {
    0x000783fc beq 0x7847e                                       |             goto label_14;
                                                                 |         }
    0x000783fe cmp r3, 0x16                                      |         
                                                                 |         if (r3 != 0x16) {
    0x00078400 bne 0x784a0                                       |             goto label_15;
                                                                 |         }
    0x00078402 tst.w r8, 0x10                                    |         
                                                                 |         if ((r8 & 0x10) == 0) {
    0x00078406 beq 0x78474                                       |             goto label_16;
                                                                 |         }
    0x00078408 bic r8, r8, 0x10                                  |         r8 = BIT_MASK (r8, 0x10);
    0x0007840c lsr.w sl, r8, 2                                   |         sl = r8 >> 2;
    0x00078410 and fp, r8, 2                                     |         
    0x00078414 b 0x78322                                         |         goto label_1;
                                                                 | label_13:
    0x00078416 subs r2, 0x5d                                     |         r2 -= 0x5d;
    0x00078418 cmp r2, 4                                         |         
    0x0007841a bhi 0x783fa                                       |         
                                                                 |     } while (r2 > 4);
                                                                 | label_12:
    0x0007841c ldr r3, [pc, 0xa4]                                |     
    0x0007841e movs r2, 0                                        |     r2 = 0;
    0x00078420 add r3, pc                                        |     r3 = 0xf08e8;
    0x00078422 str r2, [r3]                                      |     *(r3) = r2;
    0x00078424 b 0x7835a                                         |     goto label_2;
                                                                 | label_8:
    0x00078426 movs r5, 1                                        |     r5 = 1;
    0x00078428 b 0x78322                                         |     goto label_1;
                                                                 | label_9:
    0x0007842a blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x0007842e ldr r4, [r0]                                      |     r4 = *(r0);
    0x00078430 cmp r4, 2                                         |     
    0x00078432 it ne                                             |     
                                                                 |     if (r4 == 2) {
    0x00078434 rsbne r4, r4, 0                                   |         __asm ("rsbne r4, r4, 0");
                                                                 |         goto label_17;
                                                                 |     }
                                                                 |     if (r4 != 2) {
                                                                 | label_17:
    0x00078436 bne 0x783be                                       |         goto label_3;
                                                                 |     }
    0x00078438 mvn r4, 0x25                                      |     r4 = ~0x25;
    0x0007843c b 0x783be                                         |     goto label_3;
                                                                 | label_6:
    0x0007843e ldr r1, [pc, 0x88]                                |     
    0x00078440 movs r2, 0xe8                                     |     r2 = 0xe8;
    0x00078442 ldr r3, [pc, 0x88]                                |     
    0x00078444 ldr r0, [pc, 0x88]                                |     
    0x00078446 add r1, pc                                        |     r1 = 0xf0914;
    0x00078448 add r3, pc                                        |     r3 = 0xf091a;
    0x0007844a adds r1, 7                                        |     r1 += 7;
    0x0007844c add r0, pc                                        |     r0 = 0xf0920;
    0x0007844e bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 |     do {
                                                                 | label_7:
    0x00078452 mov r1, r4                                        |         r1 = r4;
    0x00078454 mov r0, r6                                        |         r0 = r6;
    0x00078456 mov.w r5, -1                                      |         r5 = -1;
    0x00078458 adds r5, 0xff                                     |         r5 += 0xff;
    0x0007845a movs r4, 0                                        |         r4 = 0;
    0x0007845c bl 0x782a8                                        |         fcn_000782a8 (r0, r1);
    0x00078460 b 0x783be                                         |         goto label_3;
                                                                 | label_11:
    0x00078462 ldr r3, [pc, 0x70]                                |         
    0x00078464 movs r2, 1                                        |         r2 = 1;
    0x00078466 mov.w r5, -1                                      |         r5 = -1;
    0x0007846a mvn r4, 4                                         |         r4 = ~4;
    0x0007846e add r3, pc                                        |         r3 = 0xf0948;
    0x00078470 str r2, [r3]                                      |         *(r3) = r2;
    0x00078472 b 0x783be                                         |         goto label_3;
                                                                 | label_16:
    0x00078474 mov.w r5, -1                                      |         r5 = -1;
    0x00078478 mvn r4, 0x15                                      |         r4 = ~0x15;
    0x0007847c b 0x783be                                         |         goto label_3;
                                                                 | label_14:
    0x0007847e ldr r3, [pc, 0x58]                                |         
    0x00078480 movs r2, 1                                        |         r2 = 1;
    0x00078482 add r3, pc                                        |         r3 = 0xf0960;
    0x00078484 str r2, [r3]                                      |         *(r3) = r2;
                                                                 |         if (r5 == 0) {
    0x00078486 cbz r5, 0x7848e                                   |             goto label_18;
                                                                 |         }
    0x00078488 tst.w r8, 1                                       |         
    0x0007848c bne 0x78452                                       |         
                                                                 |     } while ((r8 & 1) != 0);
                                                                 | label_18:
    0x0007848e tst.w r8, 4                                       |     
                                                                 |     if ((r8 & 4) == 0) {
    0x00078492 beq.w 0x7835a                                     |         goto label_2;
                                                                 |     }
    0x00078496 mov.w r5, -1                                      |     r5 = -1;
    0x0007849a mvn r4, 0x3c                                      |     r4 = ~0x3c;
    0x0007849e b 0x783be                                         |     goto label_3;
                                                                 | label_15:
    0x000784a0 rsbs r4, r3, 0                                    |     r4 = r3 - ;
    0x000784a2 mov.w r5, -1                                      |     r5 = -1;
    0x000784a6 b 0x783be                                         |     goto label_3;
                                                                 | label_10:
    0x000784a8 blx 0x927c                                        |     fprintf_chk ()
    0x000784ac lsls r4, r2, 0x1f                                 |     r4 = r2 << 0x1f;
    0x000784ae movs r5, r0                                       |     r5 = r0;
    0x000784b0 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x000784b2 movs r0, r0                                       |     
    0x000784b4 asrs r0, r5, 3                                    |     r0 = r5 >> 3;
    0x000784b6 movs r5, r0                                       |     r5 = r0;
    0x000784b8 asrs r4, r2, 3                                    |     r4 = r2 >> 3;
    0x000784ba movs r5, r0                                       |     r5 = r0;
    0x000784bc b 0x78cb8                                         |     return void (*0x78cb8)() ();
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x78588 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00078588 ()                  | void fcn_00078588 () {
                                             |     int32_t var_0h;
                                             |     int32_t var_0h_2;
                                             |     int16_t var_10h;
                                             |     int32_t var_10h_2;
                                             |     int16_t var_24h;
    0x00078588 ldr r2, [pc, 0xe8]            |     
    0x0007858a movs r0, 7                    |     r0 = 7;
    0x0007858c ldr r3, [pc, 0xe8]            |     r3 = *(0x78678);
    0x0007858e push {r4, lr}                 |     
    0x00078590 sub sp, 0x28                  |     
    0x00078592 add r2, pc                    |     r2 = 0xf0c0a;
    0x00078594 add r4, sp, 0x10              |     r4 += var_10h;
    0x00078596 mov r1, r4                    |     r1 = r4;
    0x00078598 ldr r3, [r2, r3]              |     
    0x0007859a ldr r3, [r3]                  |     r3 = *(0xf0c0a);
    0x0007859c str r3, [sp, 0x24]            |     var_24h = r3;
    0x0007859e mov.w r3, 0                   |     r3 = 0;
    0x000785a2 blx 0x8e60                    |     r0 = fcn_00008e60 ();
    0x000785a6 cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x000785a8 blt 0x78614                   |         goto label_2;
                                             |     }
    0x000785aa ldrd r1, r3, [sp, 0x10]       |     __asm ("ldrd r1, r3, [var_10h]");
    0x000785ae movw r2, 0x401                |     r2 = 0x401;
    0x000785b2 cmp r1, r2                    |     
    0x000785b4 sbcs r3, r3, 0                |     __asm ("sbcs r3, r3, 0");
    0x000785b8 it lo                         |     
                                             |     if (r1 >= r2) {
    0x000785ba movlo r0, 0                   |         r0 = 0;
                                             |     }
    0x000785bc bhs 0x785d6                   |     
                                             |     while (r0 >= 0) {
                                             | label_0:
    0x000785be ldr r2, [pc, 0xbc]            |         
    0x000785c0 ldr r3, [pc, 0xb4]            |         r3 = *(0x78678);
    0x000785c2 add r2, pc                    |         r2 = 0xf0c44;
    0x000785c4 ldr r3, [r2, r3]              |         r3 = *(0xf0c44);
    0x000785c6 ldr r2, [r3]                  |         r2 = *(0xf0c44);
    0x000785c8 ldr r3, [sp, 0x24]            |         r3 = var_24h;
    0x000785ca eors r2, r3                   |         r2 ^= r3;
    0x000785cc mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x000785d0 bne 0x7866e                   |             goto label_3;
                                             |         }
    0x000785d2 add sp, 0x28                  |         
    0x000785d4 pop {r4, pc}                  |         
    0x000785d6 mov.w r2, 0x400               |         r2 = 0x400;
    0x000785da movs r3, 0                    |         r3 = 0;
    0x000785dc mov r1, r4                    |         r1 = r4;
    0x000785de movs r0, 7                    |         r0 = 7;
    0x000785e0 strd r2, r3, [sp, 0x10]       |         __asm ("strd r2, r3, [var_10h]");
    0x000785e4 blx 0x950c                    |         r0 = fcn_0000950c ();
    0x000785e8 cmp r0, 0                     |         
    0x000785ea it ge                         |         
                                             |         if (r0 < 0) {
    0x000785ec movge r0, 1                   |             r0 = 1;
                                             |         }
    0x000785ee bge 0x785be                   |         
                                             |     }
    0x000785f0 blx 0x9628                    |     r0 = fcn_00009628 ();
    0x000785f4 ldr r4, [r0]                  |     r4 = *(r0);
    0x000785f6 bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x000785fa cmp r0, 6                     |     
                                             |     if (r0 > 6) {
    0x000785fc bgt 0x78644                   |         goto label_4;
                                             |     }
                                             |     do {
    0x000785fe eor.w r0, r4, r4, asr 31      |         r0 = r4 ^ (r4 >> 31);
    0x00078602 sub.w r0, r0, r4, asr 31      |         r0 -= (r4 >> 31);
    0x00078606 uxtb r0, r0                   |         r0 = (int8_t) r0;
    0x00078608 rsbs r0, r0, 0                |         r0 -= ;
                                             | label_1:
    0x0007860a cmp r0, 0                     |         
    0x0007860c it ge                         |         
                                             |         if (r0 < 0) {
    0x0007860e mvnge r0, 0x55                |             r0 = ~0x55;
                                             |         }
    0x00078612 b 0x785be                     |         goto label_0;
                                             | label_2:
    0x00078614 blx 0x9628                    |         r0 = fcn_00009628 ();
    0x00078618 ldr r4, [r0]                  |         r4 = *(r0);
    0x0007861a bl 0x70bf8                    |         r0 = fcn_00070bf8 ();
    0x0007861e cmp r0, 6                     |         
    0x00078620 ble 0x785fe                   |         
                                             |     } while (r0 <= 6);
    0x00078622 ldr r2, [pc, 0x5c]            |     
    0x00078624 movw r3, 0x191                |     r3 = 0x191;
    0x00078628 ldr.w ip, [pc, 0x58]          |     
    0x0007862c mov r1, r4                    |     r1 = r4;
    0x0007862e ldr r0, [pc, 0x58]            |     
    0x00078630 add r2, pc                    |     r2 = 0xf0cb6;
    0x00078632 add ip, pc                    |     ip = 0xf0cba;
    0x00078634 adds r2, 7                    |     r2 += 7;
    0x00078636 add r0, pc                    |     r0 = 0xf0cc4;
    0x00078638 strd r0, ip, [sp]             |     __asm ("strd r0, ip, [sp]");
    0x0007863c movs r0, 7                    |     r0 = 7;
    0x0007863e bl 0x71448                    |     fcn_00071448 ();
    0x00078642 b 0x7860a                     |     goto label_1;
                                             | label_4:
    0x00078644 ldr r2, [pc, 0x44]            |     
    0x00078646 mov r1, r4                    |     r1 = r4;
    0x00078648 ldr.w ip, [pc, 0x44]          |     
    0x0007864c mov.w r3, 0x198               |     r3 = 0x198;
    0x00078650 ldr r0, [pc, 0x40]            |     
    0x00078652 vldr d16, [sp, 0x10]          |     __asm ("vldr d16, [sp, 0x10]");
    0x00078656 add r2, pc                    |     r2 = 0xf0ce6;
    0x00078658 add ip, pc                    |     ip = 0xf0cec;
    0x0007865a adds r2, 7                    |     r2 += 7;
    0x0007865c add r0, pc                    |     r0 = 0xf0cf4;
    0x0007865e strd r0, ip, [sp]             |     __asm ("strd r0, ip, [sp]");
    0x00078662 movs r0, 7                    |     r0 = 7;
    0x00078664 vstr d16, [sp, 8]             |     __asm ("vstr d16, [sp, 8]");
    0x00078668 bl 0x71448                    |     fcn_00071448 ();
    0x0007866c b 0x7860a                     |     goto label_1;
                                             | label_3:
    0x0007866e blx 0x927c                    |     fprintf_chk ()
    0x00078672 nop                           |     
    0x00078674 lsls r2, r6, 0x14             |     r2 = r6 << 0x14;
    0x00078676 movs r5, r0                   |     r5 = r0;
    0x00078678 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x0007867a movs r0, r0                   |     
    0x0007867c lsls r2, r0, 0x14             |     r2 = r0 << 0x14;
    0x0007867e movs r5, r0                   |     r5 = r0;
    0x00078680 b 0x789b4                     |     return void (*0x789b4)() ();
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x78740 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00078740 ()              | void fcn_00078740 () {
                                         |     int16_t var_4h_2;
                                         |     int16_t var_84h_2;
                                         |     int16_t var_9ch;
                                         |     int16_t var_4h;
                                         |     int16_t var_84h;
    0x00078740 ldr r2, [pc, 0x54]        |     
    0x00078742 ldr r3, [pc, 0x58]        |     r3 = *(0x7879e);
    0x00078744 push {r4, lr}             |     
    0x00078746 sub sp, 0x88              |     
    0x00078748 add r2, pc                |     r2 = 0xf0ee4;
    0x0007874a add r4, sp, 4             |     r4 += var_4h;
    0x0007874c mov r0, r4                |     r0 = r4;
    0x0007874e ldr r3, [r2, r3]          |     
    0x00078750 ldr r3, [r3]              |     r3 = *(0xf0ee4);
    0x00078752 str r3, [sp, 0x84]        |     var_84h = r3;
    0x00078754 mov.w r3, 0               |     r3 = 0;
    0x00078758 blx 0x8994                |     r0 = sigemptyset ();
    0x0007875c cmp r0, 0                 |     
                                         |     if (r0 < 0) {
    0x0007875e blt 0x7878a               |         goto label_0;
                                         |     }
    0x00078760 movs r2, 0                |     r2 = 0;
    0x00078762 mov r1, r4                |     r1 = r4;
    0x00078764 movs r0, 2                |     r0 = 2;
    0x00078766 blx 0x9258                |     r0 = sigaction ();
    0x0007876a cmp r0, 0                 |     
    0x0007876c it ge                     |     
                                         |     if (r0 < 0) {
    0x0007876e movge r0, 0               |         r0 = 0;
                                         |     }
    0x00078770 blt 0x7878a               |     
                                         |     while (1) {
    0x00078772 ldr r2, [pc, 0x2c]        |         
    0x00078774 ldr r3, [pc, 0x24]        |         r3 = *(0x7879c);
    0x00078776 add r2, pc                |         r2 = 0xf0f1c;
    0x00078778 ldr r3, [r2, r3]          |         r3 = *(0xf0f1c);
    0x0007877a ldr r2, [r3]              |         r2 = *(0xf0f1c);
    0x0007877c ldr r3, [sp, 0x84]        |         r3 = var_84h;
    0x0007877e eors r2, r3               |         r2 ^= r3;
    0x00078780 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x00078784 bne 0x78794               |             goto label_1;
                                         |         }
    0x00078786 add sp, 0x88              |         
    0x00078788 pop {r4, pc}              |         
                                         | label_0:
    0x0007878a blx 0x9628                |         r0 = fcn_00009628 ();
    0x0007878e ldr r0, [r0]              |         r0 = *(r0);
    0x00078790 rsbs r0, r0, 0            |         r0 -= ;
    0x00078792 b 0x78772                 |         
                                         |     }
                                         | label_1:
    0x00078794 blx 0x927c                |     fprintf_chk ()
    0x00078798 lsls r4, r7, 0xd          |     r4 = r7 << 0xd;
    0x0007879a movs r5, r0               |     r5 = r0;
    0x0007879c lsls r0, r0, 0x13         |     r0 <<= 0x13;
    0x0007879e movs r0, r0               |     
    0x000787a0 lsls r6, r1, 0xd          |     r6 = r1 << 0xd;
    0x000787a2 movs r5, r0               |     r5 = r0;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x787a4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000787a4 ()                  | void fcn_000787a4 (int16_t arg1) {
                                             |     int16_t var_0h_2;
                                             |     int16_t var_4h;
                                             |     int16_t var_84h;
                                             |     int16_t var_9ch;
                                             |     int16_t var_a0h;
                                             |     r0 = arg1;
    0x000787a4 bmi 0x7a57e4                  |     
    0x000787a8 ldr r3, [pc, 0x70]            |     
    0x000787aa add r2, pc                    |     r2 += pc;
    0x000787ac push {r4, r5, r6, lr}         |     
    0x000787ae sub sp, 0x8c                  |     
    0x000787b0 mov r4, r0                    |     r4 = r0;
    0x000787b2 add r5, sp, 4                 |     r5 += var_4h;
    0x000787b4 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x000787b6 mov r0, r5                    |     r0 = r5;
    0x000787b8 ldr r6, [sp, 0x9c]            |     r6 = var_9ch;
    0x000787ba ldr r3, [r3]                  |     r3 = *(0x7881c);
    0x000787bc str r3, [sp, 0x84]            |     var_84h = r3;
    0x000787be mov.w r3, 0                   |     r3 = 0;
    0x000787c2 blx 0x8994                    |     r0 = sigemptyset ();
    0x000787c6 cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x000787c8 blt 0x78808                   |         goto label_0;
                                             |     }
    0x000787ca add r1, sp, 0xa0              |     r1 += var_a0h;
    0x000787cc mov r0, r5                    |     r0 = r5;
    0x000787ce str r1, [sp]                  |     *(sp) = r1;
    0x000787d0 bl 0x78698                    |     r0 = fcn_00078698 (r0, r1);
    0x000787d4 cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x000787d6 blt 0x787ea                   |         goto label_1;
                                             |     }
    0x000787d8 mov r2, r6                    |     r2 = r6;
    0x000787da mov r1, r5                    |     r1 = r5;
    0x000787dc mov r0, r4                    |     r0 = r4;
    0x000787de blx 0x9258                    |     r0 = sigaction ();
    0x000787e2 cmp r0, 0                     |     
    0x000787e4 it ge                         |     
                                             |     if (r0 < 0) {
    0x000787e6 movge r0, 0                   |         r0 = 0;
                                             |     }
    0x000787e8 blt 0x78808                   |     
                                             |     while (1) {
                                             | label_1:
    0x000787ea ldr r2, [pc, 0x34]            |         
    0x000787ec ldr r3, [pc, 0x2c]            |         r3 = *(0x7881c);
    0x000787ee add r2, pc                    |         r2 = 0xf1014;
    0x000787f0 ldr r3, [r2, r3]              |         r3 = *(0xf1014);
    0x000787f2 ldr r2, [r3]                  |         r2 = *(0xf1014);
    0x000787f4 ldr r3, [sp, 0x84]            |         r3 = var_84h;
    0x000787f6 eors r2, r3                   |         r2 ^= r3;
    0x000787f8 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x000787fc bne 0x78812                   |             goto label_2;
                                             |         }
    0x000787fe add sp, 0x8c                  |         
    0x00078800 pop.w {r4, r5, r6, lr}        |         
    0x00078804 add sp, 0xc                   |         
    0x00078806 bx lr                         |         return;
                                             | label_0:
    0x00078808 blx 0x9628                    |         r0 = fcn_00009628 ();
    0x0007880c ldr r0, [r0]                  |         r0 = *(r0);
    0x0007880e rsbs r0, r0, 0                |         r0 -= ;
    0x00078810 b 0x787ea                     |         
                                             |     }
                                             | label_2:
    0x00078812 blx 0x927c                    |     fprintf_chk ()
    0x00078816 nop                           |     
    0x00078818 lsls r2, r3, 0xc              |     r2 = r3 << 0xc;
    0x0007881a movs r5, r0                   |     r5 = r0;
    0x0007881c lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x0007881e movs r0, r0                   |     
    0x00078820 lsls r6, r2, 0xb              |     r6 = r2 << 0xb;
    0x00078822 movs r5, r0                   |     r5 = r0;
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x788c0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000788c0 ()              | void fcn_000788c0 (int16_t arg1) {
                                         |     int16_t var_0h;
                                         |     int16_t var_4h;
                                         |     r0 = arg1;
    0x000788c0 blmi 0x108b1c4            |     __asm ("blmi aav.0x000501fc");
    0x000788c4 push {r4, r5, lr}         |     
    0x000788c6 sub sp, 0xc               |     
    0x000788c8 add r2, pc                |     r2 += pc;
    0x000788ca mov r5, sp                |     r5 = sp;
    0x000788cc mov r1, r5                |     r1 = r5;
    0x000788ce mov r4, r0                |     r4 = r0;
    0x000788d0 ldr r3, [r2, r3]          |     r3 = *((r2 + r3));
    0x000788d2 ldr r3, [r3]              |     r3 = *(r3);
    0x000788d4 str r3, [sp, 4]           |     var_4h = r3;
    0x000788d6 mov.w r3, 0               |     r3 = 0;
    0x000788da bl 0x746ac                |     r0 = fcn_000746ac (r0, r1);
    0x000788de cmp r0, 0                 |     
                                         |     if (r0 < 0) {
    0x000788e0 blt 0x78902               |         goto label_1;
                                         |     }
    0x000788e2 ldr r0, [sp]              |     r0 = *(sp);
    0x000788e4 subs r3, r0, 1            |     r3 = r0 - 1;
    0x000788e6 cmp r3, 0x3f              |     
                                         |     if (r3 > 0x3f) {
    0x000788e8 bhi 0x789a8               |         goto label_2;
                                         |     }
                                         |     do {
                                         | label_0:
    0x000788ea ldr r2, [pc, 0xdc]        |         
    0x000788ec ldr r3, [pc, 0xd4]        |         r3 = *(0x789c4);
    0x000788ee add r2, pc                |         r2 = 0xf12bc;
    0x000788f0 ldr r3, [r2, r3]          |         r3 = *(0xf12bc);
    0x000788f2 ldr r2, [r3]              |         r2 = *(0xf12bc);
    0x000788f4 ldr r3, [sp, 4]           |         r3 = var_4h;
    0x000788f6 eors r2, r3               |         r2 ^= r3;
    0x000788f8 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x000788fc bne 0x789ba               |             goto label_3;
                                         |         }
    0x000788fe add sp, 0xc               |         
    0x00078900 pop {r4, r5, pc}          |         
                                         | label_1:
    0x00078902 ldr r1, [pc, 0xc8]        |         
    0x00078904 mov r0, r4                |         r0 = r4;
    0x00078906 add r1, pc                |         r1 = 0xf12d8;
    0x00078908 bl 0x803c0                |         r0 = fcn_000803c0 (r0, r1);
                                         |         if (r0 != 0) {
    0x0007890c cbz r0, 0x78910           |             
    0x0007890e adds r4, 3                |             r4 += 3;
                                         |         }
    0x00078910 ldr r0, [pc, 0xbc]        |         
    0x00078912 mov r2, r4                |         r2 = r4;
    0x00078914 movs r1, 0x20             |         r1 = 0x20;
    0x00078916 add r0, pc                |         r0 = 0xf12ea;
    0x00078918 bl 0x7a870                |         r0 = fcn_0007a870 (r0, r1, r2);
    0x0007891c cmp r0, 0                 |         
    0x0007891e str r0, [sp]              |         *(sp) = r0;
    0x00078920 bgt 0x788ea               |         
                                         |     } while (r0 > 0);
    0x00078922 ldr r1, [pc, 0xb0]        |     
    0x00078924 mov r0, r4                |     r0 = r4;
    0x00078926 add r1, pc                |     r1 = 0xf1300;
    0x00078928 bl 0x803c0                |     r0 = fcn_000803c0 (r0, r1);
                                         |     if (r0 == 0) {
    0x0007892c cbz r0, 0x78962           |         goto label_4;
                                         |     }
    0x0007892e ldrb r3, [r0]             |     r3 = *(r0);
                                         |     if (r3 == 0) {
    0x00078930 cbz r3, 0x789a2           |         goto label_5;
                                         |     }
    0x00078932 cmp r3, 0x2b              |     
                                         |     if (r3 != 0x2b) {
    0x00078934 bne 0x789b4               |         goto label_6;
                                         |     }
    0x00078936 mov r1, r5                |     r1 = r5;
    0x00078938 bl 0x746ac                |     r0 = fcn_000746ac (r0, r1);
    0x0007893c cmp r0, 0                 |     
                                         |     if (r0 < 0) {
    0x0007893e blt 0x788ea               |         goto label_0;
                                         |     }
    0x00078940 ldr r3, [sp]              |     r3 = *(sp);
    0x00078942 cmp r3, 0                 |     
                                         |     if (r3 < 0) {
    0x00078944 blt 0x789a8               |         goto label_2;
                                         |     }
    0x00078946 blx 0x92f8                |     r0 = fcn_000092f8 ();
    0x0007894a mov r4, r0                |     r4 = r0;
    0x0007894c blx 0x8aa8                |     blkid_probe_set_device ();
    0x00078950 ldr r3, [sp]              |     r3 = *(sp);
    0x00078952 subs r4, r4, r0           |     r4 -= r0;
    0x00078954 cmp r4, r3                |     
                                         |     if (r4 < r3) {
    0x00078956 blt 0x789a8               |         goto label_2;
                                         |     }
    0x00078958 blx 0x8aa8                |     blkid_probe_set_device ();
    0x0007895c ldr r3, [sp]              |     r3 = *(sp);
    0x0007895e add r0, r3                |     r0 += r3;
    0x00078960 b 0x788ea                 |     goto label_0;
                                         | label_4:
    0x00078962 ldr r1, [pc, 0x74]        |     
    0x00078964 mov r0, r4                |     r0 = r4;
    0x00078966 add r1, pc                |     r1 = 0xf1344;
    0x00078968 bl 0x803c0                |     r0 = fcn_000803c0 (r0, r1);
                                         |     if (r0 == 0) {
    0x0007896c cbz r0, 0x789b4           |         goto label_6;
                                         |     }
    0x0007896e ldrb r3, [r0]             |     r3 = *(r0);
                                         |     if (r3 == 0) {
    0x00078970 cbz r3, 0x789ae           |         goto label_7;
                                         |     }
    0x00078972 cmp r3, 0x2d              |     
                                         |     if (r3 != 0x2d) {
    0x00078974 bne 0x789b4               |         goto label_6;
                                         |     }
    0x00078976 mov r1, r5                |     r1 = r5;
    0x00078978 bl 0x746ac                |     r0 = fcn_000746ac (r0, r1);
    0x0007897c cmp r0, 0                 |     
                                         |     if (r0 < 0) {
    0x0007897e blt 0x788ea               |         goto label_0;
                                         |     }
    0x00078980 ldr r3, [sp]              |     r3 = *(sp);
    0x00078982 cmp r3, 0                 |     
                                         |     if (r3 <= 0) {
    0x00078984 bgt 0x789a8               |         
    0x00078986 blx 0x8aa8                |         r0 = blkid_probe_set_device ();
    0x0007898a mov r4, r0                |         r4 = r0;
    0x0007898c blx 0x92f8                |         fcn_000092f8 ();
    0x00078990 ldr r3, [sp]              |         r3 = *(sp);
    0x00078992 subs r4, r4, r0           |         r4 -= r0;
    0x00078994 cmp r4, r3                |         
                                         |         if (r4 > r3) {
    0x00078996 bgt 0x789a8               |             goto label_2;
                                         |         }
    0x00078998 blx 0x92f8                |         fcn_000092f8 ();
    0x0007899c ldr r3, [sp]              |         r3 = *(sp);
    0x0007899e add r0, r3                |         r0 += r3;
    0x000789a0 b 0x788ea                 |         goto label_0;
                                         | label_5:
    0x000789a2 blx 0x8aa8                |         blkid_probe_set_device ();
    0x000789a6 b 0x788ea                 |         goto label_0;
                                         |     }
                                         | label_2:
    0x000789a8 mvn r0, 0x21              |     r0 = ~0x21;
    0x000789ac b 0x788ea                 |     goto label_0;
                                         | label_7:
    0x000789ae blx 0x92f8                |     fcn_000092f8 ();
    0x000789b2 b 0x788ea                 |     goto label_0;
                                         | label_6:
    0x000789b4 mvn r0, 0x15              |     r0 = ~0x15;
    0x000789b8 b 0x788ea                 |     goto label_0;
                                         | label_3:
    0x000789ba blx 0x927c                |     fprintf_chk ()
    0x000789be nop                       |     
    0x000789c0 lsls r4, r7, 7            |     r4 = r7 << 7;
    0x000789c2 movs r5, r0               |     r5 = r0;
    0x000789c4 lsls r0, r0, 0x13         |     r0 <<= 0x13;
    0x000789c6 movs r0, r0               |     
    0x000789c8 lsls r6, r2, 7            |     r6 = r2 << 7;
    0x000789ca movs r5, r0               |     r5 = r0;
    0x000789cc svc 0x8e                  |     __asm ("svc 0x8e");
    0x000789ce movs r2, r0               |     r2 = r0;
    0x000789d0 invalid                   |     
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x789dc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000789dc ()                  | void fcn_000789dc (int16_t arg1) {
                                             |     int16_t var_4h;
                                             |     int16_t var_84h;
                                             |     r0 = arg1;
    0x000789dc ldrsbgt pc, [r8], -0x8f       |     __asm ("ldrsbgt pc, [r8], -0x8f");
    0x000789e0 movs r1, 0                    |     r1 = 0;
    0x000789e2 ldr r3, [pc, 0x58]            |     
    0x000789e4 push {r4, r5, lr}             |     
    0x000789e6 sub sp, 0x8c                  |     
    0x000789e8 add ip, pc                    |     
    0x000789ea add r5, sp, 4                 |     r5 += var_4h;
    0x000789ec mov r4, r0                    |     r4 = r0;
    0x000789ee mov r2, r5                    |     r2 = r5;
    0x000789f0 ldr.w r3, [ip, r3]            |     r3 = *((ip + r3));
    0x000789f4 movs r0, 2                    |     r0 = 2;
    0x000789f6 ldr r3, [r3]                  |     r3 = *(0x78a3e);
    0x000789f8 str r3, [sp, 0x84]            |     var_84h = r3;
    0x000789fa mov.w r3, 0                   |     r3 = 0;
    0x000789fe blx 0x8a9c                    |     r0 = libc_current_sigrtmin ();
                                             |     if (r0 == 0) {
    0x00078a02 cbz r0, 0x78a1e               |         goto label_1;
                                             |     }
                                             | label_0:
    0x00078a04 rsbs r0, r0, 0                |     r0 -= ;
                                             |     do {
    0x00078a06 ldr r2, [pc, 0x38]            |         
    0x00078a08 ldr r3, [pc, 0x30]            |         r3 = *(0x78a3c);
    0x00078a0a add r2, pc                    |         r2 = 0xf1450;
    0x00078a0c ldr r3, [r2, r3]              |         r3 = *((r2 + r3));
    0x00078a0e ldr r2, [r3]                  |         r2 = *(r3);
    0x00078a10 ldr r3, [sp, 0x84]            |         r3 = var_84h;
    0x00078a12 eors r2, r3                   |         r2 ^= r3;
    0x00078a14 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00078a18 bne 0x78a32                   |             goto label_2;
                                             |         }
    0x00078a1a add sp, 0x8c                  |         
    0x00078a1c pop {r4, r5, pc}              |         
                                             | label_1:
    0x00078a1e mov r1, r4                    |         r1 = r4;
    0x00078a20 mov r0, r5                    |         r0 = r5;
    0x00078a22 blx 0x8af0                    |         r0 = loc_imp_gmon_start_ ();
    0x00078a26 cmp r0, 0                     |         
    0x00078a28 bge 0x78a06                   |         
                                             |     } while (r0 >= 0);
    0x00078a2a blx 0x9628                    |     r0 = fcn_00009628 ();
    0x00078a2e ldr r0, [r0]                  |     r0 = *(r0);
    0x00078a30 b 0x78a04                     |     goto label_0;
                                             | label_2:
    0x00078a32 blx 0x927c                    |     fprintf_chk ()
    0x00078a36 nop                           |     
    0x00078a38 lsls r4, r3, 3                |     r4 = r3 << 3;
    0x00078a3a movs r5, r0                   |     r5 = r0;
    0x00078a3c lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00078a3e movs r0, r0                   |     
    0x00078a40 lsls r2, r7, 2                |     r2 = r7 << 2;
    0x00078a42 movs r5, r0                   |     r5 = r0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x78f1c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00078f1c ()                  | void fcn_00078f1c (int16_t arg1, int16_t arg2, int16_t arg3) {
                                             |     int16_t var_0h;
                                             |     int16_t var_34h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x00078f1c invalid                       |     
    0x00078f20 mov r1, r2                    |     r1 = r2;
    0x00078f22 ldr r2, [pc, 0x74]            |     
    0x00078f24 sub sp, 0x38                  |     
    0x00078f26 ldr r3, [pc, 0x74]            |     r3 = *(0x78f9e);
    0x00078f28 add r2, pc                    |     r2 = 0xf1ec6;
    0x00078f2a ldr r3, [r2, r3]              |     
    0x00078f2c ldr r3, [r3]                  |     r3 = *(0xf1ec6);
    0x00078f2e str r3, [sp, 0x34]            |     var_34h = r3;
    0x00078f30 mov.w r3, 0                   |     r3 = 0;
                                             |     if (r0 != 0) {
    0x00078f34 cbz r0, 0x78f6a               |         
                                             |         if (r1 == 0) {
    0x00078f36 cbz r1, 0x78f7e               |             goto label_0;
                                             |         }
    0x00078f38 mov r4, sp                    |         r4 = sp;
    0x00078f3a mov r5, r0                    |         r5 = r0;
    0x00078f3c mov r0, r4                    |         r0 = r4;
    0x00078f3e bl 0x78af4                    |         fcn_00078af4 (r0, r1);
    0x00078f42 mov r2, r4                    |         r2 = r4;
    0x00078f44 mov r1, r6                    |         r1 = r6;
    0x00078f46 mov r0, r5                    |         r0 = r5;
    0x00078f48 bl 0x78bc0                    |         fcn_00078bc0 (r0, r1, r2, r3, r4, r5, r6);
    0x00078f4c mov r0, r4                    |         r0 = r4;
    0x00078f4e bl 0x78e88                    |         fcn_00078e88 (r0, r1);
    0x00078f52 ldr r2, [pc, 0x4c]            |         r2 = *(0x78fa2);
    0x00078f54 ldr r3, [pc, 0x44]            |         r3 = *(0x78f9c);
    0x00078f56 add r2, pc                    |         r2 += pc;
    0x00078f58 ldr r3, [r2, r3]              |         r3 = *((r2 + r3));
    0x00078f5a ldr r2, [r3]                  |         r2 = *(0x78f9c);
    0x00078f5c ldr r3, [sp, 0x34]            |         r3 = var_34h;
    0x00078f5e eors r2, r3                   |         r2 ^= r3;
    0x00078f60 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00078f64 bne 0x78f92                   |             goto label_1;
                                             |         }
    0x00078f66 add sp, 0x38                  |         
    0x00078f68 pop {r4, r5, r6, pc}          |         
                                             |     }
    0x00078f6a ldr r1, [pc, 0x38]            |     
    0x00078f6c movs r2, 0xc3                 |     r2 = 0xc3;
    0x00078f6e ldr r3, [pc, 0x38]            |     
    0x00078f70 ldr r0, [pc, 0x38]            |     
    0x00078f72 add r1, pc                    |     r1 = 0xf1f1c;
    0x00078f74 add r3, pc                    |     r3 = 0xf1f22;
    0x00078f76 adds r1, 7                    |     r1 += 7;
    0x00078f78 add r0, pc                    |     r0 = 0xf1f28;
    0x00078f7a bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_0:
    0x00078f7e ldr r1, [pc, 0x30]            |     
    0x00078f80 movs r2, 0xc4                 |     r2 = 0xc4;
    0x00078f82 ldr r3, [pc, 0x30]            |     
    0x00078f84 ldr r0, [pc, 0x30]            |     
    0x00078f86 add r1, pc                    |     r1 = 0xf1f3c;
    0x00078f88 add r3, pc                    |     r3 = 0xf1f42;
    0x00078f8a adds r1, 7                    |     r1 += 7;
    0x00078f8c add r0, pc                    |     r0 = 0xf1f48;
    0x00078f8e bl 0x71518                    |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                             | label_1:
    0x00078f92 blx 0x927c                    |     fprintf_chk ()
    0x00078f96 nop                           |     
    0x00078f98 invalid                       |     
                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x78fbc */
                                                     | #include <stdint.h>
                                                     |  
                                                     | #define SWAP32(n) ((uint32_t) (((n & 0x000000ff) << 24) | \
                                                     |                                ((n & 0x0000ff00) <<  8) | \
                                                     |                                ((n & 0x00ff0000) >>  8) | \
                                                     |                                ((n & 0xff000000) >> 24)))
                                                     |  
    ; (fcn) fcn.00078fbc ()                          | void fcn_00078fbc (int16_t arg_78h, uint32_t arg1, uint32_t arg2, int16_t arg4) {
                                                     |     int16_t var_0h;
                                                     |     int16_t var_4h;
                                                     |     int16_t var_8h;
                                                     |     int16_t var_ch;
                                                     |     int16_t var_14h;
                                                     |     int16_t var_18h;
                                                     |     int16_t var_2ch;
                                                     |     int16_t var_5ch;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     |     r3 = arg4;
    0x00078fbc mvnsmi lr, sp, lsr 18                 |     __asm ("mvnsmi lr, sp, lsr 18");
    0x00078fc0 mov r6, r3                            |     r6 = r3;
    0x00078fc2 ldr r4, [pc, 0x244]                   |     
    0x00078fc4 sub sp, 0x60                          |     
    0x00078fc6 ldr r3, [pc, 0x244]                   |     r3 = *(0x7920e);
    0x00078fc8 add r4, pc                            |     r4 = 0xf21d6;
    0x00078fca ldr r5, [sp, 0x78]                    |     r5 = *(arg_78h);
    0x00078fcc ldr r3, [r4, r3]                      |     
    0x00078fce ldr r3, [r3]                          |     r3 = *(0xf21d6);
    0x00078fd0 str r3, [sp, 0x5c]                    |     var_5ch = r3;
    0x00078fd2 mov.w r3, 0                           |     r3 = 0;
    0x00078fd6 cmp r0, 0                             |     
                                                     |     if (arg_78h == ) {
    0x00078fd8 beq.w 0x79138                         |         goto label_8;
                                                     |     }
    0x00078fdc cmp r1, 1                             |     
                                                     |     if (r1 < 1) {
    0x00078fde bls.w 0x7914e                         |         goto label_9;
                                                     |     }
    0x00078fe2 mov r4, r0                            |     r4 = r0;
    0x00078fe4 ldrh r0, [r0]                         |     r0 = *(r0);
    0x00078fe6 cmp r0, 0xa                           |     
                                                     |     if (arg_78hxa == ) {
    0x00078fe8 beq 0x790dc                           |         goto label_10;
                                                     |     }
                                                     |     if (arg_78hxa <= ) {
    0x00078fea bhi 0x79024                           |         
    0x00078fec cmp r0, 1                             |         
                                                     |         if (r0 == 1) {
    0x00078fee beq 0x79070                           |             goto label_11;
                                                     |         }
    0x00078ff0 cmp r0, 2                             |         
                                                     |         if (r0 != 2) {
    0x00078ff2 bne 0x79050                           |             goto label_12;
                                                     |         }
    0x00078ff4 ldr r2, [r4, 4]                       |         r2 = *((r4 + 4));
    0x00078ff6 rev r2, r2                            |         r2 = SWAP32 (r2);
    0x00078ff8 uxtb r0, r2                           |         r0 = (int8_t) r2;
    0x00078ffa lsrs r3, r2, 0x18                     |         r3 = r2 >> 0x18;
    0x00078ffc ubfx r7, r2, 0x10, 8                  |         r7 = (r2 >> 0x10) & ((1 << 8) - 1);
    0x00079000 ubfx r1, r2, 8, 8                     |         r1 = (r2 >> 8) & ((1 << 8) - 1);
    0x00079004 str r0, [sp, 8]                       |         var_8h = r0;
    0x00079006 cmp r6, 0                             |         
                                                     |         if (r6 == 0) {
    0x00079008 beq 0x790ac                           |             goto label_13;
                                                     |         }
    0x0007900a ldrh r0, [r4, 2]                      |         r0 = *((r4 + 2));
    0x0007900c ldr r2, [pc, 0x200]                   |         
    0x0007900e str r1, [sp, 4]                       |         var_4h = r1;
    0x00079010 movs r1, 1                            |         r1 = 1;
    0x00079012 rev16 r0, r0                          |         __asm ("rev16 r0, r0");
    0x00079014 str r7, [sp]                          |         *(sp) = r7;
    0x00079016 uxth r0, r0                           |         r0 = (int16_t) r0;
    0x00079018 add r2, pc                            |         r2 = 0xf222c;
    0x0007901a str r0, [sp, 0xc]                     |         var_ch = r0;
    0x0007901c add r0, sp, 0x14                      |         r0 += var_14h;
    0x0007901e blx 0x8e48                            |         fcn_00008e48 ();
    0x00079022 b 0x79044                             |         
                                                     |     } else {
    0x00079024 cmp r0, 0x28                          |         
                                                     |         if (arg_78hx28 != ) {
    0x00079026 bne 0x79050                           |             goto label_12;
                                                     |         }
    0x00079028 ldr r3, [r4, 8]                       |         r3 = *((r4 + 8));
    0x0007902a cmp r6, 0                             |         
                                                     |         if (r6 == 0) {
    0x0007902c beq 0x790be                           |             goto label_14;
                                                     |         }
    0x0007902e adds r2, r3, 1                        |         r2 = r3 + 1;
    0x00079030 ldr r0, [r4, 4]                       |         r0 = *((r4 + 4));
                                                     |         if (r2 == r3) {
    0x00079032 beq.w 0x791b2                         |             goto label_15;
                                                     |         }
    0x00079036 ldr r2, [pc, 0x1dc]                   |         
    0x00079038 movs r1, 1                            |         r1 = 1;
    0x0007903a str r0, [sp]                          |         *(sp) = r0;
    0x0007903c add r0, sp, 0x14                      |         r0 += var_14h;
    0x0007903e add r2, pc                            |         r2 = 0xf2258;
    0x00079040 blx 0x8e48                            |         r0 = fcn_00008e48 ();
                                                     |     }
                                                     | label_1:
    0x00079044 cmp r0, 0                             |     
                                                     |     if (r0 < 0) {
    0x00079046 blt 0x790a6                           |         goto label_3;
                                                     |     }
    0x00079048 ldr r3, [sp, 0x14]                    |     r3 = var_14h;
                                                     |     do {
                                                     | label_2:
    0x0007904a movs r0, 0                            |         r0 = 0;
    0x0007904c str r3, [r5]                          |         *(r5) = r3;
    0x0007904e b 0x79054                             |         goto label_0;
                                                     | label_12:
    0x00079050 mvn r0, 0x5e                          |         r0 = ~0x5e;
                                                     | label_0:
    0x00079054 ldr r2, [pc, 0x1c0]                   |         
    0x00079056 ldr r3, [pc, 0x1b4]                   |         r3 = *(0x7920e);
    0x00079058 add r2, pc                            |         r2 = 0xf2274;
    0x0007905a ldr r3, [r2, r3]                      |         r3 = *(0xf2274);
    0x0007905c ldr r2, [r3]                          |         r2 = *(0xf2274);
    0x0007905e ldr r3, [sp, 0x5c]                    |         r3 = var_5ch;
    0x00079060 eors r2, r3                           |         r2 ^= r3;
    0x00079062 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x00079066 bne.w 0x791fc                         |             goto label_16;
                                                     |         }
    0x0007906a add sp, 0x60                          |         
    0x0007906c pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_11:
    0x00079070 cmp r1, 2                             |         
                                                     |         if (r1 == 2) {
    0x00079072 beq 0x790cc                           |             goto label_17;
                                                     |         }
    0x00079074 ldrb r6, [r4, 2]                      |         r6 = *((r4 + 2));
    0x00079076 cmp r6, 0                             |         
                                                     |         if (r6 != 0) {
    0x00079078 bne 0x79164                           |             goto label_18;
                                                     |         }
    0x0007907a cmp r1, 3                             |         
                                                     |         if (r1 == 3) {
    0x0007907c beq 0x790cc                           |             goto label_17;
                                                     |         }
    0x0007907e adds r0, r4, 3                        |         r0 = r4 + 3;
    0x00079080 subs r1, 3                            |         r1 -= 3;
    0x00079082 bl 0x68a98                            |         r0 = fcn_00068a98 (r0, r1, r2, r3, r4, r5);
    0x00079086 mov r4, r0                            |         r4 = r0;
                                                     |         if (r0 == 0) {
    0x00079088 cbz r0, 0x790a6                       |             goto label_3;
                                                     |         }
    0x0007908a ldr r0, [pc, 0x190]                   |         
    0x0007908c mov r2, r6                            |         r2 = r6;
    0x0007908e mov r1, r4                            |         r1 = r4;
    0x00079090 add r0, pc                            |         r0 = 0xf22b2;
    0x00079092 bl 0x7a8a8                            |         r0 = fcn_0007a8a8 (r0, r1);
    0x00079096 mov r3, r0                            |         r3 = r0;
    0x00079098 mov r0, r4                            |         r0 = r4;
    0x0007909a str r3, [sp, 0x14]                    |         var_14h = r3;
    0x0007909c blx 0x8dac                            |         fcn_00008dac ();
    0x000790a0 ldr r3, [sp, 0x14]                    |         r3 = var_14h;
    0x000790a2 cmp r3, 0                             |         
    0x000790a4 bne 0x7904a                           |         
                                                     |     } while (r3 != 0);
                                                     | label_3:
    0x000790a6 mvn r0, 0xb                           |     r0 = ~0xb;
    0x000790aa b 0x79054                             |     goto label_0;
                                                     | label_13:
    0x000790ac ldr r2, [pc, 0x170]                   |     
    0x000790ae add r0, sp, 0x14                      |     r0 += var_14h;
    0x000790b0 strd r7, r1, [sp]                     |     __asm ("strd r7, r1, [sp]");
    0x000790b4 movs r1, 1                            |     r1 = 1;
    0x000790b6 add r2, pc                            |     r2 = 0xf22da;
    0x000790b8 blx 0x8e48                            |     fcn_00008e48 ();
    0x000790bc b 0x79044                             |     goto label_1;
                                                     | label_14:
    0x000790be ldr r2, [pc, 0x164]                   |     
    0x000790c0 movs r1, 1                            |     r1 = 1;
    0x000790c2 add r0, sp, 0x14                      |     r0 += var_14h;
    0x000790c4 add r2, pc                            |     r2 = 0xf22ee;
    0x000790c6 blx 0x8e48                            |     fcn_00008e48 ();
    0x000790ca b 0x79044                             |     goto label_1;
                                                     | label_17:
    0x000790cc ldr r0, [pc, 0x158]                   |     
    0x000790ce add r0, pc                            |     r0 = 0xf22fa;
    0x000790d0 blx 0x9200                            |     r0 = fcn_00009200 ();
    0x000790d4 mov r3, r0                            |     r3 = r0;
    0x000790d6 cmp r3, 0                             |     
                                                     |     if (r3 != 0) {
    0x000790d8 bne 0x7904a                           |         goto label_2;
                                                     |     }
    0x000790da b 0x790a6                             |     goto label_3;
                                                     | label_10:
    0x000790dc add.w r7, r4, 8                       |     r7 = r4 + 8;
                                                     |     if (r2 != 0) {
    0x000790e0 cbz r2, 0x79110                       |         
    0x000790e2 ldr r1, [pc, 0x148]                   |         
    0x000790e4 movs r2, 0xc                          |         r2 = 0xc;
    0x000790e6 mov r0, r7                            |         r0 = r7;
    0x000790e8 add r1, pc                            |         r1 = 0xf231a;
    0x000790ea blx 0x8a78                            |         r0 = getauxval ();
                                                     |         if (r0 != 0) {
    0x000790ee cbnz r0, 0x79110                      |             goto label_19;
                                                     |         }
    0x000790f0 ldrb r2, [r4, 0x17]                   |         r2 = *((r4 + 0x17));
    0x000790f2 ldrb r3, [r4, 0x14]                   |         r3 = *((r4 + 0x14));
    0x000790f4 ldrb r0, [r4, 0x15]                   |         r0 = *((r4 + 0x15));
    0x000790f6 ldrb r7, [r4, 0x16]                   |         r7 = *((r4 + 0x16));
    0x000790f8 str r2, [sp, 8]                       |         var_8h = r2;
    0x000790fa cmp r6, 0                             |         
                                                     |         if (r6 != 0) {
    0x000790fc bne 0x79180                           |             goto label_20;
                                                     |         }
    0x000790fe ldr r2, [pc, 0x130]                   |         
    0x00079100 str r7, [sp, 4]                       |         var_4h = r7;
    0x00079102 add r2, pc                            |         r2 = 0xf2338;
                                                     | label_5:
    0x00079104 str r0, [sp]                          |         *(sp) = r0;
    0x00079106 movs r1, 1                            |         r1 = 1;
    0x00079108 add r0, sp, 0x14                      |         r0 += var_14h;
    0x0007910a blx 0x8e48                            |         fcn_00008e48 ();
    0x0007910e b 0x79044                             |         goto label_1;
                                                     |     }
                                                     | label_19:
    0x00079110 add.w r8, sp, 0x2c                    |     r8 += var_2ch;
    0x00079114 mov r1, r7                            |     r1 = r7;
    0x00079116 movs r3, 0x2e                         |     r3 = 0x2e;
    0x00079118 mov r2, r8                            |     r2 = r8;
    0x0007911a movs r0, 0xa                          |     r0 = 0xa;
    0x0007911c blx 0x89bc                            |     fcn_000089bc ();
    0x00079120 ldr r0, [r4, 0x18]                    |     r0 = *((r4 + 0x18));
    0x00079122 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00079124 bne 0x791c2                           |         goto label_21;
                                                     |     }
    0x00079126 cmp r6, 0                             |     
                                                     |     if (r6 != 0) {
    0x00079128 bne 0x7919a                           |         goto label_22;
                                                     |     }
                                                     | label_6:
    0x0007912a mov r0, r8                            |     r0 = r8;
    0x0007912c blx 0x9200                            |     r0 = fcn_00009200 ();
    0x00079130 mov r3, r0                            |     r3 = r0;
    0x00079132 cmp r3, 0                             |     
                                                     |     if (r3 != 0) {
    0x00079134 bne 0x7904a                           |         goto label_2;
                                                     |     }
    0x00079136 b 0x790a6                             |     goto label_3;
                                                     | label_8:
    0x00079138 ldr r1, [pc, 0xf8]                    |     
    0x0007913a mov.w r2, 0x19e                       |     r2 = 0x19e;
    0x0007913e ldr r3, [pc, 0xf8]                    |     
    0x00079140 ldr r0, [pc, 0xf8]                    |     
    0x00079142 add r1, pc                            |     r1 = 0xf237a;
    0x00079144 add r3, pc                            |     r3 = 0xf2382;
    0x00079146 adds r1, 7                            |     r1 += 7;
    0x00079148 add r0, pc                            |     r0 = 0xf2388;
    0x0007914a bl 0x71518                            |     fcn_00071518 (r0, r1, r2, r3);
                                                     | label_9:
    0x0007914e ldr r1, [pc, 0xf0]                    |     
    0x00079150 movw r2, 0x19f                        |     r2 = 0x19f;
    0x00079154 ldr r3, [pc, 0xec]                    |     
    0x00079156 ldr r0, [pc, 0xf0]                    |     
    0x00079158 add r1, pc                            |     r1 = 0xf239e;
    0x0007915a add r3, pc                            |     r3 = 0xf23a2;
    0x0007915c adds r1, 7                            |     r1 += 7;
    0x0007915e add r0, pc                            |     r0 = 0xf23ac;
    0x00079160 bl 0x71518                            |     fcn_00071518 (r0, r1, r2, r3);
                                                     | label_18:
    0x00079164 adds r0, r4, 2                        |     r0 = r4 + 2;
    0x00079166 subs r3, r1, 3                        |     r3 = r1 - 3;
    0x00079168 ldrb r2, [r0, r3]                     |     r2 = *((r0 + r3));
                                                     |     if (r2 != 0) {
    0x0007916a cbnz r2, 0x7917c                      |         goto label_23;
                                                     |     }
                                                     | label_4:
    0x0007916c mov r1, r3                            |     r1 = r3;
    0x0007916e bl 0x68a98                            |     r0 = fcn_00068a98 (r0, r1, r2, r3, r4, r5);
    0x00079172 mov r3, r0                            |     r3 = r0;
    0x00079174 cmp r3, 0                             |     
                                                     |     if (r3 != 0) {
    0x00079176 bne.w 0x7904a                         |         goto label_2;
                                                     |     }
    0x0007917a b 0x790a6                             |     goto label_3;
                                                     | label_23:
    0x0007917c subs r3, r1, 2                        |     r3 = r1 - 2;
    0x0007917e b 0x7916c                             |     goto label_4;
                                                     | label_20:
    0x00079180 ldrh r1, [r4, 2]                      |     r1 = *((r4 + 2));
    0x00079182 ldr r2, [pc, 0xc8]                    |     
    0x00079184 str r0, [sp]                          |     *(sp) = r0;
    0x00079186 add r0, sp, 0x14                      |     r0 += var_14h;
    0x00079188 rev16 r1, r1                          |     __asm ("rev16 r1, r1");
    0x0007918a str r7, [sp, 4]                       |     var_4h = r7;
    0x0007918c uxth r1, r1                           |     r1 = (int16_t) r1;
    0x0007918e add r2, pc                            |     r2 = 0xf23e0;
    0x00079190 str r1, [sp, 0xc]                     |     var_ch = r1;
    0x00079192 movs r1, 1                            |     r1 = 1;
    0x00079194 blx 0x8e48                            |     fcn_00008e48 ();
    0x00079198 b 0x79044                             |     goto label_1;
                                                     | label_22:
    0x0007919a ldrh r0, [r4, 2]                      |     r0 = *((r4 + 2));
    0x0007919c ldr r1, [pc, 0xb0]                    |     
    0x0007919e rev16 r0, r0                          |     __asm ("rev16 r0, r0");
    0x000791a0 add r1, pc                            |     r1 = 0xf23f4;
    0x000791a2 uxth r0, r0                           |     r0 = (int16_t) r0;
    0x000791a4 mov r7, r1                            |     r7 = r1;
                                                     |     do {
                                                     | label_7:
    0x000791a6 ldr r2, [pc, 0xac]                    |         
    0x000791a8 mov r3, r8                            |         r3 = r8;
    0x000791aa str r7, [sp, 8]                       |         var_8h = r7;
    0x000791ac str r1, [sp, 4]                       |         var_4h = r1;
    0x000791ae add r2, pc                            |         r2 = 0xf2408;
    0x000791b0 b 0x79104                             |         goto label_5;
                                                     | label_15:
    0x000791b2 ldr r2, [pc, 0xa4]                    |         
    0x000791b4 mov r3, r0                            |         r3 = r0;
    0x000791b6 movs r1, 1                            |         r1 = 1;
    0x000791b8 add r0, sp, 0x14                      |         r0 += var_14h;
    0x000791ba add r2, pc                            |         r2 = 0xf2418;
    0x000791bc blx 0x8e48                            |         fcn_00008e48 ();
    0x000791c0 b 0x79044                             |         goto label_1;
                                                     | label_21:
    0x000791c2 add r7, sp, 0x18                      |         r7 += var_18h;
    0x000791c4 movs r2, 1                            |         r2 = 1;
    0x000791c6 mov r1, r7                            |         r1 = r7;
    0x000791c8 bl 0x6bb7c                            |         fcn_0006bb7c (r0, r1, r2);
                                                     |         if (r6 == 0) {
    0x000791cc cbz r6, 0x791de                       |             goto label_24;
                                                     |         }
    0x000791ce ldrh r0, [r4, 2]                      |         r0 = *((r4 + 2));
    0x000791d0 ldr r3, [r4, 0x18]                    |         r3 = *((r4 + 0x18));
    0x000791d2 rev16 r0, r0                          |         __asm ("rev16 r0, r0");
    0x000791d4 uxth r0, r0                           |         r0 = (int16_t) r0;
                                                     |         if (r3 == 0) {
    0x000791d6 cbz r3, 0x79200                       |             goto label_25;
                                                     |         }
    0x000791d8 ldr r1, [pc, 0x80]                    |         
    0x000791da add r1, pc                            |         r1 = 0xf243a;
    0x000791dc b 0x791a6                             |         
                                                     |     } while (1);
                                                     | label_24:
    0x000791de ldr r3, [r4, 0x18]                    |     r3 = *((r4 + 0x18));
    0x000791e0 cmp r3, 0                             |     
                                                     |     if (r3 == 0) {
    0x000791e2 beq 0x7912a                           |         goto label_6;
                                                     |     }
    0x000791e4 ldr r1, [pc, 0x78]                    |     
    0x000791e6 mov r3, r6                            |     r3 = r6;
    0x000791e8 mov r2, r7                            |     r2 = r7;
    0x000791ea mov r0, r8                            |     r0 = r8;
    0x000791ec add r1, pc                            |     r1 = 0xf2450;
    0x000791ee bl 0x7a8a8                            |     r0 = fcn_0007a8a8 (r0, r1);
    0x000791f2 mov r3, r0                            |     r3 = r0;
    0x000791f4 cmp r3, 0                             |     
                                                     |     if (r3 != 0) {
    0x000791f6 bne.w 0x7904a                         |         goto label_2;
                                                     |     }
    0x000791fa b 0x790a6                             |     goto label_3;
                                                     | label_16:
    0x000791fc blx 0x927c                            |     fprintf_chk ()
                                                     | label_25:
    0x00079200 ldr r1, [pc, 0x60]                    |     
    0x00079202 add r1, pc                            |     r1 = 0xf246a;
    0x00079204 mov r7, r1                            |     r7 = r1;
    0x00079206 b 0x791a6                             |     goto label_7;
                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x79268 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00079268 ()                                  | void fcn_00079268 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_10h;
                                                             |     int16_t var_14h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
    0x00079268 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x0007926c sub sp, 0x18                                  |     
    0x0007926e ldr r5, [pc, 0x110]                           |     
    0x00079270 movs r3, 4                                    |     r3 = 4;
    0x00079272 ldr r4, [pc, 0x110]                           |     r4 = *(0x79386);
    0x00079274 add r5, pc                                    |     r5 = 0xf25fa;
    0x00079276 ldr r4, [r5, r4]                              |     
    0x00079278 ldr r4, [r4]                                  |     r4 = *(0xf25fa);
    0x0007927a str r4, [sp, 0x14]                            |     var_14h = r4;
    0x0007927c mov.w r4, 0                                   |     r4 = 0;
    0x00079280 subs r4, r1, 0                                |     r4 = r1 - 0;
    0x00079282 str r3, [sp, 0xc]                             |     var_ch = r3;
                                                             |     if (r4 < r1) {
    0x00079284 blt 0x79376                                   |         goto label_4;
                                                             |     }
    0x00079286 add.w r8, sp, 8                               |     r8 += var_8h;
    0x0007928a add.w sb, sp, 0xc                             |     sb += var_ch;
    0x0007928e mov r5, r2                                    |     r5 = r2;
    0x00079290 mov r3, r8                                    |     r3 = r8;
    0x00079292 movs r2, 7                                    |     r2 = 7;
    0x00079294 movs r1, 1                                    |     r1 = 1;
    0x00079296 str.w sb, [sp]                                |     __asm ("str.w sb, [sp]");
    0x0007929a mov r6, r0                                    |     r6 = r0;
    0x0007929c blx 0x953c                                    |     r0 = fcn_0000953c ();
    0x000792a0 cmp r0, 0                                     |     
    0x000792a2 lsl.w r7, r4, 1                               |     r7 = r4 << 1;
                                                             |     if (r0 >= 0) {
    0x000792a6 blt 0x792b8                                   |         
    0x000792a8 ldr r2, [sp, 0xc]                             |         r2 = var_ch;
    0x000792aa cmp r2, 4                                     |         
    0x000792ac ite ne                                        |         
                                                             |         if (r2 == 4) {
    0x000792ae movne r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r2 != 4) {
    0x000792b0 andeq r3, r5, 1                               |             r3 = r5 & 1;
                                                             |         }
    0x000792b4 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000792b6 bne 0x79352                                   |             goto label_5;
                                                             |         }
                                                             |     }
    0x000792b8 ldr r3, [sp, 8]                               |     r3 = var_8h;
    0x000792ba subs r3, r3, r7                               |     r3 -= r7;
    0x000792bc clz r3, r3                                    |     r3 &= r3;
    0x000792c0 lsrs r3, r3, 5                                |     r3 >>= 5;
                                                             | label_1:
    0x000792c2 movs r0, 0                                    |     r0 = 0;
                                                             |     if (r3 != 0) {
    0x000792c4 cbnz r3, 0x7932a                              |         goto label_0;
                                                             |     }
    0x000792c6 movs r3, 4                                    |     r3 = 4;
    0x000792c8 add.w sl, sp, 0x10                            |     sl += var_10h;
    0x000792cc str r3, [sp]                                  |     *(sp) = r3;
    0x000792ce movs r2, 7                                    |     r2 = 7;
    0x000792d0 mov r3, sl                                    |     r3 = sl;
    0x000792d2 movs r1, 1                                    |     r1 = 1;
    0x000792d4 mov r0, r6                                    |     r0 = r6;
    0x000792d6 str r4, [sp, 0x10]                            |     var_10h = r4;
    0x000792d8 blx 0x9564                                    |     r0 = kmod_module_get_initstate ();
    0x000792dc cmp r0, 0                                     |     
    0x000792de blt 0x79344                                   |     
                                                             |     while (r0 <= 0) {
    0x000792e0 movs r2, 4                                    |         r2 = 4;
    0x000792e2 mov r3, r8                                    |         r3 = r8;
    0x000792e4 str r2, [sp, 0xc]                             |         var_ch = r2;
    0x000792e6 movs r1, 1                                    |         r1 = 1;
    0x000792e8 movs r2, 7                                    |         r2 = 7;
    0x000792ea mov r0, r6                                    |         r0 = r6;
    0x000792ec str.w sb, [sp]                                |         __asm ("str.w sb, [sp]");
    0x000792f0 blx 0x953c                                    |         r0 = fcn_0000953c ();
    0x000792f4 cmp r0, 0                                     |         
                                                             |         if (r0 >= 0) {
    0x000792f6 blt 0x79306                                   |             
    0x000792f8 ldr r3, [sp, 0xc]                             |             r3 = var_ch;
    0x000792fa cmp r3, 4                                     |             
    0x000792fc ite ne                                        |             
                                                             |             if (r3 == 4) {
    0x000792fe movne r5, 0                                   |                 r5 = 0;
                                                             |             }
                                                             |             if (r3 != 4) {
    0x00079300 andeq r5, r5, 1                               |                 r5 &= 1;
                                                             |             }
                                                             |             if (r5 != 0) {
    0x00079304 cbnz r5, 0x7936a                              |                 goto label_6;
                                                             |             }
                                                             |         }
    0x00079306 ldr r3, [sp, 8]                               |         r3 = var_8h;
    0x00079308 subs r3, r3, r7                               |         r3 -= r7;
    0x0007930a clz r3, r3                                    |         r3 &= r3;
    0x0007930e lsrs r3, r3, 5                                |         r3 >>= 5;
                                                             |         if (r3 == 0) {
                                                             | label_3:
    0x00079310 cbnz r3, 0x79328                              |             
    0x00079312 movs r1, 4                                    |             r1 = 4;
    0x00079314 mov r3, sl                                    |             r3 = sl;
    0x00079316 str r1, [sp]                                  |             *(sp) = r1;
    0x00079318 movs r2, 0x20                                 |             r2 = 0x20;
    0x0007931a mov r0, r6                                    |             r0 = r6;
    0x0007931c movs r1, 1                                    |             r1 = 1;
    0x0007931e str r4, [sp, 0x10]                            |             var_10h = r4;
    0x00079320 blx 0x9564                                    |             r0 = kmod_module_get_initstate ();
    0x00079324 cmp r0, 0                                     |             
                                                             |             if (r0 < 0) {
    0x00079326 blt 0x7935e                                   |                 goto label_7;
                                                             |             }
                                                             |         }
                                                             | label_2:
    0x00079328 movs r0, 1                                    |         r0 = 1;
                                                             | label_0:
    0x0007932a ldr r2, [pc, 0x5c]                            |         
    0x0007932c ldr r3, [pc, 0x54]                            |         r3 = *(0x79384);
    0x0007932e add r2, pc                                    |         r2 = 0xf26bc;
    0x00079330 ldr r3, [r2, r3]                              |         r3 = *(0xf26bc);
    0x00079332 ldr r2, [r3]                                  |         r2 = *(0xf26bc);
    0x00079334 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x00079336 eors r2, r3                                   |         r2 ^= r3;
    0x00079338 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0007933c bne 0x7937c                                   |             goto label_8;
                                                             |         }
    0x0007933e add sp, 0x18                                  |         
    0x00079340 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
    0x00079344 blx 0x9628                                    |         r0 = fcn_00009628 ();
    0x00079348 ldr r0, [r0]                                  |         r0 = *(r0);
    0x0007934a cmp r0, 0                                     |         
    0x0007934c ble 0x792e0                                   |         
                                                             |     }
                                                             |     do {
    0x0007934e rsbs r0, r0, 0                                |         r0 -= ;
    0x00079350 b 0x7932a                                     |         goto label_0;
                                                             | label_5:
    0x00079352 ldr r3, [sp, 8]                               |         r3 = var_8h;
    0x00079354 cmp r3, r7                                    |         
    0x00079356 ite lo                                        |         
                                                             |         if (r3 >= r7) {
    0x00079358 movlo r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r3 < r7) {
    0x0007935a movhs r3, 1                                   |             r3 = 1;
                                                             |         }
    0x0007935c b 0x792c2                                     |         goto label_1;
                                                             | label_7:
    0x0007935e blx 0x9628                                    |         r0 = fcn_00009628 ();
    0x00079362 ldr r0, [r0]                                  |         r0 = *(r0);
    0x00079364 cmp r0, 0                                     |         
    0x00079366 bgt 0x7934e                                   |         
                                                             |     } while (r0 > 0);
    0x00079368 b 0x79328                                     |     goto label_2;
                                                             | label_6:
    0x0007936a ldr r3, [sp, 8]                               |     r3 = var_8h;
    0x0007936c cmp r7, r3                                    |     
    0x0007936e ite hi                                        |     
                                                             |     if (r7 <= r3) {
    0x00079370 movhi r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r7 > r3) {
    0x00079372 movls r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00079374 b 0x79310                                     |     goto label_3;
                                                             | label_4:
    0x00079376 mvn r0, 0x21                                  |     r0 = ~0x21;
    0x0007937a b 0x7932a                                     |     goto label_0;
                                                             | label_8:
    0x0007937c blx 0x927c                                    |     fprintf_chk ()
    0x00079380 ldr.w r0, [r0, r4]                            |     r0 = *((r0 + r4));
    0x00079384 lsls r0, r0, 0x13                             |     r0 <<= 0x13;
    0x00079386 movs r0, r0                                   |     
    0x00079388 invalid                                       |     
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7938c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0007938c ()                                  | void fcn_0007938c (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_10h;
                                                             |     int16_t var_14h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     if (? >= ?) {
    0x0007938c ldrbmi lr, [r0, sp, lsr 18]!                  |         
                                                             |     }
    0x00079390 sub sp, 0x18                                  |     
    0x00079392 ldr r5, [pc, 0x110]                           |     
    0x00079394 movs r3, 4                                    |     r3 = 4;
    0x00079396 ldr r4, [pc, 0x110]                           |     r4 = *(0x794aa);
    0x00079398 add r5, pc                                    |     r5 = 0xf2842;
    0x0007939a ldr r4, [r5, r4]                              |     
    0x0007939c ldr r4, [r4]                                  |     r4 = *(0xf2842);
    0x0007939e str r4, [sp, 0x14]                            |     var_14h = r4;
    0x000793a0 mov.w r4, 0                                   |     r4 = 0;
    0x000793a4 subs r4, r1, 0                                |     r4 = r1 - 0;
    0x000793a6 str r3, [sp, 0xc]                             |     var_ch = r3;
                                                             |     if (r4 < r1) {
    0x000793a8 blt 0x7949a                                   |         goto label_4;
                                                             |     }
    0x000793aa add.w r8, sp, 8                               |     r8 += var_8h;
    0x000793ae add.w sb, sp, 0xc                             |     sb += var_ch;
    0x000793b2 mov r5, r2                                    |     r5 = r2;
    0x000793b4 mov r3, r8                                    |     r3 = r8;
    0x000793b6 movs r2, 8                                    |     r2 = 8;
    0x000793b8 movs r1, 1                                    |     r1 = 1;
    0x000793ba str.w sb, [sp]                                |     __asm ("str.w sb, [sp]");
    0x000793be mov r6, r0                                    |     r6 = r0;
    0x000793c0 blx 0x953c                                    |     r0 = fcn_0000953c ();
    0x000793c4 cmp r0, 0                                     |     
    0x000793c6 lsl.w r7, r4, 1                               |     r7 = r4 << 1;
                                                             |     if (r0 >= 0) {
    0x000793ca blt 0x793dc                                   |         
    0x000793cc ldr r2, [sp, 0xc]                             |         r2 = var_ch;
    0x000793ce cmp r2, 4                                     |         
    0x000793d0 ite ne                                        |         
                                                             |         if (r2 == 4) {
    0x000793d2 movne r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r2 != 4) {
    0x000793d4 andeq r3, r5, 1                               |             r3 = r5 & 1;
                                                             |         }
    0x000793d8 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000793da bne 0x79476                                   |             goto label_5;
                                                             |         }
                                                             |     }
    0x000793dc ldr r3, [sp, 8]                               |     r3 = var_8h;
    0x000793de subs r3, r3, r7                               |     r3 -= r7;
    0x000793e0 clz r3, r3                                    |     r3 &= r3;
    0x000793e4 lsrs r3, r3, 5                                |     r3 >>= 5;
                                                             | label_1:
    0x000793e6 movs r0, 0                                    |     r0 = 0;
                                                             |     if (r3 != 0) {
    0x000793e8 cbnz r3, 0x7944e                              |         goto label_0;
                                                             |     }
    0x000793ea movs r3, 4                                    |     r3 = 4;
    0x000793ec add.w sl, sp, 0x10                            |     sl += var_10h;
    0x000793f0 str r3, [sp]                                  |     *(sp) = r3;
    0x000793f2 movs r2, 8                                    |     r2 = 8;
    0x000793f4 mov r3, sl                                    |     r3 = sl;
    0x000793f6 movs r1, 1                                    |     r1 = 1;
    0x000793f8 mov r0, r6                                    |     r0 = r6;
    0x000793fa str r4, [sp, 0x10]                            |     var_10h = r4;
    0x000793fc blx 0x9564                                    |     r0 = kmod_module_get_initstate ();
    0x00079400 cmp r0, 0                                     |     
    0x00079402 blt 0x79468                                   |     
                                                             |     while (r0 <= 0) {
    0x00079404 movs r2, 4                                    |         r2 = 4;
    0x00079406 mov r3, r8                                    |         r3 = r8;
    0x00079408 str r2, [sp, 0xc]                             |         var_ch = r2;
    0x0007940a movs r1, 1                                    |         r1 = 1;
    0x0007940c movs r2, 8                                    |         r2 = 8;
    0x0007940e mov r0, r6                                    |         r0 = r6;
    0x00079410 str.w sb, [sp]                                |         __asm ("str.w sb, [sp]");
    0x00079414 blx 0x953c                                    |         r0 = fcn_0000953c ();
    0x00079418 cmp r0, 0                                     |         
                                                             |         if (r0 >= 0) {
    0x0007941a blt 0x7942a                                   |             
    0x0007941c ldr r3, [sp, 0xc]                             |             r3 = var_ch;
    0x0007941e cmp r3, 4                                     |             
    0x00079420 ite ne                                        |             
                                                             |             if (r3 == 4) {
    0x00079422 movne r5, 0                                   |                 r5 = 0;
                                                             |             }
                                                             |             if (r3 != 4) {
    0x00079424 andeq r5, r5, 1                               |                 r5 &= 1;
                                                             |             }
                                                             |             if (r5 != 0) {
    0x00079428 cbnz r5, 0x7948e                              |                 goto label_6;
                                                             |             }
                                                             |         }
    0x0007942a ldr r3, [sp, 8]                               |         r3 = var_8h;
    0x0007942c subs r3, r3, r7                               |         r3 -= r7;
    0x0007942e clz r3, r3                                    |         r3 &= r3;
    0x00079432 lsrs r3, r3, 5                                |         r3 >>= 5;
                                                             |         if (r3 == 0) {
                                                             | label_3:
    0x00079434 cbnz r3, 0x7944c                              |             
    0x00079436 movs r1, 4                                    |             r1 = 4;
    0x00079438 mov r3, sl                                    |             r3 = sl;
    0x0007943a str r1, [sp]                                  |             *(sp) = r1;
    0x0007943c movs r2, 0x21                                 |             r2 = 0x21;
    0x0007943e mov r0, r6                                    |             r0 = r6;
    0x00079440 movs r1, 1                                    |             r1 = 1;
    0x00079442 str r4, [sp, 0x10]                            |             var_10h = r4;
    0x00079444 blx 0x9564                                    |             r0 = kmod_module_get_initstate ();
    0x00079448 cmp r0, 0                                     |             
                                                             |             if (r0 < 0) {
    0x0007944a blt 0x79482                                   |                 goto label_7;
                                                             |             }
                                                             |         }
                                                             | label_2:
    0x0007944c movs r0, 1                                    |         r0 = 1;
                                                             | label_0:
    0x0007944e ldr r2, [pc, 0x5c]                            |         
    0x00079450 ldr r3, [pc, 0x54]                            |         r3 = *(0x794a8);
    0x00079452 add r2, pc                                    |         r2 = 0xf2904;
    0x00079454 ldr r3, [r2, r3]                              |         r3 = *(0xf2904);
    0x00079456 ldr r2, [r3]                                  |         r2 = *(0xf2904);
    0x00079458 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x0007945a eors r2, r3                                   |         r2 ^= r3;
    0x0007945c mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00079460 bne 0x794a0                                   |             goto label_8;
                                                             |         }
    0x00079462 add sp, 0x18                                  |         
    0x00079464 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
    0x00079468 blx 0x9628                                    |         r0 = fcn_00009628 ();
    0x0007946c ldr r0, [r0]                                  |         r0 = *(r0);
    0x0007946e cmp r0, 0                                     |         
    0x00079470 ble 0x79404                                   |         
                                                             |     }
                                                             |     do {
    0x00079472 rsbs r0, r0, 0                                |         r0 -= ;
    0x00079474 b 0x7944e                                     |         goto label_0;
                                                             | label_5:
    0x00079476 ldr r3, [sp, 8]                               |         r3 = var_8h;
    0x00079478 cmp r3, r7                                    |         
    0x0007947a ite lo                                        |         
                                                             |         if (r3 >= r7) {
    0x0007947c movlo r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r3 < r7) {
    0x0007947e movhs r3, 1                                   |             r3 = 1;
                                                             |         }
    0x00079480 b 0x793e6                                     |         goto label_1;
                                                             | label_7:
    0x00079482 blx 0x9628                                    |         r0 = fcn_00009628 ();
    0x00079486 ldr r0, [r0]                                  |         r0 = *(r0);
    0x00079488 cmp r0, 0                                     |         
    0x0007948a bgt 0x79472                                   |         
                                                             |     } while (r0 > 0);
    0x0007948c b 0x7944c                                     |     goto label_2;
                                                             | label_6:
    0x0007948e ldr r3, [sp, 8]                               |     r3 = var_8h;
    0x00079490 cmp r7, r3                                    |     
    0x00079492 ite hi                                        |     
                                                             |     if (r7 <= r3) {
    0x00079494 movhi r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r7 > r3) {
    0x00079496 movls r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00079498 b 0x79434                                     |     goto label_3;
                                                             | label_4:
    0x0007949a mvn r0, 0x21                                  |     r0 = ~0x21;
    0x0007949e b 0x7944e                                     |     goto label_0;
                                                             | label_8:
    0x000794a0 blx 0x927c                                    |     fprintf_chk ()
    0x000794a4 ssat16 r0, 5, ip                              |     __asm ("ssat16 r0, 5, ip");
    0x000794a8 lsls r0, r0, 0x13                             |     r0 <<= 0x13;
    0x000794aa movs r0, r0                                   |     
    0x000794ac invalid                                       |     
                                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x794e0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000794e0 ()                      | void fcn_000794e0 (int16_t arg1, int16_t arg2) {
                                                 |     int16_t var_ch_2;
                                                 |     int16_t var_1ch;
                                                 |     int16_t var_0h;
                                                 |     int16_t var_ch;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x000794e0 blmi 0xd8bdb4                     |     __asm ("blmi aav.0x0004f5dc");
    0x000794e4 push {r4, r5, lr}                 |     
    0x000794e6 sub sp, 0x14                      |     
    0x000794e8 add r2, pc                        |     r2 += pc;
    0x000794ea ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x000794ec ldr r3, [r3]                      |     r3 = *(r3);
    0x000794ee str r3, [sp, 0xc]                 |     var_ch = r3;
    0x000794f0 mov.w r3, 0                       |     r3 = 0;
    0x000794f4 bics r3, r1, 3                    |     __asm ("bics r3, r1, 3");
                                                 |     if (? != ?) {
    0x000794f8 bne 0x79590                       |         goto label_5;
                                                 |     }
    0x000794fa mov r5, r0                        |     r5 = r0;
                                                 |     if (r0 == 0) {
    0x000794fc cbz r0, 0x79502                   |         goto label_0;
                                                 |     }
    0x000794fe ldrb r3, [r0]                     |     r3 = *(r0);
    0x00079500 cbnz r3, 0x7951e                  |     
                                                 |     while (r0 > 0xf) {
                                                 | label_0:
    0x00079502 movs r4, 0                        |         r4 = 0;
                                                 | label_1:
    0x00079504 ldr r2, [pc, 0xb0]                |         
    0x00079506 ldr r3, [pc, 0xac]                |         r3 = *(0x795b6);
    0x00079508 add r2, pc                        |         r2 = 0xf2ac4;
    0x0007950a ldr r3, [r2, r3]                  |         r3 = *(0xf2ac4);
    0x0007950c ldr r2, [r3]                      |         r2 = *(0xf2ac4);
    0x0007950e ldr r3, [sp, 0xc]                 |         r3 = var_ch;
    0x00079510 eors r2, r3                       |         r2 ^= r3;
    0x00079512 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00079516 bne 0x795ac                       |             goto label_6;
                                                 |         }
    0x00079518 mov r0, r4                        |         r0 = r4;
    0x0007951a add sp, 0x14                      |         
    0x0007951c pop {r4, r5, pc}                  |         
    0x0007951e mov r4, r1                        |         r4 = r1;
                                                 | label_4:
    0x00079520 bl 0x74768                        |         r0 = fcn_00074768 (r0);
    0x00079524 cmp r0, 0                         |         
                                                 |         if (r0 >= 0) {
    0x00079526 bge 0x7958a                       |             goto label_7;
                                                 |         }
    0x00079528 mov r0, r5                        |         r0 = r5;
    0x0007952a blx 0x8f38                        |         fcn_00008f38 ();
    0x0007952e lsls r3, r4, 0x1f                 |         r3 = r4 << 0x1f;
                                                 |         if (r3 < r4) {
    0x00079530 bmi 0x79584                       |             goto label_8;
                                                 |         }
    0x00079532 cmp r0, 0xf                       |         
    0x00079534 bhi 0x79502                       |         
                                                 |     }
                                                 | label_2:
    0x00079536 mov r0, r5                        |     r0 = r5;
    0x00079538 bl 0x75c60                        |     r0 = fcn_00075c60 (r0);
    0x0007953c mov r4, r0                        |     r4 = r0;
    0x0007953e cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x00079540 bne 0x79502                       |         goto label_0;
                                                 |     }
    0x00079542 ldr r3, [pc, 0x78]                |     
    0x00079544 add r3, pc                        |     r3 = 0xf2b06;
    0x00079546 ldm.w r3, {r0, r1, r2}            |     r0 = *(r3);
                                                 |     r1 = *((r3 + 4));
                                                 |     r2 = *((r3 + 8));
    0x0007954a mov r3, sp                        |     r3 = sp;
    0x0007954c stm.w r3, {r0, r1, r2}            |     *(r3) = r0;
                                                 |     *((r3 + 4)) = r1;
                                                 |     *((r3 + 8)) = r2;
    0x00079550 mov r1, r5                        |     r1 = r5;
    0x00079552 mov r0, r3                        |     r0 = r3;
    0x00079554 bl 0x7af74                        |     r0 = fcn_0007af74 (r0, r1);
    0x00079558 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0007955a bne 0x79504                       |         goto label_1;
                                                 |     }
    0x0007955c ldrb r0, [r5]                     |     r0 = *(r5);
    0x0007955e cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x00079560 beq 0x79504                       |         goto label_1;
                                                 |     }
    0x00079562 movs r4, 1                        |     r4 = 1;
    0x00079564 b 0x7957a                         |     
                                                 |     if (r4 != 0) {
                                                 |         while (r0 != 0) {
    0x00079566 cbz r4, 0x79574                   |             
    0x00079568 ldrb r4, [r5]                     |             r4 = *(r5);
    0x0007956a subs r4, 0x30                     |             r4 -= 0x30;
    0x0007956c cmp r4, 9                         |             
    0x0007956e ite hi                            |             
                                                 |             if (r4 <= 9) {
                                                 | label_3:
    0x00079570 movhi r4, 0                       |                 r4 = 0;
                                                 |             }
                                                 |             if (r4 <= 9) {
    0x00079572 movls r4, 1                       |                 r4 = 1;
                                                 |                 goto label_9;
                                                 |             }
                                                 |         }
                                                 | label_9:
    0x00079574 ldrb r0, [r5, 1]!                 |         r0 = *((r5 += 1));
                                                 |         if (r0 == 0) {
    0x00079578 cbz r0, 0x795a6                   |             goto label_10;
                                                 |         }
    0x0007957a bl 0x794b0                        |         r0 = fcn_000794b0 (r0);
    0x0007957e cmp r0, 0                         |         
    0x00079580 bne 0x79566                       |         
                                                 |     }
    0x00079582 b 0x79502                         |     goto label_0;
                                                 | label_8:
    0x00079584 cmp r0, 0x7f                      |     
                                                 |     if (r0 < 0x7f) {
    0x00079586 bls 0x79536                       |         goto label_2;
                                                 |     }
    0x00079588 b 0x79502                         |     goto label_0;
                                                 | label_7:
    0x0007958a ubfx r4, r4, 1, 1                 |     r4 = (r4 >> 1) & ((1 << 1) - 1);
    0x0007958e b 0x79504                         |     goto label_1;
                                                 | label_5:
    0x00079590 ldr r1, [pc, 0x2c]                |     
    0x00079592 movw r2, 0x306                    |     r2 = 0x306;
    0x00079596 ldr r3, [pc, 0x2c]                |     
    0x00079598 ldr r0, [pc, 0x2c]                |     
    0x0007959a add r1, pc                        |     r1 = 0xf2b5e;
    0x0007959c add r3, pc                        |     r3 = 0xf2b66;
    0x0007959e adds r1, 7                        |     r1 += 7;
    0x000795a0 add r0, pc                        |     r0 = 0xf2b6c;
    0x000795a2 bl 0x71518                        |     fcn_00071518 (r0, r1, r2, r3);
                                                 | label_10:
    0x000795a6 eor r4, r4, 1                     |     r4 ^= 1;
    0x000795aa b 0x79504                         |     goto label_1;
                                                 | label_6:
    0x000795ac blx 0x927c                        |     fprintf_chk ()
    0x000795b0 rsbs.w r0, ip, 0x840000           |     r0 = 0x840000 - ip;
    0x000795b4 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x000795b6 movs r0, r0                       |     
    0x000795b8 subs.w r0, ip, 0x840000           |     r0 = ip - 0x840000;
    0x000795bc cdp2 p0, 0xb, c0, c4, c4, 0       |     __asm ("cdp2 p0, 0xb, c0, c4, c4, 0");
                                                 |     if (r0 < ip) {
    0x000795c0 bmi 0x79570                       |         goto label_3;
                                                 |     }
    0x000795c2 movs r2, r0                       |     r2 = r0;
    0x000795c4 bvc 0x79520                       |     __asm ("bvc aav.0x000000ff");
                                                 |     goto label_4;
    0x000795c6 movs r2, r0                       |     r2 = r0;
    0x000795c8 bvs 0x795dc                       |     __asm ("bvs aav.0x000000ff");
    0x000795ca movs r2, r0                       |     r2 = r0;
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x795cc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000795cc ()                  | void fcn_000795cc (uint32_t arg1, uint32_t arg2) {
                                             |     int16_t var_0h;
                                             |     int16_t var_ch;
                                             |     int16_t var_10h;
                                             |     int16_t var_1ch;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x000795cc push {r4, r5, lr}             |     
    0x000795ce cmp r0, 0                     |     
    0x000795d0 ldr r4, [pc, 0xa4]            |     
    0x000795d2 sub sp, 0x24                  |     
    0x000795d4 mov.w r3, 0xc                 |     r3 = 0xc;
    0x000795d8 ldr r2, [pc, 0xa0]            |     r2 = *(0x7967c);
    0x000795da add r4, pc                    |     r4 = 0xf2c56;
    0x000795dc ldr r2, [r4, r2]              |     r2 = *((r4 + r2));
    0x000795de ldr r2, [r2]                  |     r2 = *(r2);
    0x000795e0 str r2, [sp, 0x1c]            |     var_1ch = r2;
    0x000795e2 mov.w r2, 0                   |     r2 = 0;
    0x000795e6 str r3, [sp, 0xc]             |     var_ch = r3;
                                             |     if (r0 < 0) {
    0x000795e8 blt 0x7963c                   |         goto label_1;
                                             |     }
    0x000795ea mov r4, r1                    |     r4 = r1;
                                             |     if (r1 == 0) {
    0x000795ec cbz r1, 0x79652               |         goto label_2;
                                             |     }
    0x000795ee add r2, sp, 0xc               |     r2 += var_ch;
    0x000795f0 add r5, sp, 0x10              |     r5 += var_10h;
    0x000795f2 str r2, [sp]                  |     *(sp) = r2;
    0x000795f4 mov r3, r5                    |     r3 = r5;
    0x000795f6 movs r2, 0x11                 |     r2 = 0x11;
    0x000795f8 movs r1, 1                    |     r1 = 1;
    0x000795fa blx 0x953c                    |     r0 = fcn_0000953c ();
    0x000795fe cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x00079600 blt 0x79632                   |         goto label_3;
                                             |     }
    0x00079602 ldr r3, [sp, 0xc]             |     r3 = var_ch;
    0x00079604 cmp r3, 0xc                   |     
                                             |     if (r3 != 0xc) {
    0x00079606 bne 0x79668                   |         goto label_4;
                                             |     }
    0x00079608 ldr r3, [sp, 0x10]            |     r3 = var_10h;
    0x0007960a cmp r3, 0                     |     
                                             |     if (r3 <= 0) {
    0x0007960c ble 0x7966e                   |         goto label_5;
                                             |     }
    0x0007960e ldm.w r5, {r0, r1, r2}        |     r0 = *(r5);
                                             |     r1 = *((r5 + 4));
                                             |     r2 = *((r5 + 8));
    0x00079612 movs r3, 0                    |     r3 = 0;
    0x00079614 stm.w r4, {r0, r1, r2}        |     *(r4) = r0;
                                             |     *((r4 + 4)) = r1;
                                             |     *((r4 + 8)) = r2;
                                             |     do {
                                             | label_0:
    0x00079618 ldr r1, [pc, 0x64]            |         
    0x0007961a ldr r2, [pc, 0x60]            |         r2 = *(0x7967e);
    0x0007961c add r1, pc                    |         r1 = 0xf2ca0;
    0x0007961e ldr r2, [r1, r2]              |         r2 = *(0xf2ca0);
    0x00079620 ldr r1, [r2]                  |         r1 = *(0xf2ca0);
    0x00079622 ldr r2, [sp, 0x1c]            |         r2 = var_1ch;
    0x00079624 eors r1, r2                   |         r1 ^= r2;
    0x00079626 mov.w r2, 0                   |         r2 = 0;
                                             |         if (r1 != r2) {
    0x0007962a bne 0x79674                   |             goto label_6;
                                             |         }
    0x0007962c mov r0, r3                    |         r0 = r3;
    0x0007962e add sp, 0x24                  |         
    0x00079630 pop {r4, r5, pc}              |         
                                             | label_3:
    0x00079632 blx 0x9628                    |         r0 = fcn_00009628 ();
    0x00079636 ldr r3, [r0]                  |         r3 = *(r0);
    0x00079638 rsbs r3, r3, 0                |         r3 -= ;
    0x0007963a b 0x79618                     |         
                                             |     } while (1);
                                             | label_1:
    0x0007963c ldr r1, [pc, 0x44]            |     
    0x0007963e movw r2, 0x347                |     r2 = 0x347;
    0x00079642 ldr r3, [pc, 0x44]            |     
    0x00079644 ldr r0, [pc, 0x44]            |     
    0x00079646 add r1, pc                    |     r1 = 0xf2cce;
    0x00079648 add r3, pc                    |     r3 = 0xf2cd6;
    0x0007964a adds r1, 7                    |     r1 += 7;
    0x0007964c add r0, pc                    |     r0 = 0xf2cdc;
    0x0007964e bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_2:
    0x00079652 ldr r1, [pc, 0x3c]            |     
    0x00079654 mov.w r2, 0x348               |     r2 = 0x348;
    0x00079658 ldr r3, [pc, 0x38]            |     
    0x0007965a ldr r0, [pc, 0x3c]            |     
    0x0007965c add r1, pc                    |     r1 = 0xf2cf2;
    0x0007965e add r3, pc                    |     r3 = 0xf2cf6;
    0x00079660 adds r1, 7                    |     r1 += 7;
    0x00079662 add r0, pc                    |     r0 = 0xf2d00;
    0x00079664 bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_4:
    0x00079668 mvn r3, 4                     |     r3 = ~4;
    0x0007966c b 0x79618                     |     goto label_0;
                                             | label_5:
    0x0007966e mvn r3, 0x3c                  |     r3 = ~0x3c;
    0x00079672 b 0x79618                     |     goto label_0;
                                             | label_6:
    0x00079674 blx 0x927c                    |     fprintf_chk ()
    0x00079678 invalid                       |     
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7969c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0007969c ()                      | void fcn_0007969c (int16_t arg1, int16_t arg2) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_8h;
                                                 |     int16_t var_ch;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0007969c mcrne p5, 0, fp, c5, c0, 7        |     __asm ("mcrne p5, 0, fp, c5, c0, 7");
    0x000796a0 ldr r4, [pc, 0xc0]                |     
    0x000796a2 sub sp, 0x14                      |     
    0x000796a4 mov.w r3, 0x40                    |     r3 = 0x40;
    0x000796a8 ldr r2, [pc, 0xbc]                |     r2 = *(0x79768);
    0x000796aa add r4, pc                        |     r4 = 0xf2e12;
    0x000796ac ldr r2, [r4, r2]                  |     
    0x000796ae ldr r2, [r2]                      |     r2 = *(0xf2e12);
    0x000796b0 str r2, [sp, 0xc]                 |     var_ch = r2;
    0x000796b2 mov.w r2, 0                       |     r2 = 0;
    0x000796b6 str r3, [sp, 8]                   |     var_8h = r3;
                                                 |     if (? < ?) {
    0x000796b8 blt 0x7972e                       |         goto label_1;
                                                 |     }
    0x000796ba mov r6, r1                        |     r6 = r1;
    0x000796bc mov r0, r3                        |     r0 = r3;
    0x000796be add r7, sp, 8                     |     r7 += var_8h;
                                                 |     if (r1 != 0) {
    0x000796c0 cbnz r1, 0x796d6                  |         goto label_2;
                                                 |     }
    0x000796c2 b 0x79744                         |     goto label_3;
                                                 |     do {
    0x000796c4 blx 0x9628                        |         r0 = fcn_00009628 ();
    0x000796c8 ldr r3, [r0]                      |         r3 = *(r0);
    0x000796ca cmp r3, 0x22                      |         
                                                 |         if (r3 != 0x22) {
    0x000796cc bne 0x7972a                       |             goto label_4;
                                                 |         }
    0x000796ce mov r0, r4                        |         r0 = r4;
    0x000796d0 blx 0x8dac                        |         fcn_00008dac ();
    0x000796d4 ldr r0, [sp, 8]                   |         r0 = var_8h;
                                                 | label_2:
    0x000796d6 adds r0, 1                        |         r0++;
    0x000796d8 movs r1, 1                        |         r1 = 1;
    0x000796da cmp r0, r1                        |         
    0x000796dc it lo                             |         
                                                 |         if (r0 >= r1) {
    0x000796de movlo r0, r1                      |             r0 = r1;
                                                 |         }
    0x000796e0 blx 0x8c20                        |         r0 = fcn_00008c20 ();
    0x000796e4 mov r4, r0                        |         r4 = r0;
    0x000796e6 cmp r0, 0                         |         
                                                 |         if (r0 == 0) {
    0x000796e8 beq 0x7975a                       |             goto label_5;
                                                 |         }
    0x000796ea mov r3, r0                        |         r3 = r0;
    0x000796ec movs r2, 0x1f                     |         r2 = 0x1f;
    0x000796ee movs r1, 1                        |         r1 = 1;
    0x000796f0 mov r0, r5                        |         r0 = r5;
    0x000796f2 str r7, [sp]                      |         *(sp) = r7;
    0x000796f4 blx 0x953c                        |         r0 = fcn_0000953c ();
    0x000796f8 cmp r0, 0                         |         
    0x000796fa blt 0x796c4                       |         
                                                 |     } while (r0 < 0);
    0x000796fc ldrb r3, [r4]                     |     r3 = *(r4);
    0x000796fe mvn r5, 0x5e                      |     r5 = ~0x5e;
                                                 |     if (r3 == 0) {
    0x00079702 cbz r3, 0x7970a                   |         goto label_0;
                                                 |     }
    0x00079704 str r4, [r6]                      |     *(r6) = r4;
    0x00079706 movs r4, 0                        |     r4 = 0;
    0x00079708 mov r5, r4                        |     r5 = r4;
                                                 |     do {
                                                 | label_0:
    0x0007970a mov r0, r4                        |         r0 = r4;
    0x0007970c blx 0x8dac                        |         fcn_00008dac ();
    0x00079710 ldr r2, [pc, 0x58]                |         
    0x00079712 ldr r3, [pc, 0x54]                |         r3 = *(0x7976a);
    0x00079714 add r2, pc                        |         r2 = 0xf2e84;
    0x00079716 ldr r3, [r2, r3]                  |         r3 = *(0xf2e84);
    0x00079718 ldr r2, [r3]                      |         r2 = *(0xf2e84);
    0x0007971a ldr r3, [sp, 0xc]                 |         r3 = var_ch;
    0x0007971c eors r2, r3                       |         r2 ^= r3;
    0x0007971e mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00079722 bne 0x79760                       |             goto label_6;
                                                 |         }
    0x00079724 mov r0, r5                        |         r0 = r5;
    0x00079726 add sp, 0x14                      |         
    0x00079728 pop {r4, r5, r6, r7, pc}          |         
                                                 | label_4:
    0x0007972a rsbs r5, r3, 0                    |         r5 = r3 - ;
    0x0007972c b 0x7970a                         |         
                                                 |     } while (1);
                                                 | label_1:
    0x0007972e ldr r1, [pc, 0x40]                |     
    0x00079730 mov.w r2, 0x360                   |     r2 = 0x360;
    0x00079734 ldr r3, [pc, 0x3c]                |     
    0x00079736 ldr r0, [pc, 0x40]                |     
    0x00079738 add r1, pc                        |     r1 = 0xf2eae;
    0x0007973a add r3, pc                        |     r3 = 0xf2eb2;
    0x0007973c adds r1, 7                        |     r1 += 7;
    0x0007973e add r0, pc                        |     r0 = 0xf2ebc;
    0x00079740 bl 0x71518                        |     fcn_00071518 (r0, r1, r2, r3);
                                                 | label_3:
    0x00079744 ldr r1, [pc, 0x34]                |     
    0x00079746 movw r2, 0x361                    |     r2 = 0x361;
    0x0007974a ldr r3, [pc, 0x34]                |     
    0x0007974c ldr r0, [pc, 0x34]                |     
    0x0007974e add r1, pc                        |     r1 = 0xf2ece;
    0x00079750 add r3, pc                        |     r3 = 0xf2ed6;
    0x00079752 adds r1, 7                        |     r1 += 7;
    0x00079754 add r0, pc                        |     r0 = 0xf2edc;
    0x00079756 bl 0x71518                        |     fcn_00071518 (r0, r1, r2, r3);
                                                 | label_5:
    0x0007975a mvn r5, 0xb                       |     r5 = ~0xb;
    0x0007975e b 0x7970a                         |     goto label_0;
                                                 | label_6:
    0x00079760 blx 0x927c                        |     fprintf_chk ()
    0x00079764 ands r0, sl, 0x840000             |     r0 = sl & 0x840000;
    0x00079768 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x0007976a movs r0, r0                       |     
    0x0007976c invalid                           |     
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x79788 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00079788 ()                      | void fcn_00079788 (int16_t arg_3f0h, int16_t arg1, int16_t arg2) {
                                                 |     int16_t var_4h;
                                                 |     int16_t var_0h;
                                                 |     int16_t var_8h;
                                                 |     int16_t var_ch;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00079788 mcrne p5, 0, fp, c6, c0, 7        |     __asm ("mcrne p5, 0, fp, c6, c0, 7");
    0x0007978c ldr r4, [pc, 0xd0]                |     r4 = *(0x79860);
    0x0007978e sub sp, 0x14                      |     
    0x00079790 mov.w r3, 0x100                   |     r3 = 0x100;
                                                 | label_3:
    0x00079794 ldr r2, [pc, 0xcc]                |     
    0x00079796 add r4, pc                        |     r4 += pc;
    0x00079798 ldr r2, [r4, r2]                  |     r2 = *((r4 + r2));
    0x0007979a ldr r2, [r2]                      |     r2 = *(0x79864);
    0x0007979c str r2, [sp, 0xc]                 |     var_ch = r2;
    0x0007979e mov.w r2, 0                       |     r2 = 0;
    0x000797a2 str r3, [sp, 8]                   |     var_8h = r3;
                                                 |     if (? < ?) {
    0x000797a4 blt 0x79812                       |         goto label_4;
                                                 |     }
    0x000797a6 mov r5, r1                        |     r5 = r1;
    0x000797a8 mov r0, r3                        |     r0 = r3;
    0x000797aa add r7, sp, 8                     |     r7 += var_8h;
                                                 |     if (r1 != 0) {
    0x000797ac cbnz r1, 0x797c2                  |         goto label_5;
                                                 |     }
    0x000797ae b 0x79828                         |     goto label_6;
                                                 |     do {
    0x000797b0 blx 0x9628                        |         r0 = fcn_00009628 ();
    0x000797b4 ldr r3, [r0]                      |         r3 = *(r0);
    0x000797b6 cmp r3, 0x22                      |         
                                                 |         if (r3 != 0x22) {
    0x000797b8 bne 0x7980e                       |             goto label_7;
                                                 |         }
    0x000797ba mov r0, r4                        |         r0 = r4;
    0x000797bc blx 0x8dac                        |         fcn_00008dac ();
    0x000797c0 ldr r0, [sp, 8]                   |         r0 = var_8h;
                                                 | label_5:
    0x000797c2 blx 0x9234                        |         r0 = blkid_safe_string ();
    0x000797c6 mov r4, r0                        |         r4 = r0;
    0x000797c8 cmp r0, 0                         |         
                                                 |         if (r0 == 0) {
    0x000797ca beq 0x79854                       |             goto label_8;
                                                 |         }
    0x000797cc mov r3, r0                        |         r3 = r0;
    0x000797ce movs r2, 0x3b                     |         r2 = 0x3b;
    0x000797d0 movs r1, 1                        |         r1 = 1;
    0x000797d2 mov r0, r6                        |         r0 = r6;
    0x000797d4 str r7, [sp]                      |         *(sp) = r7;
    0x000797d6 blx 0x953c                        |         r0 = fcn_0000953c ();
    0x000797da cmp r0, 0                         |         
    0x000797dc blt 0x797b0                       |         
                                                 |     } while (r0 < 0);
    0x000797de ldr r3, [sp, 8]                   |     r3 = var_8h;
    0x000797e0 ands r2, r3, 3                    |     r2 = r3 & 3;
    0x000797e4 ittt eq                           |     
                                                 |     if (r2 != r3) {
    0x000797e6 streq r4, [r5]                    |         *(r5) = r4;
                                                 |     }
                                                 |     if (r2 != r3) {
    0x000797e8 lsreq r5, r3, 2                   |         r5 = r3 >> 2;
                                                 |     }
                                                 |     if (r2 != r3) {
    0x000797ea moveq r4, r2                      |         r4 = r2;
                                                 |     }
                                                 |     if (r2 != r3) {
    0x000797ec bne 0x7983e                       |         goto label_9;
                                                 |     }
                                                 |     do {
                                                 | label_0:
    0x000797ee mov r0, r4                        |         r0 = r4;
    0x000797f0 blx 0x8dac                        |         fcn_00008dac ();
    0x000797f4 ldr r2, [pc, 0x70]                |         
    0x000797f6 ldr r3, [pc, 0x6c]                |         r3 = *(0x79866);
    0x000797f8 add r2, pc                        |         r2 = 0xf3064;
    0x000797fa ldr r3, [r2, r3]                  |         r3 = *(0xf3064);
    0x000797fc ldr r2, [r3]                      |         r2 = *(0xf3064);
    0x000797fe ldr r3, [sp, 0xc]                 |         r3 = var_ch;
    0x00079800 eors r2, r3                       |         r2 ^= r3;
    0x00079802 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00079806 bne 0x7985a                       |             goto label_10;
                                                 |         }
    0x00079808 mov r0, r5                        |         r0 = r5;
    0x0007980a add sp, 0x14                      |         
    0x0007980c pop {r4, r5, r6, r7, pc}          |         
                                                 | label_7:
    0x0007980e rsbs r5, r3, 0                    |         r5 = r3 - ;
    0x00079810 b 0x797ee                         |         
                                                 |     } while (1);
                                                 | label_4:
    0x00079812 ldr r1, [pc, 0x58]                |     
    0x00079814 movw r2, 0x37d                    |     r2 = 0x37d;
    0x00079818 ldr r3, [pc, 0x54]                |     
    0x0007981a ldr r0, [pc, 0x58]                |     
    0x0007981c add r1, pc                        |     r1 = 0xf308e;
    0x0007981e add r3, pc                        |     r3 = 0xf3092;
    0x00079820 adds r1, 7                        |     r1 += 7;
    0x00079822 add r0, pc                        |     r0 = 0xf309c;
    0x00079824 bl 0x71518                        |     fcn_00071518 (r0, r1, r2, r3);
                                                 | label_6:
    0x00079828 ldr r1, [pc, 0x4c]                |     
    0x0007982a movw r2, 0x37e                    |     r2 = 0x37e;
    0x0007982e ldr r3, [pc, 0x4c]                |     
    0x00079830 ldr r0, [pc, 0x4c]                |     r0 = *(0x79880);
    0x00079832 add r1, pc                        |     r1 = 0xf30ae;
    0x00079834 add r3, pc                        |     r3 = 0xf30b6;
    0x00079836 adds r1, 7                        |     r1 += 7;
                                                 | label_2:
    0x00079838 add r0, pc                        |     r0 += pc;
    0x0007983a bl 0x71518                        |     fcn_00071518 (r0, r1, r2, r3);
                                                 | label_9:
    0x0007983e ldr r1, [pc, 0x44]                |     
    0x00079840 movw r2, 0x38e                    |     r2 = 0x38e;
    0x00079844 ldr r3, [pc, 0x40]                |     
    0x00079846 ldr r0, [pc, 0x44]                |     
    0x00079848 add r1, pc                        |     r1 = 0xf30d2;
    0x0007984a add r3, pc                        |     r3 = 0xf30d6;
    0x0007984c adds r1, 7                        |     r1 += 7;
    0x0007984e add r0, pc                        |     r0 = 0xf30e0;
    0x00079850 bl 0x71518                        |     fcn_00071518 (r0, r1, r2, r3);
                                                 | label_8:
    0x00079854 mvn r5, 0xb                       |     r5 = ~0xb;
                                                 | label_1:
    0x00079858 b 0x797ee                         |     goto label_0;
                                                 | label_10:
    0x0007985a blx 0x927c                        |     fprintf_chk ()
    0x0007985e nop                               |     
    0x00079860 ssat16 r0, 5, lr                  |     __asm ("ssat16 r0, 5, lr");
    0x00079864 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x00079866 movs r0, r0                       |     
    0x00079868 movt r0, 0xc004                   |     r0 = 0xNaN;
                                                 |     if (r0 >= r0) {
    0x0007986c bhs 0x79918                       |         goto label_11;
                                                 |     }
    0x0007986e movs r2, r0                       |     r2 = r0;
                                                 |     if (r2 >= r0) {
    0x00079870 bpl 0x79878                       |         goto label_12;
                                                 |     }
    0x00079872 movs r2, r0                       |     r2 = r0;
    0x00079874 ldr r0, [pc, 0x28]                |     r0 = *(0x798a0);
    0x00079876 movs r2, r0                       |     r2 = r0;
                                                 |     if (r2 >= r0) {
                                                 | label_12:
    0x00079878 bhs 0x798f8                       |         void (*0x798f8)() ();
                                                 |     }
    0x0007987a movs r2, r0                       |     r2 = r0;
                                                 |     if (r2 < r0) {
    0x0007987c bmi 0x79858                       |         goto label_1;
                                                 |     }
    0x0007987e movs r2, r0                       |     r2 = r0;
    0x00079880 add r3, sp, 0x3f0                 |     r3 += arg_3f0h;
    0x00079882 movs r0, r0                       |     
                                                 |     if (r0 >= r0) {
    0x00079884 bhs 0x798d8                       |         void (*0x798d8)() ();
                                                 |     }
    0x00079886 movs r2, r0                       |     r2 = r0;
                                                 |     if (r2 < r0) {
    0x00079888 bmi 0x79838                       |         goto label_2;
                                                 |     }
    0x0007988a movs r2, r0                       |     r2 = r0;
                                                 |     if (r2 <= r0) {
    0x0007988c blo 0x79794                       |         goto label_3;
                                                 |     }
    0x0007988e movs r2, r0                       |     r2 = r0;
                                                 | label_11:
    0x00079918 addw r0, r0, 4                    |     __asm ("addw r0, r0, 4");
                                                 | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x79890 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00079890 ()              | void fcn_00079890 (int16_t arg1) {
                                         |     int16_t var_0h;
                                         |     int16_t var_4h;
                                         |     r0 = arg1;
    0x00079890 push {r4, lr}             |     
    0x00079892 movs r2, 0                |     r2 = 0;
    0x00079894 ldr.w lr, [pc, 0x78]      |     
    0x00079898 sub sp, 8                 |     
    0x0007989a movs r3, 0x22             |     r3 = 0x22;
    0x0007989c mov r1, r2                |     r1 = r2;
    0x0007989e ldr.w ip, [pc, 0x74]      |     ip = *(0x79916);
    0x000798a2 mov r4, r0                |     r4 = r0;
    0x000798a4 add lr, pc                |     lr = 0xf31b8;
    0x000798a6 ldr.w ip, [lr, ip]        |     
    0x000798aa ldr.w ip, [ip]            |     ip = *(0xf31b8);
    0x000798ac invalid                   |     
    0x000798b0 stm r0!, {r2}             |     *(r0!) = r2;
    0x000798b2 mov.w ip, 0               |     
    0x000798b6 blx 0x8b74                |     r0 = getenv (r0);
    0x000798ba cmp r0, 0                 |     
                                         |     if (r0 < 0) {
    0x000798bc blt 0x798f8               |         goto label_2;
                                         |     }
    0x000798be beq 0x798d8               |     
                                         |     while (r0 >= 0) {
                                         | label_1:
    0x000798c0 ldr r2, [pc, 0x54]        |         
    0x000798c2 ldr r3, [pc, 0x50]        |         r3 = *(0x79916);
    0x000798c4 add r2, pc                |         r2 = 0xf31e0;
    0x000798c6 ldr r3, [r2, r3]          |         r3 = *(0xf31e0);
    0x000798c8 ldr r2, [r3]              |         r2 = *(0xf31e0);
    0x000798ca ldr r3, [sp, 4]           |         r3 = var_4h;
    0x000798cc eors r2, r3               |         r2 ^= r3;
    0x000798ce mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x000798d2 bne 0x7990a               |             goto label_3;
                                         |         }
    0x000798d4 add sp, 8                 |         
    0x000798d6 pop {r4, pc}              |         
                                         | label_0:
    0x000798d8 movs r3, 0                |         r3 = 0;
    0x000798da mov r2, sp                |         r2 = sp;
    0x000798dc movw r1, 0x541b           |         r1 = 0x541b;
    0x000798e0 mov r0, r4                |         r0 = r4;
    0x000798e2 str r3, [sp]              |         *(sp) = r3;
    0x000798e4 blx 0x8ee4                |         r0 = fcn_00008ee4 ();
    0x000798e8 cmp r0, 0                 |         
    0x000798ea it ge                     |         
                                         |         if (r0 < 0) {
    0x000798ec ldrge r0, [sp]            |             r0 = *(sp);
                                         |         }
    0x000798ee bge 0x798c0               |         
                                         |     }
    0x000798f0 blx 0x9628                |     r0 = fcn_00009628 ();
    0x000798f4 ldr r0, [r0]              |     r0 = *(r0);
    0x000798f6 b 0x79906                 |     goto label_4;
                                         | label_2:
    0x000798f8 blx 0x9628                |     r0 = fcn_00009628 ();
    0x000798fc ldr r0, [r0]              |     r0 = *(r0);
    0x000798fe cmp r0, 0xe               |     
                                         |     if (r0 == 0xe) {
    0x00079900 beq 0x798d8               |         goto label_0;
                                         |     }
    0x00079902 cmp r0, 0x5f              |     
                                         |     if (r0 == 0x5f) {
    0x00079904 beq 0x798d8               |         goto label_0;
                                         |     }
                                         | label_4:
    0x00079906 rsbs r0, r0, 0            |     r0 -= ;
    0x00079908 b 0x798c0                 |     goto label_1;
                                         | label_3:
    0x0007990a blx 0x927c                |     fprintf_chk ()
    0x0007990e nop                       |     
    0x00079910 invalid                   |     
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x799c4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000799c4 ()              | void fcn_000799c4 (uint32_t arg1) {
                                         |     int16_t var_0h_3;
                                         |     int8_t var_6ch;
                                         |     int16_t var_0h;
                                         |     int32_t var_4h;
                                         |     int16_t var_0h_2;
                                         |     r0 = arg1;
    0x000799c4 blmi 0xb4c274             |     __asm ("blmi aav.0x0004f0f8");
    0x000799c8 push {r4, r7, lr}         |     
    0x000799ca sub sp, 0xc               |     
    0x000799cc add r2, pc                |     r2 += pc;
    0x000799ce add r7, sp, 0             |     r7 += var_0h;
    0x000799d0 ldr r3, [r2, r3]          |     r3 = *((r2 + r3));
    0x000799d2 ldr r3, [r3]              |     r3 = *(r3);
    0x000799d4 str r3, [r7, 4]           |     var_4h = r3;
    0x000799d6 mov.w r3, 0               |     r3 = 0;
    0x000799da cmp r0, 0                 |     
                                         |     if (r0 == 0) {
    0x000799dc beq 0x79a50               |         goto label_2;
                                         |     }
    0x000799de ldrh r3, [r0]             |     r3 = *(r0);
    0x000799e0 cmp r3, 1                 |     
                                         |     if (r3 != 1) {
    0x000799e2 bne 0x79a66               |         goto label_3;
                                         |     }
    0x000799e4 ldrb r3, [r0, 2]          |     r3 = *((r0 + 2));
                                         |     if (r3 == 0) {
    0x000799e6 cbz r3, 0x79a20           |         goto label_4;
                                         |     }
    0x000799e8 adds r4, r0, 2            |     r4 = r0 + 2;
    0x000799ea movs r2, 0x6c             |     r2 = 0x6c;
    0x000799ec movs r1, 0                |     r1 = 0;
    0x000799ee mov r0, r4                |     r0 = r4;
    0x000799f0 blx 0x95ac                |     r0 = getpwuid_r ();
    0x000799f4 mov r3, r0                |     r3 = r0;
                                         |     if (r0 == 0) {
    0x000799f6 cbz r0, 0x79a2e           |         goto label_5;
                                         |     }
    0x000799f8 mov r0, r4                |     r0 = r4;
    0x000799fa blx 0x8f68                |     r0 = fcn_00008f68 ();
    0x000799fe cmp r0, 0                 |     
    0x00079a00 it ge                     |     
                                         |     if (r0 < 0) {
    0x00079a02 movge r0, 1               |         r0 = 1;
                                         |     }
                                         |     if (r0 < 0) {
    0x00079a04 blt 0x79a24               |         goto label_1;
                                         |     }
                                         |     do {
                                         | label_0:
    0x00079a06 ldr r2, [pc, 0x70]        |         
    0x00079a08 ldr r3, [pc, 0x68]        |         r3 = *(0x79a74);
    0x00079a0a add r2, pc                |         r2 = 0xf3488;
    0x00079a0c ldr r3, [r2, r3]          |         r3 = *(0xf3488);
    0x00079a0e ldr r2, [r3]              |         r2 = *(0xf3488);
    0x00079a10 ldr r3, [r7, 4]           |         r3 = var_4h;
    0x00079a12 eors r2, r3               |         r2 ^= r3;
    0x00079a14 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x00079a18 bne 0x79a6c               |             goto label_6;
                                         |         }
    0x00079a1a adds r7, 0xc              |         r7 += 0xc;
    0x00079a1c mov sp, r7                |         
    0x00079a1e pop {r4, r7, pc}          |         
                                         | label_4:
    0x00079a20 mov r0, r3                |         r0 = r3;
    0x00079a22 b 0x79a06                 |         
                                         |     } while (1);
                                         | label_1:
    0x00079a24 blx 0x9628                |     r0 = fcn_00009628 ();
    0x00079a28 ldr r0, [r0]              |     r0 = *(r0);
    0x00079a2a rsbs r0, r0, 0            |     r0 -= ;
    0x00079a2c b 0x79a06                 |     goto label_0;
                                         | label_5:
    0x00079a2e sub sp, 0x70              |     
    0x00079a30 mov r1, r4                |     r1 = r4;
    0x00079a32 mov r0, sp                |     r0 = sp;
    0x00079a34 movs r2, 0x6c             |     r2 = 0x6c;
    0x00079a36 strb.w r3, [r0, 0x6c]     |     var_6ch = r3;
    0x00079a3a blx 0x8f9c                |     r0 = fcn_00008f9c ();
    0x00079a3e mov r4, r0                |     r4 = r0;
    0x00079a40 mov r0, r4                |     r0 = r4;
    0x00079a42 blx 0x8f68                |     r0 = fcn_00008f68 ();
    0x00079a46 cmp r0, 0                 |     
    0x00079a48 it ge                     |     
                                         |     if (r0 >= 0) {
    0x00079a4a movge r0, 1               |         r0 = 1;
                                         |         goto label_7;
                                         |     }
                                         |     if (r0 >= 0) {
                                         | label_7:
    0x00079a4c bge 0x79a06               |         goto label_0;
                                         |     }
    0x00079a4e b 0x79a24                 |     goto label_1;
                                         | label_2:
    0x00079a50 ldr r1, [pc, 0x28]        |     
    0x00079a52 movw r2, 0x489            |     r2 = 0x489;
    0x00079a56 ldr r3, [pc, 0x28]        |     
    0x00079a58 ldr r0, [pc, 0x28]        |     
    0x00079a5a add r1, pc                |     r1 = 0xf34da;
    0x00079a5c add r3, pc                |     r3 = 0xf34e2;
    0x00079a5e adds r1, 7                |     r1 += 7;
    0x00079a60 add r0, pc                |     r0 = 0xf34e8;
    0x00079a62 bl 0x71518                |     fcn_00071518 (r0, r1, r2, r3);
                                         | label_3:
    0x00079a66 mvn r0, 0x5a              |     r0 = ~0x5a;
    0x00079a6a b 0x79a06                 |     goto label_0;
                                         | label_6:
    0x00079a6c blx 0x927c                |     fprintf_chk ()
    0x00079a70 invalid                   |     
                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x79c08 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00079c08 ()                      | void fcn_00079c08 () {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     int16_t var_10h_2;
                                                 |     int16_t var_6ch;
                                                 | label_0:
    0x00079bc4 svchi 0xf8e8bd                    |     __asm ("svchi aav.0x000000ff");
    0x00079c08 ldr r2, [pc, 0x68]                |     
    0x00079c0a ldr r3, [pc, 0x6c]                |     r3 = *(0x79c7a);
    0x00079c0c push {lr}                         |     
    0x00079c0e sub sp, 0x74                      |     
    0x00079c10 add r2, pc                        |     r2 = 0xf3888;
    0x00079c12 ldr r3, [r2, r3]                  |     
    0x00079c14 ldr r3, [r3]                      |     r3 = *(0xf3888);
    0x00079c16 str r3, [sp, 0x6c]                |     var_6ch = r3;
    0x00079c18 mov.w r3, 0                       |     r3 = 0;
                                                 |     if (r0 == 0) {
    0x00079c1c cbz r0, 0x79c5c                   |         goto label_1;
                                                 |     }
    0x00079c1e mov r1, sp                        |     r1 = sp;
    0x00079c20 blx 0x931c                        |     r0 = fcn_0000931c ();
    0x00079c24 cmp r0, 0                         |     
                                                 |     if (r0 < 0) {
    0x00079c26 blt 0x79c52                       |         goto label_2;
                                                 |     }
    0x00079c28 ldr r0, [sp, 0x10]                |     r0 = var_10h_2;
    0x00079c2a and r0, r0, 0xf000                |     r0 &= 0xf000;
    0x00079c2e sub.w r0, r0, 0xa000              |     r0 -= 0xa000;
    0x00079c32 clz r0, r0                        |     r0 &= r0;
    0x00079c36 lsrs r0, r0, 5                    |     r0 >>= 5;
                                                 |     do {
    0x00079c38 ldr r2, [pc, 0x40]                |         
    0x00079c3a ldr r3, [pc, 0x3c]                |         r3 = *(0x79c7a);
    0x00079c3c add r2, pc                        |         r2 = 0xf38bc;
    0x00079c3e ldr r3, [r2, r3]                  |         r3 = *(0xf38bc);
    0x00079c40 ldr r2, [r3]                      |         r2 = *(0xf38bc);
    0x00079c42 ldr r3, [sp, 0x6c]                |         r3 = var_6ch;
    0x00079c44 eors r2, r3                       |         r2 ^= r3;
    0x00079c46 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00079c4a bne 0x79c70                       |             goto label_3;
                                                 |         }
    0x00079c4c add sp, 0x74                      |         
    0x00079c4e ldr pc, [sp], 4                   |         pc = *(sp);
                                                 |         sp += 4;
                                                 | label_2:
    0x00079c52 blx 0x9628                        |         r0 = fcn_00009628 ();
    0x00079c56 ldr r0, [r0]                      |         r0 = *(r0);
    0x00079c58 rsbs r0, r0, 0                    |         r0 -= ;
    0x00079c5a b 0x79c38                         |         
                                                 |     } while (1);
                                                 | label_1:
    0x00079c5c ldr r1, [pc, 0x20]                |     
    0x00079c5e movs r2, 0x1a                     |     r2 = 0x1a;
    0x00079c60 ldr r3, [pc, 0x20]                |     
    0x00079c62 ldr r0, [pc, 0x24]                |     
    0x00079c64 add r1, pc                        |     r1 = 0xf38e8;
    0x00079c66 add r3, pc                        |     r3 = 0xf38ee;
    0x00079c68 adds r1, 7                        |     r1 += 7;
    0x00079c6a add r0, pc                        |     r0 = 0xf38f8;
    0x00079c6c bl 0x71518                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                 | label_3:
    0x00079c70 blx 0x927c                        |     fprintf_chk ()
    0x00079c74 cdp p0, 0xb, c0, c4, c4, 0        |     __asm ("cdp p0, 0xb, c0, c4, c4, 0");
    0x00079c78 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x00079c7a movs r0, r0                       |     
    0x00079c7c cdp p0, 8, c0, c8, c4, 0          |     __asm ("cdp p0, 8, c0, c8, c4, 0");
                                                 |     if (r0 != r0) {
    0x00079c80 bne 0x79bc4                       |         goto label_0;
                                                 |     }
    0x00079c82 movs r2, r0                       |     r2 = r0;
                                                 |     if (r2 >= r0) {
    0x00079c84 bhs 0x79d64                       |         void (*0x79d64)() ();
                                                 |     }
    0x00079c86 movs r2, r0                       |     r2 = r0;
    0x00079c88 subs r2, 0xb6                     |     r2 -= 0xb6;
    0x00079c8a movs r2, r0                       |     r2 = r0;
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x79c8c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00079c8c ()                      | void fcn_00079c8c () {
                                                 |     int16_t var_10h;
                                                 |     int16_t var_6ch_2;
                                                 |     int16_t var_0h;
    0x00079c8c ldr r2, [pc, 0x74]                |     
    0x00079c8e ldr r3, [pc, 0x78]                |     r3 = *(0x79d0a);
    0x00079c90 push {lr}                         |     
    0x00079c92 sub sp, 0x74                      |     
    0x00079c94 add r2, pc                        |     r2 = 0xf399c;
    0x00079c96 ldr r3, [r2, r3]                  |     
    0x00079c98 ldr r3, [r3]                      |     r3 = *(0xf399c);
    0x00079c9a str r3, [sp, 0x6c]                |     var_6ch_2 = r3;
    0x00079c9c mov.w r3, 0                       |     r3 = 0;
                                                 |     if (r0 == 0) {
    0x00079ca0 cbz r0, 0x79cec                   |         goto label_5;
                                                 |     }
                                                 |     if (r1 != 0) {
    0x00079ca2 cbnz r1, 0x79cd8                  |         goto label_6;
                                                 |     }
    0x00079ca4 mov r1, sp                        |     r1 = sp;
    0x00079ca6 blx 0x931c                        |     r0 = fcn_0000931c ();
    0x00079caa cmp r0, 0                         |     
                                                 |     if (r0 < 0) {
    0x00079cac blt 0x79ce2                       |         goto label_7;
                                                 |     }
                                                 |     do {
    0x00079cae ldr r0, [sp, 0x10]                |         r0 = var_10h;
    0x00079cb0 and r0, r0, 0xf000                |         r0 &= 0xf000;
    0x00079cb4 sub.w r0, r0, 0x4000              |         r0 -= 0x4000;
    0x00079cb8 clz r0, r0                        |         r0 &= r0;
    0x00079cbc lsrs r0, r0, 5                    |         r0 >>= 5;
                                                 | label_0:
    0x00079cbe ldr r2, [pc, 0x4c]                |         
    0x00079cc0 ldr r3, [pc, 0x44]                |         r3 = *(0x79d08);
    0x00079cc2 add r2, pc                        |         r2 = 0xf39d4;
                                                 | label_1:
    0x00079cc4 ldr r3, [r2, r3]                  |         r3 = *((r2 + r3));
    0x00079cc6 ldr r2, [r3]                      |         r2 = *(r3);
    0x00079cc8 ldr r3, [sp, 0x6c]                |         r3 = var_6ch_2;
    0x00079cca eors r2, r3                       |         r2 ^= r3;
    0x00079ccc mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00079cd0 bne 0x79d00                       |             goto label_8;
                                                 |         }
    0x00079cd2 add sp, 0x74                      |         
    0x00079cd4 ldr pc, [sp], 4                   |         pc = *(sp);
                                                 |         sp += 4;
                                                 | label_6:
    0x00079cd8 mov r1, sp                        |         r1 = sp;
    0x00079cda blx 0x8e3c                        |         r0 = fcn_00008e3c ();
    0x00079cde cmp r0, 0                         |         
    0x00079ce0 bge 0x79cae                       |         
                                                 |     } while (r0 >= 0);
                                                 | label_7:
    0x00079ce2 blx 0x9628                        |     r0 = fcn_00009628 ();
    0x00079ce6 ldr r0, [r0]                      |     r0 = *(r0);
    0x00079ce8 rsbs r0, r0, 0                    |     r0 -= ;
    0x00079cea b 0x79cbe                         |     goto label_0;
                                                 | label_5:
    0x00079cec ldr r1, [pc, 0x20]                |     
    0x00079cee movs r2, 0x26                     |     r2 = 0x26;
    0x00079cf0 ldr r3, [pc, 0x20]                |     
    0x00079cf2 ldr r0, [pc, 0x24]                |     
    0x00079cf4 add r1, pc                        |     r1 = 0xf3a08;
    0x00079cf6 add r3, pc                        |     r3 = 0xf3a0e;
    0x00079cf8 adds r1, 7                        |     r1 += 7;
    0x00079cfa add r0, pc                        |     r0 = 0xf3a18;
    0x00079cfc bl 0x71518                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                 | label_8:
    0x00079d00 blx 0x927c                        |     fprintf_chk ()
    0x00079d04 cdp p0, 3, c0, c0, c4, 0          |     __asm ("cdp p0, 3, c0, c0, c4, 0");
    0x00079d08 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x00079d0a movs r0, r0                       |     
    0x00079d0c cdp p0, 0, c0, c2, c4, 0          |     __asm ("cdp p0, 0, c0, c2, c4, 0");
                                                 |     if (r0 != r0) {
    0x00079d10 bne 0x79d34                       |         goto label_9;
                                                 |     }
    0x00079d12 movs r2, r0                       |     r2 = r0;
                                                 |     if (r2 != r0) {
    0x00079d14 bne 0x79cc4                       |         goto label_1;
                                                 |     }
    0x00079d16 movs r2, r0                       |     r2 = r0;
    0x00079d18 subs r2, 0x26                     |     r2 -= 0x26;
    0x00079d1a movs r2, r0                       |     r2 = r0;
                                                 | label_9:
    0x00079d34 str r3, [sp]                      |     *(sp) = r3;
    0x00079d36 cmp r1, 0                         |     
                                                 |     if (r1 == 0) {
    0x00079d38 beq 0x79da8                       |         goto label_10;
                                                 |     }
    0x00079d3a mov.w r2, 0x84000                 |     r2 = 0x84000;
    0x00079d3e blx 0x8e0c                        |     r0 = fcn_00008e0c ();
    0x00079d42 cmp r0, 0                         |     
    0x00079d44 mov r5, r0                        |     r5 = r0;
    0x00079d46 str r0, [sp]                      |     *(sp) = r0;
                                                 |     if (r0 < 0) {
    0x00079d48 blt 0x79dc8                       |         goto label_11;
                                                 |     }
                                                 | label_3:
    0x00079d4a mov r0, sp                        |     r0 = sp;
    0x00079d4c bl 0x6a61c                        |     r0 = fcn_0006a61c (r0, r1, r2);
    0x00079d50 mov r5, r0                        |     r5 = r0;
                                                 |     if (r0 == 0) {
    0x00079d52 cbz r0, 0x79dbc                   |         goto label_12;
                                                 |     }
    0x00079d54 bl 0x67ee4                        |     r0 = fcn_00067ee4 (r0, r1, r2);
                                                 |     if (r0 == 0) {
    0x00079d58 cbz r0, 0x79d96                   |         goto label_13;
                                                 |     }
                                                 |     do {
    0x00079d5a adds r0, 0x13                     |         r0 += 0x13;
    0x00079d5c bl 0x75b88                        |         r0 = fcn_00075b88 (r0);
    0x00079d60 mov r4, r0                        |         r4 = r0;
                                                 |         if (r0 == 0) {
    0x00079d62 cbnz r0, 0x79d8c                  |             
                                                 | label_2:
    0x00079d64 mov r0, r5                        |             r0 = r5;
    0x00079d66 blx 0x91a8                        |             fcn_000091a8 ();
    0x00079d6a ldr r5, [sp]                      |             r5 = *(sp);
                                                 | label_4:
    0x00079d6c mov r0, r5                        |             r0 = r5;
    0x00079d6e invalid                           |             
                                                 |         }
    0x00079d8c mov r0, r5                        |         r0 = r5;
    0x00079d8e bl 0x67ee4                        |         r0 = fcn_00067ee4 (r0, r1, r2);
    0x00079d92 cmp r0, 0                         |         
    0x00079d94 bne 0x79d5a                       |         
                                                 |     } while (r0 != 0);
                                                 | label_13:
    0x00079d96 blx 0x9628                        |     r0 = fcn_00009628 ();
    0x00079d9a ldr r4, [r0]                      |     r4 = *(r0);
    0x00079d9c cmp r4, 0                         |     
    0x00079d9e it gt                             |     
                                                 |     if (r4 <= 0) {
    0x00079da0 rsbgt r4, r4, 0                   |         __asm ("rsbgt r4, r4, 0");
                                                 |         goto label_14;
                                                 |     }
                                                 |     if (r4 > 0) {
                                                 | label_14:
    0x00079da2 bgt 0x79d64                       |         goto label_2;
                                                 |     }
    0x00079da4 movs r4, 1                        |     r4 = 1;
    0x00079da6 b 0x79d64                         |     goto label_2;
                                                 | label_10:
    0x00079da8 mov.w r1, 0x84000                 |     r1 = 0x84000;
    0x00079dac bl 0x6a3dc                        |     r0 = fcn_0006a3dc (r0, r1, r2);
    0x00079db0 cmp r0, 0                         |     
    0x00079db2 mov r4, r0                        |     r4 = r0;
    0x00079db4 str r0, [sp]                      |     *(sp) = r0;
                                                 |     if (r0 >= 0) {
    0x00079db6 bge 0x79d4a                       |         goto label_3;
                                                 |     }
    0x00079db8 mov r5, r0                        |     r5 = r0;
    0x00079dba b 0x79d6c                         |     goto label_4;
                                                 | label_12:
    0x00079dbc blx 0x9628                        |     r0 = fcn_00009628 ();
    0x00079dc0 ldr r4, [r0]                      |     r4 = *(r0);
    0x00079dc2 ldr r5, [sp]                      |     r5 = *(sp);
    0x00079dc4 rsbs r4, r4, 0                    |     r4 -= ;
    0x00079dc6 b 0x79d6c                         |     goto label_4;
                                                 | label_11:
    0x00079dc8 blx 0x9628                        |     r0 = fcn_00009628 ();
    0x00079dcc ldr r4, [r0]                      |     r4 = *(r0);
    0x00079dce rsbs r4, r4, 0                    |     r4 -= ;
    0x00079dd0 b 0x79d6c                         |     goto label_4;
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x79de4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00079de4 ()                      | void fcn_00079de4 (int16_t arg1) {
                                                 |     r0 = arg1;
                                                 |     do {
    0x00079d70 invalid                           |         
    0x00079d74 ldr r3, [pc, 0x64]                |         r3 = *(0x79ddc);
    0x00079d76 add r2, pc                        |         r2 += pc;
    0x00079d78 ldr r3, [r2, r3]                  |         r3 = *((r2 + r3));
    0x00079d7a ldr r2, [r3]                      |         r2 = *(0x79ddc);
    0x00079d7c ldr r3, [sp, 4]                   |         r3 = *((sp + 4));
    0x00079d7e eors r2, r3                       |         r2 ^= r3;
    0x00079d80 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 == r3) {
    0x00079d84 bne 0x79dd2                       |             
    0x00079d86 mov r0, r4                        |             r0 = r4;
    0x00079d88 add sp, 0xc                       |             
    0x00079d8a pop {r4, r5, pc}                  |             
                                                 |         }
    0x00079dd2 blx 0x927c                        |         fprintf_chk ()
    0x00079dd6 nop                               |         
    0x00079dd8 ldc p0, c0, [ip, 0x10]            |         __asm ("ldc p0, c0, [ip, 0x10]");
    0x00079ddc lsls r0, r0, 0x13                 |         r0 <<= 0x13;
    0x00079dde movs r0, r0                       |         
    0x00079de0 stcl p0, c0, [lr, -0x10]          |         __asm ("stcl p0, c0, [lr, -0x10]");
    0x00079de4 push {r3, lr}                     |         
                                                 |         if (r0 != 0) {
    0x00079de6 cbz r0, 0x79e12                   |             
    0x00079de8 ldr r3, [r0, 0x10]                |             r3 = *((r0 + 0x10));
    0x00079dea and r3, r3, 0xf000                |             r3 &= 0xf000;
    0x00079dee cmp.w r3, 0x8000                  |             
                                                 |             if (r3 != 0x8000) {
    0x00079df2 beq 0x79e00                       |                 
    0x00079df4 sub.w r0, r3, 0x2000              |                 r0 = r3 - 0x2000;
    0x00079df8 clz r0, r0                        |                 r0 &= r0;
    0x00079dfc lsrs r0, r0, 5                    |                 r0 >>= 5;
    0x00079dfe pop {r3, pc}                      |                 
                                                 |             }
    0x00079e00 ldrd r2, r3, [r0, 0x30]           |             __asm ("ldrd r2, r3, [r0, 0x30]");
    0x00079e04 cmp r2, 1                         |             
    0x00079e06 sbcs r3, r3, 0                    |             __asm ("sbcs r3, r3, 0");
    0x00079e0a ite lt                            |             
                                                 |             if (r2 >= 1) {
    0x00079e0c movlt r0, 1                       |                 r0 = 1;
                                                 |             }
                                                 |             if (r2 < 1) {
    0x00079e0e movge r0, 0                       |                 r0 = 0;
                                                 |             }
    0x00079e10 pop {r3, pc}                      |             
                                                 |         }
    0x00079e12 ldr r1, [pc, 0x14]                |         
    0x00079e14 movs r2, 0x62                     |         r2 = 0x62;
    0x00079e16 ldr r3, [pc, 0x14]                |         
    0x00079e18 ldr r0, [pc, 0x14]                |         
    0x00079e1a add r1, pc                        |         r1 = 0xf3c48;
    0x00079e1c add r3, pc                        |         r3 = 0xf3c4e;
    0x00079e1e adds r1, 7                        |         r1 += 7;
    0x00079e20 add r0, pc                        |         r0 = 0xf3c54;
    0x00079e22 bl 0x71518                        |         fcn_00071518 (r0, r1, r2, r3);
    0x00079e26 nop                               |         
    0x00079e28 ldm r7, {r1, r3, r5, r6, r7}      |         r1 = *(r7);
                                                 |         r3 = *((r7 + 4));
                                                 |         r5 = *((r7 + 8));
                                                 |         r6 = *((r7 + 12));
                                                 |         r7 = *((r7 + 16));
    0x00079e2a movs r2, r0                       |         r2 = r0;
    0x00079e2c beq 0x79d70                       |         
                                                 |     } while (r2 == r0);
    0x00079e2e movs r2, r0                       |     r2 = r0;
    0x00079e30 ldc p0, c0, [r0], {1}             |     __asm ("ldc p0, c0, [r0], {1}");
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x79e34 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00079e34 ()                  | void fcn_00079e34 (int16_t arg_3d8h, uint32_t arg1) {
                                             |     int16_t var_6ch_2;
                                             |     int16_t var_0h;
                                             |     int16_t var_6ch;
                                             |     r0 = arg1;
    0x00079e34 ldr r2, [pc, 0x70]            |     
    0x00079e36 ldr r3, [pc, 0x74]            |     r3 = *(0x79eae);
    0x00079e38 push {r4, r5, lr}             |     
    0x00079e3a sub sp, 0x74                  |     
    0x00079e3c add r2, pc                    |     r2 = 0xf3ce8;
    0x00079e3e ldr r3, [r2, r3]              |     
    0x00079e40 ldr r3, [r3]                  |     r3 = *(0xf3ce8);
    0x00079e42 str r3, [sp, 0x6c]            |     var_6ch = r3;
    0x00079e44 mov.w r3, 0                   |     r3 = 0;
                                             |     if (r0 == 0) {
    0x00079e48 cbz r0, 0x79e90               |         goto label_1;
                                             |     }
    0x00079e4a ldr r1, [pc, 0x64]            |     
    0x00079e4c mov r4, r0                    |     r4 = r0;
    0x00079e4e add r1, pc                    |     r1 = 0xf3d04;
    0x00079e50 bl 0x754cc                    |     r0 = fcn_000754cc (r0, r1);
                                             |     if (r0 != 0) {
    0x00079e54 cbnz r0, 0x79e70              |         goto label_2;
                                             |     }
    0x00079e56 movs r0, 1                    |     r0 = 1;
                                             |     do {
                                             | label_0:
    0x00079e58 ldr r2, [pc, 0x58]            |         
    0x00079e5a ldr r3, [pc, 0x50]            |         r3 = *(0x79eae);
    0x00079e5c add r2, pc                    |         r2 = 0xf3d14;
    0x00079e5e ldr r3, [r2, r3]              |         r3 = *(0xf3d14);
    0x00079e60 ldr r2, [r3]                  |         r2 = *(0xf3d14);
    0x00079e62 ldr r3, [sp, 0x6c]            |         r3 = var_6ch;
    0x00079e64 eors r2, r3                   |         r2 ^= r3;
    0x00079e66 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00079e6a bne 0x79ea4                   |             goto label_3;
                                             |         }
    0x00079e6c add sp, 0x74                  |         
    0x00079e6e pop {r4, r5, pc}              |         
                                             | label_2:
    0x00079e70 mov r5, sp                    |         r5 = sp;
    0x00079e72 mov r0, r4                    |         r0 = r4;
    0x00079e74 mov r1, r5                    |         r1 = r5;
    0x00079e76 blx 0x8e3c                    |         r0 = fcn_00008e3c ();
    0x00079e7a cmp r0, 0                     |         
                                             |         if (r0 < 0) {
    0x00079e7c blt 0x79e86                   |             goto label_4;
                                             |         }
    0x00079e7e mov r0, r5                    |         r0 = r5;
    0x00079e80 bl 0x79de4                    |         fcn_00079de4 (r0);
    0x00079e84 b 0x79e58                     |         
                                             |     } while (1);
                                             | label_4:
    0x00079e86 blx 0x9628                    |     r0 = fcn_00009628 ();
    0x00079e8a ldr r0, [r0]                  |     r0 = *(r0);
    0x00079e8c rsbs r0, r0, 0                |     r0 -= ;
    0x00079e8e b 0x79e58                     |     goto label_0;
                                             | label_1:
    0x00079e90 ldr r1, [pc, 0x24]            |     
    0x00079e92 movs r2, 0x73                 |     r2 = 0x73;
    0x00079e94 ldr r3, [pc, 0x24]            |     
    0x00079e96 ldr r0, [pc, 0x28]            |     
    0x00079e98 add r1, pc                    |     r1 = 0xf3d54;
    0x00079e9a add r3, pc                    |     r3 = 0xf3d5a;
    0x00079e9c adds r1, 7                    |     r1 += 7;
    0x00079e9e add r0, pc                    |     r0 = 0xf3d64;
    0x00079ea0 bl 0x71518                    |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                             | label_3:
    0x00079ea4 blx 0x927c                    |     fprintf_chk ()
    0x00079ea8 stc p0, c0, [r8], {4}         |     __asm ("stc p0, c0, [r8], {4}");
    0x00079eac lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x00079eae movs r0, r0                   |     
    0x00079eb0 ldr r2, [sp, 0x3d8]           |     r2 = *(arg_3d8h);
    0x00079eb2 movs r2, r0                   |     r2 = r0;
    0x00079eb4 stcl p0, c0, [r8], -0x10      |     __asm ("stcl p0, c0, [r8], -0x10");
    0x00079eb8 ldm r7!, {r2, r3, r5, r6}     |     r2 = *(r7!);
                                             |     r3 = *((r7! + 4));
                                             |     r5 = *((r7! + 8));
                                             |     r6 = *((r7! + 12));
    0x00079eba movs r2, r0                   |     r2 = r0;
                                             |     if (r2 == r0) {
    0x00079ebc beq 0x79edc                   |         void (*0x79edc)() ();
                                             |     }
    0x00079ebe movs r2, r0                   |     r2 = r0;
    0x00079ec0 lsls r2, r5, 0x1a             |     r2 = r5 << 0x1a;
    0x00079ec2 movs r1, r0                   |     r1 = r0;
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x79ec4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00079ec4 ()              | void fcn_00079ec4 (uint32_t arg1) {
                                         |     int16_t var_0h;
                                         |     int16_t var_6ch;
                                         |     r0 = arg1;
    0x00079ec4 ldr r2, [pc, 0x60]        |     
    0x00079ec6 cmp r0, 0                 |     
    0x00079ec8 ldr r3, [pc, 0x60]        |     r3 = *(0x79f2c);
    0x00079eca push {r4, lr}             |     
    0x00079ecc sub sp, 0x70              |     
    0x00079ece add r2, pc                |     r2 = 0xf3dfa;
    0x00079ed0 ldr r3, [r2, r3]          |     
    0x00079ed2 ldr r3, [r3]              |     r3 = *(0xf3dfa);
    0x00079ed4 str r3, [sp, 0x6c]        |     var_6ch = r3;
    0x00079ed6 mov.w r3, 0               |     r3 = 0;
                                         |     if (r0 < 0) {
    0x00079eda blt 0x79f10               |         goto label_0;
                                         |     }
    0x00079edc mov r4, sp                |     r4 = sp;
    0x00079ede mov r1, r4                |     r1 = r4;
    0x00079ee0 blx 0x9020                |     r0 = fcn_00009020 ();
    0x00079ee4 cmp r0, 0                 |     
                                         |     if (r0 < 0) {
    0x00079ee6 blt 0x79f06               |         goto label_1;
                                         |     }
    0x00079ee8 mov r0, r4                |     r0 = r4;
    0x00079eea bl 0x79de4                |     fcn_00079de4 (r0);
                                         |     do {
    0x00079eee ldr r2, [pc, 0x40]        |         
    0x00079ef0 ldr r3, [pc, 0x38]        |         r3 = *(0x79f2c);
    0x00079ef2 add r2, pc                |         r2 = 0xf3e28;
    0x00079ef4 ldr r3, [r2, r3]          |         r3 = *(0xf3e28);
    0x00079ef6 ldr r2, [r3]              |         r2 = *(0xf3e28);
    0x00079ef8 ldr r3, [sp, 0x6c]        |         r3 = var_6ch;
    0x00079efa eors r2, r3               |         r2 ^= r3;
    0x00079efc mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x00079f00 bne 0x79f24               |             goto label_2;
                                         |         }
    0x00079f02 add sp, 0x70              |         
    0x00079f04 pop {r4, pc}              |         
                                         | label_1:
    0x00079f06 blx 0x9628                |         r0 = fcn_00009628 ();
    0x00079f0a ldr r0, [r0]              |         r0 = *(r0);
    0x00079f0c rsbs r0, r0, 0            |         r0 -= ;
    0x00079f0e b 0x79eee                 |         
                                         |     } while (1);
                                         | label_0:
    0x00079f10 ldr r1, [pc, 0x20]        |     
    0x00079f12 movs r2, 0x82             |     r2 = 0x82;
    0x00079f14 ldr r3, [pc, 0x20]        |     
    0x00079f16 ldr r0, [pc, 0x24]        |     
    0x00079f18 add r1, pc                |     r1 = 0xf3e50;
    0x00079f1a add r3, pc                |     r3 = 0xf3e56;
    0x00079f1c adds r1, 7                |     r1 += 7;
    0x00079f1e add r0, pc                |     r0 = 0xf3e60;
    0x00079f20 bl 0x71518                |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                         | label_2:
    0x00079f24 blx 0x927c                |     fprintf_chk ()
    0x00079f28 invalid                   |     
                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x79f40 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00079f40 ()                      | void fcn_00079f40 (int16_t arg1) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_40h;
                                                 |     int16_t var_64h;
                                                 |     r0 = arg1;
    0x00079f40 blmi 0x94c7d0                     |     __asm ("blmi aav.0x0004eb7c");
    0x00079f44 push {r4, r5, lr}                 |     
    0x00079f46 sub sp, 0x6c                      |     
    0x00079f48 add r2, pc                        |     r2 += pc;
    0x00079f4a ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x00079f4c ldr r3, [r3]                      |     r3 = *(r3);
    0x00079f4e str r3, [sp, 0x64]                |     var_64h = r3;
    0x00079f50 mov.w r3, 0                       |     r3 = 0;
                                                 |     if (r0 == 0) {
    0x00079f54 cbz r0, 0x79fb2                   |         goto label_1;
                                                 |     }
    0x00079f56 mov r1, sp                        |     r1 = sp;
    0x00079f58 mov r5, r0                        |     r5 = r0;
    0x00079f5a blx 0x8cd8                        |     r0 = fcn_00008cd8 ();
    0x00079f5e cmp r0, 0                         |     
                                                 |     if (r0 < 0) {
    0x00079f60 blt 0x79fa8                       |         goto label_2;
                                                 |     }
    0x00079f62 ldr r3, [sp, 0x40]                |     r3 = var_40h;
    0x00079f64 ands r4, r3, 1                    |     r4 = r3 & 1;
    0x00079f68 it ne                             |     
                                                 |     if (r4 == r3) {
    0x00079f6a movne r0, 1                       |         r0 = 1;
                                                 |     }
    0x00079f6c beq 0x79f86                       |     
                                                 |     while (r0 >= 0) {
                                                 | label_0:
    0x00079f6e ldr r2, [pc, 0x64]                |         
    0x00079f70 ldr r3, [pc, 0x5c]                |         r3 = *(0x79fd0);
    0x00079f72 add r2, pc                        |         r2 = 0xf3f4c;
    0x00079f74 ldr r3, [r2, r3]                  |         r3 = *(0xf3f4c);
    0x00079f76 ldr r2, [r3]                      |         r2 = *(0xf3f4c);
    0x00079f78 ldr r3, [sp, 0x64]                |         r3 = var_64h;
    0x00079f7a eors r2, r3                       |         r2 ^= r3;
    0x00079f7c mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00079f80 bne 0x79fc6                       |             goto label_3;
                                                 |         }
    0x00079f82 add sp, 0x6c                      |         
    0x00079f84 pop {r4, r5, pc}                  |         
    0x00079f86 movs r1, 2                        |         r1 = 2;
    0x00079f88 mov r0, r5                        |         r0 = r5;
    0x00079f8a blx 0x8df4                        |         r0 = fcn_00008df4 ();
    0x00079f8e cmp r0, 0                         |         
    0x00079f90 it ge                             |         
                                                 |         if (r0 < 0) {
    0x00079f92 movge r0, r4                      |             r0 = r4;
                                                 |         }
    0x00079f94 bge 0x79f6e                       |         
                                                 |     }
    0x00079f96 blx 0x9628                        |     r0 = fcn_00009628 ();
    0x00079f9a ldr r0, [r0]                      |     r0 = *(r0);
    0x00079f9c sub.w r0, r0, 0x1e                |     r0 -= 0x1e;
    0x00079fa0 clz r0, r0                        |     r0 &= r0;
    0x00079fa4 lsrs r0, r0, 5                    |     r0 >>= 5;
    0x00079fa6 b 0x79f6e                         |     goto label_0;
                                                 | label_2:
    0x00079fa8 blx 0x9628                        |     r0 = fcn_00009628 ();
    0x00079fac ldr r0, [r0]                      |     r0 = *(r0);
    0x00079fae rsbs r0, r0, 0                    |     r0 -= ;
    0x00079fb0 b 0x79f6e                         |     goto label_0;
                                                 | label_1:
    0x00079fb2 ldr r1, [pc, 0x24]                |     
    0x00079fb4 movs r2, 0x8d                     |     r2 = 0x8d;
    0x00079fb6 ldr r3, [pc, 0x24]                |     
    0x00079fb8 ldr r0, [pc, 0x24]                |     
    0x00079fba add r1, pc                        |     r1 = 0xf3f98;
    0x00079fbc add r3, pc                        |     r3 = 0xf3f9e;
    0x00079fbe adds r1, 7                        |     r1 += 7;
    0x00079fc0 add r0, pc                        |     r0 = 0xf3fa4;
    0x00079fc2 bl 0x71518                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                 | label_3:
    0x00079fc6 blx 0x927c                        |     fprintf_chk ()
    0x00079fca nop                               |     
    0x00079fcc sbcs.w r0, ip, r4                 |     __asm ("sbcs.w r0, ip, r4");
    0x00079fd0 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x00079fd2 movs r0, r0                       |     
    0x00079fd4 adcs.w r0, r2, r4                 |     __asm ("adcs.w r0, r2, r4");
    0x00079fd8 ldm r6, {r1, r3, r6}              |     r1 = *(r6);
                                                 |     r3 = *((r6 + 4));
                                                 |     r6 = *((r6 + 8));
    0x00079fda movs r2, r0                       |     r2 = r0;
    0x00079fdc ldm r7!, {r2, r3, r4, r5}         |     r2 = *(r7!);
                                                 |     r3 = *((r7! + 4));
                                                 |     r4 = *((r7! + 8));
                                                 |     r5 = *((r7! + 12));
    0x00079fde movs r2, r0                       |     r2 = r0;
    0x00079fe0 adds r7, 0x60                     |     r7 += 0x60;
    0x00079fe2 movs r2, r0                       |     r2 = r0;
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x79fe4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00079fe4 ()                      | void fcn_00079fe4 (uint32_t arg1, uint32_t arg2, int16_t arg3) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_60h;
                                                 |     int16_t var_68h;
                                                 |     int16_t var_c8h;
                                                 |     int16_t var_d4h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 |     r2 = arg3;
    0x00079fe4 sasxmi fp, r5, r0                 |     __asm ("sasxmi fp, r5, r0");
    0x00079fe8 ldr r2, [pc, 0xb4]                |     
    0x00079fea sub sp, 0xdc                      |     
    0x00079fec ldr r3, [pc, 0xb4]                |     r3 = *(0x7a0a4);
    0x00079fee add r2, pc                        |     r2 = 0xf4092;
    0x00079ff0 ldr r3, [r2, r3]                  |     
    0x00079ff2 ldr r3, [r3]                      |     r3 = *(0xf4092);
    0x00079ff4 str r3, [sp, 0xd4]                |     var_d4h = r3;
    0x00079ff6 mov.w r3, 0                       |     r3 = 0;
    0x00079ffa cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x00079ffc beq 0x7a072                       |         
    0x00079ffe mov r4, r1                        |         r4 = r1;
    0x0007a000 cmp r1, 0                         |         
                                                 |         if (r1 == 0) {
    0x0007a002 beq 0x7a086                       |             goto label_0;
                                                 |         }
    0x0007a004 mov r1, r0                        |         r1 = r0;
    0x0007a006 mov r3, r5                        |         r3 = r5;
    0x0007a008 mov r2, sp                        |         r2 = sp;
    0x0007a00a mvn r0, 0x63                      |         r0 = ~0x63;
    0x0007a00e blx 0x9334                        |         r0 = fcn_00009334 ();
    0x0007a012 cmp r0, 0                         |         
                                                 |         if (r0 >= 0) {
    0x0007a014 blt 0x7a052                       |             
    0x0007a016 mov r3, r5                        |             r3 = r5;
    0x0007a018 add r2, sp, 0x68                  |             r2 += var_68h;
    0x0007a01a mov r1, r4                        |             r1 = r4;
    0x0007a01c mvn r0, 0x63                      |             r0 = ~0x63;
    0x0007a020 blx 0x9334                        |             r0 = fcn_00009334 ();
    0x0007a024 cmp r0, 0                         |             
                                                 |             if (r0 >= 0) {
    0x0007a026 blt 0x7a052                       |                 
    0x0007a028 ldrd r0, r2, [sp]                 |                 __asm ("ldrd r0, r2, [sp]");
    0x0007a02c ldrd r1, r3, [sp, 0x68]           |                 __asm ("ldrd r1, r3, [var_68h]");
    0x0007a030 cmp r2, r3                        |                 
    0x0007a032 it eq                             |                 
                                                 |                 if (r2 == r3) {
    0x0007a034 cmpeq r0, r1                      |                     __asm ("cmpeq r0, r1");
                                                 |                 }
    0x0007a036 it ne                             |                 
                                                 |                 if (r2 == r3) {
    0x0007a038 movne r0, 0                       |                     r0 = 0;
                                                 |                 }
                                                 |                 if (r2 != r3) {
    0x0007a03a bne 0x7a05a                       |                     goto label_1;
                                                 |                 }
    0x0007a03c ldrd r0, r2, [sp, 0x60]           |                 __asm ("ldrd r0, r2, [var_60h]");
    0x0007a040 ldrd r1, r3, [sp, 0xc8]           |                 __asm ("ldrd r1, r3, [var_c8h]");
    0x0007a044 cmp r2, r3                        |                 
    0x0007a046 it eq                             |                 
                                                 |                 if (r2 == r3) {
    0x0007a048 cmpeq r0, r1                      |                     __asm ("cmpeq r0, r1");
                                                 |                 }
    0x0007a04a ite eq                            |                 
                                                 |                 if (r2 != r3) {
    0x0007a04c moveq r0, 1                       |                     r0 = 1;
                                                 |                 }
                                                 |                 if (r2 == r3) {
    0x0007a04e movne r0, 0                       |                     r0 = 0;
                                                 |                 }
    0x0007a050 b 0x7a05a                         |                 
                                                 |             }
                                                 |         } else {
    0x0007a052 blx 0x9628                        |             r0 = fcn_00009628 ();
    0x0007a056 ldr r0, [r0]                      |             r0 = *(r0);
    0x0007a058 rsbs r0, r0, 0                    |             r0 -= ;
                                                 |         }
                                                 | label_1:
    0x0007a05a ldr r2, [pc, 0x4c]                |         
    0x0007a05c ldr r3, [pc, 0x44]                |         r3 = *(0x7a0a4);
    0x0007a05e add r2, pc                        |         r2 = 0xf410c;
    0x0007a060 ldr r3, [r2, r3]                  |         r3 = *(0xf410c);
    0x0007a062 ldr r2, [r3]                      |         r2 = *(0xf410c);
    0x0007a064 ldr r3, [sp, 0xd4]                |         r3 = var_d4h;
    0x0007a066 eors r2, r3                       |         r2 ^= r3;
    0x0007a068 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0007a06c bne 0x7a09a                       |             goto label_2;
                                                 |         }
    0x0007a06e add sp, 0xdc                      |         
    0x0007a070 pop {r4, r5, pc}                  |         
                                                 |     }
    0x0007a072 ldr r1, [pc, 0x38]                |     
    0x0007a074 movs r2, 0xa1                     |     r2 = 0xa1;
    0x0007a076 ldr r3, [pc, 0x38]                |     
    0x0007a078 ldr r0, [pc, 0x38]                |     
    0x0007a07a add r1, pc                        |     r1 = 0xf412c;
    0x0007a07c add r3, pc                        |     r3 = 0xf4132;
    0x0007a07e adds r1, 7                        |     r1 += 7;
    0x0007a080 add r0, pc                        |     r0 = 0xf4138;
    0x0007a082 bl 0x71518                        |     fcn_00071518 (r0, r1, r2, r3);
                                                 | label_0:
    0x0007a086 ldr r1, [pc, 0x30]                |     
    0x0007a088 movs r2, 0xa2                     |     r2 = 0xa2;
    0x0007a08a ldr r3, [pc, 0x30]                |     
    0x0007a08c ldr r0, [pc, 0x30]                |     
    0x0007a08e add r1, pc                        |     r1 = 0xf414c;
    0x0007a090 add r3, pc                        |     r3 = 0xf4152;
    0x0007a092 adds r1, 7                        |     r1 += 7;
    0x0007a094 add r0, pc                        |     r0 = 0xf4158;
    0x0007a096 bl 0x71518                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                 | label_2:
    0x0007a09a blx 0x927c                        |     fprintf_chk ()
    0x0007a09e nop                               |     
    0x0007a0a0 invalid                           |     
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7a0f4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0007a0f4 ()                      | void fcn_0007a0f4 (int16_t arg2) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_5ch;
                                                 |     r1 = arg2;
    0x0007a0f4 blmi 0x58c948                     |     __asm ("blmi aav.0x0004e9c8");
    0x0007a0f8 push {r4, r5, lr}                 |     
    0x0007a0fa sub sp, 0x64                      |     
    0x0007a0fc add r2, pc                        |     r2 += pc;
    0x0007a0fe mov r5, sp                        |     r5 = sp;
    0x0007a100 mov r4, r1                        |     r4 = r1;
    0x0007a102 mov r1, r5                        |     r1 = r5;
    0x0007a104 ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x0007a106 ldr r3, [r3]                      |     r3 = *(r3);
    0x0007a108 str r3, [sp, 0x5c]                |     var_5ch = r3;
    0x0007a10a mov.w r3, 0                       |     r3 = 0;
    0x0007a10e blx 0x8f74                        |     r0 = fcn_00008f74 ();
    0x0007a112 cmp r0, 0                         |     
                                                 |     if (r0 < 0) {
    0x0007a114 blt 0x7a136                       |         goto label_0;
                                                 |     }
    0x0007a116 mov r1, r4                        |     r1 = r4;
    0x0007a118 mov r0, r5                        |     r0 = r5;
    0x0007a11a bl 0x7a0c4                        |     fcn_0007a0c4 (r0, r1);
                                                 |     do {
    0x0007a11e ldr r2, [pc, 0x2c]                |         
    0x0007a120 ldr r3, [pc, 0x24]                |         r3 = *(0x7a148);
    0x0007a122 add r2, pc                        |         r2 = 0xf4274;
    0x0007a124 ldr r3, [r2, r3]                  |         r3 = *(0xf4274);
    0x0007a126 ldr r2, [r3]                      |         r2 = *(0xf4274);
    0x0007a128 ldr r3, [sp, 0x5c]                |         r3 = var_5ch;
    0x0007a12a eors r2, r3                       |         r2 ^= r3;
    0x0007a12c mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0007a130 bne 0x7a140                       |             goto label_1;
                                                 |         }
    0x0007a132 add sp, 0x64                      |         
    0x0007a134 pop {r4, r5, pc}                  |         
                                                 | label_0:
    0x0007a136 blx 0x9628                        |         r0 = fcn_00009628 ();
    0x0007a13a ldr r0, [r0]                      |         r0 = *(r0);
    0x0007a13c rsbs r0, r0, 0                    |         r0 -= ;
    0x0007a13e b 0x7a11e                         |         
                                                 |     } while (1);
                                                 | label_1:
    0x0007a140 blx 0x927c                        |     r0 = fprintf_chk ()
    0x0007a144 strd r0, r0, [r8, 0x10]           |     __asm ("strd r0, r0, [r8, 0x10]");
    0x0007a148 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x0007a14a movs r0, r0                       |     
    0x0007a14c invalid                           |     
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7a150 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0007a150 ()                      | void fcn_0007a150 (int16_t arg2) {
                                                 |     int16_t var_5ch_2;
                                                 |     int16_t var_0h;
                                                 |     int16_t var_5ch;
                                                 |     r1 = arg2;
    0x0007a150 blmi 0x58c9a4                     |     __asm ("blmi aav.0x0004e96c");
    0x0007a154 push {r4, r5, lr}                 |     
    0x0007a156 sub sp, 0x64                      |     
    0x0007a158 add r2, pc                        |     r2 += pc;
    0x0007a15a mov r5, sp                        |     r5 = sp;
    0x0007a15c mov r4, r1                        |     r4 = r1;
    0x0007a15e mov r1, r5                        |     r1 = r5;
    0x0007a160 ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x0007a162 ldr r3, [r3]                      |     r3 = *(r3);
    0x0007a164 str r3, [sp, 0x5c]                |     var_5ch = r3;
    0x0007a166 mov.w r3, 0                       |     r3 = 0;
    0x0007a16a blx 0x8a44                        |     r0 = fcn_00008a44 ();
    0x0007a16e cmp r0, 0                         |     
                                                 |     if (r0 < 0) {
    0x0007a170 blt 0x7a192                       |         goto label_0;
                                                 |     }
    0x0007a172 mov r1, r4                        |     r1 = r4;
    0x0007a174 mov r0, r5                        |     r0 = r5;
    0x0007a176 bl 0x7a0c4                        |     fcn_0007a0c4 (r0, r1);
                                                 |     do {
    0x0007a17a ldr r2, [pc, 0x2c]                |         
    0x0007a17c ldr r3, [pc, 0x24]                |         r3 = *(0x7a1a4);
    0x0007a17e add r2, pc                        |         r2 = 0xf432c;
    0x0007a180 ldr r3, [r2, r3]                  |         r3 = *(0xf432c);
    0x0007a182 ldr r2, [r3]                      |         r2 = *(0xf432c);
    0x0007a184 ldr r3, [sp, 0x5c]                |         r3 = var_5ch;
    0x0007a186 eors r2, r3                       |         r2 ^= r3;
    0x0007a188 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0007a18c bne 0x7a19c                       |             goto label_1;
                                                 |         }
    0x0007a18e add sp, 0x64                      |         
    0x0007a190 pop {r4, r5, pc}                  |         
                                                 | label_0:
    0x0007a192 blx 0x9628                        |         r0 = fcn_00009628 ();
    0x0007a196 ldr r0, [r0]                      |         r0 = *(r0);
    0x0007a198 rsbs r0, r0, 0                    |         r0 -= ;
    0x0007a19a b 0x7a17a                         |         
                                                 |     } while (1);
                                                 | label_1:
    0x0007a19c blx 0x927c                        |     r0 = fprintf_chk ()
    0x0007a1a0 strd r0, r0, [ip, -0x10]!         |     __asm ("strd r0, r0, [ip, -0x10]!");
    0x0007a1a4 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x0007a1a6 movs r0, r0                       |     
    0x0007a1a8 strd r0, r0, [r6, -0x10]          |     __asm ("strd r0, r0, [r6, -0x10]");
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7a1d4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0007a1d4 ()                      | void fcn_0007a1d4 () {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_5ch;
    0x0007a1d4 blmi 0x54ca24                     |     __asm ("blmi aav.0x0004e8e8");
    0x0007a1d8 push {r4, lr}                     |     
    0x0007a1da sub sp, 0x60                      |     
    0x0007a1dc add r2, pc                        |     r2 += pc;
    0x0007a1de mov r4, sp                        |     r4 = sp;
    0x0007a1e0 mov r1, r4                        |     r1 = r4;
    0x0007a1e2 ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x0007a1e4 ldr r3, [r3]                      |     r3 = *(r3);
    0x0007a1e6 str r3, [sp, 0x5c]                |     var_5ch = r3;
    0x0007a1e8 mov.w r3, 0                       |     r3 = 0;
    0x0007a1ec blx 0x8a44                        |     r0 = fcn_00008a44 ();
    0x0007a1f0 cmp r0, 0                         |     
                                                 |     if (r0 < 0) {
    0x0007a1f2 blt 0x7a212                       |         goto label_0;
                                                 |     }
    0x0007a1f4 mov r0, r4                        |     r0 = r4;
    0x0007a1f6 bl 0x7a1ac                        |     fcn_0007a1ac (r0);
                                                 |     do {
    0x0007a1fa ldr r2, [pc, 0x2c]                |         
    0x0007a1fc ldr r3, [pc, 0x24]                |         r3 = *(0x7a224);
    0x0007a1fe add r2, pc                        |         r2 = 0xf442c;
    0x0007a200 ldr r3, [r2, r3]                  |         r3 = *(0xf442c);
    0x0007a202 ldr r2, [r3]                      |         r2 = *(0xf442c);
    0x0007a204 ldr r3, [sp, 0x5c]                |         r3 = var_5ch;
    0x0007a206 eors r2, r3                       |         r2 ^= r3;
    0x0007a208 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0007a20c bne 0x7a21c                       |             goto label_1;
                                                 |         }
    0x0007a20e add sp, 0x60                      |         
    0x0007a210 pop {r4, pc}                      |         
                                                 | label_0:
    0x0007a212 blx 0x9628                        |         r0 = fcn_00009628 ();
    0x0007a216 ldr r0, [r0]                      |         r0 = *(r0);
    0x0007a218 rsbs r0, r0, 0                    |         r0 -= ;
    0x0007a21a b 0x7a1fa                         |         
                                                 |     } while (1);
                                                 | label_1:
    0x0007a21c blx 0x927c                        |     r0 = fprintf_chk ()
    0x0007a220 strd r0, r0, [r8], 0x10           |     __asm ("strd r0, r0, [r8], 0x10");
    0x0007a224 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x0007a226 movs r0, r0                       |     
    0x0007a228 invalid                           |     
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7a2a0 */
                                                 | #include <stdint.h>
                                                 |  
                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                 |  
    ; (fcn) fcn.0007a2a0 ()                      | void fcn_0007a2a0 (int16_t arg_28h, int16_t arg1, int16_t arg3, int16_t arg4) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_8h;
                                                 |     int16_t var_ch;
                                                 |     r0 = arg1;
                                                 |     r2 = arg3;
                                                 |     r3 = arg4;
    0x0007a2a0 strdlt fp, ip, [r5], r0           |     __asm ("strdlt fp, ip, [r5], r0");
    0x0007a2a4 ldr r4, [pc, 0xd0]                |     
    0x0007a2a6 movs r5, 0                        |     r5 = 0;
    0x0007a2a8 ldr r1, [pc, 0xd0]                |     r1 = *(0x7a37c);
    0x0007a2aa add r4, pc                        |     r4 = 0xf4626;
    0x0007a2ac ldr r1, [r4, r1]                  |     
    0x0007a2ae ldr r4, [sp, 0x28]                |     r4 = *(arg_28h);
    0x0007a2b0 ldr r1, [r1]                      |     r1 = *(0xf4626);
    0x0007a2b2 str r1, [sp, 0xc]                 |     var_ch = r1;
    0x0007a2b4 mov.w r1, 0                       |     r1 = 0;
    0x0007a2b8 str r5, [sp, 8]                   |     var_8h = r5;
    0x0007a2ba cmp r4, 0                         |     
                                                 |     if (r4 == 0) {
    0x0007a2bc beq 0x7a344                       |         goto label_2;
                                                 |     }
    0x0007a2be lsr.w lr, r2, 0xc                 |     lr = r2 >> 0xc;
    0x0007a2c2 bic r1, r3, 0xff0                 |     r1 = BIT_MASK (r3, 0xff0);
    0x0007a2c6 uxtb r7, r2                       |     r7 = (int8_t) r2;
    0x0007a2c8 bic r1, r1, 0xf                   |     r1 = BIT_MASK (r1, 0xf);
    0x0007a2cc orr.w lr, lr, r3, lsl 20          |     lr |= (r3 << 20);
    0x0007a2d0 ubfx ip, r2, 8, 0xc               |     ip = (r2 >> 8) & ((1 << 0xc) - 1);
    0x0007a2d4 orr.w r1, r1, ip                  |     r1 |= ip;
    0x0007a2d8 bic lr, lr, 0xff                  |     lr = BIT_MASK (lr, 0xff);
    0x0007a2dc orrs r1, r7                       |     r1 |= r7;
    0x0007a2de orrs.w r1, r1, lr                 |     r1 |= lr;
                                                 |     if (r1 != r1) {
    0x0007a2e2 bne 0x7a324                       |         goto label_3;
                                                 |     }
    0x0007a2e4 and r6, r0, 0xf000                |     r6 &= arg_28hxf000;
    0x0007a2e8 cmp.w r6, 0x2000                  |     
                                                 |     if (r6 == 0x2000) {
    0x0007a2ec beq 0x7a35a                       |         goto label_4;
                                                 |     }
    0x0007a2ee cmp.w r6, 0x6000                  |     
                                                 |     if (r6 != 0x6000) {
    0x0007a2f2 bne 0x7a364                       |         goto label_5;
                                                 |     }
    0x0007a2f4 ldr r0, [pc, 0x88]                |     
    0x0007a2f6 add r0, pc                        |     r0 = 0xf467a;
    0x0007a2f8 blx 0x9200                        |     r0 = fcn_00009200 ();
                                                 | label_1:
    0x0007a2fc cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0007a2fe beq 0x7a370                       |         goto label_6;
                                                 |     }
    0x0007a300 str r0, [r4]                      |     *(r4) = r0;
    0x0007a302 movs r0, 0                        |     r0 = 0;
    0x0007a304 mov r6, r0                        |     r6 = r0;
                                                 |     do {
                                                 | label_0:
    0x0007a306 blx 0x8dac                        |         fcn_00008dac ();
    0x0007a30a ldr r2, [pc, 0x78]                |         
    0x0007a30c ldr r3, [pc, 0x6c]                |         r3 = *(0x7a37c);
    0x0007a30e add r2, pc                        |         r2 = 0xf4698;
    0x0007a310 ldr r3, [r2, r3]                  |         r3 = *(0xf4698);
    0x0007a312 ldr r2, [r3]                      |         r2 = *(0xf4698);
    0x0007a314 ldr r3, [sp, 0xc]                 |         r3 = var_ch;
    0x0007a316 eors r2, r3                       |         r2 ^= r3;
    0x0007a318 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0007a31c bne 0x7a36c                       |             goto label_7;
                                                 |         }
    0x0007a31e mov r0, r6                        |         r0 = r6;
    0x0007a320 add sp, 0x14                      |         
    0x0007a322 pop {r4, r5, r6, r7, pc}          |         
                                                 | label_3:
    0x0007a324 add r1, sp, 8                     |         r1 += var_8h;
    0x0007a326 str r1, [sp]                      |         *(sp) = r1;
    0x0007a328 bl 0x7a22c                        |         r0 = fcn_0007a22c (r0, r1, r2, r3);
    0x0007a32c subs r6, r0, 0                    |         r6 = r0 - 0;
    0x0007a32e ldr r0, [sp, 8]                   |         r0 = var_8h;
    0x0007a330 blt 0x7a306                       |         
                                                 |     } while (r6 < r0);
    0x0007a332 mov r3, r4                        |     r3 = r4;
    0x0007a334 mov r2, r5                        |     r2 = r5;
    0x0007a336 mov r1, r5                        |     r1 = r5;
    0x0007a338 str r5, [sp]                      |     *(sp) = r5;
    0x0007a33a bl 0x6c85c                        |     r0 = fcn_0006c85c (r0, r1, r2, r3);
    0x0007a33e mov r6, r0                        |     r6 = r0;
    0x0007a340 ldr r0, [sp, 8]                   |     r0 = var_8h;
    0x0007a342 b 0x7a306                         |     goto label_0;
                                                 | label_2:
    0x0007a344 ldr r1, [pc, 0x40]                |     
    0x0007a346 mov.w r2, 0x13e                   |     r2 = 0x13e;
    0x0007a34a ldr r3, [pc, 0x40]                |     
    0x0007a34c ldr r0, [pc, 0x40]                |     
    0x0007a34e add r1, pc                        |     r1 = 0xf46da;
    0x0007a350 add r3, pc                        |     r3 = 0xf46e2;
    0x0007a352 adds r1, 7                        |     r1 += 7;
    0x0007a354 add r0, pc                        |     r0 = 0xf46e8;
    0x0007a356 bl 0x71518                        |     fcn_00071518 (r0, r1, r2, r3);
                                                 | label_4:
    0x0007a35a ldr r0, [pc, 0x38]                |     
    0x0007a35c add r0, pc                        |     r0 = 0xf46f6;
    0x0007a35e blx 0x9200                        |     fcn_00009200 ();
    0x0007a362 b 0x7a2fc                         |     goto label_1;
                                                 | label_5:
    0x0007a364 mov r0, r1                        |     r0 = r1;
    0x0007a366 mvn r6, 0x12                      |     r6 = ~0x12;
    0x0007a36a b 0x7a306                         |     goto label_0;
                                                 | label_7:
    0x0007a36c blx 0x927c                        |     fprintf_chk ()
                                                 | label_6:
    0x0007a370 mvn r6, 0xb                       |     r6 = ~0xb;
    0x0007a374 b 0x7a306                         |     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/libexec/udevadm @ 0x7a8a8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0007a8a8 ()                                      | void fcn_0007a8a8 (int16_t arg_30h, int16_t arg_34h) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_4h_3;
    0x0007a8a8 push {r0, r1, r2, r3}                             |     
    0x0007a8aa ldr r2, [pc, 0x9c]                                |     
    0x0007a8ac push {r4, r5, r6, r7, lr}                         |     
    0x0007a8ae sub sp, 0xc                                       |     
    0x0007a8b0 ldr r3, [pc, 0x98]                                |     r3 = *(0x7a94c);
    0x0007a8b2 add r6, sp, 0x20                                  |     r6 += var_20h;
    0x0007a8b4 add r2, pc                                        |     r2 = 0xf5202;
    0x0007a8b6 ldr r7, [r6], 4                                   |     r7 = *(r6);
                                                                 |     r6 += 4;
    0x0007a8ba ldr r3, [r2, r3]                                  |     
    0x0007a8bc ldr r3, [r3]                                      |     r3 = *(0xf5202);
    0x0007a8be str r3, [sp, 4]                                   |     var_4h = r3;
    0x0007a8c0 mov.w r3, 0                                       |     r3 = 0;
    0x0007a8c4 str r6, [sp]                                      |     *(sp) = r6;
    0x0007a8c6 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0007a8c8 beq 0x7a932                                       |         goto label_5;
                                                                 |     }
    0x0007a8ca mov r0, r7                                        |     r0 = r7;
    0x0007a8cc mov r5, r6                                        |     r5 = r6;
    0x0007a8ce blx 0x8f38                                        |     r0 = fcn_00008f38 ();
    0x0007a8d2 adds r4, r0, 1                                    |     r4 = r0 + 1;
    0x0007a8d4 b 0x7a8de                                         |     
                                                                 |     while (r0 != 0) {
    0x0007a8d6 blx 0x8f38                                        |         r0 = fcn_00008f38 ();
    0x0007a8da adds r4, r4, r0                                   |         r4 += r0;
                                                                 |         if (r4 >= r4) {
    0x0007a8dc bhs 0x7a940                                       |             goto label_6;
                                                                 |         }
    0x0007a8de ldr r0, [r5], 4                                   |         r0 = *(r5);
                                                                 |         r5 += 4;
    0x0007a8e2 cmp r0, 0                                         |         
    0x0007a8e4 bne 0x7a8d6                                       |         
                                                                 |     }
    0x0007a8e6 cmp r4, 1                                         |     
    0x0007a8e8 mov r0, r4                                        |     r0 = r4;
    0x0007a8ea it lo                                             |     
                                                                 |     if (r4 >= 1) {
    0x0007a8ec movlo r0, 1                                       |         r0 = 1;
                                                                 |     }
    0x0007a8ee blx 0x9234                                        |     blkid_safe_string ();
    0x0007a8f0 stc p6, c4, [r2], 0x14                            |     __asm ("stc p6, c4, [r2], 0x14");
                                                                 |     if (r0 == 0) {
    0x0007a8f4 cbz r0, 0x7a940                                   |         goto label_6;
                                                                 |     }
    0x0007a8f6 mov r4, r6                                        |     r4 = r6;
    0x0007a8f8 mov r0, r5                                        |     r0 = r5;
    0x0007a8fa str r6, [sp]                                      |     *(sp) = r6;
                                                                 |     do {
    0x0007a8fc mov r1, r7                                        |         r1 = r7;
    0x0007a8fe adds r4, 4                                        |         r4 += 4;
    0x0007a900 blx 0x8c38                                        |         fcn_00008c38 ();
    0x0007a904 ldr r7, [r4, -0x4]                                |         r7 = *((r4 - 0x4));
    0x0007a908 str r4, [sp]                                      |         *(sp) = r4;
    0x0007a90a cmp r7, 0                                         |         
    0x0007a90c bne 0x7a8fc                                       |         
                                                                 |     } while (r7 != 0);
                                                                 |     do {
    0x0007a90e movs r3, 0                                        |         r3 = 0;
    0x0007a910 strb r3, [r0]                                     |         *(r0) = r3;
                                                                 | label_0:
    0x0007a912 ldr r2, [pc, 0x3c]                                |         
    0x0007a914 ldr r3, [pc, 0x34]                                |         r3 = *(0x7a94c);
    0x0007a916 add r2, pc                                        |         r2 = 0xf526c;
    0x0007a918 ldr r3, [r2, r3]                                  |         r3 = *(0xf526c);
    0x0007a91a ldr r2, [r3]                                      |         r2 = *(0xf526c);
    0x0007a91c ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x0007a91e eors r2, r3                                       |         r2 ^= r3;
    0x0007a920 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0007a924 bne 0x7a944                                       |             goto label_7;
                                                                 |         }
    0x0007a926 mov r0, r5                                        |         r0 = r5;
    0x0007a928 add sp, 0xc                                       |         
    0x0007a92a pop.w {r4, r5, r6, r7, lr}                        |         
    0x0007a92e add sp, 0x10                                      |         
    0x0007a930 bx lr                                             |         return;
                                                                 | label_5:
    0x0007a932 movs r0, 1                                        |         r0 = 1;
    0x0007a934 blx 0x9234                                        |         r0 = blkid_safe_string ();
                                                                 |         if (r0 == 0) {
    0x0007a938 cbz r0, 0x7a940                                   |             goto label_6;
                                                                 |         }
    0x0007a93a mov r5, r0                                        |         r5 = r0;
    0x0007a93c str r6, [sp]                                      |         *(sp) = r6;
    0x0007a93e b 0x7a90e                                         |         
                                                                 |     } while (1);
                                                                 | label_6:
    0x0007a940 movs r5, 0                                        |     r5 = 0;
    0x0007a942 b 0x7a912                                         |     goto label_0;
                                                                 | label_7:
    0x0007a944 blx 0x927c                                        |     fprintf_chk ()
    0x0007a948 b 0x7ad6c                                         |     goto label_8;
                                                                 | label_4:
    0x0007ac76 mov r8, fp                                        |     r8 = fp;
    0x0007ac78 cmp.w fp, 0                                       |     
                                                                 |     if (fp != 0) {
    0x0007ac7c beq 0x7ac86                                       |         
    0x0007ac7e mov r0, fp                                        |         r0 = fp;
    0x0007ac80 blx 0x8f38                                        |         r0 = fcn_00008f38 ();
    0x0007ac84 mov r8, r0                                        |         r8 = r0;
                                                                 |     }
    0x0007ac86 ldr r0, [sp, 0x30]                                |     r0 = *(arg_30h);
    0x0007ac88 add r3, sp, 0x34                                  |     r3 += arg_34h;
    0x0007ac8a add r7, sp, 0x30                                  |     r7 += arg_30h;
    0x0007ac8c mov r5, r4                                        |     r5 = r4;
    0x0007ac8e str r3, [sp]                                      |     *(sp) = r3;
                                                                 |     if (r0 != 0) {
    0x0007ac90 cbnz r0, 0x7aca2                                  |         goto label_9;
                                                                 |     }
    0x0007ac92 b 0x7acd0                                         |     goto label_10;
                                                                 |     do {
    0x0007ac94 ldr r3, [sp]                                      |         r3 = *(sp);
    0x0007ac96 add r5, r0                                        |         r5 += r0;
    0x0007ac98 movs r6, 1                                        |         r6 = 1;
    0x0007ac9a ldr r0, [r3]                                      |         r0 = *(r3);
    0x0007ac9c adds r3, 4                                        |         r3 += 4;
    0x0007ac9e str r3, [sp]                                      |         *(sp) = r3;
                                                                 |         if (r0 == 0) {
    0x0007aca0 cbz r0, 0x7acd0                                   |             goto label_10;
                                                                 |         }
                                                                 | label_9:
    0x0007aca2 blx 0x8f38                                        |         fcn_00008f38 ();
                                                                 |         if (r6 != 0) {
    0x0007aca6 cbz r6, 0x7acaa                                   |             
    0x0007aca8 add r0, r8                                        |             r0 += r8;
                                                                 |         }
    0x0007acaa mvns r3, r5                                       |         r3 = ~r5;
    0x0007acac cmp r3, r0                                        |         
    0x0007acae bhi 0x7ac94                                       |         
                                                                 |     } while (r3 > r0);
                                                                 |     do {
    0x0007acb0 movs r0, 0                                        |         r0 = 0;
                                                                 | label_2:
    0x0007acb2 ldr r2, [pc, 0xdc]                                |         
    0x0007acb4 ldr r3, [pc, 0xd4]                                |         r3 = *(0x7ad8c);
    0x0007acb6 add r2, pc                                        |         r2 = 0xf5a4c;
    0x0007acb8 ldr r3, [r2, r3]                                  |         r3 = *(0xf5a4c);
    0x0007acba ldr r2, [r3]                                      |         r2 = *(0xf5a4c);
    0x0007acbc ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x0007acbe eors r2, r3                                       |         r2 ^= r3;
    0x0007acc0 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0007acc4 bne 0x7ad84                                       |             goto label_11;
                                                                 |         }
    0x0007acc6 add sp, 8                                         |         
    0x0007acc8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |         
    0x0007accc add sp, 0xc                                       |         
    0x0007acce bx lr                                             |         return;
                                                                 | label_10:
    0x0007acd0 mov r8, sl                                        |         r8 = sl;
    0x0007acd2 cmp.w sl, 0                                       |         
                                                                 |         if (sl != 0) {
    0x0007acd6 beq 0x7ace6                                       |             
    0x0007acd8 ldrb.w r8, [sl]                                   |             r8 = *(sl);
    0x0007acdc subs.w r8, r8, 0                                  |             
    0x0007ace0 it ne                                             |             
                                                                 |             if (r8 != r8) {
    0x0007ace2 movne r8, 1                                       |                 r8 = 1;
                                                                 |                 goto label_12;
                                                                 |             }
                                                                 |         }
                                                                 | label_12:
    0x0007ace6 adds r1, r5, 1                                    |         r1 = r5 + 1;
    0x0007ace8 cmp r1, 2                                         |         
                                                                 |         if (r1 < 2) {
    0x0007acea bls 0x7ad64                                       |             goto label_13;
                                                                 |         }
    0x0007acec clz r3, r5                                        |         r3 &= r5;
                                                                 |         if (r3 != 0) {
    0x0007acf0 cbz r3, 0x7acfa                                   |             
    0x0007acf2 rsb.w r3, r3, 0x20                                |             r3 = 0x20 - r3;
    0x0007acf6 movs r1, 1                                        |             r1 = 1;
    0x0007acf8 lsls r1, r3                                       |             r1 <<= r3;
                                                                 |         }
                                                                 | label_3:
    0x0007acfa mov r0, sl                                        |         r0 = sl;
    0x0007acfc blx 0x94dc                                        |         r0 = fcn_000094dc ();
    0x0007ad00 mov sl, r0                                        |         sl = r0;
    0x0007ad02 cmp r0, 0                                         |         
    0x0007ad04 beq 0x7acb0                                       |         
                                                                 |     } while (r0 == 0);
    0x0007ad06 str.w r0, [sb]                                    |     __asm ("str.w r0, [sb]");
    0x0007ad0a adds r7, 4                                        |     r7 += 4;
    0x0007ad0c ldr r6, [sp, 0x30]                                |     r6 = *(arg_30h);
    0x0007ad0e add r0, r4                                        |     r0 += r4;
    0x0007ad10 str r7, [sp]                                      |     *(sp) = r7;
                                                                 |     if (r6 == 0) {
    0x0007ad12 cbz r6, 0x7ad40                                   |         goto label_14;
                                                                 |     }
    0x0007ad14 subs.w r4, fp, 0                                  |     r4 -= arg_30h;
    0x0007ad18 it ne                                             |     
                                                                 |     if (r4 == arg_30h) {
    0x0007ad1a movne r4, 1                                       |         r4 = 1;
                                                                 |     }
    0x0007ad1c b 0x7ad32                                         |     
                                                                 |     while ((r4 & r8) == 0) {
                                                                 | label_1:
    0x0007ad1e mov r1, r6                                        |         r1 = r6;
    0x0007ad20 adds r7, 4                                        |         r7 += 4;
    0x0007ad22 blx 0x8c38                                        |         fcn_00008c38 ();
    0x0007ad26 ldr r6, [r7, -0x4]                                |         r6 = *((r7 - 0x4));
    0x0007ad2a mov.w r8, 1                                       |         r8 = 1;
    0x0007ad2e str r7, [sp]                                      |         *(sp) = r7;
                                                                 |         if (r6 == 0) {
    0x0007ad30 cbz r6, 0x7ad40                                   |             goto label_14;
                                                                 |         }
    0x0007ad32 tst.w r4, r8                                      |         
    0x0007ad36 beq 0x7ad1e                                       |         
                                                                 |     }
    0x0007ad38 mov r1, fp                                        |     r1 = fp;
    0x0007ad3a blx 0x8c38                                        |     fcn_00008c38 ();
    0x0007ad3e b 0x7ad1e                                         |     goto label_1;
                                                                 | label_14:
    0x0007ad40 add.w r6, sl, r5                                  |     r6 = sl + r5;
    0x0007ad44 cmp r0, r6                                        |     
    0x0007ad46 itt eq                                            |     
                                                                 |     if (r0 != r6) {
    0x0007ad48 moveq r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r0 == r6) {
    0x0007ad4a strbeq r3, [r0]                                   |         *(r0) = r3;
                                                                 |         goto label_15;
                                                                 |     }
                                                                 |     if (r0 == r6) {
                                                                 | label_15:
    0x0007ad4c beq 0x7acb2                                       |         goto label_2;
                                                                 |     }
    0x0007ad4e ldr r1, [pc, 0x44]                                |     
    0x0007ad50 movw r2, 0x312                                    |     r2 = 0x312;
    0x0007ad54 ldr r3, [pc, 0x40]                                |     
    0x0007ad56 ldr r0, [pc, 0x44]                                |     
    0x0007ad58 add r1, pc                                        |     r1 = 0xf5af2;
    0x0007ad5a add r3, pc                                        |     r3 = 0xf5af6;
    0x0007ad5c adds r1, 7                                        |     r1 += 7;
    0x0007ad5e add r0, pc                                        |     r0 = 0xf5b00;
    0x0007ad60 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_13:
    0x0007ad64 movs r1, 2                                        |     r1 = 2;
    0x0007ad66 b 0x7acfa                                         |     goto label_3;
                                                                 | label_8:
    0x0007ad6c b 0x7ac76                                         |     goto label_4;
                                                                 | label_11:
    0x0007ad84 blx 0x927c                                        |     fprintf_chk ()
    0x0007ad88 udf 0x8a                                          |     __asm ("udf 0x8a");
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7a9b8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0007a9b8 ()                                      | void fcn_0007a9b8 (int16_t arg_14h, int16_t arg1) {
                                                                 |     int16_t var_4h;
                                                                 |     r0 = arg1;
    0x0007a9b8 invalid                                           |     
    0x0007a9bc ldr r1, [pc, 0x24]                                |     
    0x0007a9be mov r4, r0                                        |     r4 = r0;
    0x0007a9c0 add r1, pc                                        |     r1 = 0xf53a8;
    0x0007a9c2 blx 0x9488                                        |     fcn_00009488 ();
    0x0007a9c6 movs r3, 0                                        |     r3 = 0;
    0x0007a9c8 strb r3, [r4, r0]                                 |     *((r4 + r0)) = r3;
    0x0007a9ca mov r0, r4                                        |     r0 = r4;
    0x0007a9cc pop {r4, pc}                                      |     
    0x0007a9ce ldr r1, [pc, 0x18]                                |     
    0x0007a9d0 movs r2, 0xad                                     |     r2 = 0xad;
    0x0007a9d2 ldr r3, [pc, 0x18]                                |     
    0x0007a9d4 ldr r0, [pc, 0x18]                                |     
    0x0007a9d6 add r1, pc                                        |     r1 = 0xf53c4;
    0x0007a9d8 add r3, pc                                        |     r3 = 0xf53ca;
    0x0007a9da adds r1, 7                                        |     r1 += 7;
    0x0007a9dc add r0, pc                                        |     r0 = 0xf53d0;
    0x0007a9de bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
    0x0007a9e2 nop                                               |     
    0x0007a9e4 ldc p0, c0, [r4], {1}                             |     __asm ("ldc p0, c0, [r4], {1}");
    0x0007a9e8 stm r5!, {r1, r2, r3, r4, r6}                     |     *(r5!) = r1;
                                                                 |     *((r5! + 4)) = r2;
                                                                 |     *((r5! + 8)) = r3;
                                                                 |     *((r5! + 12)) = r4;
                                                                 |     *((r5! + 16)) = r6;
    0x0007a9ea movs r2, r0                                       |     r2 = r0;
    0x0007a9ec stm r5!, {r3, r4, r5, r6, r7}                     |     *(r5!) = r3;
                                                                 |     *((r5! + 4)) = r4;
                                                                 |     *((r5! + 8)) = r5;
                                                                 |     *((r5! + 12)) = r6;
                                                                 |     *((r5! + 16)) = r7;
    0x0007a9ee movs r2, r0                                       |     r2 = r0;
    0x0007a9f0 b 0x7af44                                         |     
                                                                 |     while (r3 == 0) {
                                                                 | label_0:
    0x0007af28 ldr r1, [pc, 0x3c]                                |         
    0x0007af2a ldr r2, [pc, 0x38]                                |         r2 = *(0x7af66);
    0x0007af2c add r1, pc                                        |         r1 = 0xf5e98;
    0x0007af2e ldr r2, [r1, r2]                                  |         r2 = *(0xf5e98);
    0x0007af30 ldr r1, [r2]                                      |         r1 = *(0xf5e98);
    0x0007af32 ldr r2, [sp, 0x14]                                |         r2 = *(arg_14h);
    0x0007af34 eors r1, r2                                       |         r1 ^= r2;
    0x0007af36 invalid                                           |         
                                                                 | label_1:
    0x0007af38 lsls r0, r0, 8                                    |         r0 <<= 8;
                                                                 |         if (r0 != r0) {
    0x0007af3a bne 0x7af5c                                       |             goto label_2;
                                                                 |         }
    0x0007af3c mov r0, fp                                        |         r0 = fp;
    0x0007af3e add sp, 0x1c                                      |         
    0x0007af40 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x0007af44 mov r4, fp                                        |         r4 = fp;
    0x0007af46 mov r0, r8                                        |         r0 = r8;
    0x0007af48 blx 0x8dac                                        |         fcn_00008dac ();
    0x0007af4c ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x0007af4e cmp r3, 0                                         |         
    0x0007af50 beq 0x7af28                                       |         
                                                                 |     }
    0x0007af52 str r4, [r3]                                      |     *(r3) = r4;
    0x0007af54 b 0x7af28                                         |     goto label_0;
                                                                 | label_2:
    0x0007af5c blx 0x927c                                        |     fprintf_chk ()
                                                                 |     if (r3 < 0) {
    0x0007af60 blt 0x7af38                                       |         goto label_1;
                                                                 |     }
    0x0007af62 movs r4, r0                                       |     r4 = r0;
    0x0007af64 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0007af66 movs r0, r0                                       |     
                                                                 |     if (r0 < r0) {
    0x0007af68 blt 0x7ae9c                                       |         void (*0x7ae9c)() ();
                                                                 |     }
    0x0007af6a movs r4, r0                                       |     r4 = r0;
    0x0007af6c ldr r1, [r1]                                      |     r1 = *(r1);
    0x0007af6e ldr r0, [r0]                                      |     r0 = *(r0);
    0x0007af70 b.w 0x95dc                                        |     return void (*0x95dc)() ();
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7b1cc */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0007b1cc ()                                          | void fcn_0007b1cc (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0007b1cc push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0007b1d0 mov r7, r2                                            |     r7 = r2;
    0x0007b1d2 ldr r2, [pc, 0xfc]                                    |     
    0x0007b1d4 mov r8, r3                                            |     r8 = r3;
    0x0007b1d6 sub sp, 0x1c                                          |     
    0x0007b1d8 movs r4, 0                                            |     r4 = 0;
    0x0007b1da ldr r3, [pc, 0xf8]                                    |     r3 = *(0x7b2d6);
    0x0007b1dc add r2, pc                                            |     r2 = 0xf64b2;
    0x0007b1de str r1, [sp, 4]                                       |     var_4h = r1;
    0x0007b1e0 ldr r3, [r2, r3]                                      |     
    0x0007b1e2 ldr r3, [r3]                                          |     r3 = *(0xf64b2);
    0x0007b1e4 str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x0007b1e6 mov.w r3, 0                                           |     r3 = 0;
    0x0007b1ea str r4, [sp, 0xc]                                     |     var_ch = r4;
    0x0007b1ec str r0, [sp]                                          |     *(sp) = r0;
    0x0007b1ee cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007b1f0 beq 0x7b28e                                           |         goto label_4;
                                                                     |     }
    0x0007b1f2 cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x0007b1f4 beq 0x7b2a4                                           |         goto label_3;
                                                                     |     }
    0x0007b1f6 mov r6, r4                                            |     r6 = r4;
    0x0007b1f8 add.w sl, sp, 0x10                                    |     sl += var_10h;
    0x0007b1fc add.w sb, sp, 4                                       |     sb += var_4h;
    0x0007b200 mov r5, r4                                            |     r5 = r4;
    0x0007b202 add.w fp, sp, 0xc                                     |     
    0x0007b206 b 0x7b230                                             |     
                                                                     |     while (r0 >= 0) {
                                                                     |         if (r1 == 0) {
    0x0007b208 beq 0x7b276                                           |             goto label_5;
                                                                     |         }
    0x0007b20a movs r2, 4                                            |         r2 = 4;
    0x0007b20c adds r1, r6, 2                                        |         r1 = r6 + 2;
    0x0007b20e mov r0, fp                                            |         r0 = fp;
    0x0007b210 bl 0x6530c                                            |         fcn_0006530c (r0, r1, r2);
    0x0007b212 invalid                                               |         
    0x0007b216 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0007b218 beq 0x7b288                                           |             goto label_6;
                                                                     |         }
    0x0007b21a ldrd r2, r1, [sp, 0xc]                                |         __asm ("ldrd r2, r1, [var_ch]");
    0x0007b21e adds r6, 1                                            |         r6++;
    0x0007b220 str r5, [sp, 0x10]                                    |         var_10h = r5;
    0x0007b222 str r1, [r2, r4]                                      |         *((r2 + r4)) = r1;
    0x0007b224 mov r4, r3                                            |         r4 = r3;
    0x0007b226 ldr r2, [sp, 0xc]                                     |         r2 = var_ch;
    0x0007b228 str r5, [r2, r3]                                      |         *((r2 + r3)) = r5;
    0x0007b22a ldr r0, [sp, 0x10]                                    |         r0 = var_10h;
    0x0007b22c blx 0x8dac                                            |         fcn_00008dac ();
    0x0007b230 mov r3, r8                                            |         r3 = r8;
    0x0007b232 mov r2, r7                                            |         r2 = r7;
    0x0007b234 mov r1, sl                                            |         r1 = sl;
    0x0007b236 mov r0, sb                                            |         r0 = sb;
    0x0007b238 str r5, [sp, 0x10]                                    |         var_10h = r5;
    0x0007b23a bl 0x695ac                                            |         r0 = fcn_000695ac (r0, r1, r2, r3);
    0x0007b23e cmp r0, 0                                             |         
    0x0007b240 bge 0x7b208                                           |         
                                                                     |     }
    0x0007b242 mov r3, r0                                            |     r3 = r0;
                                                                     | label_0:
    0x0007b244 ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0007b246 str r3, [sp]                                          |     *(sp) = r3;
    0x0007b248 blx 0x8dac                                            |     fcn_00008dac ();
    0x0007b24c ldr r0, [sp, 0xc]                                     |     r0 = var_ch;
    0x0007b24e ldr r3, [sp]                                          |     r3 = *(sp);
                                                                     |     if (r0 == 0) {
    0x0007b250 cbz r0, 0x7b25a                                       |         goto label_2;
                                                                     |     }
    0x0007b252 str r3, [sp]                                          |     *(sp) = r3;
    0x0007b254 bl 0x7b004                                            |     fcn_0007b004 (r0);
    0x0007b258 ldr r3, [sp]                                          |     r3 = *(sp);
                                                                     |     do {
                                                                     | label_2:
    0x0007b25a ldr r1, [pc, 0x7c]                                    |         
    0x0007b25c ldr r2, [pc, 0x74]                                    |         r2 = *(0x7b2d4);
    0x0007b25e add r1, pc                                            |         r1 = 0xf653c;
    0x0007b260 ldr r2, [r1, r2]                                      |         r2 = *(0xf653c);
    0x0007b262 ldr r1, [r2]                                          |         r1 = *(0xf653c);
    0x0007b264 ldr r2, [sp, 0x14]                                    |         r2 = var_14h;
    0x0007b266 eors r1, r2                                           |         r1 ^= r2;
    0x0007b268 mov.w r2, 0                                           |         r2 = 0;
                                                                     |         if (r1 != r2) {
    0x0007b26c bne 0x7b2cc                                           |             goto label_7;
                                                                     |         }
    0x0007b26e mov r0, r3                                            |         r0 = r3;
    0x0007b270 add sp, 0x1c                                          |         
    0x0007b272 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_5:
    0x0007b276 ldr r0, [sp, 0x10]                                    |         r0 = var_10h;
    0x0007b278 blx 0x8dac                                            |         fcn_00008dac ();
    0x0007b27c ldr r0, [sp, 0xc]                                     |         r0 = var_ch;
                                                                     |         if (r0 == 0) {
    0x0007b27e cbz r0, 0x7b2ba                                       |             goto label_8;
                                                                     |         }
                                                                     | label_1:
    0x0007b280 ldr r2, [sp]                                          |         r2 = *(sp);
    0x0007b282 mov r3, r6                                            |         r3 = r6;
    0x0007b284 str r0, [r2]                                          |         *(r2) = r0;
    0x0007b286 b 0x7b25a                                             |         
                                                                     |     } while (1);
                                                                     | label_6:
    0x0007b288 mvn r3, 0xb                                           |     r3 = ~0xb;
    0x0007b28c b 0x7b244                                             |     goto label_0;
                                                                     | label_4:
    0x0007b28e ldr r1, [pc, 0x4c]                                    |     
    0x0007b290 mov.w r2, 0x110                                       |     r2 = 0x110;
    0x0007b294 ldr r3, [pc, 0x48]                                    |     
    0x0007b296 ldr r0, [pc, 0x4c]                                    |     
    0x0007b298 add r1, pc                                            |     r1 = 0xf657a;
    0x0007b29a add r3, pc                                            |     r3 = 0xf657e;
    0x0007b29c adds r1, 7                                            |     r1 += 7;
    0x0007b29e add r0, pc                                            |     r0 = 0xf6588;
    0x0007b2a0 bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_3:
    0x0007b2a4 ldr r1, [pc, 0x40]                                    |     
    0x0007b2a6 movw r2, 0x111                                        |     r2 = 0x111;
    0x0007b2aa ldr r3, [pc, 0x40]                                    |     
    0x0007b2ac ldr r0, [pc, 0x40]                                    |     
    0x0007b2ae add r1, pc                                            |     r1 = 0xf659a;
    0x0007b2b0 add r3, pc                                            |     r3 = 0xf65a2;
    0x0007b2b2 adds r1, 7                                            |     r1 += 7;
    0x0007b2b4 add r0, pc                                            |     r0 = 0xf65a8;
    0x0007b2b6 bl 0x71518                                            |     fcn_00071518 (r0, r1, r2, r3);
                                                                     | label_8:
    0x0007b2ba movs r1, 4                                            |     r1 = 4;
    0x0007b2bc movs r0, 1                                            |     r0 = 1;
    0x0007b2be blx 0x8c20                                            |     r0 = fcn_00008c20 ();
    0x0007b2c2 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0007b2c4 bne 0x7b280                                           |         goto label_1;
                                                                     |     }
    0x0007b2c6 mvn r3, 0xb                                           |     r3 = ~0xb;
    0x0007b2ca b 0x7b25a                                             |     goto label_2;
                                                                     | label_7:
    0x0007b2cc blx 0x927c                                            |     fprintf_chk ()
                                                                     |     if (r0 > 0) {
    0x0007b2d0 bhi 0x7b2a4                                           |         goto label_3;
                                                                     |     }
    0x0007b2d2 movs r4, r0                                           |     r4 = r0;
    0x0007b2d4 lsls r0, r0, 0x13                                     |     r0 <<= 0x13;
    0x0007b2d6 movs r0, r0                                           |     
                                                                     |     if (r0 > r0) {
    0x0007b2d8 bhi 0x7b3a8                                           |         goto label_9;
                                                                     |     }
    0x0007b2da movs r4, r0                                           |     r4 = r0;
    0x0007b2dc pop {r2, r3, r7, pc}                                  |     
                                                                     |     do {
                                                                     | label_9:
    0x0007b3a8 pop {r2, r3, r4, r6, r7}                              |         
    0x0007b3aa movs r2, r0                                           |         r2 = r0;
    0x0007b3ac bhi 0x7b3a8                                           |         
                                                                     |     } while (r2 > r0);
    0x0007b3ae movs r0, r0                                           |     
                                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7b2f4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0007b2f4 ()                      | void fcn_0007b2f4 (int16_t arg1, uint32_t arg2, int16_t arg3) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 |     r2 = arg3;
    0x0007b2f4 push {r4, r5, r6, r7, lr}         |     
    0x0007b2f6 mov r5, r0                        |     r5 = r0;
    0x0007b2f8 ldr r0, [pc, 0x98]                |     
    0x0007b2fa mov r3, r2                        |     r3 = r2;
    0x0007b2fc sub sp, 0xc                       |     
    0x0007b2fe movs r4, 0                        |     r4 = 0;
    0x0007b300 ldr r2, [pc, 0x94]                |     r2 = *(0x7b398);
    0x0007b302 add r0, pc                        |     r0 = 0xf669a;
    0x0007b304 ldr r2, [r0, r2]                  |     
    0x0007b306 ldr r2, [r2]                      |     r2 = *(0xf669a);
    0x0007b308 str r2, [sp, 4]                   |     var_4h = r2;
    0x0007b30a mov.w r2, 0                       |     r2 = 0;
    0x0007b30e str r4, [sp]                      |     *(sp) = r4;
    0x0007b310 cmp r1, 0                         |     
                                                 |     if (r1 == 0) {
    0x0007b312 beq 0x7b37a                       |         goto label_2;
                                                 |     }
    0x0007b314 ldr r2, [pc, 0x84]                |     
    0x0007b316 mov r0, sp                        |     r0 = sp;
    0x0007b318 add r2, pc                        |     r2 = 0xf66b8;
    0x0007b31a bl 0x7b1cc                        |     fcn_0007b1cc (r0, r1, r2, r3);
    0x0007b31e subs r4, r0, 0                    |     r4 -= var_0h;
    0x0007b31c invalid                           |     
                                                 |     if (r4 < var_0h) {
    0x0007b322 ldr r6, [sp]                      |         r6 = *(sp);
    0x0007b324 mov r0, r6                        |         r0 = r6;
    0x0007b326 bl 0x7b02c                        |         r0 = fcn_0007b02c (r0);
    0x0007b32a mov r4, r0                        |         r4 = r0;
    0x0007b32c cbnz r0, 0x7b34a                  |         
                                                 |     }
    0x0007b320 blt 0x7b36e                       |     goto label_3;
                                                 |     while (r3 != 0) {
                                                 | label_0:
    0x0007b32e str r6, [r5]                      |         *(r5) = r6;
                                                 | label_1:
    0x0007b330 ldr r2, [pc, 0x6c]                |         
    0x0007b332 ldr r3, [pc, 0x64]                |         r3 = *(0x7b39a);
    0x0007b334 add r2, pc                        |         r2 = 0xf66d8;
    0x0007b336 ldr r3, [r2, r3]                  |         r3 = *(0xf66d8);
    0x0007b338 ldr r2, [r3]                      |         r2 = *(0xf66d8);
    0x0007b33a ldr r3, [sp, 4]                   |         r3 = var_4h;
    0x0007b33c eors r2, r3                       |         r2 ^= r3;
    0x0007b33e mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0007b342 bne 0x7b38e                       |             goto label_4;
                                                 |         }
    0x0007b344 mov r0, r4                        |         r0 = r4;
    0x0007b346 add sp, 0xc                       |         
    0x0007b348 pop {r4, r5, r6, r7, pc}          |         
    0x0007b34a add.w r3, r0, 0x40000000          |         r3 = r0 + 0x40000000;
    0x0007b34e subs r3, 1                        |         r3--;
    0x0007b350 ldr.w r0, [r6, r3, lsl 2]         |         offset_0 = r3 << 2;
                                                 |         r0 = *((r6 + offset_0));
    0x0007b354 add.w r7, r6, r3, lsl 2           |         r7 = r6 + (r3 << 2);
                                                 |         if (r0 == 0) {
    0x0007b358 cbz r0, 0x7b360                   |             goto label_5;
                                                 |         }
    0x0007b35a ldrb r3, [r0]                     |         r3 = *(r0);
    0x0007b35c cmp r3, 0                         |         
    0x0007b35e bne 0x7b32e                       |         
                                                 |     }
                                                 | label_5:
    0x0007b360 blx 0x8dac                        |     fcn_00008dac ();
    0x0007b364 movs r3, 0                        |     r3 = 0;
    0x0007b366 subs r4, 1                        |     r4--;
    0x0007b368 str r3, [r7]                      |     *(r7) = r3;
    0x0007b36a ldr r6, [sp]                      |     r6 = *(sp);
    0x0007b36c b 0x7b32e                         |     goto label_0;
                                                 | label_3:
    0x0007b36e ldr r0, [sp]                      |     r0 = *(sp);
    0x0007b370 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0007b372 beq 0x7b330                       |         goto label_1;
                                                 |     }
    0x0007b374 bl 0x7b004                        |     fcn_0007b004 (r0);
    0x0007b378 b 0x7b330                         |     goto label_1;
                                                 | label_2:
    0x0007b37a ldr r1, [pc, 0x28]                |     
    0x0007b37c movs r2, 0xf8                     |     r2 = 0xf8;
    0x0007b37e ldr r3, [pc, 0x28]                |     
    0x0007b380 ldr r0, [pc, 0x28]                |     
    0x0007b382 add r1, pc                        |     r1 = 0xf672c;
    0x0007b384 add r3, pc                        |     r3 = 0xf6732;
    0x0007b386 adds r1, 7                        |     r1 += 7;
    0x0007b388 add r0, pc                        |     r0 = 0xf6738;
    0x0007b38a bl 0x71518                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                 | label_4:
    0x0007b38e blx 0x927c                        |     fprintf_chk ()
    0x0007b392 nop                               |     
    0x0007b394 bvc 0x7b31c                       |     __asm ("bvc aav.0x000000ff");
    0x0007b396 movs r4, r0                       |     r4 = r0;
    0x0007b398 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x0007b39a movs r0, r0                       |     
    0x0007b39c b 0x7ba18                         |     return void (*0x7ba18)() ();
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7b8e8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0007b8e8 ()                  | void fcn_0007b8e8 (int16_t arg1, int16_t arg2) {
                                             |     int16_t var_0h;
                                             |     int32_t var_4h;
                                             |     int32_t var_4h_2;
                                             |     int16_t var_ch;
                                             |     int16_t var_20h;
                                             |     int16_t var_24h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0007b8e8 push {r2, r3}                 |     
    0x0007b8ea push {r4, r5, lr}             |     
    0x0007b8ec mov r5, r0                    |     r5 = r0;
    0x0007b8ee sub sp, 0x14                  |     
    0x0007b8f0 ldr r0, [pc, 0x8c]            |     r0 = *(0x7b980);
    0x0007b8f2 ldr r2, [pc, 0x90]            |     r2 = *(0x7b986);
                                             | label_1:
    0x0007b8f4 ldr r3, [sp, 0x20]            |     r3 = var_20h;
    0x0007b8f6 add r0, pc                    |     r0 += pc;
    0x0007b8f8 ldr r2, [r0, r2]              |     r2 = *((r0 + r2));
    0x0007b8fa ldr r2, [r2]                  |     r2 = *(r2);
    0x0007b8fc str r2, [sp, 0xc]             |     var_ch = r2;
    0x0007b8fe mov.w r2, 0                   |     r2 = 0;
                                             |     if (r5 == 0) {
    0x0007b902 cbz r5, 0x7b952               |         goto label_2;
                                             |     }
    0x0007b904 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x0007b906 beq 0x7b966                   |         goto label_3;
                                             |     }
    0x0007b908 mov r4, r1                    |     r4 = r1;
    0x0007b90a cbnz r1, 0x7b92c              |     
                                             |     while (1) {
    0x0007b90c ldr r2, [pc, 0x78]            |         
    0x0007b90e ldr r3, [pc, 0x74]            |         r3 = *(0x7b986);
    0x0007b910 add r2, pc                    |         r2 = 0xf729c;
    0x0007b912 ldr r3, [r2, r3]              |         r3 = *(0xf729c);
    0x0007b914 ldr r2, [r3]                  |         r2 = *(0xf729c);
    0x0007b916 ldr r3, [sp, 0xc]             |         r3 = var_ch;
    0x0007b918 eors r2, r3                   |         r2 ^= r3;
    0x0007b91a mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x0007b91e bne 0x7b97a                   |             goto label_4;
                                             |         }
                                             | label_0:
    0x0007b920 mov r0, r4                    |         r0 = r4;
    0x0007b922 add sp, 0x14                  |         
    0x0007b924 pop.w {r4, r5, lr}            |         
    0x0007b928 add sp, 8                     |         
    0x0007b92a bx lr                         |         return;
    0x0007b92c add r2, sp, 0x24              |         r2 += var_24h;
    0x0007b92e str r3, [sp]                  |         *(sp) = r3;
    0x0007b930 strd r2, r2, [sp, 4]          |         __asm ("strd r2, r2, [var_4h]");
    0x0007b934 mov.w r3, -1                  |         r3 = -1;
    0x0007b938 ldr r0, [r5]                  |         r0 = *(r5);
    0x0007b93a movs r2, 1                    |         r2 = 1;
    0x0007b93c blx 0x9074                    |         r0 = fcn_00009074 ();
    0x0007b940 cmp r4, r0                    |         
    0x0007b942 ittet gt                      |         
                                             |         if (r4 <= r0) {
    0x0007b944 ldrgt r3, [r5]                |             r3 = *(r5);
                                             |         }
                                             |         if (r4 <= r0) {
    0x0007b946 subgt r4, r4, r0              |             r4 -= r0;
                                             |         }
                                             |         if (r4 > r0) {
    0x0007b948 movle r4, 0                   |             r4 = 0;
                                             |         }
                                             |         if (r4 <= r0) {
    0x0007b94a addgt r3, r3, r0              |             r3 += r0;
                                             |         }
    0x0007b94c it gt                         |         
                                             |         if (r4 <= r0) {
    0x0007b94e strgt r3, [r5]                |             *(r5) = r3;
                                             |         }
    0x0007b950 b 0x7b90c                     |         
                                             |     }
                                             | label_2:
    0x0007b952 ldr r1, [pc, 0x38]            |     
    0x0007b954 movs r2, 0x33                 |     r2 = 0x33;
    0x0007b956 ldr r3, [pc, 0x38]            |     
    0x0007b958 ldr r0, [pc, 0x38]            |     
    0x0007b95a add r1, pc                    |     r1 = 0xf72ec;
    0x0007b95c add r3, pc                    |     r3 = 0xf72f2;
    0x0007b95e adds r1, 7                    |     r1 += 7;
    0x0007b960 add r0, pc                    |     r0 = 0xf72f8;
    0x0007b962 bl 0x71518                    |     fcn_00071518 (r0, r1, r2, r3);
                                             | label_3:
    0x0007b966 ldr r1, [pc, 0x30]            |     
    0x0007b968 movs r2, 0x34                 |     r2 = 0x34;
    0x0007b96a ldr r3, [pc, 0x30]            |     
    0x0007b96c ldr r0, [pc, 0x30]            |     
    0x0007b96e add r1, pc                    |     r1 = 0xf730c;
    0x0007b970 add r3, pc                    |     r3 = 0xf7312;
    0x0007b972 adds r1, 7                    |     r1 += 7;
    0x0007b974 add r0, pc                    |     r0 = 0xf7318;
    0x0007b976 bl 0x71518                    |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                             | label_4:
    0x0007b97a blx 0x927c                    |     fprintf_chk ()
    0x0007b97e nop                           |     
                                             |     if (r1 != 7) {
    0x0007b980 bne 0x7b920                   |         goto label_0;
                                             |     }
    0x0007b982 movs r4, r0                   |     r4 = r0;
    0x0007b984 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x0007b986 movs r0, r0                   |     
                                             |     if (r0 != r0) {
    0x0007b988 bne 0x7b8f4                   |         goto label_1;
                                             |     }
    0x0007b98a movs r4, r0                   |     r4 = r0;
    0x0007b98c invalid                       |     
                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7bc4c */
                                                         | #include <stdint.h>
                                                         |  
                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                         |  
    ; (fcn) fcn.0007bc4c ()                              | void fcn_0007bc4c (int16_t arg_300h, uint32_t arg1, uint32_t arg2) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     int16_t var_8h;
                                                         |     int32_t var_ch;
                                                         |     int32_t var_ch_2;
                                                         |     int16_t var_18h;
                                                         |     int32_t var_4h_2;
                                                         |     int16_t var_0h_2;
                                                         |     int16_t var_22h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0007bc4c ldr r2, [pc, 0x178]                       |     
    0x0007bc4e ldr r3, [pc, 0x17c]                       |     r3 = *(0x7bdce);
    0x0007bc50 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x0007bc54 sub sp, 0x20                              |     
    0x0007bc56 add r2, pc                                |     r2 = 0xf7a22;
    0x0007bc58 add r7, sp, 0x18                          |     r7 += var_18h;
    0x0007bc5a ldr r3, [r2, r3]                          |     
    0x0007bc5c ldr r3, [r3]                              |     r3 = *(0xf7a22);
    0x0007bc5e str r3, [r7, 4]                           |     var_4h_2 = r3;
    0x0007bc60 mov.w r3, 0                               |     r3 = 0;
    0x0007bc64 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0007bc66 beq.w 0x7bd72                             |         goto label_2;
                                                         |     }
    0x0007bc6a mov r4, r1                                |     r4 = r1;
    0x0007bc6c cmp r1, 0                                 |     
                                                         |     if (r1 == 0) {
    0x0007bc6e beq.w 0x7bd86                             |         goto label_3;
                                                         |     }
    0x0007bc72 mov r5, r0                                |     r5 = r0;
    0x0007bc74 bl 0x70bf8                                |     r0 = fcn_00070bf8 ();
    0x0007bc78 cmp r0, 6                                 |     
                                                         |     if (r0 > 6) {
    0x0007bc7a bgt 0x7bd44                               |         goto label_4;
                                                         |     }
                                                         | label_1:
    0x0007bc7c mov r0, r5                                |     r0 = r5;
    0x0007bc7e blx 0x8f38                                |     r0 = fcn_00008f38 ();
    0x0007bc82 add.w r3, r0, 0xb                         |     r3 = r0 + 0xb;
    0x0007bc86 cmp.w r3, 0x400000                        |     
                                                         |     if (r3 > 0x400000) {
    0x0007bc8a bhi.w 0x7bd9a                             |         goto label_5;
                                                         |     }
    0x0007bc8e ldr r2, [pc, 0x140]                       |     
    0x0007bc90 add.w r3, r0, 0x12                        |     r3 = r0 + 0x12;
    0x0007bc94 bic r3, r3, 7                             |     r3 = BIT_MASK (r3, 7);
    0x0007bc98 sub.w sp, sp, r3                          |     
    0x0007bc9c add r2, pc                                |     r2 = 0xf7a72;
    0x0007bc9e add r6, sp, 0x18                          |     r6 += var_18h;
    0x0007bca0 ldm r2, {r0, r1, r2}                      |     r0 = *(r2);
                                                         |     r1 = *((r2 + 4));
                                                         |     r2 = *((r2 + 8));
    0x0007bca2 mov r3, r6                                |     r3 = r6;
    0x0007bca4 stm r3!, {r0, r1}                         |     *(r3!) = r0;
                                                         |     *((r3! + 4)) = r1;
    0x0007bca6 mov r1, r5                                |     r1 = r5;
    0x0007bca8 strh r2, [r3]                             |     *(r3) = r2;
    0x0007bcaa add.w r0, sp, 0x22                        |     r0 += var_22h;
    0x0007bcae blx 0x9050                                |     fcn_00009050 ();
    0x0007bcb2 movs r1, 1                                |     r1 = 1;
    0x0007bcb4 mov r0, r6                                |     r0 = r6;
    0x0007bcb6 movt r1, 8                                |     r1 = (r1 & 0xFFFF) | 0x80000;
    0x0007bcba blx 0x908c                                |     r0 = fcn_0000908c ();
    0x0007bcbe subs r5, r0, 0                            |     r5 = r0 - 0;
                                                         |     if (r5 < r0) {
    0x0007bcc0 blt 0x7bd3a                               |         goto label_6;
                                                         |     }
    0x0007bcc2 ldr.w r8, [pc, 0x110]                     |     
    0x0007bcc6 mov r0, r4                                |     r0 = r4;
    0x0007bcc8 add r8, pc                                |     r8 = 0xf7aa2;
    0x0007bcca mov r1, r8                                |     r1 = r8;
    0x0007bccc bl 0x80428                                |     r0 = fcn_00080428 (r0, r1);
    0x0007bcd0 mov r6, r0                                |     r6 = r0;
    0x0007bcd2 mov r0, r4                                |     r0 = r4;
    0x0007bcd4 blx 0x8f38                                |     fcn_00008f38 ();
    0x0007bcd8 cbz r6, 0x7bd16                           |     
                                                         |     while (1) {
    0x0007bcda mov r0, r4                                |         r0 = r4;
    0x0007bcdc blx 0x8f38                                |         fcn_00008f38 ();
    0x0007bce0 mov r1, r4                                |         r1 = r4;
    0x0007bce2 mov r2, r0                                |         r2 = r0;
    0x0007bce4 mov r0, r5                                |         r0 = r5;
    0x0007bce6 blx 0x8dd0                                |         r0 = fcn_00008dd0 ();
    0x0007bcea cmp r0, 0                                 |         
    0x0007bcec it ge                                     |         
                                                         |         if (r0 < 0) {
    0x0007bcee movge r4, 0                               |             r4 = 0;
                                                         |         }
                                                         |         if (r0 < 0) {
    0x0007bcf0 blt 0x7bd3a                               |             goto label_6;
                                                         |         }
                                                         | label_0:
    0x0007bcf2 mov r0, r5                                |         r0 = r5;
    0x0007bcf4 bl 0x69a04                                |         fcn_00069a04 (r0, r1, r2, r3);
    0x0007bcf8 ldr r2, [pc, 0xdc]                        |         
    0x0007bcfa ldr r3, [pc, 0xd0]                        |         r3 = *(0x7bdce);
    0x0007bcfc add r2, pc                                |         r2 = 0xf7ad8;
    0x0007bcfe ldr r3, [r2, r3]                          |         r3 = *(0xf7ad8);
    0x0007bd00 ldr r2, [r3]                              |         r2 = *(0xf7ad8);
    0x0007bd02 ldr r3, [r7, 4]                           |         r3 = var_4h_2;
    0x0007bd04 eors r2, r3                               |         r2 ^= r3;
    0x0007bd06 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0007bd0a bne 0x7bdc2                               |             goto label_7;
                                                         |         }
    0x0007bd0c mov r0, r4                                |         r0 = r4;
    0x0007bd0e adds r7, 8                                |         r7 += 8;
    0x0007bd10 mov sp, r7                                |         
    0x0007bd12 pop.w {r4, r5, r6, r7, r8, pc}            |         
    0x0007bd16 adds r3, r0, 2                            |         r3 = r0 + 2;
    0x0007bd18 cmp.w r3, 0x400000                        |         
                                                         |         if (r3 > 0x400000) {
    0x0007bd1c bhi 0x7bdae                               |             goto label_8;
                                                         |         }
    0x0007bd1e adds r0, 9                                |         r0 += 9;
    0x0007bd20 mov r1, r4                                |         r1 = r4;
    0x0007bd22 bic r3, r0, 7                             |         r3 = BIT_MASK (r0, 7);
    0x0007bd26 sub.w sp, sp, r3                          |         
    0x0007bd28 lsrs r3, r0, 0x14                         |         r3 = r0 >> 0x14;
    0x0007bd2a add r0, sp, 0x18                          |         r0 += var_18h;
    0x0007bd2c mov r4, r0                                |         r4 = r0;
    0x0007bd2e blx 0x8c38                                |         fcn_00008c38 ();
    0x0007bd32 ldrh.w r3, [r8]                           |         r3 = *(r8);
    0x0007bd36 strh r3, [r0]                             |         *(r0) = r3;
    0x0007bd38 b 0x7bcda                                 |         
                                                         |     }
                                                         | label_6:
    0x0007bd3a blx 0x9628                                |     r0 = fcn_00009628 ();
    0x0007bd3e ldr r4, [r0]                              |     r4 = *(r0);
    0x0007bd40 rsbs r4, r4, 0                            |     r4 -= ;
    0x0007bd42 b 0x7bcf2                                 |     goto label_0;
                                                         | label_4:
    0x0007bd44 ldr r1, [pc, 0x94]                        |     
    0x0007bd46 mov r0, r4                                |     r0 = r4;
    0x0007bd48 ldr r6, [pc, 0x94]                        |     
    0x0007bd4a add r1, pc                                |     r1 = 0xf7b2a;
    0x0007bd4c blx 0x9488                                |     fcn_00009488 ();
    0x0007bd50 ldr r2, [pc, 0x90]                        |     
    0x0007bd52 add r6, pc                                |     r6 = 0xf7b36;
    0x0007bd54 ldr r3, [pc, 0x90]                        |     
    0x0007bd56 movs r1, 0                                |     r1 = 0;
    0x0007bd58 strd r0, r4, [sp, 0xc]                    |     __asm ("strd r0, r4, [var_ch]");
    0x0007bd5c movs r0, 7                                |     r0 = 7;
    0x0007bd5e add r2, pc                                |     r2 = 0xf7b46;
    0x0007bd60 str r5, [sp, 8]                           |     var_8h = r5;
    0x0007bd62 add r3, pc                                |     r3 = 0xf7b4e;
    0x0007bd64 adds r2, 7                                |     r2 += 7;
    0x0007bd66 str r3, [sp, 4]                           |     var_4h = r3;
    0x0007bd68 movs r3, 0x34                             |     r3 = 0x34;
    0x0007bd6a str r6, [sp]                              |     *(sp) = r6;
    0x0007bd6c bl 0x71448                                |     fcn_00071448 ();
    0x0007bd70 b 0x7bc7c                                 |     goto label_1;
                                                         | label_2:
    0x0007bd72 ldr r1, [pc, 0x78]                        |     
    0x0007bd74 movs r2, 0x31                             |     r2 = 0x31;
    0x0007bd76 ldr r3, [pc, 0x78]                        |     
    0x0007bd78 ldr r0, [pc, 0x78]                        |     
    0x0007bd7a add r1, pc                                |     r1 = 0xf7b6c;
    0x0007bd7c add r3, pc                                |     r3 = 0xf7b72;
    0x0007bd7e adds r1, 7                                |     r1 += 7;
    0x0007bd80 add r0, pc                                |     r0 = 0xf7b78;
    0x0007bd82 bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
                                                         | label_3:
    0x0007bd86 ldr r1, [pc, 0x70]                        |     
    0x0007bd88 movs r2, 0x32                             |     r2 = 0x32;
    0x0007bd8a ldr r3, [pc, 0x70]                        |     
    0x0007bd8c ldr r0, [pc, 0x70]                        |     
    0x0007bd8e add r1, pc                                |     r1 = 0xf7b8c;
    0x0007bd90 add r3, pc                                |     r3 = 0xf7b92;
    0x0007bd92 adds r1, 7                                |     r1 += 7;
    0x0007bd94 add r0, pc                                |     r0 = 0xf7b98;
    0x0007bd96 bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
                                                         | label_5:
    0x0007bd9a ldr r1, [pc, 0x68]                        |     
    0x0007bd9c movs r2, 0x36                             |     r2 = 0x36;
    0x0007bd9e ldr r3, [pc, 0x68]                        |     
    0x0007bda0 ldr r0, [pc, 0x68]                        |     
    0x0007bda2 add r1, pc                                |     r1 = 0xf7bac;
    0x0007bda4 add r3, pc                                |     r3 = 0xf7bb2;
    0x0007bda6 adds r1, 7                                |     r1 += 7;
    0x0007bda8 add r0, pc                                |     r0 = 0xf7bb8;
    0x0007bdaa bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
                                                         | label_8:
    0x0007bdae ldr r1, [pc, 0x60]                        |     
    0x0007bdb0 movs r2, 0x3c                             |     r2 = 0x3c;
    0x0007bdb2 ldr r3, [pc, 0x60]                        |     
    0x0007bdb4 ldr r0, [pc, 0x60]                        |     
    0x0007bdb6 add r1, pc                                |     r1 = 0xf7bcc;
    0x0007bdb8 add r3, pc                                |     r3 = 0xf7bd2;
    0x0007bdba adds r1, 7                                |     r1 += 7;
    0x0007bdbc add r0, pc                                |     r0 = 0xf7bd8;
    0x0007bdbe bl 0x71518                                |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                         | label_7:
    0x0007bdc2 blx 0x927c                                |     fprintf_chk ()
    0x0007bdc6 nop                                       |     
    0x0007bdc8 ldm r6, {r1, r2, r3, r5, r6}              |     r1 = *(r6);
                                                         |     r2 = *((r6 + 4));
                                                         |     r3 = *((r6 + 8));
                                                         |     r5 = *((r6 + 12));
                                                         |     r6 = *((r6 + 16));
    0x0007bdca movs r4, r0                               |     r4 = r0;
    0x0007bdcc lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x0007bdce movs r0, r0                               |     
    0x0007bdd0 push {r2, r3, r4, r5, r6, r7}             |     
    0x0007bdd2 movs r2, r0                               |     r2 = r0;
    0x0007bdd4 adds r0, r1, r3                           |     r0 = r1 + r3;
    0x0007bdd6 movs r2, r0                               |     r2 = r0;
    0x0007bdd8 ldm r5!, {r3, r6, r7}                     |     r3 = *(r5!);
                                                         |     r6 = *((r5! + 4));
                                                         |     r7 = *((r5! + 8));
    0x0007bdda movs r4, r0                               |     r4 = r0;
                                                         |     if (r4 >= r0) {
    0x0007bddc bls 0x7bdf4                               |         
    0x0007bdde movs r1, r0                               |         r1 = r0;
    0x0007bde0 push {r1, r2, r3, r5, r6}                 |         
    0x0007bde2 movs r2, r0                               |         r2 = r0;
    0x0007bde4 push {r1}                                 |         
    0x0007bde6 movs r2, r0                               |         r2 = r0;
    0x0007bde8 push {r1, r2, r3, r4}                     |         
    0x0007bdea movs r2, r0                               |         r2 = r0;
                                                         |         if (r6 == 0) {
    0x0007bdec cbz r6, 0x7be68                           |             goto label_9;
                                                         |         }
    0x0007bdee movs r2, r0                               |         r2 = r0;
    0x0007bdf0 push {r2, r4, r5}                         |         
    0x0007bdf2 movs r2, r0                               |         r2 = r0;
                                                         |     }
    0x0007bdf4 ldrb r0, [r3, r7]                         |     r0 = *((r3 + r7));
    0x0007bdf6 movs r0, r0                               |     
                                                         |     if (r2 != 0) {
    0x0007bdf8 cbz r2, 0x7be70                           |         
    0x0007bdfa movs r2, r0                               |         r2 = r0;
    0x0007bdfc push {r5}                                 |         
    0x0007bdfe movs r2, r0                               |         r2 = r0;
    0x0007be00 str r0, [sp, 0x300]                       |         *(arg_300h) = r0;
    0x0007be02 movs r0, r0                               |         
                                                         |         if (r6 == 0) {
    0x0007be04 cbz r6, 0x7be76                           |             goto label_10;
                                                         |         }
    0x0007be06 movs r2, r0                               |         r2 = r0;
    0x0007be08 push {r2, r3}                             |         
    0x0007be0a movs r2, r0                               |         r2 = r0;
    0x0007be0c invalid                                   |         
                                                         | label_9:
    0x0007be68 movs r2, r1                               |         r2 = r1;
    0x0007be6a blx 0x9050                                |         fcn_00009050 ();
    0x0007be6e movs r3, 0                                |         r3 = 0;
                                                         |     }
    0x0007be70 mov r2, r5                                |     r2 = r5;
    0x0007be72 mov.w r1, -1                              |     r1 = -1;
                                                         | label_10:
    0x0007be76 mov r0, r6                                |     r0 = r6;
    0x0007be78 bl 0x6a7bc                                |     fcn_0006a7bc (r0, r1, r2);
    0x0007be7c ldr r2, [pc, 0x64]                        |     
    0x0007be7e ldr r3, [pc, 0x5c]                        |     r3 = *(0x7bede);
    0x0007be80 add r2, pc                                |     r2 = 0xf7d68;
    0x0007be82 ldr r3, [r2, r3]                          |     r3 = *(0xf7d68);
    0x0007be84 ldr r2, [r3]                              |     r2 = *(0xf7d68);
    0x0007be86 ldr r3, [r7, 4]                           |     r3 = *((r7 + 4));
    0x0007be88 eors r2, r3                               |     r2 ^= r3;
    0x0007be8a mov.w r3, 0                               |     r3 = 0;
                                                         |     if (r2 == r3) {
    0x0007be8e bne 0x7bed2                               |         
    0x0007be90 adds r7, 0xc                              |         r7 += 0xc;
    0x0007be92 mov sp, r7                                |         
    0x0007be94 pop {r4, r5, r6, r7, pc}                  |         
                                                         |     }
    0x0007bed2 blx 0x927c                                |     fprintf_chk ()
    0x0007bed6 nop                                       |     
    0x0007bed8 ldm r4!, {r5, r7}                         |     r5 = *(r4!);
                                                         |     r7 = *((r4! + 4));
    0x0007beda movs r4, r0                               |     r4 = r0;
    0x0007bedc lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x0007bede movs r0, r0                               |     
                                                         |     if (r0 == 0) {
    0x0007bee0 cbz r0, 0x7bf34                           |         void (*0x7bf34)() ();
                                                         |     }
    0x0007bee2 movs r2, r0                               |     r2 = r0;
    0x0007bee4 ldm r4!, {r2, r6}                         |     r2 = *(r4!);
                                                         |     r6 = *((r4! + 4));
    0x0007bee6 movs r4, r0                               |     r4 = r0;
    0x0007bee8 uxtb r2, r0                               |     r2 = (int8_t) r0;
    0x0007beea movs r2, r0                               |     r2 = r0;
                                                         |     if (r4 == 0) {
    0x0007beec cbz r4, 0x7bf30                           |         void (*0x7bf30)() ();
                                                         |     }
    0x0007beee movs r2, r0                               |     r2 = r0;
    0x0007bef0 ldrb r4, [r6, r2]                         |     r4 = *((r6 + r2));
    0x0007bef2 movs r0, r0                               |     
    0x0007bef4 uxth r6, r5                               |     r6 = (int16_t) r5;
    0x0007bef6 movs r2, r0                               |     r2 = r0;
    0x0007bef8 uxtb r0, r6                               |     r0 = (int8_t) r6;
    0x0007befa movs r2, r0                               |     r2 = r0;
    0x0007befc strh r4, [r7, 0x2a]                       |     *((r7 + 0x2a)) = r4;
    0x0007befe movs r0, r0                               |     
    0x0007bf00 uxth r2, r3                               |     r2 = (int16_t) r3;
    0x0007bf02 movs r2, r0                               |     r2 = r0;
    0x0007bf04 uxtb r4, r3                               |     r4 = (int8_t) r3;
    0x0007bf06 movs r2, r0                               |     r2 = r0;
    0x0007bf08 invalid                                   |     
                                                         | }


r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7bf0c).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7c0c0 */
                                                     | #include <stdint.h>
                                                     |  
                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                     |  
    ; (fcn) fcn.0007c0c0 ()                          | void fcn_0007c0c0 (uint32_t arg1, int16_t arg2) {
                                                     |     int16_t var_ch;
                                                     |     int16_t var_10h;
                                                     |     int16_t var_a4h;
                                                     |     uint32_t var_0h_2;
                                                     |     int32_t var_0h_3;
                                                     |     int16_t var_8h_3;
                                                     |     int16_t var_8h_2;
                                                     |     int32_t var_bh;
                                                     |     int8_t var_fh;
                                                     |     int16_t var_8h;
                                                     |     int32_t var_4h;
                                                     |     int16_t var_8h_4;
                                                     |     int32_t var_ch_2;
                                                     |     int16_t var_0h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0007c0c0 strdlt fp, ip, [r7], r0               |     __asm ("strdlt fp, ip, [r7], r0");
    0x0007c0c4 ldr r4, [pc, 0xf4]                    |     
    0x0007c0c6 cmp r0, 0                             |     
    0x0007c0c8 add r7, sp, 8                         |     r7 += var_8h;
    0x0007c0ca ldr r2, [pc, 0xf4]                    |     r2 = *(0x7c1c2);
    0x0007c0cc mov.w r3, 0                           |     r3 = 0;
    0x0007c0d0 add r4, pc                            |     r4 = 0xf8290;
    0x0007c0d2 ldr r2, [r4, r2]                      |     
    0x0007c0d4 ldr r2, [r2]                          |     r2 = *(0xf8290);
    0x0007c0d6 str r2, [r7, 0xc]                     |     var_ch_2 = r2;
    0x0007c0d8 mov.w r2, 0                           |     r2 = 0;
    0x0007c0dc str r3, [r7, 4]                       |     var_4h = r3;
                                                     |     if (r0 < 0) {
    0x0007c0de blt 0x7c196                           |         goto label_1;
                                                     |     }
    0x0007c0e0 mov r5, r1                            |     r5 = r1;
                                                     |     if (r0 == 0) {
    0x0007c0e2 beq 0x7c176                           |         goto label_2;
                                                     |     }
    0x0007c0e4 ldr r1, [pc, 0xdc]                    |     
    0x0007c0e6 sub sp, 0x18                          |     
    0x0007c0e8 ldr r3, [pc, 0xdc]                    |     
    0x0007c0ea add r4, sp, 8                         |     r4 += var_8h_3;
    0x0007c0ec movs r2, 0x18                         |     r2 = 0x18;
    0x0007c0ee add r1, pc                            |     r1 = 0xf82b6;
    0x0007c0f0 strd r0, r1, [sp]                     |     __asm ("strd r0, r1, [sp]");
    0x0007c0f4 add r3, pc                            |     r3 = 0xf82c0;
    0x0007c0f6 movs r1, 1                            |     r1 = 1;
    0x0007c0f8 mov r0, r4                            |     r0 = r4;
    0x0007c0fa blx 0x9494                            |     fcn_00009494 ();
                                                     |     do {
    0x0007c0fe mov r0, r4                            |         r0 = r4;
    0x0007c100 adds r1, r7, 4                        |         r1 += var_4h;
    0x0007c102 bl 0x6b320                            |         fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x0007c106 subs r4, r0, 0                        |         r4 -= var_8h_2;
    0x0007c108 ldr r6, [r7, 4]                       |         r6 = var_4h;
                                                     |         if (r4 >= var_8h_2) {
    0x0007c10a blt 0x7c154                           |             
    0x0007c10c movs r1, 0x29                         |             r1 = 0x29;
    0x0007c10e mov r0, r6                            |             r0 = r6;
    0x0007c110 blx 0x8c90                            |             r0 = fcn_00008c90 ();
    0x0007c114 cmp r0, 0                             |             
                                                     |             if (r0 == 0) {
    0x0007c116 beq 0x7c1b2                           |                 goto label_3;
                                                     |             }
    0x0007c118 ldr r1, [pc, 0xb0]                    |             
    0x0007c11a add.w r2, r7, 8                       |             r2 += var_8h_4;
    0x0007c11e adds r0, 1                            |             r0++;
    0x0007c120 add r1, pc                            |             r1 = 0xf82f0;
    0x0007c122 blx 0x8b20                            |             r0 = kmod_list_next ();
    0x0007c126 cmp r0, 1                             |             
    0x0007c128 itt ne                                |             
                                                     |             if (r0 == 1) {
    0x0007c12a ldrne r6, [r7, 4]                     |                 r6 = *((r7 + 4));
                                                     |             }
                                                     |             if (r0 == 1) {
    0x0007c12c mvnne r4, 4                           |                 r4 = ~4;
                                                     |             }
                                                     |             if (r0 != 1) {
    0x0007c130 bne 0x7c154                           |                 goto label_0;
                                                     |             }
    0x0007c132 ldrd r6, r2, [r7, 4]                  |             __asm ("ldrd r6, r2, [var_4h]");
    0x0007c136 movs r0, 0                            |             r0 = 0;
    0x0007c138 ubfx r3, r2, 8, 0xc                   |             r3 = (r2 >> 8) & ((1 << 0xc) - 1);
    0x0007c13c lsrs r1, r2, 0xc                      |             r1 = r2 >> 0xc;
    0x0007c13e bic r1, r1, 0xff                      |             r1 = BIT_MASK (r1, 0xff);
    0x0007c142 orrs r3, r1                           |             r3 |= r1;
    0x0007c144 uxtb r1, r2                           |             r1 = (int8_t) r2;
    0x0007c146 orrs r3, r1                           |             r3 |= r1;
                                                     |             if (r3 == r1) {
    0x0007c148 beq 0x7c1ac                           |                 goto label_4;
                                                     |             }
    0x0007c14a mov r4, r5                            |             r4 = r5;
                                                     |             if (r5 == 0) {
    0x0007c14c cbz r5, 0x7c154                       |                 goto label_0;
                                                     |             }
    0x0007c14e mov r4, r0                            |             r4 = r0;
    0x0007c150 strd r2, r0, [r5]                     |             __asm ("strd r2, r0, [r5]");
                                                     |         }
                                                     | label_0:
    0x0007c154 mov r0, r6                            |         r0 = r6;
    0x0007c156 blx 0x8dac                            |         fcn_00008dac ();
    0x0007c15a ldr r2, [pc, 0x74]                    |         
    0x0007c15c ldr r3, [pc, 0x60]                    |         r3 = *(0x7c1c0);
    0x0007c15e add r2, pc                            |         r2 = 0xf8334;
    0x0007c160 ldr r3, [r2, r3]                      |         r3 = *(0xf8334);
    0x0007c162 ldr r2, [r3]                          |         r2 = *(0xf8334);
    0x0007c164 ldr r3, [r7, 0xc]                     |         r3 = var_ch_2;
    0x0007c166 eors r2, r3                           |         r2 ^= r3;
    0x0007c168 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0007c16c bne 0x7c1b8                           |             goto label_5;
                                                     |         }
    0x0007c16e mov r0, r4                            |         r0 = r4;
    0x0007c170 adds r7, 0x14                         |         r7 += 0x14;
    0x0007c172 mov sp, r7                            |         
    0x0007c174 pop {r4, r5, r6, r7, pc}              |         
                                                     | label_2:
    0x0007c176 ldr r3, [pc, 0x5c]                    |         
    0x0007c178 sub sp, 0x10                          |         
    0x0007c17a ldr r6, [pc, 0x5c]                    |         
    0x0007c17c add r4, sp, 8                         |         r4 += var_8h_2;
    0x0007c17e add r3, pc                            |         r3 = 0xf8358;
    0x0007c180 ldm.w r3, {r0, r1, r2}                |         r0 = *(r3);
                                                     |         r1 = *((r3 + 4));
                                                     |         r2 = *((r3 + 8));
    0x0007c184 add r6, pc                            |         r6 = 0xf8362;
    0x0007c186 stm.w r4, {r0, r1, r2}                |         *(r4) = r0;
                                                     |         *((r4 + 4)) = r1;
                                                     |         *((r4 + 8)) = r2;
    0x0007c18a ldrb r2, [r6, 4]                      |         r2 = *((r6 + 4));
    0x0007c18c ldr r0, [r6]                          |         r0 = *(0xf8362);
    0x0007c18e strb r2, [r4, 0xf]                    |         var_fh = r2;
    0x0007c190 str.w r0, [r4, 0xb]                   |         __asm ("str.w r0, [var_bh]");
    0x0007c194 b 0x7c0fe                             |         
                                                     |     } while (1);
                                                     | label_1:
    0x0007c196 ldr r1, [pc, 0x44]                    |     
    0x0007c198 movw r2, 0x3a5                        |     r2 = 0x3a5;
    0x0007c19c ldr r3, [pc, 0x40]                    |     
    0x0007c19e ldr r0, [pc, 0x44]                    |     
    0x0007c1a0 add r1, pc                            |     r1 = 0xf8382;
    0x0007c1a2 add r3, pc                            |     r3 = 0xf8386;
    0x0007c1a4 adds r1, 7                            |     r1 += 7;
    0x0007c1a6 add r0, pc                            |     r0 = 0xf8390;
    0x0007c1a8 bl 0x71518                            |     fcn_00071518 (r0, r1, r2, r3);
                                                     | label_4:
    0x0007c1ac mvn r4, 5                             |     r4 = ~5;
    0x0007c1b0 b 0x7c154                             |     goto label_0;
                                                     | label_3:
    0x0007c1b2 mvn r4, 4                             |     r4 = ~4;
    0x0007c1b6 b 0x7c154                             |     goto label_0;
                                                     | label_5:
    0x0007c1b8 blx 0x927c                            |     fprintf_chk ()
    0x0007c1bc ldm r1!, {r2, r4, r5, r6, r7}         |     r2 = *(r1!);
                                                     |     r4 = *((r1! + 4));
                                                     |     r5 = *((r1! + 8));
                                                     |     r6 = *((r1! + 12));
                                                     |     r7 = *((r1! + 16));
    0x0007c1be movs r4, r0                           |     r4 = r0;
    0x0007c1c0 lsls r0, r0, 0x13                     |     r0 <<= 0x13;
    0x0007c1c2 movs r0, r0                           |     
    0x0007c1c4 adr r0, 0x308                         |     r0 = case.0x584aa.7;
    0x0007c1c6 movs r2, r0                           |     r2 = r0;
    0x0007c1c8 ldrh r4, [r1, 0x14]                   |     r4 = *((r1 + 0x14));
    0x0007c1ca movs r1, r0                           |     r1 = r0;
                                                     |     if (r0 == 0) {
    0x0007c1cc cbz r0, 0x7c1f2                       |         void (*0x7c1f2)() ();
                                                     |     }
    0x0007c1ce movs r2, r0                           |     r2 = r0;
    0x0007c1d0 ldm r1, {r1, r2, r5, r6}              |     r1 = *(r1);
                                                     |     r2 = *((r1 + 4));
                                                     |     r5 = *((r1 + 8));
                                                     |     r6 = *((r1 + 12));
    0x0007c1d2 movs r4, r0                           |     r4 = r0;
    0x0007c1d4 ldrh r6, [r5, 0xe]                    |     r6 = *((r5 + 0xe));
    0x0007c1d6 movs r1, r0                           |     r1 = r0;
    0x0007c1d8 adr r0, 0xb0                          |     r0 = 0xb0;
    0x0007c1da movs r2, r0                           |     r2 = r0;
    0x0007c1dc sub sp, 0x180                         |     
    0x0007c1de movs r2, r0                           |     r2 = r0;
                                                     |     if (r2 == 0) {
    0x0007c1e0 cbz r2, 0x7c21c                       |         void (*0x7c21c)() ();
                                                     |     }
    0x0007c1e2 movs r2, r0                           |     r2 = r0;
    0x0007c1e4 lsls r6, r0, 0x1c                     |     r6 = r0 << 0x1c;
    0x0007c1e6 movs r2, r0                           |     r2 = r0;
                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7c1e8 */
                                                 | #include <stdint.h>
                                                 |  
                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                 |  
    ; (fcn) fcn.0007c1e8 ()                      | void fcn_0007c1e8 (int16_t arg2, int16_t arg3) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     int16_t var_ch;
                                                 |     int16_t var_10h;
                                                 |     int16_t var_14h;
                                                 |     int16_t var_18h;
                                                 |     int16_t var_28h;
                                                 |     int16_t var_38h;
                                                 |     int32_t var_38h_2;
                                                 |     int16_t var_84h;
                                                 |     int16_t var_a4h;
                                                 |     r1 = arg2;
                                                 |     r2 = arg3;
    0x0007c1e8 push {r4, r5, r6, r7, lr}         |     
    0x0007c1ea mov r6, r2                        |     r6 = r2;
    0x0007c1ec ldr r4, [pc, 0x110]               |     r4 = *(0x7c300);
    0x0007c1ee sub sp, 0xac                      |     
    0x0007c1f0 movs r3, 0                        |     r3 = 0;
    0x0007c1f2 mov r5, r1                        |     r5 = r1;
    0x0007c1f4 ldr r2, [pc, 0x10c]               |     
    0x0007c1f6 add r1, sp, 0x10                  |     r1 += var_10h;
    0x0007c1f8 add r4, pc                        |     r4 += pc;
    0x0007c1fa ldr r2, [r4, r2]                  |     r2 = *((r4 + r2));
    0x0007c1fc ldr r2, [r2]                      |     r2 = *(0x7c304);
    0x0007c1fe str r2, [sp, 0xa4]                |     var_a4h = r2;
    0x0007c200 mov.w r2, 0                       |     r2 = 0;
    0x0007c204 str r3, [sp, 0xc]                 |     var_ch = r3;
    0x0007c206 bl 0x7c0c0                        |     r0 = fcn_0007c0c0 (r0, r1);
    0x0007c20a subs r4, r0, 0                    |     r4 = r0 - 0;
                                                 |     if (r4 < r0) {
    0x0007c20c blt 0x7c254                       |         goto label_0;
                                                 |     }
    0x0007c20e add r7, sp, 0xc                   |     r7 += var_ch;
    0x0007c210 ldrd r2, r3, [sp, 0x10]           |     __asm ("ldrd r2, r3, [var_10h]");
    0x0007c214 mov.w r0, 0x2000                  |     r0 = 0x2000;
    0x0007c218 str r7, [sp]                      |     *(sp) = r7;
    0x0007c21a invalid                           |     
    0x0007c21c strt r1, [r1, 4]                  |     __asm ("strt r1, [var_14h]");
    0x0007c220 blt 0x7c250                       |     
                                                 |     while (r4 >= r0) {
    0x0007c222 ldr r0, [sp, 0xc]                 |         r0 = var_ch;
    0x0007c224 mov r7, r0                        |         r7 = r0;
                                                 | label_2:
    0x0007c226 ldr r1, [pc, 0xe0]                |         
    0x0007c228 movs r2, 1                        |         r2 = 1;
    0x0007c22a add r1, pc                        |         r1 = 0xf8538;
    0x0007c22c bl 0x75208                        |         r0 = fcn_00075208 (r0, r1, r2);
    0x0007c230 cmp r0, 0                         |         
                                                 |         if (r0 == 0) {
    0x0007c232 beq 0x7c2f0                       |             goto label_4;
                                                 |         }
                                                 |         if (r6 != 0) {
    0x0007c234 cbz r6, 0x7c240                   |             
    0x0007c236 blx 0x9200                        |             r0 = fcn_00009200 ();
    0x0007c23a cmp r0, 0                         |             
                                                 |             if (r0 == 0) {
    0x0007c23c beq 0x7c2fa                       |                 goto label_5;
                                                 |             }
    0x0007c23e str r0, [r6]                      |             *(r6) = r0;
                                                 |         }
    0x0007c240 mov r4, r5                        |         r4 = r5;
                                                 |         if (r5 != 0) {
    0x0007c242 cbz r5, 0x7c256                   |             
    0x0007c244 ldrd r2, r3, [sp, 0x10]           |             __asm ("ldrd r2, r3, [var_10h]");
    0x0007c248 movs r4, 0                        |             r4 = 0;
    0x0007c24a strd r2, r3, [r5]                 |             __asm ("strd r2, r3, [r5]");
    0x0007c24e b 0x7c256                         |             goto label_3;
    0x0007c250 adds r3, r4, 2                    |             r3 = r4 + 2;
                                                 |             if (r3 == r4) {
    0x0007c252 beq 0x7c276                       |                 goto label_6;
                                                 |             }
                                                 | label_0:
    0x0007c254 ldr r7, [sp, 0xc]                 |             r7 = var_ch;
                                                 |         }
                                                 | label_3:
    0x0007c256 mov r0, r7                        |         r0 = r7;
    0x0007c258 blx 0x8dac                        |         fcn_00008dac ();
    0x0007c25c ldr r2, [pc, 0xac]                |         
    0x0007c25e ldr r3, [pc, 0xa4]                |         r3 = *(0x7c306);
    0x0007c260 add r2, pc                        |         r2 = 0xf8570;
    0x0007c262 ldr r3, [r2, r3]                  |         r3 = *(0xf8570);
    0x0007c264 ldr r2, [r3]                      |         r2 = *(0xf8570);
    0x0007c266 ldr r3, [sp, 0xa4]                |         r3 = var_a4h;
    0x0007c268 eors r2, r3                       |         r2 ^= r3;
    0x0007c26a mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0007c26e bne 0x7c2f6                       |             goto label_7;
                                                 |         }
    0x0007c270 mov r0, r4                        |         r0 = r4;
    0x0007c272 add sp, 0xac                      |         
    0x0007c274 pop {r4, r5, r6, r7, pc}          |         
                                                 | label_6:
    0x0007c276 ldrd r2, r1, [sp, 0x10]           |         __asm ("ldrd r2, r1, [var_10h]");
    0x0007c27a add r4, sp, 0x84                  |         r4 += var_84h;
    0x0007c27c ldr r3, [pc, 0x90]                |         
    0x0007c27e mov r0, r4                        |         r0 = r4;
    0x0007c280 add r3, pc                        |         r3 = 0xf8594;
    0x0007c282 str r3, [sp]                      |         *(sp) = r3;
    0x0007c284 lsrs r3, r2, 0xc                  |         r3 = r2 >> 0xc;
    0x0007c286 uxtb r2, r2                       |         r2 = (int8_t) r2;
    0x0007c288 orr.w r3, r3, r1, lsl 20          |         r3 |= (r1 << 20);
    0x0007c28c bic r3, r3, 0xff                  |         r3 = BIT_MASK (r3, 0xff);
    0x0007c290 orrs r2, r3                       |         r2 |= r3;
    0x0007c292 movs r3, 0x20                     |         r3 = 0x20;
    0x0007c294 mov r1, r3                        |         r1 = r3;
    0x0007c296 str r2, [sp, 4]                   |         var_4h = r2;
    0x0007c298 movs r2, 1                        |         r2 = 1;
    0x0007c29a blx 0x9110                        |         fcn_00009110 ();
    0x0007c29e add r1, sp, 0x18                  |         r1 += var_18h;
    0x0007c2a0 mov r0, r4                        |         r0 = r4;
    0x0007c2a2 blx 0x8e3c                        |         r0 = fcn_00008e3c ();
    0x0007c2a6 cmp r0, 0                         |         
                                                 |         if (r0 < 0) {
    0x0007c2a8 blt 0x7c2ca                       |             goto label_8;
                                                 |         }
    0x0007c2aa ldr r3, [sp, 0x28]                |         r3 = var_28h;
    0x0007c2ac ldr r2, [sp, 0x10]                |         r2 = var_10h;
    0x0007c2ae and r1, r3, 0xf000                |         r1 = r3 & 0xf000;
    0x0007c2b2 ldr r3, [sp, 0x14]                |         r3 = var_14h;
    0x0007c2b4 cmp.w r1, 0x2000                  |         
                                                 |         if (r1 == 0x2000) {
    0x0007c2b8 beq 0x7c2de                       |             goto label_9;
                                                 |         }
                                                 | label_1:
    0x0007c2ba mov.w r0, 0x2000                  |         r0 = 0x2000;
    0x0007c2be str r7, [sp]                      |         *(sp) = r7;
    0x0007c2c0 bl 0x7a22c                        |         r0 = fcn_0007a22c (r0, r1, r2, r3);
    0x0007c2c4 subs r4, r0, 0                    |         r4 = r0 - 0;
    0x0007c2c6 bge 0x7c222                       |         
                                                 |     }
    0x0007c2c8 b 0x7c254                         |     goto label_0;
                                                 | label_8:
    0x0007c2ca blx 0x9628                        |     r0 = fcn_00009628 ();
    0x0007c2ce ldr r4, [r0]                      |     r4 = *(r0);
    0x0007c2d0 cmp r4, 2                         |     
    0x0007c2d2 ite eq                            |     
                                                 |     if (r4 == 2) {
    0x0007c2d4 ldrdeq r2, r3, [sp, 0x10]         |         __asm ("ldrdeq r2, r3, [var_10h]");
                                                 |     }
                                                 |     if (r4 == 2) {
    0x0007c2d8 rsbs r4, r4, 0                    |         r4 -= ;
                                                 |         goto label_10;
                                                 |     }
                                                 |     if (r4 != 2) {
                                                 | label_10:
    0x0007c2da bne 0x7c254                       |         goto label_0;
                                                 |     }
    0x0007c2dc b 0x7c2ba                         |     goto label_1;
                                                 | label_9:
    0x0007c2de ldrd r0, r1, [sp, 0x38]           |     __asm ("ldrd r0, r1, [var_38h]");
    0x0007c2e2 cmp r1, r3                        |     
    0x0007c2e4 it eq                             |     
                                                 |     if (r1 != r3) {
    0x0007c2e6 cmpeq r0, r2                      |         __asm ("cmpeq r0, r2");
                                                 |         goto label_11;
                                                 |     }
                                                 |     if (r1 != r3) {
                                                 | label_11:
    0x0007c2e8 bne 0x7c2ba                       |         goto label_1;
                                                 |     }
    0x0007c2ea ldr r7, [sp, 0xc]                 |     r7 = var_ch;
    0x0007c2ec mov r0, r4                        |     r0 = r4;
    0x0007c2ee b 0x7c226                         |     goto label_2;
                                                 | label_4:
    0x0007c2f0 mvn r4, 0x15                      |     r4 = ~0x15;
    0x0007c2f4 b 0x7c256                         |     goto label_3;
                                                 | label_7:
    0x0007c2f6 blx 0x927c                        |     fprintf_chk ()
                                                 | label_5:
    0x0007c2fa mvn r4, 0xb                       |     r4 = ~0xb;
    0x0007c2fe b 0x7c256                         |     goto label_3;
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7c5e4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0007c5e4 ()                      | void fcn_0007c5e4 (int16_t arg_178h, int16_t arg_1e0h, uint32_t arg1) {
                                                 |     int16_t var_4h;
                                                 |     int16_t var_ch;
                                                 |     r0 = arg1;
    0x0007c5e4 ldr r2, [pc, 0x60]                |     
    0x0007c5e6 cmp r0, 8                         |     
    0x0007c5e8 ldr r3, [pc, 0x60]                |     r3 = *(0x7c64c);
    0x0007c5ea it eq                             |     
                                                 |     if (r0 != 8) {
    0x0007c5ec moveq r0, 0                       |         r0 = 0;
                                                 |     }
    0x0007c5ee push {r4, lr}                     |     
    0x0007c5f0 sub sp, 0x10                      |     
    0x0007c5f2 add r2, pc                        |     r2 = 0xf8c3e;
    0x0007c5f4 ldr r3, [r2, r3]                  |     
    0x0007c5f6 ldr r3, [r3]                      |     r3 = *(0xf8c3e);
    0x0007c5f8 str r3, [sp, 0xc]                 |     var_ch = r3;
    0x0007c5fa mov.w r3, 0                       |     r3 = 0;
                                                 |     if (r0 != 8) {
    0x0007c5fe beq 0x7c606                       |         
    0x0007c600 cmp r0, 9                         |         
    0x0007c602 it eq                             |         
                                                 |         if (r0 == 9) {
    0x0007c604 moveq r0, 7                       |             r0 = 7;
                                                 |             goto label_0;
                                                 |         }
                                                 |     }
                                                 | label_0:
    0x0007c606 add r4, sp, 4                     |     r4 += var_4h;
    0x0007c608 mov r1, r4                        |     r1 = r4;
    0x0007c60a blx 0x8ae4                        |     r0 = sigismember ();
                                                 |     if (r0 == 0) {
    0x0007c60e cbnz r0, 0x7c62e                  |         
    0x0007c610 mov r0, r4                        |         r0 = r4;
    0x0007c612 bl 0x7c590                        |         fcn_0007c590 (r0, r1);
    0x0007c616 ldr r2, [pc, 0x38]                |         
    0x0007c618 ldr r3, [pc, 0x30]                |         r3 = *(0x7c64c);
    0x0007c61a add r2, pc                        |         r2 = 0xf8c70;
    0x0007c61c ldr r3, [r2, r3]                  |         r3 = *(0xf8c70);
    0x0007c61e ldr r2, [r3]                      |         r2 = *(0xf8c70);
    0x0007c620 ldr r3, [sp, 0xc]                 |         r3 = var_ch;
    0x0007c622 eors r2, r3                       |         r2 ^= r3;
    0x0007c624 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0007c628 bne 0x7c642                       |             goto label_1;
                                                 |         }
    0x0007c62a add sp, 0x10                      |         
    0x0007c62c pop {r4, pc}                      |         
                                                 |     }
    0x0007c62e ldr r1, [pc, 0x24]                |     
    0x0007c630 movs r2, 0x35                     |     r2 = 0x35;
    0x0007c632 ldr r3, [pc, 0x24]                |     
    0x0007c634 ldr r0, [pc, 0x24]                |     
    0x0007c636 add r1, pc                        |     r1 = 0xf8c90;
    0x0007c638 add r3, pc                        |     r3 = 0xf8c96;
    0x0007c63a adds r1, 7                        |     r1 += 7;
    0x0007c63c add r0, pc                        |     r0 = 0xf8c9c;
    0x0007c63e bl 0x71518                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                 | label_1:
    0x0007c642 blx 0x927c                        |     fprintf_chk ()
    0x0007c646 nop                               |     
    0x0007c648 stm r4!, {r1, r4, r6, r7}         |     *(r4!) = r1;
                                                 |     *((r4! + 4)) = r4;
                                                 |     *((r4! + 8)) = r6;
                                                 |     *((r4! + 12)) = r7;
    0x0007c64a movs r4, r0                       |     r4 = r0;
    0x0007c64c lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x0007c64e movs r0, r0                       |     
    0x0007c650 stm r4!, {r1, r3, r5, r7}         |     *(r4!) = r1;
                                                 |     *((r4! + 4)) = r3;
                                                 |     *((r4! + 8)) = r5;
                                                 |     *((r4! + 12)) = r7;
    0x0007c652 movs r4, r0                       |     r4 = r0;
    0x0007c654 add r5, sp, 0x178                 |     r5 += arg_178h;
    0x0007c656 movs r2, r0                       |     r2 = r0;
    0x0007c658 sub sp, 0x20                      |     
    0x0007c65a movs r2, r0                       |     r2 = r0;
    0x0007c65c add r5, sp, 0x1e0                 |     r5 += arg_1e0h;
    0x0007c65e movs r2, r0                       |     r2 = r0;
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7cd9c */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.0007cd9c ()                                      | void fcn_0007cd9c (int16_t arg_90h, int16_t arg_98h, int16_t arg_130h, int16_t arg_1c8h, int16_t arg_220h, int16_t arg_3f8h, uint32_t arg1, int16_t arg2) {
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_50h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 | label_9:
    0x0007ca84 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x0007ca88 sub sp, 0x34                                      |     
    0x0007ca8a strd r2, r3, [sp, 8]                              |     __asm ("strd r2, r3, [sp, 8]");
    0x0007ca8e ldr r2, [pc, 0x2cc]                               |     
    0x0007ca90 ldr r3, [pc, 0x2cc]                               |     r3 = *(0x7cd60);
    0x0007ca92 str r1, [sp, 0x1c]                                |     var_1ch = r1;
    0x0007ca94 add r2, pc                                        |     r2 = 0xf97f6;
    0x0007ca96 ldr r3, [r2, r3]                                  |     
    0x0007ca98 ldr r3, [r3]                                      |     r3 = *(0xf97f6);
    0x0007ca9a str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x0007ca9c mov.w r3, 0                                       |     r3 = 0;
    0x0007caa0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0007caa2 beq.w 0x7cd10                                     |         goto label_10;
                                                                 |     }
    0x0007caa6 ldrd r3, r2, [sp, 8]                              |     __asm ("ldrd r3, r2, [var_8h]");
    0x0007caaa orrs r3, r2                                       |     r3 |= r2;
                                                                 |     if (r3 == r2) {
    0x0007caac beq.w 0x7cd26                                     |         goto label_11;
                                                                 |     }
    0x0007cab0 ldr r3, [pc, 0x2b0]                               |     
    0x0007cab2 mov r6, r0                                        |     r6 = r0;
    0x0007cab4 add r3, pc                                        |     r3 = 0xf981c;
    0x0007cab6 mov r1, r3                                        |     r1 = r3;
    0x0007cab8 mov r4, r3                                        |     r4 = r3;
    0x0007caba str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0007cabc blx 0x9428                                        |     fcn_00009428 ();
    0x0007cac0 ldr r1, [pc, 0x2a4]                               |     
    0x0007cac2 add r6, r0                                        |     r6 += r0;
    0x0007cac4 mov r0, r6                                        |     r0 = r6;
    0x0007cac6 add r1, pc                                        |     r1 = 0xf9832;
    0x0007cac8 bl 0x803c0                                        |     r0 = fcn_000803c0 (r0, r1);
    0x0007cacc mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 != 0) {
    0x0007cace cbz r0, 0x7cb0c                                   |         
    0x0007cad0 mov r1, r4                                        |         r1 = r4;
    0x0007cad2 blx 0x9428                                        |         fcn_00009428 ();
    0x0007cad6 ldrb r0, [r5, r0]                                 |         r0 = *((r5 + r0));
    0x0007cad8 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0007cada bne.w 0x7cc04                                     |             goto label_7;
                                                                 |         }
    0x0007cade ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x0007cae0 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0007cae2 beq.w 0x7cc1a                                     |             goto label_8;
                                                                 |         }
    0x0007cae6 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x0007cae8 vmov.i8 d16, 0xff                                 |         __asm ("vmov.i8 d16, 0xff");
    0x0007caec vstr d16, [r3]                                    |         __asm ("vstr d16, [r3]");
                                                                 | label_2:
    0x0007caf0 ldr r2, [pc, 0x278]                               |         
    0x0007caf2 ldr r3, [pc, 0x26c]                               |         r3 = *(0x7cd62);
    0x0007caf4 add r2, pc                                        |         r2 = 0xf9864;
    0x0007caf6 ldr r3, [r2, r3]                                  |         r3 = *(0xf9864);
    0x0007caf8 ldr r2, [r3]                                      |         r2 = *(0xf9864);
    0x0007cafa ldr r3, [sp, 0x2c]                                |         r3 = var_2ch;
    0x0007cafc eors r2, r3                                       |         r2 ^= r3;
    0x0007cafe mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0007cb02 bne.w 0x7cd56                                     |             goto label_12;
                                                                 |         }
    0x0007cb06 add sp, 0x34                                      |         
    0x0007cb08 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 |     }
    0x0007cb0c ldr r3, [pc, 0x260]                               |     
    0x0007cb0e mov r4, r0                                        |     r4 = r0;
    0x0007cb10 mov fp, r0                                        |     
    0x0007cb12 add r3, pc                                        |     r3 = 0xf9886;
    0x0007cb14 str r3, [sp, 0x24]                                |     var_24h = r3;
    0x0007cb16 ldr r3, [pc, 0x25c]                               |     
    0x0007cb18 add r3, pc                                        |     r3 = 0xf9892;
    0x0007cb1a str r3, [sp, 0x20]                                |     var_20h = r3;
                                                                 | label_0:
    0x0007cb1c mov r0, r6                                        |     r0 = r6;
    0x0007cb1e ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x0007cb20 blx 0x9428                                        |     fcn_00009428 ();
    0x0007cb24 ldrb r3, [r6, r0]                                 |     r3 = *((r6 + r0));
    0x0007cb26 add r6, r0                                        |     r6 += r0;
    0x0007cb28 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0007cb2a beq.w 0x7cd3c                                     |         goto label_13;
                                                                 |     }
    0x0007cb2e cmp r3, 0x2d                                      |     
                                                                 |     if (r3 == 0x2d) {
    0x0007cb30 beq 0x7cc1e                                       |         goto label_4;
                                                                 |     }
    0x0007cb32 blx 0x9628                                        |     fcn_00009628 ();
    0x0007cb36 movs r3, 0                                        |     r3 = 0;
    0x0007cb38 mov r5, r0                                        |     r5 = r0;
    0x0007cb3a str r3, [r0]                                      |     *(r0) = r3;
    0x0007cb3c movs r2, 0xa                                      |     r2 = 0xa;
    0x0007cb3e add r1, sp, 0x28                                  |     r1 += var_28h;
    0x0007cb40 mov r0, r6                                        |     r0 = r6;
    0x0007cb42 blx 0x8cfc                                        |     fcn_00008cfc ();
    0x0007cb46 ldr r3, [r5]                                      |     r3 = *(r5);
    0x0007cb48 mov r7, r0                                        |     r7 = r0;
    0x0007cb4a mov r8, r1                                        |     r8 = r1;
    0x0007cb4c cmp r3, 0                                         |     
                                                                 |     if (r3 > 0) {
    0x0007cb4e bgt.w 0x7cd52                                     |         goto label_14;
                                                                 |     }
    0x0007cb52 cmp r1, 0                                         |     
                                                                 |     if (r1 < 0) {
    0x0007cb54 blt 0x7cc1e                                       |         goto label_4;
                                                                 |     }
    0x0007cb56 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0007cb58 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0007cb5a ldrb r3, [r3]                                     |     r3 = *(r3);
    0x0007cb5c cmp r3, 0x2e                                      |     
    0x0007cb5e str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0007cb60 ldr r3, [sp, 4]                                   |     r3 = var_4h;
                                                                 |     if (r3 == 0x2e) {
    0x0007cb62 beq 0x7cc0a                                       |         goto label_15;
                                                                 |     }
    0x0007cb64 cmp r3, r6                                        |     
                                                                 |     if (r3 == r6) {
    0x0007cb66 beq 0x7cc04                                       |         goto label_7;
                                                                 |     }
    0x0007cb68 mov sb, r3                                        |     sb = r3;
                                                                 | label_3:
    0x0007cb6a ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x0007cb6c mov r0, sb                                        |     r0 = sb;
    0x0007cb6e blx 0x9428                                        |     fcn_00009428 ();
    0x0007cb72 ldr r5, [pc, 0x204]                               |     
    0x0007cb74 add.w r6, sb, r0                                  |     r6 = sb + r0;
    0x0007cb78 ldr r1, [pc, 0x200]                               |     
    0x0007cb7a mov.w sl, 0                                       |     sl = 0;
    0x0007cb7e add r5, pc                                        |     r5 = 0xf98fc;
    0x0007cb80 add r1, pc                                        |     r1 = 0xf9900;
    0x0007cb82 b 0x7cb92                                         |     
                                                                 |     while (r0 == 0) {
    0x0007cb84 add.w sl, sl, 1                                   |         sl++;
    0x0007cb88 cmp.w sl, 0x1d                                    |         
                                                                 |         if (sl == 0x1d) {
    0x0007cb8c beq 0x7cbf6                                       |             goto label_16;
                                                                 |         }
    0x0007cb8e ldr r1, [r5, 0x10]!                               |         r1 = *((r5 += 0x10));
    0x0007cb92 mov r0, r6                                        |         r0 = r6;
    0x0007cb94 bl 0x803c0                                        |         r0 = fcn_000803c0 (r0, r1);
    0x0007cb98 cmp r0, 0                                         |         
    0x0007cb9a beq 0x7cb84                                       |         
                                                                 |     }
    0x0007cb9c ldr r2, [pc, 0x1e0]                               |     
    0x0007cb9e mov r6, r0                                        |     r6 = r0;
    0x0007cba0 cmp sb, r6                                        |     
    0x0007cba2 add r2, pc                                        |     r2 = 0xf9926;
    0x0007cba4 add.w r3, r2, sl, lsl 4                           |     r3 = r2 + (sl << 4);
    0x0007cba8 ldrd r2, r5, [r3, 8]                              |     __asm ("ldrd r2, r5, [r3, 8]");
                                                                 |     if (sb == r6) {
    0x0007cbac beq 0x7cbfe                                       |         goto label_17;
                                                                 |     }
                                                                 |     do {
                                                                 | label_1:
    0x0007cbae mov r3, r5                                        |         r3 = r5;
    0x0007cbb0 mov.w r0, -1                                      |         r0 = -1;
    0x0007cbb4 mov.w r1, -1                                      |         r1 = -1;
    0x0007cbb8 str r2, [sp, 0x14]                                |         var_14h = r2;
    0x0007cbba bl 0x80fd8                                        |         r0 = fcn_00080fd8 (r0, r1, r2, r3);
    0x0007cbbe cmp r7, r0                                        |         
    0x0007cbc0 sbcs.w r1, r8, r1                                 |         __asm ("sbcs.w r1, r8, r1");
                                                                 |         if (r7 >= r0) {
    0x0007cbc4 bhs 0x7cc1e                                       |             goto label_4;
                                                                 |         }
    0x0007cbc6 ldr r2, [sp, 0x14]                                |         r2 = var_14h;
    0x0007cbc8 mul r3, r7, r5                                    |         r3 = r7 * r5;
    0x0007cbcc mvn.w r0, fp                                      |         r0 = ~fp;
    0x0007cbd0 umull r1, r7, r7, r2                              |         r1:r7 = r7 * r2;
    0x0007cbd4 mla r3, r2, r8, r3                                |         __asm ("mla r3, r2, r8, r3");
    0x0007cbd8 add r3, r7                                        |         r3 += r7;
    0x0007cbda mvns r7, r4                                       |         r7 = ~r4;
    0x0007cbdc cmp r1, r7                                        |         
    0x0007cbde sbcs.w r0, r3, r0                                 |         __asm ("sbcs.w r0, r3, r0");
                                                                 |         if (r1 >= r7) {
    0x0007cbe2 bhs 0x7cc1e                                       |             goto label_4;
                                                                 |         }
    0x0007cbe4 adds r1, r4, r1                                   |         r1 = r4 + r1;
    0x0007cbe6 adc.w fp, r3, fp                                  |         __asm ("adc.w fp, r3, fp");
    0x0007cbea ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x0007cbec mov r4, r1                                        |         r4 = r1;
    0x0007cbee cmp r3, 0x2e                                      |         
                                                                 |         if (r3 == 0x2e) {
    0x0007cbf0 beq 0x7cc24                                       |             goto label_18;
                                                                 |         }
                                                                 | label_6:
    0x0007cbf2 movs r5, 1                                        |         r5 = 1;
    0x0007cbf4 b 0x7cb1c                                         |         goto label_0;
                                                                 | label_16:
    0x0007cbf6 cmp sb, r6                                        |         
    0x0007cbf8 ldrd r2, r5, [sp, 8]                              |         __asm ("ldrd r2, r5, [var_8h]");
    0x0007cbfc bne 0x7cbae                                       |         
                                                                 |     } while (sb != r6);
                                                                 | label_17:
    0x0007cbfe ldrb r3, [r6]                                     |     r3 = *(r6);
    0x0007cc00 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0007cc02 beq 0x7cbae                                       |         goto label_1;
                                                                 |     }
                                                                 |     do {
                                                                 | label_7:
    0x0007cc04 mvn r0, 0x15                                      |         r0 = ~0x15;
    0x0007cc08 b 0x7caf0                                         |         goto label_2;
                                                                 | label_15:
    0x0007cc0a add.w sb, r3, 1                                   |         sb = r3 + 1;
    0x0007cc0e ldr r1, [sp, 0x24]                                |         r1 = var_24h;
    0x0007cc10 mov r0, sb                                        |         r0 = sb;
    0x0007cc12 blx 0x9428                                        |         r0 = fcn_00009428 ();
    0x0007cc16 add sb, r0                                        |         sb += r0;
    0x0007cc18 b 0x7cb6a                                         |         goto label_3;
                                                                 | label_8:
    0x0007cc1a movs r0, 0                                        |         r0 = 0;
    0x0007cc1c b 0x7caf0                                         |         goto label_2;
                                                                 | label_4:
    0x0007cc1e mvn r0, 0x21                                      |         r0 = ~0x21;
    0x0007cc22 b 0x7caf0                                         |         goto label_2;
                                                                 | label_18:
    0x0007cc24 adds r3, r2, r5                                   |         r3 = r2 + r5;
    0x0007cc26 movw ip, 0xcccd                                   |         
    0x0007cc2a adc r3, r3, 0                                     |         __asm ("adc r3, r3, 0");
    0x0007cc2e movt ip, 0xcccc                                   |         ip = 0xcccccccd;
    0x0007cc32 umull r1, r0, ip, r3                              |         r1:r0 = ip * r3;
    0x0007cc36 mov.w lr, -0x33333334                             |         lr = -0x33333334;
    0x0007cc3a ldr r7, [sp, 4]                                   |         r7 = var_4h;
    0x0007cc3c ldrb r1, [r7, 1]                                  |         r1 = *((r7 + 1));
    0x0007cc3e adds r7, 1                                        |         r7++;
    0x0007cc40 bic r8, r0, 3                                     |         r8 = BIT_MASK (r0, 3);
    0x0007cc44 str r7, [sp, 4]                                   |         var_4h = r7;
    0x0007cc46 add.w r8, r8, r0, lsr 2                           |         r8 += (r0 >> 2);
    0x0007cc4a subs r1, 0x30                                     |         r1 -= 0x30;
    0x0007cc4c sub.w r3, r3, r8                                  |         r3 -= r8;
    0x0007cc50 uxtb r7, r1                                       |         r7 = (int8_t) r1;
    0x0007cc52 subs r3, r2, r3                                   |         r3 = r2 - r3;
    0x0007cc54 mul r2, lr, r3                                    |         r2 = lr * r3;
    0x0007cc58 sbc r5, r5, 0                                     |         __asm ("sbc r5, r5, 0");
    0x0007cc5c cmp r7, 9                                         |         
    0x0007cc5e mla r5, ip, r5, r2                                |         __asm ("mla r5, ip, r5, r2");
    0x0007cc62 umull r2, r0, r3, ip                              |         r2:r0 = r3 * ip;
    0x0007cc66 lsr.w r3, r2, 1                                   |         r3 = r2 >> 1;
    0x0007cc6a add r0, r5                                        |         r0 += r5;
    0x0007cc6c orr.w r3, r3, r0, lsl 31                          |         r3 |= (r0 << 31);
    0x0007cc70 lsr.w r0, r0, 1                                   |         r0 >>= 1;
    0x0007cc74 bhi 0x7cc04                                       |         
                                                                 |     } while (r7 > 9);
    0x0007cc76 mul r5, r1, r0                                    |     r5 = r1 * r0;
    0x0007cc7a asrs r2, r1, 0x1f                                 |     r2 = r1 >> 0x1f;
    0x0007cc7c mvns r7, r4                                       |     r7 = ~r4;
    0x0007cc7e mla r5, r3, r2, r5                                |     __asm ("mla r5, r3, r2, r5");
    0x0007cc82 umull r1, r2, r1, r3                              |     r1:r2 = r1 * r3;
    0x0007cc86 add r2, r5                                        |     r2 += r5;
    0x0007cc88 cmp r1, r7                                        |     
    0x0007cc8a mvn.w r5, fp                                      |     r5 = ~fp;
    0x0007cc8e sbcs.w r5, r2, r5                                 |     __asm ("sbcs.w r5, r2, r5");
                                                                 |     if (r1 >= r7) {
    0x0007cc92 bhs 0x7cc1e                                       |         goto label_4;
                                                                 |     }
    0x0007cc94 mov r5, r3                                        |     r5 = r3;
    0x0007cc96 ldr.w r8, [sp, 4]                                 |     r8 = var_4h;
    0x0007cc9a mov sb, ip                                        |     sb = ip;
    0x0007cc9c mov r3, r2                                        |     r3 = r2;
    0x0007cc9e b 0x7ccbe                                         |     goto label_19;
                                                                 | label_5:
    0x0007cca0 mul r7, r2, r0                                    |     r7 = r2 * r0;
    0x0007cca4 asrs r3, r2, 0x1f                                 |     r3 = r2 >> 0x1f;
    0x0007cca6 mla r7, r5, r3, r7                                |     __asm ("mla r7, r5, r3, r7");
    0x0007ccaa umull r1, r3, r2, r5                              |     r1:r3 = r2 * r5;
    0x0007ccae mvn.w r2, fp                                      |     r2 = ~fp;
    0x0007ccb2 add r3, r7                                        |     r3 += r7;
    0x0007ccb4 mvns r7, r4                                       |     r7 = ~r4;
    0x0007ccb6 cmp r1, r7                                        |     
    0x0007ccb8 sbcs.w r2, r3, r2                                 |     __asm ("sbcs.w r2, r3, r2");
                                                                 |     if (r1 >= r7) {
    0x0007ccbc bhs 0x7cc1e                                       |         goto label_4;
                                                                 |     }
                                                                 | label_19:
    0x0007ccbe adds r2, r4, r1                                   |     r2 = r4 + r1;
    0x0007ccc0 adc.w fp, fp, r3                                  |     __asm ("adc.w fp, fp, r3");
    0x0007ccc4 adds r3, r5, r0                                   |     r3 = r5 + r0;
    0x0007ccc6 adc r3, r3, 0                                     |     __asm ("adc r3, r3, 0");
    0x0007ccca mov r4, r2                                        |     r4 = r2;
    0x0007cccc umull r1, sl, ip, r3                              |     r1:sl = ip * r3;
    0x0007ccd0 ldrb r2, [r8, 1]!                                 |     r2 = *((r8 += 1));
    0x0007ccd4 subs r2, 0x30                                     |     r2 -= 0x30;
    0x0007ccd6 uxtb r1, r2                                       |     r1 = (int8_t) r2;
    0x0007ccd8 bic r7, sl, 3                                     |     r7 = BIT_MASK (sl, 3);
    0x0007ccdc add.w r7, r7, sl, lsr 2                           |     r7 += (sl >> 2);
    0x0007cce0 subs r3, r3, r7                                   |     r3 -= r7;
    0x0007cce2 subs r3, r5, r3                                   |     r3 = r5 - r3;
    0x0007cce4 sbc r5, r0, 0                                     |     __asm ("sbc r5, r0, 0");
    0x0007cce8 mul r0, lr, r3                                    |     r0 = lr * r3;
    0x0007ccec cmp r1, 9                                         |     
    0x0007ccee mla r0, ip, r5, r0                                |     __asm ("mla r0, ip, r5, r0");
    0x0007ccf2 umull r3, r5, r3, sb                              |     r3:r5 = r3 * sb;
    0x0007ccf6 lsr.w r3, r3, 1                                   |     r3 >>= 1;
    0x0007ccfa add r0, r5                                        |     r0 += r5;
    0x0007ccfc orr.w r5, r3, r0, lsl 31                          |     r5 = r3 | (r0 << 31);
    0x0007cd00 lsr.w r0, r0, 1                                   |     r0 >>= 1;
                                                                 |     if (r1 < 9) {
    0x0007cd04 bls 0x7cca0                                       |         goto label_5;
                                                                 |     }
    0x0007cd06 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x0007cd08 cmp r3, r8                                        |     
                                                                 |     if (r3 != r8) {
    0x0007cd0a bne.w 0x7cbf2                                     |         goto label_6;
                                                                 |     }
    0x0007cd0e b 0x7cc04                                         |     goto label_7;
                                                                 | label_10:
    0x0007cd10 ldr r1, [pc, 0x70]                                |     
    0x0007cd12 mov.w r2, 0x3e8                                   |     r2 = 0x3e8;
    0x0007cd16 ldr r3, [pc, 0x70]                                |     
    0x0007cd18 ldr r0, [pc, 0x70]                                |     
    0x0007cd1a add r1, pc                                        |     r1 = 0xf9aa2;
    0x0007cd1c add r3, pc                                        |     r3 = 0xf9aaa;
    0x0007cd1e adds r1, 7                                        |     r1 += 7;
    0x0007cd20 add r0, pc                                        |     r0 = 0xf9ab0;
    0x0007cd22 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_11:
    0x0007cd26 ldr r1, [pc, 0x68]                                |     
    0x0007cd28 movw r2, 0x3e9                                    |     r2 = 0x3e9;
    0x0007cd2c ldr r3, [pc, 0x64]                                |     
    0x0007cd2e ldr r0, [pc, 0x68]                                |     
    0x0007cd30 add r1, pc                                        |     r1 = 0xf9ac6;
    0x0007cd32 add r3, pc                                        |     r3 = 0xf9aca;
    0x0007cd34 adds r1, 7                                        |     r1 += 7;
    0x0007cd36 add r0, pc                                        |     r0 = 0xf9ad4;
    0x0007cd38 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_13:
    0x0007cd3c cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0007cd3e beq.w 0x7cc04                                     |         goto label_7;
                                                                 |     }
    0x0007cd42 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x0007cd44 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0007cd46 beq.w 0x7cc1a                                     |         goto label_8;
                                                                 |     }
    0x0007cd4a mov r0, r3                                        |     r0 = r3;
    0x0007cd4c strd r4, fp, [r2]                                 |     __asm ("strd r4, fp, [r2]");
    0x0007cd50 b 0x7caf0                                         |     goto label_2;
                                                                 | label_14:
    0x0007cd52 rsbs r0, r3, 0                                    |     r0 = r3 - ;
    0x0007cd54 b 0x7caf0                                         |     goto label_2;
                                                                 | label_12:
    0x0007cd56 blx 0x927c                                        |     fprintf_chk ()
    0x0007cd5a nop                                               |     
    0x0007cd5c stm r0!, {r4, r5}                                 |     *(r0!) = r4;
                                                                 |     *((r0! + 4)) = r5;
    0x0007cd5e movs r4, r0                                       |     r4 = r0;
                                                                 |     do {
    0x0007cd60 lsls r0, r0, 0x13                                 |         r0 <<= 0x13;
    0x0007cd62 movs r0, r0                                       |         
    0x0007cd64 ldr r6, [sp, 0x220]                               |         r6 = *(arg_220h);
    0x0007cd66 movs r0, r0                                       |         
    0x0007cd68 ldr r5, [sp, 0x98]                                |         r5 = *(arg_98h);
    0x0007cd6a movs r2, r0                                       |         r2 = r0;
    0x0007cd6c hint 0xd                                          |         __asm ("hint 0xd");
    0x0007cd6e movs r4, r0                                       |         r4 = r0;
    0x0007cd70 ldr r5, [sp, 0x1c8]                               |         r5 = *(arg_1c8h);
    0x0007cd72 movs r1, r0                                       |         r1 = r0;
    0x0007cd74 ldr r6, [sp, 0x90]                                |         r6 = *(arg_90h);
    0x0007cd76 movs r0, r0                                       |         
                                                                 |         if (r6 == 0) {
    0x0007cd78 cbz r6, 0x7cdea                                   |             goto label_20;
                                                                 |         }
    0x0007cd7a movs r4, r0                                       |         r4 = r0;
    0x0007cd7c add r1, sp, 0x130                                 |         r1 += arg_130h;
    0x0007cd7e movs r2, r0                                       |         r2 = r0;
                                                                 |         if (r2 == 0) {
    0x0007cd80 cbz r2, 0x7cdea                                   |             goto label_20;
                                                                 |         }
    0x0007cd82 movs r4, r0                                       |         r4 = r0;
    0x0007cd84 adr r6, 0x1e8                                     |         r6 = 0x1e8;
    0x0007cd86 movs r2, r0                                       |         r2 = r0;
    0x0007cd88 add r1, sp, 0x50                                  |         r1 += var_50h;
    0x0007cd8a movs r2, r0                                       |         r2 = r0;
    0x0007cd8c blo 0x7cd60                                       |         
                                                                 |     } while (r2 <= r0);
    0x0007cd8e movs r0, r0                                       |     
    0x0007cd90 adr r6, 0x190                                     |     r6 = 0x190;
    0x0007cd92 movs r2, r0                                       |     r2 = r0;
    0x0007cd94 add r0, sp, 0x3f8                                 |     r0 += arg_3f8h;
    0x0007cd96 movs r2, r0                                       |     r2 = r0;
    0x0007cd98 adr r7, 0x278                                     |     r7 = 0x278;
    0x0007cd9a movs r2, r0                                       |     r2 = r0;
    0x0007cd9c movw r2, 0x4240                                   |     
    0x0007cda0 movs r3, 0                                        |     r3 = 0;
    0x0007cda2 movt r2, 0xf                                      |     r2 = 0xf4240;
    0x0007cda6 b.w 0x7ca84                                       |     goto label_9;
                                                                 | label_20:
    0x0007cdea movs r4, r0                                       |     r4 = r0;
                                                                 | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7ce58 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.0007ce58 ()              | void fcn_0007ce58 (uint32_t arg1) {
                                         |     int16_t var_4h;
                                         |     int16_t var_ch;
                                         |     r0 = arg1;
    0x0007ce58 ldr r2, [pc, 0x74]        |     
    0x0007ce5a cmp r0, 7                 |     
    0x0007ce5c ldr r3, [pc, 0x74]        |     r3 = *(0x7ced4);
    0x0007ce5e push {r4, lr}             |     
    0x0007ce60 sub sp, 0x10              |     
    0x0007ce62 add r2, pc                |     r2 = 0xf9d36;
    0x0007ce64 ldr r3, [r2, r3]          |     
    0x0007ce66 ldr r3, [r3]              |     r3 = *(0xf9d36);
    0x0007ce68 str r3, [sp, 0xc]         |     var_ch = r3;
    0x0007ce6a mov.w r3, 0               |     r3 = 0;
                                         |     if (r0 == 7) {
    0x0007ce6e beq 0x7ceae               |         goto label_1;
                                         |     }
    0x0007ce70 mov r4, r0                |     r4 = r0;
                                         |     if (r0 > 7) {
    0x0007ce72 bgt 0x7ce94               |         goto label_2;
                                         |     }
    0x0007ce74 cmp r0, 1                 |     
    0x0007ce76 it ls                     |     
                                         |     if (r0 > 1) {
    0x0007ce78 movls r0, 1               |         r0 = 1;
                                         |     }
                                         |     if (r0 > 1) {
    0x0007ce7a bhi 0x7cea0               |         goto label_3;
                                         |     }
                                         |     do {
                                         | label_0:
    0x0007ce7c ldr r2, [pc, 0x58]        |         
    0x0007ce7e ldr r3, [pc, 0x54]        |         r3 = *(0x7ced6);
    0x0007ce80 add r2, pc                |         r2 = 0xf9d5c;
    0x0007ce82 ldr r3, [r2, r3]          |         r3 = *(0xf9d5c);
    0x0007ce84 ldr r2, [r3]              |         r2 = *(0xf9d5c);
    0x0007ce86 ldr r3, [sp, 0xc]         |         r3 = var_ch;
    0x0007ce88 eors r2, r3               |         r2 ^= r3;
    0x0007ce8a mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x0007ce8e bne 0x7cecc               |             goto label_4;
                                         |         }
    0x0007ce90 add sp, 0x10              |         
    0x0007ce92 pop {r4, pc}              |         
                                         | label_2:
    0x0007ce94 cmp r0, 9                 |         
                                         |         if (r0 != 9) {
    0x0007ce96 bne 0x7cea0               |             goto label_3;
                                         |         }
    0x0007ce98 bl 0x7cdac                |         r0 = fcn_0007cdac ();
    0x0007ce9c cmp r0, 0                 |         
    0x0007ce9e beq 0x7ce7c               |         
                                         |     } while (r0 == 0);
                                         | label_3:
    0x0007cea0 add r1, sp, 4             |     r1 += var_4h;
    0x0007cea2 mov r0, r4                |     r0 = r4;
    0x0007cea4 blx 0x8ae4                |     r0 = sigismember ();
    0x0007cea8 mvns r0, r0               |     r0 = ~r0;
    0x0007ceaa lsrs r0, r0, 0x1f         |     r0 >>= 0x1f;
    0x0007ceac b 0x7ce7c                 |     goto label_0;
                                         | label_1:
    0x0007ceae ldr r2, [pc, 0x2c]        |     
    0x0007ceb0 ldr r3, [pc, 0x20]        |     r3 = *(0x7ced4);
    0x0007ceb2 add r2, pc                |     r2 = 0xf9d94;
    0x0007ceb4 ldr r3, [r2, r3]          |     r3 = *(0xf9d94);
    0x0007ceb6 ldr r2, [r3]              |     r2 = *(0xf9d94);
    0x0007ceb8 ldr r3, [sp, 0xc]         |     r3 = var_ch;
    0x0007ceba eors r2, r3               |     r2 ^= r3;
    0x0007cebc mov.w r3, 0               |     r3 = 0;
                                         |     if (r2 == r3) {
    0x0007cec0 bne 0x7cecc               |         
    0x0007cec2 add sp, 0x10              |         
    0x0007cec4 pop.w {r4, lr}            |         
    0x0007cec8 b.w 0x7cdac               |         void (*0x7cdac)() ();
                                         |     }
                                         | label_4:
    0x0007cecc blx 0x927c                |     fprintf_chk ()
    0x0007ced0 pop {r1, r5, r6}          |     
    0x0007ced2 movs r4, r0               |     r4 = r0;
    0x0007ced4 lsls r0, r0, 0x13         |     r0 <<= 0x13;
    0x0007ced6 movs r0, r0               |     
    0x0007ced8 pop {r2, r6}              |     
    0x0007ceda movs r4, r0               |     r4 = r0;
    0x0007cedc pop {r1, r4}              |     
    0x0007cede movs r4, r0               |     r4 = r0;
                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7ceec */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0007ceec ()                                  | void fcn_0007ceec (int16_t arg_60h, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_ch_2;
                                                             |     int16_t var_14h_2;
                                                             |     int16_t var_0h_2;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_ch_3;
                                                             |     int16_t var_10h_2;
                                                             |     int16_t var_28h;
                                                             |     int16_t var_38h;
                                                             |     int16_t var_3ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
                                                             |     if (? >= ?) {
    0x0007ceec ldrbmi lr, [r0, sp, lsr 18]!                  |         
                                                             |     }
    0x0007cef0 mov r5, r1                                    |     r5 = r1;
    0x0007cef2 ldr r4, [pc, 0x188]                           |     
    0x0007cef4 mov r1, r3                                    |     r1 = r3;
    0x0007cef6 sub sp, 0x40                                  |     
    0x0007cef8 ldr r3, [pc, 0x184]                           |     r3 = *(0x7d080);
    0x0007cefa add r4, pc                                    |     r4 = 0xf9f7c;
    0x0007cefc ldr r6, [sp, 0x60]                            |     r6 = *(arg_60h);
    0x0007cefe ldr r3, [r4, r3]                              |     
    0x0007cf00 ldr r3, [r3]                                  |     r3 = *(0xf9f7c);
    0x0007cf02 str r3, [sp, 0x3c]                            |     var_3ch = r3;
    0x0007cf04 mov.w r3, 0                                   |     r3 = 0;
    0x0007cf08 cmp r0, 0                                     |     
                                                             |     if (arg_60h == ) {
    0x0007cf0a beq.w 0x7d034                                 |         goto label_1;
                                                             |     }
    0x0007cf0e cmp r6, 3                                     |     
                                                             |     if (r6 <= 3) {
    0x0007cf10 bhi 0x7cffe                                   |         
    0x0007cf12 ldr r3, [pc, 0x170]                           |         
    0x0007cf14 mov r4, r0                                    |         r4 = r0;
    0x0007cf16 ldr r0, [pc, 0x170]                           |         
    0x0007cf18 add r3, pc                                    |         
    0x0007cf1a ldr.w r3, [r3, r6, lsl 2]                     |         r3 = *(0xf9fa2);
    0x0007cf1e add r0, pc                                    |         r0 = 0xf9fac;
    0x0007cf20 ldrb r7, [r0, r6]                             |         r7 = *((r0 + r6));
    0x0007cf22 cmp r5, r3                                    |         
                                                             |         if (r5 <= r3) {
    0x0007cf24 blo 0x7cffe                                   |             goto label_2;
                                                             |         }
    0x0007cf26 subs r0, r2, 1                                |         r0 = r2 - 1;
    0x0007cf28 adc r3, r1, -1                                |         __asm ("adc r3, r1, -1");
    0x0007cf2c adds r0, 2                                    |         r0 += 2;
    0x0007cf2e sbcs r3, r3, -1                               |         __asm ("sbcs r3, r3, -1");
                                                             |         if (r0 >= 2) {
    0x0007cf32 bhs 0x7cffe                                   |             goto label_2;
                                                             |         }
    0x0007cf34 movw r0, 0xbdc0                               |         
    0x0007cf38 movw r3, 0xa11f                               |         
    0x0007cf3c movt r0, 0xfff0                               |         r0 = 0xfff0bdc0;
    0x0007cf40 movt r3, 7                                    |         r3 = 0x7a11f;
    0x0007cf44 cmp r0, r2                                    |         
    0x0007cf46 sbcs r3, r1                                   |         __asm ("sbcs r3, r1");
                                                             |         if (r0 <= r2) {
    0x0007cf48 blo 0x7d01c                                   |             goto label_3;
                                                             |         }
    0x0007cf4a mov r0, r2                                    |         r0 = r2;
    0x0007cf4c movw r2, 0x4240                               |         
    0x0007cf50 add.w sl, sp, 0x10                            |         sl += var_10h_2;
    0x0007cf54 movt r2, 0xf                                  |         r2 = 0xf4240;
    0x0007cf58 movs r3, 0                                    |         r3 = 0;
    0x0007cf5a bl 0x80fd8                                    |         fcn_00080fd8 (r0, r1, r2, r3);
    0x0007cf5e mov r1, sl                                    |         r1 = sl;
    0x0007cf60 mov sb, r2                                    |         sb = r2;
    0x0007cf62 str r0, [sp, 0xc]                             |         var_ch_3 = r0;
    0x0007cf64 mov r2, r7                                    |         r2 = r7;
    0x0007cf66 add r0, sp, 0xc                               |         r0 += var_ch_3;
    0x0007cf68 mov r8, r3                                    |         r8 = r3;
    0x0007cf6a bl 0x7cee0                                    |         r0 = fcn_0007cee0 ();
    0x0007cf6e cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0007cf70 beq 0x7cffe                                   |             goto label_2;
                                                             |         }
    0x0007cf72 ldr r2, [sp, 0x28]                            |         r2 = var_28h;
    0x0007cf74 cmp r2, 6                                     |         
                                                             |         if (r2 > 6) {
    0x0007cf76 bhi 0x7d04e                                   |             goto label_4;
                                                             |         }
    0x0007cf78 ldr r1, [pc, 0x110]                           |         
    0x0007cf7a mov r0, r4                                    |         r0 = r4;
    0x0007cf7c mov r3, sl                                    |         r3 = sl;
    0x0007cf7e add r1, pc                                    |         r1 = 0xfa00e;
    0x0007cf80 ldr.w r2, [r1, r2, lsl 2]                     |         
    0x0007cf84 subs r1, r5, 3                                |         r1 = r5 - 3;
    0x0007cf86 ldr r2, [r2]                                  |         r2 = *(0xfa00e);
    0x0007cf88 str r2, [r0], 3                               |         *(r0) = r2;
                                                             |         r0 += 3;
    0x0007cf8c ldr r2, [pc, 0x100]                           |         
    0x0007cf8e add r2, pc                                    |         r2 = 0xfa022;
    0x0007cf90 blx 0x93a4                                    |         r0 = fcn_000093a4 ();
                                                             |         if (r0 == 0) {
    0x0007cf94 cbz r0, 0x7cffe                               |             goto label_2;
                                                             |         }
    0x0007cf96 mov r0, r4                                    |         r0 = r4;
    0x0007cf98 blx 0x8f38                                    |         fcn_00008f38 ();
    0x0007cf9c lsls r3, r6, 0x1f                             |         r3 = r6 << 0x1f;
                                                             |         if (r3 < r6) {
    0x0007cf9e bpl 0x7cfc0                                   |             
    0x0007cfa0 add.w r3, r0, 8                               |             r3 = r0 + 8;
    0x0007cfa4 cmp r3, r5                                    |             
                                                             |             if (r3 > r5) {
    0x0007cfa6 bhi 0x7cffe                                   |                 goto label_2;
                                                             |             }
    0x0007cfa8 ldr r3, [pc, 0xe8]                            |             
    0x0007cfaa add r0, r4                                    |             r0 += r4;
    0x0007cfac mov.w r2, -1                                  |             r2 = -1;
    0x0007cfb0 movs r1, 1                                    |             r1 = 1;
    0x0007cfb2 str.w sb, [sp]                                |             __asm ("str.w sb, [sp]");
    0x0007cfb6 add r3, pc                                    |             r3 = 0xfa04e;
    0x0007cfb8 str.w r8, [sp, 4]                             |             __asm ("str.w r8, [var_4h]");
    0x0007cfbc blx 0x9494                                    |             fcn_00009494 ();
                                                             |         }
    0x0007cfc0 mov r0, r4                                    |         r0 = r4;
    0x0007cfc2 blx 0x8f38                                    |         r0 = fcn_00008f38 ();
    0x0007cfc6 mov r6, r0                                    |         r6 = r0;
                                                             |         if (r7 != 0) {
    0x0007cfc8 cbz r7, 0x7cfe2                               |             
    0x0007cfca adds r3, r0, 5                                |             r3 = r0 + 5;
    0x0007cfcc cmp r3, r5                                    |             
                                                             |             if (r3 > r5) {
    0x0007cfce bhi 0x7cffe                                   |                 goto label_2;
                                                             |             }
    0x0007cfd0 ldr r3, [pc, 0xc4]                            |             
    0x0007cfd2 adds r2, r4, r0                               |             r2 = r4 + r0;
    0x0007cfd4 mov r5, r4                                    |             r5 = r4;
    0x0007cfd6 add r3, pc                                    |             r3 = 0xfa072;
    0x0007cfd8 ldr r0, [r3]                                  |             r0 = *(0xfa072);
    0x0007cfda ldrb r3, [r3, 4]                              |             r3 = *((r3 + 4));
    0x0007cfdc str r0, [r4, r6]                              |             *((r4 + r6)) = r0;
    0x0007cfde strb r3, [r2, 4]                              |             *((r2 + 4)) = r3;
    0x0007cfe0 b 0x7d000                                     |             goto label_0;
                                                             |         }
    0x0007cfe2 ldr r7, [sp, 0x38]                            |         r7 = var_38h;
                                                             |         if (r7 == 0) {
    0x0007cfe4 cbz r7, 0x7d04a                               |             goto label_5;
                                                             |         }
    0x0007cfe6 ldrb r3, [r7]                                 |         r3 = *(r7);
                                                             |         if (r3 == 0) {
    0x0007cfe8 cbz r3, 0x7d04a                               |             goto label_5;
                                                             |         }
    0x0007cfea mov r0, r7                                    |         r0 = r7;
    0x0007cfec blx 0x8f38                                    |         fcn_00008f38 ();
    0x0007cff0 adds r3, r6, 2                                |         r3 = r6 + 2;
    0x0007cff2 add r3, r0                                    |         r3 += r0;
    0x0007cff4 cmp r3, r5                                    |         
                                                             |         if (r3 < r5) {
    0x0007cff6 bls 0x7d064                                   |             goto label_6;
                                                             |         }
    0x0007cff8 adds r6, 8                                    |         r6 += 8;
    0x0007cffa cmp r6, r5                                    |         
                                                             |         if (r6 < r5) {
    0x0007cffc bls 0x7d04a                                   |             goto label_5;
                                                             |         }
                                                             |     }
                                                             | label_2:
    0x0007cffe movs r5, 0                                    |     r5 = 0;
                                                             |     do {
                                                             | label_0:
    0x0007d000 ldr r2, [pc, 0x98]                            |         
    0x0007d002 ldr r3, [pc, 0x7c]                            |         r3 = *(0x7d082);
    0x0007d004 add r2, pc                                    |         r2 = 0xfa0a4;
    0x0007d006 ldr r3, [r2, r3]                              |         r3 = *(0xfa0a4);
    0x0007d008 ldr r2, [r3]                                  |         r2 = *(0xfa0a4);
    0x0007d00a ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x0007d00c eors r2, r3                                   |         r2 ^= r3;
    0x0007d00e mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0007d012 bne 0x7d076                                   |             goto label_7;
                                                             |         }
    0x0007d014 mov r0, r5                                    |         r0 = r5;
    0x0007d016 add sp, 0x40                                  |         
    0x0007d018 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_3:
    0x0007d01c ldr r6, [pc, 0x80]                            |         
    0x0007d01e mov r5, r4                                    |         r5 = r4;
    0x0007d020 add r6, pc                                    |         r6 = 0xfa0c4;
    0x0007d022 ldm r6!, {r0, r1, r2, r3}                     |         r0 = *(r6!);
                                                             |         r1 = *((r6! + 4));
                                                             |         r2 = *((r6! + 8));
                                                             |         r3 = *((r6! + 12));
    0x0007d024 str r0, [r4]                                  |         *(r4) = r0;
    0x0007d026 str r1, [r4, 4]                               |         *((r4 + 4)) = r1;
    0x0007d028 ldm r6!, {r0, r1}                             |         r0 = *(r6!);
                                                             |         r1 = *((r6! + 4));
    0x0007d02a str r2, [r4, 8]                               |         *((r4 + 8)) = r2;
    0x0007d02c str r3, [r4, 0xc]                             |         *((r4 + 0xc)) = r3;
    0x0007d02e str r0, [r4, 0x10]                            |         *((r4 + 0x10)) = r0;
    0x0007d030 str r1, [r4, 0x14]                            |         *((r4 + 0x14)) = r1;
    0x0007d032 b 0x7d000                                     |         
                                                             |     } while (1);
                                                             | label_1:
    0x0007d034 ldr r1, [pc, 0x6c]                            |     
    0x0007d036 mov.w r2, 0x144                               |     r2 = 0x144;
    0x0007d03a ldr r3, [pc, 0x6c]                            |     
    0x0007d03c ldr r0, [pc, 0x6c]                            |     
    0x0007d03e add r1, pc                                    |     r1 = 0xfa0e6;
    0x0007d040 add r3, pc                                    |     r3 = 0xfa0ee;
    0x0007d042 adds r1, 7                                    |     r1 += 7;
    0x0007d044 add r0, pc                                    |     r0 = 0xfa0f4;
    0x0007d046 bl 0x71518                                    |     fcn_00071518 (r0, r1, r2, r3);
                                                             | label_5:
    0x0007d04a mov r5, r4                                    |     r5 = r4;
    0x0007d04c b 0x7d000                                     |     goto label_0;
                                                             | label_4:
    0x0007d04e ldr r1, [pc, 0x60]                            |     
    0x0007d050 mov.w r2, 0x16e                               |     r2 = 0x16e;
    0x0007d054 ldr r3, [pc, 0x5c]                            |     
    0x0007d056 ldr r0, [pc, 0x60]                            |     
    0x0007d058 add r1, pc                                    |     r1 = 0xfa10e;
    0x0007d05a add r3, pc                                    |     r3 = 0xfa112;
    0x0007d05c adds r1, 7                                    |     r1 += 7;
    0x0007d05e add r0, pc                                    |     r0 = 0xfa11c;
    0x0007d060 bl 0x71518                                    |     fcn_00071518 (r0, r1, r2, r3);
                                                             | label_6:
    0x0007d064 movs r3, 0x20                                 |     r3 = 0x20;
    0x0007d066 adds r0, r6, 1                                |     r0 = r6 + 1;
    0x0007d068 mov r1, r7                                    |     r1 = r7;
    0x0007d06a add r0, r4                                    |     r0 += r4;
    0x0007d06c strb r3, [r4, r6]                             |     *((r4 + r6)) = r3;
    0x0007d06e mov r5, r4                                    |     r5 = r4;
    0x0007d070 blx 0x9050                                    |     fcn_00009050 ();
    0x0007d074 b 0x7d000                                     |     goto label_0;
                                                             | label_7:
    0x0007d076 blx 0x927c                                    |     fprintf_chk ()
    0x0007d07a nop                                           |     
                                                             |     if (r2 != 0) {
    0x0007d07c cbnz r2, 0x7d0f2                              |         void (*0x7d0f2)() ();
                                                             |     }
    0x0007d07e movs r4, r0                                   |     r4 = r0;
    0x0007d080 lsls r0, r0, 0x13                             |     r0 <<= 0x13;
    0x0007d082 movs r0, r0                                   |     
    0x0007d084 adr r7, 0x10                                  |     r7 = 0x10;
    0x0007d086 movs r2, r0                                   |     r2 = r0;
    0x0007d088 adr r7, 0x38                                  |     r7 = 0x38;
    0x0007d08a movs r2, r0                                   |     r2 = r0;
    0x0007d08c sxth r6, r3                                   |     __asm ("sxth r6, r3");
    0x0007d08e movs r4, r0                                   |     r4 = r0;
    0x0007d090 adr r5, 0x278                                 |     r5 = 0x278;
    0x0007d092 movs r2, r0                                   |     r2 = r0;
    0x0007d094 adr r5, 0x228                                 |     r5 = 0x228;
    0x0007d096 movs r2, r0                                   |     r2 = r0;
    0x0007d098 adr r5, 0x1c8                                 |     r5 = 0x1c8;
    0x0007d09a movs r2, r0                                   |     r2 = r0;
    0x0007d09c revsh r0, r0                                  |     __asm ("revsh r0, r0");
    0x0007d09e movs r4, r0                                   |     r4 = r0;
    0x0007d0a0 adr r4, 0x320                                 |     r4 = 0x320;
    0x0007d0a2 movs r2, r0                                   |     r2 = r0;
    0x0007d0a4 adr r3, 0x158                                 |     r3 = 0x158;
    0x0007d0a6 movs r2, r0                                   |     r2 = r0;
    0x0007d0a8 adr r6, 0x30                                  |     r6 = 0x30;
    0x0007d0aa movs r2, r0                                   |     r2 = r0;
    0x0007d0ac lsls r0, r5, 3                                |     r0 = r5 << 3;
    0x0007d0ae movs r1, r0                                   |     r1 = r0;
    0x0007d0b0 adr r3, 0xf0                                  |     r3 = 0xf0;
    0x0007d0b2 movs r2, r0                                   |     r2 = r0;
    0x0007d0b4 adr r5, 0x3c8                                 |     r5 = 0x3c8;
    0x0007d0b6 movs r2, r0                                   |     r2 = r0;
    0x0007d0b8 adr r4, 0x288                                 |     r4 = 0x288;
    0x0007d0ba movs r2, r0                                   |     r2 = r0;
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7d114 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0007d114 ()                                      | void fcn_0007d114 (int16_t arg1, int16_t arg2, uint32_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x0007d114 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x0007d118 mov r7, r1                                        |     r7 = r1;
    0x0007d11a ldr r1, [pc, 0xe8]                                |     
    0x0007d11c sub sp, 0x18                                      |     
    0x0007d11e movs r5, 0                                        |     r5 = 0;
    0x0007d120 ldr r3, [pc, 0xe4]                                |     r3 = *(0x7d208);
    0x0007d122 add r1, pc                                        |     r1 = 0xfa32c;
    0x0007d124 ldr r3, [r1, r3]                                  |     
    0x0007d126 ldr r3, [r3]                                      |     r3 = *(0xfa32c);
    0x0007d128 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0007d12a mov.w r3, 0                                       |     r3 = 0;
    0x0007d12e strd r5, r5, [sp, 0xc]                            |     __asm ("strd r5, r5, [sp, 0xc]");
    0x0007d132 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0007d134 beq 0x7d1d8                                       |         goto label_4;
                                                                 |     }
    0x0007d136 add.w r8, sp, 0xc                                 |     r8 += var_ch;
    0x0007d13a mov sl, r0                                        |     sl = r0;
    0x0007d13c mov r1, r8                                        |     r1 = r8;
    0x0007d13e mov r6, r2                                        |     r6 = r2;
    0x0007d140 bl 0x75a54                                        |     r0 = fcn_00075a54 (r0, r1);
    0x0007d144 adds.w r3, r0, 0x59                               |     r3 = r0 + 0x59;
    0x0007d148 mov r4, r0                                        |     r4 = r0;
    0x0007d14a it ne                                             |     
                                                                 |     if (r3 == r0) {
    0x0007d14c movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0007d14e ands.w sb, r3, r0, lsr 31                         |     sb = r3 & (r0 >> 31);
    0x0007d152 beq 0x7d182                                       |     
                                                                 |     while (r4 < r0) {
                                                                 | label_0:
    0x0007d154 mov r0, r5                                        |         r0 = r5;
    0x0007d156 blx 0x8dac                                        |         fcn_00008dac ();
    0x0007d15a ldr r0, [sp, 0x10]                                |         r0 = var_10h;
    0x0007d15c blx 0x8dac                                        |         fcn_00008dac ();
    0x0007d160 ldr r0, [sp, 0xc]                                 |         r0 = var_ch;
    0x0007d162 blx 0x8dac                                        |         fcn_00008dac ();
    0x0007d166 ldr r2, [pc, 0xa4]                                |         
    0x0007d168 ldr r3, [pc, 0x9c]                                |         r3 = *(0x7d208);
    0x0007d16a add r2, pc                                        |         r2 = 0xfa37c;
    0x0007d16c ldr r3, [r2, r3]                                  |         r3 = *(0xfa37c);
    0x0007d16e ldr r2, [r3]                                      |         r2 = *(0xfa37c);
    0x0007d170 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x0007d172 eors r2, r3                                       |         r2 ^= r3;
    0x0007d174 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0007d178 bne 0x7d1fe                                       |             goto label_5;
                                                                 |         }
    0x0007d17a mov r0, r4                                        |         r0 = r4;
    0x0007d17c add sp, 0x18                                      |         
    0x0007d17e pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
    0x0007d182 mov r0, sl                                        |         r0 = sl;
    0x0007d184 add r1, sp, 0x10                                  |         r1 += var_10h;
    0x0007d186 bl 0x759c0                                        |         r0 = fcn_000759c0 (r0, r1);
    0x0007d18a subs r4, r0, 0                                    |         r4 = r0 - 0;
    0x0007d18c it lt                                             |         
                                                                 |         if (r4 >= r0) {
    0x0007d18e movlt r5, sb                                      |             r5 = sb;
                                                                 |         }
    0x0007d190 blt 0x7d154                                       |         
                                                                 |     }
    0x0007d192 cbz r7, 0x7d1ec                                   |     
                                                                 |     while (1) {
    0x0007d194 ldr r3, [pc, 0x78]                                |         
    0x0007d196 movs r4, 0                                        |         r4 = 0;
    0x0007d198 ldr r0, [pc, 0x78]                                |         
    0x0007d19a mov r1, r7                                        |         r1 = r7;
    0x0007d19c ldr r2, [sp, 0x10]                                |         r2 = var_10h;
    0x0007d19e add r3, pc                                        |         r3 = 0xfa3b2;
    0x0007d1a0 str r4, [sp]                                      |         *(sp) = r4;
    0x0007d1a2 add r0, pc                                        |         r0 = 0xfa3ba;
    0x0007d1a4 bl 0x7a8a8                                        |         r0 = fcn_0007a8a8 (r0, r1);
    0x0007d1a8 mov r5, r0                                        |         r5 = r0;
                                                                 |         if (r0 == 0) {
    0x0007d1aa cbz r0, 0x7d1f8                                   |             goto label_6;
                                                                 |         }
    0x0007d1ac bl 0x75c84                                        |         r0 = fcn_00075c84 (r0);
                                                                 |         if (r0 == 0) {
    0x0007d1b0 cbz r0, 0x7d1f2                                   |             goto label_7;
                                                                 |         }
    0x0007d1b2 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
                                                                 |         if (r3 != 0) {
    0x0007d1b4 cbz r3, 0x7d1d0                                   |             
    0x0007d1b6 mov.w r2, -1                                      |             r2 = -1;
    0x0007d1ba mov r0, r8                                        |             r0 = r8;
    0x0007d1bc mov r1, r5                                        |             r1 = r5;
    0x0007d1be bl 0x74ccc                                        |             r0 = fcn_00074ccc ();
                                                                 |             if (r0 == 0) {
    0x0007d1c2 cbz r0, 0x7d1f8                                   |                 goto label_6;
                                                                 |             }
    0x0007d1c4 ldr r0, [sp, 0xc]                                 |             r0 = var_ch;
    0x0007d1c6 str r4, [sp, 0xc]                                 |             var_ch = r4;
    0x0007d1c8 bl 0x75130                                        |             fcn_00075130 (r0);
    0x0007d1cc str r0, [r6]                                      |             *(r6) = r0;
    0x0007d1ce b 0x7d154                                         |             goto label_0;
                                                                 |         }
    0x0007d1d0 str r5, [r6]                                      |         *(r6) = r5;
    0x0007d1d2 mov r4, r3                                        |         r4 = r3;
    0x0007d1d4 mov r5, r3                                        |         r5 = r3;
    0x0007d1d6 b 0x7d154                                         |         goto label_0;
                                                                 | label_4:
    0x0007d1d8 ldr r1, [pc, 0x3c]                                |         
    0x0007d1da movs r2, 0x64                                     |         r2 = 0x64;
    0x0007d1dc ldr r3, [pc, 0x3c]                                |         
    0x0007d1de ldr r0, [pc, 0x40]                                |         
    0x0007d1e0 add r1, pc                                        |         r1 = 0xfa3fc;
    0x0007d1e2 add r3, pc                                        |         r3 = 0xfa402;
    0x0007d1e4 adds r1, 7                                        |         r1 += 7;
    0x0007d1e6 add r0, pc                                        |         r0 = 0xfa40c;
    0x0007d1e8 bl 0x71518                                        |         fcn_00071518 (r0, r1, r2, r3);
    0x0007d1ec ldr r7, [pc, 0x34]                                |         
    0x0007d1ee add r7, pc                                        |         r7 = 0xfa416;
    0x0007d1f0 b 0x7d194                                         |         
                                                                 |     }
                                                                 | label_7:
    0x0007d1f2 mvn r4, 0x15                                      |     r4 = ~0x15;
    0x0007d1f6 b 0x7d154                                         |     goto label_0;
                                                                 | label_6:
    0x0007d1f8 mvn r4, 0xb                                       |     r4 = ~0xb;
    0x0007d1fc b 0x7d154                                         |     goto label_0;
                                                                 | label_5:
    0x0007d1fe blx 0x927c                                        |     fprintf_chk ()
    0x0007d202 nop                                               |     
                                                                 |     if (r2 == 0) {
    0x0007d204 cbnz r2, 0x7d230                                  |         
    0x0007d206 movs r4, r0                                       |         r4 = r0;
    0x0007d208 lsls r0, r0, 0x13                                 |         r0 <<= 0x13;
    0x0007d20a movs r0, r0                                       |         
                                                                 |         if (r2 == 0) {
    0x0007d20c cbnz r2, 0x7d226                                  |             
    0x0007d20e movs r4, r0                                       |             r4 = r0;
    0x0007d210 adr r5, 0x118                                     |             r5 = 0x118;
    0x0007d212 movs r2, r0                                       |             r2 = r0;
    0x0007d214 ldrh r2, [r3, 2]                                  |             r2 = *((r3 + 2));
    0x0007d216 movs r2, r0                                       |             r2 = r0;
    0x0007d218 adr r4, 0x390                                     |             r4 = 0x390;
    0x0007d21a movs r2, r0                                       |             r2 = r0;
    0x0007d21c adr r5, 0x28                                      |             r5 = 0x28;
    0x0007d21e movs r2, r0                                       |             r2 = r0;
    0x0007d220 strb r6, [r1, 9]                                  |             *((r1 + 9)) = r6;
    0x0007d222 movs r0, r0                                       |             
    0x0007d224 ldrsb r6, [r3, r3]                                |             r6 = *((r3 + r3));
                                                                 |         }
    0x0007d226 movs r0, r0                                       |         
                                                                 |     }
    0x0007d230 sub sp, 0x18                                      |     
    0x0007d232 movs r4, 0                                        |     r4 = 0;
    0x0007d234 mov.w r8, -1                                      |     r8 = -1;
    0x0007d238 ldr r3, [pc, 0xd4]                                |     
    0x0007d23a mov r7, r1                                        |     r7 = r1;
    0x0007d23c add r2, pc                                        |     r2 += pc;
    0x0007d23e ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x0007d240 ldr r3, [r3]                                      |     r3 = *(0x7d310);
    0x0007d242 str r3, [sp, 0x14]                                |     *((sp + 0x14)) = r3;
    0x0007d244 mov.w r3, 0                                       |     r3 = 0;
    0x0007d248 strd r4, r4, [sp, 4]                              |     __asm ("strd r4, r4, [sp, 4]");
    0x0007d24c str.w r8, [sp, 0xc]                               |     __asm ("str.w r8, [sp, 0xc]");
    0x0007d250 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0007d252 beq 0x7d2d6                                       |         goto label_8;
                                                                 |     }
    0x0007d254 mov r1, r4                                        |     r1 = r4;
    0x0007d256 add r2, sp, 8                                     |     r2 += var_8h;
    0x0007d258 bl 0x7d114                                        |     r0 = fcn_0007d114 (r0, r1, r2);
    0x0007d25c subs r4, r0, 0                                    |     r4 = r0 - 0;
    0x0007d25e it ge                                             |     
                                                                 |     if (r4 < r0) {
    0x0007d260 ldrge r0, [sp, 8]                                 |         r0 = var_8h;
                                                                 |     }
                                                                 |     if (r4 < r0) {
    0x0007d262 blt 0x7d2e2                                       |         goto label_3;
                                                                 |     }
                                                                 | label_2:
    0x0007d264 bl 0x7d0bc                                        |     r0 = fcn_0007d0bc (r0);
    0x0007d268 cmp r0, 0                                         |     
    0x0007d26a mov r5, r0                                        |     r5 = r0;
    0x0007d26c str r0, [sp, 0xc]                                 |     *((sp + 0xc)) = r0;
                                                                 |     if (r0 < 0) {
    0x0007d26e blt 0x7d2cc                                       |         goto label_9;
                                                                 |     }
    0x0007d270 ldr r1, [pc, 0xa0]                                |     
    0x0007d272 add r2, sp, 4                                     |     r2 += var_4h;
    0x0007d274 add r0, sp, 0xc                                   |     r0 = sp + 0xc;
    0x0007d276 add r1, pc                                        |     r1 = 0xfa58e;
    0x0007d278 bl 0x6a5a8                                        |     r0 = fcn_0006a5a8 (r0, r1, r2);
    0x0007d27c subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 < r0) {
    0x0007d27e blt 0x7d300                                       |         goto label_10;
                                                                 |     }
                                                                 |     if (r7 != 0) {
    0x0007d280 cbz r7, 0x7d28a                                   |         
    0x0007d282 ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x0007d284 movs r2, 0                                        |         r2 = 0;
    0x0007d286 str r2, [sp, 4]                                   |         var_4h = r2;
    0x0007d288 str r3, [r7]                                      |         *(r7) = r3;
                                                                 |     }
    0x0007d28a ldr r5, [sp, 0xc]                                 |     r5 = *((sp + 0xc));
    0x0007d28c mov r4, r6                                        |     r4 = r6;
                                                                 |     if (r6 == 0) {
    0x0007d28e cbz r6, 0x7d29a                                   |         goto label_1;
                                                                 |     }
    0x0007d290 ldr r2, [sp, 8]                                   |     r2 = var_8h;
    0x0007d292 movs r3, 0                                        |     r3 = 0;
    0x0007d294 mov r4, r3                                        |     r4 = r3;
    0x0007d296 str r3, [sp, 8]                                   |     var_8h = r3;
    0x0007d298 str r2, [r6]                                      |     *(r6) = r2;
                                                                 |     do {
                                                                 | label_1:
    0x0007d29a mov r0, r5                                        |         r0 = r5;
    0x0007d29c bl 0x69a04                                        |         fcn_00069a04 (r0, r1, r2, r3);
    0x0007d2a0 ldr r0, [sp, 8]                                   |         r0 = var_8h;
    0x0007d2a2 blx 0x8dac                                        |         fcn_00008dac ();
    0x0007d2a6 movs r3, 0                                        |         r3 = 0;
    0x0007d2a8 ldr r0, [sp, 4]                                   |         r0 = var_4h;
    0x0007d2aa str r3, [sp, 8]                                   |         var_8h = r3;
    0x0007d2ac bl 0x69b30                                        |         fcn_00069b30 (r0, r1, r2, r3);
    0x0007d2b0 ldr r2, [pc, 0x64]                                |         
    0x0007d2b2 ldr r3, [pc, 0x5c]                                |         r3 = *(0x7d312);
    0x0007d2b4 add r2, pc                                        |         r2 = 0xfa5d0;
    0x0007d2b6 ldr r3, [r2, r3]                                  |         r3 = *(0xfa5d0);
    0x0007d2b8 ldr r2, [r3]                                      |         r2 = *(0xfa5d0);
    0x0007d2ba ldr r3, [sp, 0x14]                                |         r3 = *((sp + 0x14));
    0x0007d2bc eors r2, r3                                       |         r2 ^= r3;
    0x0007d2be mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0007d2c2 bne 0x7d308                                       |             goto label_11;
                                                                 |         }
    0x0007d2c4 mov r0, r4                                        |         r0 = r4;
    0x0007d2c6 add sp, 0x18                                      |         
    0x0007d2c8 pop.w {r4, r5, r6, r7, r8, pc}                    |         
                                                                 | label_9:
    0x0007d2cc blx 0x9628                                        |         r0 = fcn_00009628 ();
    0x0007d2d0 ldr r4, [r0]                                      |         r4 = *(r0);
    0x0007d2d2 rsbs r4, r4, 0                                    |         r4 -= ;
    0x0007d2d4 b 0x7d29a                                         |         
                                                                 |     } while (1);
                                                                 | label_8:
    0x0007d2d6 mov r5, r0                                        |     r5 = r0;
    0x0007d2d8 add r0, sp, 0x10                                  |     r0 = sp + 0x10;
    0x0007d2da bl 0x6c7c8                                        |     r0 = fcn_0006c7c8 (r0);
    0x0007d2de subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 < r0) {
    0x0007d2e0 bge 0x7d2e6                                       |         
                                                                 | label_3:
    0x0007d2e2 ldr r5, [sp, 0xc]                                 |         r5 = *((sp + 0xc));
    0x0007d2e4 b 0x7d29a                                         |         goto label_1;
                                                                 |     }
    0x0007d2e6 ldr r2, [pc, 0x34]                                |     
    0x0007d2e8 mov r3, r8                                        |     r3 = r8;
    0x0007d2ea ldr r1, [sp, 0x10]                                |     r1 = *((sp + 0x10));
    0x0007d2ec mov r0, r5                                        |     r0 = r5;
    0x0007d2ee mvn r4, 0xb                                       |     r4 = ~0xb;
    0x0007d2f2 add r2, pc                                        |     r2 = 0xfa614;
    0x0007d2f4 bl 0x74ccc                                        |     fcn_00074ccc ();
    0x0007d2f8 str r0, [sp, 8]                                   |     var_8h = r0;
    0x0007d2fa cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0007d2fc bne 0x7d264                                       |         goto label_2;
                                                                 |     }
    0x0007d2fe b 0x7d2e2                                         |     goto label_3;
                                                                 | label_10:
    0x0007d300 ldr r0, [sp, 8]                                   |     r0 = var_8h;
    0x0007d302 blx 0x8f68                                        |     fcn_00008f68 ();
    0x0007d306 b 0x7d2e2                                         |     goto label_3;
                                                                 | label_11:
    0x0007d308 blx 0x927c                                        |     fprintf_chk ()
    0x0007d30c invalid                                           |     
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7d634 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0007d634 ()                              | void fcn_0007d634 (uint32_t arg1, int16_t arg2) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0007d634 blmi 0x100ff30                            |     __asm ("blmi aav.0x0004b486");
    0x0007d638 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x0007d63c sub sp, 8                                 |     
    0x0007d63e add r2, pc                                |     r2 += pc;
    0x0007d640 ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x0007d642 ldr r3, [r3]                              |     r3 = *(r3);
    0x0007d644 str r3, [sp, 4]                           |     var_4h = r3;
    0x0007d646 mov.w r3, 0                               |     r3 = 0;
    0x0007d64a cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0007d64c beq 0x7d6e4                               |         goto label_4;
                                                         |     }
    0x0007d64e ldrb r4, [r0]                             |     r4 = *(r0);
    0x0007d650 mvn r6, 0x15                              |     r6 = ~0x15;
    0x0007d654 cbnz r4, 0x7d678                          |     
                                                         |     while (r5 == 0) {
                                                         | label_0:
    0x0007d656 mov r0, r4                                |         r0 = r4;
    0x0007d658 blx 0x8dac                                |         fcn_00008dac ();
    0x0007d65c ldr r2, [pc, 0xd4]                        |         
    0x0007d65e ldr r3, [pc, 0xd0]                        |         r3 = *(0x7d732);
    0x0007d660 add r2, pc                                |         r2 = 0xfad98;
    0x0007d662 ldr r3, [r2, r3]                          |         r3 = *(0xfad98);
    0x0007d664 ldr r2, [r3]                              |         r2 = *(0xfad98);
    0x0007d666 ldr r3, [sp, 4]                           |         r3 = var_4h;
    0x0007d668 eors r2, r3                               |         r2 ^= r3;
    0x0007d66a mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0007d66e bne 0x7d722                               |             goto label_5;
                                                         |         }
    0x0007d670 mov r0, r6                                |         r0 = r6;
    0x0007d672 add sp, 8                                 |         
    0x0007d674 pop.w {r4, r5, r6, r7, r8, pc}            |         
    0x0007d678 cmp r4, 0x2d                              |         
    0x0007d67a mov r5, r1                                |         r5 = r1;
                                                         |         if (r4 != 0x2d) {
    0x0007d67c bne 0x7d69e                               |             goto label_6;
                                                         |         }
    0x0007d67e ldrb r3, [r0, 1]                          |         r3 = *((r0 + 1));
                                                         |         if (r3 != 0) {
    0x0007d680 cbnz r3, 0x7d69e                          |             goto label_6;
                                                         |         }
    0x0007d682 ldr r0, [pc, 0xb4]                        |         
    0x0007d684 add r0, pc                                |         r0 = 0xfadc2;
    0x0007d686 blx 0x9200                                |         r0 = fcn_00009200 ();
    0x0007d68a mov r4, r0                                |         r4 = r0;
    0x0007d68c cmp r0, 0                                 |         
                                                         |         if (r0 == 0) {
    0x0007d68e beq 0x7d726                               |             goto label_7;
                                                         |         }
                                                         | label_3:
    0x0007d690 mov r6, r5                                |         r6 = r5;
    0x0007d692 cmp r5, 0                                 |         
    0x0007d694 beq 0x7d656                               |         
                                                         |     }
    0x0007d696 str r4, [r5]                              |     *(r5) = r4;
    0x0007d698 movs r4, 0                                |     r4 = 0;
    0x0007d69a mov r6, r4                                |     r6 = r4;
    0x0007d69c b 0x7d656                                 |     goto label_0;
                                                         | label_6:
    0x0007d69e mov.w r8, 0                               |     r8 = 0;
    0x0007d6a2 mov r1, sp                                |     r1 = sp;
    0x0007d6a4 str.w r8, [sp]                            |     __asm ("str.w r8, [sp]");
    0x0007d6a8 bl 0x7d580                                |     r0 = fcn_0007d580 (r0, r1);
    0x0007d6ac subs r6, r0, 0                            |     r6 = r0 - 0;
    0x0007d6ae ldr r7, [sp]                              |     r7 = *(sp);
                                                         |     if (r6 < r0) {
    0x0007d6b0 blt 0x7d6e0                               |         goto label_8;
                                                         |     }
    0x0007d6b2 ldr r6, [pc, 0x88]                        |     
    0x0007d6b4 mov r0, r7                                |     r0 = r7;
    0x0007d6b6 add r6, pc                                |     r6 = 0xfadf8;
    0x0007d6b8 mov r1, r6                                |     r1 = r6;
    0x0007d6ba bl 0x803c0                                |     r0 = fcn_000803c0 (r0, r1);
    0x0007d6be mov r4, r0                                |     r4 = r0;
                                                         |     if (r0 == 0) {
    0x0007d6c0 cbz r0, 0x7d6d0                           |         goto label_9;
                                                         |     }
    0x0007d6c2 mov r4, r8                                |     r4 = r8;
    0x0007d6c4 mvn r6, 0x15                              |     r6 = ~0x15;
                                                         |     do {
                                                         | label_1:
    0x0007d6c8 mov r0, r7                                |         r0 = r7;
    0x0007d6ca blx 0x8dac                                |         fcn_00008dac ();
    0x0007d6ce b 0x7d656                                 |         goto label_0;
                                                         | label_9:
    0x0007d6d0 mov r1, r6                                |         r1 = r6;
    0x0007d6d2 mov r0, r7                                |         r0 = r7;
    0x0007d6d4 bl 0x80428                                |         r0 = fcn_00080428 (r0, r1);
                                                         |         if (r0 == 0) {
    0x0007d6d8 cbz r0, 0x7d6fa                           |             goto label_10;
                                                         |         }
                                                         | label_2:
    0x0007d6da mvn r6, 0x15                              |         r6 = ~0x15;
    0x0007d6de b 0x7d6c8                                 |         
                                                         |     } while (1);
                                                         | label_8:
    0x0007d6e0 mov r4, r8                                |     r4 = r8;
    0x0007d6e2 b 0x7d6c8                                 |     goto label_1;
                                                         | label_4:
    0x0007d6e4 ldr r1, [pc, 0x58]                        |     
    0x0007d6e6 mov.w r2, 0x19e                           |     r2 = 0x19e;
    0x0007d6ea ldr r3, [pc, 0x58]                        |     
    0x0007d6ec ldr r0, [pc, 0x58]                        |     
    0x0007d6ee add r1, pc                                |     r1 = 0xfae32;
    0x0007d6f0 add r3, pc                                |     r3 = 0xfae3a;
    0x0007d6f2 adds r1, 7                                |     r1 += 7;
    0x0007d6f4 add r0, pc                                |     r0 = 0xfae40;
    0x0007d6f6 bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
                                                         | label_10:
    0x0007d6fa mov r2, r4                                |     r2 = r4;
    0x0007d6fc mov r1, r7                                |     r1 = r7;
    0x0007d6fe mov r0, r6                                |     r0 = r6;
    0x0007d700 bl 0x7a8a8                                |     r0 = fcn_0007a8a8 (r0, r1);
    0x0007d704 mov r4, r0                                |     r4 = r0;
                                                         |     if (r0 == 0) {
    0x0007d706 cbz r0, 0x7d71a                           |         goto label_11;
                                                         |     }
    0x0007d708 bl 0x75b1c                                |     fcn_00075b1c (r0);
    0x0007d70c ldr r7, [sp]                              |     r7 = *(sp);
    0x0007d70e cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0007d710 beq 0x7d6da                               |         goto label_2;
                                                         |     }
    0x0007d712 mov r0, r7                                |     r0 = r7;
    0x0007d714 blx 0x8dac                                |     fcn_00008dac ();
    0x0007d718 b 0x7d690                                 |     goto label_3;
                                                         | label_11:
    0x0007d71a ldr r7, [sp]                              |     r7 = *(sp);
    0x0007d71c mvn r6, 0xb                               |     r6 = ~0xb;
    0x0007d720 b 0x7d6c8                                 |     goto label_1;
                                                         | label_5:
    0x0007d722 blx 0x927c                                |     fprintf_chk ()
                                                         | label_7:
    0x0007d726 mvn r6, 0xb                               |     r6 = ~0xb;
    0x0007d72a b 0x7d656                                 |     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/libexec/udevadm @ 0x7d74c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.0007d74c ()              | void fcn_0007d74c (int16_t arg2) {
                                         |     int16_t var_0h;
                                         |     int16_t var_4h;
                                         |     r1 = arg2;
    0x0007d74c push {r4, r5, lr}         |     
    0x0007d74e mov r5, r1                |     r5 = r1;
    0x0007d750 ldr r1, [pc, 0x64]        |     
    0x0007d752 sub sp, 0xc               |     
    0x0007d754 movs r3, 0                |     r3 = 0;
    0x0007d756 ldr r2, [pc, 0x64]        |     r2 = *(0x7d7be);
    0x0007d758 add r1, pc                |     r1 = 0xfaf14;
    0x0007d75a ldr r2, [r1, r2]          |     
    0x0007d75c ldr r2, [r2]              |     r2 = *(0xfaf14);
    0x0007d75e str r2, [sp, 4]           |     var_4h = r2;
    0x0007d760 mov.w r2, 0               |     r2 = 0;
    0x0007d764 str r3, [sp]              |     *(sp) = r3;
                                         |     if (r0 != 0) {
    0x0007d766 cbz r0, 0x7d79c           |         
    0x0007d768 mov r1, sp                |         r1 = sp;
    0x0007d76a bl 0x7d470                |         r0 = fcn_0007d470 (r0, r1);
    0x0007d76e subs r4, r0, 0            |         r4 = r0 - 0;
                                         |         if (r4 >= r0) {
    0x0007d770 blt 0x7d77c               |             
    0x0007d772 ldr r0, [sp]              |             r0 = *(sp);
    0x0007d774 mov r1, r5                |             r1 = r5;
    0x0007d776 bl 0x7d634                |             r0 = fcn_0007d634 (r0, r1);
    0x0007d77a mov r4, r0                |             r4 = r0;
                                         |         }
    0x0007d77c ldr r0, [sp]              |         r0 = *(sp);
    0x0007d77e blx 0x8dac                |         fcn_00008dac ();
    0x0007d782 ldr r2, [pc, 0x3c]        |         
    0x0007d784 ldr r3, [pc, 0x34]        |         r3 = *(0x7d7bc);
    0x0007d786 add r2, pc                |         r2 = 0xfaf4c;
    0x0007d788 ldr r3, [r2, r3]          |         r3 = *(0xfaf4c);
    0x0007d78a ldr r2, [r3]              |         r2 = *(0xfaf4c);
    0x0007d78c ldr r3, [sp, 4]           |         r3 = var_4h;
    0x0007d78e eors r2, r3               |         r2 ^= r3;
    0x0007d790 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x0007d794 bne 0x7d7b2               |             goto label_0;
                                         |         }
    0x0007d796 mov r0, r4                |         r0 = r4;
    0x0007d798 add sp, 0xc               |         
    0x0007d79a pop {r4, r5, pc}          |         
                                         |     }
    0x0007d79c ldr r1, [pc, 0x24]        |     
    0x0007d79e movw r2, 0x241            |     r2 = 0x241;
    0x0007d7a2 ldr r3, [pc, 0x24]        |     
    0x0007d7a4 ldr r0, [pc, 0x24]        |     
    0x0007d7a6 add r1, pc                |     r1 = 0xfaf6e;
    0x0007d7a8 add r3, pc                |     r3 = 0xfaf76;
    0x0007d7aa adds r1, 7                |     r1 += 7;
    0x0007d7ac add r0, pc                |     r0 = 0xfaf7c;
    0x0007d7ae bl 0x71518                |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                         | label_0:
    0x0007d7b2 blx 0x927c                |     fprintf_chk ()
    0x0007d7b6 nop                       |     
                                         |     if (r4 != 0) {
    0x0007d7b8 cbz r4, 0x7d816           |         
    0x0007d7ba movs r4, r0               |         r4 = r0;
    0x0007d7bc lsls r0, r0, 0x13         |         r0 <<= 0x13;
    0x0007d7be movs r0, r0               |         
                                         |         if (r6 != 0) {
    0x0007d7c0 cbz r6, 0x7d812           |             
    0x0007d7c2 movs r4, r0               |             r4 = r0;
    0x0007d7c4 adr r5, 0x178             |             r5 = 0x178;
    0x0007d7c6 movs r2, r0               |             r2 = r0;
    0x0007d7c8 adr r6, 0x220             |             r6 = 0x220;
    0x0007d7ca movs r2, r0               |             r2 = r0;
    0x0007d7cc lsls r4, r1, 0x17         |             r4 = r1 << 0x17;
    0x0007d7ce movs r1, r0               |             r1 = r0;
                                         |         }
                                         |         if (r1 < r0) {
    0x0007d812 blt 0x7d826               |             goto label_1;
                                         |         }
    0x0007d814 ldr r0, [sp]              |         r0 = *(sp);
                                         |     }
    0x0007d816 bl 0x7d7d0                |     r0 = fcn_0007d7d0 (r0);
                                         |     if (r0 == 0) {
    0x0007d81a cbz r0, 0x7d852           |         goto label_2;
                                         |     }
    0x0007d81c mov r0, r4                |     r0 = r4;
                                         |     if (r4 == 0) {
    0x0007d81e cbz r4, 0x7d826           |         goto label_1;
                                         |     }
    0x0007d820 ldr r3, [sp]              |     r3 = *(sp);
    0x0007d822 mov r0, r5                |     r0 = r5;
    0x0007d824 str r3, [r4]              |     *(r4) = r3;
                                         |     do {
                                         | label_1:
    0x0007d826 ldr r2, [pc, 0x3c]        |         
    0x0007d828 ldr r3, [pc, 0x34]        |         r3 = *(0x7d860);
    0x0007d82a add r2, pc                |         r2 = 0xfb094;
    0x0007d82c ldr r3, [r2, r3]          |         r3 = *(0xfb094);
    0x0007d82e ldr r2, [r3]              |         r2 = *(0xfb094);
    0x0007d830 ldr r3, [sp, 4]           |         r3 = var_4h;
    0x0007d832 eors r2, r3               |         r2 ^= r3;
    0x0007d834 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x0007d838 bne 0x7d858               |             goto label_3;
                                         |         }
    0x0007d83a add sp, 0xc               |         
    0x0007d83c pop {r4, r5, pc}          |         
                                         | label_2:
    0x0007d852 mvn r0, 5                 |         r0 = ~5;
    0x0007d856 b 0x7d826                 |         
                                         |     } while (1);
                                         | label_3:
    0x0007d858 blx 0x927c                |     fprintf_chk ()
    0x0007d85c uxtb r4, r2               |     r4 = (int8_t) r2;
    0x0007d85e movs r4, r0               |     r4 = r0;
    0x0007d860 lsls r0, r0, 0x13         |     r0 <<= 0x13;
    0x0007d862 movs r0, r0               |     
    0x0007d864 uxth r2, r3               |     r2 = (int16_t) r3;
    0x0007d866 movs r4, r0               |     r4 = r0;
    0x0007d868 adr r5, 0x3f8             |     r5 = 0x3f8;
    0x0007d86a movs r2, r0               |     r2 = r0;
    0x0007d86c adr r7, 0x130             |     r7 = 0x130;
    0x0007d86e movs r2, r0               |     r2 = r0;
    0x0007d870 push {r3, r4, r5}         |     
    0x0007d872 movs r0, r0               |     
                                         | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7d874 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0007d874 ()                          | void fcn_0007d874 (int16_t arg1) {
                                                     |     int16_t var_24h;
                                                     |     r0 = arg1;
    0x0007d874 blmi 0x6500d4                         |     __asm ("blmi aav.0x0004b248");
    0x0007d878 push {r4, lr}                         |     
    0x0007d87a sub sp, 0x28                          |     
    0x0007d87c add r2, pc                            |     r2 += pc;
    0x0007d87e ldr.w lr, [pc, 0x58]                  |     
    0x0007d882 mov r4, r0                            |     r4 = r0;
    0x0007d884 mov ip, sp                            |     
    0x0007d886 ldr r3, [r2, r3]                      |     r3 = *((r2 + r3));
    0x0007d888 add lr, pc                            |     lr = 0xfb166;
    0x0007d88a ldr r3, [r3]                          |     r3 = *(r3);
    0x0007d88c str r3, [sp, 0x24]                    |     var_24h = r3;
    0x0007d88e mov.w r3, 0                           |     r3 = 0;
    0x0007d892 ldm.w lr!, {r0, r1, r2, r3}           |     r0 = *(lr!);
                                                     |     r1 = *((lr! + 4));
                                                     |     r2 = *((lr! + 8));
                                                     |     r3 = *((lr! + 12));
    0x0007d896 stm.w ip!, {r0, r1, r2, r3}           |     *(ip!) = r0;
                                                     |     *((ip! + 4)) = r1;
                                                     |     *((ip! + 8)) = r2;
                                                     |     *((ip! + 12)) = r3;
    0x0007d89a ldm.w lr!, {r0, r1, r2, r3}           |     r0 = *(lr!);
                                                     |     r1 = *((lr! + 4));
                                                     |     r2 = *((lr! + 8));
                                                     |     r3 = *((lr! + 12));
    0x0007d89e stm.w ip!, {r0, r1, r2, r3}           |     *(ip!) = r0;
                                                     |     *((ip! + 4)) = r1;
                                                     |     *((ip! + 8)) = r2;
                                                     |     *((ip! + 12)) = r3;
    0x0007d8a2 mov r1, r4                            |     r1 = r4;
    0x0007d8a4 ldr.w r3, [lr]                        |     r3 = *(0xfb166);
    0x0007d8a8 mov r0, sp                            |     r0 = sp;
    0x0007d8aa str.w r3, [ip]                        |     __asm ("str.w r3, [ip]");
    0x0007d8ae bl 0x75cd8                            |     fcn_00075cd8 (r0, r1);
    0x0007d8b2 ldr r2, [pc, 0x28]                    |     
    0x0007d8b4 ldr r3, [pc, 0x1c]                    |     r3 = *(0x7d8d4);
    0x0007d8b6 add r2, pc                            |     r2 = 0xfb198;
    0x0007d8b8 ldr r3, [r2, r3]                      |     r3 = *(0xfb198);
    0x0007d8ba ldr r2, [r3]                          |     r2 = *(0xfb198);
    0x0007d8bc ldr r3, [sp, 0x24]                    |     r3 = var_24h;
    0x0007d8be eors r2, r3                           |     r2 ^= r3;
    0x0007d8c0 mov.w r3, 0                           |     r3 = 0;
                                                     |     if (r2 == r3) {
    0x0007d8c4 bne 0x7d8ca                           |         
    0x0007d8c6 add sp, 0x28                          |         
    0x0007d8c8 pop {r4, pc}                          |         
                                                     |     }
    0x0007d8ca blx 0x927c                            |     fprintf_chk ()
    0x0007d8ce nop                                   |     
    0x0007d8d0 sxtb r0, r1                           |     r0 = (int32_t) r1;
    0x0007d8d2 movs r4, r0                           |     r4 = r0;
    0x0007d8d4 lsls r0, r0, 0x13                     |     r0 <<= 0x13;
    0x0007d8d6 movs r0, r0                           |     
                                                     |     if (r0 == 0) {
    0x0007d8d8 cbnz r0, 0x7d93e                      |         
    0x0007d8da movs r4, r0                           |         r4 = r0;
    0x0007d8dc sxth r6, r1                           |         __asm ("sxth r6, r1");
    0x0007d8de movs r4, r0                           |         r4 = r0;
                                                     |     }
    0x0007d93e mvn r4, 0x15                          |     r4 = ~0x15;
    0x0007d942 mov r0, r5                            |     r0 = r5;
    0x0007d944 blx 0x8dac                            |     fcn_00008dac ();
    0x0007d948 mov r0, r4                            |     r0 = r4;
    0x0007d94a pop.w {r4, r5, r6, r7, r8, pc}        |     
                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7d984 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0007d984 ()                      | void fcn_0007d984 (int16_t arg1) {
                                                 |     int16_t var_ch_2;
                                                 |     int32_t var_0h_2;
                                                 |     int32_t var_0h_3;
                                                 |     int16_t var_8h;
                                                 |     int16_t var_ch;
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     r0 = arg1;
    0x0007d984 blmi 0x950214                     |     __asm ("blmi aav.0x0004b138");
    0x0007d988 push {r4, r5, r6, lr}             |     
    0x0007d98a mov r5, r0                        |     r5 = r0;
    0x0007d98c add r2, pc                        |     r2 += pc;
    0x0007d98e sub sp, 8                         |     
    0x0007d990 movs r4, 0                        |     r4 = 0;
    0x0007d992 ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x0007d994 ldr r3, [r3]                      |     r3 = *(r3);
    0x0007d996 str r3, [sp, 4]                   |     var_4h = r3;
    0x0007d998 mov.w r3, 0                       |     r3 = 0;
    0x0007d99c str r4, [sp]                      |     *(sp) = r4;
    0x0007d99e blx 0x9658                        |     r0 = fcn_00009658 ();
    0x0007d9a2 cmp r0, r5                        |     
                                                 |     if (r0 == r5) {
    0x0007d9a4 beq 0x7d9dc                       |         goto label_2;
                                                 |     }
    0x0007d9a6 blx 0x90bc                        |     r0 = fcn_000090bc ();
    0x0007d9aa cmp r0, r5                        |     
                                                 |     if (r0 == r5) {
    0x0007d9ac beq 0x7d9dc                       |         goto label_2;
                                                 |     }
    0x0007d9ae mov r0, r5                        |     r0 = r5;
    0x0007d9b0 bl 0x7d7d0                        |     r0 = fcn_0007d7d0 (r0);
                                                 |     if (r0 == 0) {
    0x0007d9b4 cbz r0, 0x7da02                   |         goto label_3;
                                                 |     }
    0x0007d9b6 mov r0, sp                        |     r0 = sp;
    0x0007d9b8 bl 0x7d8e0                        |     fcn_0007d8e0 (r0);
    0x0007d9bc subs r6, r0, 0                    |     r6 -= var_0h;
    0x0007d9be ldr r0, [sp]                      |     r0 = *(sp);
                                                 |     if (r6 < var_0h) {
    0x0007d9c0 blt 0x7d9e0                       |         goto label_0;
                                                 |     }
                                                 |     if (r6 == var_0h) {
    0x0007d9c2 beq 0x7d9e0                       |         goto label_0;
                                                 |     }
    0x0007d9c4 subs r2, r0, 4                    |     r2 = r0 - 4;
    0x0007d9c6 mov r3, r4                        |     r3 = r4;
    0x0007d9c8 b 0x7d9d0                         |     
                                                 |     while (r5 != r1) {
    0x0007d9ca adds r3, 1                        |         r3++;
    0x0007d9cc cmp r6, r3                        |         
                                                 |         if (r6 == r3) {
    0x0007d9ce beq 0x7d9fe                       |             goto label_4;
                                                 |         }
    0x0007d9d0 ldr r1, [r2, 4]!                  |         r1 = *((r2 += 4));
    0x0007d9d4 cmp r5, r1                        |         
    0x0007d9d6 bne 0x7d9ca                       |         
                                                 |     }
    0x0007d9d8 movs r6, 1                        |     r6 = 1;
    0x0007d9da b 0x7d9e0                         |     goto label_0;
                                                 | label_2:
    0x0007d9dc ldr r0, [sp]                      |     r0 = *(sp);
    0x0007d9de movs r6, 1                        |     r6 = 1;
                                                 |     do {
                                                 | label_0:
    0x0007d9e0 blx 0x8dac                        |         fcn_00008dac ();
    0x0007d9e4 ldr r2, [pc, 0x30]                |         
    0x0007d9e6 ldr r3, [pc, 0x2c]                |         r3 = *(0x7da16);
    0x0007d9e8 add r2, pc                        |         r2 = 0xfb404;
    0x0007d9ea ldr r3, [r2, r3]                  |         r3 = *(0xfb404);
    0x0007d9ec ldr r2, [r3]                      |         r2 = *(0xfb404);
    0x0007d9ee ldr r3, [sp, 4]                   |         r3 = var_4h;
    0x0007d9f0 eors r2, r3                       |         r2 ^= r3;
    0x0007d9f2 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0007d9f6 bne 0x7da0a                       |             goto label_5;
                                                 |         }
    0x0007d9f8 mov r0, r6                        |         r0 = r6;
    0x0007d9fa add sp, 8                         |         
    0x0007d9fc pop {r4, r5, r6, pc}              |         
                                                 | label_4:
    0x0007d9fe movs r6, 0                        |         r6 = 0;
    0x0007da00 b 0x7d9e0                         |         
                                                 |     } while (1);
                                                 | label_3:
    0x0007da02 ldr r0, [sp]                      |     r0 = *(sp);
    0x0007da04 mvn r6, 0x15                      |     r6 = ~0x15;
    0x0007da08 b 0x7d9e0                         |     goto label_0;
                                                 | label_5:
    0x0007da0a blx 0x927c                        |     fprintf_chk ()
    0x0007da0e nop                               |     
                                                 |     if (r0 != 0) {
    0x0007da10 cbz r0, 0x7da22                   |         
    0x0007da12 movs r4, r0                       |         r4 = r0;
    0x0007da14 lsls r0, r0, 0x13                 |         r0 <<= 0x13;
    0x0007da16 movs r0, r0                       |         
    0x0007da18 sub sp, 0x170                     |         
    0x0007da1a movs r4, r0                       |         r4 = r0;
    0x0007da1c ldr r2, [pc, 0xb0]                |         r2 = *(0x7dad0);
    0x0007da1e ldr r3, [pc, 0xb4]                |         r3 = *(0x7dad6);
    0x0007da20 push {r4, r5, r6, r7, lr}         |         
                                                 |     }
    0x0007da22 sub sp, 0x14                      |     
    0x0007da24 add r2, pc                        |     r2 += pc;
    0x0007da26 mov r6, r1                        |     r6 = r1;
    0x0007da28 mov r4, r0                        |     r4 = r0;
    0x0007da2a ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x0007da2c ldr r3, [r3]                      |     r3 = *(r3);
    0x0007da2e str r3, [sp, 0xc]                 |     var_ch = r3;
    0x0007da30 mov.w r3, 0                       |     r3 = 0;
                                                 |     if (r0 == 0) {
    0x0007da34 cbnz r0, 0x7da60                  |         
    0x0007da36 ldr r0, [pc, 0xa0]                |         
    0x0007da38 add r1, sp, 8                     |         r1 += var_8h;
    0x0007da3a str r4, [sp, 8]                   |         var_8h = r4;
    0x0007da3c add r0, pc                        |         r0 = 0xfb51a;
    0x0007da3e bl 0x6b320                        |         r0 = fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x0007da42 adds r3, r0, 2                    |         r3 = r0 + 2;
    0x0007da44 ldr r7, [sp, 8]                   |         r7 = var_8h;
    0x0007da46 mov r5, r0                        |         r5 = r0;
                                                 |         if (r3 != r0) {
    0x0007da48 beq 0x7da5a                       |             
    0x0007da4a cmp r0, 0                         |             
                                                 |             if (r0 < 0) {
    0x0007da4c blt 0x7daa0                       |                 goto label_6;
                                                 |             }
    0x0007da4e ldr r1, [pc, 0x8c]                |             
    0x0007da50 mov r0, r7                        |             r0 = r7;
    0x0007da52 add r1, pc                        |             r1 = 0xfb534;
    0x0007da54 blx 0x95e0                        |             r0 = fcn_000095e0 ();
                                                 |             if (r0 != 0) {
    0x0007da58 cbnz r0, 0x7da94                  |                 goto label_7;
                                                 |             }
                                                 |         }
    0x0007da5a mov r0, r7                        |         r0 = r7;
    0x0007da5c blx 0x8dac                        |         fcn_00008dac ();
                                                 |     }
    0x0007da60 mov r1, r6                        |     r1 = r6;
    0x0007da62 mov r0, r4                        |     r0 = r4;
    0x0007da64 blx 0x8a50                        |     r0 = fcn_00008a50 ();
    0x0007da68 cmp r0, 0                         |     
    0x0007da6a it ge                             |     
                                                 |     if (r0 < 0) {
    0x0007da6c movge r5, 0                       |         r5 = 0;
                                                 |     }
    0x0007da6e blt 0x7da8a                       |     
                                                 |     while (1) {
                                                 | label_1:
    0x0007da70 ldr r2, [pc, 0x6c]                |         
    0x0007da72 ldr r3, [pc, 0x60]                |         r3 = *(0x7dad6);
    0x0007da74 add r2, pc                        |         r2 = 0xfb558;
    0x0007da76 ldr r3, [r2, r3]                  |         r3 = *(0xfb558);
    0x0007da78 ldr r2, [r3]                      |         r2 = *(0xfb558);
    0x0007da7a ldr r3, [sp, 0xc]                 |         r3 = var_ch;
    0x0007da7c eors r2, r3                       |         r2 ^= r3;
    0x0007da7e mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0007da82 bne 0x7dacc                       |             goto label_8;
                                                 |         }
    0x0007da84 mov r0, r5                        |         r0 = r5;
    0x0007da86 add sp, 0x14                      |         
    0x0007da88 pop {r4, r5, r6, r7, pc}          |         
    0x0007da8a blx 0x9628                        |         r0 = fcn_00009628 ();
    0x0007da8e ldr r5, [r0]                      |         r5 = *(r0);
    0x0007da90 rsbs r5, r5, 0                    |         r5 -= ;
    0x0007da92 b 0x7da70                         |         
                                                 |     }
                                                 | label_7:
    0x0007da94 bl 0x70bf8                        |     r0 = fcn_00070bf8 ();
    0x0007da98 cmp r0, 6                         |     
    0x0007da9a it le                             |     
                                                 |     if (r0 > 6) {
    0x0007da9c movle r5, r4                      |         r5 = r4;
                                                 |     }
    0x0007da9e bgt 0x7daa8                       |     
                                                 |     while (1) {
                                                 | label_6:
    0x0007daa0 mov r0, r7                        |         r0 = r7;
    0x0007daa2 blx 0x8dac                        |         fcn_00008dac ();
    0x0007daa6 b 0x7da70                         |         goto label_1;
    0x0007daa8 ldr r2, [pc, 0x38]                |         
    0x0007daaa movw r3, 0x3ad                    |         r3 = 0x3ad;
    0x0007daae ldr r0, [pc, 0x38]                |         
    0x0007dab0 mov r5, r4                        |         r5 = r4;
    0x0007dab2 ldr r1, [pc, 0x38]                |         
    0x0007dab4 add r2, pc                        |         r2 = 0xfb59c;
    0x0007dab6 add r0, pc                        |         r0 = 0xfb5a4;
    0x0007dab8 adds r2, 7                        |         r2 += 7;
    0x0007daba add r1, pc                        |         r1 = 0xfb5ac;
    0x0007dabc strd r1, r0, [sp]                 |         __asm ("strd r1, r0, [sp]");
    0x0007dac0 mov r1, r4                        |         r1 = r4;
    0x0007dac2 movs r0, 7                        |         r0 = 7;
    0x0007dac4 bl 0x71448                        |         fcn_00071448 ();
    0x0007dac8 ldr r7, [sp, 8]                   |         r7 = var_8h;
    0x0007daca b 0x7daa0                         |         
                                                 |     }
                                                 | label_8:
    0x0007dacc blx 0x927c                        |     fprintf_chk ()
    0x0007dad0 sub sp, 0x80                      |     
    0x0007dad2 movs r4, r0                       |     r4 = r0;
    0x0007dad4 lsls r0, r0, 0x13                 |     r0 <<= 0x13;
    0x0007dad6 movs r0, r0                       |     
    0x0007dad8 adr r4, 0xa0                      |     r4 = 0xa0;
    0x0007dada movs r2, r0                       |     r2 = r0;
    0x0007dadc adr r4, 0xa8                      |     r4 = 0xa8;
    0x0007dade movs r2, r0                       |     r2 = r0;
    0x0007dae0 add sp, 0x140                     |     
    0x0007dae2 movs r4, r0                       |     r4 = r0;
    0x0007dae4 adr r3, 0x240                     |     r3 = 0x240;
    0x0007dae6 movs r2, r0                       |     r2 = r0;
    0x0007dae8 adr r3, 0x338                     |     r3 = 0x338;
    0x0007daea movs r2, r0                       |     r2 = r0;
    0x0007daec adr r4, 0x398                     |     r4 = 0x398;
    0x0007daee movs r2, r0                       |     r2 = r0;
    0x0007daf0 movs r1, 0                        |     r1 = 0;
    0x0007daf2 push {r3, lr}                     |     
    0x0007daf4 mov r0, r1                        |     r0 = r1;
    0x0007daf6 bl 0x7da1c                        |     r0 = void (*0x7da1c)(uint32_t) (r0);
    0x0007dafa cmp r0, 0                         |     
                                                 |     if (r0 >= 0) {
    0x0007dafc blt 0x7db1e                       |         
    0x0007dafe movs r2, 0                        |         r2 = 0;
    0x0007db00 mov r1, r2                        |         r1 = r2;
    0x0007db02 mov r0, r2                        |         r0 = r2;
    0x0007db04 blx 0x8fd8                        |         r0 = fcn_00008fd8 ();
    0x0007db08 cmp r0, 0                         |         
                                                 |         if (r0 < 0) {
    0x0007db0a blt 0x7db20                       |             goto label_9;
                                                 |         }
    0x0007db0c movs r2, 0                        |         r2 = 0;
    0x0007db0e mov r1, r2                        |         r1 = r2;
    0x0007db10 mov r0, r2                        |         r0 = r2;
    0x0007db12 blx 0x9570                        |         r0 = memchr (r0, r1, r2);
    0x0007db16 cmp r0, 0                         |         
    0x0007db18 it ge                             |         
                                                 |         if (r0 < 0) {
    0x0007db1a movge r0, 0                       |             r0 = 0;
                                                 |         }
                                                 |         if (r0 < 0) {
    0x0007db1c blt 0x7db20                       |             goto label_9;
                                                 |         }
                                                 |     }
    0x0007db1e pop {r3, pc}                      |     
                                                 | label_9:
    0x0007db20 blx 0x9628                        |     r0 = fcn_00009628 ();
    0x0007db24 ldr r0, [r0]                      |     r0 = *(r0);
    0x0007db26 rsbs r0, r0, 0                    |     r0 -= ;
    0x0007db28 pop {r3, pc}                      |     
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7db58 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0007db58 ()                                      | void fcn_0007db58 (int16_t arg_38h, int16_t arg_3ch, int16_t arg_168h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0007db58 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x0007db5c mov r7, r2                                        |     r7 = r2;
    0x0007db5e ldr r2, [pc, 0xf0]                                |     
    0x0007db60 mov r6, r3                                        |     r6 = r3;
    0x0007db62 sub sp, 0x14                                      |     
    0x0007db64 mov r5, r0                                        |     r5 = r0;
    0x0007db66 ldr r3, [pc, 0xec]                                |     r3 = *(0x7dc56);
    0x0007db68 mov r8, r1                                        |     r8 = r1;
    0x0007db6a add r2, pc                                        |     r2 = 0xfb7c0;
    0x0007db6c ldr.w sl, [pc, 0xe8]                              |     
    0x0007db70 mov r4, sp                                        |     r4 = sp;
    0x0007db72 ldr.w fp, [sp, 0x38]                              |     fp = *(arg_38h);
    0x0007db76 ldr r3, [r2, r3]                                  |     
    0x0007db78 add sl, pc                                        |     sl = 0xfb7d4;
    0x0007db7a ldr r3, [r3]                                      |     r3 = *(0xfb7c0);
    0x0007db7c str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0007db7e mov.w r3, 0                                       |     r3 = 0;
    0x0007db82 add.w r3, sl, 0x24                                |     r3 = sl + 0x24;
    0x0007db86 ldm.w r3, {r0, r1, r2}                            |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
                                                                 |     r2 = *((r3 + 8));
    0x0007db8a stm.w r4, {r0, r1, r2}                            |     *(r4) = r0;
                                                                 |     *((r4 + 4)) = r1;
                                                                 |     *((r4 + 8)) = r2;
    0x0007db8e mov r0, r4                                        |     r0 = r4;
    0x0007db90 ldr r1, [r5]                                      |     r1 = *(r5);
    0x0007db92 bl 0x7af74                                        |     r0 = fcn_0007af74 (r0, r1);
                                                                 |     if (r0 == 0) {
    0x0007db96 cbz r0, 0x7dbe2                                   |         goto label_2;
                                                                 |     }
    0x0007db98 ldr r3, [pc, 0xc0]                                |     
    0x0007db9a add r3, pc                                        |     r3 = 0xfb7fa;
    0x0007db9c str r3, [r5]                                      |     *(r5) = r3;
    0x0007db9e cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x0007dba2 beq 0x7dbaa                                       |         
    0x0007dba4 movs r3, 0                                        |         r3 = 0;
    0x0007dba6 str.w r3, [r8]                                    |         __asm ("str.w r3, [r8]");
                                                                 |     }
                                                                 |     if (r7 != 0) {
    0x0007dbaa cbz r7, 0x7dbb0                                   |         
    0x0007dbac movs r3, 0                                        |         r3 = 0;
    0x0007dbae str r3, [r7]                                      |         *(r7) = r3;
                                                                 |     }
                                                                 |     if (r6 != 0) {
    0x0007dbb0 cbz r6, 0x7dbb8                                   |         
    0x0007dbb2 ldr r3, [pc, 0xac]                                |         
    0x0007dbb4 add r3, pc                                        |         r3 = 0xfb81a;
    0x0007dbb6 str r3, [r6]                                      |         *(r6) = r3;
                                                                 |     }
    0x0007dbb8 cmp.w fp, 0                                       |     
                                                                 |     if (fp == 0) {
    0x0007dbbc beq 0x7dbc6                                       |         goto label_0;
                                                                 |     }
    0x0007dbbe ldr r3, [pc, 0xa4]                                |     
    0x0007dbc0 add r3, pc                                        |     r3 = 0xfb82a;
    0x0007dbc2 str.w r3, [fp]                                    |     __asm ("str.w r3, [fp]");
                                                                 |     do {
                                                                 | label_0:
    0x0007dbc6 movs r0, 0                                        |         r0 = 0;
                                                                 | label_1:
    0x0007dbc8 ldr r2, [pc, 0x9c]                                |         
    0x0007dbca ldr r3, [pc, 0x88]                                |         r3 = *(0x7dc56);
    0x0007dbcc add r2, pc                                        |         r2 = 0xfb838;
    0x0007dbce ldr r3, [r2, r3]                                  |         r3 = *(0xfb838);
    0x0007dbd0 ldr r2, [r3]                                      |         r2 = *(0xfb838);
    0x0007dbd2 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0007dbd4 eors r2, r3                                       |         r2 ^= r3;
    0x0007dbd6 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0007dbda bne 0x7dc4c                                       |             goto label_3;
                                                                 |         }
    0x0007dbdc add sp, 0x14                                      |         
    0x0007dbde pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_2:
    0x0007dbe2 mov sb, r0                                        |         sb = r0;
    0x0007dbe4 bl 0x7db2c                                        |         r0 = fcn_0007db2c ();
                                                                 |         if (r0 == 0) {
    0x0007dbe8 cbz r0, 0x7dc46                                   |             goto label_4;
                                                                 |         }
    0x0007dbea add.w sl, sl, 0x30                                |         sl += 0x30;
    0x0007dbee ldm.w sl, {r0, r1, r2}                            |         r0 = *(sl);
                                                                 |         r1 = *((sl + 4));
                                                                 |         r2 = *((sl + 8));
    0x0007dbf2 stm.w r4, {r0, r1, r2}                            |         *(r4) = r0;
                                                                 |         *((r4 + 4)) = r1;
                                                                 |         *((r4 + 8)) = r2;
    0x0007dbf6 mov r0, r4                                        |         r0 = r4;
    0x0007dbf8 ldr r1, [r5]                                      |         r1 = *(r5);
    0x0007dbfa bl 0x7af74                                        |         r0 = fcn_0007af74 (r0, r1);
                                                                 |         if (r0 == 0) {
    0x0007dbfe cbz r0, 0x7dc46                                   |             goto label_4;
                                                                 |         }
    0x0007dc00 ldr r3, [pc, 0x68]                                |         
    0x0007dc02 add r3, pc                                        |         r3 = 0xfb872;
    0x0007dc04 str r3, [r5]                                      |         *(r5) = r3;
    0x0007dc06 cmp.w r8, 0                                       |         
                                                                 |         if (r8 != 0) {
    0x0007dc0a beq 0x7dc14                                       |             
    0x0007dc0c movw r3, 0xfffe                                   |             r3 = 0xfffe;
    0x0007dc10 str.w r3, [r8]                                    |             __asm ("str.w r3, [r8]");
                                                                 |         }
                                                                 |         if (r7 != 0) {
    0x0007dc14 cbz r7, 0x7dc1c                                   |             
    0x0007dc16 movw r3, 0xfffe                                   |             r3 = 0xfffe;
    0x0007dc1a str r3, [r7]                                      |             *(r7) = r3;
                                                                 |         }
                                                                 |         if (r6 != 0) {
    0x0007dc1c cbz r6, 0x7dc2e                                   |             
    0x0007dc1e ldr r3, [sp, 0x3c]                                |             r3 = *(arg_3ch);
    0x0007dc20 lsls r2, r3, 0x1d                                 |             r2 = r3 << 0x1d;
    0x0007dc22 it mi                                             |             
                                                                 |             if (r2 >= r3) {
    0x0007dc24 movmi r3, 0                                       |                 r3 = 0;
                                                                 |             }
                                                                 |             if (r2 >= r3) {
    0x0007dc26 bmi 0x7dc2c                                       |                 
    0x0007dc28 ldr r3, [pc, 0x44]                                |                 
    0x0007dc2a add r3, pc                                        |                 r3 = 0xfb89e;
                                                                 |             }
    0x0007dc2c str r3, [r6]                                      |             *(r6) = r3;
                                                                 |         }
    0x0007dc2e cmp.w fp, 0                                       |         
    0x0007dc32 beq 0x7dbc6                                       |         
                                                                 |     } while (fp == 0);
    0x0007dc34 ldr r3, [sp, 0x3c]                                |     r3 = *(arg_3ch);
    0x0007dc36 lsls r3, r3, 0x1d                                 |     r3 <<= 0x1d;
                                                                 |     if (r3 >= r3) {
    0x0007dc38 bmi 0x7dc40                                       |         
    0x0007dc3a ldr.w sb, [pc, 0x38]                              |         
    0x0007dc3e add sb, pc                                        |         sb = 0xfb8b8;
                                                                 |     }
    0x0007dc40 str.w sb, [fp]                                    |     __asm ("str.w sb, [fp]");
    0x0007dc44 b 0x7dbc6                                         |     goto label_0;
                                                                 | label_4:
    0x0007dc46 mvn r0, 0x7a                                      |     r0 = ~0x7a;
    0x0007dc4a b 0x7dbc8                                         |     goto label_1;
                                                                 | label_3:
    0x0007dc4c blx 0x927c                                        |     fprintf_chk ()
    0x0007dc50 add r7, sp, 0x168                                 |     r7 += arg_168h;
    0x0007dc52 movs r4, r0                                       |     r4 = r0;
    0x0007dc54 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0007dc56 movs r0, r0                                       |     
    0x0007dc58 invalid                                           |     
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7dc78 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0007dc78 ()                                      | void fcn_0007dc78 (int16_t arg_38h, int16_t arg_3ch, int16_t arg_e0h, int16_t arg_f8h, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_14h;
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0007dc78 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x0007dc7c mov r7, r2                                        |     r7 = r2;
    0x0007dc7e ldr r2, [pc, 0x1e4]                               |     
    0x0007dc80 mov r5, r3                                        |     r5 = r3;
    0x0007dc82 sub sp, 0x14                                      |     
    0x0007dc84 ldr r3, [pc, 0x1e0]                               |     r3 = *(0x7de68);
    0x0007dc86 add r2, pc                                        |     r2 = 0xfbaf0;
    0x0007dc88 ldr.w sl, [sp, 0x38]                              |     sl = *(arg_38h);
    0x0007dc8c ldr r3, [r2, r3]                                  |     
    0x0007dc8e ldr r3, [r3]                                      |     r3 = *(0xfbaf0);
    0x0007dc90 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0007dc92 mov.w r3, 0                                       |     r3 = 0;
    0x0007dc96 mov.w r3, -1                                      |     r3 = -1;
    0x0007dc9a str r3, [sp, 8]                                   |     var_8h = r3;
    0x0007dc9c cmp r0, 0                                         |     
                                                                 |     if (arg_38h == ) {
    0x0007dc9e beq.w 0x7de04                                     |         goto label_9;
                                                                 |     }
    0x0007dca2 mov r4, r0                                        |     r4 = r0;
    0x0007dca4 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0007dca6 cmp r0, 0                                         |     
                                                                 |     if (arg_38h == ) {
    0x0007dca8 beq.w 0x7de18                                     |         goto label_10;
                                                                 |     }
    0x0007dcac ldr r3, [sp, 0x3c]                                |     r3 = *(arg_3ch);
    0x0007dcae mov r8, r1                                        |     r8 = r1;
    0x0007dcb0 ands fp, r3, 1                                    |     
                                                                 |     if (fp == r3) {
    0x0007dcb4 beq 0x7dd30                                       |         goto label_11;
                                                                 |     }
    0x0007dcb6 orrs.w r3, r5, sl                                 |     r3 = r5 | sl;
    0x0007dcba beq 0x7dd30                                       |     
                                                                 |     while (1) {
    0x0007dcbc add r1, sp, 8                                     |         r1 += var_8h;
    0x0007dcbe bl 0x7d7e8                                        |         r0 = fcn_0007d7e8 (r0, r1);
    0x0007dcc2 mov r6, r0                                        |         r6 = r0;
    0x0007dcc4 blx 0x9628                                        |         fcn_00009628 ();
    0x0007dcc8 cmp r6, 0                                         |         
    0x0007dcca mov.w r2, 0                                       |         r2 = 0;
    0x0007dcce mov sb, r0                                        |         sb = r0;
    0x0007dcd0 str r2, [r0]                                      |         *(r0) = r2;
                                                                 |         if (r6 < 0) {
    0x0007dcd2 blt 0x7dd50                                       |             goto label_12;
                                                                 |         }
    0x0007dcd4 ldr r0, [sp, 8]                                   |         r0 = var_8h;
    0x0007dcd6 blx 0x8fc0                                        |         r0 = fcn_00008fc0 ();
    0x0007dcda mov r6, r0                                        |         r6 = r0;
    0x0007dcdc cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0007dcde beq 0x7dda4                                       |             goto label_13;
                                                                 |         }
    0x0007dce0 ldr r3, [r0]                                      |         r3 = *(r0);
    0x0007dce2 str r3, [r4]                                      |         *(r4) = r3;
                                                                 | label_0:
    0x0007dce4 cmp.w r8, 0                                       |         
                                                                 |         if (r8 != 0) {
    0x0007dce8 beq 0x7dcfc                                       |             
    0x0007dcea ldr r0, [r6, 8]                                   |             r0 = *((r6 + 8));
    0x0007dcec bl 0x7d7d0                                        |             r0 = fcn_0007d7d0 (r0);
    0x0007dcf0 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x0007dcf2 beq.w 0x7de44                                     |                 goto label_14;
                                                                 |             }
    0x0007dcf6 ldr r3, [r6, 8]                                   |             r3 = *((r6 + 8));
    0x0007dcf8 str.w r3, [r8]                                    |             __asm ("str.w r3, [r8]");
                                                                 |         }
                                                                 |         if (r7 != 0) {
    0x0007dcfc cbz r7, 0x7dd0e                                   |             
    0x0007dcfe ldr r0, [r6, 0xc]                                 |             r0 = *((r6 + 0xc));
    0x0007dd00 bl 0x7d7d0                                        |             r0 = fcn_0007d7d0 (r0);
    0x0007dd04 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x0007dd06 beq.w 0x7de44                                     |                 goto label_14;
                                                                 |             }
    0x0007dd0a ldr r3, [r6, 0xc]                                 |             r3 = *((r6 + 0xc));
    0x0007dd0c str r3, [r7]                                      |             *(r7) = r3;
                                                                 |         }
                                                                 |         if (r5 != 0) {
    0x0007dd0e cbz r5, 0x7dd1a                                   |             
    0x0007dd10 ldr r3, [sp, 0x3c]                                |             r3 = *(arg_3ch);
    0x0007dd12 ldr r4, [r6, 0x14]                                |             r4 = *((r6 + 0x14));
    0x0007dd14 lsls r2, r3, 0x1d                                 |             r2 = r3 << 0x1d;
                                                                 |             if (r2 < r3) {
    0x0007dd16 bmi 0x7ddc4                                       |                 goto label_15;
                                                                 |             }
                                                                 | label_8:
    0x0007dd18 str r4, [r5]                                      |             *(r5) = r4;
                                                                 |         }
    0x0007dd1a cmp.w sl, 0                                       |         
                                                                 |         if (sl == 0) {
    0x0007dd1e beq 0x7dd86                                       |             goto label_2;
                                                                 |         }
    0x0007dd20 ldr r3, [sp, 0x3c]                                |         r3 = *(arg_3ch);
    0x0007dd22 lsls r3, r3, 0x1d                                 |         r3 <<= 0x1d;
                                                                 |         if (r3 < r3) {
    0x0007dd24 bmi 0x7ddd6                                       |             goto label_16;
                                                                 |         }
                                                                 | label_6:
    0x0007dd26 ldr r3, [r6, 0x18]                                |         r3 = *((r6 + 0x18));
    0x0007dd28 movs r6, 0                                        |         r6 = 0;
    0x0007dd2a str.w r3, [sl]                                    |         __asm ("str.w r3, [sl]");
    0x0007dd2e b 0x7dd88                                         |         goto label_3;
                                                                 | label_11:
    0x0007dd30 ldr r3, [sp, 0x3c]                                |         r3 = *(arg_3ch);
    0x0007dd32 mov r2, r7                                        |         r2 = r7;
    0x0007dd34 mov r1, r8                                        |         r1 = r8;
    0x0007dd36 mov r0, r4                                        |         r0 = r4;
    0x0007dd38 strd sl, r3, [sp]                                 |         __asm ("strd sl, r3, [sp]");
    0x0007dd3c mov r3, r5                                        |         r3 = r5;
    0x0007dd3e bl 0x7db58                                        |         r0 = fcn_0007db58 (r0, r1, r2, r3, r4, r5, r6);
    0x0007dd42 subs r6, r0, 0                                    |         r6 = r0 - 0;
                                                                 |         if (r6 >= r0) {
    0x0007dd44 bge 0x7dd86                                       |             goto label_2;
                                                                 |         }
    0x0007dd46 cmn.w r6, 0x7b                                    |         
                                                                 |         if (r6 != 0x7b) {
    0x0007dd4a bne 0x7dd88                                       |             goto label_3;
                                                                 |         }
    0x0007dd4c ldr r0, [r4]                                      |         r0 = *(r4);
    0x0007dd4e b 0x7dcbc                                         |         
                                                                 |     }
                                                                 | label_12:
    0x0007dd50 ldr r0, [r4]                                      |     r0 = *(r4);
    0x0007dd52 blx 0x964c                                        |     r0 = fcn_0000964c ();
    0x0007dd56 mov r6, r0                                        |     r6 = r0;
    0x0007dd58 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0007dd5a bne 0x7dce4                                       |         goto label_0;
                                                                 |     }
                                                                 |     do {
                                                                 | label_1:
    0x0007dd5c ldr.w r6, [sb]                                    |         r6 = *(sb);
    0x0007dd60 cmp r6, 0                                         |         
    0x0007dd62 it le                                             |         
                                                                 |         if (r6 > 0) {
    0x0007dd64 mvnle r6, 2                                       |             r6 = ~2;
                                                                 |         }
                                                                 |         if (r6 > 0) {
    0x0007dd68 bgt 0x7ddc0                                       |             goto label_17;
                                                                 |         }
                                                                 | label_4:
    0x0007dd6a cmp.w fp, 0                                       |         
                                                                 |         if (fp != 0) {
    0x0007dd6e beq 0x7dd88                                       |             
    0x0007dd70 ldr r3, [sp, 0x3c]                                |             r3 = *(arg_3ch);
    0x0007dd72 mov r2, r7                                        |             r2 = r7;
    0x0007dd74 mov r1, r8                                        |             r1 = r8;
    0x0007dd76 mov r0, r4                                        |             r0 = r4;
    0x0007dd78 strd sl, r3, [sp]                                 |             __asm ("strd sl, r3, [sp]");
    0x0007dd7c mov r3, r5                                        |             r3 = r5;
    0x0007dd7e bl 0x7db58                                        |             r0 = fcn_0007db58 (r0, r1, r2, r3, r4, r5, r6);
    0x0007dd82 cmp r0, 0                                         |             
                                                                 |             if (r0 < 0) {
    0x0007dd84 blt 0x7dd88                                       |                 goto label_3;
                                                                 |             }
                                                                 | label_2:
    0x0007dd86 movs r6, 0                                        |             r6 = 0;
                                                                 |         }
                                                                 | label_3:
    0x0007dd88 ldr r2, [pc, 0xe0]                                |         
    0x0007dd8a ldr r3, [pc, 0xdc]                                |         r3 = *(0x7de6a);
    0x0007dd8c add r2, pc                                        |         r2 = 0xfbbfc;
    0x0007dd8e ldr r3, [r2, r3]                                  |         r3 = *(0xfbbfc);
    0x0007dd90 ldr r2, [r3]                                      |         r2 = *(0xfbbfc);
    0x0007dd92 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0007dd94 eors r2, r3                                       |         r2 ^= r3;
    0x0007dd96 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0007dd9a bne 0x7de5e                                       |             goto label_18;
                                                                 |         }
    0x0007dd9c mov r0, r6                                        |         r0 = r6;
    0x0007dd9e add sp, 0x14                                      |         
    0x0007dda0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_13:
    0x0007dda4 ldr r3, [sp, 0x3c]                                |         r3 = *(arg_3ch);
    0x0007dda6 lsls r1, r3, 0x1e                                 |         r1 = r3 << 0x1e;
    0x0007dda8 bpl 0x7dd5c                                       |         
                                                                 |     } while (r1 >= r3);
    0x0007ddaa orr.w r6, sl, r7                                  |     r6 = sl | r7;
    0x0007ddae orrs r6, r5                                       |     r6 |= r5;
                                                                 |     if (r6 != r5) {
    0x0007ddb0 bne 0x7dd5c                                       |         goto label_1;
                                                                 |     }
    0x0007ddb2 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x0007ddb6 beq 0x7dd86                                       |         goto label_2;
                                                                 |     }
    0x0007ddb8 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x0007ddba str.w r3, [r8]                                    |     __asm ("str.w r3, [r8]");
    0x0007ddbe b 0x7dd88                                         |     goto label_3;
                                                                 | label_17:
    0x0007ddc0 rsbs r6, r6, 0                                    |     r6 -= ;
    0x0007ddc2 b 0x7dd6a                                         |     goto label_4;
                                                                 | label_15:
    0x0007ddc4 mov r0, r4                                        |     r0 = r4;
    0x0007ddc6 bl 0x75cb4                                        |     r0 = fcn_00075cb4 (r0);
                                                                 |     if (r0 == 0) {
    0x0007ddca cbz r0, 0x7de2c                                   |         goto label_19;
                                                                 |     }
                                                                 | label_7:
    0x0007ddcc movs r3, 0                                        |     r3 = 0;
    0x0007ddce str r3, [r5]                                      |     *(r5) = r3;
    0x0007ddd0 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x0007ddd4 beq 0x7dd86                                       |         goto label_2;
                                                                 |     }
                                                                 | label_16:
    0x0007ddd6 ldr r4, [r6, 0x18]                                |     r4 = *((r6 + 0x18));
                                                                 |     if (r4 == 0) {
    0x0007ddd8 cbz r4, 0x7ddde                                   |         goto label_5;
                                                                 |     }
    0x0007ddda ldrb r5, [r4]                                     |     r5 = *(r4);
    0x0007dddc cbnz r5, 0x7dde8                                  |     
                                                                 |     while (r0 == 0) {
                                                                 | label_5:
    0x0007ddde movs r3, 0                                        |         r3 = 0;
    0x0007dde0 mov r6, r3                                        |         r6 = r3;
    0x0007dde2 str.w r3, [sl]                                    |         __asm ("str.w r3, [sl]");
    0x0007dde6 b 0x7dd88                                         |         goto label_3;
    0x0007dde8 ldr r0, [r6, 0x14]                                |         r0 = *((r6 + 0x14));
    0x0007ddea movs r1, 1                                        |         r1 = 1;
    0x0007ddec bl 0x75754                                        |         r0 = fcn_00075754 (r0, r1);
    0x0007ddf0 cmp r0, 0                                         |         
    0x0007ddf2 beq 0x7ddde                                       |         
                                                                 |     }
    0x0007ddf4 cmp r5, 0x2f                                      |     
                                                                 |     if (r5 != 0x2f) {
    0x0007ddf6 bne 0x7ddde                                       |         goto label_5;
                                                                 |     }
    0x0007ddf8 mov r0, r4                                        |     r0 = r4;
    0x0007ddfa bl 0x7d874                                        |     r0 = fcn_0007d874 (r0);
    0x0007ddfe cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0007de00 bne 0x7ddde                                       |         goto label_5;
                                                                 |     }
    0x0007de02 b 0x7dd26                                         |     goto label_6;
                                                                 | label_9:
    0x0007de04 ldr r1, [pc, 0x68]                                |     
    0x0007de06 movs r2, 0xd8                                     |     r2 = 0xd8;
    0x0007de08 ldr r3, [pc, 0x68]                                |     
    0x0007de0a ldr r0, [pc, 0x6c]                                |     
    0x0007de0c add r1, pc                                        |     r1 = 0xfbc80;
    0x0007de0e add r3, pc                                        |     r3 = 0xfbc86;
    0x0007de10 adds r1, 7                                        |     r1 += 7;
    0x0007de12 add r0, pc                                        |     r0 = 0xfbc90;
    0x0007de14 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_10:
    0x0007de18 ldr r1, [pc, 0x60]                                |     
    0x0007de1a movs r2, 0xd9                                     |     r2 = 0xd9;
    0x0007de1c ldr r3, [pc, 0x60]                                |     
    0x0007de1e ldr r0, [pc, 0x64]                                |     
    0x0007de20 add r1, pc                                        |     r1 = 0xfbca0;
    0x0007de22 add r3, pc                                        |     r3 = 0xfbca6;
    0x0007de24 adds r1, 7                                        |     r1 += 7;
    0x0007de26 add r0, pc                                        |     r0 = 0xfbcb0;
    0x0007de28 bl 0x71518                                        |     fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_19:
    0x0007de2c ldr r4, [r6, 0x14]                                |     r4 = *((r6 + 0x14));
    0x0007de2e movs r1, 1                                        |     r1 = 1;
    0x0007de30 mov r0, r4                                        |     r0 = r4;
    0x0007de32 bl 0x75754                                        |     r0 = fcn_00075754 (r0, r1);
    0x0007de36 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0007de38 beq 0x7ddcc                                       |         goto label_7;
                                                                 |     }
                                                                 |     if (r4 == 0) {
    0x0007de3a cbz r4, 0x7de4a                                   |         goto label_20;
                                                                 |     }
    0x0007de3c ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0007de3e cmp r3, 0x2f                                      |     
                                                                 |     if (r3 != 0x2f) {
    0x0007de40 bne 0x7ddcc                                       |         goto label_7;
                                                                 |     }
    0x0007de42 b 0x7dd18                                         |     goto label_8;
                                                                 | label_14:
    0x0007de44 mvn r6, 0x49                                      |     r6 = ~0x49;
    0x0007de48 b 0x7dd88                                         |     goto label_3;
                                                                 | label_20:
    0x0007de4a ldr r1, [pc, 0x3c]                                |     
    0x0007de4c movs r2, 0x33                                     |     r2 = 0x33;
    0x0007de4e ldr r3, [pc, 0x3c]                                |     
    0x0007de50 ldr r0, [pc, 0x3c]                                |     
    0x0007de52 add r1, pc                                        |     r1 = 0xfbce0;
    0x0007de54 add r3, pc                                        |     r3 = 0xfbce6;
    0x0007de56 adds r1, 7                                        |     r1 += 7;
    0x0007de58 add r0, pc                                        |     r0 = 0xfbcec;
    0x0007de5a bl 0x71518                                        |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                                 | label_18:
    0x0007de5e blx 0x927c                                        |     fprintf_chk ()
    0x0007de62 nop                                               |     
    0x0007de64 add r6, sp, 0xf8                                  |     r6 += arg_f8h;
    0x0007de66 movs r4, r0                                       |     r4 = r0;
    0x0007de68 lsls r0, r0, 0x13                                 |     r0 <<= 0x13;
    0x0007de6a movs r0, r0                                       |     
    0x0007de6c add r5, sp, 0xe0                                  |     r5 += arg_e0h;
    0x0007de6e movs r4, r0                                       |     r4 = r0;
    0x0007de70 adr r0, 0xe0                                      |     r0 = 0xe0;
    0x0007de72 movs r2, r0                                       |     r2 = r0;
    0x0007de74 adr r1, 0x1d8                                     |     r1 = 0x1d8;
    0x0007de76 movs r2, r0                                       |     r2 = r0;
    0x0007de78 adr r0, 0x3d8                                     |     r0 = 0x3d8;
    0x0007de7a movs r2, r0                                       |     r2 = r0;
    0x0007de7c adr r0, 0x90                                      |     r0 = 0x90;
    0x0007de7e movs r2, r0                                       |     r2 = r0;
    0x0007de80 adr r1, 0x188                                     |     r1 = 0x188;
    0x0007de82 movs r2, r0                                       |     r2 = r0;
    0x0007de84 adr r0, 0x3b8                                     |     r0 = 0x3b8;
    0x0007de86 movs r2, r0                                       |     r2 = r0;
    0x0007de88 asrs r6, r4, 0x15                                 |     r6 = r4 >> 0x15;
    0x0007de8a movs r1, r0                                       |     r1 = r0;
    0x0007de8c adr r1, 0x70                                      |     r1 = 0x70;
    0x0007de8e movs r2, r0                                       |     r2 = r0;
    0x0007de90 stm r2!, {r3, r4, r5, r7}                         |     *(r2!) = r3;
                                                                 |     *((r2! + 4)) = r4;
                                                                 |     *((r2! + 8)) = r5;
                                                                 |     *((r2! + 12)) = r7;
    0x0007de92 movs r0, r0                                       |     
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7de94 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0007de94 ()                              | void fcn_0007de94 (int16_t arg_90h, int16_t arg_290h, int16_t arg_338h, int16_t arg_380h, int16_t arg_390h, int16_t arg_3a0h, uint32_t arg1, int16_t arg2, int16_t arg3) {
                                                         |     int16_t var_4h_2;
                                                         |     int16_t var_8h_2;
                                                         |     int16_t var_14h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
    0x0007de94 mvnsmi lr, 0xb4000                        |     __asm ("mvnsmi lr, aav.0x000000ff");
    0x0007de98 mov r7, r2                                |     r7 = r2;
    0x0007de9a ldr r2, [pc, 0x11c]                       |     
    0x0007de9c sub sp, 0x1c                              |     
    0x0007de9e ldr r3, [pc, 0x11c]                       |     r3 = *(0x7dfbe);
    0x0007dea0 add r2, pc                                |     r2 = 0xfbe5e;
    0x0007dea2 ldr r3, [r2, r3]                          |     
    0x0007dea4 ldr r3, [r3]                              |     r3 = *(0xfbe5e);
    0x0007dea6 str r3, [sp, 0x14]                        |     var_14h = r3;
    0x0007dea8 mov.w r3, 0                               |     r3 = 0;
    0x0007deac cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0007deae beq 0x7df6c                               |         goto label_4;
                                                         |     }
    0x0007deb0 ldr.w r8, [pc, 0x10c]                     |     
    0x0007deb4 mov r4, r0                                |     r4 = r0;
    0x0007deb6 mov r6, r1                                |     r6 = r1;
    0x0007deb8 add r5, sp, 8                             |     r5 += var_8h_2;
    0x0007deba add r8, pc                                |     r8 = 0xfbe7e;
    0x0007debc add.w r3, r8, 0x24                        |     r3 = r8 + 0x24;
    0x0007dec0 ldm.w r3, {r0, r1, r2}                    |     r0 = *(r3);
                                                         |     r1 = *((r3 + 4));
                                                         |     r2 = *((r3 + 8));
    0x0007dec4 stm.w r5, {r0, r1, r2}                    |     *(r5) = r0;
                                                         |     *((r5 + 4)) = r1;
                                                         |     *((r5 + 8)) = r2;
    0x0007dec8 mov r0, r5                                |     r0 = r5;
    0x0007deca ldr r1, [r4]                              |     r1 = *(r4);
    0x0007decc bl 0x7af74                                |     r0 = fcn_0007af74 (r0, r1);
                                                         |     if (r0 == 0) {
    0x0007ded0 cbz r0, 0x7defa                           |         goto label_5;
                                                         |     }
    0x0007ded2 ldr r3, [pc, 0xf0]                        |     
    0x0007ded4 add r3, pc                                |     r3 = 0xfbe9e;
    0x0007ded6 str r3, [r4]                              |     *(r4) = r3;
                                                         |     if (r6 == 0) {
    0x0007ded8 cbz r6, 0x7dede                           |         goto label_0;
                                                         |     }
    0x0007deda movs r3, 0                                |     r3 = 0;
    0x0007dedc str r3, [r6]                              |     *(r6) = r3;
                                                         |     do {
                                                         | label_0:
    0x0007dede movs r0, 0                                |         r0 = 0;
                                                         | label_1:
    0x0007dee0 ldr r2, [pc, 0xe4]                        |         
    0x0007dee2 ldr r3, [pc, 0xd8]                        |         r3 = *(0x7dfbe);
    0x0007dee4 add r2, pc                                |         r2 = 0xfbeb0;
    0x0007dee6 ldr r3, [r2, r3]                          |         r3 = *(0xfbeb0);
    0x0007dee8 ldr r2, [r3]                              |         r2 = *(0xfbeb0);
    0x0007deea ldr r3, [sp, 0x14]                        |         r3 = var_14h;
    0x0007deec eors r2, r3                               |         r2 ^= r3;
    0x0007deee mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0007def2 bne 0x7dfb4                               |             goto label_6;
                                                         |         }
    0x0007def4 add sp, 0x1c                              |         
    0x0007def6 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_5:
    0x0007defa bl 0x7db2c                                |         r0 = fcn_0007db2c ();
                                                         |         if (r0 == 0) {
    0x0007defe cbz r0, 0x7df2c                           |             goto label_7;
                                                         |         }
    0x0007df00 add.w r8, r8, 0x30                        |         r8 += 0x30;
    0x0007df04 ldr.w sb, [r4]                            |         sb = *(r4);
    0x0007df08 ldm.w r8, {r0, r1, r2}                    |         r0 = *(r8);
                                                         |         r1 = *((r8 + 4));
                                                         |         r2 = *((r8 + 8));
    0x0007df0c stm.w r5, {r0, r1, r2}                    |         *(r5) = r0;
                                                         |         *((r5 + 4)) = r1;
                                                         |         *((r5 + 8)) = r2;
    0x0007df10 mov r0, r5                                |         r0 = r5;
    0x0007df12 mov r1, sb                                |         r1 = sb;
    0x0007df14 bl 0x7af74                                |         r0 = fcn_0007af74 (r0, r1);
                                                         |         if (r0 == 0) {
    0x0007df18 cbz r0, 0x7df30                           |             goto label_8;
                                                         |         }
    0x0007df1a ldr r3, [pc, 0xb0]                        |         
    0x0007df1c add r3, pc                                |         r3 = 0xfbeee;
    0x0007df1e str r3, [r4]                              |         *(r4) = r3;
    0x0007df20 cmp r6, 0                                 |         
    0x0007df22 beq 0x7dede                               |         
                                                         |     } while (r6 == 0);
    0x0007df24 movw r3, 0xfffe                           |     r3 = 0xfffe;
    0x0007df28 str r3, [r6]                              |     *(r6) = r3;
    0x0007df2a b 0x7dede                                 |     goto label_0;
                                                         | label_7:
    0x0007df2c ldr.w sb, [r4]                            |     sb = *(r4);
                                                         | label_8:
    0x0007df30 add r1, sp, 4                             |     r1 += var_4h_2;
    0x0007df32 mov r0, sb                                |     r0 = sb;
    0x0007df34 bl 0x7d7e8                                |     r0 = fcn_0007d7e8 (r0, r1);
    0x0007df38 mov r5, r0                                |     r5 = r0;
    0x0007df3a blx 0x9628                                |     fcn_00009628 ();
    0x0007df3e cmp r5, 0                                 |     
    0x0007df40 mov.w r3, 0                               |     r3 = 0;
    0x0007df44 mov r8, r0                                |     r8 = r0;
    0x0007df46 str r3, [r0]                              |     *(r0) = r3;
                                                         |     if (r5 < 0) {
    0x0007df48 blt 0x7df82                               |         goto label_9;
                                                         |     }
    0x0007df4a ldr r0, [sp, 4]                           |     r0 = var_4h_2;
    0x0007df4c blx 0x9310                                |     r0 = fcn_00009310 ();
    0x0007df50 mov r5, r0                                |     r5 = r0;
                                                         |     if (r0 == 0) {
    0x0007df52 cbz r0, 0x7dfa0                           |         goto label_10;
                                                         |     }
    0x0007df54 ldr r3, [r0]                              |     r3 = *(r0);
    0x0007df56 str r3, [r4]                              |     *(r4) = r3;
                                                         | label_2:
    0x0007df58 cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x0007df5a beq 0x7dede                               |         goto label_0;
                                                         |     }
    0x0007df5c ldr r0, [r5, 8]                           |     r0 = *((r5 + 8));
    0x0007df5e bl 0x7d7d0                                |     r0 = fcn_0007d7d0 (r0);
                                                         |     if (r0 == 0) {
    0x0007df62 cbz r0, 0x7dfae                           |         goto label_11;
                                                         |     }
    0x0007df64 ldr r3, [r5, 8]                           |     r3 = *((r5 + 8));
    0x0007df66 movs r0, 0                                |     r0 = 0;
    0x0007df68 str r3, [r6]                              |     *(r6) = r3;
    0x0007df6a b 0x7dee0                                 |     goto label_1;
                                                         | label_4:
    0x0007df6c ldr r1, [pc, 0x60]                        |     
    0x0007df6e mov.w r2, 0x13c                           |     r2 = 0x13c;
    0x0007df72 ldr r3, [pc, 0x60]                        |     
    0x0007df74 ldr r0, [pc, 0x60]                        |     
    0x0007df76 add r1, pc                                |     r1 = 0xfbf4a;
    0x0007df78 add r3, pc                                |     r3 = 0xfbf52;
    0x0007df7a adds r1, 7                                |     r1 += 7;
    0x0007df7c add r0, pc                                |     r0 = 0xfbf58;
    0x0007df7e bl 0x71518                                |     fcn_00071518 (r0, r1, r2, r3);
                                                         | label_9:
    0x0007df82 ldr r0, [r4]                              |     r0 = *(r4);
    0x0007df84 blx 0x8bec                                |     r0 = malloc_usable_size ();
    0x0007df88 mov r5, r0                                |     r5 = r0;
    0x0007df8a cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0007df8c bne 0x7df58                               |         goto label_2;
                                                         |     }
                                                         | label_3:
    0x0007df8e ldr.w r0, [r8]                            |     r0 = *(r8);
    0x0007df92 cmp r0, 0                                 |     
    0x0007df94 it le                                     |     
                                                         |     if (r0 <= 0) {
    0x0007df96 mvnle r0, 2                               |         r0 = ~2;
                                                         |         goto label_12;
                                                         |     }
                                                         |     if (r0 <= 0) {
                                                         | label_12:
    0x0007df9a ble 0x7dee0                               |         goto label_1;
                                                         |     }
    0x0007df9c rsbs r0, r0, 0                            |     r0 -= ;
    0x0007df9e b 0x7dee0                                 |     goto label_1;
                                                         | label_10:
    0x0007dfa0 lsls r3, r7, 0x1e                         |     r3 = r7 << 0x1e;
                                                         |     if (r3 >= r7) {
    0x0007dfa2 bpl 0x7df8e                               |         goto label_3;
                                                         |     }
    0x0007dfa4 cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x0007dfa6 beq 0x7dede                               |         goto label_0;
                                                         |     }
    0x0007dfa8 ldr r3, [sp, 4]                           |     r3 = var_4h_2;
    0x0007dfaa str r3, [r6]                              |     *(r6) = r3;
    0x0007dfac b 0x7dee0                                 |     goto label_1;
                                                         | label_11:
    0x0007dfae mvn r0, 0x49                              |     r0 = ~0x49;
    0x0007dfb2 b 0x7dee0                                 |     goto label_1;
                                                         | label_6:
    0x0007dfb4 blx 0x927c                                |     fprintf_chk ()
    0x0007dfb8 add r4, sp, 0x90                          |     r4 += arg_90h;
    0x0007dfba movs r4, r0                               |     r4 = r0;
    0x0007dfbc lsls r0, r0, 0x13                         |     r0 <<= 0x13;
    0x0007dfbe movs r0, r0                               |     
    0x0007dfc0 push {r1, r2, r4, r6, lr}                 |     
    0x0007dfc2 movs r4, r0                               |     r4 = r0;
    0x0007dfc4 adr r6, 0x370                             |     r6 = 0x370;
    0x0007dfc6 movs r2, r0                               |     r2 = r0;
    0x0007dfc8 add r3, sp, 0x380                         |     r3 += arg_380h;
    0x0007dfca movs r4, r0                               |     r4 = r0;
    0x0007dfcc ldr r7, [sp, 0x390]                       |     r7 = *(arg_390h);
    0x0007dfce movs r2, r0                               |     r2 = r0;
    0x0007dfd0 ldr r6, [sp, 0x338]                       |     r6 = *(arg_338h);
    0x0007dfd2 movs r2, r0                               |     r2 = r0;
    0x0007dfd4 ldr r7, [sp, 0x3a0]                       |     r7 = *(arg_3a0h);
    0x0007dfd6 movs r2, r0                               |     r2 = r0;
    0x0007dfd8 ldr r7, [sp, 0x290]                       |     r7 = *(arg_290h);
    0x0007dfda movs r2, r0                               |     r2 = r0;
                                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7dfdc */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.0007dfdc ()              | void fcn_0007dfdc (int16_t arg_2d8h, int16_t arg_370h, int16_t arg1) {
                                         |     int16_t var_4h;
                                         |     int16_t var_8h;
                                         |     int16_t var_ch;
                                         |     r0 = arg1;
    0x0007dfdc invalid                   |     
    0x0007dfe0 movs r2, 0                |     r2 = 0;
    0x0007dfe2 ldr r3, [pc, 0x48]        |     
    0x0007dfe4 push {lr}                 |     
    0x0007dfe6 sub sp, 0x14              |     
    0x0007dfe8 add ip, pc                |     
    0x0007dfea str r0, [sp, 4]           |     var_4h = r0;
    0x0007dfec add r1, sp, 8             |     r1 += var_8h;
    0x0007dfee add r0, sp, 4             |     r0 += var_4h;
    0x0007dff0 ldr.w r3, [ip, r3]        |     r3 = *((ip + r3));
    0x0007dff4 ldr r3, [r3]              |     r3 = *(0x7e02e);
    0x0007dff6 str r3, [sp, 0xc]         |     var_ch = r3;
    0x0007dff8 mov.w r3, 0               |     r3 = 0;
    0x0007dffc bl 0x7de94                |     r0 = fcn_0007de94 (r0, r1, r2, r3, r4, r5, r6);
    0x0007e000 cmp r0, 0                 |     
                                         |     if (r0 >= 0) {
    0x0007e002 blt 0x7e00a               |         
    0x0007e004 ldr r0, [sp, 8]           |         r0 = var_8h;
    0x0007e006 bl 0x7d984                |         fcn_0007d984 (r0);
                                         |     }
    0x0007e00a ldr r2, [pc, 0x24]        |     
    0x0007e00c ldr r3, [pc, 0x1c]        |     r3 = *(0x7e02c);
    0x0007e00e add r2, pc                |     r2 = 0xfc044;
    0x0007e010 ldr r3, [r2, r3]          |     r3 = *(0xfc044);
    0x0007e012 ldr r2, [r3]              |     r2 = *(0xfc044);
    0x0007e014 ldr r3, [sp, 0xc]         |     r3 = var_ch;
    0x0007e016 eors r2, r3               |     r2 ^= r3;
    0x0007e018 mov.w r3, 0               |     r3 = 0;
                                         |     if (r2 == r3) {
    0x0007e01c bne 0x7e024               |         
    0x0007e01e add sp, 0x14              |         
    0x0007e020 ldr pc, [sp], 4           |         pc = *(sp);
                                         |         sp += 4;
                                         |     }
    0x0007e024 blx 0x927c                |     fprintf_chk ()
    0x0007e028 add r2, sp, 0x370         |     r2 += arg_370h;
    0x0007e02a movs r4, r0               |     r4 = r0;
    0x0007e02c lsls r0, r0, 0x13         |     r0 <<= 0x13;
    0x0007e02e movs r0, r0               |     
    0x0007e030 add r2, sp, 0x2d8         |     r2 += arg_2d8h;
    0x0007e032 movs r4, r0               |     r4 = r0;
                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7e034 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0007e034 ()                                  | void fcn_0007e034 (int16_t arg_218h, int16_t arg_228h, int16_t arg_2d0h, int16_t arg_300h, int16_t arg_370h, uint32_t arg1) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_ch_2;
                                                             |     int16_t var_10h;
                                                             |     int16_t var_2ch;
                                                             |     r0 = arg1;
                                                             | label_1:
    0x000091fc invalid                                       |     void (*0x9200)() ();
    0x0007e034 ldr r2, [pc, 0x11c]                           |     
    0x0007e036 ldr r3, [pc, 0x120]                           |     r3 = *(0x7e15a);
    0x0007e038 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x0007e03c sub sp, 0x30                                  |     
    0x0007e03e add r2, pc                                    |     r2 = 0xfc196;
    0x0007e040 ldr r3, [r2, r3]                              |     
    0x0007e042 ldr r3, [r3]                                  |     r3 = *(0xfc196);
    0x0007e044 str r3, [sp, 0x2c]                            |     var_2ch = r3;
    0x0007e046 mov.w r3, 0                                   |     r3 = 0;
    0x0007e04a cmp r0, 0                                     |     
                                                             |     if (var_0h == ) {
    0x0007e04c beq 0x7e100                                   |         goto label_4;
                                                             |     }
    0x0007e04e mov r6, r0                                    |     r6 = r0;
    0x0007e050 bl 0x7db2c                                    |     fcn_0007db2c ();
    0x0007e054 movw r3, 0xfffe                               |     r3 = 0xfffe;
    0x0007e058 cmp r6, r3                                    |     
    0x0007e05a ite ne                                        |     
                                                             |     if (r6 == r3) {
    0x0007e05c movne r8, 0                                   |         r8 = 0;
                                                             |     }
                                                             |     if (r6 == r3) {
    0x0007e060 and r8, r0, 1                                 |         r8 = r0 & 1;
                                                             |     }
    0x0007e064 cmp.w r8, 0                                   |     
                                                             |     if (r8 != 0) {
    0x0007e068 bne 0x7e136                                   |         goto label_5;
                                                             |     }
    0x0007e06a mov r0, r6                                    |     r0 = r6;
    0x0007e06c add.w sb, sp, 0x10                            |     sb += var_10h;
    0x0007e070 bl 0x7d7d0                                    |     r0 = fcn_0007d7d0 (r0);
                                                             |     if (r0 == 0) {
    0x0007e074 cbz r0, 0x7e0ba                               |         goto label_6;
                                                             |     }
    0x0007e076 movs r0, 0x46                                 |     r0 = 0x46;
    0x0007e078 add r7, sp, 0x10                              |     r7 += var_10h;
    0x0007e07a blx 0x8a90                                    |     r0 = pthread_sigmask ();
    0x0007e07e subs r5, r0, 0                                |     r5 = r0 - 0;
    0x0007e080 add.w sl, sp, 0xc                             |     sl += var_ch_2;
    0x0007e084 it le                                         |     
                                                             |     if (r5 > r0) {
    0x0007e086 movle r5, 0x1000                              |         r5 = 0x1000;
                                                             |     }
                                                             | label_0:
    0x0007e08a mov r0, r5                                    |     r0 = r5;
    0x0007e08c str.w r8, [sp, 0xc]                           |     __asm ("str.w r8, [var_ch_2]");
    0x0007e090 blx 0x9234                                    |     r0 = blkid_safe_string ();
    0x0007e094 mov r4, r0                                    |     r4 = r0;
    0x0007e096 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0007e098 beq 0x7e122                                   |         goto label_7;
                                                             |     }
    0x0007e09a mov r2, r0                                    |     r2 = r0;
    0x0007e09c mov r3, r5                                    |     r3 = r5;
    0x0007e09e mov r1, r7                                    |     r1 = r7;
    0x0007e0a0 mov r0, r6                                    |     r0 = r6;
    0x0007e0a2 str.w sl, [sp]                                |     __asm ("str.w sl, [sp]");
    0x0007e0a6 mov sb, r7                                    |     sb = r7;
    0x0007e0a8 blx 0x95ec                                    |     r0 = fcn_000095ec ();
                                                             |     if (r0 != 0) {
    0x0007e0ac cbnz r0, 0x7e0ec                              |         goto label_8;
                                                             |     }
    0x0007e0ae ldr r3, [sp, 0xc]                             |     r3 = var_ch_2;
    0x0007e0b0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0007e0b2 bne 0x7e12c                                   |         goto label_9;
                                                             |     }
                                                             |     do {
    0x0007e0b4 mov r0, r4                                    |         r0 = r4;
    0x0007e0b6 blx 0x8dac                                    |         fcn_00008dac ();
                                                             | label_6:
    0x0007e0ba ldr r2, [pc, 0xa0]                            |         
    0x0007e0bc mov r3, r6                                    |         r3 = r6;
    0x0007e0be movs r1, 1                                    |         r1 = 1;
    0x0007e0c0 mov r0, sb                                    |         r0 = sb;
    0x0007e0c2 add r2, pc                                    |         r2 = 0xfc224;
    0x0007e0c4 blx 0x8e48                                    |         r0 = fcn_00008e48 ();
    0x0007e0c8 cmp r0, 0                                     |         
    0x0007e0ca ite ge                                        |         
                                                             |         if (r0 < 0) {
    0x0007e0cc ldrge r5, [sp, 0x10]                          |             r5 = var_10h;
                                                             |         }
                                                             |         if (r0 >= 0) {
    0x0007e0ce movlt r5, 0                                   |             r5 = 0;
                                                             |         }
                                                             | label_2:
    0x0007e0d0 ldr r2, [pc, 0x8c]                            |         
    0x0007e0d2 ldr r3, [pc, 0x84]                            |         r3 = *(0x7e15a);
    0x0007e0d4 add r2, pc                                    |         r2 = 0xfc238;
    0x0007e0d6 ldr r3, [r2, r3]                              |         r3 = *(0xfc238);
    0x0007e0d8 ldr r2, [r3]                                  |         r2 = *(0xfc238);
    0x0007e0da ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x0007e0dc eors r2, r3                                   |         r2 ^= r3;
    0x0007e0de mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0007e0e2 bne 0x7e150                                   |             goto label_10;
                                                             |         }
    0x0007e0e4 mov r0, r5                                    |         r0 = r5;
    0x0007e0e6 add sp, 0x30                                  |         
    0x0007e0e8 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_8:
    0x0007e0ec cmp r0, 0x22                                  |         
    0x0007e0ee bne 0x7e0b4                                   |         
                                                             |     } while (r0 != 0x22);
    0x0007e0f0 cmp.w r5, 0x40000000                          |     
                                                             |     if (r5 < 0x40000000) {
    0x0007e0f4 bge 0x7e122                                   |         
    0x0007e0f6 mov r0, r4                                    |         r0 = r4;
    0x0007e0f8 lsls r5, r5, 1                                |         r5 <<= 1;
    0x0007e0fa blx 0x8dac                                    |         fcn_00008dac ();
    0x0007e0fe b 0x7e08a                                     |         goto label_0;
                                                             | label_4:
    0x0007e100 ldr r2, [pc, 0x60]                            |         
    0x0007e102 ldr r3, [pc, 0x54]                            |         r3 = *(0x7e15a);
    0x0007e104 add r2, pc                                    |         r2 = 0xfc26c;
    0x0007e106 ldr r3, [r2, r3]                              |         r3 = *(0xfc26c);
    0x0007e108 ldr r2, [r3]                                  |         r2 = *(0xfc26c);
    0x0007e10a ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x0007e10c eors r2, r3                                   |         r2 ^= r3;
    0x0007e10e mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0007e112 bne 0x7e150                                   |             goto label_10;
                                                             |         }
    0x0007e114 ldr r0, [pc, 0x50]                            |         
    0x0007e116 add r0, pc                                    |         r0 = 0xfc282;
                                                             | label_3:
    0x0007e118 add sp, 0x30                                  |         
    0x0007e11a pop.w {r4, r5, r6, r7, r8, sb, sl, lr}        |         
    0x0007e11e b.w 0x91fc                                    |         goto label_1;
                                                             |     }
                                                             | label_7:
    0x0007e122 movs r5, 0                                    |     r5 = 0;
                                                             |     do {
    0x0007e124 mov r0, r4                                    |         r0 = r4;
    0x0007e126 blx 0x8dac                                    |         fcn_00008dac ();
    0x0007e12a b 0x7e0d0                                     |         goto label_2;
                                                             | label_9:
    0x0007e12c ldr r0, [r3]                                  |         r0 = *(r3);
    0x0007e12e blx 0x9200                                    |         r0 = fcn_00009200 ();
    0x0007e132 mov r5, r0                                    |         r5 = r0;
    0x0007e134 b 0x7e124                                     |         
                                                             |     } while (1);
                                                             | label_5:
    0x0007e136 ldr r2, [pc, 0x34]                            |     
    0x0007e138 ldr r3, [pc, 0x1c]                            |     r3 = *(0x7e158);
    0x0007e13a add r2, pc                                    |     r2 = 0xfc2ac;
    0x0007e13c ldr r3, [r2, r3]                              |     r3 = *(0xfc2ac);
    0x0007e13e ldr r2, [r3]                                  |     r2 = *(0xfc2ac);
    0x0007e140 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x0007e142 eors r2, r3                                   |     r2 ^= r3;
    0x0007e144 mov.w r3, 0                                   |     r3 = 0;
                                                             |     if (r2 == r3) {
    0x0007e148 bne 0x7e150                                   |         
    0x0007e14a ldr r0, [pc, 0x24]                            |         
    0x0007e14c add r0, pc                                    |         r0 = 0xfc2c2;
    0x0007e14e b 0x7e118                                     |         goto label_3;
                                                             |     }
                                                             | label_10:
    0x0007e150 blx 0x927c                                    |     fprintf_chk ()
    0x0007e154 add r2, sp, 0x218                             |     r2 += arg_218h;
    0x0007e156 movs r4, r0                                   |     r4 = r0;
    0x0007e158 lsls r0, r0, 0x13                             |     r0 <<= 0x13;
    0x0007e15a movs r0, r0                                   |     
    0x0007e15c vhadd.u32 d16, d2, d1                         |     __asm ("vhadd.u32 d16, d2, d1");
    0x0007e160 add r1, sp, 0x3c0                             |     r1 += arg_370h;
    0x0007e162 movs r4, r0                                   |     r4 = r0;
    0x0007e164 add r1, sp, 0x300                             |     r1 += arg_300h;
    0x0007e166 movs r4, r0                                   |     r4 = r0;
    0x0007e168 adr r4, 0x268                                 |     r4 = 0x268;
    0x0007e16a movs r2, r0                                   |     r2 = r0;
    0x0007e16c add r1, sp, 0x228                             |     r1 += arg_228h;
    0x0007e16e movs r4, r0                                   |     r4 = r0;
    0x0007e170 ldr r5, [sp, 0x2d0]                           |     r5 = *(arg_2d0h);
    0x0007e172 movs r2, r0                                   |     r2 = r0;
                                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7e348 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.0007e348 ()              | void fcn_0007e348 (int16_t arg_108h, int16_t arg_160h, int16_t arg_380h, int16_t arg_3c8h, int16_t arg_3d8h, int16_t arg1, uint32_t arg2) {
                                         |     int16_t var_0h_2;
                                         |     int16_t var_4h;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x0007e348 blmi 0x11d0c60            |     __asm ("blmi aav.0x0004a774");
    0x0007e34c push {r4, r5, lr}         |     
    0x0007e34e sub sp, 0xc               |     
    0x0007e350 add r2, pc                |     r2 += pc;
    0x0007e352 ldr r3, [r2, r3]          |     r3 = *((r2 + r3));
    0x0007e354 ldr r3, [r3]              |     r3 = *(r3);
    0x0007e356 str r3, [sp, 4]           |     var_4h = r3;
    0x0007e358 mov.w r3, 0               |     r3 = 0;
                                         |     if (r0 == 0) {
    0x0007e35c cbz r0, 0x7e3b0           |         goto label_5;
                                         |     }
                                         |     if (r1 == 0) {
    0x0007e35e cbz r1, 0x7e3c6           |         goto label_6;
                                         |     }
    0x0007e360 ldrb r3, [r0]             |     r3 = *(r0);
    0x0007e362 lsls r2, r3, 0x18         |     r2 = r3 << 0x18;
    0x0007e364 it pl                     |     
                                         |     if (r2 < r3) {
    0x0007e366 movpl r4, 1               |         r4 = 1;
                                         |     }
                                         |     if (r2 >= r3) {
    0x0007e368 bpl 0x7e396               |         goto label_2;
                                         |     }
    0x0007e36a and r2, r3, 0xe0          |     r2 = r3 & 0xe0;
    0x0007e36e cmp r2, 0xc0              |     
                                         |     if (r2 == 0xc0) {
    0x0007e370 beq 0x7e3dc               |         goto label_7;
                                         |     }
    0x0007e372 and r2, r3, 0xf0          |     r2 = r3 & 0xf0;
    0x0007e376 cmp r2, 0xe0              |     
                                         |     if (r2 == 0xe0) {
    0x0007e378 beq 0x7e43c               |         goto label_8;
                                         |     }
    0x0007e37a and r2, r3, 0xf8          |     r2 = r3 & 0xf8;
    0x0007e37e cmp r2, 0xf0              |     
                                         |     if (r2 == 0xf0) {
    0x0007e380 beq 0x7e444               |         goto label_9;
                                         |     }
    0x0007e382 and r2, r3, 0xfc          |     r2 = r3 & 0xfc;
    0x0007e386 cmp r2, 0xf8              |     
                                         |     if (r2 == 0xf8) {
    0x0007e388 beq 0x7e44c               |         goto label_10;
                                         |     }
    0x0007e38a and r3, r3, 0xfe          |     r3 &= 0xfe;
    0x0007e38e cmp r3, 0xfc              |     
                                         |     if (r3 == 0xfc) {
    0x0007e390 beq 0x7e454               |         goto label_11;
                                         |     }
                                         |     do {
                                         | label_0:
    0x0007e392 mvn r4, 0x15              |         r4 = ~0x15;
                                         | label_2:
    0x0007e396 ldr r2, [pc, 0xcc]        |         
    0x0007e398 ldr r3, [pc, 0xc4]        |         r3 = *(0x7e460);
    0x0007e39a add r2, pc                |         r2 = 0xfc804;
    0x0007e39c ldr r3, [r2, r3]          |         r3 = *(0xfc804);
    0x0007e39e ldr r2, [r3]              |         r2 = *(0xfc804);
    0x0007e3a0 ldr r3, [sp, 4]           |         r3 = var_4h;
    0x0007e3a2 eors r2, r3               |         r2 ^= r3;
    0x0007e3a4 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x0007e3a8 bne 0x7e458               |             goto label_12;
                                         |         }
    0x0007e3aa mov r0, r4                |         r0 = r4;
    0x0007e3ac add sp, 0xc               |         
    0x0007e3ae pop {r4, r5, pc}          |         
                                         | label_5:
    0x0007e3b0 ldr r1, [pc, 0xb4]        |         
    0x0007e3b2 mov.w r2, 0x1fe           |         r2 = 0x1fe;
    0x0007e3b6 ldr r3, [pc, 0xb4]        |         
    0x0007e3b8 ldr r0, [pc, 0xb4]        |         
    0x0007e3ba add r1, pc                |         r1 = 0xfc826;
    0x0007e3bc add r3, pc                |         r3 = 0xfc82e;
    0x0007e3be adds r1, 7                |         r1 += 7;
    0x0007e3c0 add r0, pc                |         r0 = 0xfc834;
    0x0007e3c2 bl 0x71518                |         fcn_00071518 (r0, r1, r2, r3);
                                         | label_6:
    0x0007e3c6 ldr r1, [pc, 0xac]        |         
    0x0007e3c8 movw r2, 0x1ff            |         r2 = 0x1ff;
    0x0007e3cc ldr r3, [pc, 0xa8]        |         
    0x0007e3ce ldr r0, [pc, 0xac]        |         
    0x0007e3d0 add r1, pc                |         r1 = 0xfc84a;
    0x0007e3d2 add r3, pc                |         r3 = 0xfc84e;
    0x0007e3d4 adds r1, 7                |         r1 += 7;
    0x0007e3d6 add r0, pc                |         r0 = 0xfc858;
    0x0007e3d8 bl 0x71518                |         fcn_00071518 (r0, r1, r2, r3);
                                         | label_7:
    0x0007e3dc cmp r1, 1                 |         
    0x0007e3de beq 0x7e392               |         
                                         |     } while (r1 == 1);
    0x0007e3e0 movs r5, 2                |     r5 = 2;
                                         | label_3:
    0x0007e3e2 adds r3, r0, 1            |     r3 = r0 + 1;
    0x0007e3e4 adds r1, r0, r5           |     r1 = r0 + r5;
    0x0007e3e6 b 0x7e3f0                 |     goto label_13;
                                         | label_1:
    0x0007e3e8 ldrsb r2, [r3], 1         |     r2 = *(r3);
                                         |     r3++;
    0x0007e3ec cmp r2, 0                 |     
                                         |     if (r2 >= 0) {
    0x0007e3ee bge 0x7e392               |         goto label_0;
                                         |     }
                                         | label_13:
    0x0007e3f0 cmp r3, r1                |     
                                         |     if (r3 != r1) {
    0x0007e3f2 bne 0x7e3e8               |         goto label_1;
                                         |     }
    0x0007e3f4 mov r1, sp                |     r1 = sp;
    0x0007e3f6 bl 0x7e1c8                |     r0 = fcn_0007e1c8 (r0, r1, r2, r3);
    0x0007e3fa subs r4, r0, 0            |     r4 = r0 - 0;
                                         |     if (r4 < r0) {
    0x0007e3fc blt 0x7e396               |         goto label_2;
                                         |     }
    0x0007e3fe ldr r0, [sp]              |     r0 = *(sp);
    0x0007e400 cmp r0, 0x7f              |     
                                         |     if (r0 < 0x7f) {
    0x0007e402 bls 0x7e392               |         goto label_0;
                                         |     }
    0x0007e404 cmp.w r0, 0x800           |     
    0x0007e408 it lo                     |     
                                         |     if (r0 >= 0x800) {
    0x0007e40a movlo r3, 2               |         r3 = 2;
                                         |     }
                                         |     if (r0 > 0x800) {
    0x0007e40c blo 0x7e42c               |         
    0x0007e40e cmp.w r0, 0x10000         |         
    0x0007e412 it lo                     |         
                                         |         if (r0 >= 0x10000) {
    0x0007e414 movlo r3, 3               |             r3 = 3;
                                         |         }
                                         |         if (r0 <= 0x10000) {
    0x0007e416 blo 0x7e42c               |             goto label_14;
                                         |         }
    0x0007e418 cmp.w r0, 0x200000        |         
    0x0007e41c it lo                     |         
                                         |         if (r0 >= 0x200000) {
    0x0007e41e movlo r3, 4               |             r3 = 4;
                                         |         }
                                         |         if (r0 <= 0x200000) {
    0x0007e420 blo 0x7e42c               |             goto label_14;
                                         |         }
    0x0007e422 cmp.w r0, 0x4000000       |         
    0x0007e426 ite hs                    |         
                                         |         if (r0 < 0x4000000) {
    0x0007e428 movhs r3, 6               |             r3 = 6;
                                         |         }
                                         |         if (r0 < 0x4000000) {
    0x0007e42a movlo r3, 5               |             r3 = 5;
                                         |             goto label_14;
                                         |         }
                                         |     }
                                         | label_14:
    0x0007e42c cmp r5, r3                |     
    0x0007e42e mov r4, r5                |     r4 = r5;
                                         |     if (r5 != r3) {
    0x0007e430 bne 0x7e392               |         goto label_0;
                                         |     }
    0x0007e432 bl 0x7e198                |     r0 = fcn_0007e198 (r0);
    0x0007e436 cmp r0, 0                 |     
                                         |     if (r0 != 0) {
    0x0007e438 bne 0x7e396               |         goto label_2;
                                         |     }
    0x0007e43a b 0x7e392                 |     goto label_0;
                                         | label_8:
    0x0007e43c movs r5, 3                |     r5 = 3;
                                         | label_4:
    0x0007e43e cmp r1, r5                |     
                                         |     if (r1 >= r5) {
    0x0007e440 bhs 0x7e3e2               |         goto label_3;
                                         |     }
    0x0007e442 b 0x7e392                 |     goto label_0;
                                         | label_9:
    0x0007e444 cmp r1, 3                 |     
                                         |     if (r1 < 3) {
    0x0007e446 bls 0x7e392               |         goto label_0;
                                         |     }
    0x0007e448 movs r5, 4                |     r5 = 4;
    0x0007e44a b 0x7e3e2                 |     goto label_3;
                                         | label_10:
    0x0007e44c cmp r1, 4                 |     
                                         |     if (r1 < 4) {
    0x0007e44e bls 0x7e392               |         goto label_0;
                                         |     }
    0x0007e450 movs r5, 5                |     r5 = 5;
    0x0007e452 b 0x7e3e2                 |     goto label_3;
                                         | label_11:
    0x0007e454 movs r5, 6                |     r5 = 6;
    0x0007e456 b 0x7e43e                 |     goto label_4;
                                         | label_12:
    0x0007e458 blx 0x927c                |     fprintf_chk ()
    0x0007e45c adr r7, 0x1d0             |     r7 = 0x1d0;
    0x0007e45e movs r4, r0               |     r4 = r0;
    0x0007e460 lsls r0, r0, 0x13         |     r0 <<= 0x13;
    0x0007e462 movs r0, r0               |     
    0x0007e464 adr r7, 0xa8              |     r7 = 0xa8;
    0x0007e466 movs r4, r0               |     r4 = r0;
    0x0007e468 ldr r3, [sp, 0x3d8]       |     r3 = *(arg_3d8h);
    0x0007e46a movs r2, r0               |     r2 = r0;
    0x0007e46c ldr r4, [sp, 0x160]       |     r4 = *(arg_160h);
    0x0007e46e movs r2, r0               |     r2 = r0;
    0x0007e470 adr r4, 0x1e0             |     r4 = 0x1e0;
    0x0007e472 movs r0, r0               |     
    0x0007e474 ldr r3, [sp, 0x380]       |     r3 = *(arg_380h);
    0x0007e476 movs r2, r0               |     r2 = r0;
    0x0007e478 ldr r4, [sp, 0x108]       |     r4 = *(arg_108h);
    0x0007e47a movs r2, r0               |     r2 = r0;
    0x0007e47c ldr r3, [sp, 0x3c8]       |     r3 = *(arg_3c8h);
    0x0007e47e movs r2, r0               |     r2 = r0;
                                         | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7e480 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0007e480 ()                          | void fcn_0007e480 (int16_t arg_190h, int16_t arg_1e0h, int16_t arg_1e8h, int16_t arg_238h, int16_t arg_2b0h, uint32_t arg1, int16_t arg2, int16_t arg3) {
                                                     |     int16_t var_0h;
                                                     |     int16_t var_4h_2;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     |     r2 = arg3;
    0x0007e480 mvnsmi lr, sp, lsr 18                 |     __asm ("mvnsmi lr, sp, lsr 18");
    0x0007e484 mov r7, r1                            |     r7 = r1;
    0x0007e486 ldr r1, [pc, 0xc0]                    |     
    0x0007e488 sub sp, 8                             |     
    0x0007e48a ldr r3, [pc, 0xc0]                    |     r3 = *(0x7e54e);
    0x0007e48c add r1, pc                            |     r1 = 0xfc9da;
    0x0007e48e ldr r3, [r1, r3]                      |     
    0x0007e490 ldr r3, [r3]                          |     r3 = *(0xfc9da);
    0x0007e492 str r3, [sp, 4]                       |     var_4h_2 = r3;
    0x0007e494 mov.w r3, 0                           |     r3 = 0;
    0x0007e498 cmp r0, 0                             |     
                                                     |     if (var_0h == ) {
    0x0007e49a beq 0x7e52e                           |         goto label_4;
                                                     |     }
    0x0007e49c cmp r7, 0                             |     
                                                     |     if (r7 == 0) {
    0x0007e49e beq 0x7e50e                           |         goto label_5;
                                                     |     }
    0x0007e4a0 mov r8, r0                            |     r8 = r0;
    0x0007e4a2 mov r6, sp                            |     r6 = sp;
    0x0007e4a4 eor r5, r2, 1                         |     r5 = r2 ^ 1;
                                                     | label_0:
    0x0007e4a8 mov r1, r7                            |     r1 = r7;
    0x0007e4aa mov r0, r8                            |     r0 = r8;
    0x0007e4ac bl 0x7e348                            |     r0 = fcn_0007e348 (r0, r1, r2, r3, r4, r5, r6);
    0x0007e4b0 subs r4, r0, 0                        |     r4 = r0 - 0;
                                                     |     if (r4 < r0) {
    0x0007e4b2 blt 0x7e4de                           |         goto label_2;
                                                     |     }
    0x0007e4b4 ite eq                                |     
                                                     |     if (r4 != r0) {
    0x0007e4b6 moveq r3, 1                           |         r3 = 1;
                                                     |     }
                                                     |     if (r4 == r0) {
    0x0007e4b8 movne r3, 0                           |         r3 = 0;
                                                     |     }
    0x0007e4ba cmp r4, r7                            |     
    0x0007e4bc it hi                                 |     
                                                     |     if (r4 <= r7) {
    0x0007e4be orrhi r3, r3, 1                       |         r3 |= 1;
                                                     |     }
                                                     |     if (r3 != 0) {
    0x0007e4c2 cbnz r3, 0x7e51a                      |         goto label_6;
                                                     |     }
    0x0007e4c4 mov r1, r6                            |     r1 = r6;
    0x0007e4c6 mov r0, r8                            |     r0 = r8;
    0x0007e4c8 bl 0x7e1c8                            |     r0 = fcn_0007e1c8 (r0, r1, r2, r3);
    0x0007e4cc cmp r0, 0                             |     
                                                     |     if (r0 < 0) {
    0x0007e4ce blt 0x7e4de                           |         goto label_2;
                                                     |     }
    0x0007e4d0 ldr r3, [sp]                          |     r3 = *(sp);
    0x0007e4d2 cmp r3, 0x1f                          |     
                                                     |     if (r3 > 0x1f) {
    0x0007e4d4 bhi 0x7e512                           |         goto label_7;
                                                     |     }
    0x0007e4d6 sub.w r2, r3, 9                       |     r2 = r3 - 9;
    0x0007e4da cmp r2, 1                             |     
    0x0007e4dc bls 0x7e4fa                           |     
                                                     |     while (r2 != 0) {
                                                     | label_2:
    0x0007e4de movs r0, 0                            |         r0 = 0;
                                                     | label_1:
    0x0007e4e0 ldr r2, [pc, 0x6c]                    |         
    0x0007e4e2 ldr r3, [pc, 0x68]                    |         r3 = *(0x7e54e);
    0x0007e4e4 add r2, pc                            |         r2 = 0xfca38;
    0x0007e4e6 ldr r3, [r2, r3]                      |         r3 = *(0xfca38);
    0x0007e4e8 ldr r2, [r3]                          |         r2 = *(0xfca38);
    0x0007e4ea ldr r3, [sp, 4]                       |         r3 = var_4h_2;
    0x0007e4ec eors r2, r3                           |         r2 ^= r3;
    0x0007e4ee mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0007e4f2 bne 0x7e542                           |             goto label_8;
                                                     |         }
    0x0007e4f4 add sp, 8                             |         
    0x0007e4f6 pop.w {r4, r5, r6, r7, r8, pc}        |         
    0x0007e4fa cmp r3, 0xa                           |         
    0x0007e4fc ite ne                                |         
                                                     |         if (r3 == 0xa) {
    0x0007e4fe movne r2, 0                           |             r2 = 0;
                                                     |         }
                                                     |         if (r3 != 0xa) {
    0x0007e500 andeq r2, r5, 1                       |             r2 = r5 & 1;
                                                     |         }
    0x0007e504 cmp r2, 0                             |         
    0x0007e506 bne 0x7e4de                           |         
                                                     |     }
                                                     | label_3:
    0x0007e508 subs r7, r7, r4                       |     r7 -= r4;
    0x0007e50a add r8, r4                            |     r8 += r4;
                                                     |     if (r7 != r7) {
    0x0007e50c bne 0x7e4a8                           |         goto label_0;
                                                     |     }
                                                     | label_5:
    0x0007e50e movs r0, 1                            |     r0 = 1;
    0x0007e510 b 0x7e4e0                             |     goto label_1;
                                                     | label_7:
    0x0007e512 subs r3, 0x7f                         |     r3 -= 0x7f;
    0x0007e514 cmp r3, 0x20                          |     
                                                     |     if (r3 < 0x20) {
    0x0007e516 bls 0x7e4de                           |         goto label_2;
                                                     |     }
    0x0007e518 b 0x7e508                             |     goto label_3;
                                                     | label_6:
    0x0007e51a ldr r1, [pc, 0x38]                    |     
    0x0007e51c movs r2, 0x8a                         |     r2 = 0x8a;
    0x0007e51e ldr r3, [pc, 0x38]                    |     
    0x0007e520 ldr r0, [pc, 0x38]                    |     
    0x0007e522 add r1, pc                            |     r1 = 0xfca7c;
    0x0007e524 add r3, pc                            |     r3 = 0xfca82;
    0x0007e526 adds r1, 7                            |     r1 += 7;
    0x0007e528 add r0, pc                            |     r0 = 0xfca88;
    0x0007e52a bl 0x71518                            |     fcn_00071518 (r0, r1, r2, r3);
                                                     | label_4:
    0x0007e52e ldr r1, [pc, 0x30]                    |     
    0x0007e530 movs r2, 0x81                         |     r2 = 0x81;
    0x0007e532 ldr r3, [pc, 0x30]                    |     
    0x0007e534 ldr r0, [pc, 0x30]                    |     
    0x0007e536 add r1, pc                            |     r1 = 0xfca9c;
    0x0007e538 add r3, pc                            |     r3 = 0xfcaa2;
    0x0007e53a adds r1, 7                            |     r1 += 7;
    0x0007e53c add r0, pc                            |     r0 = 0xfcaa8;
    0x0007e53e bl 0x71518                            |     r0 = fcn_00071518 (r0, r1, r2, r3);
                                                     | label_8:
    0x0007e542 blx 0x927c                            |     fprintf_chk ()
    0x0007e546 nop                                   |     
    0x0007e548 adr r6, 0xe0                          |     r6 = 0xe0;
    0x0007e54a movs r4, r0                           |     r4 = r0;
    0x0007e54c lsls r0, r0, 0x13                     |     r0 <<= 0x13;
    0x0007e54e movs r0, r0                           |     
    0x0007e550 adr r5, 0x380                         |     r5 = 0x380;
    0x0007e552 movs r4, r0                           |     r4 = r0;
    0x0007e554 ldr r2, [sp, 0x238]                   |     r2 = *(arg_238h);
    0x0007e556 movs r2, r0                           |     r2 = r0;
    0x0007e558 ldr r3, [sp, 0x1e0]                   |     r3 = *(arg_1e0h);
    0x0007e55a movs r2, r0                           |     r2 = r0;
    0x0007e55c ldr r2, [sp, 0x2b0]                   |     r2 = *(arg_2b0h);
    0x0007e55e movs r2, r0                           |     r2 = r0;
    0x0007e560 ldr r2, [sp, 0x1e8]                   |     r2 = *(arg_1e8h);
    0x0007e562 movs r2, r0                           |     r2 = r0;
    0x0007e564 ldr r3, [sp, 0x190]                   |     r3 = *(arg_190h);
    0x0007e566 movs r2, r0                           |     r2 = r0;
    0x0007e568 adr r2, 0x3f0                         |     r2 = 0x3f0;
    0x0007e56a movs r0, r0                           |     
                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7ea10 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0007ea10 ()                                          | void fcn_0007ea10 (int16_t arg_2d0h) {
                                                                     |     int16_t var_14h_2;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_dh;
                                                                     |     int32_t var_4h_2;
                                                                     |     int16_t var_14h;
    0x0007ea10 blmi 0x1cd13d8                                        |     __asm ("blmi aav.0x0004a0ae");
    0x0007ea14 ldr r0, [pc, 0x1c4]                                   |     
    0x0007ea16 add r2, pc                                            |     r2 += pc;
    0x0007ea18 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0007ea1c ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0007ea1e sub sp, 0x1c                                          |     
    0x0007ea20 add r0, pc                                            |     r0 = 0xfd600;
    0x0007ea22 ldr r3, [r3]                                          |     r3 = *(r3);
    0x0007ea24 str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x0007ea26 mov.w r3, 0                                           |     r3 = 0;
    0x0007ea2a blx 0x8a68                                            |     r0 = fcn_00008a68 ();
    0x0007ea2e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007ea30 beq.w 0x7eb94                                         |         goto label_9;
                                                                     |     }
    0x0007ea34 mov r5, r0                                            |     r5 = r0;
    0x0007ea36 bl 0x67ee4                                            |     r0 = fcn_00067ee4 (r0, r1, r2);
    0x0007ea3a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0007ea3c beq.w 0x7ebac                                         |         goto label_10;
                                                                     |     }
    0x0007ea40 ldr.w r8, [pc, 0x19c]                                 |     
    0x0007ea44 mov.w r6, 0x4100                                      |     r6 = 0x4100;
    0x0007ea48 movw r7, 0x614d                                       |     
    0x0007ea4c mov.w sb, 0                                           |     sb = 0;
    0x0007ea50 movt r6, 8                                            |     r6 = (r6 & 0xFFFF) | 0x80000;
    0x0007ea54 movt r7, 0x6e69                                       |     r7 = 0x6e69614d;
    0x0007ea58 add r8, pc                                            |     r8 = 0xfd63c;
                                                                     |     do {
    0x0007ea5a add.w r4, r0, 0x13                                    |         r4 = r0 + 0x13;
    0x0007ea5e mov r0, r4                                            |         r0 = r4;
    0x0007ea60 bl 0x75b88                                            |         r0 = fcn_00075b88 (r0);
                                                                     |         if (r0 == 0) {
    0x0007ea64 cbnz r0, 0x7ead0                                      |             
    0x0007ea66 mov r0, r5                                            |             r0 = r5;
    0x0007ea68 blx 0x9128                                            |             fcn_00009128 ();
    0x0007ea6c mov r2, r6                                            |             r2 = r6;
    0x0007ea6e mov r1, r4                                            |             r1 = r4;
    0x0007ea70 blx 0x8e0c                                            |             r0 = fcn_00008e0c ();
    0x0007ea74 subs.w sl, r0, 0                                      |             sl = r0 - 0;
                                                                     |             if (sl >= r0) {
    0x0007ea78 bge 0x7eaf6                                           |                 goto label_11;
                                                                     |             }
    0x0007ea7a blx 0x9628                                            |             r0 = fcn_00009628 ();
    0x0007ea7e ldr r3, [r0]                                          |             r3 = *(r0);
    0x0007ea80 cmp r3, 2                                             |             
                                                                     |             if (r3 != 2) {
    0x0007ea82 beq 0x7eac0                                           |                 
    0x0007ea84 cmp r3, 0x14                                          |                 
                                                                     |                 if (r3 == 0x14) {
    0x0007ea86 beq 0x7eac0                                           |                     goto label_12;
                                                                     |                 }
    0x0007ea88 rsb.w sb, r3, 0                                       |                 sb = r3 - ;
    0x0007ea8c mov.w fp, -1                                          |                 
                                                                     | label_2:
    0x0007ea90 mov r0, sl                                            |                 r0 = sl;
    0x0007ea92 bl 0x69a04                                            |                 fcn_00069a04 (r0, r1, r2, r3);
    0x0007ea96 mov r0, fp                                            |                 r0 = fp;
    0x0007ea98 bl 0x69a04                                            |                 fcn_00069a04 (r0, r1, r2, r3);
                                                                     | label_0:
    0x0007ea9c mov r0, r5                                            |                 r0 = r5;
    0x0007ea9e blx 0x91a8                                            |                 fcn_000091a8 ();
                                                                     | label_5:
    0x0007eaa2 ldr r2, [pc, 0x140]                                   |                 
    0x0007eaa4 ldr r3, [pc, 0x130]                                   |                 r3 = *(0x7ebd8);
    0x0007eaa6 add r2, pc                                            |                 r2 = 0xfd690;
    0x0007eaa8 ldr r3, [r2, r3]                                      |                 r3 = *(0xfd690);
    0x0007eaaa ldr r2, [r3]                                          |                 r2 = *(0xfd690);
    0x0007eaac ldr r3, [sp, 0x14]                                    |                 r3 = var_14h;
    0x0007eaae eors r2, r3                                           |                 r2 ^= r3;
    0x0007eab0 mov.w r3, 0                                           |                 r3 = 0;
                                                                     |                 if (r2 != r3) {
    0x0007eab4 bne.w 0x7ebce                                         |                     goto label_13;
                                                                     |                 }
    0x0007eab8 mov r0, sb                                            |                 r0 = sb;
    0x0007eaba add sp, 0x1c                                          |                 
    0x0007eabc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |                 
                                                                     |             }
                                                                     | label_12:
    0x0007eac0 mov.w fp, -1                                          |             
                                                                     | label_1:
    0x0007eac4 mov r0, sl                                            |             r0 = sl;
    0x0007eac6 bl 0x69a04                                            |             fcn_00069a04 (r0, r1, r2, r3);
    0x0007eaca mov r0, fp                                            |             r0 = fp;
    0x0007eacc bl 0x69a04                                            |             fcn_00069a04 (r0, r1, r2, r3);
                                                                     |         }
                                                                     | label_4:
    0x0007ead0 mov r0, r5                                            |         r0 = r5;
    0x0007ead2 bl 0x67ee4                                            |         r0 = fcn_00067ee4 (r0, r1, r2);
    0x0007ead6 cmp r0, 0                                             |         
    0x0007ead8 bne 0x7ea5a                                           |         
                                                                     |     } while (r0 != 0);
                                                                     | label_6:
    0x0007eada blx 0x9628                                            |     r0 = fcn_00009628 ();
    0x0007eade ldr r3, [r0]                                          |     r3 = *(r0);
    0x0007eae0 cmp r3, 0                                             |     
    0x0007eae2 it gt                                                 |     
                                                                     |     if (r3 <= 0) {
    0x0007eae4 rsbgt sb, r3, 0                                       |         __asm ("rsbgt sb, r3, 0");
                                                                     |         goto label_14;
                                                                     |     }
                                                                     |     if (r3 > 0) {
                                                                     | label_14:
    0x0007eae8 bgt 0x7ea9c                                           |         goto label_0;
                                                                     |     }
    0x0007eaea movs r3, 0                                            |     r3 = 0;
                                                                     | label_8:
    0x0007eaec eor sb, sb, 1                                         |     sb ^= 1;
    0x0007eaf0 orr.w sb, r3, sb                                      |     sb = r3 | sb;
    0x0007eaf4 b 0x7ea9c                                             |     goto label_0;
                                                                     | label_11:
    0x0007eaf6 mov.w r2, 0x100                                       |     r2 = 0x100;
    0x0007eafa mov r1, r8                                            |     r1 = r8;
    0x0007eafc movt r2, 8                                            |     r2 = (r2 & 0xFFFF) | 0x80000;
    0x0007eb00 blx 0x8e0c                                            |     r0 = fcn_00008e0c ();
    0x0007eb04 subs.w fp, r0, 0                                      |     
                                                                     |     if (fp >= r0) {
    0x0007eb08 bge 0x7eb1a                                           |         goto label_15;
                                                                     |     }
                                                                     | label_3:
    0x0007eb0a blx 0x9628                                            |     r0 = fcn_00009628 ();
    0x0007eb0e ldr r3, [r0]                                          |     r3 = *(r0);
    0x0007eb10 cmp r3, 2                                             |     
                                                                     |     if (r3 == 2) {
    0x0007eb12 beq 0x7eac4                                           |         goto label_1;
                                                                     |     }
                                                                     | label_7:
    0x0007eb14 rsb.w sb, r3, 0                                       |     sb = r3 - ;
    0x0007eb18 b 0x7ea90                                             |     goto label_2;
                                                                     | label_15:
    0x0007eb1a add r4, sp, 0xc                                       |     r4 += var_ch;
    0x0007eb1c movs r2, 6                                            |     r2 = 6;
    0x0007eb1e mov r1, r4                                            |     r1 = r4;
    0x0007eb20 blx 0x8dc4                                            |     r0 = fcn_00008dc4 ();
    0x0007eb24 subs r3, r0, 0                                        |     r3 = r0 - 0;
                                                                     |     if (r3 < r0) {
    0x0007eb26 blt 0x7ebb0                                           |         goto label_16;
                                                                     |     }
    0x0007eb28 cmp r3, 6                                             |     
                                                                     |     if (r3 != 6) {
    0x0007eb2a bne 0x7eac4                                           |         goto label_1;
                                                                     |     }
    0x0007eb2c ldr r2, [sp, 0xc]                                     |     r2 = var_ch;
    0x0007eb2e cmp r2, r7                                            |     
                                                                     |     if (r2 != r7) {
    0x0007eb30 bne 0x7eac4                                           |         goto label_1;
                                                                     |     }
    0x0007eb32 ldrh r1, [r4, 4]                                      |     r1 = var_4h_2;
    0x0007eb34 movw r2, 0xa73                                        |     r2 = 0xa73;
    0x0007eb38 cmp r1, r2                                            |     
                                                                     |     if (r1 != r2) {
    0x0007eb3a bne 0x7eac4                                           |         goto label_1;
                                                                     |     }
    0x0007eb3c mov r0, fp                                            |     r0 = fp;
    0x0007eb3e str r3, [sp, 4]                                       |     var_4h = r3;
    0x0007eb40 bl 0x69a04                                            |     fcn_00069a04 (r0, r1, r2, r3);
    0x0007eb44 ldr r1, [pc, 0xa0]                                    |     
    0x0007eb46 mov.w r2, 0x100                                       |     
    0x0007eb4a movt r2, 8                                            |     r2 = 0x80100;
    0x0007eb4e mov r0, sl                                            |     r0 = sl;
    0x0007eb50 add r1, pc                                            |     r1 = 0xfd73c;
    0x0007eb52 blx 0x8e0c                                            |     r0 = fcn_00008e0c ();
    0x0007eb56 subs.w fp, r0, 0                                      |     
    0x0007eb5a ldr r3, [sp, 4]                                       |     r3 = var_4h;
                                                                     |     if (fp < r0) {
    0x0007eb5c blt 0x7eb0a                                           |         goto label_3;
                                                                     |     }
    0x0007eb5e mov r2, r3                                            |     r2 = r3;
    0x0007eb60 mov r1, r4                                            |     r1 = r4;
    0x0007eb62 blx 0x8dc4                                            |     r0 = fcn_00008dc4 ();
    0x0007eb66 cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0007eb68 blt 0x7ebb0                                           |         goto label_16;
                                                                     |     }
    0x0007eb6a cmp r0, 2                                             |     
                                                                     |     if (r0 != 2) {
    0x0007eb6c bne 0x7ebb8                                           |         goto label_17;
                                                                     |     }
    0x0007eb6e ldrb.w r3, [sp, 0xd]                                  |     r3 = var_dh;
    0x0007eb72 cmp r3, 0xa                                           |     
                                                                     |     if (r3 != 0xa) {
    0x0007eb74 bne 0x7ebb8                                           |         goto label_17;
                                                                     |     }
    0x0007eb76 ldrb.w r3, [sp, 0xc]                                  |     r3 = var_ch;
    0x0007eb7a cmp r3, 0x31                                          |     
                                                                     |     if (r3 == 0x31) {
    0x0007eb7c beq 0x7ebbe                                           |         goto label_18;
                                                                     |     }
    0x0007eb7e cmp r3, 0x30                                          |     
                                                                     |     if (r3 != 0x30) {
    0x0007eb80 bne 0x7ebb8                                           |         goto label_17;
                                                                     |     }
    0x0007eb82 mov r0, sl                                            |     r0 = sl;
    0x0007eb84 mov.w sb, 1                                           |     sb = 1;
    0x0007eb88 bl 0x69a04                                            |     fcn_00069a04 (r0, r1, r2, r3);
    0x0007eb8c mov r0, fp                                            |     r0 = fp;
    0x0007eb8e bl 0x69a04                                            |     fcn_00069a04 (r0, r1, r2, r3);
    0x0007eb92 b 0x7ead0                                             |     goto label_4;
                                                                     | label_9:
    0x0007eb94 blx 0x9628                                            |     r0 = fcn_00009628 ();
    0x0007eb98 ldr r3, [r0]                                          |     r3 = *(r0);
    0x0007eb9a cmp r3, 2                                             |     
    0x0007eb9c it ne                                                 |     
                                                                     |     if (r3 == 2) {
    0x0007eb9e rsbne sb, r3, 0                                       |         __asm ("rsbne sb, r3, 0");
                                                                     |         goto label_19;
                                                                     |     }
                                                                     |     if (r3 != 2) {
                                                                     | label_19:
    0x0007eba2 bne.w 0x7eaa2                                         |         goto label_5;
                                                                     |     }
    0x0007eba6 mov.w sb, 1                                           |     sb = 1;
    0x0007ebaa b 0x7eaa2                                             |     goto label_5;
                                                                     | label_10:
    0x0007ebac mov sb, r0                                            |     sb = r0;
    0x0007ebae b 0x7eada                                             |     goto label_6;
                                                                     | label_16:
    0x0007ebb0 blx 0x9628                                            |     r0 = fcn_00009628 ();
    0x0007ebb4 ldr r3, [r0]                                          |     r3 = *(r0);
    0x0007ebb6 b 0x7eb14                                             |     goto label_7;
                                                                     | label_17:
    0x0007ebb8 mvn sb, 4                                             |     sb = ~4;
    0x0007ebbc b 0x7ea90                                             |     goto label_2;
                                                                     | label_18:
    0x0007ebbe mov r0, sl                                            |     r0 = sl;
    0x0007ebc0 bl 0x69a04                                            |     fcn_00069a04 (r0, r1, r2, r3);
    0x0007ebc4 mov r0, fp                                            |     r0 = fp;
    0x0007ebc6 bl 0x69a04                                            |     fcn_00069a04 (r0, r1, r2, r3);
    0x0007ebca movs r3, 1                                            |     r3 = 1;
    0x0007ebcc b 0x7eaec                                             |     goto label_8;
                                                                     | label_13:
    0x0007ebce blx 0x927c                                            |     fprintf_chk ()
    0x0007ebd2 nop                                                   |     
    0x0007ebd4 adr r0, 0x2b8                                         |     r0 = 0x2b8;
    0x0007ebd6 movs r4, r0                                           |     r4 = r0;
    0x0007ebd8 lsls r0, r0, 0x13                                     |     r0 <<= 0x13;
    0x0007ebda movs r0, r0                                           |     
    0x0007ebdc str r7, [sp, 0x2d0]                                   |     *(arg_2d0h) = r7;
    0x0007ebde movs r2, r0                                           |     r2 = r0;
                                                                     |     if (r2 != r0) {
    0x0007ebe0 bne 0x7ec94                                           |         void (*0x7ec94)() ();
                                                                     |     }
    0x0007ebe2 movs r1, r0                                           |     r1 = r0;
    0x0007ebe4 adr r0, 0x78                                          |     r0 = 0x78;
    0x0007ebe6 movs r4, r0                                           |     r4 = r0;
    0x0007ebe8 adr r3, 0x360                                         |     r3 = 0x360;
    0x0007ebea movs r1, r0                                           |     r1 = r0;
                                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7ebec */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) fcn.0007ebec ()                                  | void fcn_0007ebec (int16_t arg_c8h, int16_t arg_210h, int16_t arg_258h, int16_t arg_280h, int16_t arg_2a8h, int16_t arg_338h, int16_t arg_370h, int16_t arg_3b0h, int16_t arg_3c0h, uint32_t arg1, uint32_t arg2) {
                                                             |     int16_t var_8h;
                                                             |     int16_t var_10h;
                                                             |     int16_t var_26h;
                                                             |     int16_t var_20h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0007ebec ldr r2, [pc, 0x16c]                           |     
    0x0007ebee ldr r3, [pc, 0x170]                           |     r3 = *(0x7ed62);
    0x0007ebf0 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x0007ebf4 sub sp, 0x24                                  |     
    0x0007ebf6 add r2, pc                                    |     r2 = 0xfd956;
    0x0007ebf8 movs r6, 0                                    |     r6 = 0;
    0x0007ebfa add r7, sp, 0x10                              |     r7 += var_10h;
    0x0007ebfc ldr r3, [r2, r3]                              |     
    0x0007ebfe ldr r3, [r3]                                  |     r3 = *(0xfd956);
    0x0007ec00 str r3, [r7, 0xc]                             |     *((r7 + 0xc)) = r3;
    0x0007ec02 mov.w r3, 0                                   |     r3 = 0;
    0x0007ec06 strd r6, r6, [r7]                             |     __asm ("strd r6, r6, [r7]");
    0x0007ec0a cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0007ec0c beq.w 0x7ed22                                 |         goto label_2;
                                                             |     }
    0x0007ec10 mov r8, r1                                    |     r8 = r1;
    0x0007ec12 cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x0007ec14 beq.w 0x7ed36                                 |         goto label_3;
                                                             |     }
    0x0007ec18 ldr r1, [pc, 0x148]                           |     
    0x0007ec1a mov r5, r0                                    |     r5 = r0;
    0x0007ec1c add r1, pc                                    |     r1 = 0xfd984;
    0x0007ec1e blx 0x95e0                                    |     r0 = fcn_000095e0 ();
    0x0007ec22 mov r4, r0                                    |     r4 = r0;
    0x0007ec24 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0007ec26 beq 0x7ecd6                                   |         goto label_4;
                                                             |     }
    0x0007ec28 mov r1, r6                                    |     r1 = r6;
    0x0007ec2a mov r0, r5                                    |     r0 = r5;
    0x0007ec2c bl 0x6f934                                    |     r0 = fcn_0006f934 (r0, r1);
    0x0007ec30 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0007ec32 beq.w 0x7ed50                                 |         goto label_5;
                                                             |     }
    0x0007ec36 mov r0, r5                                    |     r0 = r5;
    0x0007ec38 blx 0x8f38                                    |     r0 = fcn_00008f38 ();
    0x0007ec3c add.w r3, r0, 0x17                            |     r3 = r0 + 0x17;
    0x0007ec40 cmp.w r3, 0x400000                            |     
                                                             |     if (r3 > 0x400000) {
    0x0007ec44 bhi 0x7ece0                                   |         goto label_6;
                                                             |     }
    0x0007ec46 ldr.w ip, [pc, 0x120]                         |     
    0x0007ec4a adds r0, 0x1e                                 |     r0 += 0x1e;
    0x0007ec4c bic r0, r0, 7                                 |     r0 = BIT_MASK (r0, 7);
    0x0007ec50 sub.w sp, sp, r0                              |     
    0x0007ec54 add ip, pc                                    |     ip = 0xfd9c2;
    0x0007ec56 add.w sb, sp, 0x10                            |     sb += var_10h;
    0x0007ec5a ldm.w ip!, {r0, r1, r2, r3}                   |     r0 = *(ip!);
                                                             |     r1 = *((ip! + 4));
                                                             |     r2 = *((ip! + 8));
                                                             |     r3 = *((ip! + 12));
    0x0007ec5e mov r4, sb                                    |     r4 = sb;
    0x0007ec60 stm r4!, {r0, r1, r2, r3}                     |     *(r4!) = r0;
                                                             |     *((r4! + 4)) = r1;
                                                             |     *((r4! + 8)) = r2;
                                                             |     *((r4! + 12)) = r3;
    0x0007ec62 ldm.w ip, {r0, r1}                            |     r0 = *(ip);
                                                             |     r1 = *((ip + 4));
    0x0007ec66 str r0, [r4], 4                               |     *(r4) = r0;
                                                             |     r4 += 4;
    0x0007ec6a add.w r0, sp, 0x26                            |     r0 += var_26h;
    0x0007ec6e strh r1, [r4]                                 |     *(r4) = r1;
    0x0007ec70 mov r1, r5                                    |     r1 = r5;
    0x0007ec72 ldr r4, [pc, 0xf8]                            |     
    0x0007ec74 adds r5, r7, 4                                |     r5 = r7 + 4;
    0x0007ec76 blx 0x9050                                    |     fcn_00009050 ();
    0x0007ec7a ldr r2, [pc, 0xf4]                            |     
    0x0007ec7c mov r3, r7                                    |     r3 = r7;
    0x0007ec7e add r4, pc                                    |     r4 = 0xfd9f0;
    0x0007ec80 mov r1, sb                                    |     r1 = sb;
    0x0007ec82 strd r4, r5, [sp]                             |     __asm ("strd r4, r5, [sp]");
    0x0007ec86 mov r0, r6                                    |     r0 = r6;
    0x0007ec88 add r2, pc                                    |     r2 = 0xfd9fe;
    0x0007ec8a str r6, [sp, 8]                               |     var_8h = r6;
    0x0007ec8c bl 0x686a8                                    |     r0 = fcn_000686a8 ();
    0x0007ec90 adds r3, r0, 2                                |     r3 = r0 + 2;
    0x0007ec92 mov r4, r0                                    |     r4 = r0;
    0x0007ec94 ldr r5, [r7, 4]                               |     r5 = *((r7 + 4));
    0x0007ec96 it eq                                         |     
                                                             |     if (r3 != r0) {
    0x0007ec98 mvneq r4, 0x6f                                |         r4 = ~0x6f;
                                                             |     }
                                                             |     if (r3 == r0) {
    0x0007ec9c beq 0x7ecac                                   |         goto label_1;
                                                             |     }
    0x0007ec9e cmp r4, 0                                     |     
                                                             |     if (r4 < 0) {
    0x0007eca0 blt 0x7ecac                                   |         goto label_1;
                                                             |     }
    0x0007eca2 ldr r6, [r7]                                  |     r6 = *(r7);
                                                             |     if (r6 != 0) {
    0x0007eca4 cbz r6, 0x7eca8                               |         
                                                             |         if (r5 != 0) {
    0x0007eca6 cbnz r5, 0x7ecf4                              |             goto label_7;
                                                             |         }
                                                             |     }
                                                             | label_0:
    0x0007eca8 mvn r4, 4                                     |     r4 = ~4;
                                                             |     do {
                                                             | label_1:
    0x0007ecac mov r0, r5                                    |         r0 = r5;
    0x0007ecae blx 0x8dac                                    |         fcn_00008dac ();
    0x0007ecb2 ldr r0, [r7]                                  |         r0 = *(r7);
    0x0007ecb4 blx 0x8dac                                    |         fcn_00008dac ();
    0x0007ecb8 ldr r2, [pc, 0xb8]                            |         
    0x0007ecba ldr r3, [pc, 0xa4]                            |         r3 = *(0x7ed62);
    0x0007ecbc add r2, pc                                    |         r2 = 0xfda34;
    0x0007ecbe ldr r3, [r2, r3]                              |         r3 = *(0xfda34);
    0x0007ecc0 ldr r2, [r3]                                  |         r2 = *(0xfda34);
    0x0007ecc2 ldr r3, [r7, 0xc]                             |         r3 = *((r7 + 0xc));
    0x0007ecc4 eors r2, r3                                   |         r2 ^= r3;
    0x0007ecc6 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0007ecca bne 0x7ed58                                   |             goto label_8;
                                                             |         }
    0x0007eccc mov r0, r4                                    |         r0 = r4;
    0x0007ecce adds r7, 0x14                                 |         r7 += 0x14;
    0x0007ecd0 mov sp, r7                                    |         
    0x0007ecd2 pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
                                                             | label_4:
    0x0007ecd6 movs r3, 1                                    |         r3 = 1;
    0x0007ecd8 mov r5, r0                                    |         r5 = r0;
    0x0007ecda str.w r3, [r8]                                |         __asm ("str.w r3, [r8]");
    0x0007ecde b 0x7ecac                                     |         
                                                             |     } while (1);
                                                             | label_6:
    0x0007ece0 ldr r1, [pc, 0x94]                            |     
    0x0007ece2 movs r2, 0xc8                                 |     r2 = 0xc8;
    0x0007ece4 ldr r3, [pc, 0x94]                            |     
    0x0007ece6 ldr r0, [pc, 0x98]                            |     
    0x0007ece8 add r1, pc                                    |     r1 = 0xfda64;
    0x0007ecea add r3, pc                                    |     r3 = 0xfda6a;
    0x0007ecec adds r1, 7                                    |     r1 += 7;
    0x0007ecee add r0, pc                                    |     r0 = 0xfda74;
    0x0007ecf0 bl 0x71518                                    |     fcn_00071518 (r0, r1, r2, r3);
                                                             | label_7:
    0x0007ecf4 ldr r1, [pc, 0x8c]                            |     
    0x0007ecf6 mov r0, r5                                    |     r0 = r5;
    0x0007ecf8 add r1, pc                                    |     r1 = 0xfda80;
    0x0007ecfa blx 0x95e0                                    |     r0 = fcn_000095e0 ();
    0x0007ecfe mov r4, r0                                    |     r4 = r0;
    0x0007ed00 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0007ed02 bne 0x7eca8                                   |         goto label_0;
                                                             |     }
    0x0007ed04 add.w r1, r7, 8                               |     r1 = r7 + 8;
    0x0007ed08 mov r0, r6                                    |     r0 = r6;
    0x0007ed0a bl 0x74584                                    |     r0 = fcn_00074584 (r0, r1);
    0x0007ed0e cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x0007ed10 blt 0x7ed4a                                   |         goto label_9;
                                                             |     }
    0x0007ed12 ldrd r5, r3, [r7, 4]                          |     __asm ("ldrd r5, r3, [r7, 4]");
    0x0007ed16 cmp r3, 1                                     |     
    0x0007ed18 it gt                                         |     
                                                             |     if (r3 > 1) {
    0x0007ed1a strgt r3, [r8]                                |         *(r8) = r3;
                                                             |         goto label_10;
                                                             |     }
                                                             |     if (r3 > 1) {
                                                             | label_10:
    0x0007ed1e bgt 0x7ecac                                   |         goto label_1;
                                                             |     }
    0x0007ed20 b 0x7eca8                                     |     goto label_0;
                                                             | label_2:
    0x0007ed22 ldr r1, [pc, 0x64]                            |     
    0x0007ed24 movs r2, 0xbd                                 |     r2 = 0xbd;
    0x0007ed26 ldr r3, [pc, 0x64]                            |     
    0x0007ed28 ldr r0, [pc, 0x64]                            |     
    0x0007ed2a add r1, pc                                    |     r1 = 0xfdab8;
    0x0007ed2c add r3, pc                                    |     r3 = 0xfdabe;
    0x0007ed2e adds r1, 7                                    |     r1 += 7;
    0x0007ed30 add r0, pc                                    |     r0 = 0xfdac4;
    0x0007ed32 bl 0x71518                                    |     fcn_00071518 (r0, r1, r2, r3);
                                                             | label_3:
    0x0007ed36 ldr r1, [pc, 0x5c]                            |     
    0x0007ed38 movs r2, 0xbe                                 |     r2 = 0xbe;
    0x0007ed3a ldr r3, [pc, 0x5c]                            |     
    0x0007ed3c ldr r0, [pc, 0x5c]                            |     
    0x0007ed3e add r1, pc                                    |     r1 = 0xfdad8;
    0x0007ed40 add r3, pc                                    |     r3 = 0xfdade;
    0x0007ed42 adds r1, 7                                    |     r1 += 7;
    0x0007ed44 add r0, pc                                    |     r0 = 0xfdae4;
    0x0007ed46 bl 0x71518                                    |     fcn_00071518 (r0, r1, r2, r3);
                                                             | label_9:
    0x0007ed4a ldr r5, [r7, 4]                               |     r5 = *((r7 + 4));
    0x0007ed4c mov r4, r0                                    |     r4 = r0;
    0x0007ed4e b 0x7ecac                                     |     goto label_1;
                                                             | label_5:
    0x0007ed50 mov r5, r0                                    |     r5 = r0;
    0x0007ed52 mvn r4, 0x15                                  |     r4 = ~0x15;
    0x0007ed56 b 0x7ecac                                     |     goto label_1;
                                                             | label_8:
    0x0007ed58 blx 0x927c                                    |     fprintf_chk ()
    0x0007ed5c ldr r6, [sp, 0x338]                           |     r6 = *(arg_338h);
    0x0007ed5e movs r4, r0                                   |     r4 = r0;
    0x0007ed60 lsls r0, r0, 0x13                             |     r0 <<= 0x13;
    0x0007ed62 movs r0, r0                                   |     
    0x0007ed64 ldrb r4, [r0, 0x13]                           |     r4 = *((r0 + 0x13));
    0x0007ed66 movs r1, r0                                   |     r1 = r0;
    0x0007ed68 str r5, [sp, 0x280]                           |     *(arg_280h) = r5;
    0x0007ed6a movs r2, r0                                   |     r2 = r0;
    0x0007ed6c str r5, [sp, 0x258]                           |     *(arg_258h) = r5;
    0x0007ed6e movs r2, r0                                   |     r2 = r0;
    0x0007ed70 str r5, [sp, 0x210]                           |     *(arg_210h) = r5;
    0x0007ed72 movs r2, r0                                   |     r2 = r0;
    0x0007ed74 ldr r6, [sp, 0x20]                            |     r6 = var_20h;
    0x0007ed76 movs r4, r0                                   |     r4 = r0;
    0x0007ed78 str r3, [sp, 0x3b0]                           |     *(arg_3b0h) = r3;
    0x0007ed7a movs r2, r0                                   |     r2 = r0;
    0x0007ed7c str r5, [sp, 0xc8]                            |     *(arg_c8h) = r5;
    0x0007ed7e movs r2, r0                                   |     r2 = r0;
    0x0007ed80 ldrh r2, [r6, 6]                              |     r2 = *((r6 + 6));
    0x0007ed82 movs r0, r0                                   |     
    0x0007ed84 lsrs r4, r7, 9                                |     r4 = r7 >> 9;
    0x0007ed86 movs r1, r0                                   |     r1 = r0;
    0x0007ed88 str r3, [sp, 0x2a8]                           |     *(arg_2a8h) = r3;
    0x0007ed8a movs r2, r0                                   |     r2 = r0;
    0x0007ed8c str r4, [sp, 0x3c0]                           |     *(arg_3c0h) = r4;
    0x0007ed8e movs r2, r0                                   |     r2 = r0;
    0x0007ed90 ldrb r0, [r7, 0xe]                            |     r0 = *((r7 + 0xe));
    0x0007ed92 movs r1, r0                                   |     r1 = r0;
    0x0007ed94 str r3, [sp, 0x258]                           |     *(arg_258h) = r3;
    0x0007ed96 movs r2, r0                                   |     r2 = r0;
    0x0007ed98 str r4, [sp, 0x370]                           |     *(arg_370h) = r4;
    0x0007ed9a movs r2, r0                                   |     r2 = r0;
    0x0007ed9c ldr r0, [r5, 0x5c]                            |     r0 = *((r5 + 0x5c));
    0x0007ed9e movs r2, r0                                   |     r2 = r0;
                                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7eda0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0007eda0 ()                  | void fcn_0007eda0 (int16_t arg_48h, int16_t arg_50h, int16_t arg_a0h, int16_t arg_f0h, int16_t arg_120h, int16_t arg_178h, int16_t arg_190h, int16_t arg_210h, int16_t arg_320h, int16_t arg_340h, int16_t arg_3c8h) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     int16_t var_8h_2;
                                             |     int16_t var_14h;
                                             |     int16_t var_18h;
                                             |     int16_t var_1ch;
    0x0007eda0 ldrsbgt pc, [r0, -pc]         |     __asm ("ldrsbgt pc, [r0, -pc]");
    0x0007eda4 mov.w r1, -1                  |     r1 = -1;
    0x0007eda8 push {r4, r5, lr}             |     
    0x0007edaa sub sp, 0x24                  |     
    0x0007edac ldr r5, [pc, 0x108]           |     
    0x0007edae movs r4, 0                    |     r4 = 0;
    0x0007edb0 add ip, pc                    |     
    0x0007edb2 add r3, sp, 0x18              |     r3 += var_18h;
    0x0007edb4 ldr r0, [pc, 0x104]           |     
    0x0007edb6 add r2, sp, 0x14              |     r2 += var_14h;
    0x0007edb8 ldr.w r5, [ip, r5]            |     r5 = *((ip + r5));
    0x0007edbc add r0, pc                    |     r0 = 0xfdc7c;
    0x0007edbe ldr r5, [r5]                  |     r5 = *(0x7eeb8);
    0x0007edc0 str r5, [sp, 0x1c]            |     var_1ch = r5;
    0x0007edc2 mov.w r5, 0                   |     r5 = 0;
    0x0007edc6 str r4, [sp, 0x14]            |     var_14h = r4;
    0x0007edc8 bl 0x6a7bc                    |     r0 = fcn_0006a7bc (r0, r1, r2);
    0x0007edcc subs r5, r0, 0                |     r5 = r0 - 0;
                                             |     if (r5 < r0) {
    0x0007edce blt 0x7ee40                   |         goto label_2;
                                             |     }
    0x0007edd0 ldr r5, [sp, 0x18]            |     r5 = var_18h;
    0x0007edd2 bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x0007edd6 mov r3, r0                    |     r3 = r0;
    0x0007edd8 cmp r5, 0x13                  |     
                                             |     if (r5 < 0x13) {
    0x0007edda bls 0x7ee12                   |         goto label_3;
                                             |     }
    0x0007eddc ldr r0, [sp, 0x14]            |     r0 = var_14h;
    0x0007edde ldrb r2, [r0, 1]              |     r2 = *((r0 + 1));
    0x0007ede0 cmp r2, 0x13                  |     
                                             |     if (r2 < 0x13) {
    0x0007ede2 bls 0x7ee12                   |         goto label_3;
                                             |     }
    0x0007ede4 ldrb r1, [r0, 0x13]           |     r1 = *((r0 + 0x13));
    0x0007ede6 ands r1, r1, 0x10             |     r1 &= 0x10;
                                             |     if (r1 != r1) {
    0x0007edea bne 0x7ee1c                   |         goto label_4;
                                             |     }
    0x0007edec cmp r3, 6                     |     
    0x0007edee it le                         |     
                                             |     if (r3 > 6) {
    0x0007edf0 movle r4, 1                   |         r4 = 1;
                                             |     }
                                             |     if (r3 > 6) {
    0x0007edf2 bgt 0x7ee6a                   |         goto label_5;
                                             |     }
                                             |     do {
                                             | label_0:
    0x0007edf4 blx 0x8dac                    |         fcn_00008dac ();
    0x0007edf8 ldr r2, [pc, 0xc4]            |         
    0x0007edfa ldr r3, [pc, 0xbc]            |         r3 = *(0x7eeba);
    0x0007edfc add r2, pc                    |         r2 = 0xfdcc0;
    0x0007edfe ldr r3, [r2, r3]              |         r3 = *(0xfdcc0);
    0x0007ee00 ldr r2, [r3]                  |         r2 = *(0xfdcc0);
    0x0007ee02 ldr r3, [sp, 0x1c]            |         r3 = var_1ch;
    0x0007ee04 eors r2, r3                   |         r2 ^= r3;
    0x0007ee06 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x0007ee0a bne 0x7eeae                   |             goto label_6;
                                             |         }
    0x0007ee0c mov r0, r4                    |         r0 = r4;
    0x0007ee0e add sp, 0x24                  |         
    0x0007ee10 pop {r4, r5, pc}              |         
                                             | label_3:
    0x0007ee12 cmp r3, 6                     |         
                                             |         if (r3 > 6) {
    0x0007ee14 bgt 0x7ee8a                   |             goto label_7;
                                             |         }
                                             | label_1:
    0x0007ee16 ldr r0, [sp, 0x14]            |         r0 = var_14h;
    0x0007ee18 movs r4, 2                    |         r4 = 2;
    0x0007ee1a b 0x7edf4                     |         
                                             |     } while (1);
                                             | label_4:
    0x0007ee1c cmp r3, 6                     |     
                                             |     if (r3 <= 6) {
    0x0007ee1e ble 0x7edf4                   |         goto label_0;
                                             |     }
    0x0007ee20 ldr r2, [pc, 0xa0]            |     
    0x0007ee22 movs r3, 0xdf                 |     r3 = 0xdf;
    0x0007ee24 ldr r0, [pc, 0xa0]            |     
    0x0007ee26 ldr r1, [pc, 0xa4]            |     
    0x0007ee28 add r2, pc                    |     r2 = 0xfdcf0;
    0x0007ee2a add r0, pc                    |     r0 = 0xfdcf6;
    0x0007ee2c adds r2, 7                    |     r2 += 7;
    0x0007ee2e add r1, pc                    |     r1 = 0xfdd00;
    0x0007ee30 strd r1, r0, [sp]             |     __asm ("strd r1, r0, [sp]");
    0x0007ee34 mov r1, r4                    |     r1 = r4;
    0x0007ee36 movs r0, 7                    |     r0 = 7;
    0x0007ee38 bl 0x71448                    |     fcn_00071448 ();
    0x0007ee3c ldr r0, [sp, 0x14]            |     r0 = var_14h;
    0x0007ee3e b 0x7edf4                     |     goto label_0;
                                             | label_2:
    0x0007ee40 bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x0007ee44 cmp r0, 6                     |     
                                             |     if (r0 <= 6) {
    0x0007ee46 ble 0x7ee16                   |         goto label_1;
                                             |     }
    0x0007ee48 ldr r2, [pc, 0x84]            |     
    0x0007ee4a movs r3, 0xcf                 |     r3 = 0xcf;
    0x0007ee4c ldr r4, [pc, 0x84]            |     
    0x0007ee4e mov r1, r5                    |     r1 = r5;
    0x0007ee50 ldr r0, [pc, 0x84]            |     
    0x0007ee52 add r2, pc                    |     r2 = 0xfdd26;
    0x0007ee54 add r4, pc                    |     r4 = 0xfdd2c;
    0x0007ee56 adds r2, 7                    |     r2 += 7;
    0x0007ee58 add r0, pc                    |     r0 = 0xfdd34;
    0x0007ee5a strd r0, r4, [sp]             |     __asm ("strd r0, r4, [sp]");
    0x0007ee5e movs r0, 7                    |     r0 = 7;
    0x0007ee60 bl 0x71448                    |     fcn_00071448 ();
    0x0007ee64 movs r4, 2                    |     r4 = 2;
    0x0007ee66 ldr r0, [sp, 0x14]            |     r0 = var_14h;
    0x0007ee68 b 0x7edf4                     |     goto label_0;
                                             | label_5:
    0x0007ee6a ldr r2, [pc, 0x70]            |     
    0x0007ee6c movs r3, 0xe2                 |     r3 = 0xe2;
    0x0007ee6e ldr r4, [pc, 0x70]            |     
    0x0007ee70 ldr r0, [pc, 0x70]            |     
    0x0007ee72 add r2, pc                    |     r2 = 0xfdd54;
    0x0007ee74 add r4, pc                    |     r4 = 0xfdd5a;
    0x0007ee76 adds r2, 7                    |     r2 += 7;
    0x0007ee78 add r0, pc                    |     r0 = 0xfdd60;
    0x0007ee7a strd r0, r4, [sp]             |     __asm ("strd r0, r4, [sp]");
    0x0007ee7e movs r0, 7                    |     r0 = 7;
    0x0007ee80 bl 0x71448                    |     fcn_00071448 ();
    0x0007ee84 movs r4, 1                    |     r4 = 1;
    0x0007ee86 ldr r0, [sp, 0x14]            |     r0 = var_14h;
    0x0007ee88 b 0x7edf4                     |     goto label_0;
                                             | label_7:
    0x0007ee8a ldr r2, [pc, 0x5c]            |     
    0x0007ee8c movs r3, 0xd8                 |     r3 = 0xd8;
    0x0007ee8e ldr r1, [pc, 0x5c]            |     
    0x0007ee90 movs r0, 7                    |     r0 = 7;
    0x0007ee92 ldr r4, [pc, 0x5c]            |     
    0x0007ee94 add r2, pc                    |     r2 = 0xfdd82;
    0x0007ee96 str r5, [sp, 8]               |     var_8h_2 = r5;
    0x0007ee98 add r1, pc                    |     r1 = 0xfdd8a;
    0x0007ee9a adds r2, 7                    |     r2 += 7;
    0x0007ee9c add r4, pc                    |     r4 = 0xfdd92;
    0x0007ee9e str r1, [sp, 4]               |     var_4h = r1;
    0x0007eea0 str r4, [sp]                  |     *(sp) = r4;
    0x0007eea2 movs r1, 0                    |     r1 = 0;
    0x0007eea4 bl 0x71448                    |     fcn_00071448 ();
    0x0007eea8 movs r4, 2                    |     r4 = 2;
    0x0007eeaa ldr r0, [sp, 0x14]            |     r0 = var_14h;
    0x0007eeac b 0x7edf4                     |     goto label_0;
                                             | label_6:
    0x0007eeae blx 0x927c                    |     fprintf_chk ()
    0x0007eeb2 nop                           |     
    0x0007eeb4 ldr r5, [sp, 0x50]            |     r5 = *(arg_50h);
    0x0007eeb6 movs r4, r0                   |     r4 = r0;
    0x0007eeb8 lsls r0, r0, 0x13             |     r0 <<= 0x13;
    0x0007eeba movs r0, r0                   |     
    0x0007eebc str r4, [sp, 0x210]           |     *(arg_210h) = r4;
    0x0007eebe movs r2, r0                   |     r2 = r0;
    0x0007eec0 ldr r4, [sp, 0x320]           |     r4 = *(arg_320h);
    0x0007eec2 movs r4, r0                   |     r4 = r0;
    0x0007eec4 str r4, [sp, 0xf0]            |     *(arg_f0h) = r4;
    0x0007eec6 movs r2, r0                   |     r2 = r0;
    0x0007eec8 str r5, [sp, 0x178]           |     *(arg_178h) = r5;
    0x0007eeca movs r2, r0                   |     r2 = r0;
    0x0007eecc adr r2, 0x388                 |     r2 = 0x388;
    0x0007eece movs r2, r0                   |     r2 = r0;
    0x0007eed0 str r4, [sp, 0x48]            |     *(arg_48h) = r4;
    0x0007eed2 movs r2, r0                   |     r2 = r0;
    0x0007eed4 str r4, [sp, 0xa0]            |     *(arg_a0h) = r4;
    0x0007eed6 movs r2, r0                   |     r2 = r0;
    0x0007eed8 adr r2, 0x2e0                 |     r2 = 0x2e0;
    0x0007eeda movs r2, r0                   |     r2 = r0;
    0x0007eedc str r3, [sp, 0x3c8]           |     *(arg_3c8h) = r3;
    0x0007eede movs r2, r0                   |     r2 = r0;
    0x0007eee0 str r5, [sp, 0x120]           |     *(arg_120h) = r5;
    0x0007eee2 movs r2, r0                   |     r2 = r0;
    0x0007eee4 adr r2, 0x260                 |     r2 = 0x260;
    0x0007eee6 movs r2, r0                   |     r2 = r0;
    0x0007eee8 str r3, [sp, 0x340]           |     *(arg_340h) = r3;
    0x0007eeea movs r2, r0                   |     r2 = r0;
    0x0007eeec str r4, [sp, 0x190]           |     *(arg_190h) = r4;
    0x0007eeee movs r2, r0                   |     r2 = r0;
    0x0007eef0 adr r2, 0x1d0                 |     r2 = 0x1d0;
    0x0007eef2 movs r2, r0                   |     r2 = r0;
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7ef7c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0007ef7c ()                      | void fcn_0007ef7c (int16_t arg1) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     int16_t var_8h;
                                                 |     int16_t var_10h;
                                                 |     int16_t var_14h;
                                                 |     int16_t var_18h;
                                                 |     int16_t var_1ch;
                                                 |     int16_t var_20h;
                                                 |     int16_t var_24h;
                                                 |     r0 = arg1;
    0x0007ef7c blmi 0x1d91950                    |     __asm ("blmi aav.0x00049b42");
    0x0007ef80 ldr r1, [pc, 0x1d0]               |     
    0x0007ef82 add r2, pc                        |     r2 += pc;
    0x0007ef84 push {r4, r5, r6, lr}             |     
    0x0007ef86 ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x0007ef88 sub sp, 0x28                      |     
    0x0007ef8a movs r5, 0                        |     r5 = 0;
    0x0007ef8c add r1, pc                        |     r1 = 0xfe0e4;
    0x0007ef8e mov r6, r0                        |     r6 = r0;
    0x0007ef90 ldr r3, [r3]                      |     r3 = *(r3);
    0x0007ef92 str r3, [sp, 0x24]                |     var_24h = r3;
    0x0007ef94 mov.w r3, 0                       |     r3 = 0;
    0x0007ef98 strd r5, r5, [sp, 0x10]           |     __asm ("strd r5, r5, [var_10h]");
    0x0007ef9c blx 0x8fb4                        |     r0 = fcn_00008fb4 ();
    0x0007efa0 mov r4, r0                        |     r4 = r0;
    0x0007efa2 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0007efa4 beq.w 0x7f110                     |         goto label_6;
                                                 |     }
    0x0007efa8 mov r3, r0                        |     r3 = r0;
    0x0007efaa movs r2, 0xa                      |     r2 = 0xa;
    0x0007efac add r1, sp, 0x14                  |     r1 += var_14h;
    0x0007efae add r0, sp, 0x10                  |     r0 += var_10h;
    0x0007efb0 blx 0x92bc                        |     r0 = fcn_000092bc ();
    0x0007efb4 cmp r0, 0                         |     
                                                 |     if (r0 < 0) {
    0x0007efb6 blt 0x7f030                       |         goto label_7;
                                                 |     }
    0x0007efb8 ldr r1, [pc, 0x19c]               |     
    0x0007efba add r2, sp, 0x20                  |     r2 += var_20h;
    0x0007efbc str r2, [sp]                      |     *(sp) = r2;
    0x0007efbe add r3, sp, 0x1c                  |     r3 += var_1ch;
    0x0007efc0 ldr r0, [sp, 0x10]                |     r0 = var_10h;
    0x0007efc2 add r2, sp, 0x18                  |     r2 += var_18h;
    0x0007efc4 add r1, pc                        |     r1 = 0xfe120;
    0x0007efc6 blx 0x8b20                        |     r0 = kmod_list_next ();
    0x0007efca cmp r0, 2                         |     
                                                 |     if (r0 <= 2) {
    0x0007efcc ble 0x7f00e                       |         goto label_8;
                                                 |     }
    0x0007efce ldrd r5, r3, [sp, 0x18]           |     __asm ("ldrd r5, r3, [var_1ch]");
    0x0007efd2 orrs r5, r3                       |     r5 |= r3;
    0x0007efd4 bl 0x70bf8                        |     fcn_00070bf8 ();
    0x0007efd8 cmp r5, 0                         |     
                                                 |     if (r5 == 0) {
    0x0007efda beq 0x7f094                       |         goto label_9;
                                                 |     }
                                                 | label_3:
    0x0007efdc cmp r0, 6                         |     
                                                 |     if (r0 > 6) {
    0x0007efde bgt 0x7f0c6                       |         goto label_10;
                                                 |     }
                                                 | label_0:
    0x0007efe0 movs r5, 1                        |     r5 = 1;
                                                 |     do {
                                                 | label_4:
    0x0007efe2 ldr r0, [sp, 0x10]                |         r0 = var_10h;
    0x0007efe4 blx 0x8dac                        |         fcn_00008dac ();
    0x0007efe8 movs r3, 0                        |         r3 = 0;
    0x0007efea mov r0, r4                        |         r0 = r4;
    0x0007efec str r3, [sp, 0x10]                |         var_10h = r3;
    0x0007efee bl 0x69b30                        |         fcn_00069b30 (r0, r1, r2, r3);
    0x0007eff2 ldr r2, [pc, 0x168]               |         
    0x0007eff4 ldr r3, [pc, 0x158]               |         r3 = *(0x7f150);
    0x0007eff6 add r2, pc                        |         r2 = 0xfe158;
    0x0007eff8 ldr r3, [r2, r3]                  |         r3 = *(0xfe158);
    0x0007effa ldr r2, [r3]                      |         r2 = *(0xfe158);
    0x0007effc ldr r3, [sp, 0x24]                |         r3 = var_24h;
    0x0007effe eors r2, r3                       |         r2 ^= r3;
    0x0007f000 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0007f004 bne.w 0x7f10c                     |             goto label_11;
                                                 |         }
    0x0007f008 mov r0, r5                        |         r0 = r5;
    0x0007f00a add sp, 0x28                      |         
    0x0007f00c pop {r4, r5, r6, pc}              |         
                                                 | label_8:
    0x0007f00e blx 0x9628                        |         r0 = fcn_00009628 ();
    0x0007f012 ldr r5, [r0]                      |         r5 = *(r0);
    0x0007f014 bl 0x70bf8                        |         r0 = fcn_00070bf8 ();
    0x0007f018 cmp r0, 6                         |         
                                                 |         if (r0 > 6) {
    0x0007f01a bgt 0x7f0a2                       |             goto label_12;
                                                 |         }
                                                 | label_1:
    0x0007f01c cmp r5, 0                         |         
    0x0007f01e it lt                             |         
                                                 |         if (r5 < 0) {
    0x0007f020 rsblt r5, r5, 0                   |             __asm ("rsblt r5, r5, 0");
                                                 |         }
    0x0007f022 uxtb r5, r5                       |         r5 = (int8_t) r5;
    0x0007f024 rsbs r5, r5, 0                    |         r5 -= ;
                                                 | label_2:
    0x0007f026 cmp r5, 0                         |         
    0x0007f028 it ge                             |         
                                                 |         if (r5 < 0) {
    0x0007f02a mvnge r5, 0x55                    |             r5 = ~0x55;
                                                 |         }
    0x0007f02e b 0x7efe2                         |         
                                                 |     } while (1);
                                                 | label_7:
    0x0007f030 mov r0, r4                        |     r0 = r4;
    0x0007f032 blx 0x8fe4                        |     r0 = fcn_00008fe4 ();
                                                 |     if (r0 == 0) {
    0x0007f036 cbz r0, 0x7f062                   |         goto label_13;
                                                 |     }
    0x0007f038 bl 0x70bf8                        |     r0 = fcn_00070bf8 ();
    0x0007f03c cmp r0, 6                         |     
                                                 |     if (r0 <= 6) {
    0x0007f03e ble 0x7efe0                       |         goto label_0;
                                                 |     }
    0x0007f040 ldr r2, [pc, 0x11c]               |     
    0x0007f042 mov r1, r5                        |     r1 = r5;
    0x0007f044 ldr r3, [pc, 0x11c]               |     
    0x0007f046 ldr r0, [pc, 0x120]               |     
    0x0007f048 add r2, pc                        |     r2 = 0xfe1ac;
    0x0007f04a str r6, [sp, 8]                   |     var_8h = r6;
    0x0007f04c add r3, pc                        |     r3 = 0xfe1b4;
    0x0007f04e adds r2, 7                        |     r2 += 7;
    0x0007f050 add r0, pc                        |     r0 = 0xfe1be;
    0x0007f052 str r3, [sp, 4]                   |     var_4h = r3;
    0x0007f054 str r0, [sp]                      |     *(sp) = r0;
    0x0007f056 movw r3, 0x32e                    |     r3 = 0x32e;
    0x0007f05a movs r0, 7                        |     r0 = 7;
    0x0007f05c bl 0x71448                        |     fcn_00071448 ();
    0x0007f060 b 0x7efe0                         |     goto label_0;
                                                 | label_13:
    0x0007f062 blx 0x9628                        |     r0 = fcn_00009628 ();
    0x0007f066 ldr r5, [r0]                      |     r5 = *(r0);
    0x0007f068 bl 0x70bf8                        |     r0 = fcn_00070bf8 ();
    0x0007f06c cmp r0, 6                         |     
                                                 |     if (r0 <= 6) {
    0x0007f06e ble 0x7f01c                       |         goto label_1;
                                                 |     }
    0x0007f070 ldr r2, [pc, 0xf8]                |     
    0x0007f072 mov r1, r5                        |     r1 = r5;
    0x0007f074 ldr r3, [pc, 0xf8]                |     
    0x0007f076 ldr r0, [pc, 0xfc]                |     
    0x0007f078 add r2, pc                        |     r2 = 0xfe1e8;
    0x0007f07a str r6, [sp, 8]                   |     var_8h = r6;
    0x0007f07c add r3, pc                        |     r3 = 0xfe1f0;
    0x0007f07e adds r2, 7                        |     r2 += 7;
    0x0007f080 add r0, pc                        |     r0 = 0xfe1fa;
    0x0007f082 str r3, [sp, 4]                   |     var_4h = r3;
    0x0007f084 str r0, [sp]                      |     *(sp) = r0;
    0x0007f086 movw r3, 0x332                    |     r3 = 0x332;
    0x0007f08a movs r0, 7                        |     r0 = 7;
    0x0007f08c bl 0x71448                        |     r0 = fcn_00071448 ();
    0x0007f090 mov r5, r0                        |     r5 = r0;
    0x0007f092 b 0x7f026                         |     goto label_2;
                                                 | label_9:
    0x0007f094 ldr r3, [sp, 0x20]                |     r3 = var_20h;
    0x0007f096 adds r3, 1                        |     r3++;
                                                 |     if (r3 != 1) {
    0x0007f098 bne 0x7efdc                       |         goto label_3;
                                                 |     }
    0x0007f09a cmp r0, 6                         |     
    0x0007f09c bgt 0x7f0ea                       |     
                                                 |     while (r5 == 2) {
    0x0007f09e movs r5, 0                        |         r5 = 0;
    0x0007f0a0 b 0x7efe2                         |         goto label_4;
                                                 | label_12:
    0x0007f0a2 ldr r2, [pc, 0xd4]                |         
    0x0007f0a4 mov r1, r5                        |         r1 = r5;
    0x0007f0a6 ldr r3, [pc, 0xd4]                |         
    0x0007f0a8 ldr r0, [pc, 0xd4]                |         
    0x0007f0aa add r2, pc                        |         r2 = 0xfe228;
    0x0007f0ac str r6, [sp, 8]                   |         var_8h = r6;
    0x0007f0ae add r3, pc                        |         r3 = 0xfe230;
    0x0007f0b0 adds r2, 7                        |         r2 += 7;
    0x0007f0b2 add r0, pc                        |         r0 = 0xfe236;
    0x0007f0b4 str r3, [sp, 4]                   |         var_4h = r3;
    0x0007f0b6 str r0, [sp]                      |         *(sp) = r0;
    0x0007f0b8 movw r3, 0x337                    |         r3 = 0x337;
    0x0007f0bc movs r0, 7                        |         r0 = 7;
    0x0007f0be bl 0x71448                        |         r0 = fcn_00071448 ();
    0x0007f0c2 mov r5, r0                        |         r5 = r0;
    0x0007f0c4 b 0x7f026                         |         goto label_2;
                                                 | label_10:
    0x0007f0c6 ldr r2, [pc, 0xbc]                |         
    0x0007f0c8 movs r1, 0                        |         r1 = 0;
    0x0007f0ca ldr r3, [pc, 0xbc]                |         
    0x0007f0cc movs r5, 1                        |         r5 = 1;
    0x0007f0ce ldr r0, [pc, 0xbc]                |         
    0x0007f0d0 add r2, pc                        |         r2 = 0xfe25a;
    0x0007f0d2 str r6, [sp, 8]                   |         var_8h = r6;
    0x0007f0d4 add r3, pc                        |         r3 = 0xfe262;
    0x0007f0d6 adds r2, 7                        |         r2 += 7;
    0x0007f0d8 add r0, pc                        |         r0 = 0xfe26a;
    0x0007f0da str r3, [sp, 4]                   |         var_4h = r3;
    0x0007f0dc str r0, [sp]                      |         *(sp) = r0;
    0x0007f0de mov.w r3, 0x340                   |         r3 = 0x340;
    0x0007f0e2 movs r0, 7                        |         r0 = 7;
    0x0007f0e4 bl 0x71448                        |         fcn_00071448 ();
    0x0007f0e8 b 0x7efe2                         |         goto label_4;
    0x0007f0ea ldr r2, [pc, 0xa4]                |         
    0x0007f0ec movs r0, 7                        |         r0 = 7;
    0x0007f0ee ldr r3, [pc, 0xa4]                |         
    0x0007f0f0 ldr r1, [pc, 0xa4]                |         
    0x0007f0f2 add r2, pc                        |         r2 = 0xfe288;
    0x0007f0f4 str r6, [sp, 8]                   |         var_8h = r6;
    0x0007f0f6 add r3, pc                        |         r3 = 0xfe290;
    0x0007f0f8 adds r2, 7                        |         r2 += 7;
    0x0007f0fa add r1, pc                        |         r1 = 0xfe296;
    0x0007f0fc str r3, [sp, 4]                   |         var_4h = r3;
    0x0007f0fe str r1, [sp]                      |         *(sp) = r1;
    0x0007f100 movw r3, 0x33b                    |         r3 = 0x33b;
    0x0007f104 mov r1, r5                        |         r1 = r5;
    0x0007f106 bl 0x71448                        |         fcn_00071448 ();
    0x0007f10a b 0x7efe2                         |         goto label_4;
                                                 | label_11:
    0x0007f10c blx 0x927c                        |         fprintf_chk ()
                                                 | label_6:
    0x0007f110 blx 0x9628                        |         r0 = fcn_00009628 ();
    0x0007f114 mov r5, r0                        |         r5 = r0;
    0x0007f116 bl 0x70bf8                        |         r0 = fcn_00070bf8 ();
    0x0007f11a cmp r0, 6                         |         
                                                 |         if (r0 > 6) {
    0x0007f11c bgt 0x7f128                       |             goto label_14;
                                                 |         }
                                                 | label_5:
    0x0007f11e ldr r5, [r5]                      |         r5 = *(r5);
    0x0007f120 cmp r5, 2                         |         
    0x0007f122 beq 0x7f09e                       |         
                                                 |     }
    0x0007f124 rsbs r5, r5, 0                    |     r5 -= ;
    0x0007f126 b 0x7efe2                         |     goto label_4;
                                                 | label_14:
    0x0007f128 ldr r2, [pc, 0x70]                |     
    0x0007f12a movs r0, 7                        |     r0 = 7;
    0x0007f12c ldr r3, [pc, 0x70]                |     
    0x0007f12e ldr r1, [pc, 0x74]                |     
    0x0007f130 add r2, pc                        |     r2 = 0xfe2d0;
    0x0007f132 add r3, pc                        |     r3 = 0xfe2d6;
    0x0007f134 adds r2, 7                        |     r2 += 7;
    0x0007f136 add r1, pc                        |     r1 = 0xfe2e0;
    0x0007f138 strd r3, r6, [sp, 4]              |     __asm ("strd r3, r6, [var_8h]");
    0x0007f13c str r1, [sp]                      |     *(sp) = r1;
    0x0007f13e movw r3, 0x327                    |     r3 = 0x327;
    0x0007f142 ldr r1, [r5]                      |     r1 = *(r5);
    0x0007f144 bl 0x71448                        |     fcn_00071448 ();
    0x0007f148 b 0x7f11e                         |     goto label_5;
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x7fdf4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0007fdf4 ()                  | void fcn_0007fdf4 () {
                                             |     int16_t var_0h_2;
                                             |     int16_t var_4h_2;
                                             |     int16_t var_8h_2;
                                             |     int16_t var_10h_2;
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     int16_t var_8h;
                                             |     int32_t var_bh;
                                             |     int8_t var_fh;
                                             |     int16_t var_10h;
                                             |     int32_t var_0h_3;
                                             |     int32_t var_8h_3;
                                             |     int16_t var_ch;
                                             |     int32_t var_10h_3;
                                             |     int32_t var_14h;
                                             |     int16_t var_0h_4;
    0x0007fdf4 ldr r2, [pc, 0x2d4]           |     
    0x0007fdf6 ldr r3, [pc, 0x2d8]           |     r3 = *(0x800d2);
    0x0007fdf8 ldr r0, [pc, 0x2c4]           |     
    0x0007fdfa add r2, pc                    |     r2 = 0xffeca;
    0x0007fdfc push {r4, r5, r6, r7, lr}     |     
    0x0007fdfe ldr r6, [pc, 0x2c4]           |     r6 = *(0x800c6);
    0x0007fe00 sub sp, 0x2c                  |     
    0x0007fe02 movs r4, 0                    |     r4 = 0;
    0x0007fe04 ldr r3, [r2, r3]              |     
    0x0007fe06 add r7, sp, 0x10              |     r7 += var_10h;
    0x0007fe08 add r0, pc                    |     r0 = 0xffecc;
    0x0007fe0a ldr r3, [r3]                  |     r3 = *(0xffeca);
    0x0007fe0c str r3, [r7, 0x14]            |     var_14h = r3;
    0x0007fe0e mov.w r3, 0                   |     r3 = 0;
    0x0007fe12 strd r4, r4, [r7]             |     __asm ("strd r4, r4, [r7]");
    0x0007fe16 str r4, [r7, 8]               |     var_8h_3 = r4;
    0x0007fe18 blx 0x9240                    |     nl_langinfo (r0);
    0x0007fe1c ldr r5, [r6, r0]              |     r5 = *(0x800c6);
    0x0007fe1e cmp r5, r4                    |     
    0x0007fe20 it ge                         |     
                                             |     if (r5 < r4) {
    0x0007fe22 movge r0, r4                  |         r0 = r4;
                                             |     }
    0x0007fe24 blt 0x7fe54                   |     
                                             |     while (1) {
    0x0007fe26 blx 0x8dac                    |         fcn_00008dac ();
    0x0007fe2a ldr r0, [r7, 4]               |         r0 = var_0h_3;
    0x0007fe2c blx 0x8dac                    |         fcn_00008dac ();
    0x0007fe30 ldr r0, [r7]                  |         r0 = *(r7);
    0x0007fe32 blx 0x8dac                    |         fcn_00008dac ();
    0x0007fe36 ldr r2, [pc, 0x29c]           |         
    0x0007fe38 ldr r3, [pc, 0x294]           |         r3 = *(0x800d0);
    0x0007fe3a add r2, pc                    |         r2 = 0xfff14;
    0x0007fe3c ldr r3, [r2, r3]              |         r3 = *(0xfff14);
    0x0007fe3e ldr r2, [r3]                  |         r2 = *(0xfff14);
    0x0007fe40 ldr r3, [r7, 0x14]            |         r3 = var_14h;
    0x0007fe42 eors r2, r3                   |         r2 ^= r3;
    0x0007fe44 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x0007fe48 bne.w 0x802e0                 |             goto label_21;
                                             |         }
    0x0007fe4c mov r0, r5                    |         r0 = r5;
    0x0007fe4e adds r7, 0x1c                 |         r7 += 0x1c;
    0x0007fe50 mov sp, r7                    |         
    0x0007fe52 pop {r4, r5, r6, r7, pc}      |         
    0x0007fe54 ldr r0, [pc, 0x280]           |         
    0x0007fe56 mov r1, r4                    |         r1 = r4;
    0x0007fe58 add r0, pc                    |         r0 = 0xfff34;
    0x0007fe5a blx 0x8df4                    |         r0 = fcn_00008df4 ();
    0x0007fe5e cmp r0, r4                    |         
                                             |         if (r0 >= r4) {
    0x0007fe60 bge 0x7ff5a                   |             goto label_22;
                                             |         }
    0x0007fe62 blx 0x9628                    |         r0 = fcn_00009628 ();
    0x0007fe66 ldr r4, [r0]                  |         r4 = *(r0);
    0x0007fe68 cmp r4, 2                     |         
                                             |         if (r4 != 2) {
    0x0007fe6a beq 0x7fe92                   |             
    0x0007fe6c bl 0x70bf8                    |             r0 = fcn_00070bf8 ();
    0x0007fe70 cmp r0, 6                     |             
                                             |             if (r0 <= 6) {
    0x0007fe72 ble 0x7fe92                   |                 goto label_1;
                                             |             }
    0x0007fe74 ldr r2, [pc, 0x264]           |             
    0x0007fe76 movw r3, 0x28e                |             r3 = 0x28e;
    0x0007fe7a ldr r5, [pc, 0x264]           |             
    0x0007fe7c ldr r0, [pc, 0x264]           |             
    0x0007fe7e add r2, pc                    |             r2 = 0xfff5e;
    0x0007fe80 add r5, pc                    |             r5 = 0xfff66;
    0x0007fe82 add r0, pc                    |             r0 = 0xfff6a;
                                             | label_2:
    0x0007fe84 strd r0, r5, [sp]             |             __asm ("strd r0, r5, [sp]");
    0x0007fe88 mov r1, r4                    |             r1 = r4;
    0x0007fe8a adds r2, 7                    |             r2 += 7;
    0x0007fe8c movs r0, 7                    |             r0 = 7;
    0x0007fe8e bl 0x71448                    |             fcn_00071448 ();
                                             |         }
                                             | label_1:
    0x0007fe92 ldr r0, [pc, 0x254]           |         
    0x0007fe94 adds r1, r7, 4                |         r1 += var_0h_3;
    0x0007fe96 add r0, pc                    |         r0 = 0xfff84;
    0x0007fe98 bl 0x6b320                    |         r0 = fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x0007fe9c subs r4, r0, 0                |         r4 = r0 - 0;
                                             |         if (r4 < r0) {
    0x0007fe9e blt 0x7ff8e                   |             goto label_23;
                                             |         }
    0x0007fea0 ldr r4, [r7, 4]               |         r4 = var_0h_3;
    0x0007fea2 ldr r1, [pc, 0x248]           |         
    0x0007fea4 mov r0, r4                    |         r0 = r4;
    0x0007fea6 add r1, pc                    |         r1 = 0xfff98;
    0x0007fea8 blx 0x9164                    |         r0 = fcn_00009164 ();
                                             |         if (r0 == 0) {
    0x0007feac cbz r0, 0x7fec8               |             goto label_24;
                                             |         }
                                             | label_0:
    0x0007feae movs r5, 0x18                 |         r5 = 0x18;
                                             | label_5:
    0x0007feb0 bl 0x70bf8                    |         r0 = fcn_00070bf8 ();
    0x0007feb4 cmp r0, 6                     |         
                                             |         if (r0 > 6) {
    0x0007feb6 bgt 0x7ffb6                   |             goto label_25;
                                             |         }
                                             | label_4:
    0x0007feb8 ldr r0, [pc, 0x20c]           |         
    0x0007feba add r0, pc                    |         r0 = 0xfff86;
    0x0007febc blx 0x9240                    |         nl_langinfo (r0);
    0x0007febe strd r4, r6, [r0, 0xc]        |         __asm ("strd r4, r6, [r0, 0xc]");
    0x0007fec2 ldr r0, [r7, 8]               |         r0 = var_8h_3;
    0x0007fec4 str r5, [r6, r3]              |         *((r6 + r3)) = r5;
    0x0007fec6 b 0x7fe26                     |         
                                             |     }
                                             | label_24:
    0x0007fec8 ldr r1, [pc, 0x224]           |     
    0x0007feca mov r0, r4                    |     r0 = r4;
    0x0007fecc add r1, pc                    |     r1 = 0xfffc0;
    0x0007fece blx 0x9164                    |     r0 = fcn_00009164 ();
    0x0007fed2 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0007fed4 bne 0x7feae                   |         goto label_0;
                                             |     }
                                             | label_3:
    0x0007fed6 ldr r2, [pc, 0x21c]           |     
    0x0007fed8 add.w r3, r7, 8               |     r3 += var_8h_3;
    0x0007fedc ldr r1, [pc, 0x218]           |     
    0x0007fede ldr r0, [pc, 0x21c]           |     
    0x0007fee0 add r2, pc                    |     r2 = 0xfffda;
    0x0007fee2 add r1, pc                    |     r1 = 0xfffde;
    0x0007fee4 add r0, pc                    |     r0 = 0xfffe6;
    0x0007fee6 bl 0x6a9c4                    |     r0 = fcn_0006a9c4 (r0, r1, r2, r3);
    0x0007feea subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 < r0) {
    0x0007feec blt 0x7ffde                   |         goto label_26;
                                             |     }
    0x0007feee ldr r0, [r7, 8]               |     r0 = var_8h_3;
    0x0007fef0 ldrb r3, [r0]                 |     r3 = *(r0);
    0x0007fef2 cmp r3, 0x30                  |     
                                             |     if (r3 == 0x30) {
    0x0007fef4 beq.w 0x80040                 |         goto label_27;
                                             |     }
                                             | label_7:
    0x0007fef8 add.w r1, r7, 0xc             |     r1 += var_ch;
    0x0007fefc bl 0x74584                    |     r0 = fcn_00074584 (r0, r1);
    0x0007ff00 subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 < r0) {
    0x0007ff02 blt.w 0x80160                 |         goto label_28;
                                             |     }
    0x0007ff06 ldr r1, [r7, 0xc]             |     r1 = var_ch;
    0x0007ff08 movs r3, 0                    |     r3 = 0;
    0x0007ff0a str r3, [r7, 0x10]            |     var_10h_3 = r3;
    0x0007ff0c cmp r1, 0                     |     
                                             |     if (r1 != 0) {
    0x0007ff0e bne.w 0x801ae                 |         goto label_29;
                                             |     }
    0x0007ff12 ldr r3, [pc, 0x1ec]           |     
    0x0007ff14 sub sp, 0x10                  |     
    0x0007ff16 ldr r5, [pc, 0x1ec]           |     
    0x0007ff18 add r4, sp, 0x10              |     r4 += var_0h;
    0x0007ff1a add r3, pc                    |     r3 = 0x100020;
    0x0007ff1c ldm.w r3, {r0, r1, r2}        |     r0 = *(r3);
                                             |     r1 = *((r3 + 4));
                                             |     r2 = *((r3 + 8));
    0x0007ff20 add r5, pc                    |     r5 = 0x10002a;
    0x0007ff22 stm.w r4, {r0, r1, r2}        |     *(r4) = r0;
                                             |     *((r4 + 4)) = r1;
                                             |     *((r4 + 8)) = r2;
    0x0007ff26 ldrb r2, [r5, 4]              |     r2 = *((r5 + 4));
    0x0007ff28 ldr r0, [r5]                  |     r0 = imp.__progname;
    0x0007ff2a strb r2, [r4, 0xf]            |     var_fh = r2;
    0x0007ff2c str.w r0, [r4, 0xb]           |     __asm ("str.w r0, [var_bh]");
                                             | label_14:
    0x0007ff30 add.w r1, r7, 0x10            |     r1 += var_10h_3;
    0x0007ff34 mov r0, r4                    |     r0 = r4;
    0x0007ff36 bl 0x6b320                    |     fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x0007ff3a subs r5, r0, 0                |     r5 -= var_10h_2;
                                             |     if (r5 < var_10h_2) {
    0x0007ff3c blt.w 0x80256                 |         goto label_30;
                                             |     }
    0x0007ff40 ldr r4, [r7, 0x10]            |     r4 = var_10h_3;
    0x0007ff42 ldr r1, [pc, 0x1c4]           |     
    0x0007ff44 mov r0, r4                    |     r0 = r4;
    0x0007ff46 add r1, pc                    |     r1 = 0x100054;
    0x0007ff48 bl 0x803c0                    |     r0 = fcn_000803c0 (r0, r1);
    0x0007ff4c cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0007ff4e bne.w 0x8028c                 |         goto label_31;
                                             |     }
                                             | label_16:
    0x0007ff52 mov r0, r4                    |     r0 = r4;
    0x0007ff54 blx 0x8dac                    |     fcn_00008dac ();
    0x0007ff58 b 0x7ffe8                     |     goto label_6;
                                             | label_22:
    0x0007ff5a ldr r0, [pc, 0x1b0]           |     
    0x0007ff5c mov r1, r4                    |     r1 = r4;
    0x0007ff5e add r0, pc                    |     r0 = 0x100070;
    0x0007ff60 blx 0x8df4                    |     r0 = fcn_00008df4 ();
    0x0007ff64 cmp r0, 0                     |     
                                             |     if (r0 >= 0) {
    0x0007ff66 bge 0x7fe92                   |         goto label_1;
                                             |     }
    0x0007ff68 blx 0x9628                    |     r0 = fcn_00009628 ();
    0x0007ff6c ldr r4, [r0]                  |     r4 = *(r0);
    0x0007ff6e bl 0x70bf8                    |     fcn_00070bf8 ();
    0x0007ff72 cmp r4, 2                     |     
                                             |     if (r4 == 2) {
    0x0007ff74 beq.w 0x801aa                 |         goto label_32;
                                             |     }
    0x0007ff78 cmp r0, 6                     |     
                                             |     if (r0 <= 6) {
    0x0007ff7a ble 0x7fe92                   |         goto label_1;
                                             |     }
    0x0007ff7c ldr r2, [pc, 0x190]           |     
    0x0007ff7e movw r3, 0x295                |     r3 = 0x295;
    0x0007ff82 ldr r5, [pc, 0x190]           |     
    0x0007ff84 ldr r0, [pc, 0x190]           |     
    0x0007ff86 add r2, pc                    |     r2 = 0x10009a;
    0x0007ff88 add r5, pc                    |     r5 = 0x1000a2;
    0x0007ff8a add r0, pc                    |     r0 = 0x1000a6;
    0x0007ff8c b 0x7fe84                     |     goto label_2;
                                             | label_23:
    0x0007ff8e bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x0007ff92 cmp r0, 6                     |     
                                             |     if (r0 <= 6) {
    0x0007ff94 ble 0x7fed6                   |         goto label_3;
                                             |     }
    0x0007ff96 ldr r2, [pc, 0x184]           |     
    0x0007ff98 movw r3, 0x29b                |     r3 = 0x29b;
    0x0007ff9c ldr r5, [pc, 0x180]           |     
    0x0007ff9e mov r1, r4                    |     r1 = r4;
    0x0007ffa0 ldr r0, [pc, 0x180]           |     
    0x0007ffa2 add r2, pc                    |     r2 = 0x1000c4;
    0x0007ffa4 add r5, pc                    |     r5 = 0x1000c8;
    0x0007ffa6 adds r2, 7                    |     r2 += 7;
    0x0007ffa8 add r0, pc                    |     r0 = 0x1000d0;
    0x0007ffaa strd r0, r5, [sp]             |     __asm ("strd r0, r5, [sp]");
    0x0007ffae movs r0, 7                    |     r0 = 7;
    0x0007ffb0 bl 0x71448                    |     fcn_00071448 ();
    0x0007ffb4 b 0x7fed6                     |     goto label_3;
                                             | label_25:
    0x0007ffb6 mov r0, r5                    |     r0 = r5;
    0x0007ffb8 ldr r4, [pc, 0x16c]           |     
    0x0007ffba bl 0x7f314                    |     fcn_0007f314 (r0);
    0x0007ffbe ldr r2, [pc, 0x16c]           |     
    0x0007ffc0 movs r1, 0                    |     r1 = 0;
    0x0007ffc2 ldr r3, [pc, 0x16c]           |     
    0x0007ffc4 add r4, pc                    |     r4 = 0x1000f0;
    0x0007ffc6 str r0, [sp, 8]               |     var_8h = r0;
    0x0007ffc8 movs r0, 7                    |     r0 = 7;
    0x0007ffca add r2, pc                    |     r2 = 0x1000fc;
    0x0007ffcc str r4, [sp]                  |     *(sp) = r4;
    0x0007ffce add r3, pc                    |     r3 = 0x100104;
    0x0007ffd0 adds r2, 7                    |     r2 += 7;
    0x0007ffd2 str r3, [sp, 4]               |     var_4h = r3;
    0x0007ffd4 movw r3, 0x30e                |     r3 = 0x30e;
    0x0007ffd8 bl 0x71448                    |     fcn_00071448 ();
    0x0007ffdc b 0x7feb8                     |     goto label_4;
                                             | label_26:
    0x0007ffde bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x0007ffe2 cmp r0, 6                     |     
                                             |     if (r0 > 6) {
    0x0007ffe4 bgt.w 0x80198                 |         goto label_33;
                                             |     }
                                             | label_6:
    0x0007ffe8 ldr r0, [pc, 0x148]           |     
    0x0007ffea mov r1, r7                    |     r1 = r7;
    0x0007ffec add r0, pc                    |     r0 = 0x100124;
    0x0007ffee bl 0x6b320                    |     r0 = fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x0007fff2 subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 <= r0) {
    0x0007fff4 bgt 0x80018                   |         
    0x0007fff6 adds r3, r4, 2                |         r3 = r4 + 2;
    0x0007fff8 bics r3, r3, 2                |         __asm ("bics r3, r3, 2");
                                             |         if (r3 == r4) {
    0x0007fffc beq 0x80048                   |             goto label_34;
                                             |         }
    0x0007fffe bl 0x70bf8                    |         r0 = fcn_00070bf8 ();
    0x00080002 cmp r0, 6                     |         
                                             |         if (r0 > 6) {
    0x00080004 bgt 0x80092                   |             goto label_35;
                                             |         }
                                             | label_9:
    0x00080006 rsbs r5, r4, 0                |         r5 = r4 - ;
    0x00080008 uxtb r5, r5                   |         r5 = (int8_t) r5;
    0x0008000a rsbs r5, r5, 0                |         r5 -= ;
                                             | label_10:
    0x0008000c cmp r5, 0                     |         
    0x0008000e ldr r0, [r7, 8]               |         r0 = var_8h_3;
    0x00080010 it ge                         |         
                                             |         if (r5 < 0) {
    0x00080012 mvnge r5, 0x55                |             r5 = ~0x55;
                                             |         }
    0x00080016 movs r0, r0                   |         
                                             |     }
                                             | label_8:
    0x00080018 ldr r4, [r7]                  |     r4 = *(r7);
                                             | label_11:
    0x0008001a ldr r1, [pc, 0x11c]           |     
    0x0008001c mov r0, r4                    |     r0 = r4;
    0x0008001e add r1, pc                    |     r1 = 0x10015c;
    0x00080020 blx 0x95e0                    |     r0 = fcn_000095e0 ();
    0x00080024 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00080026 beq.w 0x8018a                 |         goto label_36;
                                             |     }
    0x0008002a ldr r0, [pc, 0x110]           |     
    0x0008002c mov r2, r4                    |     r2 = r4;
    0x0008002e movs r1, 0x1c                 |     r1 = 0x1c;
    0x00080030 add r0, pc                    |     r0 = 0x100172;
    0x00080032 bl 0x7a870                    |     r0 = fcn_0007a870 (r0, r1, r2);
    0x00080036 subs r5, r0, 0                |     r5 = r0 - 0;
                                             |     if (r5 >= r0) {
    0x00080038 bge.w 0x7feb0                 |         goto label_5;
                                             |     }
                                             | label_12:
    0x0008003c movs r5, 0x1b                 |     r5 = 0x1b;
    0x0008003e b 0x7feb0                     |     goto label_5;
                                             | label_27:
    0x00080040 ldrb r3, [r0, 1]              |     r3 = *((r0 + 1));
    0x00080042 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00080044 beq 0x7ffe8                   |         goto label_6;
                                             |     }
    0x00080046 b 0x7fef8                     |     goto label_7;
                                             | label_34:
    0x00080048 bl 0x76a30                    |     r0 = fcn_00076a30 (r0);
    0x0008004c cmp r0, 1                     |     
                                             |     if (r0 == 1) {
    0x0008004e beq 0x800a4                   |         goto label_37;
                                             |     }
    0x00080050 ldr r0, [pc, 0xec]            |     
    0x00080052 mov r1, r7                    |     r1 = r7;
    0x00080054 add r0, pc                    |     r0 = 0x100198;
    0x00080056 bl 0x6b320                    |     r0 = fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x0008005a subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 > r0) {
    0x0008005c bgt 0x80018                   |         goto label_8;
                                             |     }
    0x0008005e adds r3, r4, 2                |     r3 = r4 + 2;
    0x00080060 bics r3, r3, 2                |     __asm ("bics r3, r3, 2");
                                             |     if (r3 == r4) {
    0x00080064 beq.w 0x801ca                 |         goto label_38;
                                             |     }
    0x00080068 bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x0008006c cmp r0, 6                     |     
                                             |     if (r0 <= 6) {
    0x0008006e ble 0x80006                   |         goto label_9;
                                             |     }
    0x00080070 ldr r2, [pc, 0xd0]            |     
    0x00080072 mov.w r3, 0x2e0               |     r3 = 0x2e0;
    0x00080076 ldr r6, [pc, 0xd0]            |     
    0x00080078 ldr r5, [pc, 0xd0]            |     
    0x0008007a add r2, pc                    |     r2 = 0x1001c2;
    0x0008007c add r6, pc                    |     r6 = 0x1001ca;
    0x0008007e add r5, pc                    |     r5 = 0x1001ce;
                                             |     do {
    0x00080080 movs r0, 7                    |         r0 = 7;
    0x00080082 strd r5, r6, [sp]             |         __asm ("strd r5, r6, [sp]");
    0x00080086 mov r1, r4                    |         r1 = r4;
    0x00080088 add r2, r0                    |         r2 += r0;
    0x0008008a bl 0x71448                    |         r0 = fcn_00071448 ();
    0x0008008e mov r5, r0                    |         r5 = r0;
    0x00080090 b 0x8000c                     |         goto label_10;
                                             | label_35:
    0x00080092 ldr r2, [pc, 0xbc]            |         
    0x00080094 mov.w r3, 0x2c4               |         r3 = 0x2c4;
    0x00080098 ldr r6, [pc, 0xb8]            |         
    0x0008009a ldr r5, [pc, 0xbc]            |         
    0x0008009c add r2, pc                    |         r2 = 0x1001f2;
    0x0008009e add r6, pc                    |         r6 = 0x1001f6;
    0x000800a0 add r5, pc                    |         r5 = 0x1001fe;
    0x000800a2 b 0x80080                     |         
                                             |     } while (1);
                                             | label_37:
    0x000800a4 ldr r0, [pc, 0xb4]            |     
    0x000800a6 add r0, pc                    |     r0 = 0x100206;
    0x000800a8 blx 0x8b80                    |     r0 = ftello64 ();
    0x000800ac mov r4, r0                    |     r4 = r0;
    0x000800ae cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x000800b0 beq.w 0x801e6                 |         goto label_17;
                                             |     }
    0x000800b4 ldrb r3, [r0]                 |     r3 = *(r0);
    0x000800b6 cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x000800b8 bne 0x8001a                   |         goto label_11;
                                             |     }
                                             | label_15:
    0x000800ba movs r5, 0                    |     r5 = 0;
    0x000800bc b 0x7feb0                     |     goto label_5;
                                             | label_28:
    0x00080160 bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x00080164 cmp r0, 6                     |     
                                             |     if (r0 <= 6) {
    0x00080166 ble.w 0x7ffe8                 |         goto label_6;
                                             |     }
    0x0008016a ldr r2, [pc, 0x1a4]           |     
    0x0008016c mov.w r3, 0x2ac               |     r3 = 0x2ac;
    0x00080170 ldr r5, [pc, 0x1a0]           |     
    0x00080172 ldr r0, [pc, 0x1a4]           |     
    0x00080174 add r2, pc                    |     r2 = 0x10048a;
    0x00080176 add r5, pc                    |     r5 = 0x10048e;
    0x00080178 add r0, pc                    |     r0 = 0x100496;
                                             | label_13:
    0x0008017a strd r0, r5, [sp]             |     __asm ("strd r0, r5, [sp]");
    0x0008017e mov r1, r4                    |     r1 = r4;
    0x00080180 adds r2, 7                    |     r2 += 7;
    0x00080182 movs r0, 7                    |     r0 = 7;
    0x00080184 bl 0x71448                    |     fcn_00071448 ();
    0x00080188 b 0x7ffe8                     |     goto label_6;
                                             | label_36:
    0x0008018a bl 0x7eef4                    |     r0 = fcn_0007eef4 ();
    0x0008018e mov r5, r0                    |     r5 = r0;
    0x00080190 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x00080192 bne.w 0x7feb0                 |         goto label_5;
                                             |     }
    0x00080196 b 0x8003c                     |     goto label_12;
                                             | label_33:
    0x00080198 ldr r2, [pc, 0x180]           |     
    0x0008019a movw r3, 0x2a6                |     r3 = 0x2a6;
    0x0008019e ldr r5, [pc, 0x180]           |     
    0x000801a0 ldr r0, [pc, 0x180]           |     
    0x000801a2 add r2, pc                    |     r2 = 0x1004c2;
    0x000801a4 add r5, pc                    |     r5 = 0x1004ca;
    0x000801a6 add r0, pc                    |     r0 = 0x1004ce;
    0x000801a8 b 0x8017a                     |     goto label_13;
                                             | label_32:
    0x000801aa movs r5, 0x14                 |     r5 = 0x14;
    0x000801ac b 0x7feb0                     |     goto label_5;
                                             | label_29:
    0x000801ae ldr r0, [pc, 0x178]           |     
    0x000801b0 sub sp, 0x18                  |     
    0x000801b2 ldr r3, [pc, 0x178]           |     
    0x000801b4 add r4, sp, 0x10              |     r4 += var_10h_2;
    0x000801b6 movs r2, 0x18                 |     r2 = 0x18;
    0x000801b8 add r0, pc                    |     r0 = 0x1004e6;
    0x000801ba strd r1, r0, [sp]             |     __asm ("strd r1, r0, [sp]");
    0x000801be add r3, pc                    |     r3 = 0x1004f0;
    0x000801c0 movs r1, 1                    |     r1 = 1;
    0x000801c2 mov r0, r4                    |     r0 = r4;
    0x000801c4 blx 0x9494                    |     fcn_00009494 ();
    0x000801c8 b 0x7ff30                     |     goto label_14;
                                             | label_38:
    0x000801ca ldr r1, [pc, 0x164]           |     
    0x000801cc mov r2, r7                    |     r2 = r7;
    0x000801ce movs r0, 1                    |     r0 = 1;
    0x000801d0 add r1, pc                    |     r1 = 0x100506;
    0x000801d2 bl 0x7714c                    |     r0 = fcn_0007714c (r0, r1, r2, r3);
    0x000801d6 subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 > r0) {
    0x000801d8 bgt.w 0x80018                 |         goto label_8;
                                             |     }
                                             |     if (r4 != r0) {
    0x000801dc beq 0x801e6                   |         
    0x000801de bl 0x70bf8                    |         r0 = fcn_00070bf8 ();
    0x000801e2 cmp r0, 6                     |         
                                             |         if (r0 > 6) {
    0x000801e4 bgt 0x80296                   |             goto label_39;
                                             |         }
                                             |     }
                                             | label_17:
    0x000801e6 bl 0x7eef4                    |     r0 = fcn_0007eef4 ();
    0x000801ea mov r5, r0                    |     r5 = r0;
    0x000801ec cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x000801ee bne.w 0x7feb0                 |         goto label_5;
                                             |     }
    0x000801f2 bl 0x65fd0                    |     r0 = fcn_00065fd0 ();
    0x000801f6 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x000801f8 beq.w 0x800ba                 |         goto label_15;
                                             |     }
    0x000801fc bl 0x66e7c                    |     r0 = fcn_00066e7c ();
    0x00080200 subs r4, r0, 0                |     r4 = r0 - 0;
                                             |     if (r4 < r0) {
    0x00080202 blt 0x8022c                   |         goto label_40;
                                             |     }
                                             |     if (r4 == r0) {
    0x00080204 beq 0x802b6                   |         goto label_41;
                                             |     }
    0x00080206 ldr r0, [pc, 0x12c]           |     
    0x00080208 mov r1, r5                    |     r1 = r5;
    0x0008020a add r0, pc                    |     r0 = 0x100544;
    0x0008020c blx 0x8df4                    |     r0 = fcn_00008df4 ();
    0x00080210 cmp r0, 0                     |     
                                             |     if (r0 >= 0) {
    0x00080212 bge 0x802e4                   |         goto label_42;
                                             |     }
                                             | label_18:
    0x00080214 blx 0x9628                    |     r0 = fcn_00009628 ();
    0x00080218 ldr r4, [r0]                  |     r4 = *(r0);
    0x0008021a cmp r4, 2                     |     
                                             |     if (r4 == 2) {
    0x0008021c beq.w 0x800ba                 |         goto label_15;
                                             |     }
                                             | label_19:
    0x00080220 rsbs r4, r4, 0                |     r4 -= ;
    0x00080222 cmp r4, 0                     |     
                                             |     if (r4 > 0) {
    0x00080224 bgt.w 0x8003c                 |         goto label_12;
                                             |     }
                                             |     if (r4 == 0) {
    0x00080228 beq.w 0x800ba                 |         goto label_15;
                                             |     }
                                             | label_40:
    0x0008022c bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x00080230 cmp r0, 6                     |     
                                             |     if (r0 <= 6) {
    0x00080232 ble.w 0x7feb8                 |         goto label_4;
                                             |     }
    0x00080236 ldr r2, [pc, 0x100]           |     
    0x00080238 mov r1, r4                    |     r1 = r4;
    0x0008023a ldr r0, [pc, 0x100]           |     
    0x0008023c ldr r3, [pc, 0x100]           |     
    0x0008023e add r2, pc                    |     r2 = 0x10057c;
    0x00080240 add r0, pc                    |     r0 = 0x100582;
    0x00080242 adds r2, 7                    |     r2 += 7;
    0x00080244 add r3, pc                    |     r3 = 0x100588;
    0x00080246 strd r3, r0, [sp]             |     __asm ("strd r3, r0, [sp]");
    0x0008024a movw r3, 0x2fa                |     r3 = 0x2fa;
    0x0008024e movs r0, 7                    |     r0 = 7;
    0x00080250 bl 0x71448                    |     fcn_00071448 ();
    0x00080254 b 0x7feb0                     |     goto label_5;
                                             | label_30:
    0x00080256 bl 0x70bf8                    |     r0 = fcn_00070bf8 ();
    0x0008025a cmp r0, 6                     |     
    0x0008025c it le                         |     
                                             |     if (r0 <= 6) {
    0x0008025e ldrle r4, [r7, 0x10]          |         r4 = *((r7 + 0x10));
                                             |         goto label_43;
                                             |     }
                                             |     if (r0 <= 6) {
                                             | label_43:
    0x00080260 ble.w 0x7ff52                 |         goto label_16;
                                             |     }
    0x00080264 ldr r2, [pc, 0xdc]            |     
    0x00080266 mov r1, r5                    |     r1 = r5;
    0x00080268 ldr r3, [pc, 0xdc]            |     
    0x0008026a movs r0, 7                    |     r0 = 7;
    0x0008026c ldr.w ip, [pc, 0xdc]          |     
    0x00080270 add r2, pc                    |     r2 = 0x1005b8;
    0x00080272 str r4, [sp, 8]               |     var_8h_2 = r4;
    0x00080274 add r3, pc                    |     r3 = 0x1005c0;
    0x00080276 adds r2, 7                    |     r2 += 7;
    0x00080278 add ip, pc                    |     ip = 0x1005c8;
    0x0008027a str r3, [sp, 4]               |     var_4h_2 = r3;
    0x0008027c str.w ip, [sp]                |     __asm ("str.w ip, [sp]");
    0x00080280 mov.w r3, 0x2b4               |     r3 = 0x2b4;
    0x00080284 bl 0x71448                    |     fcn_00071448 ();
    0x00080288 ldr r4, [r7, 0x10]            |     r4 = var_10h_3;
    0x0008028a b 0x7ff52                     |     goto label_16;
                                             | label_31:
    0x0008028c mov r0, r4                    |     r0 = r4;
    0x0008028e movs r5, 0x19                 |     r5 = 0x19;
    0x00080290 blx 0x8dac                    |     fcn_00008dac ();
    0x00080294 b 0x7feb0                     |     goto label_5;
                                             | label_39:
    0x00080296 ldr r2, [pc, 0xb8]            |     
    0x00080298 movw r3, 0x2e9                |     r3 = 0x2e9;
    0x0008029c ldr r5, [pc, 0xb4]            |     
    0x0008029e mov r1, r4                    |     r1 = r4;
    0x000802a0 ldr r0, [pc, 0xb4]            |     
    0x000802a2 add r2, pc                    |     r2 = 0x1005f8;
    0x000802a4 add r5, pc                    |     r5 = 0x1005fc;
    0x000802a6 adds r2, 7                    |     r2 += 7;
    0x000802a8 add r0, pc                    |     r0 = 0x100604;
    0x000802aa strd r0, r5, [sp]             |     __asm ("strd r0, r5, [sp]");
    0x000802ae movs r0, 7                    |     r0 = 7;
    0x000802b0 bl 0x71448                    |     fcn_00071448 ();
    0x000802b4 b 0x801e6                     |     goto label_17;
                                             | label_41:
    0x000802b6 ldr r0, [pc, 0xa4]            |     
    0x000802b8 mov r1, r4                    |     r1 = r4;
    0x000802ba add r0, pc                    |     r0 = 0x10061c;
    0x000802bc blx 0x8df4                    |     r0 = fcn_00008df4 ();
    0x000802c0 cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x000802c2 blt 0x80214                   |         goto label_18;
                                             |     }
    0x000802c4 ldr r0, [pc, 0x98]            |     
    0x000802c6 mov r1, r4                    |     r1 = r4;
    0x000802c8 add r0, pc                    |     r0 = 0x10062c;
    0x000802ca blx 0x8df4                    |     r0 = fcn_00008df4 ();
    0x000802ce cmp r0, 0                     |     
                                             |     if (r0 >= 0) {
    0x000802d0 bge.w 0x800ba                 |         goto label_15;
                                             |     }
                                             | label_20:
    0x000802d4 blx 0x9628                    |     r0 = fcn_00009628 ();
    0x000802d8 ldr r4, [r0]                  |     r4 = *(r0);
    0x000802da cmp r4, 2                     |     
                                             |     if (r4 != 2) {
    0x000802dc bne 0x80220                   |         goto label_19;
                                             |     }
    0x000802de b 0x8003c                     |     goto label_12;
                                             | label_21:
    0x000802e0 blx 0x927c                    |     fprintf_chk ()
                                             | label_42:
    0x000802e4 ldr r0, [pc, 0x7c]            |     
    0x000802e6 mov r1, r5                    |     r1 = r5;
    0x000802e8 add r0, pc                    |     r0 = 0x100650;
    0x000802ea blx 0x8df4                    |     r0 = fcn_00008df4 ();
    0x000802ee cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x000802f0 beq.w 0x8003c                 |         goto label_12;
                                             |     }
                                             |     if (r0 >= 0) {
    0x000802f4 bge 0x80300                   |         goto label_44;
                                             |     }
    0x000802f6 blx 0x9628                    |     r0 = fcn_00009628 ();
    0x000802fa ldr r4, [r0]                  |     r4 = *(r0);
    0x000802fc cmp r4, 2                     |     
                                             |     if (r4 != 2) {
    0x000802fe bne 0x80220                   |         goto label_19;
                                             |     }
                                             | label_44:
    0x00080300 ldr r0, [pc, 0x64]            |     
    0x00080302 movs r1, 0                    |     r1 = 0;
    0x00080304 add r0, pc                    |     r0 = 0x100670;
    0x00080306 blx 0x8df4                    |     r0 = fcn_00008df4 ();
    0x0008030a cmp r0, 0                     |     
                                             |     if (r0 < 0) {
    0x0008030c blt 0x802d4                   |         goto label_20;
                                             |     }
    0x0008030e b 0x800ba                     |     goto label_15;
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x8036c */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.0008036c ()                                      | void fcn_0008036c () {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 | label_26:
    0x0007f32c ldr r2, [pc, 0x2f0]                               |     
    0x0007f32e ldr r3, [pc, 0x2f4]                               |     r3 = *(0x7f626);
    0x0007f330 ldr r0, [pc, 0x2e0]                               |     
    0x0007f332 add r2, pc                                        |     r2 = 0xfe956;
    0x0007f334 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x0007f338 ldr r7, [pc, 0x2dc]                               |     r7 = *(0x7f618);
    0x0007f33a sub sp, 0x34                                      |     
    0x0007f33c add r0, pc                                        |     r0 = 0xfe954;
    0x0007f33e ldr r3, [r2, r3]                                  |     
    0x0007f340 ldr r3, [r3]                                      |     r3 = *(0xfe956);
    0x0007f342 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x0007f344 mov.w r3, 0                                       |     r3 = 0;
    0x0007f348 blx 0x9240                                        |     nl_langinfo (r0);
    0x0007f34c ldr r4, [r7, r0]                                  |     r4 = *(0x7f618);
    0x0007f34e cmp r4, 0                                         |     
                                                                 |     if (r4 >= 0) {
    0x0007f350 blt 0x7f370                                       |         
                                                                 | label_0:
    0x0007f352 ldr r2, [pc, 0x2d4]                               |         
    0x0007f354 ldr r3, [pc, 0x2cc]                               |         r3 = *(0x7f624);
    0x0007f356 add r2, pc                                        |         r2 = 0xfe984;
    0x0007f358 ldr r3, [r2, r3]                                  |         r3 = *(0xfe984);
    0x0007f35a ldr r2, [r3]                                      |         r2 = *(0xfe984);
    0x0007f35c ldr r3, [sp, 0x2c]                                |         r3 = var_2ch;
    0x0007f35e eors r2, r3                                       |         r2 ^= r3;
    0x0007f360 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0007f364 bne.w 0x7fb92                                     |             goto label_27;
                                                                 |         }
    0x0007f368 mov r0, r4                                        |         r0 = r4;
    0x0007f36a add sp, 0x34                                      |         
    0x0007f36c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 |     }
    0x0007f370 ldr r6, [pc, 0x2b8]                               |     
    0x0007f372 add r5, sp, 0x28                                  |     r5 += var_28h;
    0x0007f374 ldr.w sb, [pc, 0x2b8]                             |     
    0x0007f378 ldr.w fp, [pc, 0x2b8]                             |     
    0x0007f37c ldr.w r8, [pc, 0x2b8]                             |     
    0x0007f380 add r6, pc                                        |     r6 = 0xfe9b0;
    0x0007f382 add sb, pc                                        |     sb = 0xfe9b6;
    0x0007f384 add.w sl, r6, 4                                   |     sl = r6 + 4;
    0x0007f388 add fp, pc                                        |     fp = 0xfe9c0;
    0x0007f38a add.w r3, r6, 0x10                                |     r3 = r6 + 0x10;
    0x0007f38e add r8, pc                                        |     r8 = 0xfe9ca;
    0x0007f390 str r3, [sp, 0x1c]                                |     var_1ch = r3;
                                                                 | label_7:
    0x0007f392 movs r6, 0                                        |     r6 = 0;
    0x0007f394 mov r1, r5                                        |     r1 = r5;
    0x0007f396 mov r0, sb                                        |     r0 = sb;
    0x0007f398 str r6, [sp, 0x28]                                |     var_28h = r6;
    0x0007f39a bl 0x6b320                                        |     r0 = fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x0007f39e subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 >= r0) {
    0x0007f3a0 bge 0x7f408                                       |         goto label_28;
                                                                 |     }
    0x0007f3a2 adds r6, r4, 2                                    |     r6 = r4 + 2;
    0x0007f3a4 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
                                                                 |     if (r6 == r4) {
    0x0007f3a6 beq 0x7f428                                       |         goto label_29;
                                                                 |     }
    0x0007f3a8 blx 0x8dac                                        |     fcn_00008dac ();
                                                                 | label_1:
    0x0007f3ac ldr r1, [pc, 0x28c]                               |     
    0x0007f3ae ldr r0, [pc, 0x290]                               |     
    0x0007f3b0 add r1, pc                                        |     r1 = 0xfe9f0;
    0x0007f3b2 add r0, pc                                        |     r0 = 0xfe9f8;
    0x0007f3b4 blx 0x8fb4                                        |     r0 = fcn_00008fb4 ();
    0x0007f3b8 mov r6, r0                                        |     r6 = r0;
    0x0007f3ba cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0007f3bc beq.w 0x7fc36                                     |         goto label_30;
                                                                 |     }
    0x0007f3c0 ldr.w sb, [pc, 0x280]                             |     
    0x0007f3c4 mov.w r8, 0                                       |     r8 = 0;
    0x0007f3c8 add sb, pc                                        |     sb = 0xfea10;
    0x0007f3ca b 0x7f3e2                                         |     
                                                                 |     while (r3 >= r0) {
    0x0007f3cc ldr.w sl, [sp, 0x28]                              |         sl = var_28h;
                                                                 |         if (r0 == 0) {
    0x0007f3d0 beq 0x7f45a                                       |             goto label_31;
                                                                 |         }
    0x0007f3d2 mov r1, sb                                        |         r1 = sb;
    0x0007f3d4 mov r0, sl                                        |         r0 = sl;
    0x0007f3d6 bl 0x803c0                                        |         r0 = fcn_000803c0 (r0, r1);
                                                                 |         if (r0 != 0) {
    0x0007f3da cbnz r0, 0x7f44c                                  |             goto label_32;
                                                                 |         }
    0x0007f3dc mov r0, sl                                        |         r0 = sl;
    0x0007f3de blx 0x8dac                                        |         fcn_00008dac ();
    0x0007f3e2 mov r3, r5                                        |         r3 = r5;
    0x0007f3e4 movs r2, 0                                        |         r2 = 0;
    0x0007f3e6 mov.w r1, 0x100000                                |         r1 = 0x100000;
    0x0007f3ea mov r0, r6                                        |         r0 = r6;
    0x0007f3ec str.w r8, [sp, 0x28]                              |         __asm ("str.w r8, [var_28h]");
    0x0007f3f0 bl 0x6b144                                        |         r0 = fcn_0006b144 (r0, r1, r2, r3);
    0x0007f3f4 subs r3, r0, 0                                    |         r3 = r0 - 0;
    0x0007f3f6 bge 0x7f3cc                                       |         
                                                                 |     }
    0x0007f3f8 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0007f3fa mov r4, r3                                        |     r4 = r3;
    0x0007f3fc blx 0x8dac                                        |     fcn_00008dac ();
    0x0007f400 mov r0, r6                                        |     r0 = r6;
    0x0007f402 bl 0x69b30                                        |     fcn_00069b30 (r0, r1, r2, r3);
    0x0007f406 b 0x7f352                                         |     goto label_0;
                                                                 | label_28:
    0x0007f408 mov r4, r6                                        |     r4 = r6;
    0x0007f40a mov r1, fp                                        |     r1 = fp;
    0x0007f40c ldr r6, [sp, 0x28]                                |     r6 = var_28h;
    0x0007f40e b 0x7f414                                         |     
                                                                 |     while (r4 != 0xc) {
    0x0007f410 ldr.w r1, [r8, r4, lsl 3]                         |         offset_0 = r4 << 3;
                                                                 |         r1 = *((r8 + offset_0));
    0x0007f414 mov r0, r6                                        |         r0 = r6;
    0x0007f416 bl 0x803c0                                        |         r0 = fcn_000803c0 (r0, r1);
    0x0007f41a cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0007f41c bne.w 0x7f576                                     |             goto label_33;
                                                                 |         }
    0x0007f420 adds r4, 1                                        |         r4++;
    0x0007f422 cmp r4, 0xc                                       |         
    0x0007f424 bne 0x7f410                                       |         
                                                                 |     }
    0x0007f426 mov r0, r6                                        |     r0 = r6;
                                                                 | label_29:
    0x0007f428 blx 0x8dac                                        |     fcn_00008dac ();
    0x0007f42c ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x0007f42e cmp r3, sl                                        |     
                                                                 |     if (r3 != sl) {
    0x0007f430 bne.w 0x7f71e                                     |         goto label_34;
                                                                 |     }
    0x0007f434 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007f438 cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x0007f43a bgt.w 0x7f724                                     |         goto label_35;
                                                                 |     }
                                                                 | label_2:
    0x0007f43e bl 0x7eda0                                        |     r0 = fcn_0007eda0 (r0, r1, r2, r3, r4, r5, r6);
    0x0007f442 clz r4, r0                                        |     r4 &= r0;
    0x0007f446 lsrs r4, r4, 5                                    |     r4 >>= 5;
    0x0007f448 lsls r4, r4, 4                                    |     r4 <<= 4;
    0x0007f44a b 0x7f3ac                                         |     goto label_1;
                                                                 | label_32:
    0x0007f44c ldr r1, [pc, 0x1f8]                               |     
    0x0007f44e add r1, pc                                        |     r1 = 0xfea9a;
    0x0007f450 bl 0x803c0                                        |     r0 = fcn_000803c0 (r0, r1);
    0x0007f454 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0007f456 bne.w 0x7f6d6                                     |         goto label_36;
                                                                 |     }
                                                                 | label_31:
    0x0007f45a mov r0, sl                                        |     r0 = sl;
    0x0007f45c blx 0x8dac                                        |     fcn_00008dac ();
    0x0007f460 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007f464 cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x0007f466 ble 0x7f486                                       |         
    0x0007f468 ldr r3, [pc, 0x1e0]                               |         
    0x0007f46a ldr r2, [pc, 0x1e4]                               |         
    0x0007f46c add r3, pc                                        |         r3 = 0xfeabc;
    0x0007f46e str r3, [sp, 4]                                   |         var_4h = r3;
    0x0007f470 add r2, pc                                        |         r2 = 0xfeac6;
    0x0007f472 ldr r3, [pc, 0x1e0]                               |         
    0x0007f474 adds r2, 7                                        |         r2 += 7;
    0x0007f476 add r3, pc                                        |         r3 = 0xfead0;
    0x0007f478 str r3, [sp]                                      |         *(sp) = r3;
    0x0007f47a movw r3, 0x18f                                    |         r3 = 0x18f;
                                                                 | label_25:
    0x0007f47e movs r1, 0                                        |         r1 = 0;
    0x0007f480 movs r0, 7                                        |         r0 = 7;
    0x0007f482 bl 0x71448                                        |         fcn_00071448 ();
                                                                 |     }
                                                                 | label_24:
    0x0007f486 mov r0, r6                                        |     r0 = r6;
    0x0007f488 movs r6, 0                                        |     r6 = 0;
    0x0007f48a bl 0x69b30                                        |     r0 = fcn_00069b30 (r0, r1, r2, r3);
                                                                 | label_23:
    0x0007f48e bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007f492 cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x0007f494 bgt.w 0x7f748                                     |         goto label_37;
                                                                 |     }
                                                                 | label_8:
    0x0007f498 cmp r4, 0                                         |     
                                                                 |     if (r4 < 0) {
    0x0007f49a blt.w 0x7f352                                     |         goto label_0;
                                                                 |     }
    0x0007f49e cmp r4, 0x10                                      |     
                                                                 |     if (r4 == 0x10) {
    0x0007f4a0 beq.w 0x7f71a                                     |         goto label_38;
                                                                 |     }
    0x0007f4a4 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0007f4a6 bne.w 0x7f5d2                                     |         goto label_17;
                                                                 |     }
                                                                 | label_6:
    0x0007f4aa ldr r0, [pc, 0x1ac]                               |     
    0x0007f4ac movs r1, 0                                        |     r1 = 0;
    0x0007f4ae add r0, pc                                        |     r0 = 0xfeb0c;
    0x0007f4b0 blx 0x8df4                                        |     r0 = fcn_00008df4 ();
    0x0007f4b4 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0007f4b6 blt.w 0x7f858                                     |         goto label_39;
                                                                 |     }
    0x0007f4ba bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007f4be cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x0007f4c0 bgt.w 0x7f914                                     |         goto label_40;
                                                                 |     }
                                                                 | label_3:
    0x0007f4c4 ldr.w sb, [pc, 0x194]                             |     
    0x0007f4c8 add.w r8, sp, 0x20                                |     r8 += var_20h;
    0x0007f4cc movs r3, 0                                        |     r3 = 0;
    0x0007f4ce mov r1, r8                                        |     r1 = r8;
    0x0007f4d0 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x0007f4d2 add sb, pc                                        |     sb = 0xfeb32;
    0x0007f4d4 mov r0, sb                                        |     r0 = sb;
    0x0007f4d6 bl 0x6b320                                        |     r0 = fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x0007f4da adds r3, r0, 2                                    |     r3 = r0 + 2;
    0x0007f4dc mov r4, r0                                        |     r4 = r0;
    0x0007f4de it ne                                             |     
                                                                 |     if (r3 == r0) {
    0x0007f4e0 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x0007f4e2 ands.w r6, r3, r0, lsr 31                         |     r6 = r3 & (r0 >> 31);
                                                                 |     if (r6 != r3) {
    0x0007f4e6 bne 0x7f56e                                       |         goto label_41;
                                                                 |     }
    0x0007f4e8 cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x0007f4ea blt 0x7f508                                       |         
    0x0007f4ec ldr r1, [pc, 0x170]                               |         
    0x0007f4ee mov r2, r5                                        |         r2 = r5;
    0x0007f4f0 ldr r0, [sp, 0x20]                                |         r0 = var_20h;
    0x0007f4f2 add r1, pc                                        |         r1 = 0xfeb56;
    0x0007f4f4 blx 0x8b20                                        |         r0 = kmod_list_next ();
    0x0007f4f8 cmp r0, 1                                         |         
                                                                 |         if (r0 == 1) {
    0x0007f4fa beq.w 0x7f9b0                                     |             goto label_42;
                                                                 |         }
    0x0007f4fe bl 0x70bf8                                        |         r0 = fcn_00070bf8 ();
    0x0007f502 cmp r0, 6                                         |         
                                                                 |         if (r0 > 6) {
    0x0007f504 bgt.w 0x7f980                                     |             goto label_43;
                                                                 |         }
                                                                 |     }
                                                                 | label_11:
    0x0007f508 ldr r0, [pc, 0x158]                               |     
    0x0007f50a mov r1, r8                                        |     r1 = r8;
    0x0007f50c add r0, pc                                        |     r0 = 0xfeb74;
    0x0007f50e bl 0x6b320                                        |     r0 = fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x0007f512 adds r2, r0, 2                                    |     r2 = r0 + 2;
    0x0007f514 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r2 == r0) {
    0x0007f516 beq.w 0x7f93a                                     |         goto label_44;
                                                                 |     }
    0x0007f51a cmp r4, 0                                         |     
    0x0007f51c ldr r0, [sp, 0x20]                                |     r0 = var_20h;
                                                                 |     if (r4 < 0) {
    0x0007f51e blt.w 0x7f7ec                                     |         goto label_45;
                                                                 |     }
    0x0007f522 ldr.w sb, [pc, 0x144]                             |     
    0x0007f526 add.w r8, sp, 0x24                                |     r8 += var_24h;
    0x0007f52a ldr.w sl, [pc, 0x140]                             |     
    0x0007f52e movs r6, 0                                        |     r6 = 0;
    0x0007f530 str r0, [sp, 0x24]                                |     var_24h = r0;
    0x0007f532 add sb, pc                                        |     sb = 0xfeba0;
    0x0007f534 add sl, pc                                        |     sl = 0xfeba6;
    0x0007f536 b 0x7f556                                         |     
                                                                 |     if (r6 == 0) {
                                                                 |         while (r4 >= r0) {
    0x0007f538 beq.w 0x7f94e                                     |             goto label_46;
                                                                 |         }
    0x0007f53c ldr.w fp, [sp, 0x28]                              |         fp = var_28h;
    0x0007f540 mov r1, sl                                        |         r1 = sl;
    0x0007f542 mov r0, fp                                        |         r0 = fp;
    0x0007f544 blx 0x95e0                                        |         r0 = fcn_000095e0 ();
    0x0007f548 mov r4, r0                                        |         r4 = r0;
    0x0007f54a cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0007f54c beq.w 0x7f968                                     |             goto label_47;
                                                                 |         }
    0x0007f550 mov r0, fp                                        |         r0 = fp;
    0x0007f552 blx 0x8dac                                        |         fcn_00008dac ();
    0x0007f556 movs r3, 0                                        |         r3 = 0;
    0x0007f558 mov r2, sb                                        |         r2 = sb;
    0x0007f55a mov r1, r5                                        |         r1 = r5;
    0x0007f55c mov r0, r8                                        |         r0 = r8;
    0x0007f55e str r6, [sp, 0x28]                                |         var_28h = r6;
    0x0007f560 bl 0x695ac                                        |         r0 = fcn_000695ac (r0, r1, r2, r3);
    0x0007f564 subs r4, r0, 0                                    |         r4 = r0 - 0;
    0x0007f566 bge 0x7f538                                       |         
                                                                 |     }
    0x0007f568 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0007f56a blx 0x8dac                                        |     fcn_00008dac ();
                                                                 | label_41:
    0x0007f56e ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x0007f570 blx 0x8dac                                        |     fcn_00008dac ();
    0x0007f574 b 0x7f352                                         |     goto label_0;
                                                                 | label_33:
    0x0007f576 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007f57a cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x0007f57c bgt.w 0x7f6f0                                     |         goto label_48;
                                                                 |     }
                                                                 | label_5:
    0x0007f580 ldr r2, [pc, 0xec]                                |     
    0x0007f582 mov r0, r6                                        |     r0 = r6;
    0x0007f584 add r2, pc                                        |     r2 = 0xfebf8;
    0x0007f586 add.w r3, r2, r4, lsl 3                           |     r3 = r2 + (r4 << 3);
    0x0007f58a ldr r4, [r3, 4]                                   |     r4 = *((r3 + 4));
    0x0007f58c blx 0x8dac                                        |     fcn_00008dac ();
    0x0007f590 cmp r4, 2                                         |     
                                                                 |     if (r4 == 2) {
    0x0007f592 bne 0x7f5ba                                       |         
    0x0007f594 bl 0x7eda0                                        |         r0 = fcn_0007eda0 (r0, r1, r2, r3, r4, r5, r6);
    0x0007f598 cmp r0, 1                                         |         
                                                                 |         if (r0 == 1) {
    0x0007f59a beq.w 0x7f76c                                     |             goto label_49;
                                                                 |         }
    0x0007f59e cmp r0, 2                                         |         
                                                                 |         if (r0 == 2) {
    0x0007f5a0 beq 0x7f68c                                       |             goto label_50;
                                                                 |         }
                                                                 |         if (r0 == 0) {
    0x0007f5a2 cbz r0, 0x7f5d8                                   |             goto label_4;
                                                                 |         }
    0x0007f5a4 ldr r1, [pc, 0xcc]                                |         
    0x0007f5a6 mov.w r2, 0x10a                                   |         r2 = 0x10a;
    0x0007f5aa ldr r3, [pc, 0xcc]                                |         
    0x0007f5ac ldr r0, [pc, 0xcc]                                |         
    0x0007f5ae add r1, pc                                        |         r1 = 0xfec26;
    0x0007f5b0 add r3, pc                                        |         r3 = 0xfec2e;
    0x0007f5b2 adds r1, 7                                        |         r1 += 7;
    0x0007f5b4 add r0, pc                                        |         r0 = 0xfec34;
    0x0007f5b6 bl 0x71614                                        |         fcn_00071614 (r0, r1, r2, r3);
                                                                 |     }
    0x0007f5ba cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0007f5bc beq.w 0x7f43e                                     |         goto label_2;
                                                                 |     }
    0x0007f5c0 cmp r4, 8                                         |     
                                                                 |     if (r4 > 8) {
    0x0007f5c2 bhi.w 0x7f3ac                                     |         goto label_1;
                                                                 |     }
    0x0007f5c6 mov.w r3, 0x124                                   |     r3 = 0x124;
    0x0007f5ca lsrs r3, r4                                       |     r3 >>= r4;
    0x0007f5cc lsls r0, r3, 0x1f                                 |     r0 = r3 << 0x1f;
                                                                 |     if (r0 >= r3) {
    0x0007f5ce bpl.w 0x7f3ac                                     |         goto label_1;
                                                                 |     }
                                                                 | label_17:
    0x0007f5d2 cmp r4, 5                                         |     
                                                                 |     if (r4 == 5) {
    0x0007f5d4 beq.w 0x7f4c4                                     |         goto label_3;
                                                                 |     }
                                                                 | label_4:
    0x0007f5d8 ldr r0, [pc, 0x40]                                |     
    0x0007f5da add r0, pc                                        |     r0 = 0xfebfa;
    0x0007f5dc blx 0x9240                                        |     nl_langinfo (r0);
    0x0007f5e0 str r4, [r7, r0]                                  |     *((r7 + r0)) = r4;
    0x0007f5e2 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007f5e6 cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x0007f5e8 ble.w 0x7f352                                     |         goto label_0;
                                                                 |     }
    0x0007f5ec mov r0, r4                                        |     r0 = r4;
    0x0007f5ee ldr r5, [pc, 0x90]                                |     
    0x0007f5f0 bl 0x7f314                                        |     fcn_0007f314 (r0);
    0x0007f5f4 ldr r2, [pc, 0x8c]                                |     
    0x0007f5f6 movs r1, 0                                        |     r1 = 0;
    0x0007f5f8 ldr r3, [pc, 0x8c]                                |     
    0x0007f5fa add r5, pc                                        |     r5 = 0xfec80;
    0x0007f5fc str r0, [sp, 8]                                   |     var_8h = r0;
    0x0007f5fe movs r0, 7                                        |     r0 = 7;
    0x0007f600 add r2, pc                                        |     r2 = 0xfec88;
    0x0007f602 str r5, [sp]                                      |     *(sp) = r5;
    0x0007f604 add r3, pc                                        |     r3 = 0xfec90;
    0x0007f606 adds r2, 7                                        |     r2 += 7;
    0x0007f608 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0007f60a movw r3, 0x212                                    |     r3 = 0x212;
    0x0007f60e bl 0x71448                                        |     fcn_00071448 ();
    0x0007f612 b 0x7f352                                         |     goto label_0;
                                                                 | label_50:
    0x0007f68c ldr.w r0, [pc, 0x634]                             |     
    0x0007f690 mov.w r8, 0                                       |     r8 = 0;
    0x0007f694 mov r3, r8                                        |     r3 = r8;
    0x0007f696 mov r2, r5                                        |     r2 = r5;
    0x0007f698 mov.w r1, -1                                      |     r1 = -1;
    0x0007f69c str.w r8, [sp, 0x28]                              |     __asm ("str.w r8, [var_28h]");
    0x0007f6a0 add r0, pc                                        |     r0 = 0xff368;
    0x0007f6a2 bl 0x6a7bc                                        |     r0 = fcn_0006a7bc (r0, r1, r2);
    0x0007f6a6 subs r6, r0, 0                                    |     r6 = r0 - 0;
                                                                 |     if (r6 < r0) {
    0x0007f6a8 blt.w 0x7f7f2                                     |         goto label_51;
                                                                 |     }
    0x0007f6ac ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0007f6ae bl 0x7a9b8                                        |     fcn_0007a9b8 (r0, r1);
    0x0007f6b2 ldr.w r1, [pc, 0x614]                             |     
    0x0007f6b6 add r1, pc                                        |     r1 = 0xff384;
    0x0007f6b8 bl 0x80428                                        |     r0 = fcn_00080428 (r0, r1);
    0x0007f6bc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0007f6be beq.w 0x7f81c                                     |         goto label_20;
                                                                 |     }
    0x0007f6c2 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007f6c6 cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x0007f6c8 bgt.w 0x7fa00                                     |         goto label_52;
                                                                 |     }
    0x0007f6cc ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0007f6ce mov r4, r8                                        |     r4 = r8;
    0x0007f6d0 blx 0x8dac                                        |     fcn_00008dac ();
    0x0007f6d4 b 0x7f3ac                                         |     goto label_1;
                                                                 | label_36:
    0x0007f6d6 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007f6da cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x0007f6dc bgt.w 0x7f824                                     |         goto label_53;
                                                                 |     }
    0x0007f6e0 mov r0, sl                                        |     r0 = sl;
    0x0007f6e2 movs r4, 6                                        |     r4 = 6;
    0x0007f6e4 blx 0x8dac                                        |     fcn_00008dac ();
    0x0007f6e8 mov r0, r6                                        |     r0 = r6;
    0x0007f6ea bl 0x69b30                                        |     fcn_00069b30 (r0, r1, r2, r3);
    0x0007f6ee b 0x7f5d8                                         |     goto label_4;
                                                                 | label_48:
    0x0007f6f0 ldr.w r2, [pc, 0x5d8]                             |     
    0x0007f6f4 movs r1, 0                                        |     r1 = 0;
    0x0007f6f6 ldr.w r3, [pc, 0x5d8]                             |     
    0x0007f6fa movs r0, 7                                        |     r0 = 7;
    0x0007f6fc strd r6, sb, [sp, 8]                              |     __asm ("strd r6, sb, [sp, 8]");
    0x0007f700 add r2, pc                                        |     r2 = 0xff3d0;
    0x0007f702 add r3, pc                                        |     r3 = 0xff3d8;
    0x0007f704 strd r3, r2, [sp]                                 |     __asm ("strd r3, r2, [sp]");
    0x0007f708 movs r3, 0xba                                     |     r3 = 0xba;
    0x0007f70a ldr.w r2, [pc, 0x5c8]                             |     
    0x0007f70e add r2, pc                                        |     r2 = 0xff3e8;
    0x0007f710 adds r2, 7                                        |     r2 += 7;
    0x0007f712 bl 0x71448                                        |     fcn_00071448 ();
    0x0007f716 ldr r6, [sp, 0x28]                                |     r6 = var_28h;
    0x0007f718 b 0x7f580                                         |     goto label_5;
                                                                 | label_38:
    0x0007f71a movs r6, 1                                        |     r6 = 1;
    0x0007f71c b 0x7f4aa                                         |     goto label_6;
                                                                 | label_34:
    0x0007f71e ldr sb, [sl], 4                                   |     sb = *(sl);
                                                                 |     sl += 4;
    0x0007f722 b 0x7f392                                         |     goto label_7;
                                                                 | label_35:
    0x0007f724 ldr.w r2, [pc, 0x5b0]                             |     
    0x0007f728 movs r0, 7                                        |     r0 = 7;
    0x0007f72a ldr.w r1, [pc, 0x5b0]                             |     
    0x0007f72e ldr.w r3, [pc, 0x5b0]                             |     
    0x0007f732 add r2, pc                                        |     r2 = 0xff40e;
    0x0007f734 add r1, pc                                        |     r1 = 0xff416;
    0x0007f736 adds r2, 7                                        |     r2 += 7;
    0x0007f738 add r3, pc                                        |     r3 = 0xff41e;
    0x0007f73a strd r3, r1, [sp]                                 |     __asm ("strd r3, r1, [sp]");
    0x0007f73e movs r3, 0xbe                                     |     r3 = 0xbe;
    0x0007f740 movs r1, 0                                        |     r1 = 0;
    0x0007f742 bl 0x71448                                        |     fcn_00071448 ();
    0x0007f746 b 0x7f43e                                         |     goto label_2;
                                                                 | label_37:
    0x0007f748 ldr.w r3, [pc, 0x598]                             |     
    0x0007f74c movs r1, 0                                        |     r1 = 0;
    0x0007f74e ldr.w r2, [pc, 0x598]                             |     
    0x0007f752 movs r0, 7                                        |     r0 = 7;
    0x0007f754 add r3, pc                                        |     r3 = 0xff43c;
    0x0007f756 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0007f758 add r2, pc                                        |     r2 = 0xff446;
    0x0007f75a ldr.w r3, [pc, 0x590]                             |     
    0x0007f75e adds r2, 7                                        |     r2 += 7;
    0x0007f760 add r3, pc                                        |     r3 = 0xff452;
    0x0007f762 str r3, [sp]                                      |     *(sp) = r3;
    0x0007f764 movs r3, 0x58                                     |     r3 = 0x58;
    0x0007f766 bl 0x71448                                        |     fcn_00071448 ();
    0x0007f76a b 0x7f498                                         |     goto label_8;
                                                                 | label_49:
    0x0007f76c movs r4, 0                                        |     r4 = 0;
    0x0007f76e b 0x7f3ac                                         |     goto label_1;
                                                                 | label_9:
    0x0007f770 ldr.w r0, [pc, 0x57c]                             |     
    0x0007f774 mov r1, r8                                        |     r1 = r8;
    0x0007f776 add r0, pc                                        |     r0 = 0xff46a;
    0x0007f778 blx 0x8df4                                        |     r0 = fcn_00008df4 ();
    0x0007f77c mov r1, r0                                        |     r1 = r0;
                                                                 |     if (r0 == 0) {
    0x0007f77e cbnz r0, 0x7f792                                  |         
    0x0007f780 ldr.w r0, [pc, 0x570]                             |         
    0x0007f784 add r0, pc                                        |         r0 = 0xff47c;
    0x0007f786 blx 0x8df4                                        |         r0 = fcn_00008df4 ();
    0x0007f78a mov r1, r0                                        |         r1 = r0;
    0x0007f78c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0007f78e beq.w 0x7fbaa                                     |             goto label_54;
                                                                 |         }
                                                                 |     }
                                                                 | label_19:
    0x0007f792 ldr.w r0, [pc, 0x564]                             |     
    0x0007f796 add r0, pc                                        |     r0 = 0xff494;
    0x0007f798 blx 0x8a68                                        |     r0 = fcn_00008a68 ();
    0x0007f79c mov r8, r0                                        |     r8 = r0;
    0x0007f79e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0007f7a0 beq.w 0x7fb28                                     |         goto label_55;
                                                                 |     }
    0x0007f7a4 bl 0x67ee4                                        |     r0 = fcn_00067ee4 (r0, r1, r2);
                                                                 |     if (r0 == 0) {
    0x0007f7a8 cbz r0, 0x7f7d6                                   |         goto label_56;
                                                                 |     }
    0x0007f7aa ldr.w sb, [pc, 0x550]                             |     
    0x0007f7ae add sb, pc                                        |     sb = 0xff4b0;
                                                                 |     do {
    0x0007f7b0 add.w r4, r0, 0x13                                |         r4 = r0 + 0x13;
    0x0007f7b4 mov r0, r4                                        |         r0 = r4;
    0x0007f7b6 bl 0x75b88                                        |         r0 = fcn_00075b88 (r0);
    0x0007f7ba mov r5, r0                                        |         r5 = r0;
                                                                 |         if (r0 == 0) {
    0x0007f7bc cbnz r0, 0x7f7cc                                  |             
    0x0007f7be mov r1, sb                                        |             r1 = sb;
    0x0007f7c0 mov r0, r4                                        |             r0 = r4;
    0x0007f7c2 blx 0x9164                                        |             r0 = fcn_00009164 ();
    0x0007f7c6 cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x0007f7c8 bne.w 0x7fbc2                                     |                 goto label_57;
                                                                 |             }
                                                                 |         }
    0x0007f7cc mov r0, r8                                        |         r0 = r8;
    0x0007f7ce bl 0x67ee4                                        |         r0 = fcn_00067ee4 (r0, r1, r2);
    0x0007f7d2 cmp r0, 0                                         |         
    0x0007f7d4 bne 0x7f7b0                                       |         
                                                                 |     } while (r0 != 0);
                                                                 | label_56:
    0x0007f7d6 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x0007f7da ldr r4, [r0]                                      |     r4 = *(r0);
    0x0007f7dc cmp r4, 0                                         |     
                                                                 |     if (r4 <= 0) {
    0x0007f7de ble.w 0x7fc20                                     |         goto label_58;
                                                                 |     }
    0x0007f7e2 mov r0, r8                                        |     r0 = r8;
    0x0007f7e4 rsbs r4, r4, 0                                    |     r4 -= ;
    0x0007f7e6 blx 0x91a8                                        |     fcn_000091a8 ();
                                                                 | label_10:
    0x0007f7ea ldr r0, [sp, 0x28]                                |     r0 = var_28h;
                                                                 | label_45:
    0x0007f7ec blx 0x8dac                                        |     fcn_00008dac ();
    0x0007f7f0 b 0x7f352                                         |     goto label_0;
                                                                 | label_51:
    0x0007f7f2 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007f7f6 cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x0007f7f8 ble 0x7f81c                                       |         
    0x0007f7fa ldr.w r3, [pc, 0x504]                             |         
    0x0007f7fe mov r1, r6                                        |         r1 = r6;
    0x0007f800 ldr.w r2, [pc, 0x500]                             |         
    0x0007f804 movs r0, 7                                        |         r0 = 7;
    0x0007f806 add r3, pc                                        |         r3 = 0xff50c;
    0x0007f808 str r3, [sp, 4]                                   |         var_4h = r3;
    0x0007f80a add r2, pc                                        |         r2 = 0xff512;
    0x0007f80c ldr.w r3, [pc, 0x4f8]                             |         
    0x0007f810 adds r2, 7                                        |         r2 += 7;
    0x0007f812 add r3, pc                                        |         r3 = 0xff51e;
    0x0007f814 str r3, [sp]                                      |         *(sp) = r3;
    0x0007f816 movs r3, 0xff                                     |         r3 = 0xff;
    0x0007f818 bl 0x71448                                        |         fcn_00071448 ();
                                                                 |     }
                                                                 | label_20:
    0x0007f81c ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0007f81e blx 0x8dac                                        |     fcn_00008dac ();
    0x0007f822 b 0x7f5d8                                         |     goto label_4;
                                                                 | label_53:
    0x0007f824 ldr.w r2, [pc, 0x4e4]                             |     
    0x0007f828 movs r0, 7                                        |     r0 = 7;
    0x0007f82a ldr.w r1, [pc, 0x4e4]                             |     
    0x0007f82e movs r4, 6                                        |     r4 = 6;
    0x0007f830 ldr.w r3, [pc, 0x4e0]                             |     
    0x0007f834 add r2, pc                                        |     r2 = 0xff544;
    0x0007f836 add r1, pc                                        |     r1 = 0xff54c;
    0x0007f838 adds r2, 7                                        |     r2 += 7;
    0x0007f83a add r3, pc                                        |     r3 = 0xff552;
    0x0007f83c strd r3, r1, [sp]                                 |     __asm ("strd r3, r1, [sp]");
    0x0007f840 movw r3, 0x187                                    |     r3 = 0x187;
    0x0007f844 movs r1, 0                                        |     r1 = 0;
    0x0007f846 bl 0x71448                                        |     fcn_00071448 ();
    0x0007f84a ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0007f84c blx 0x8dac                                        |     fcn_00008dac ();
    0x0007f850 mov r0, r6                                        |     r0 = r6;
    0x0007f852 bl 0x69b30                                        |     fcn_00069b30 (r0, r1, r2, r3);
    0x0007f856 b 0x7f5d8                                         |     goto label_4;
                                                                 | label_39:
    0x0007f858 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007f85c cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x0007f85e bgt.w 0x7fa54                                     |         goto label_59;
                                                                 |     }
                                                                 | label_13:
    0x0007f862 ldr.w r0, [pc, 0x4b4]                             |     
    0x0007f866 mov.w r8, 0                                       |     r8 = 0;
    0x0007f86a mov r1, r5                                        |     r1 = r5;
    0x0007f86c str.w r8, [sp, 0x28]                              |     __asm ("str.w r8, [var_28h]");
    0x0007f870 add r0, pc                                        |     r0 = 0xff58e;
    0x0007f872 bl 0x6b320                                        |     r0 = fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x0007f876 adds r3, r0, 2                                    |     r3 = r0 + 2;
    0x0007f878 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r3 == r0) {
    0x0007f87a beq.w 0x7fb10                                     |         goto label_60;
                                                                 |     }
    0x0007f87e cmp r4, 0                                         |     
    0x0007f880 ldr r6, [sp, 0x28]                                |     r6 = var_28h;
                                                                 |     if (r4 < 0) {
    0x0007f882 blt.w 0x7fa28                                     |         goto label_61;
                                                                 |     }
    0x0007f886 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007f88a cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x0007f88c bgt.w 0x7fa30                                     |         goto label_62;
                                                                 |     }
    0x0007f88e strh r0, [r2, 6]                                  |     *((r2 + 6)) = r0;
                                                                 | label_12:
    0x0007f890 ldr.w r1, [pc, 0x488]                             |     
    0x0007f894 mov r0, r6                                        |     r0 = r6;
    0x0007f896 add r1, pc                                        |     r1 = 0xff5b6;
    0x0007f898 blx 0x95e0                                        |     r0 = fcn_000095e0 ();
    0x0007f89c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0007f89e beq.w 0x7f9a8                                     |         goto label_63;
                                                                 |     }
    0x0007f8a2 mov r0, r6                                        |     r0 = r6;
    0x0007f8a4 movs r6, 1                                        |     r6 = 1;
    0x0007f8a6 blx 0x8dac                                        |     fcn_00008dac ();
                                                                 | label_15:
    0x0007f8aa ldr.w r0, [pc, 0x474]                             |     
    0x0007f8ae mov r1, r5                                        |     r1 = r5;
    0x0007f8b0 mov.w r8, 0                                       |     r8 = 0;
    0x0007f8b4 str.w r8, [sp, 0x28]                              |     __asm ("str.w r8, [var_28h]");
    0x0007f8b8 add r0, pc                                        |     r0 = 0xff5de;
    0x0007f8ba bl 0x6b320                                        |     r0 = fcn_0006b320 (r0, r1, r2, r3, r4, r5, r6);
    0x0007f8be adds r1, r0, 2                                    |     r1 = r0 + 2;
    0x0007f8c0 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r1 == r0) {
    0x0007f8c2 beq.w 0x7f770                                     |         goto label_9;
                                                                 |     }
    0x0007f8c6 cmp r0, 0                                         |     
    0x0007f8c8 ldr r6, [sp, 0x28]                                |     r6 = var_28h;
                                                                 |     if (r0 < 0) {
    0x0007f8ca blt 0x7f7ea                                       |         goto label_10;
                                                                 |     }
    0x0007f8cc bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007f8d0 cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x0007f8d2 bgt.w 0x7faee                                     |         goto label_64;
                                                                 |     }
                                                                 | label_14:
    0x0007f8d6 ldr.w r1, [pc, 0x44c]                             |     
    0x0007f8da mov r0, r6                                        |     r0 = r6;
    0x0007f8dc add r1, pc                                        |     r1 = 0xff606;
    0x0007f8de blx 0x95e0                                        |     r0 = fcn_000095e0 ();
    0x0007f8e2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0007f8e4 beq.w 0x7fb18                                     |         goto label_65;
                                                                 |     }
    0x0007f8e8 ldr.w r1, [pc, 0x43c]                             |     
    0x0007f8ec mov r0, r6                                        |     r0 = r6;
    0x0007f8ee add r1, pc                                        |     r1 = 0xff61a;
    0x0007f8f0 blx 0x9164                                        |     r0 = fcn_00009164 ();
    0x0007f8f4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0007f8f6 bne 0x7f9a8                                       |         goto label_63;
                                                                 |     }
    0x0007f8f8 ldr.w r1, [pc, 0x430]                             |     
    0x0007f8fc mov r0, r6                                        |     r0 = r6;
    0x0007f8fe add r1, pc                                        |     r1 = 0xff62e;
    0x0007f900 blx 0x9164                                        |     r0 = fcn_00009164 ();
    0x0007f904 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0007f906 beq.w 0x7fb88                                     |         goto label_66;
                                                                 |     }
    0x0007f908 strh r7, [r7, 8]                                  |     *((r7 + 8)) = r7;
    0x0007f90a mov r0, r6                                        |     r0 = r6;
    0x0007f90c movs r4, 7                                        |     r4 = 7;
    0x0007f90e blx 0x8dac                                        |     fcn_00008dac ();
    0x0007f912 b 0x7f5d8                                         |     goto label_4;
                                                                 | label_40:
    0x0007f914 ldr.w r2, [pc, 0x418]                             |     
    0x0007f918 movs r0, 7                                        |     r0 = 7;
    0x0007f91a ldr.w r1, [pc, 0x418]                             |     
    0x0007f91e ldr.w r3, [pc, 0x418]                             |     
    0x0007f920 adds r4, 0x18                                     |     r4 += 0x18;
    0x0007f922 add r2, pc                                        |     r2 = 0xff656;
    0x0007f924 add r1, pc                                        |     r1 = 0xff65e;
    0x0007f926 adds r2, 7                                        |     r2 += 7;
    0x0007f928 add r3, pc                                        |     r3 = 0xff666;
    0x0007f92a strd r3, r1, [sp]                                 |     __asm ("strd r3, r1, [sp]");
    0x0007f92e movw r3, 0x121                                    |     r3 = 0x121;
    0x0007f932 movs r1, 0                                        |     r1 = 0;
    0x0007f934 bl 0x71448                                        |     fcn_00071448 ();
    0x0007f938 b 0x7f4c4                                         |     goto label_3;
                                                                 | label_44:
    0x0007f93a bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007f93e cmp r0, 6                                         |     
    0x0007f940 bgt.w 0x7fa74                                     |     
                                                                 |     while (1) {
    0x0007f944 ldr r0, [sp, 0x20]                                |         r0 = var_20h;
    0x0007f946 movs r4, 5                                        |         r4 = 5;
    0x0007f948 blx 0x8dac                                        |         fcn_00008dac ();
    0x0007f94c b 0x7f5d8                                         |         goto label_4;
                                                                 | label_46:
    0x0007f94e bl 0x70bf8                                        |         r0 = fcn_00070bf8 ();
    0x0007f952 cmp r0, 6                                         |         
                                                                 |         if (r0 <= 6) {
    0x0007f954 bgt.w 0x7fa9c                                     |             
    0x0007f958 ldr r0, [sp, 0x28]                                |             r0 = var_28h;
    0x0007f95a movs r4, 5                                        |             r4 = 5;
    0x0007f95c blx 0x8dac                                        |             fcn_00008dac ();
    0x0007f95e bic.w r8, r6, r8, lsl 4                           |             r8 = BIT_MASK (r6, r8);
    0x0007f962 blx 0x8dac                                        |             fcn_00008dac ();
    0x0007f966 b 0x7f5d8                                         |             goto label_4;
                                                                 | label_47:
    0x0007f968 bl 0x70bf8                                        |             r0 = fcn_00070bf8 ();
    0x0007f96c cmp r0, 6                                         |             
                                                                 |             if (r0 > 6) {
    0x0007f96e bgt.w 0x7fac2                                     |                 goto label_67;
                                                                 |             }
    0x0007f972 mov r0, fp                                        |             r0 = fp;
    0x0007f974 blx 0x8dac                                        |             fcn_00008dac ();
    0x0007f978 ldr r0, [sp, 0x20]                                |             r0 = var_20h;
    0x0007f97a blx 0x8dac                                        |             fcn_00008dac ();
    0x0007f97e b 0x7f5d8                                         |             goto label_4;
                                                                 | label_43:
    0x0007f980 ldr r3, [pc, 0x3b8]                               |             
    0x0007f982 mov r1, r6                                        |             r1 = r6;
    0x0007f984 ldr r2, [pc, 0x3b8]                               |             
    0x0007f986 ldr r0, [sp, 0x20]                                |             r0 = var_20h;
    0x0007f988 add r3, pc                                        |             r3 = 0xff6c8;
    0x0007f98a str.w sb, [sp, 8]                                 |             __asm ("str.w sb, [var_8h]");
    0x0007f98e str r3, [sp, 4]                                   |             var_4h = r3;
    0x0007f990 add r2, pc                                        |             r2 = 0xff6d4;
    0x0007f992 ldr r3, [pc, 0x3b0]                               |             
    0x0007f994 adds r2, 7                                        |             r2 += 7;
    0x0007f996 str r0, [sp, 0xc]                                 |             var_ch = r0;
    0x0007f998 movs r0, 7                                        |             r0 = 7;
    0x0007f99a add r3, pc                                        |             r3 = 0xff6e4;
    0x0007f99c str r3, [sp]                                      |             *(sp) = r3;
    0x0007f99e mov.w r3, 0x13c                                   |             r3 = 0x13c;
    0x0007f9a2 bl 0x71448                                        |             fcn_00071448 ();
    0x0007f9a6 b 0x7f508                                         |             goto label_11;
                                                                 | label_63:
    0x0007f9a8 mov r0, r6                                        |             r0 = r6;
    0x0007f9aa blx 0x8dac                                        |             fcn_00008dac ();
    0x0007f9ae b 0x7f4c4                                         |             goto label_3;
                                                                 | label_42:
    0x0007f9b0 ldr r5, [sp, 0x28]                                |             r5 = var_28h;
    0x0007f9b2 bl 0x70bf8                                        |             r0 = fcn_00070bf8 ();
    0x0007f9b6 cmp r0, 6                                         |             
    0x0007f9b8 and r4, r5, 0x800                                 |             r4 = r5 & 0x800;
                                                                 |             if (r0 > 6) {
    0x0007f9bc ble 0x7f9f0                                       |                 
    0x0007f9be cmp r4, 0                                         |                 
                                                                 |                 if (r4 != 0) {
    0x0007f9c0 bne.w 0x7fb22                                     |                     goto label_68;
                                                                 |                 }
    0x0007f9c4 ldr r3, [pc, 0x380]                               |                 
    0x0007f9c6 add r3, pc                                        |                 r3 = 0xff712;
                                                                 | label_16:
    0x0007f9c8 str r3, [sp, 0x10]                                |                 var_10h = r3;
    0x0007f9ca movs r0, 7                                        |                 r0 = 7;
    0x0007f9cc ldr r3, [pc, 0x37c]                               |                 
    0x0007f9ce ldr r2, [pc, 0x380]                               |                 
    0x0007f9d0 ldr r1, [pc, 0x380]                               |                 
    0x0007f9d2 add r3, pc                                        |                 r3 = 0xff722;
    0x0007f9d4 str r5, [sp, 0xc]                                 |                 var_ch = r5;
    0x0007f9d6 str r3, [sp, 8]                                   |                 var_8h = r3;
    0x0007f9d8 add r2, pc                                        |                 r2 = 0xff72e;
    0x0007f9da ldr r3, [pc, 0x37c]                               |                 
    0x0007f9dc add r1, pc                                        |                 r1 = 0xff734;
    0x0007f9de adds r2, 7                                        |                 r2 += 7;
    0x0007f9e0 add r3, pc                                        |                 r3 = 0xff73e;
    0x0007f9e2 strd r3, r1, [sp]                                 |                 __asm ("strd r3, r1, [sp]");
    0x0007f9e6 movw r3, 0x137                                    |                 r3 = 0x137;
    0x0007f9ea movs r1, 0                                        |                 r1 = 0;
    0x0007f9ec bl 0x71448                                        |                 fcn_00071448 ();
                                                                 |             }
    0x0007f9f0 ldr r0, [sp, 0x20]                                |             r0 = var_20h;
    0x0007f9f2 blx 0x8dac                                        |             fcn_00008dac ();
    0x0007f9f6 cmp r4, 0                                         |             
    0x0007f9f8 ite eq                                            |             
                                                                 |             if (r4 != 0) {
    0x0007f9fa moveq r4, 5                                       |                 r4 = 5;
                                                                 |             }
                                                                 |             if (r4 == 0) {
    0x0007f9fc movne r4, 0                                       |                 r4 = 0;
                                                                 |             }
    0x0007f9fe b 0x7f5d8                                         |             goto label_4;
                                                                 | label_52:
    0x0007fa00 ldr r3, [pc, 0x358]                               |             
    0x0007fa02 mov r1, r8                                        |             r1 = r8;
    0x0007fa04 ldr r2, [pc, 0x358]                               |             
    0x0007fa06 movs r0, 7                                        |             r0 = 7;
    0x0007fa08 mov r4, r8                                        |             r4 = r8;
    0x0007fa0a add r3, pc                                        |             r3 = 0xff76a;
    0x0007fa0c str r3, [sp, 4]                                   |             var_4h = r3;
    0x0007fa0e add r2, pc                                        |             r2 = 0xff772;
    0x0007fa10 ldr r3, [pc, 0x350]                               |             
    0x0007fa12 adds r2, 7                                        |             r2 += 7;
    0x0007fa14 add r3, pc                                        |             r3 = 0xff77c;
    0x0007fa16 str r3, [sp]                                      |             *(sp) = r3;
    0x0007fa18 mov.w r3, 0x104                                   |             r3 = 0x104;
    0x0007fa1c bl 0x71448                                        |             fcn_00071448 ();
    0x0007fa20 ldr r0, [sp, 0x28]                                |             r0 = var_28h;
    0x0007fa22 blx 0x8dac                                        |             fcn_00008dac ();
    0x0007fa26 b 0x7f3ac                                         |             goto label_1;
                                                                 | label_61:
    0x0007fa28 mov r0, r6                                        |             r0 = r6;
    0x0007fa2a blx 0x8dac                                        |             fcn_00008dac ();
    0x0007fa2e b 0x7f352                                         |             goto label_0;
                                                                 | label_62:
    0x0007fa30 ldr r3, [pc, 0x334]                               |             
    0x0007fa32 mov r1, r8                                        |             r1 = r8;
    0x0007fa34 ldr r2, [pc, 0x334]                               |             
    0x0007fa36 movs r0, 7                                        |             r0 = 7;
    0x0007fa38 str r6, [sp, 8]                                   |             var_8h = r6;
    0x0007fa3a add r3, pc                                        |             r3 = 0xff7a6;
    0x0007fa3c str r3, [sp, 4]                                   |             var_4h = r3;
    0x0007fa3e add r2, pc                                        |             r2 = 0xff7ae;
    0x0007fa40 ldr r3, [pc, 0x32c]                               |             
    0x0007fa42 adds r2, 7                                        |             r2 += 7;
    0x0007fa44 add r3, pc                                        |             r3 = 0xff7b8;
    0x0007fa46 str r3, [sp]                                      |             *(sp) = r3;
    0x0007fa48 mov.w r3, 0x164                                   |             r3 = 0x164;
    0x0007fa4c bl 0x71448                                        |             fcn_00071448 ();
    0x0007fa50 ldr r6, [sp, 0x28]                                |             r6 = var_28h;
    0x0007fa52 b 0x7f890                                         |             goto label_12;
                                                                 | label_59:
    0x0007fa54 ldr r3, [pc, 0x31c]                               |             
    0x0007fa56 movs r1, 0                                        |             r1 = 0;
    0x0007fa58 ldr r2, [pc, 0x31c]                               |             
    0x0007fa5a movs r0, 7                                        |             r0 = 7;
    0x0007fa5c add r3, pc                                        |             r3 = 0xff7d4;
    0x0007fa5e str r3, [sp, 4]                                   |             var_4h = r3;
    0x0007fa60 add r2, pc                                        |             r2 = 0xff7dc;
    0x0007fa62 ldr r3, [pc, 0x318]                               |             
    0x0007fa64 adds r2, 7                                        |             r2 += 7;
    0x0007fa66 add r3, pc                                        |             r3 = 0xff7e8;
    0x0007fa68 str r3, [sp]                                      |             *(sp) = r3;
    0x0007fa6a movw r3, 0x11d                                    |             r3 = 0x11d;
    0x0007fa6e bl 0x71448                                        |             fcn_00071448 ();
    0x0007fa72 b 0x7f862                                         |             goto label_13;
    0x0007fa74 ldr r2, [pc, 0x308]                               |             
    0x0007fa76 mov.w r3, 0x142                                   |             r3 = 0x142;
    0x0007fa7a ldr r0, [pc, 0x308]                               |             
    0x0007fa7c movs r4, 5                                        |             r4 = 5;
    0x0007fa7e ldr r1, [pc, 0x308]                               |             
    0x0007fa80 add r2, pc                                        |             r2 = 0xff804;
    0x0007fa82 add r0, pc                                        |             r0 = 0xff80c;
    0x0007fa84 adds r2, 7                                        |             r2 += 7;
    0x0007fa86 add r1, pc                                        |             r1 = 0xff814;
    0x0007fa88 strd r1, r0, [sp]                                 |             __asm ("strd r1, r0, [sp]");
    0x0007fa8c movs r1, 0                                        |             r1 = 0;
    0x0007fa8e movs r0, 7                                        |             r0 = 7;
    0x0007fa90 bl 0x71448                                        |             fcn_00071448 ();
    0x0007fa94 ldr r0, [sp, 0x20]                                |             r0 = var_20h;
    0x0007fa96 blx 0x8dac                                        |             fcn_00008dac ();
    0x0007fa9a b 0x7f5d8                                         |             goto label_4;
                                                                 |         }
    0x0007fa9c ldr r2, [pc, 0x2ec]                               |         
    0x0007fa9e mov r1, r4                                        |         r1 = r4;
    0x0007faa0 ldr r0, [pc, 0x2ec]                               |         
    0x0007faa2 ldr r3, [pc, 0x2f0]                               |         
    0x0007faa4 add r2, pc                                        |         r2 = 0xff834;
    0x0007faa6 add r0, pc                                        |         r0 = 0xff83a;
    0x0007faa8 adds r2, 7                                        |         r2 += 7;
    0x0007faaa add r3, pc                                        |         r3 = 0xff844;
    0x0007faac strd r3, r0, [sp]                                 |         __asm ("strd r3, r0, [sp]");
    0x0007fab0 movw r3, 0x14f                                    |         r3 = 0x14f;
    0x0007fab4 movs r0, 7                                        |         r0 = 7;
    0x0007fab6 bl 0x71448                                        |         fcn_00071448 ();
    0x0007faba ldr r0, [sp, 0x28]                                |         r0 = var_28h;
    0x0007fabc blx 0x8dac                                        |         fcn_00008dac ();
    0x0007fac0 b 0x7f944                                         |         
                                                                 |     }
                                                                 | label_67:
    0x0007fac2 ldr r2, [pc, 0x2d4]                               |     
    0x0007fac4 movs r0, 7                                        |     r0 = 7;
    0x0007fac6 ldr r1, [pc, 0x2d4]                               |     
    0x0007fac8 ldr r3, [pc, 0x2d4]                               |     
    0x0007faca add r2, pc                                        |     r2 = 0xff868;
    0x0007facc add r1, pc                                        |     r1 = 0xff86e;
    0x0007face adds r2, 7                                        |     r2 += 7;
    0x0007fad0 add r3, pc                                        |     r3 = 0xff874;
    0x0007fad2 strd r3, r1, [sp]                                 |     __asm ("strd r3, r1, [sp]");
    0x0007fad6 mov.w r3, 0x154                                   |     r3 = 0x154;
    0x0007fada mov r1, r4                                        |     r1 = r4;
    0x0007fadc bl 0x71448                                        |     fcn_00071448 ();
    0x0007fae0 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0007fae2 blx 0x8dac                                        |     fcn_00008dac ();
    0x0007fae6 ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x0007fae8 blx 0x8dac                                        |     fcn_00008dac ();
    0x0007faec b 0x7f5d8                                         |     goto label_4;
                                                                 | label_64:
    0x0007faee ldr r3, [pc, 0x2b4]                               |     
    0x0007faf0 mov r1, r8                                        |     r1 = r8;
    0x0007faf2 ldr r2, [pc, 0x2b4]                               |     
    0x0007faf4 movs r0, 7                                        |     r0 = 7;
    0x0007faf6 str r6, [sp, 8]                                   |     var_8h = r6;
    0x0007faf8 add r3, pc                                        |     r3 = 0xff8a2;
    0x0007fafa str r3, [sp, 4]                                   |     var_4h = r3;
    0x0007fafc add r2, pc                                        |     r2 = 0xff8aa;
    0x0007fafe ldr r3, [pc, 0x2ac]                               |     
    0x0007fb00 adds r2, 7                                        |     r2 += 7;
    0x0007fb02 add r3, pc                                        |     r3 = 0xff8b4;
    0x0007fb04 str r3, [sp]                                      |     *(sp) = r3;
    0x0007fb06 movs r3, 0x80                                     |     r3 = 0x80;
    0x0007fb08 bl 0x71448                                        |     fcn_00071448 ();
    0x0007fb0c ldr r6, [sp, 0x28]                                |     r6 = var_28h;
    0x0007fb0e b 0x7f8d6                                         |     goto label_14;
                                                                 | label_60:
    0x0007fb10 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0007fb12 blx 0x8dac                                        |     fcn_00008dac ();
    0x0007fb16 b 0x7f8aa                                         |     goto label_15;
                                                                 | label_65:
    0x0007fb18 mov r0, r6                                        |     r0 = r6;
    0x0007fb1a movs r4, 1                                        |     r4 = 1;
    0x0007fb1c blx 0x8dac                                        |     fcn_00008dac ();
    0x0007fb20 b 0x7f5d8                                         |     goto label_4;
                                                                 | label_68:
    0x0007fb22 ldr r3, [pc, 0x28c]                               |     
    0x0007fb24 add r3, pc                                        |     r3 = 0xff8da;
    0x0007fb26 b 0x7f9c8                                         |     goto label_16;
                                                                 | label_55:
    0x0007fb28 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x0007fb2c ldr.w r8, [r0]                                    |     r8 = *(r0);
    0x0007fb30 cmp.w r8, 2                                       |     
                                                                 |     if (r8 == 2) {
    0x0007fb34 beq 0x7fb96                                       |         goto label_69;
                                                                 |     }
    0x0007fb36 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0007fb38 rsb.w r4, r8, 0                                   |     r4 = r8 - ;
    0x0007fb3c blx 0x8dac                                        |     fcn_00008dac ();
    0x0007fb40 cmp.w r8, 0                                       |     
                                                                 |     if (r8 > 0) {
    0x0007fb44 bgt.w 0x7f352                                     |         goto label_0;
                                                                 |     }
    0x0007fb48 cmn.w r8, 0x10                                    |     
    0x0007fb4c it eq                                             |     
                                                                 |     if (r8 != 0x10) {
    0x0007fb4e moveq r4, 0x10                                    |         r4 = 0x10;
                                                                 |     }
                                                                 |     if (r8 != 0x10) {
    0x0007fb50 bne 0x7fb7c                                       |         goto label_70;
                                                                 |     }
                                                                 | label_18:
    0x0007fb52 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007fb56 cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x0007fb58 ble.w 0x7f5d8                                     |         goto label_4;
                                                                 |     }
    0x0007fb5c ldr r2, [pc, 0x254]                               |     
    0x0007fb5e movs r0, 7                                        |     r0 = 7;
    0x0007fb60 ldr r1, [pc, 0x254]                               |     
    0x0007fb62 ldr r3, [pc, 0x258]                               |     
    0x0007fb64 add r2, pc                                        |     r2 = 0xff91c;
    0x0007fb66 add r1, pc                                        |     r1 = 0xff922;
    0x0007fb68 adds r2, 7                                        |     r2 += 7;
    0x0007fb6a add r3, pc                                        |     r3 = 0xff92c;
    0x0007fb6c strd r3, r1, [sp]                                 |     __asm ("strd r3, r1, [sp]");
    0x0007fb70 movw r3, 0x1a5                                    |     r3 = 0x1a5;
    0x0007fb74 movs r1, 0                                        |     r1 = 0;
    0x0007fb76 bl 0x71448                                        |     fcn_00071448 ();
    0x0007fb7a b 0x7f5d8                                         |     goto label_4;
                                                                 | label_70:
    0x0007fb7c cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x0007fb80 bne.w 0x7f5d2                                     |         goto label_17;
                                                                 |     }
                                                                 | label_22:
    0x0007fb84 lsls r4, r6, 4                                    |     r4 = r6 << 4;
    0x0007fb86 b 0x7fb52                                         |     goto label_18;
                                                                 | label_66:
    0x0007fb88 mov r0, r6                                        |     r0 = r6;
    0x0007fb8a movs r4, 0x10                                     |     r4 = 0x10;
    0x0007fb8c blx 0x8dac                                        |     fcn_00008dac ();
    0x0007fb90 b 0x7fb52                                         |     goto label_18;
                                                                 | label_27:
    0x0007fb92 blx 0x927c                                        |     fprintf_chk ()
                                                                 | label_69:
    0x0007fb96 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007fb9a cmp r0, 6                                         |     
    0x0007fb9c lsl.w r4, r6, 4                                   |     r4 = r6 << 4;
                                                                 |     if (r0 > 6) {
    0x0007fba0 bgt 0x7fbd4                                       |         goto label_71;
                                                                 |     }
                                                                 | label_21:
    0x0007fba2 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0007fba4 blx 0x8dac                                        |     fcn_00008dac ();
    0x0007fba8 b 0x7fb52                                         |     goto label_18;
                                                                 | label_54:
    0x0007fbaa ldr r0, [pc, 0x214]                               |     
    0x0007fbac add r0, pc                                        |     r0 = 0xff972;
    0x0007fbae blx 0x8df4                                        |     r0 = fcn_00008df4 ();
    0x0007fbb2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0007fbb4 beq.w 0x7f792                                     |         goto label_19;
                                                                 |     }
    0x0007fbb8 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0007fbba movs r4, 0xf                                      |     r4 = 0xf;
    0x0007fbbc blx 0x8dac                                        |     fcn_00008dac ();
    0x0007fbc0 b 0x7f5d8                                         |     goto label_4;
                                                                 | label_57:
    0x0007fbc2 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007fbc6 cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x0007fbc8 bgt 0x7fbf2                                       |         
    0x0007fbca mov r0, r8                                        |         r0 = r8;
    0x0007fbcc movs r4, 3                                        |         r4 = 3;
    0x0007fbce blx 0x91a8                                        |         fcn_000091a8 ();
    0x0007fbd2 b 0x7f81c                                         |         goto label_20;
                                                                 | label_71:
    0x0007fbd4 ldr r3, [pc, 0x1ec]                               |         
    0x0007fbd6 mov r1, r8                                        |         r1 = r8;
    0x0007fbd8 ldr r2, [pc, 0x1ec]                               |         
    0x0007fbda movs r0, 7                                        |         r0 = 7;
    0x0007fbdc add r3, pc                                        |         r3 = 0xff9a4;
    0x0007fbde str r3, [sp, 4]                                   |         var_4h = r3;
    0x0007fbe0 add r2, pc                                        |         r2 = 0xff9ac;
    0x0007fbe2 ldr r3, [pc, 0x1e8]                               |         
    0x0007fbe4 adds r2, 7                                        |         r2 += 7;
    0x0007fbe6 add r3, pc                                        |         r3 = 0xff9b8;
    0x0007fbe8 str r3, [sp]                                      |         *(sp) = r3;
    0x0007fbea movs r3, 0x6f                                     |         r3 = 0x6f;
    0x0007fbec bl 0x71448                                        |         fcn_00071448 ();
    0x0007fbf0 b 0x7fba2                                         |         goto label_21;
                                                                 |     }
    0x0007fbf2 ldr r3, [pc, 0x1dc]                               |     
    0x0007fbf4 mov r1, r5                                        |     r1 = r5;
    0x0007fbf6 ldr r2, [pc, 0x1dc]                               |     
    0x0007fbf8 movs r0, 7                                        |     r0 = 7;
    0x0007fbfa str r4, [sp, 8]                                   |     var_8h = r4;
    0x0007fbfc movs r4, 3                                        |     r4 = 3;
    0x0007fbfe add r3, pc                                        |     r3 = 0xff9d4;
    0x0007fc00 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0007fc02 add r2, pc                                        |     r2 = 0xff9dc;
    0x0007fc04 ldr r3, [pc, 0x1d0]                               |     
    0x0007fc06 adds r2, 7                                        |     r2 += 7;
    0x0007fc08 add r3, pc                                        |     r3 = 0xff9e4;
    0x0007fc0a str r3, [sp]                                      |     *(sp) = r3;
    0x0007fc0c movs r3, 0x77                                     |     r3 = 0x77;
    0x0007fc0e bl 0x71448                                        |     fcn_00071448 ();
    0x0007fc12 mov r0, r8                                        |     r0 = r8;
    0x0007fc14 blx 0x91a8                                        |     fcn_000091a8 ();
    0x0007fc18 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0007fc1a blx 0x8dac                                        |     fcn_00008dac ();
    0x0007fc1e b 0x7f5d8                                         |     goto label_4;
                                                                 | label_58:
    0x0007fc20 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007fc24 cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x0007fc26 bgt 0x7fc98                                       |         goto label_72;
                                                                 |     }
    0x0007fc28 mov r0, r8                                        |     r0 = r8;
    0x0007fc2a blx 0x91a8                                        |     fcn_000091a8 ();
    0x0007fc2e ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0007fc30 blx 0x8dac                                        |     fcn_00008dac ();
    0x0007fc34 b 0x7fb84                                         |     goto label_22;
                                                                 | label_30:
    0x0007fc36 blx 0x9628                                        |     r0 = fcn_00009628 ();
    0x0007fc3a ldr.w r8, [r0]                                    |     r8 = *(r0);
    0x0007fc3e cmp.w r8, 2                                       |     
                                                                 |     if (r8 == 2) {
    0x0007fc42 beq 0x7fc74                                       |         goto label_73;
                                                                 |     }
    0x0007fc44 mov r0, r6                                        |     r0 = r6;
    0x0007fc46 rsb.w r6, r8, 0                                   |     r6 = r8 - ;
    0x0007fc4a bl 0x69b30                                        |     fcn_00069b30 (r0, r1, r2, r3);
    0x0007fc4e cmp.w r8, 0                                       |     
                                                                 |     if (r8 > 0) {
    0x0007fc52 bgt 0x7fc6e                                       |         goto label_74;
                                                                 |     }
    0x0007fc54 cmn.w r8, 0x10                                    |     
    0x0007fc58 it eq                                             |     
                                                                 |     if (r8 == 0x10) {
    0x0007fc5a moveq r6, 1                                       |         r6 = 1;
                                                                 |         goto label_75;
                                                                 |     }
                                                                 |     if (r8 == 0x10) {
                                                                 | label_75:
    0x0007fc5c beq.w 0x7f48e                                     |         goto label_23;
                                                                 |     }
    0x0007fc60 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x0007fc64 bne 0x7fc6a                                       |         
    0x0007fc66 mov r6, r8                                        |         r6 = r8;
    0x0007fc68 b 0x7f48e                                         |         goto label_23;
                                                                 |     }
    0x0007fc6a mov r4, r6                                        |     r4 = r6;
    0x0007fc6c b 0x7f5d2                                         |     goto label_17;
                                                                 | label_74:
    0x0007fc6e mov r4, r6                                        |     r4 = r6;
    0x0007fc70 b.w 0x7f352                                       |     goto label_0;
                                                                 | label_73:
    0x0007fc74 bl 0x70bf8                                        |     r0 = fcn_00070bf8 ();
    0x0007fc78 cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x0007fc7a ble.w 0x7f486                                     |         goto label_24;
                                                                 |     }
    0x0007fc7e ldr r3, [pc, 0x15c]                               |     
    0x0007fc80 ldr r2, [pc, 0x15c]                               |     
    0x0007fc82 add r3, pc                                        |     r3 = 0xffa64;
    0x0007fc84 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0007fc86 add r2, pc                                        |     r2 = 0xffa6a;
    0x0007fc88 ldr r3, [pc, 0x158]                               |     
    0x0007fc8a adds r2, 7                                        |     r2 += 7;
    0x0007fc8c add r3, pc                                        |     r3 = 0xffa74;
    0x0007fc8e str r3, [sp]                                      |     *(sp) = r3;
    0x0007fc90 mov.w r3, 0x174                                   |     r3 = 0x174;
    0x0007fc94 b.w 0x7f47e                                       |     goto label_25;
                                                                 | label_72:
    0x0007fc98 ldr r3, [pc, 0x14c]                               |     
    0x0007fc9a movs r1, 0                                        |     r1 = 0;
    0x0007fc9c ldr r2, [pc, 0x14c]                               |     
    0x0007fc9e movs r0, 7                                        |     r0 = 7;
    0x0007fca0 add r3, pc                                        |     r3 = 0xffa8c;
    0x0007fca2 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0007fca4 add r2, pc                                        |     r2 = 0xffa94;
    0x0007fca6 ldr r3, [pc, 0x148]                               |     
    0x0007fca8 adds r2, 7                                        |     r2 += 7;
    0x0007fcaa add r3, pc                                        |     r3 = 0xffaa0;
    0x0007fcac str r3, [sp]                                      |     *(sp) = r3;
    0x0007fcae movs r3, 0x7b                                     |     r3 = 0x7b;
    0x0007fcb0 bl 0x71448                                        |     fcn_00071448 ();
    0x0007fcb4 mov r0, r8                                        |     r0 = r8;
    0x0007fcb6 blx 0x91a8                                        |     fcn_000091a8 ();
    0x0007fcba ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0007fcbc blx 0x8dac                                        |     fcn_00008dac ();
    0x0007fcc0 b 0x7fb84                                         |     goto label_22;
    0x0008036c push {r3, lr}                                     |     
    0x0008036e bl 0x7fdf4                                        |     r0 = fcn_0007fdf4 ();
                                                                 |     if (r0 != 0) {
    0x00080372 cbz r0, 0x80376                                   |         
    0x00080374 pop {r3, pc}                                      |         
                                                                 |     }
    0x00080376 pop.w {r3, lr}                                    |     
    0x0008037a b.w 0x7f32c                                       |     goto label_26;
                                                                 | }

[*] Function fprintf used 206 times udevadm