[*] Binary protection state of systemd-journald

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


[*] Function sprintf tear down of systemd-journald

    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/systemd/systemd-journald @ 0xd840 */
                                                         | #include <stdint.h>
                                                         |  
                                                         | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                         |  
    ; (fcn) fcn.0000d840 ()                              | void fcn_0000d840 (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_18h;
                                                         |     int16_t var_1ch;
                                                         |     int16_t var_20h;
                                                         |     int16_t var_80h;
                                                         |     int16_t var_8ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x0000d840 push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x0000d844 mov r6, r2                                |     r6 = r2;
    0x0000d846 ldr.w r2, [pc, 0x4fc]                     |     
    0x0000d84a mov r8, r3                                |     r8 = r3;
    0x0000d84c sub sp, 0x94                              |     
    0x0000d84e ldr.w r3, [pc, 0x4f8]                     |     r3 = *(0xdd4a);
    0x0000d852 add r2, pc                                |     r2 = 0x1b59c;
    0x0000d854 ldr r3, [r2, r3]                          |     
    0x0000d856 ldr r3, [r3]                              |     r3 = *(0x1b59c);
    0x0000d858 str r3, [sp, 0x8c]                        |     var_8ch = r3;
    0x0000d85a mov.w r3, 0                               |     r3 = 0;
    0x0000d85e cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0000d860 beq.w 0xdb1a                              |         goto label_6;
                                                         |     }
    0x0000d864 mov r4, r1                                |     r4 = r1;
    0x0000d866 cmp r1, 0                                 |     
                                                         |     if (r1 == 0) {
    0x0000d868 beq.w 0xdb30                              |         goto label_7;
                                                         |     }
    0x0000d86c movs r3, 0                                |     r3 = 0;
    0x0000d86e ldrb r7, [r1, r6]                         |     r7 = *((r1 + r6));
    0x0000d870 mov r5, r0                                |     r5 = r0;
    0x0000d872 strb r3, [r1, r6]                         |     *((r1 + r6)) = r3;
    0x0000d874 mov r0, r1                                |     r0 = r1;
    0x0000d876 blx 0x4568                                |     varlink_server_attach_event ();
    0x0000d87a ldr r3, [r5, 4]                           |     r3 = *((r5 + 4));
    0x0000d87c mov sb, r0                                |     sb = r0;
    0x0000d87e cmp.w r8, 0                               |     
                                                         |     if (r8 == 0) {
    0x0000d882 beq 0xd8ba                                |         goto label_8;
                                                         |     }
    0x0000d884 cmp r3, 7                                 |     
                                                         |     if (r3 == 7) {
    0x0000d886 beq 0xd8d4                                |         goto label_9;
                                                         |     }
    0x0000d888 blx 0x409c                                |     r0 = fcn_0000409c ();
    0x0000d88c cmp r0, 3                                 |     
    0x0000d88e it le                                     |     
                                                         |     if (r0 > 3) {
    0x0000d890 mvnle r0, 0x15                            |         r0 = ~0x15;
                                                         |     }
                                                         |     if (r0 > 3) {
    0x0000d894 bgt.w 0xdb46                              |         goto label_10;
                                                         |     }
                                                         |     do {
                                                         | label_0:
    0x0000d898 ldr.w r2, [pc, 0x4b0]                     |         
    0x0000d89c ldr.w r3, [pc, 0x4a8]                     |         r3 = *(0xdd48);
    0x0000d8a0 strb r7, [r4, r6]                         |         *((r4 + r6)) = r7;
    0x0000d8a2 add r2, pc                                |         r2 = 0x1b5f2;
    0x0000d8a4 ldr r3, [r2, r3]                          |         r3 = *(0x1b5f2);
    0x0000d8a6 ldr r2, [r3]                              |         r2 = *(0x1b5f2);
    0x0000d8a8 ldr r3, [sp, 0x8c]                        |         r3 = var_8ch;
    0x0000d8aa eors r2, r3                               |         r2 ^= r3;
    0x0000d8ac mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0000d8b0 bne.w 0xdd04                              |             goto label_11;
                                                         |         }
    0x0000d8b4 add sp, 0x94                              |         
    0x0000d8b6 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_8:
    0x0000d8ba cmp r3, 7                                 |         
                                                         |         if (r3 > 7) {
    0x0000d8bc bhi.w 0xdd30                              |             goto label_12;
                                                         |         }
                                                         |         /* switch table (9 cases) at 0xd8c4 */
    0x0000d8c0 tbh [pc, r3, lsl 1]                       |         __asm ("tbh [pc, r3, lsl 1]");
                                                         | label_9:
    0x0000d8d4 mov r2, r8                                |         r2 = r8;
    0x0000d8d6 mov r0, r5                                |         r0 = r5;
    0x0000d8d8 mov r1, r4                                |         r1 = r4;
    0x0000d8da bl 0xd424                                 |         fcn_0000d424 (r0, r1, r2);
    0x0000d8de b 0xd898                                  |         
                                                         |     } while (1);
    0x0000d8e0 blx 0x458c                                |     r0 = asprintf_chk ()
    0x0000d8e4 subs.w r8, r0, 0                          |     r8 = r0 - 0;
                                                         |     if (r8 < r0) {
    0x0000d8e8 blt.w 0xdb74                              |         goto label_13;
                                                         |     }
    0x0000d8ec ldrb.w r3, [r5, 0x28]                     |     r3 = *((r5 + 0x28));
    0x0000d8f0 ite ne                                    |     
                                                         |     if (r8 == r0) {
    0x0000d8f2 movne r2, 1                               |         r2 = 1;
                                                         |     }
                                                         |     if (r8 != r0) {
    0x0000d8f4 moveq r2, 0                               |         r2 = 0;
                                                         |     }
    0x0000d8f6 ldr r0, [r5, 0x38]                        |     r0 = *((r5 + 0x38));
    0x0000d8f8 bfi r3, r2, 3, 1                          |     value_0 = BIT_MASK (3, 1);
                                                         |     value_1 = r2 & value_0;
                                                         |     value_0 = ~value_0;
                                                         |     r3 &= value_0;
                                                         |     r3 |= value_1;
    0x0000d8fc strb.w r3, [r5, 0x28]                     |     *((r5 + 0x28)) = r3;
    0x0000d900 movs r3, 7                                |     r3 = 7;
    0x0000d902 str r3, [r5, 4]                           |     *((r5 + 4)) = r3;
    0x0000d904 movs r3, 0                                |     r3 = 0;
    0x0000d906 strd r3, r3, [sp, 0x18]                   |     __asm ("strd r3, r3, [var_1ch]");
    0x0000d90a cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0000d90c beq.w 0xdc86                              |         goto label_14;
                                                         |     }
                                                         | label_4:
    0x0000d910 movw r1, 0x1ed                            |     r1 = 0x1ed;
    0x0000d914 blx 0x4604                                |     raise (r0);
    0x0000d916 vadd.f64 d22, d22, d24                    |     __asm ("vadd.f64 d22, d22, d24");
    0x0000d91a add r2, sp, 0x18                          |     r2 += var_18h;
    0x0000d91c add r1, sp, 0x1c                          |     r1 += var_1ch;
    0x0000d91e blx 0x3e98                                |     r0 = fcn_00003e98 ();
    0x0000d922 subs.w r8, r0, 0                          |     r8 = r0 - 0;
                                                         |     if (r8 < r0) {
    0x0000d926 blt.w 0xdc34                              |         goto label_5;
                                                         |     }
    0x0000d92a add.w r3, r5, 0x5b                        |     r3 = r5 + 0x5b;
    0x0000d92e ldr.w r2, [pc, 0x420]                     |     
    0x0000d932 str r3, [sp, 0x10]                        |     var_10h = r3;
    0x0000d934 movs r1, 1                                |     r1 = 1;
    0x0000d936 ldrb.w ip, [r5, 0x28]                     |     ip = *((r5 + 0x28));
    0x0000d93a ldr r3, [r5, 0x24]                        |     r3 = *((r5 + 0x24));
    0x0000d93c add r2, pc                                |     r2 = 0x1b692;
    0x0000d93e ldr r0, [sp, 0x1c]                        |     r0 = var_1ch;
    0x0000d940 ubfx lr, ip, 3, 1                         |     lr = (ip >> 3) & ((1 << 1) - 1);
    0x0000d944 str.w lr, [sp, 0xc]                       |     __asm ("str.w lr, [var_ch]");
    0x0000d948 ubfx lr, ip, 2, 1                         |     lr = (ip >> 2) & ((1 << 1) - 1);
    0x0000d94c str.w lr, [sp, 8]                         |     __asm ("str.w lr, [var_8h]");
    0x0000d950 ubfx lr, ip, 1, 1                         |     lr = (ip >> 1) & ((1 << 1) - 1);
    0x0000d954 and.w ip, ip, r1                          |     
    0x0000d958 str.w lr, [sp, 4]                         |     __asm ("str.w lr, [var_4h]");
    0x0000d95a b 0xd966                                  |     goto label_15;
    0x0000d95c str.w ip, [sp]                            |     __asm ("str.w ip, [sp]");
    0x0000d960 blx 0x4084                                |     fcn_00004084 ();
    0x0000d964 ldr r0, [r5, 0x1c]                        |     r0 = *((r5 + 0x1c));
                                                         |     if (r0 != 0) {
                                                         | label_15:
    0x0000d966 cbz r0, 0xd98c                            |         
    0x0000d968 ldrb r3, [r0]                             |         r3 = *(r0);
                                                         |         if (r3 == 0) {
    0x0000d96a cbz r3, 0xd98c                            |             goto label_16;
                                                         |         }
    0x0000d96c blx 0x4a74                                |         r0 = fcn_00004a74 ();
    0x0000d970 mov r8, r0                                |         r8 = r0;
    0x0000d972 cmp r0, 0                                 |         
                                                         |         if (r0 == 0) {
    0x0000d974 beq.w 0xdc30                              |             goto label_17;
                                                         |         }
    0x0000d978 ldr r2, [pc, 0x3d8]                       |         
    0x0000d97a mov r3, r8                                |         r3 = r8;
    0x0000d97c ldr r0, [sp, 0x1c]                        |         r0 = var_1ch;
    0x0000d97e movs r1, 1                                |         r1 = 1;
    0x0000d980 add r2, pc                                |         r2 = 0x1b6d8;
    0x0000d982 blx 0x4084                                |         fcn_00004084 ();
    0x0000d986 mov r0, r8                                |         r0 = r8;
    0x0000d988 blx 0x3e8c                                |         fcn_00003e8c ();
                                                         |     }
                                                         | label_16:
    0x0000d98c ldr r0, [r5, 0x20]                        |     r0 = *((r5 + 0x20));
                                                         |     if (r0 != 0) {
    0x0000d98e cbz r0, 0xd9b4                            |         
    0x0000d990 ldrb r3, [r0]                             |         r3 = *(r0);
                                                         |         if (r3 == 0) {
    0x0000d992 cbz r3, 0xd9b4                            |             goto label_18;
                                                         |         }
    0x0000d994 blx 0x4a74                                |         r0 = fcn_00004a74 ();
    0x0000d998 mov r8, r0                                |         r8 = r0;
    0x0000d99a cmp r0, 0                                 |         
                                                         |         if (r0 == 0) {
    0x0000d99c beq.w 0xdc30                              |             goto label_17;
                                                         |         }
    0x0000d9a0 ldr r2, [pc, 0x3b4]                       |         
    0x0000d9a2 mov r3, r8                                |         r3 = r8;
    0x0000d9a4 ldr r0, [sp, 0x1c]                        |         r0 = var_1ch;
    0x0000d9a6 movs r1, 1                                |         r1 = 1;
    0x0000d9a8 add r2, pc                                |         r2 = 0x1b704;
    0x0000d9aa blx 0x4084                                |         r0 = fcn_00004084 ();
    0x0000d9ac sbc.w r6, ip, r0, lsl 17                  |         __asm ("sbc.w r6, ip, r0, lsl 17");
    0x0000d9b0 blx 0x3e8c                                |         fcn_00003e8c ();
                                                         |     }
                                                         | label_18:
    0x0000d9b4 ldr r0, [sp, 0x1c]                        |     r0 = var_1ch;
    0x0000d9b6 blx 0x3f58                                |     r0 = fcn_00003f58 ();
    0x0000d9ba subs.w r8, r0, 0                          |     r8 = r0 - 0;
                                                         |     if (r8 < r0) {
    0x0000d9be blt.w 0xdc34                              |         goto label_5;
                                                         |     }
    0x0000d9c0 strh r1, [r7, 8]                          |     *((r7 + 8)) = r1;
    0x0000d9c2 ldr r1, [r5, 0x38]                        |     r1 = *((r5 + 0x38));
    0x0000d9c4 ldr r0, [sp, 0x18]                        |     r0 = var_18h;
    0x0000d9c6 blx 0x4aa4                                |     r0 = fcn_00004aa4 ();
    0x0000d9ca cmp r0, 0                                 |     
                                                         |     if (r0 < 0) {
    0x0000d9cc blt.w 0xdcf8                              |         goto label_19;
                                                         |     }
    0x0000d9d0 ldr r0, [sp, 0x18]                        |     r0 = var_18h;
    0x0000d9d2 blx 0x3e8c                                |     fcn_00003e8c ();
    0x0000d9d6 movs r3, 0                                |     r3 = 0;
    0x0000d9d8 str r3, [sp, 0x18]                        |     var_18h = r3;
    0x0000d9da ldrb.w r3, [r5, 0x28]                     |     r3 = *((r5 + 0x28));
    0x0000d9de lsls r2, r3, 0x1b                         |     r2 = r3 << 0x1b;
                                                         |     if (r2 >= r3) {
    0x0000d9e0 bmi 0xda18                                |         
    0x0000d9e2 lsls r3, r3, 0x1a                         |         r3 <<= 0x1a;
                                                         |         if (r3 < r3) {
    0x0000d9e4 bmi 0xda18                                |             goto label_3;
                                                         |         }
    0x0000d9e6 ldr r2, [r5]                              |         r2 = *(r5);
    0x0000d9e8 ldr.w r3, [r2, 0x19c]                     |         r3 = *((r2 + 0x19c));
    0x0000d9ec str r3, [r5, 0x48]                        |         *((r5 + 0x48)) = r3;
                                                         |         if (r3 != 0) {
    0x0000d9ee cbz r3, 0xd9f2                            |             
    0x0000d9f0 str r5, [r3, 0x4c]                        |             *((r3 + 0x4c)) = r5;
                                                         |         }
    0x0000d9f2 movs r3, 0                                |         r3 = 0;
    0x0000d9f4 str r3, [r5, 0x4c]                        |         *((r5 + 0x4c)) = r3;
    0x0000d9f6 str.w r5, [r2, 0x19c]                     |         __asm ("str.w r5, [r2, 0x19c]");
    0x0000d9fa ldrb.w r3, [r5, 0x28]                     |         r3 = *((r5 + 0x28));
    0x0000d9fe orr r3, r3, 0x20                          |         r3 |= 0x20;
    0x0000da02 strb.w r3, [r5, 0x28]                     |         *((r5 + 0x28)) = r3;
    0x0000da06 ldr r3, [r5]                              |         r3 = *(r5);
    0x0000da08 ldr r0, [r3, 0x54]                        |         r0 = *((r3 + 0x54));
                                                         |         if (r0 == 0) {
    0x0000da0a cbz r0, 0xda18                            |             goto label_3;
                                                         |         }
    0x0000da0c movs r1, 1                                |         r1 = 1;
    0x0000da0e blx 0x3f04                                |         r0 = fcn_00003f04 ();
    0x0000da12 subs r5, r0, 0                            |         r5 = r0 - 0;
                                                         |         if (r5 < r0) {
    0x0000da14 blt.w 0xdd08                              |             goto label_20;
                                                         |         }
    0x0000da16 strh r0, [r7, 0xa]                        |         *((r7 + 0xa)) = r0;
                                                         |     }
                                                         | label_3:
    0x0000da18 ldr r0, [sp, 0x1c]                        |     r0 = var_1ch;
    0x0000da1a blx 0x4790                                |     snprintf_chk ();
    0x0000da1e ldr r5, [sp, 0x18]                        |     r5 = var_18h;
    0x0000da20 cmp r5, 0                                 |     
                                                         |     if (r5 == 0) {
    0x0000da22 beq 0xdb10                                |         goto label_21;
                                                         |     }
    0x0000da24 mov r0, r5                                |     r0 = r5;
    0x0000da26 blx 0x4a38                                |     fcn_00004a38 ();
    0x0000da2a mov r0, r5                                |     r0 = r5;
    0x0000da2c blx 0x3e8c                                |     fcn_00003e8c ();
    0x0000da30 b 0xdb10                                  |     goto label_21;
    0x0000da32 blx 0x458c                                |     r0 = asprintf_chk ()
    0x0000da36 subs.w r8, r0, 0                          |     r8 = r0 - 0;
                                                         |     if (r8 < r0) {
    0x0000da3a blt.w 0xdb8c                              |         goto label_22;
                                                         |     }
    0x0000da3e ldrb.w r3, [r5, 0x28]                     |     r3 = *((r5 + 0x28));
    0x0000da42 ite ne                                    |     
                                                         |     if (r8 == r0) {
    0x0000da44 movne r2, 1                               |         r2 = 1;
                                                         |     }
                                                         |     if (r8 != r0) {
    0x0000da46 moveq r2, 0                               |         r2 = 0;
                                                         |     }
    0x0000da48 bfi r3, r2, 2, 1                          |     value_2 = BIT_MASK (2, 1);
                                                         |     value_3 = r2 & value_2;
                                                         |     value_2 = ~value_2;
                                                         |     r3 &= value_2;
                                                         |     r3 |= value_3;
    0x0000da4c strb.w r3, [r5, 0x28]                     |     *((r5 + 0x28)) = r3;
    0x0000da50 movs r3, 6                                |     r3 = 6;
    0x0000da52 str r3, [r5, 4]                           |     *((r5 + 4)) = r3;
    0x0000da54 b 0xdb10                                  |     goto label_21;
    0x0000da56 blx 0x458c                                |     r0 = asprintf_chk ()
    0x0000da5a subs.w r8, r0, 0                          |     r8 = r0 - 0;
                                                         |     if (r8 < r0) {
    0x0000da5e blt.w 0xdbe0                              |         goto label_23;
                                                         |     }
    0x0000da62 ldrb.w r3, [r5, 0x28]                     |     r3 = *((r5 + 0x28));
    0x0000da66 ite ne                                    |     
                                                         |     if (r8 == r0) {
    0x0000da68 movne r2, 1                               |         r2 = 1;
                                                         |     }
                                                         |     if (r8 != r0) {
    0x0000da6a moveq r2, 0                               |         r2 = 0;
                                                         |     }
    0x0000da6c bfi r3, r2, 1, 1                          |     value_4 = BIT_MASK (1, 1);
                                                         |     value_5 = r2 & value_4;
                                                         |     value_4 = ~value_4;
                                                         |     r3 &= value_4;
                                                         |     r3 |= value_5;
    0x0000da70 strb.w r3, [r5, 0x28]                     |     *((r5 + 0x28)) = r3;
    0x0000da74 movs r3, 5                                |     r3 = 5;
    0x0000da76 str r3, [r5, 4]                           |     *((r5 + 4)) = r3;
    0x0000da78 b 0xdb10                                  |     goto label_21;
    0x0000da7a blx 0x458c                                |     r0 = asprintf_chk ()
    0x0000da7e subs.w r8, r0, 0                          |     r8 = r0 - 0;
                                                         |     if (r8 < r0) {
    0x0000da82 blt.w 0xdc08                              |         goto label_24;
                                                         |     }
    0x0000da86 ldrb.w r3, [r5, 0x28]                     |     r3 = *((r5 + 0x28));
    0x0000da8a ite ne                                    |     
                                                         |     if (r8 == r0) {
    0x0000da8c movne r2, 1                               |         r2 = 1;
                                                         |     }
                                                         |     if (r8 != r0) {
    0x0000da8e moveq r2, 0                               |         r2 = 0;
                                                         |     }
    0x0000da90 bfi r3, r2, 0, 1                          |     value_6 = BIT_MASK (0, 1);
                                                         |     value_7 = r2 & value_6;
                                                         |     value_6 = ~value_6;
                                                         |     r3 &= value_6;
                                                         |     r3 |= value_7;
    0x0000da94 strb.w r3, [r5, 0x28]                     |     *((r5 + 0x28)) = r3;
    0x0000da98 movs r3, 4                                |     r3 = 4;
    0x0000da9a str r3, [r5, 4]                           |     *((r5 + 4)) = r3;
    0x0000da9c b 0xdb10                                  |     goto label_21;
    0x0000da9e add r1, sp, 0x20                          |     r1 += var_20h;
    0x0000daa0 blx 0x4450                                |     r0 = fcn_00004450 ();
    0x0000daa4 subs.w r8, r0, 0                          |     r8 = r0 - 0;
                                                         |     if (r8 < r0) {
    0x0000daa8 blt.w 0xdbb8                              |         goto label_25;
                                                         |     }
    0x0000daac ldr r3, [sp, 0x20]                        |     r3 = var_20h;
    0x0000daae cmp.w r3, 0x3e8                           |     
                                                         |     if (r3 >= 0x3e8) {
    0x0000dab2 bhs 0xdbb4                                |         goto label_26;
                                                         |     }
    0x0000dab4 str r3, [r5, 0x24]                        |     *((r5 + 0x24)) = r3;
    0x0000dab6 movs r3, 3                                |     r3 = 3;
    0x0000dab8 str r3, [r5, 4]                           |     *((r5 + 4)) = r3;
    0x0000daba b 0xdb10                                  |     goto label_21;
    0x0000dabc ldr r3, [r5, 0x10]                        |     r3 = *((r5 + 0x10));
                                                         |     if (r3 == 0) {
    0x0000dabe cbnz r3, 0xdb0c                           |         
    0x0000dac0 movs r1, 5                                |         r1 = 5;
    0x0000dac2 blx 0x4024                                |         r0 = fcn_00004024 ();
                                                         |         if (r0 == 0) {
    0x0000dac6 cbz r0, 0xdb0c                            |             goto label_27;
                                                         |         }
    0x0000dac8 mov r0, sb                                |         r0 = sb;
    0x0000daca blx 0x4b58                                |         fcn_00004b58 ();
    0x0000dace str r0, [r5, 0x20]                        |         *((r5 + 0x20)) = r0;
                                                         |         if (r0 != 0) {
    0x0000dad0 cbnz r0, 0xdb0c                           |             goto label_27;
                                                         |         }
    0x0000dad2 ldr r1, [pc, 0x288]                       |         
    0x0000dad4 movw r2, 0x183                            |         r2 = 0x183;
    0x0000dad8 ldr r3, [pc, 0x284]                       |         
    0x0000dada movs r0, 3                                |         r0 = 3;
    0x0000dadc add r1, pc                                |         r1 = 0x1b83e;
    0x0000dade add r3, pc                                |         r3 = 0x1b842;
    0x0000dae0 adds r1, 7                                |         r1 += 7;
    0x0000dae2 blx 0x4bbc                                |         fcn_00004bbc ();
    0x0000dae6 b 0xd898                                  |         goto label_0;
                                                         |         if (r0 == 0) {
    0x0000dae8 cbz r0, 0xdb14                            |             goto label_28;
                                                         |         }
    0x0000daea ldrb r3, [r0]                             |         r3 = *(r0);
                                                         |         if (r3 == 0) {
    0x0000daec cbz r3, 0xdb14                            |             goto label_28;
                                                         |         }
    0x0000daee blx 0x4b58                                |         fcn_00004b58 ();
    0x0000daf2 str r0, [r5, 0x1c]                        |         *((r5 + 0x1c)) = r0;
                                                         |         if (r0 != 0) {
    0x0000daf4 cbnz r0, 0xdb14                           |             goto label_28;
                                                         |         }
    0x0000daf6 ldr r1, [pc, 0x26c]                       |         
    0x0000daf8 movw r2, 0x177                            |         r2 = 0x177;
    0x0000dafc ldr r3, [pc, 0x268]                       |         
    0x0000dafe movs r0, 3                                |         r0 = 3;
    0x0000db00 add r1, pc                                |         r1 = 0x1b86a;
    0x0000db02 add r3, pc                                |         r3 = 0x1b86e;
    0x0000db04 adds r1, 7                                |         r1 += 7;
    0x0000db06 blx 0x4bbc                                |         fcn_00004bbc ();
    0x0000db0a b 0xd898                                  |         goto label_0;
                                                         |     }
                                                         | label_27:
    0x0000db0c movs r3, 2                                |     r3 = 2;
    0x0000db0e str r3, [r5, 4]                           |     *((r5 + 4)) = r3;
                                                         |     do {
                                                         | label_21:
    0x0000db10 movs r0, 0                                |         r0 = 0;
    0x0000db12 b 0xd898                                  |         goto label_0;
                                                         | label_28:
    0x0000db14 movs r3, 1                                |         r3 = 1;
    0x0000db16 str r3, [r5, 4]                           |         *((r5 + 4)) = r3;
    0x0000db18 b 0xdb10                                  |         
                                                         |     } while (1);
                                                         | label_6:
    0x0000db1a ldr r1, [pc, 0x250]                       |     
    0x0000db1c mov.w r2, 0x1cc                           |     r2 = 0x1cc;
    0x0000db20 ldr r3, [pc, 0x24c]                       |     
    0x0000db22 ldr r0, [pc, 0x250]                       |     
    0x0000db24 add r1, pc                                |     r1 = 0x1b896;
    0x0000db26 add r3, pc                                |     r3 = 0x1b89a;
    0x0000db28 adds r1, 7                                |     r1 += 7;
    0x0000db2a add r0, pc                                |     r0 = 0x1b8a4;
    0x0000db2c blx 0x3e4c                                |     fcn_00003e4c ();
                                                         | label_7:
    0x0000db30 ldr r1, [pc, 0x244]                       |     
    0x0000db32 movw r2, 0x1cd                            |     r2 = 0x1cd;
    0x0000db36 ldr r3, [pc, 0x244]                       |     
    0x0000db38 ldr r0, [pc, 0x244]                       |     
    0x0000db3a add r1, pc                                |     r1 = 0x1b8b6;
    0x0000db3c add r3, pc                                |     r3 = 0x1b8be;
    0x0000db3e adds r1, 7                                |     r1 += 7;
    0x0000db40 add r0, pc                                |     r0 = 0x1b8c4;
    0x0000db42 blx 0x3e4c                                |     fcn_00003e4c ();
    0x0000db44 invalid                                   |     
                                                         | label_10:
    0x0000db46 ldr r3, [pc, 0x23c]                       |     
    0x0000db48 movs r1, 0x16                             |     r1 = 0x16;
    0x0000db4a ldr r2, [pc, 0x23c]                       |     
    0x0000db4c movt r1, 0x4000                           |     r1 = (r1 & 0xFFFF) | 0xNaN0000;
    0x0000db50 movs r0, 4                                |     r0 = 4;
    0x0000db52 add r3, pc                                |     r3 = 0x1b8dc;
    0x0000db54 str r3, [sp, 4]                           |     var_4h = r3;
    0x0000db56 add r2, pc                                |     r2 = 0x1b8e4;
    0x0000db58 ldr r3, [pc, 0x230]                       |     
    0x0000db5a adds r2, 7                                |     r2 += 7;
    0x0000db5c add r3, pc                                |     r3 = 0x1b8ec;
    0x0000db5e str r3, [sp]                              |     *(sp) = r3;
    0x0000db60 mov.w r3, 0x16e                           |     r3 = 0x16e;
    0x0000db64 blx 0x43cc                                |     r0 = fcn_000043cc ();
    0x0000db68 cmp r0, 0                                 |     
                                                         |     if (r0 < 0) {
    0x0000db6a blt.w 0xd898                              |         goto label_0;
                                                         |     }
                                                         |     do {
    0x0000db6e mvn r0, 0x55                              |         r0 = ~0x55;
    0x0000db72 b 0xd898                                  |         goto label_0;
                                                         | label_13:
    0x0000db74 blx 0x409c                                |         r0 = fcn_0000409c ();
    0x0000db78 cmp r0, 3                                 |         
                                                         |         if (r0 > 3) {
    0x0000db7a bgt 0xdc66                                |             goto label_29;
                                                         |         }
                                                         | label_1:
    0x0000db7c rsb.w r0, r8, 0                           |         r0 = r8 - ;
    0x0000db80 bic r0, r0, 0x40000000                    |         r0 = BIT_MASK (r0, 0x40000000);
    0x0000db84 rsbs r0, r0, 0                            |         r0 -= ;
                                                         | label_2:
    0x0000db86 cmp r0, 0                                 |         
    0x0000db88 bge 0xdb6e                                |         
                                                         |     } while (r0 >= 0);
    0x0000db8a b 0xd898                                  |     goto label_0;
                                                         | label_22:
    0x0000db8c blx 0x409c                                |     r0 = fcn_0000409c ();
    0x0000db90 cmp r0, 3                                 |     
                                                         |     if (r0 <= 3) {
    0x0000db92 ble 0xdb7c                                |         goto label_1;
                                                         |     }
    0x0000db94 ldr r3, [pc, 0x1f8]                       |     
    0x0000db96 mov r1, r8                                |     r1 = r8;
    0x0000db98 ldr r2, [pc, 0x1f8]                       |     
    0x0000db9a movs r0, 4                                |     r0 = 4;
    0x0000db9c add r3, pc                                |     r3 = 0x1b930;
    0x0000db9e str r3, [sp, 4]                           |     var_4h = r3;
    0x0000dba0 add r2, pc                                |     r2 = 0x1b938;
    0x0000dba2 ldr r3, [pc, 0x1f4]                       |     
    0x0000dba4 adds r2, 7                                |     r2 += 7;
    0x0000dba6 add r3, pc                                |     r3 = 0x1b944;
    0x0000dba8 str r3, [sp]                              |     *(sp) = r3;
    0x0000dbaa mov.w r3, 0x1aa                           |     r3 = 0x1aa;
    0x0000dbae blx 0x43cc                                |     fcn_000043cc ();
    0x0000dbb2 b 0xdb86                                  |     goto label_2;
                                                         | label_26:
    0x0000dbb4 mvn r8, 0x21                              |     r8 = ~0x21;
                                                         | label_25:
    0x0000dbb8 blx 0x409c                                |     r0 = fcn_0000409c ();
    0x0000dbbc cmp r0, 3                                 |     
                                                         |     if (r0 <= 3) {
    0x0000dbbe ble 0xdb7c                                |         goto label_1;
                                                         |     }
    0x0000dbc0 ldr r3, [pc, 0x1d8]                       |     
    0x0000dbc2 mov r1, r8                                |     r1 = r8;
    0x0000dbc4 ldr r2, [pc, 0x1d8]                       |     
    0x0000dbc6 movs r0, 4                                |     r0 = 4;
    0x0000dbc8 add r3, pc                                |     r3 = 0x1b968;
    0x0000dbca str r3, [sp, 4]                           |     var_4h = r3;
    0x0000dbcc add r2, pc                                |     r2 = 0x1b970;
    0x0000dbce ldr r3, [pc, 0x1d4]                       |     
    0x0000dbd0 adds r2, 7                                |     r2 += 7;
    0x0000dbd2 add r3, pc                                |     r3 = 0x1b97c;
    0x0000dbd4 str r3, [sp]                              |     *(sp) = r3;
    0x0000dbd6 mov.w r3, 0x18e                           |     r3 = 0x18e;
    0x0000dbda blx 0x43cc                                |     fcn_000043cc ();
    0x0000dbde b 0xdb86                                  |     goto label_2;
                                                         | label_23:
    0x0000dbe0 blx 0x409c                                |     r0 = fcn_0000409c ();
    0x0000dbe4 cmp r0, 3                                 |     
                                                         |     if (r0 <= 3) {
    0x0000dbe6 ble 0xdb7c                                |         goto label_1;
                                                         |     }
    0x0000dbe8 ldr r3, [pc, 0x1bc]                       |     
    0x0000dbea mov r1, r8                                |     r1 = r8;
    0x0000dbec ldr r2, [pc, 0x1bc]                       |     
    0x0000dbee movs r0, 4                                |     r0 = 4;
    0x0000dbf0 add r3, pc                                |     r3 = 0x1b99c;
    0x0000dbf2 str r3, [sp, 4]                           |     var_4h = r3;
    0x0000dbf4 add r2, pc                                |     r2 = 0x1b9a4;
    0x0000dbf6 ldr r3, [pc, 0x1b8]                       |     
    0x0000dbf8 adds r2, 7                                |     r2 += 7;
    0x0000dbfa add r3, pc                                |     r3 = 0x1b9b0;
    0x0000dbfc str r3, [sp]                              |     *(sp) = r3;
    0x0000dbfe movw r3, 0x1a1                            |     r3 = 0x1a1;
    0x0000dc02 blx 0x43cc                                |     fcn_000043cc ();
    0x0000dc06 b 0xdb86                                  |     goto label_2;
                                                         | label_24:
    0x0000dc08 blx 0x409c                                |     r0 = fcn_0000409c ();
    0x0000dc0c cmp r0, 3                                 |     
                                                         |     if (r0 <= 3) {
    0x0000dc0e ble 0xdb7c                                |         goto label_1;
                                                         |     }
    0x0000dc10 ldr r3, [pc, 0x1a0]                       |     
    0x0000dc12 mov r1, r8                                |     r1 = r8;
    0x0000dc14 ldr r2, [pc, 0x1a0]                       |     
    0x0000dc16 movs r0, 4                                |     r0 = 4;
    0x0000dc18 add r3, pc                                |     r3 = 0x1b9d0;
    0x0000dc1a str r3, [sp, 4]                           |     var_4h = r3;
    0x0000dc1c add r2, pc                                |     r2 = 0x1b9d8;
    0x0000dc1e ldr r3, [pc, 0x19c]                       |     
    0x0000dc20 adds r2, 7                                |     r2 += 7;
    0x0000dc22 add r3, pc                                |     r3 = 0x1b9e4;
    0x0000dc24 str r3, [sp]                              |     *(sp) = r3;
    0x0000dc26 mov.w r3, 0x198                           |     r3 = 0x198;
    0x0000dc2a blx 0x43cc                                |     fcn_000043cc ();
    0x0000dc2e b 0xdb86                                  |     goto label_2;
                                                         | label_17:
    0x0000dc30 mvn r8, 0xb                               |     r8 = ~0xb;
                                                         | label_5:
    0x0000dc34 ldr r0, [r5, 0x38]                        |     r0 = *((r5 + 0x38));
    0x0000dc36 blx 0x4268                                |     empty_or_root ();
    0x0000dc3a blx 0x409c                                |     r0 = fcn_0000409c ();
    0x0000dc3e cmp r0, 2                                 |     
                                                         |     if (r0 <= 2) {
    0x0000dc40 ble.w 0xda18                              |         goto label_3;
                                                         |     }
    0x0000dc44 ldr r3, [r5, 0x38]                        |     r3 = *((r5 + 0x38));
    0x0000dc46 mov r1, r8                                |     r1 = r8;
    0x0000dc48 ldr r2, [pc, 0x174]                       |     
    0x0000dc4a movs r0, 3                                |     r0 = 3;
    0x0000dc4c str r3, [sp, 8]                           |     var_8h = r3;
    0x0000dc4e ldr r3, [pc, 0x174]                       |     
    0x0000dc50 add r2, pc                                |     r2 = 0x1ba14;
    0x0000dc52 adds r2, 7                                |     r2 += 7;
    0x0000dc54 add r3, pc                                |     r3 = 0x1ba1e;
    0x0000dc56 str r3, [sp, 4]                           |     var_4h = r3;
    0x0000dc58 ldr r3, [pc, 0x16c]                       |     
    0x0000dc5a add r3, pc                                |     r3 = 0x1ba26;
    0x0000dc5c str r3, [sp]                              |     *(sp) = r3;
    0x0000dc5e movs r3, 0xf2                             |     r3 = 0xf2;
    0x0000dc60 blx 0x43cc                                |     fcn_000043cc ();
    0x0000dc64 b 0xda18                                  |     goto label_3;
                                                         | label_29:
    0x0000dc66 ldr r3, [pc, 0x164]                       |     
    0x0000dc68 mov r1, r8                                |     r1 = r8;
    0x0000dc6a ldr r2, [pc, 0x164]                       |     
    0x0000dc6c movs r0, 4                                |     r0 = 4;
    0x0000dc6e add r3, pc                                |     r3 = 0x1ba40;
    0x0000dc70 str r3, [sp, 4]                           |     var_4h = r3;
    0x0000dc72 add r2, pc                                |     r2 = 0x1ba48;
    0x0000dc74 ldr r3, [pc, 0x15c]                       |     
    0x0000dc76 adds r2, 7                                |     r2 += 7;
    0x0000dc78 add r3, pc                                |     r3 = 0x1ba50;
    0x0000dc7a str r3, [sp]                              |     *(sp) = r3;
    0x0000dc7c movw r3, 0x1b3                            |     r3 = 0x1b3;
    0x0000dc80 blx 0x43cc                                |     fcn_000043cc ();
    0x0000dc84 b 0xdb86                                  |     goto label_2;
                                                         | label_14:
    0x0000dc86 ldr r0, [r5, 8]                           |     r0 = *((r5 + 8));
    0x0000dc88 add r1, sp, 0x20                          |     r1 += var_20h;
    0x0000dc8a blx 0x4990                                |     r0 = fcn_00004990 ();
    0x0000dc8e cmp r0, 0                                 |     
                                                         |     if (r0 < 0) {
    0x0000dc90 blt 0xdccc                                |         goto label_30;
                                                         |     }
    0x0000dc92 mov r0, r5                                |     r0 = r5;
    0x0000dc94 ldr r2, [sp, 0x80]                        |     r2 = var_80h;
    0x0000dc96 ldr r3, [r0], 0x38                        |     r3 = *(r0);
                                                         |     r0 += 0x38;
    0x0000dc9a movs r1, 1                                |     r1 = 1;
    0x0000dc9c ldr.w r3, [r3, 0x250]                     |     r3 = *((r3 + 0x250));
    0x0000dca0 str r2, [sp, 4]                           |     var_4h = r2;
    0x0000dca2 ldr r2, [sp, 0x20]                        |     r2 = var_20h;
    0x0000dca4 str r2, [sp]                              |     *(sp) = r2;
    0x0000dca6 ldr r2, [pc, 0x130]                       |     
    0x0000dca8 add r2, pc                                |     r2 = 0x1ba86;
    0x0000dcaa blx 0x45a4                                |     r0 = getpid_cached ();
    0x0000dcae cmp r0, 0                                 |     
    0x0000dcb0 it ge                                     |     
                                                         |     if (r0 >= 0) {
    0x0000dcb2 ldrge r0, [r5, 0x38]                      |         r0 = *((r5 + 0x38));
                                                         |         goto label_31;
                                                         |     }
                                                         |     if (r0 >= 0) {
                                                         | label_31:
    0x0000dcb4 bge.w 0xd910                              |         goto label_4;
                                                         |     }
    0x0000dcb8 ldr r1, [pc, 0x120]                       |     
    0x0000dcba movs r2, 0xa8                             |     r2 = 0xa8;
    0x0000dcbc ldr r3, [pc, 0x120]                       |     
    0x0000dcbe movs r0, 3                                |     r0 = 3;
    0x0000dcc0 add r1, pc                                |     r1 = 0x1baa0;
    0x0000dcc2 add r3, pc                                |     r3 = 0x1baa6;
    0x0000dcc4 adds r1, 7                                |     r1 += 7;
    0x0000dcc6 blx 0x4bbc                                |     fcn_00004bbc ();
    0x0000dcca b 0xda18                                  |     goto label_3;
                                                         | label_30:
    0x0000dccc blx 0x409c                                |     r0 = fcn_0000409c ();
    0x0000dcd0 cmp r0, 3                                 |     
                                                         |     if (r0 <= 3) {
    0x0000dcd2 ble.w 0xda18                              |         goto label_3;
                                                         |     }
    0x0000dcd6 blx 0x4918                                |     fcn_00004918 ();
    0x0000dcda ldr r3, [pc, 0x108]                       |     
    0x0000dcdc ldr r2, [pc, 0x108]                       |     
    0x0000dcde add r3, pc                                |     r3 = 0x1bac8;
    0x0000dce0 str r3, [sp, 4]                           |     var_4h = r3;
    0x0000dce2 add r2, pc                                |     r2 = 0x1bace;
    0x0000dce4 ldr r3, [pc, 0x104]                       |     
    0x0000dce6 adds r2, 7                                |     r2 += 7;
    0x0000dce8 add r3, pc                                |     r3 = 0x1bad8;
    0x0000dcea str r3, [sp]                              |     *(sp) = r3;
    0x0000dcec movs r3, 0xa3                             |     r3 = 0xa3;
    0x0000dcee ldr r1, [r0]                              |     r1 = *(r0);
    0x0000dcf0 movs r0, 4                                |     r0 = 4;
    0x0000dcf2 blx 0x43cc                                |     fcn_000043cc ();
    0x0000dcf6 b 0xda18                                  |     goto label_3;
                                                         | label_19:
    0x0000dcf8 blx 0x4918                                |     r0 = fcn_00004918 ();
    0x0000dcfc ldr r0, [r0]                              |     r0 = *(r0);
    0x0000dcfe rsb.w r8, r0, 0                           |     r8 = r0 - ;
    0x0000dd02 b 0xdc34                                  |     goto label_5;
                                                         | label_11:
    0x0000dd04 blx 0x4474                                |     fcn_00004474 ();
                                                         | label_20:
    0x0000dd08 blx 0x409c                                |     r0 = fcn_0000409c ();
    0x0000dd0c cmp r0, 3                                 |     
                                                         |     if (r0 <= 3) {
    0x0000dd0e ble.w 0xda18                              |         goto label_3;
                                                         |     }
    0x0000dd12 ldr r3, [pc, 0xdc]                        |     
    0x0000dd14 mov r1, r5                                |     r1 = r5;
    0x0000dd16 movs r0, 4                                |     r0 = 4;
    0x0000dd18 add r3, pc                                |     r3 = 0x1bb0e;
    0x0000dd1a adds r2, r3, 7                            |     r2 = r3 + 7;
    0x0000dd1c ldr r3, [pc, 0xd4]                        |     
    0x0000dd1e add r3, pc                                |     r3 = 0x1bb16;
    0x0000dd20 str r3, [sp, 4]                           |     var_4h = r3;
    0x0000dd22 ldr r3, [pc, 0xd4]                        |     
    0x0000dd24 add r3, pc                                |     r3 = 0x1bb22;
    0x0000dd26 str r3, [sp]                              |     *(sp) = r3;
    0x0000dd28 movs r3, 0xea                             |     r3 = 0xea;
    0x0000dd2a blx 0x43cc                                |     fcn_000043cc ();
    0x0000dd2e b 0xda18                                  |     goto label_3;
                                                         | label_12:
    0x0000dd30 ldr r0, [pc, 0xc8]                        |     
    0x0000dd32 mov.w r1, 0x1c0                           |     r1 = 0x1c0;
    0x0000dd36 ldr r2, [pc, 0xc8]                        |     
    0x0000dd38 add r0, pc                                |     r0 = 0x1bb38;
    0x0000dd3a add r2, pc                                |     r2 = 0x1bb40;
    0x0000dd3c adds r0, 7                                |     r0 += 7;
    0x0000dd3e blx 0x4960                                |     fcn_00004960 ();
    0x0000dd42 nop                                       |     
    0x0000dd44 invalid                                   |     
    0x00016548 ldr r1, [r5, 0x44]                        |     r1 = *((r5 + 0x44));
    0x0001654a movs r0, 0x65                             |     r0 = 0x65;
    0x0001654c strb r5, [r4, 0xc]                        |     *((r4 + 0xc)) = r5;
    0x0001654e str r0, [r4, 0x60]                        |     *((r4 + 0x60)) = r0;
    0x00016550 strb r7, [r5, 9]                          |     *((r5 + 9)) = r7;
    0x00016552 strb r0, [r4, 8]                          |     *((r4 + 8)) = r0;
    0x00016554 strb r7, [r5, 0x11]                       |     *((r5 + 0x11)) = r7;
    0x00016556 strb r1, [r4, 0x11]                       |     *((r4 + 0x11)) = r1;
    0x00016558 ldr r1, [r5, 0x74]                        |     r1 = *((r5 + 0x74));
    0x0001655a cmp r4, 0x6e                              |     
    0x0001655c strb r0, [r4, 0x10]                       |     *((r4 + 0x10)) = r0;
    0x0001655e ldrb r2, [r6, 5]                          |     r2 = *((r6 + 5));
    0x00016560 ldr r1, [r5, 0x64]                        |     r1 = *((r5 + 0x64));
    0x00016562 movs r0, 0x67                             |     r0 = 0x67;
    0x00016564 ldr r4, [r6, 0x74]                        |     r4 = *((r6 + 0x74));
    0x00016566 ldr r0, [r4, 0x50]                        |     r0 = *((r4 + 0x50));
    0x00016568 strb r7, [r5, 0x19]                       |     *((r5 + 0x19)) = r7;
    0x0001656a movs r0, 0x65                             |     r0 = 0x65;
    0x0001656c strb r1, [r5, 0x11]                       |     *((r5 + 0x11)) = r1;
    0x0001656e ldr r0, [r4, 0x70]                        |     r0 = *((r4 + 0x70));
    0x00016570 strb r5, [r6, 0x11]                       |     *((r6 + 0x11)) = r5;
    0x00016572 ldr r0, [r4, 0x70]                        |     r0 = *((r4 + 0x70));
    0x00016574 movs r0, 0x66                             |     r0 = 0x66;
    0x00016576 ldr r4, [r6, 4]                           |     r4 = *((r6 + 4));
    0x00016578 movs r0, 0x65                             |     r0 = 0x65;
    0x0001657a str r7, [r6, 0x14]                        |     *((r6 + 0x14)) = r7;
    0x0001657c subs r2, 0x79                             |     r2 -= 0x79;
    0x0001657e movs r5, 0x20                             |     r5 = 0x20;
    0x00016580 lsls r5, r5, 1                            |     r5 <<= 1;
    0x00016582 movs r0, r0                               |     
    0x00016584 str r6, [r0, 0x14]                        |     *((r0 + 0x14)) = r6;
    0x00016586 ldr r1, [r5, 0x44]                        |     r1 = *((r5 + 0x44));
    0x00016588 str r5, [r4, 0x44]                        |     *((r4 + 0x44)) = r5;
    0x0001658a strb r0, [r4, 0x10]                       |     *((r4 + 0x10)) = r0;
    0x0001658c movs r0, 0x6f                             |     r0 = 0x6f;
    0x0001658e ldr r5, [r5, 0x74]                        |     r5 = *((r5 + 0x74));
    0x00016590 str r6, [r6, 0x54]                        |     *((r6 + 0x54)) = r6;
    0x00016592 movs r5, 0x20                             |     r5 = 0x20;
    0x00016594 movs r0, 0x73                             |     r0 = 0x73;
    0x00016596 strb r7, [r5, 0x15]                       |     *((r5 + 0x15)) = r7;
    0x00016598 movs r0, 0x74                             |     r0 = 0x74;
    0x0001659a str r7, [r5, 0x64]                        |     *((r5 + 0x64)) = r7;
    0x0001659c strb r0, [r4, 0x10]                       |     *((r4 + 0x10)) = r0;
    0x0001659e str r0, [r5, 0x54]                        |     *((r5 + 0x54)) = r0;
    0x000165a0 strb r0, [r4, 0x1c]                       |     *((r4 + 0x1c)) = r0;
    0x000165a2 ldrb r1, [r4, 5]                          |     r1 = *((r4 + 5));
    0x000165a4 movs r0, 0x2c                             |     r0 = 0x2c;
    0x000165a6 str r1, [r5, 0x74]                        |     *((r5 + 0x74)) = r1;
    0x000165a8 ldr r6, [r5, 0x74]                        |     r6 = *((r5 + 0x74));
    0x000165aa ldr r2, [r6, 0x14]                        |     r2 = *((r6 + 0x14));
    0x000165ac str r6, [r5, 0x74]                        |     *((r5 + 0x74)) = r6;
    0x000165ae movs r0, 0x3a                             |     r0 = 0x3a;
    0x000165b0 ldr r5, [r4, 0x50]                        |     r5 = *((r4 + 0x50));
    0x000165b2 movs r0, r0                               |     
    0x000165b4 strb r3, [r2, 0x15]                       |     *((r2 + 0x15)) = r3;
    0x000165b6 str r3, [r4, 0x34]                        |     *((r4 + 0x34)) = r3;
    0x000165b8 strb r5, [r4, 0xd]                        |     *((r4 + 0xd)) = r5;
    0x000165ba str r3, [r6, 0x64]                        |     *((r6 + 0x64)) = r3;
    0x000165bc ldr r5, [r6, 0x44]                        |     r5 = *((r6 + 0x44));
    0x000165be ldrb r4, [r5, 5]                          |     r4 = *((r5 + 5));
    0x000165c0 ldr r0, [r4, 0x50]                        |     r0 = *((r4 + 0x50));
    0x000165c2 strb r7, [r5, 0x19]                       |     *((r5 + 0x19)) = r7;
    0x000165c4 str r5, [r4, 0x44]                        |     *((r4 + 0x44)) = r5;
    0x000165c6 movs r5, 0x20                             |     r5 = 0x20;
    0x000165c8 movs r0, 0x73                             |     r0 = 0x73;
    0x000165ca strb r7, [r5, 0x15]                       |     *((r5 + 0x15)) = r7;
    0x000165cc movs r0, 0x74                             |     r0 = 0x74;
    0x000165ce str r7, [r5, 0x64]                        |     *((r5 + 0x64)) = r7;
    0x000165d0 strb r0, [r4, 0x10]                       |     *((r4 + 0x10)) = r0;
    0x000165d2 str r0, [r5, 0x54]                        |     *((r5 + 0x54)) = r0;
    0x000165d4 strb r0, [r4, 0x1c]                       |     *((r4 + 0x1c)) = r0;
    0x000165d6 ldrb r1, [r4, 5]                          |     r1 = *((r4 + 5));
    0x000165d8 movs r6, r5                               |     r6 = r5;
    0x000165da movs r0, r0                               |     
    0x000165dc str r6, [r0, 0x14]                        |     *((r0 + 0x14)) = r6;
    0x000165de ldr r1, [r5, 0x44]                        |     r1 = *((r5 + 0x44));
    0x000165e0 str r5, [r4, 0x44]                        |     *((r4 + 0x44)) = r5;
    0x000165e2 strb r0, [r4, 0x10]                       |     *((r4 + 0x10)) = r0;
    0x000165e4 movs r0, 0x6f                             |     r0 = 0x6f;
    0x000165e6 strb r1, [r4, 9]                          |     *((r4 + 9)) = r1;
    0x000165e8 ldr r3, [r4, 4]                           |     r3 = *((r4 + 4));
    0x000165ea strb r1, [r5, 0x19]                       |     *((r5 + 0x19)) = r1;
    0x000165ec movs r0, 0x65                             |     r0 = 0x65;
    0x000165ee ldr r2, [r5, 0x74]                        |     r2 = *((r5 + 0x74));
    0x000165f0 strb r5, [r6, 9]                          |     *((r6 + 9)) = r5;
    0x000165f2 str r6, [r5, 0x14]                        |     *((r5 + 0x14)) = r6;
    0x000165f4 movs r0, 0x6c                             |     r0 = 0x6c;
    0x000165f6 ldr r6, [r4, 0x14]                        |     r6 = *((r4 + 0x14));
    0x000165f8 str r4, [r5, 0x54]                        |     *((r5 + 0x54)) = r4;
    0x000165fa movs r7, 0x20                             |     r7 = 0x20;
    0x000165fc strb r5, [r4, 0xc]                        |     *((r4 + 0xc)) = r5;
    0x000165fe cmp r4, 0x27                              |     
    0x00016600 ldr r0, [r4, 0x10]                        |     r0 = *((r4 + 0x10));
    0x00016602 ldr r7, [r4, 0x64]                        |     r7 = *((r4 + 0x64));
    0x00016604 strb r7, [r5, 9]                          |     *((r5 + 9)) = r7;
    0x00016606 ldr r1, [r5, 0x64]                        |     r1 = *((r5 + 0x64));
    0x00016608 subs r2, 0x67                             |     r2 -= 0x67;
    0x0001660a movs r5, 0x20                             |     r5 = 0x20;
    0x0001660c lsls r5, r5, 1                            |     r5 <<= 1;
    0x0001660e movs r0, r0                               |     
    0x00016610 str r6, [r0, 0x14]                        |     *((r0 + 0x14)) = r6;
    0x00016612 ldr r1, [r5, 0x44]                        |     r1 = *((r5 + 0x44));
    0x00016614 str r5, [r4, 0x44]                        |     *((r4 + 0x44)) = r5;
    0x00016616 strb r0, [r4, 0x10]                       |     *((r4 + 0x10)) = r0;
    0x00016618 movs r0, 0x6f                             |     r0 = 0x6f;
    0x0001661a ldrb r3, [r6, 5]                          |     r3 = *((r6 + 5));
    0x0001661c str r6, [r5, 0x34]                        |     *((r5 + 0x34)) = r6;
    0x0001661e strb r0, [r4, 0xc]                        |     *((r4 + 0xc)) = r0;
    0x00016620 strb r1, [r7, 0xd]                        |     *((r7 + 0xd)) = r1;
    0x00016622 str r4, [r6, 0x54]                        |     *((r6 + 0x54)) = r4;
    0x00016624 movs r0, 0x6d                             |     r0 = 0x6d;
    0x00016626 ldr r2, [r5, 0x74]                        |     r2 = *((r5 + 0x74));
    0x00016628 strb r5, [r6, 9]                          |     *((r6 + 9)) = r5;
    0x0001662a str r6, [r5, 0x14]                        |     *((r5 + 0x14)) = r6;
    0x0001662c cmp r4, 0x6c                              |     
    0x0001662e ldr r0, [r4, 0x10]                        |     r0 = *((r4 + 0x10));
    0x00016630 ldr r7, [r4, 0x64]                        |     r7 = *((r4 + 0x64));
    0x00016632 strb r7, [r5, 9]                          |     *((r5 + 9)) = r7;
    0x00016634 ldr r1, [r5, 0x64]                        |     r1 = *((r5 + 0x64));
    0x00016636 subs r2, 0x67                             |     r2 -= 0x67;
    0x00016638 movs r5, 0x20                             |     r5 = 0x20;
    0x0001663a lsls r5, r5, 1                            |     r5 <<= 1;
    0x0001663c str r6, [r0, 0x14]                        |     *((r0 + 0x14)) = r6;
    0x0001663e ldr r1, [r5, 0x44]                        |     r1 = *((r5 + 0x44));
    0x00016640 str r5, [r4, 0x44]                        |     *((r4 + 0x44)) = r5;
    0x00016642 strb r0, [r4, 0x10]                       |     *((r4 + 0x10)) = r0;
    0x00016644 movs r0, 0x6f                             |     r0 = 0x6f;
    0x00016646 ldrb r3, [r6, 5]                          |     r3 = *((r6 + 5));
    0x00016648 str r6, [r5, 0x34]                        |     *((r5 + 0x34)) = r6;
    0x0001664a strb r0, [r4, 0x14]                       |     *((r4 + 0x14)) = r0;
    0x0001664c str r3, [r6, 0x54]                        |     *((r6 + 0x54)) = r3;
    0x0001664e movs r0, 0x72                             |     r0 = 0x72;
    0x00016650 ldr r2, [r5, 0x74]                        |     r2 = *((r5 + 0x74));
    0x00016652 strb r5, [r6, 9]                          |     *((r6 + 9)) = r5;
    0x00016654 str r6, [r5, 0x14]                        |     *((r5 + 0x14)) = r6;
    0x00016656 cmp r4, 0x6c                              |     
    0x00016658 ldr r0, [r4, 0x10]                        |     r0 = *((r4 + 0x10));
    0x0001665a ldr r7, [r4, 0x64]                        |     r7 = *((r4 + 0x64));
    0x0001665c strb r7, [r5, 9]                          |     *((r5 + 9)) = r7;
    0x0001665e ldr r1, [r5, 0x64]                        |     r1 = *((r5 + 0x64));
    0x00016660 subs r2, 0x67                             |     r2 -= 0x67;
    0x00016662 movs r5, 0x20                             |     r5 = 0x20;
    0x00016664 lsls r5, r5, 1                            |     r5 <<= 1;
    0x00016666 movs r0, r0                               |     
    0x00016668 str r6, [r0, 0x14]                        |     *((r0 + 0x14)) = r6;
    0x0001666a ldr r1, [r5, 0x44]                        |     r1 = *((r5 + 0x44));
    0x0001666c str r5, [r4, 0x44]                        |     *((r4 + 0x44)) = r5;
    0x0001666e strb r0, [r4, 0x10]                       |     *((r4 + 0x10)) = r0;
    0x00016670 movs r0, 0x6f                             |     r0 = 0x6f;
    0x00016672 ldr r4, [r4, 0x14]                        |     r4 = *((r4 + 0x14));
    0x00016674 str r3, [r6, 0x14]                        |     *((r6 + 0x14)) = r3;
    0x00016676 ldr r2, [r4, 0x44]                        |     r2 = *((r4 + 0x44));
    0x00016678 movs r0, 0x65                             |     r0 = 0x65;
    0x0001667a ldrb r3, [r6, 5]                          |     r3 = *((r6 + 5));
    0x0001667c str r6, [r5, 0x34]                        |     *((r5 + 0x34)) = r6;
    0x0001667e strb r0, [r4, 0x10]                       |     *((r4 + 0x10)) = r0;
    0x00016680 ldr r1, [r5, 0x54]                        |     r1 = *((r5 + 0x54));
    0x00016682 strb r5, [r4, 9]                          |     *((r4 + 9)) = r5;
    0x00016684 strb r0, [r4, 0xc]                        |     *((r4 + 0xc)) = r0;
    0x00016686 strb r7, [r5, 0x15]                       |     *((r5 + 0x15)) = r7;
    0x00016688 str r2, [r6, 0x34]                        |     *((r6 + 0x34)) = r2;
    0x0001668a subs r2, 0x65                             |     r2 -= 0x65;
    0x0001668c movs r5, 0x20                             |     r5 = 0x20;
    0x0001668e lsls r5, r5, 1                            |     r5 <<= 1;
    0x00016690 strb r7, [r5, 0xc]                        |     *((r5 + 0xc)) = r7;
    0x00016692 ldr r1, [r7, 0x64]                        |     r1 = *((r7 + 0x64));
    0x00016694 str r3, [r4, 0x54]                        |     *((r4 + 0x54)) = r3;
    0x00016696 lsls r4, r4, 1                            |     r4 <<= 1;
    0x00016698 str r6, [r0, 0x14]                        |     *((r0 + 0x14)) = r6;
    0x0001669a ldr r1, [r5, 0x44]                        |     r1 = *((r5 + 0x44));
    0x0001669c str r5, [r4, 0x44]                        |     *((r4 + 0x44)) = r5;
    0x0001669e strb r0, [r4, 0x10]                       |     *((r4 + 0x10)) = r0;
    0x000166a0 movs r0, 0x6f                             |     r0 = 0x6f;
    0x000166a2 strb r7, [r6, 9]                          |     *((r6 + 9)) = r7;
    0x000166a4 strb r1, [r5, 0x11]                       |     *((r5 + 0x11)) = r1;
    0x000166a6 movs r0, 0x65                             |     r0 = 0x65;
    0x000166a8 strb r5, [r4, 0xc]                        |     *((r4 + 0xc)) = r5;
    0x000166aa movs r0, 0x2c                             |     r0 = 0x2c;
    0x000166ac str r1, [r5, 0x74]                        |     *((r5 + 0x74)) = r1;
    0x000166ae ldr r6, [r5, 0x74]                        |     r6 = *((r5 + 0x74));
    0x000166b0 ldr r2, [r6, 0x14]                        |     r2 = *((r6 + 0x14));
    0x000166b2 str r6, [r5, 0x74]                        |     *((r5 + 0x74)) = r6;
    0x000166b4 movs r0, 0x3a                             |     r0 = 0x3a;
    0x000166b6 ldr r5, [r4, 0x50]                        |     r5 = *((r4 + 0x50));
    0x000166b8 movs r0, r0                               |     
    0x000166ba movs r0, r0                               |     
    0x000166bc movs r0, 0x73                             |     r0 = 0x73;
    0x000166be movs r0, 0x3d                             |     r0 = 0x3d;
    0x000166c0 str r6, [r6, 0x14]                        |     *((r6 + 0x14)) = r6;
    0x000166c2 ldr r2, [r6, 0x44]                        |     r2 = *((r6 + 0x44));
    0x000166c4 ldr r1, [r5, 0x64]                        |     r1 = *((r5 + 0x64));
    0x000166c6 ldrsh r3, [r5, r5]                        |     r3 = *((r5 + r5));
    0x000166c8 str r7, [r4, 0x54]                        |     *((r4 + 0x54)) = r7;
    0x000166ca ldrsh r4, [r6, r5]                        |     r4 = *((r6 + r5));
    0x000166cc strb r5, [r6, 0xd]                        |     *((r6 + 0xd)) = r5;
    0x000166ce strb r5, [r4, 9]                          |     *((r4 + 9)) = r5;
    0x000166d0 str r4, [r4, 0x14]                        |     *((r4 + 0x14)) = r4;
    0x000166d2 str r4, [r6, 0x14]                        |     *((r6 + 0x14)) = r4;
    0x000166d4 ldr r0, [r5, 0x40]                        |     r0 = *((r5 + 0x40));
    0x000166d6 ldr r1, [r5, 0x64]                        |     r1 = *((r5 + 0x64));
    0x000166d8 cmp r1, 0x6b                              |     
    0x000166da movs r0, r0                               |     
    0x000166dc str r6, [r0, 0x14]                        |     *((r0 + 0x14)) = r6;
    0x000166de ldr r1, [r5, 0x44]                        |     r1 = *((r5 + 0x44));
    0x000166e0 str r5, [r4, 0x44]                        |     *((r4 + 0x44)) = r5;
    0x000166e2 strb r0, [r4, 0x10]                       |     *((r4 + 0x10)) = r0;
    0x000166e4 movs r0, 0x6f                             |     r0 = 0x6f;
    0x000166e6 str r5, [r5, 0x14]                        |     *((r5 + 0x14)) = r5;
    0x000166e8 ldr r2, [r6, 0x34]                        |     r2 = *((r6 + 0x34));
    0x000166ea str r0, [r4, 0x50]                        |     *((r4 + 0x50)) = r0;
    0x000166ec str r6, [r6, 0x54]                        |     *((r6 + 0x54)) = r6;
    0x000166ee strb r6, [r5, 0x11]                       |     *((r5 + 0x11)) = r6;
    0x000166f0 strb r0, [r4, 0xc]                        |     *((r4 + 0xc)) = r0;
    0x000166f2 strb r7, [r5, 0x15]                       |     *((r5 + 0x15)) = r7;
    0x000166f4 str r2, [r6, 0x34]                        |     *((r6 + 0x34)) = r2;
    0x000166f6 movs r0, 0x65                             |     r0 = 0x65;
    0x000166f8 strb r1, [r4, 0xd]                        |     *((r4 + 0xd)) = r1;
    0x000166fa ldr r0, [r4, 0x60]                        |     r0 = *((r4 + 0x60));
    0x000166fc ldr r7, [r5, 0x64]                        |     r7 = *((r5 + 0x64));
    0x000166fe str r5, [r5, 0x60]                        |     *((r5 + 0x60)) = r5;
    0x00016700 ldr r4, [r5, 0x74]                        |     r4 = *((r5 + 0x74));
    0x00016702 strb r1, [r4, 0x11]                       |     *((r4 + 0x11)) = r1;
    0x00016704 ldr r1, [r5, 0x64]                        |     r1 = *((r5 + 0x64));
    0x00016706 subs r2, 0x67                             |     r2 -= 0x67;
    0x00016708 movs r5, 0x20                             |     r5 = 0x20;
    0x0001670a lsls r5, r5, 1                            |     r5 <<= 1;
    0x0001670c str r2, [r2, 0x54]                        |     *((r2 + 0x54)) = r2;
    0x0001670e str r3, [r4, 0x54]                        |     *((r4 + 0x54)) = r3;
    0x00016710 strb r1, [r5, 0x19]                       |     *((r5 + 0x19)) = r1;
    0x00016712 str r5, [r4, 0x44]                        |     *((r4 + 0x44)) = r5;
    0x00016714 strh r0, [r4, r4]                         |     *((r4 + r4)) = r0;
    0x00016716 bx sb                                     |     return uint32_t (*sb)() ();
                                                         | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/systemd/systemd-journald @ 0xe860 */
                                                                     | #include <stdint.h>
                                                                     |  
                                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                     |  
    ; (fcn) fcn.0000e860 ()                                          | void fcn_0000e860 (int16_t arg1, int16_t arg2) {
                                                                     |     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;
                                                                     |     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_48h_2;
                                                                     |     int32_t var_4h_3;
                                                                     |     int16_t var_48h;
                                                                     |     int32_t var_4h_2;
                                                                     |     int16_t var_8h_2;
                                                                     |     int16_t var_ch_2;
                                                                     |     int16_t var_10h_2;
                                                                     |     int32_t var_14h_2;
                                                                     |     int32_t var_14h_3;
                                                                     |     int32_t var_1ch_2;
                                                                     |     int32_t var_1ch_3;
                                                                     |     int32_t var_24h_2;
                                                                     |     int16_t var_28h_2;
                                                                     |     int32_t var_28h_3;
                                                                     |     int16_t var_30h_2;
                                                                     |     int32_t var_30h_3;
                                                                     |     int32_t var_40h_2;
                                                                     |     int32_t var_90h;
                                                                     |     int32_t var_90h_2;
                                                                     |     int16_t var_98h;
                                                                     |     int8_t var_99h;
                                                                     |     int8_t var_9ah;
                                                                     |     int8_t var_9bh;
                                                                     |     int8_t var_9ch;
                                                                     |     int8_t var_9dh;
                                                                     |     int8_t var_9eh;
                                                                     |     int8_t var_9fh;
                                                                     |     int8_t var_a0h;
                                                                     |     int8_t var_a1h;
                                                                     |     int8_t var_a2h;
                                                                     |     int8_t var_a3h;
                                                                     |     int8_t var_a4h;
                                                                     |     int8_t var_a5h;
                                                                     |     int8_t var_a6h;
                                                                     |     int8_t var_a7h;
                                                                     |     int32_t var_ach;
                                                                     |     int16_t var_0h_2;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     if (? < ?) {
    0x0000e860 strbhs pc, [r8, -0x8df]                               |         *((r8 - 0x8df)) = pc;
                                                                     |     }
    0x0000e864 ldr.w r3, [pc, 0x548]                                 |     
    0x0000e868 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0000e86c sub sp, 0xfc                                          |     
    0x0000e86e add r2, pc                                            |     r2 += pc;
    0x0000e870 add r7, sp, 0x48                                      |     r7 += var_48h;
    0x0000e872 mov sb, r1                                            |     sb = r1;
    0x0000e874 ldr.w r4, [r0, 0x250]                                 |     r4 = *((r0 + 0x250));
    0x0000e876 rsbs r0, r2, 0                                        |     r0 = r2 - ;
    0x0000e878 str r0, [r7]                                          |     *(r7) = r0;
    0x0000e87a ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0000e87c ldr r3, [r3]                                          |     r3 = *(0xedb0);
    0x0000e87e str.w r3, [r7, 0xac]                                  |     __asm ("str.w r3, [var_ach]");
    0x0000e882 mov.w r3, 0                                           |     r3 = 0;
    0x0000e886 cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x0000e888 beq.w 0xec8e                                          |         goto label_10;
                                                                     |     }
    0x0000e88c mov r0, r4                                            |     r0 = r4;
    0x0000e88e blx 0x479c                                            |     r0 = prioq_ensure_allocated ();
    0x0000e892 add.w r3, r0, 9                                       |     r3 = r0 + 9;
    0x0000e896 cmp.w r3, 0x400000                                    |     
                                                                     |     if (r3 > 0x400000) {
    0x0000e89a bhi.w 0xec5a                                          |         goto label_11;
                                                                     |     }
    0x0000e89e adds r0, 0x10                                         |     r0 += 0x10;
    0x0000e8a0 mov r1, r4                                            |     r1 = r4;
    0x0000e8a2 bic r0, r0, 7                                         |     r0 = BIT_MASK (r0, 7);
    0x0000e8a6 sub.w sp, sp, r0                                      |     
    0x0000e8aa add r3, sp, 0x48                                      |     r3 += var_48h;
    0x0000e8ac mov r0, r3                                            |     r0 = r3;
    0x0000e8ae str r3, [r7, 4]                                       |     var_4h_2 = r3;
    0x0000e8b0 blx 0x4000                                            |     fcn_00004000 ();
    0x0000e8b4 ldr.w r3, [pc, 0x4fc]                                 |     
    0x0000e8b6 adds r4, 0xfc                                         |     r4 += 0xfc;
    0x0000e8b8 mov r2, r0                                            |     r2 = r0;
    0x0000e8ba mov r4, r0                                            |     r4 = r0;
    0x0000e8bc add r3, pc                                            |     r3 = 0x1d674;
    0x0000e8be ldm r3!, {r0, r1}                                     |     r0 = *(r3!);
                                                                     |     r1 = *((r3! + 4));
    0x0000e8c0 ldrb r3, [r3]                                         |     r3 = *(r3);
    0x0000e8c2 str r0, [r2]                                          |     *(r2) = r0;
    0x0000e8c4 str r1, [r2, 4]                                       |     var_4h_3 = r1;
    0x0000e8c6 strb r3, [r4, 8]!                                     |     *((r4 += 8)) = r3;
                                                                     | label_5:
    0x0000e8ca movs r3, 0                                            |     r3 = 0;
    0x0000e8cc ldr r0, [r7, 4]                                       |     r0 = var_4h_2;
    0x0000e8ce strb r3, [r4]                                         |     *(r4) = r3;
    0x0000e8d0 blx 0x4154                                            |     r0 = endswith ();
    0x0000e8d4 mov r6, r0                                            |     r6 = r0;
    0x0000e8d6 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000e8d8 beq.w 0xed5a                                          |         goto label_12;
                                                                     |     }
    0x0000e8dc blx 0x45ec                                            |     r0 = mkdir_parents ();
    0x0000e8e0 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000e8e2 beq.w 0xebc6                                          |         goto label_13;
                                                                     |     }
    0x0000e8e6 ldr.w r8, [pc, 0x4d0]                                 |     
    0x0000e8ea add.w fp, r7, 0x30                                    |     
    0x0000e8ec lsrs r0, r6, 0xc                                      |     r0 = r6 >> 0xc;
    0x0000e8ee add r8, pc                                            |     r8 = 0x1d6ac;
    0x0000e8f0 b 0xe8fe                                              |     
                                                                     |     while (r0 != 0) {
                                                                     | label_0:
    0x0000e8f2 mov r0, r6                                            |         r0 = r6;
    0x0000e8f4 blx 0x45ec                                            |         r0 = mkdir_parents ();
    0x0000e8f8 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0000e8fa beq.w 0xebc6                                          |             goto label_13;
                                                                     |         }
                                                                     | label_2:
    0x0000e8fe add.w r4, r0, 0x13                                    |         r4 = r0 + 0x13;
    0x0000e902 mov r0, r4                                            |         r0 = r4;
    0x0000e904 blx 0x4a8c                                            |         r0 = fcn_00004a8c ();
    0x0000e908 mov r5, r0                                            |         r5 = r0;
    0x0000e90a cmp r0, 0                                             |         
    0x0000e90c bne 0xe8f2                                            |         
                                                                     |     }
    0x0000e90e add.w r3, r7, 0xc                                     |     r3 += var_ch_2;
    0x0000e912 add.w r2, r7, 8                                       |     r2 += var_8h_2;
    0x0000e916 mov r1, r8                                            |     r1 = r8;
    0x0000e918 mov r0, r4                                            |     r0 = r4;
    0x0000e91a blx 0x4344                                            |     r0 = fcn_00004344 ();
    0x0000e91e cmp r0, 2                                             |     
                                                                     |     if (r0 != 2) {
    0x0000e920 bne 0xe8f2                                            |         goto label_0;
                                                                     |     }
    0x0000e922 add.w sl, r7, 0x28                                    |     sl += var_28h_2;
    0x0000e926 mvn r3, 1                                             |     r3 = ~1;
    0x0000e92a strd r3, r5, [r7, 0x28]                               |     __asm ("strd r3, r5, [var_28h_2]");
                                                                     |     do {
                                                                     | label_1:
    0x0000e92e mov r1, sl                                            |         r1 = sl;
    0x0000e930 mov r0, sb                                            |         r0 = sb;
    0x0000e932 blx 0x4338                                            |         r0 = fcn_00004338 ();
    0x0000e936 subs r5, r0, 0                                        |         r5 = r0 - 0;
                                                                     |         if (r5 < r0) {
    0x0000e938 blt.w 0xeb6a                                          |             goto label_14;
                                                                     |         }
    0x0000e93c mov r1, fp                                            |         r1 = fp;
    0x0000e93e blx 0x4990                                            |         r0 = fcn_00004990 ();
    0x0000e942 cmp r0, 0                                             |         
                                                                     |         if (r0 < 0) {
    0x0000e944 blt.w 0xec70                                          |             goto label_15;
                                                                     |         }
    0x0000e948 ldr r3, [r7, 0x40]                                    |         r3 = var_40h_2;
    0x0000e94a and r3, r3, 0xf000                                    |         r3 &= 0xf000;
    0x0000e94e cmp.w r3, 0xc000                                      |         
    0x0000e952 bne 0xe92e                                            |         
                                                                     |     } while (r3 != 0xc000);
    0x0000e954 ldr r1, [r7, 8]                                       |     r1 = var_8h_2;
    0x0000e956 movs r3, 0                                            |     r3 = 0;
    0x0000e958 ldrd r0, r2, [r7, 0x30]                               |     __asm ("ldrd r0, r2, [var_30h_2]");
    0x0000e95c cmp r2, r3                                            |     
    0x0000e95e it eq                                                 |     
                                                                     |     if (r2 != r3) {
    0x0000e960 cmpeq r0, r1                                          |         __asm ("cmpeq r0, r1");
                                                                     |         goto label_16;
                                                                     |     }
                                                                     |     if (r2 != r3) {
                                                                     | label_16:
    0x0000e962 bne 0xe92e                                            |         goto label_1;
                                                                     |     }
    0x0000e964 ldr r1, [r7, 0xc]                                     |     r1 = var_ch_2;
    0x0000e966 ldrd r0, r2, [r7, 0x90]                               |     __asm ("ldrd r0, r2, [var_90h]");
    0x0000e96a cmp r2, r3                                            |     
    0x0000e96c it eq                                                 |     
                                                                     |     if (r2 != r3) {
    0x0000e96e cmpeq r0, r1                                          |         __asm ("cmpeq r0, r1");
                                                                     |         goto label_17;
                                                                     |     }
                                                                     |     if (r2 != r3) {
                                                                     | label_17:
    0x0000e970 bne 0xe92e                                            |         goto label_1;
                                                                     |     }
    0x0000e972 mov r1, r5                                            |     r1 = r5;
    0x0000e974 mov r0, sb                                            |     r0 = sb;
    0x0000e976 blx 0x3ed4                                            |     fcn_00003ed4 ();
    0x0000e97a ldr r3, [r7]                                          |     r3 = *(r7);
    0x0000e97c ldr.w r2, [r3, 0x1a0]                                 |     r2 = *((r3 + 0x1a0));
    0x0000e980 cmp.w r2, 0x1000                                      |     
                                                                     |     if (r2 >= 0x1000) {
    0x0000e984 bhs.w 0xecf4                                          |         goto label_18;
                                                                     |     }
    0x0000e988 ldr r0, [r7]                                          |     r0 = *(r7);
    0x0000e98a add.w r2, r7, 0x10                                    |     r2 += var_10h_2;
    0x0000e98e mov r1, r5                                            |     r1 = r5;
    0x0000e990 bl 0xe2d0                                             |     r0 = fcn_0000e2d0 (r0, r1, r2);
    0x0000e994 cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0000e996 blt.w 0xed1e                                          |         goto label_19;
                                                                     |     }
    0x0000e99a ldr r5, [r7, 0x10]                                    |     r5 = var_10h_2;
    0x0000e99c movs r2, 7                                            |     r2 = 7;
    0x0000e99e movs r3, 0                                            |     r3 = 0;
    0x0000e9a0 strd r3, r3, [r7, 0x14]                               |     __asm ("strd r3, r3, [var_14h_2]");
    0x0000e9a4 str r2, [r5, 4]                                       |     *((r5 + 4)) = r2;
    0x0000e9a6 ldrb.w r2, [r5, 0x28]                                 |     r2 = *((r5 + 0x28));
    0x0000e9aa strd r3, r3, [r7, 0x1c]                               |     __asm ("strd r3, r3, [var_1ch_2]");
    0x0000e9ae str r3, [r7, 0x24]                                    |     var_24h_2 = r3;
    0x0000e9b0 orr r2, r2, 0x10                                      |     r2 |= 0x10;
    0x0000e9b4 strb.w r2, [r5, 0x28]                                 |     *((r5 + 0x28)) = r2;
    0x0000e9b8 str r3, [r7, 0x28]                                    |     var_28h_2 = r3;
    0x0000e9ba ldr r0, [r5, 0x38]                                    |     r0 = *((r5 + 0x38));
    0x0000e9bc cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000e9be beq.w 0xecbe                                          |         goto label_20;
                                                                     |     }
                                                                     | label_6:
    0x0000e9c2 ldr r3, [pc, 0x3f8]                                   |     
    0x0000e9c4 mov r1, r0                                            |     r1 = r0;
    0x0000e9c6 ldr r2, [pc, 0x3f8]                                   |     
    0x0000e9c8 movs r0, 0                                            |     r0 = 0;
    0x0000e9ca str.w sl, [sp, 0x34]                                  |     __asm ("str.w sl, [var_34h]");
    0x0000e9ce add r3, pc                                            |     r3 = 0x1d790;
    0x0000e9d0 str r0, [sp, 0x38]                                    |     var_38h = r0;
    0x0000e9d2 str r3, [sp, 0x30]                                    |     var_30h = r3;
    0x0000e9d4 add r2, pc                                            |     r2 = 0x1d79a;
    0x0000e9d6 ldr r3, [pc, 0x3ec]                                   |     
    0x0000e9d8 add r3, pc                                            |     r3 = 0x1d7a2;
    0x0000e9da str r3, [sp, 0x28]                                    |     var_28h = r3;
    0x0000e9dc ldr r3, [pc, 0x3e8]                                   |     
    0x0000e9de add r3, pc                                            |     r3 = 0x1d7aa;
    0x0000e9e0 str r3, [sp, 0x20]                                    |     var_20h = r3;
    0x0000e9e2 ldr r3, [pc, 0x3e8]                                   |     
    0x0000e9e4 add r3, pc                                            |     r3 = 0x1d7b6;
    0x0000e9e6 str r3, [sp, 0x18]                                    |     var_18h = r3;
    0x0000e9e8 ldr r3, [pc, 0x3e4]                                   |     
    0x0000e9ea add r3, pc                                            |     r3 = 0x1d7be;
    0x0000e9ec str r3, [sp, 0x10]                                    |     var_10h = r3;
    0x0000e9ee ldr r3, [pc, 0x3e4]                                   |     
    0x0000e9f0 add r3, pc                                            |     r3 = 0x1d7ca;
    0x0000e9f2 str r3, [sp, 8]                                       |     var_8h = r3;
    0x0000e9f4 ldr r3, [pc, 0x3e0]                                   |     
    0x0000e9f6 add r3, pc                                            |     r3 = 0x1d7d2;
    0x0000e9f8 str r3, [sp]                                          |     *(sp) = r3;
    0x0000e9fa add.w r3, r5, 0x20                                    |     r3 = r5 + 0x20;
    0x0000e9fe str r3, [sp, 0x2c]                                    |     var_2ch = r3;
    0x0000ea00 add.w r3, r5, 0x1c                                    |     r3 = r5 + 0x1c;
    0x0000ea04 str r3, [sp, 0x24]                                    |     var_24h = r3;
    0x0000ea06 add.w r3, r7, 0x24                                    |     r3 += var_24h_2;
    0x0000ea0a str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0000ea0c add.w r3, r7, 0x20                                    |     r3 += var_1ch_3;
    0x0000ea10 str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x0000ea12 add.w r3, r7, 0x1c                                    |     r3 += var_1ch_2;
    0x0000ea16 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0000ea18 add.w r3, r7, 0x18                                    |     r3 += var_14h_3;
    0x0000ea1a lsls r0, r3, 0xc                                      |     r0 = r3 << 0xc;
    0x0000ea1c str r3, [sp, 4]                                       |     var_4h = r3;
    0x0000ea1e add.w r3, r7, 0x14                                    |     r3 += var_14h_2;
    0x0000ea22 blx 0x4abc                                            |     r0 = fcn_00004abc ();
    0x0000ea26 subs r4, r0, 0                                        |     r4 = r0 - 0;
                                                                     |     if (r4 < r0) {
    0x0000ea28 blt.w 0xed26                                          |         goto label_21;
                                                                     |     }
    0x0000ea2c ldr r0, [r7, 0x14]                                    |     r0 = var_14h_2;
                                                                     |     if (r0 != 0) {
    0x0000ea2e cbz r0, 0xea44                                        |         
    0x0000ea30 mov r1, fp                                            |         r1 = fp;
    0x0000ea32 blx 0x4450                                            |         r0 = fcn_00004450 ();
    0x0000ea36 cmp r0, 0                                             |         
                                                                     |         if (r0 < 0) {
    0x0000ea38 blt 0xea44                                            |             goto label_22;
                                                                     |         }
    0x0000ea3a ldr r3, [r7, 0x30]                                    |         r3 = var_30h_2;
    0x0000ea3c cmp.w r3, 0x3e8                                       |         
    0x0000ea3e ldrb r2, [r7, 0x1d]                                   |         r2 = *((r7 + 0x1d));
    0x0000ea40 it lo                                                 |         
                                                                     |         if (r3 < 0x3e8) {
    0x0000ea42 strlo r3, [r5, 0x24]                                  |             *((r5 + 0x24)) = r3;
                                                                     |             goto label_22;
                                                                     |         }
                                                                     |     }
                                                                     | label_22:
    0x0000ea44 ldr r0, [r7, 0x18]                                    |     r0 = var_14h_3;
                                                                     |     if (r0 != 0) {
    0x0000ea46 cbz r0, 0xea62                                        |         
    0x0000ea48 blx 0x458c                                            |         r0 = asprintf_chk ()
    0x0000ea4c cmp r0, 0                                             |         
                                                                     |         if (r0 < 0) {
    0x0000ea4e blt 0xea62                                            |             goto label_23;
                                                                     |         }
    0x0000ea50 ldrb.w r3, [r5, 0x28]                                 |         r3 = *((r5 + 0x28));
    0x0000ea54 ite ne                                                |         
                                                                     |         if (r0 == 0) {
    0x0000ea56 movne r2, 1                                           |             r2 = 1;
                                                                     |         }
                                                                     |         if (r0 != 0) {
    0x0000ea58 moveq r2, 0                                           |             r2 = 0;
                                                                     |         }
    0x0000ea5a bfi r3, r2, 0, 1                                      |         value_0 = BIT_MASK (0, 1);
                                                                     |         value_1 = r2 & value_0;
                                                                     |         value_0 = ~value_0;
                                                                     |         r3 &= value_0;
                                                                     |         r3 |= value_1;
    0x0000ea5e strb.w r3, [r5, 0x28]                                 |         *((r5 + 0x28)) = r3;
                                                                     |     }
                                                                     | label_23:
    0x0000ea62 ldr r0, [r7, 0x1c]                                    |     r0 = var_1ch_2;
                                                                     |     if (r0 != 0) {
    0x0000ea64 cbz r0, 0xea80                                        |         
    0x0000ea66 blx 0x458c                                            |         r0 = asprintf_chk ()
    0x0000ea6a cmp r0, 0                                             |         
                                                                     |         if (r0 < 0) {
    0x0000ea6c blt 0xea80                                            |             goto label_24;
                                                                     |         }
    0x0000ea6e ldrb.w r3, [r5, 0x28]                                 |         r3 = *((r5 + 0x28));
    0x0000ea72 ite ne                                                |         
                                                                     |         if (r0 == 0) {
    0x0000ea74 movne r2, 1                                           |             r2 = 1;
                                                                     |         }
                                                                     |         if (r0 != 0) {
    0x0000ea76 moveq r2, 0                                           |             r2 = 0;
                                                                     |         }
    0x0000ea78 bfi r3, r2, 1, 1                                      |         value_2 = BIT_MASK (1, 1);
                                                                     |         value_3 = r2 & value_2;
                                                                     |         value_2 = ~value_2;
                                                                     |         r3 &= value_2;
                                                                     |         r3 |= value_3;
    0x0000ea7c strb.w r3, [r5, 0x28]                                 |         *((r5 + 0x28)) = r3;
                                                                     |     }
                                                                     | label_24:
    0x0000ea80 ldr r0, [r7, 0x20]                                    |     r0 = var_1ch_3;
                                                                     |     if (r0 != 0) {
    0x0000ea82 cbz r0, 0xea9e                                        |         
    0x0000ea84 blx 0x458c                                            |         r0 = asprintf_chk ()
    0x0000ea88 cmp r0, 0                                             |         
                                                                     |         if (r0 < 0) {
    0x0000ea8a blt 0xea9e                                            |             goto label_25;
                                                                     |         }
    0x0000ea8c ldrb.w r3, [r5, 0x28]                                 |         r3 = *((r5 + 0x28));
    0x0000ea90 ite ne                                                |         
                                                                     |         if (r0 == 0) {
    0x0000ea92 movne r2, 1                                           |             r2 = 1;
                                                                     |         }
                                                                     |         if (r0 != 0) {
    0x0000ea94 moveq r2, 0                                           |             r2 = 0;
                                                                     |         }
    0x0000ea96 bfi r3, r2, 2, 1                                      |         value_4 = BIT_MASK (2, 1);
                                                                     |         value_5 = r2 & value_4;
                                                                     |         value_4 = ~value_4;
                                                                     |         r3 &= value_4;
                                                                     |         r3 |= value_5;
    0x0000ea9a strb.w r3, [r5, 0x28]                                 |         *((r5 + 0x28)) = r3;
                                                                     |     }
                                                                     | label_25:
    0x0000ea9e ldr r0, [r7, 0x24]                                    |     r0 = var_24h_2;
                                                                     |     if (r0 != 0) {
    0x0000eaa0 cbz r0, 0xeabc                                        |         
    0x0000eaa2 blx 0x458c                                            |         r0 = asprintf_chk ()
    0x0000eaa6 cmp r0, 0                                             |         
                                                                     |         if (r0 < 0) {
    0x0000eaa8 blt 0xeabc                                            |             goto label_26;
                                                                     |         }
    0x0000eaaa ldrb.w r3, [r5, 0x28]                                 |         r3 = *((r5 + 0x28));
    0x0000eaae ite ne                                                |         
                                                                     |         if (r0 == 0) {
    0x0000eab0 movne r2, 1                                           |             r2 = 1;
                                                                     |         }
                                                                     |         if (r0 != 0) {
    0x0000eab2 moveq r2, 0                                           |             r2 = 0;
                                                                     |         }
    0x0000eab4 bfi r3, r2, 3, 1                                      |         value_6 = BIT_MASK (3, 1);
                                                                     |         value_7 = r2 & value_6;
                                                                     |         value_6 = ~value_6;
                                                                     |         r3 &= value_6;
                                                                     |         r3 |= value_7;
    0x0000eab6 lsls r3, r0, 0xf                                      |         r3 = r0 << 0xf;
    0x0000eab8 strb.w r3, [r5, 0x28]                                 |         *((r5 + 0x28)) = r3;
    0x0000eaba adds r0, 0x28                                         |         r0 += 0x28;
                                                                     |     }
                                                                     | label_26:
    0x0000eabc ldr r0, [r7, 0x28]                                    |     r0 = var_28h_2;
    0x0000eabe cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000eac0 beq 0xeb46                                            |         
    0x0000eac2 add.w r1, r7, 0x98                                    |         r1 += var_98h;
    0x0000eac6 blx 0x403c                                            |         r0 = fcn_0000403c ();
    0x0000eaca cmp r0, 0                                             |         
                                                                     |         if (r0 >= 0) {
    0x0000eacc blt 0xeb44                                            |             
    0x0000eace ldrb.w r3, [r7, 0xa7]                                 |             r3 = var_a7h;
    0x0000ead2 add.w r0, r5, 0x50                                    |             r0 = r5 + 0x50;
    0x0000ead6 movs r2, 1                                            |             r2 = 1;
    0x0000ead8 movs r1, 0x2c                                         |             r1 = 0x2c;
    0x0000eada str r3, [sp, 0x40]                                    |             var_40h = r3;
    0x0000eadc ldrb.w r3, [r7, 0xa6]                                 |             r3 = var_a6h;
    0x0000eae0 str r3, [sp, 0x3c]                                    |             var_3ch = r3;
    0x0000eae2 ldrb.w r3, [r7, 0xa5]                                 |             r3 = var_a5h;
    0x0000eae6 str r3, [sp, 0x38]                                    |             var_38h = r3;
    0x0000eae8 ldrb.w r3, [r7, 0xa4]                                 |             r3 = var_a4h;
    0x0000eaec str r3, [sp, 0x34]                                    |             var_34h = r3;
    0x0000eaee ldrb.w r3, [r7, 0xa3]                                 |             r3 = var_a3h;
    0x0000eaf2 str r3, [sp, 0x30]                                    |             var_30h = r3;
    0x0000eaf4 ldrb.w r3, [r7, 0xa2]                                 |             r3 = var_a2h;
    0x0000eaf6 adds r0, 0xa2                                         |             r0 += 0xa2;
    0x0000eaf8 str r3, [sp, 0x2c]                                    |             var_2ch = r3;
    0x0000eafa ldrb.w r3, [r7, 0xa1]                                 |             r3 = var_a1h;
    0x0000eafe str r3, [sp, 0x28]                                    |             var_28h = r3;
    0x0000eb00 ldrb.w r3, [r7, 0xa0]                                 |             r3 = var_a0h;
    0x0000eb04 str r3, [sp, 0x24]                                    |             var_24h = r3;
    0x0000eb06 ldrb.w r3, [r7, 0x9f]                                 |             r3 = var_9fh;
    0x0000eb0a str r3, [sp, 0x20]                                    |             var_20h = r3;
    0x0000eb0c ldrb.w r3, [r7, 0x9e]                                 |             r3 = var_9eh;
    0x0000eb10 str r3, [sp, 0x1c]                                    |             var_1ch = r3;
    0x0000eb12 ldrb.w r3, [r7, 0x9d]                                 |             r3 = var_9dh;
    0x0000eb16 str r3, [sp, 0x18]                                    |             var_18h = r3;
    0x0000eb18 ldrb.w r3, [r7, 0x9c]                                 |             r3 = var_9ch;
    0x0000eb1c str r3, [sp, 0x14]                                    |             var_14h = r3;
    0x0000eb1e ldrb.w r3, [r7, 0x9b]                                 |             r3 = var_9bh;
    0x0000eb22 str r3, [sp, 0x10]                                    |             var_10h = r3;
    0x0000eb24 ldrb.w r3, [r7, 0x9a]                                 |             r3 = var_9ah;
    0x0000eb28 str r3, [sp, 0xc]                                     |             var_ch = r3;
    0x0000eb2a ldrb.w r3, [r7, 0x99]                                 |             r3 = var_99h;
    0x0000eb2e str r3, [sp, 8]                                       |             var_8h = r3;
    0x0000eb30 ldrb.w r3, [r7, 0x98]                                 |             r3 = var_98h;
    0x0000eb34 str r3, [sp, 4]                                       |             var_4h = r3;
    0x0000eb36 ldr r3, [pc, 0x2a4]                                   |             
    0x0000eb38 add r3, pc                                            |             r3 = 0x1d91a;
    0x0000eb3a str r3, [sp]                                          |             *(sp) = r3;
    0x0000eb3c mov.w r3, -1                                          |             r3 = -1;
    0x0000eb40 blx 0x47a8                                            |             config_parse_many ();
                                                                     |         }
                                                                     | label_8:
    0x0000eb44 ldr r0, [r7, 0x28]                                    |         r0 = var_28h_2;
                                                                     |     }
                                                                     | label_7:
    0x0000eb46 blx 0x3e8c                                            |     fcn_00003e8c ();
    0x0000eb4a ldr r0, [r7, 0x24]                                    |     r0 = var_24h_2;
    0x0000eb4c blx 0x3e8c                                            |     fcn_00003e8c ();
    0x0000eb50 ldr r0, [r7, 0x20]                                    |     r0 = var_1ch_3;
    0x0000eb52 blx 0x3e8c                                            |     fcn_00003e8c ();
    0x0000eb56 ldr r0, [r7, 0x1c]                                    |     r0 = var_1ch_2;
    0x0000eb58 blx 0x3e8c                                            |     fcn_00003e8c ();
    0x0000eb5c ldr r0, [r7, 0x18]                                    |     r0 = var_14h_3;
    0x0000eb5e blx 0x3e8c                                            |     fcn_00003e8c ();
    0x0000eb62 ldr r0, [r7, 0x14]                                    |     r0 = var_14h_2;
    0x0000eb64 blx 0x3e8c                                            |     fcn_00003e8c ();
    0x0000eb68 b 0xe8f2                                              |     goto label_0;
                                                                     | label_14:
    0x0000eb6a blx 0x409c                                            |     r0 = fcn_0000409c ();
    0x0000eb6e cmp r0, 6                                             |     
                                                                     |     if (r0 > 6) {
    0x0000eb70 bgt 0xebfc                                            |         goto label_27;
                                                                     |     }
                                                                     | label_3:
    0x0000eb72 mov r0, r6                                            |     r0 = r6;
    0x0000eb74 blx 0x3de8                                            |     dirfd ();
    0x0000eb76 ldmdb r8!, {sb, sp}                                   |     __asm ("ldmdb r8!, {sb, sp}");
    0x0000eb7a mov r1, r4                                            |     r1 = r4;
    0x0000eb7c blx 0x4090                                            |     r0 = fcn_00004090 ();
    0x0000eb80 cmp r0, 0                                             |     
                                                                     |     if (r0 >= 0) {
    0x0000eb82 bge.w 0xe8f2                                          |         goto label_0;
                                                                     |     }
    0x0000eb86 blx 0x4918                                            |     r0 = fcn_00004918 ();
    0x0000eb8a ldr r5, [r0]                                          |     r5 = *(r0);
    0x0000eb8c blx 0x409c                                            |     r0 = fcn_0000409c ();
    0x0000eb90 cmp r0, 3                                             |     
                                                                     |     if (r0 <= 3) {
    0x0000eb92 ble.w 0xe8f2                                          |         goto label_0;
                                                                     |     }
    0x0000eb96 str r4, [sp, 0xc]                                     |     var_ch = r4;
    0x0000eb98 mov r1, r5                                            |     r1 = r5;
    0x0000eb9a ldr r3, [r7, 4]                                       |     r3 = var_4h_2;
    0x0000eb9c movs r0, 4                                            |     r0 = 4;
    0x0000eb9e ldr r2, [pc, 0x240]                                   |     
    0x0000eba0 str r3, [sp, 8]                                       |     var_8h = r3;
    0x0000eba2 ldr r3, [pc, 0x240]                                   |     
    0x0000eba4 add r2, pc                                            |     r2 = 0x1d98a;
    0x0000eba6 adds r2, 7                                            |     r2 += 7;
    0x0000eba8 add r3, pc                                            |     r3 = 0x1d992;
    0x0000ebaa str r3, [sp, 4]                                       |     var_4h = r3;
    0x0000ebac ldr r3, [pc, 0x238]                                   |     
    0x0000ebae add r3, pc                                            |     r3 = 0x1d99a;
    0x0000ebb0 str r3, [sp]                                          |     *(sp) = r3;
    0x0000ebb2 movw r3, 0x377                                        |     r3 = 0x377;
    0x0000ebb6 blx 0x43cc                                            |     fcn_000043cc ();
    0x0000ebba mov r0, r6                                            |     r0 = r6;
    0x0000ebbc blx 0x45ec                                            |     r0 = mkdir_parents ();
    0x0000ebc0 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000ebc2 bne.w 0xe8fe                                          |         goto label_2;
                                                                     |     }
                                                                     | label_13:
    0x0000ebc6 blx 0x4918                                            |     r0 = fcn_00004918 ();
    0x0000ebca ldr r4, [r0]                                          |     r4 = *(r0);
    0x0000ebcc cmp r4, 0                                             |     
    0x0000ebce it le                                                 |     
                                                                     |     if (r4 > 0) {
    0x0000ebd0 movle r4, 0                                           |         r4 = 0;
                                                                     |     }
    0x0000ebd2 bgt 0xec1e                                            |     
                                                                     |     while (1) {
    0x0000ebd4 mov r0, r6                                            |         r0 = r6;
    0x0000ebd6 blx 0x3f94                                            |         fcn_00003f94 ();
                                                                     | label_9:
    0x0000ebda ldr r2, [pc, 0x210]                                   |         
    0x0000ebdc ldr r3, [pc, 0x1d0]                                   |         r3 = *(0xedb0);
    0x0000ebde add r2, pc                                            |         r2 = 0x1d9d0;
    0x0000ebe0 ldr r3, [r2, r3]                                      |         r3 = *(0x1d9d0);
    0x0000ebe2 ldr r2, [r3]                                          |         r2 = *(0x1d9d0);
    0x0000ebe4 ldr.w r3, [r7, 0xac]                                  |         r3 = var_ach;
    0x0000ebe8 eors r2, r3                                           |         r2 ^= r3;
    0x0000ebea mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0000ebee bne.w 0xed56                                          |             goto label_28;
                                                                     |         }
    0x0000ebf2 mov r0, r4                                            |         r0 = r4;
    0x0000ebf4 adds r7, 0xb4                                         |         r7 += 0xb4;
    0x0000ebf6 mov sp, r7                                            |         
    0x0000ebf8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_27:
    0x0000ebfc ldr r3, [pc, 0x1f0]                                   |         
    0x0000ebfe movs r1, 0                                            |         r1 = 0;
    0x0000ec00 ldr r2, [pc, 0x1f0]                                   |         
    0x0000ec02 movs r0, 7                                            |         r0 = 7;
    0x0000ec04 str r4, [sp, 8]                                       |         var_8h = r4;
    0x0000ec06 add r3, pc                                            |         r3 = 0x1d9fa;
    0x0000ec08 str r3, [sp, 4]                                       |         var_4h = r3;
    0x0000ec0a add r2, pc                                            |         r2 = 0x1da02;
    0x0000ec0c ldr r3, [pc, 0x1e8]                                   |         
    0x0000ec0e adds r2, 7                                            |         r2 += 7;
    0x0000ec10 add r3, pc                                            |         r3 = 0x1da0c;
    0x0000ec12 str r3, [sp]                                          |         *(sp) = r3;
    0x0000ec14 movw r3, 0x375                                        |         r3 = 0x375;
    0x0000ec16 adds r3, 0x75                                         |         r3 += 0x75;
    0x0000ec18 blx 0x43cc                                            |         fcn_000043cc ();
    0x0000ec1c b 0xeb72                                              |         goto label_3;
    0x0000ec1e blx 0x409c                                            |         r0 = fcn_0000409c ();
    0x0000ec22 cmp r0, 2                                             |         
    0x0000ec24 itt le                                                |         
                                                                     |         if (r0 <= 2) {
    0x0000ec26 bicle r4, r4, 0x40000000                              |             __asm ("bicle r4, r4, 0x40000000");
                                                                     |         }
                                                                     |         if (r0 <= 2) {
    0x0000ec2a rsbs r4, r4, 0                                        |             r4 -= ;
                                                                     |         }
                                                                     |         if (r0 > 2) {
    0x0000ec2c bgt 0xec38                                            |             goto label_29;
                                                                     |         }
                                                                     | label_4:
    0x0000ec2e cmp r4, 0                                             |         
    0x0000ec30 it ge                                                 |         
                                                                     |         if (r4 < 0) {
    0x0000ec32 mvnge r4, 0x55                                        |             r4 = ~0x55;
                                                                     |         }
    0x0000ec36 b 0xebd4                                              |         
                                                                     |     }
                                                                     | label_29:
    0x0000ec38 ldr r2, [pc, 0x1c0]                                   |     
    0x0000ec3a mov r1, r4                                            |     r1 = r4;
    0x0000ec3c ldr r5, [pc, 0x1c0]                                   |     
    0x0000ec3e movw r3, 0x385                                        |     r3 = 0x385;
    0x0000ec42 ldr r0, [pc, 0x1c0]                                   |     
    0x0000ec44 add r2, pc                                            |     r2 = 0x1da44;
    0x0000ec46 add r5, pc                                            |     r5 = 0x1da4a;
    0x0000ec48 adds r2, 7                                            |     r2 += 7;
    0x0000ec4a add r0, pc                                            |     r0 = 0x1da54;
    0x0000ec4c strd r0, r5, [sp]                                     |     __asm ("strd r0, r5, [sp]");
    0x0000ec50 movs r0, 3                                            |     r0 = 3;
    0x0000ec52 blx 0x43cc                                            |     r0 = fcn_000043cc ();
    0x0000ec56 mov r4, r0                                            |     r4 = r0;
    0x0000ec58 b 0xec2e                                              |     goto label_4;
                                                                     | label_11:
    0x0000ec5a ldr r1, [pc, 0x1ac]                                   |     
    0x0000ec5c movw r2, 0x356                                        |     r2 = 0x356;
    0x0000ec60 ldr r3, [pc, 0x1a8]                                   |     
    0x0000ec62 ldr r0, [pc, 0x1ac]                                   |     
    0x0000ec64 add r1, pc                                            |     r1 = 0x1da72;
    0x0000ec66 add r3, pc                                            |     r3 = 0x1da76;
    0x0000ec68 adds r1, 7                                            |     r1 += 7;
    0x0000ec6a add r0, pc                                            |     r0 = 0x1da80;
    0x0000ec6c blx 0x3e4c                                            |     fcn_00003e4c ();
                                                                     | label_15:
    0x0000ec70 blx 0x4918                                            |     r0 = fcn_00004918 ();
    0x0000ec74 ldr r5, [r0]                                          |     r5 = *(r0);
    0x0000ec76 blx 0x409c                                            |     r0 = fcn_0000409c ();
    0x0000ec7a cmp r0, 2                                             |     
                                                                     |     if (r0 <= 2) {
    0x0000ec7c bgt 0xec96                                            |         
    0x0000ec7e eor.w r4, r5, r5, asr 31                              |         r4 = r5 ^ (r5 >> 31);
    0x0000ec82 sub.w r4, r4, r5, asr 31                              |         r4 -= (r5 >> 31);
    0x0000ec86 bic r4, r4, 0x40000000                                |         r4 = BIT_MASK (r4, 0x40000000);
    0x0000ec8a rsbs r4, r4, 0                                        |         r4 -= ;
    0x0000ec8c b 0xec2e                                              |         goto label_4;
                                                                     | label_10:
    0x0000ec8e sub sp, 8                                             |         
    0x0000ec90 add r4, sp, 0x48                                      |         r4 += var_48h_2;
    0x0000ec92 str r4, [r7, 4]                                       |         var_4h_2 = r4;
    0x0000ec94 b 0xe8ca                                              |         goto label_5;
                                                                     |     }
    0x0000ec96 ldr r2, [pc, 0x17c]                                   |     
    0x0000ec98 mov r1, r5                                            |     r1 = r5;
    0x0000ec9a ldr r3, [pc, 0x17c]                                   |     
    0x0000ec9c movs r0, 3                                            |     r0 = 3;
    0x0000ec9e ldr.w ip, [pc, 0x17c]                                 |     
    0x0000eca2 add r2, pc                                            |     r2 = 0x1dabc;
    0x0000eca4 str r4, [sp, 8]                                       |     var_8h = r4;
    0x0000eca6 add r3, pc                                            |     r3 = 0x1dac4;
    0x0000eca8 adds r2, 7                                            |     r2 += 7;
    0x0000ecaa add ip, pc                                            |     ip = 0x1dacc;
    0x0000ecac str r3, [sp, 4]                                       |     var_4h = r3;
    0x0000ecae str.w ip, [sp]                                        |     __asm ("str.w ip, [sp]");
    0x0000ecb2 movw r3, 0x36b                                        |     r3 = 0x36b;
    0x0000ecb6 blx 0x43cc                                            |     r0 = fcn_000043cc ();
    0x0000ecba mov r4, r0                                            |     r4 = r0;
    0x0000ecbc b 0xec2e                                              |     goto label_4;
                                                                     | label_20:
    0x0000ecbe ldr r2, [r5]                                          |     r2 = *(r5);
    0x0000ecc0 mov r3, r4                                            |     r3 = r4;
    0x0000ecc2 ldr.w r1, [r2, 0x250]                                 |     r1 = *((r2 + 0x250));
    0x0000ecc6 mov.w r2, -1                                          |     r2 = -1;
    0x0000ecca str r2, [sp]                                          |     *(sp) = r2;
    0x0000eccc ldr r2, [pc, 0x150]                                   |     
    0x0000ecce add r2, pc                                            |     r2 = 0x1daf2;
    0x0000ecd0 blx 0x4598                                            |     journal_file_copy_entry ();
    0x0000ecd4 str r0, [r5, 0x38]                                    |     *((r5 + 0x38)) = r0;
    0x0000ecd6 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000ecd8 bne.w 0xe9c2                                          |         goto label_6;
                                                                     |     }
    0x0000ecdc ldr r1, [pc, 0x144]                                   |     
    0x0000ecde movw r2, 0x2fd                                        |     r2 = 0x2fd;
    0x0000ece2 ldr r3, [pc, 0x144]                                   |     
    0x0000ece4 movs r0, 3                                            |     r0 = 3;
    0x0000ece6 add r1, pc                                            |     r1 = 0x1db0e;
    0x0000ece8 adds r1, 7                                            |     r1 += 7;
    0x0000ecea add r3, pc                                            |     r3 = 0x1db18;
    0x0000ecec blx 0x4bbc                                            |     fcn_00004bbc ();
    0x0000ecf0 ldr r0, [r7, 0x28]                                    |     r0 = var_28h_2;
    0x0000ecf2 b 0xeb46                                              |     goto label_7;
                                                                     | label_18:
    0x0000ecf4 blx 0x409c                                            |     r0 = fcn_0000409c ();
    0x0000ecf8 cmp r0, 3                                             |     
    0x0000ecfa mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r0 > 3) {
    0x0000ecfe ble 0xed1e                                            |         
    0x0000ed00 mov r1, r3                                            |         r1 = r3;
    0x0000ed02 ldr r3, [pc, 0x128]                                   |         
    0x0000ed04 ldr r2, [pc, 0x128]                                   |         
    0x0000ed06 movs r0, 4                                            |         r0 = 4;
    0x0000ed08 add r3, pc                                            |         r3 = 0x1db3a;
    0x0000ed0a str r3, [sp, 4]                                       |         var_4h = r3;
    0x0000ed0c add r2, pc                                            |         r2 = 0x1db40;
    0x0000ed0e ldr r3, [pc, 0x124]                                   |         
    0x0000ed10 adds r2, 7                                            |         r2 += 7;
    0x0000ed12 add r3, pc                                            |         r3 = 0x1db4c;
    0x0000ed14 str r3, [sp]                                          |         *(sp) = r3;
    0x0000ed16 mov.w r3, 0x340                                       |         r3 = 0x340;
    0x0000ed1a blx 0x43cc                                            |         fcn_000043cc ();
                                                                     |     }
                                                                     | label_19:
    0x0000ed1e mov r0, r5                                            |     r0 = r5;
    0x0000ed20 blx 0x4414                                            |     fcn_00004414 ();
    0x0000ed24 b 0xe8f2                                              |     goto label_0;
                                                                     | label_21:
    0x0000ed26 blx 0x409c                                            |     r0 = fcn_0000409c ();
    0x0000ed2a cmp r0, 2                                             |     
                                                                     |     if (r0 <= 2) {
    0x0000ed2c ble.w 0xeb44                                          |         goto label_8;
                                                                     |     }
    0x0000ed30 ldr r3, [r5, 0x38]                                    |     r3 = *((r5 + 0x38));
    0x0000ed32 mov r1, r4                                            |     r1 = r4;
    0x0000ed34 ldr r2, [pc, 0x100]                                   |     
    0x0000ed36 movs r0, 3                                            |     r0 = 3;
    0x0000ed38 str r3, [sp, 8]                                       |     var_8h = r3;
    0x0000ed3a ldr r3, [pc, 0x100]                                   |     
    0x0000ed3c add r2, pc                                            |     r2 = 0x1db78;
    0x0000ed3e adds r2, 7                                            |     r2 += 7;
    0x0000ed40 add r3, pc                                            |     r3 = 0x1db82;
    0x0000ed42 str r3, [sp, 4]                                       |     var_4h = r3;
    0x0000ed44 ldr r3, [pc, 0xf8]                                    |     
    0x0000ed46 add r3, pc                                            |     r3 = 0x1db8a;
    0x0000ed48 str r3, [sp]                                          |     *(sp) = r3;
    0x0000ed4a movw r3, 0x30a                                        |     r3 = 0x30a;
    0x0000ed4e blx 0x43cc                                            |     fcn_000043cc ();
    0x0000ed52 ldr r0, [r7, 0x28]                                    |     r0 = var_28h_2;
    0x0000ed54 b 0xeb46                                              |     goto label_7;
                                                                     | label_28:
    0x0000ed56 blx 0x4474                                            |     fcn_00004474 ();
                                                                     | label_12:
    0x0000ed5a blx 0x4918                                            |     r0 = fcn_00004918 ();
    0x0000ed5e ldr r4, [r0]                                          |     r4 = *(r0);
    0x0000ed60 cmp r4, 2                                             |     
                                                                     |     if (r4 == 2) {
    0x0000ed62 beq 0xed82                                            |         goto label_30;
                                                                     |     }
    0x0000ed64 blx 0x409c                                            |     r0 = fcn_0000409c ();
    0x0000ed68 cmp r0, 3                                             |     
                                                                     |     if (r0 > 3) {
    0x0000ed6a bgt 0xed86                                            |         goto label_31;
                                                                     |     }
    0x0000ed6c cmp r4, 0                                             |     
    0x0000ed6e it lt                                                 |     
                                                                     |     if (r4 < 0) {
    0x0000ed70 rsblt r4, r4, 0                                       |         __asm ("rsblt r4, r4, 0");
                                                                     |     }
    0x0000ed72 bic r4, r4, 0x40000000                                |     r4 = BIT_MASK (r4, 0x40000000);
    0x0000ed76 rsbs r4, r4, 0                                        |     r4 -= ;
                                                                     |     do {
    0x0000ed78 cmp r4, 0                                             |         
    0x0000ed7a it ge                                                 |         
                                                                     |         if (r4 < 0) {
    0x0000ed7c mvnge r4, 0x55                                        |             r4 = ~0x55;
                                                                     |         }
    0x0000ed80 b 0xebda                                              |         goto label_9;
                                                                     | label_30:
    0x0000ed82 mov r4, r6                                            |         r4 = r6;
    0x0000ed84 b 0xebda                                              |         goto label_9;
                                                                     | label_31:
    0x0000ed86 ldr r2, [pc, 0xbc]                                    |         
    0x0000ed88 mov r1, r4                                            |         r1 = r4;
    0x0000ed8a ldr r0, [pc, 0xbc]                                    |         
    0x0000ed8c mov.w r3, 0x35c                                       |         r3 = 0x35c;
    0x0000ed90 ldr r5, [pc, 0xb8]                                    |         
    0x0000ed92 ldr r4, [r7, 4]                                       |         r4 = var_4h_2;
    0x0000ed94 add r2, pc                                            |         r2 = 0x1dbde;
    0x0000ed96 add r0, pc                                            |         r0 = 0x1dbe4;
    0x0000ed98 adds r2, 7                                            |         r2 += 7;
    0x0000ed9a add r5, pc                                            |         r5 = 0x1dbea;
    0x0000ed9c str r0, [sp, 4]                                       |         var_4h = r0;
    0x0000ed9e str r4, [sp, 8]                                       |         var_8h = r4;
    0x0000eda0 movs r0, 4                                            |         r0 = 4;
    0x0000eda2 str r5, [sp]                                          |         *(sp) = r5;
    0x0000eda4 blx 0x43cc                                            |         r0 = fcn_000043cc ();
    0x0000eda8 mov r4, r0                                            |         r4 = r0;
    0x0000edaa b 0xed78                                              |         
                                                                     |     } while (1);
                                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/systemd/systemd-journald @ 0x12360 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00012360 ()                                  | void fcn_00012360 (int16_t arg_2d8h, 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_10h;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_18h;
                                                             |     int16_t var_1ch;
                                                             |     int16_t var_20h;
                                                             |     int16_t var_48h;
                                                             |     int16_t var_58h;
                                                             |     int16_t var_74h;
                                                             |     int16_t var_78h;
                                                             |     int16_t var_98h;
                                                             |     int16_t var_c8h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00012360 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00012364 mov r6, r2                                    |     r6 = r2;
    0x00012366 ldr r2, [pc, 0x2ac]                           |     
    0x00012368 mov r5, r3                                    |     r5 = r3;
    0x0001236a sub sp, 0x78                                  |     
    0x0001236c ldr r3, [pc, 0x2a8]                           |     r3 = *(0x12618);
    0x0001236e add r2, pc                                    |     r2 = 0x24988;
    0x00012370 ldr.w r8, [sp, 0x98]                          |     r8 = var_98h;
    0x00012374 ldr r3, [r2, r3]                              |     
    0x00012376 movs r2, 0                                    |     r2 = 0;
    0x00012378 ldr r3, [r3]                                  |     r3 = *(0x24988);
    0x0001237a str r3, [sp, 0x74]                            |     var_74h = r3;
    0x0001237c mov.w r3, 0                                   |     r3 = 0;
    0x00012380 str r2, [sp, 0x14]                            |     var_14h = r2;
    0x00012382 cmp r0, 0                                     |     
                                                             |     if (var_0h == ) {
    0x00012384 beq.w 0x12596                                 |         goto label_8;
                                                             |     }
    0x00012388 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x0001238a beq.w 0x125aa                                 |         goto label_9;
                                                             |     }
    0x0001238e ldr.w r3, [r0, 0x1b4]                         |     r3 = *(var_0hx1b4);
    0x00012392 and r1, r1, 7                                 |     r1 &= 7;
    0x00012396 mov r4, r0                                    |     r4 = r0;
    0x00012398 cmp r1, r3                                    |     
    0x0001239a it gt                                         |     
                                                             |     if (r1 <= r3) {
    0x0001239c movgt r4, -1                                  |         r4 = -1;
                                                             |     }
    0x000123a0 ble 0x123ca                                   |     
                                                             |     while (r0 >= 0) {
                                                             | label_0:
    0x000123a2 mov r0, r4                                    |         r0 = r4;
    0x000123a4 blx 0x4414                                    |         fcn_00004414 ();
    0x000123a8 ldr r0, [sp, 0x14]                            |         r0 = var_14h;
    0x000123aa blx 0x3e8c                                    |         fcn_00003e8c ();
    0x000123ae ldr r2, [pc, 0x26c]                           |         
    0x000123b0 ldr r3, [pc, 0x264]                           |         r3 = *(0x12618);
    0x000123b2 add r2, pc                                    |         r2 = 0x249d4;
    0x000123b4 ldr r3, [r2, r3]                              |         r3 = *(0x249d4);
    0x000123b6 ldr r2, [r3]                                  |         r2 = *(0x249d4);
    0x000123b8 ldr r3, [sp, 0x74]                            |         r3 = var_74h;
    0x000123ba eors r2, r3                                   |         r2 ^= r3;
    0x000123bc mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x000123c0 bne.w 0x1260e                                 |             goto label_10;
                                                             |         }
    0x000123c4 add sp, 0x78                                  |         
    0x000123c6 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
    0x000123ca ldr.w sb, [pc, 0x254]                         |         
    0x000123ce add sb, pc                                    |         sb = 0x249f4;
    0x000123d0 ldr.w r7, [sb]                                |         r7 = *(0x249f4);
    0x000123d4 cmp r7, 0                                     |         
                                                             |         if (r7 < 0) {
    0x000123d6 blt.w 0x125be                                 |             goto label_11;
                                                             |         }
                                                             | label_6:
    0x000123da cmp r7, 0                                     |         
                                                             |         if (r7 != 0) {
    0x000123dc bne 0x124da                                   |             goto label_12;
                                                             |         }
                                                             | label_7:
    0x000123de movs r7, 0                                    |         r7 = 0;
                                                             | label_4:
    0x000123e0 cmp.w r8, 0                                   |         
                                                             |         if (r8 == 0) {
    0x000123e4 beq.w 0x12556                                 |             goto label_13;
                                                             |         }
    0x000123e8 ldr.w r0, [r8]                                |         r0 = *(r8);
    0x000123ec cmp r6, 0                                     |         
                                                             |         if (r6 == 0) {
    0x000123ee beq.w 0x1252a                                 |             goto label_14;
                                                             |         }
    0x000123f2 ldr r3, [pc, 0x230]                           |         
    0x000123f4 add.w sb, sp, 0x48                            |         sb += var_48h;
    0x000123f8 str r0, [sp, 4]                               |         var_4h = r0;
    0x000123fa movs r2, 1                                    |         r2 = 1;
    0x000123fc mov r0, sb                                    |         r0 = sb;
    0x000123fe add r3, pc                                    |         r3 = 0x24a28;
    0x00012400 str r3, [sp]                                  |         *(sp) = r3;
    0x00012402 movs r3, 0x10                                 |         r3 = 0x10;
    0x00012404 mov r1, r3                                    |         r1 = r3;
    0x00012406 blx 0x47a8                                    |         config_parse_many ();
                                                             | label_2:
    0x0001240a mov r0, r6                                    |         r0 = r6;
    0x0001240c blx 0x479c                                    |         prioq_ensure_allocated ();
    0x00012410 add r3, sp, 0x78                              |         r3 += var_78h;
    0x00012412 add.w r3, r3, r7, lsl 3                       |         r3 += (r7 << 3);
    0x00012416 adds r7, 1                                    |         r7++;
    0x00012418 strd r6, r0, [r3, -0x58]                      |         __asm ("strd r6, r0, [r3, -0x58]");
                                                             | label_1:
    0x0001241c mov r0, sb                                    |         r0 = sb;
    0x0001241e add.w r8, r7, 1                               |         r8 = r7 + 1;
    0x00012422 blx 0x479c                                    |         prioq_ensure_allocated ();
    0x00012426 add r3, sp, 0x78                              |         r3 += var_78h;
    0x00012428 add.w r7, r3, r7, lsl 3                       |         r7 = r3 + (r7 << 3);
    0x0001242c strd sb, r0, [r7, -0x58]                      |         __asm ("strd sb, r0, [r7, -0x58]");
                                                             | label_3:
    0x00012430 mov r0, r5                                    |         r0 = r5;
    0x00012432 blx 0x479c                                    |         prioq_ensure_allocated ();
    0x00012436 ldr r2, [pc, 0x1f0]                           |         
    0x00012438 add r3, sp, 0x78                              |         r3 += var_78h;
    0x0001243a add.w r3, r3, r8, lsl 3                       |         r3 += (r8 << 3);
    0x0001243e ldr.w r6, [r4, 0x1a4]                         |         r6 = *((r4 + 0x1a4));
    0x00012442 add r2, pc                                    |         r2 = 0x24a70;
    0x00012444 str r0, [r3, -0x54]                           |         *((r3 - 0x54)) = r0;
    0x00012448 adds r2, 8                                    |         r2 += 8;
    0x0001244a str r5, [r3, -0x58]                           |         *((r3 - 0x58)) = r5;
    0x0001244e add r3, sp, 0x78                              |         r3 += var_78h;
    0x00012450 ldm.w r2, {r0, r1}                            |         r0 = *(r2);
                                                             |         r1 = *((r2 + 4));
    0x00012454 add.w r3, r3, r8, lsl 3                       |         r3 += (r8 << 3);
    0x00012458 subs r3, 0x50                                 |         r3 -= 0x50;
    0x0001245a stm.w r3, {r0, r1}                            |         *(r3) = r0;
                                                             |         *((r3 + 4)) = r1;
    0x0001245e cmp r6, 0                                     |         
                                                             |         if (r6 == 0) {
    0x00012460 beq.w 0x12590                                 |             goto label_15;
                                                             |         }
                                                             | label_5:
    0x00012464 movw r1, 0x101                                |         
    0x00012468 mov r0, r6                                    |         r0 = r6;
    0x0001246a movt r1, 8                                    |         r1 = 0x80101;
    0x0001246e blx 0x4b04                                    |         r0 = fcn_00004b04 ();
    0x00012472 subs r4, r0, 0                                |         r4 = r0 - 0;
                                                             |         if (r4 < r0) {
    0x00012474 blt 0x124b0                                   |             goto label_16;
                                                             |         }
    0x00012476 add.w r2, r8, 2                               |         r2 = r8 + 2;
    0x0001247a add r1, sp, 0x20                              |         r1 += var_20h;
    0x0001247c blx 0x499c                                    |         r0 = fcn_0000499c ();
    0x00012480 cmp r0, 0                                     |         
    0x00012482 bge 0x123a2                                   |         
                                                             |     }
    0x00012484 blx 0x409c                                    |     r0 = fcn_0000409c ();
    0x00012488 cmp r0, 6                                     |     
                                                             |     if (r0 <= 6) {
    0x0001248a ble 0x123a2                                   |         goto label_0;
                                                             |     }
    0x0001248c blx 0x4918                                    |     fcn_00004918 ();
    0x00012490 ldr r2, [pc, 0x198]                           |     
    0x00012492 ldr r1, [r0]                                  |     r1 = *(r0);
    0x00012494 ldr r3, [pc, 0x198]                           |     
    0x00012496 ldr r0, [pc, 0x19c]                           |     
    0x00012498 add r2, pc                                    |     r2 = 0x24ac8;
    0x0001249a adds r2, 7                                    |     r2 += 7;
    0x0001249c str r6, [sp, 8]                               |     var_8h = r6;
    0x0001249e add r3, pc                                    |     r3 = 0x24ad2;
    0x000124a0 add r0, pc                                    |     r0 = 0x24ada;
    0x000124a2 str r3, [sp, 4]                               |     var_4h = r3;
    0x000124a4 str r0, [sp]                                  |     *(sp) = r0;
    0x000124a6 movs r3, 0x66                                 |     r3 = 0x66;
    0x000124a8 movs r0, 7                                    |     r0 = 7;
    0x000124aa blx 0x43cc                                    |     fcn_000043cc ();
    0x000124ae b 0x123a2                                     |     goto label_0;
                                                             | label_16:
    0x000124b0 blx 0x409c                                    |     r0 = fcn_0000409c ();
    0x000124b4 cmp r0, 6                                     |     
                                                             |     if (r0 <= 6) {
    0x000124b6 ble.w 0x123a2                                 |         goto label_0;
                                                             |     }
    0x000124ba ldr r2, [pc, 0x17c]                           |     
    0x000124bc mov r1, r4                                    |     r1 = r4;
    0x000124be ldr r3, [pc, 0x17c]                           |     
    0x000124c0 ldr r0, [pc, 0x17c]                           |     
    0x000124c2 add r2, pc                                    |     r2 = 0x24b00;
    0x000124c4 str r6, [sp, 8]                               |     var_8h = r6;
    0x000124c6 add r3, pc                                    |     r3 = 0x24b08;
    0x000124c8 adds r2, 7                                    |     r2 += 7;
    0x000124ca add r0, pc                                    |     r0 = 0x24b0e;
    0x000124cc str r3, [sp, 4]                               |     var_4h = r3;
    0x000124ce str r0, [sp]                                  |     *(sp) = r0;
    0x000124d0 movs r3, 0x61                                 |     r3 = 0x61;
    0x000124d2 movs r0, 7                                    |     r0 = 7;
    0x000124d4 blx 0x43cc                                    |     fcn_000043cc ();
    0x000124d8 b 0x123a2                                     |     goto label_0;
                                                             | label_12:
    0x000124da add r1, sp, 0x18                              |     r1 += var_18h;
    0x000124dc movs r0, 1                                    |     r0 = 1;
    0x000124de blx 0x42b4                                    |     r0 = fcn_000042b4 ();
    0x000124e2 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000124e4 bne.w 0x125fa                                 |         goto label_17;
                                                             |     }
    0x000124e8 ldr r0, [sp, 0x1c]                            |     r0 = var_1ch;
    0x000124ea mov.w r2, 0x3e8                               |     r2 = 0x3e8;
    0x000124ee movs r3, 0                                    |     r3 = 0;
    0x000124f0 add r7, sp, 0x58                              |     r7 += var_58h;
    0x000124f2 asrs r1, r0, 0x1f                             |     r1 = r0 >> 0x1f;
    0x000124f4 bl 0x15048                                    |     fcn_00015048 (r0, r1, r2, r3);
    0x000124f8 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x000124fa movs r2, 1                                    |     r2 = 1;
    0x000124fc strd r0, r1, [sp, 8]                          |     __asm ("strd r0, r1, [sp, 8]");
    0x00012500 mov r0, r7                                    |     r0 = r7;
    0x00012502 str r3, [sp, 4]                               |     var_4h = r3;
    0x00012504 ldr r3, [pc, 0x13c]                           |     
    0x00012506 add r3, pc                                    |     r3 = 0x24b4e;
    0x00012508 str r3, [sp]                                  |     *(sp) = r3;
    0x0001250a movs r3, 0x19                                 |     r3 = 0x19;
    0x0001250c mov r1, r3                                    |     r1 = r3;
    0x0001250e blx 0x47a8                                    |     r0 = config_parse_many ();
    0x00012512 cmp r0, 0x18                                  |     
                                                             |     if (r0 <= 0x18) {
    0x00012514 ble 0x12582                                   |         goto label_18;
                                                             |     }
    0x00012516 ldr r1, [pc, 0x130]                           |     
    0x00012518 movs r2, 0x3b                                 |     r2 = 0x3b;
    0x0001251a ldr r3, [pc, 0x130]                           |     
    0x0001251c ldr r0, [pc, 0x130]                           |     
    0x0001251e add r1, pc                                    |     r1 = 0x24b6c;
    0x00012520 add r3, pc                                    |     r3 = 0x24b72;
    0x00012522 adds r1, 7                                    |     r1 += 7;
    0x00012524 add r0, pc                                    |     r0 = 0x24b78;
    0x00012526 blx 0x3e4c                                    |     fcn_00003e4c ();
                                                             | label_14:
    0x0001252a add r1, sp, 0x14                              |     r1 += var_14h;
    0x0001252c add.w sb, sp, 0x48                            |     sb += var_48h;
    0x00012530 blx 0x4120                                    |     fcn_00004120 ();
    0x00012534 ldr.w r3, [r8]                                |     r3 = *(r8);
    0x00012538 movs r2, 1                                    |     r2 = 1;
    0x0001253a ldr r6, [sp, 0x14]                            |     r6 = var_14h;
    0x0001253c mov r0, sb                                    |     r0 = sb;
    0x0001253e str r3, [sp, 4]                               |     var_4h = r3;
    0x00012540 ldr r3, [pc, 0x110]                           |     
    0x00012542 add r3, pc                                    |     r3 = 0x24b9a;
    0x00012544 str r3, [sp]                                  |     *(sp) = r3;
    0x00012546 movs r3, 0x10                                 |     r3 = 0x10;
    0x00012548 mov r1, r3                                    |     r1 = r3;
    0x0001254a blx 0x47a8                                    |     config_parse_many ();
    0x0001254e cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00012550 beq.w 0x1241c                                 |         goto label_1;
                                                             |     }
    0x00012554 b 0x1240a                                     |     goto label_2;
                                                             | label_13:
    0x00012556 mov r8, r7                                    |     r8 = r7;
    0x00012558 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x0001255a beq.w 0x12430                                 |         goto label_3;
                                                             |     }
    0x0001255e mov r0, r6                                    |     r0 = r6;
    0x00012560 add.w r8, r7, 2                               |     r8 = r7 + 2;
    0x00012564 blx 0x479c                                    |     prioq_ensure_allocated ();
    0x00012568 ldr r2, [pc, 0xec]                            |     
    0x0001256a add r3, sp, 0x78                              |     r3 += var_78h;
    0x0001256c add.w r3, r3, r7, lsl 3                       |     r3 += (r7 << 3);
    0x00012570 add r2, pc                                    |     r2 = 0x24bcc;
    0x00012572 strd r6, r0, [r3, -0x58]                      |     __asm ("strd r6, r0, [r3, -0x58]");
    0x00012576 ldm.w r2, {r0, r1}                            |     r0 = *(r2);
                                                             |     r1 = *((r2 + 4));
    0x0001257a subs r3, 0x50                                 |     r3 -= 0x50;
    0x0001257c stm.w r3, {r0, r1}                            |     *(r3) = r0;
                                                             |     *((r3 + 4)) = r1;
    0x00012580 b 0x12430                                     |     goto label_3;
                                                             | label_18:
    0x00012582 mov r0, r7                                    |     r0 = r7;
    0x00012584 blx 0x479c                                    |     r0 = prioq_ensure_allocated ();
    0x00012588 strd r7, r0, [sp, 0x20]                       |     __asm ("strd r7, r0, [sp, 0x20]");
    0x0001258c movs r7, 1                                    |     r7 = 1;
    0x0001258e b 0x123e0                                     |     goto label_4;
                                                             | label_15:
    0x00012590 ldr r6, [pc, 0xc8]                            |     
    0x00012592 add r6, pc                                    |     r6 = 0x24bf2;
    0x00012594 b 0x12464                                     |     goto label_5;
                                                             | label_8:
    0x00012596 ldr r1, [pc, 0xc8]                            |     
    0x00012598 movs r2, 0x32                                 |     r2 = 0x32;
    0x0001259a ldr r3, [pc, 0xc8]                            |     
    0x0001259c ldr r0, [pc, 0xc8]                            |     
    0x0001259e add r1, pc                                    |     r1 = 0x24c04;
    0x000125a0 add r3, pc                                    |     r3 = 0x24c0a;
    0x000125a2 adds r1, 7                                    |     r1 += 7;
    0x000125a4 add r0, pc                                    |     r0 = 0x24c10;
    0x000125a6 blx 0x3e4c                                    |     fcn_00003e4c ();
                                                             | label_9:
    0x000125aa ldr r1, [pc, 0xc0]                            |     
    0x000125ac movs r2, 0x33                                 |     r2 = 0x33;
    0x000125ae ldr r3, [pc, 0xc0]                            |     
    0x000125b0 ldr r0, [pc, 0xc0]                            |     
    0x000125b2 add r1, pc                                    |     r1 = 0x24c24;
    0x000125b4 add r3, pc                                    |     r3 = 0x24c2a;
    0x000125b6 adds r1, 7                                    |     r1 += 7;
    0x000125b8 add r0, pc                                    |     r0 = 0x24c30;
    0x000125ba blx 0x3e4c                                    |     fcn_00003e4c ();
                                                             | label_11:
    0x000125be ldr r0, [pc, 0xb8]                            |     
    0x000125c0 add r1, sp, 0x18                              |     r1 += var_18h;
    0x000125c2 str r2, [sp, 0x18]                            |     var_18h = r2;
    0x000125c4 add r0, pc                                    |     r0 = 0x24c42;
    0x000125c6 blx 0x4ab0                                    |     r0 = fcn_00004ab0 ();
    0x000125ca cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x000125cc blt 0x125ec                                   |         
    0x000125ce ldr.w sl, [sp, 0x18]                          |         sl = var_18h;
    0x000125d2 mov r0, sl                                    |         r0 = sl;
    0x000125d4 blx 0x458c                                    |         r0 = asprintf_chk ()
    0x000125d8 cmp r0, 0                                     |         
    0x000125da mov r0, sl                                    |         r0 = sl;
    0x000125dc ite le                                        |         
                                                             |         if (r0 > 0) {
    0x000125de movle r7, 0                                   |             r7 = 0;
                                                             |         }
                                                             |         if (r0 <= 0) {
    0x000125e0 movgt r7, 1                                   |             r7 = 1;
                                                             |         }
    0x000125e2 str.w r7, [sb]                                |         __asm ("str.w r7, [sb]");
    0x000125e6 blx 0x3e8c                                    |         fcn_00003e8c ();
    0x000125ea b 0x123da                                     |         goto label_6;
                                                             |     }
    0x000125ec movs r2, 0                                    |     r2 = 0;
    0x000125ee ldr r0, [sp, 0x18]                            |     r0 = var_18h;
    0x000125f0 str.w r2, [sb]                                |     __asm ("str.w r2, [sb]");
    0x000125f4 blx 0x3e8c                                    |     fcn_00003e8c ();
    0x000125f8 b 0x123de                                     |     goto label_7;
                                                             | label_17:
    0x000125fa ldr r1, [pc, 0x80]                            |     
    0x000125fc movs r2, 0x3a                                 |     r2 = 0x3a;
    0x000125fe ldr r3, [pc, 0x80]                            |     
    0x00012600 ldr r0, [pc, 0x80]                            |     
    0x00012602 add r1, pc                                    |     r1 = 0x24c84;
    0x00012604 add r3, pc                                    |     r3 = 0x24c8a;
    0x00012606 adds r1, 7                                    |     r1 += 7;
    0x00012608 add r0, pc                                    |     r0 = 0x24c90;
    0x0001260a blx 0x3e4c                                    |     fcn_00003e4c ();
                                                             | label_10:
    0x0001260e blx 0x4474                                    |     fcn_00004474 ();
    0x00012612 nop                                           |     
    0x00012614 adr r7, 0x278                                 |     r7 = 0x278;
    0x00012616 movs r0, r0                                   |     
    0x00012618 lsls r0, r1, 0x13                             |     r0 = r1 << 0x13;
    0x0001261a movs r0, r0                                   |     
    0x0001261c adr r7, 0x168                                 |     r7 = 0x168;
    0x0001261e movs r0, r0                                   |     
    0x00012620 add r4, sp, 0x2d8                             |     r4 += arg_2d8h;
    0x00012622 movs r0, r0                                   |     
    0x00012624 adds r0, 0x5a                                 |     r0 += 0x5a;
    0x00012626 movs r0, r0                                   |     
    0x00012628 add r4, sp, 0xc8                              |     r4 += var_c8h;
    0x0001262a movs r0, r0                                   |     
    0x0001262c strh r4, [r7, 0xa]                            |     *((r7 + 0xa)) = r4;
    0x0001262e movs r0, r0                                   |     
    0x00012630 strh r2, [r4, 0x12]                           |     *((r4 + 0x12)) = r2;
    0x00012632 movs r0, r0                                   |     
    0x00012634 strh r0, [r1, 0x14]                           |     *((r1 + 0x14)) = r0;
    0x00012636 movs r0, r0                                   |     
    0x00012638 strh r2, [r2, 0xa]                            |     *((r2 + 0xa)) = r2;
    0x0001263a movs r0, r0                                   |     
    0x0001263c strh r6, [r2, 0x10]                           |     *((r2 + 0x10)) = r6;
    0x0001263e movs r0, r0                                   |     
    0x00012640 strh r6, [r3, 0x12]                           |     *((r3 + 0x12)) = r6;
    0x00012642 movs r0, r0                                   |     
    0x00012644 strh r2, [r4, 0xc]                            |     *((r4 + 0xc)) = r2;
    0x00012646 movs r0, r0                                   |     
    0x00012648 strh r6, [r6, 6]                              |     *((r6 + 6)) = r6;
    0x0001264a movs r0, r0                                   |     
    0x0001264c strh r0, [r4, 0x10]                           |     *((r4 + 0x10)) = r0;
    0x0001264e movs r0, r0                                   |     
    0x00012650 strh r4, [r2, 0xc]                            |     *((r2 + 0xc)) = r4;
    0x00012652 movs r0, r0                                   |     
    0x00012654 cmp r7, 0x16                                  |     
    0x00012656 movs r0, r0                                   |     
    0x00012658 add r3, sp, 0x10                              |     r3 += var_10h;
    0x0001265a movs r0, r0                                   |     
    0x0001265c strh r2, [r6, 2]                              |     *((r6 + 2)) = r2;
    0x0001265e movs r0, r0                                   |     
    0x00012660 strh r6, [r6, 2]                              |     *((r6 + 2)) = r6;
    0x00012662 movs r0, r0                                   |     
    0x00012664 strh r0, [r4, 0xc]                            |     *((r4 + 0xc)) = r0;
    0x00012666 movs r0, r0                                   |     
    0x00012668 ldr r1, [pc, 0x380]                           |     r1 = *(0x129ec);
    0x0001266a movs r0, r0                                   |     
    0x0001266c strh r2, [r4, 2]                              |     *((r4 + 2)) = r2;
    0x0001266e movs r0, r0                                   |     
    0x00012670 strh r4, [r1, 0xc]                            |     *((r1 + 0xc)) = r4;
    0x00012672 movs r0, r0                                   |     
    0x00012674 cmp r6, 0x90                                  |     
    0x00012676 movs r0, r0                                   |     
    0x00012678 strh r4, [r2, 4]                              |     *((r2 + 4)) = r4;
    0x0001267a movs r0, r0                                   |     
    0x0001267c strh r2, [r2]                                 |     *(r2) = r2;
    0x0001267e movs r0, r0                                   |     
    0x00012680 strh r4, [r7, 8]                              |     *((r7 + 8)) = r4;
    0x00012682 movs r0, r0                                   |     
    0x00012684 strh r4, [r6, 2]                              |     *((r6 + 2)) = r4;
    0x00012686 movs r0, r0                                   |     
                                                             | }

[*] Function sprintf used 10 times systemd-journald