[*] Binary protection state of systemd-delta

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


[*] Function printf tear down of systemd-delta

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/systemd-delta @ 0x18d8 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) fcn.000018d8 ()                                  | void fcn_000018d8 (int16_t arg_8h, int16_t arg_14h, int16_t arg_18h, int16_t arg_1ch, int16_t arg_20h, int16_t arg_2ch, void * ptr, int16_t arg_34h) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             | label_2:
    0x0000137a ldrd r3, r2, [sp, 0x14]                       |     __asm ("ldrd r3, r2, [arg_14h]");
    0x0000137e mov r1, fp                                    |     r1 = fp;
    0x00001380 mov r0, r8                                    |     r0 = r8;
    0x00001382 str r7, [sp]                                  |     *(sp) = r7;
    0x00001384 blx 0x1204                                    |     r0 = getopt_long ();
    0x00001388 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x0000138a blt.w 0x175c                                  |         goto label_15;
                                                             |     }
    0x0000138e cmp.w r0, 0x100                               |     
                                                             |     if (r0 == 0x100) {
    0x00001392 beq.w 0x15d6                                  |         goto label_16;
                                                             |     }
                                                             |     if (r0 > 0x100) {
    0x00001396 bgt 0x1492                                    |         goto label_17;
                                                             |     }
    0x00001398 cmp r0, 0x68                                  |     
                                                             |     if (r0 == 0x68) {
    0x0000139a beq.w 0x15e4                                  |         goto label_18;
                                                             |     }
    0x0000139e cmp r0, 0x74                                  |     
                                                             |     if (r0 != 0x74) {
    0x000013a0 bne 0x142e                                    |         goto label_19;
                                                             |     }
    0x000013a2 ldr.w r3, [pc, 0x434]                         |     
    0x000013a6 add r1, sp, 0x2c                              |     r1 += arg_2ch;
    0x000013a8 ldr.w r2, [pc, 0x430]                         |     
    0x000013ac add.w sb, sp, 0x30                            |     sb += ptr;
    0x000013b0 ldr.w sl, [pc, 0x42c]                         |     
    0x000013b4 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x000013b6 add r2, pc                                    |     r2 = 0x2b96;
    0x000013b8 strd r8, fp, [sp, 0x20]                       |     __asm ("strd r8, fp, [var_0hx20]");
    0x000013bc str r5, [sp, 0x1c]                            |     *(arg_1ch) = r5;
    0x000013be add sl, pc                                    |     sl = 0x2ba2;
    0x000013c0 ldr r3, [r3]                                  |     r3 = *(0x17da);
    0x000013c2 mov r8, r1                                    |     r8 = r1;
    0x000013c4 mov r5, r2                                    |     r5 = r2;
    0x000013c6 str r3, [sp, 0x2c]                            |     *(arg_2ch) = r3;
    0x000013c8 ldr.w r3, [pc, 0x418]                         |     
    0x000013cc add r3, pc                                    |     r3 = 0x2bb4;
    0x000013ce ldr r6, [r3]                                  |     r6 = *(0x2bb4);
    0x000013d0 ldr.w r3, [pc, 0x414]                         |     
    0x000013d4 add r3, pc                                    |     r3 = 0x2bc0;
    0x000013d6 mov fp, r3                                    |     
    0x000013d8 b 0x13e4                                      |     
                                                             |     while (r0 == 0) {
    0x000013da orr r6, r6, 1                                 |         r6 |= 1;
                                                             | label_0:
    0x000013de mov r0, r4                                    |         r0 = r4;
    0x000013e0 blx 0x1060                                    |         free (r0);
    0x000013e4 movs r3, 0x40                                 |         r3 = 0x40;
    0x000013e6 mov r2, sl                                    |         r2 = sl;
    0x000013e8 mov r1, sb                                    |         r1 = sb;
    0x000013ea mov r0, r8                                    |         r0 = r8;
    0x000013ec str r7, [sp, 0x30]                            |         *(ptr) = r7;
    0x000013ee blx 0x11bc                                    |         r0 = extract_first_word ();
    0x000013f2 cmp r0, 0                                     |         
                                                             |         if (r0 < 0) {
    0x000013f4 blt.w 0x1766                                  |             goto label_20;
                                                             |         }
    0x000013f8 ldr r4, [sp, 0x30]                            |         r4 = *(ptr);
                                                             |         if (r0 == 0) {
    0x000013fa beq.w 0x1616                                  |             goto label_21;
                                                             |         }
    0x000013fe mov r1, fp                                    |         r1 = fp;
    0x00001400 mov r0, r4                                    |         r0 = r4;
    0x00001402 blx 0x1270                                    |         r0 = strcmp (r0, r1);
    0x00001406 cmp r0, 0                                     |         
    0x00001408 beq 0x13da                                    |         
                                                             |     }
    0x0000140a mov r1, r5                                    |     r1 = r5;
    0x0000140c mov r0, r4                                    |     r0 = r4;
    0x0000140e blx 0x1270                                    |     r0 = strcmp (r0, r1);
    0x00001412 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00001414 beq.w 0x1578                                  |         goto label_22;
                                                             |     }
    0x00001416 strh r0, [r6, 4]                              |     *((r6 + 4)) = r0;
    0x00001418 ldr r1, [pc, 0x3d0]                           |     r1 = *(0x17ec);
    0x0000141a mov r0, r4                                    |     r0 = r4;
                                                             | label_14:
    0x0000141c add r1, pc                                    |     r1 += pc;
    0x0000141e blx 0x1270                                    |     r0 = strcmp (r0, r1);
    0x00001422 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00001424 bne.w 0x157e                                  |         goto label_23;
                                                             |     }
    0x00001428 orr r6, r6, 4                                 |     r6 |= 4;
    0x0000142c b 0x13de                                      |     goto label_0;
                                                             | label_19:
    0x0000142e cmp r0, 0x3f                                  |     
                                                             |     if (r0 != 0x3f) {
    0x00001430 bne.w 0x17a4                                  |         goto label_24;
                                                             |     }
                                                             | label_13:
    0x00001434 mvn r4, 0x15                                  |     r4 = ~0x15;
                                                             | label_4:
    0x00001438 ldr r1, [pc, 0x3b4]                           |     
    0x0000143a rsbs r2, r4, 0                                |     r2 = r4 - ;
    0x0000143c movs r0, 0                                    |     r0 = 0;
    0x0000143e add r1, pc                                    |     r1 = 0x2c32;
    0x00001440 blx 0x10c0                                    |     sd_notifyf ();
                                                             | label_3:
    0x00001444 blx 0x1090                                    |     ask_password_agent_close ();
    0x00001448 blx 0x109c                                    |     polkit_agent_close ();
    0x0000144c blx 0x1228                                    |     pager_close ();
    0x00001450 blx 0x10a8                                    |     mac_selinux_finish ();
    0x00001454 ldr r3, [pc, 0x39c]                           |     r3 = *(0x17f4);
    0x00001456 ldr r6, [r5, r3]                              |     r6 = *((r5 + r3));
                                                             |     if (r6 == 0) {
    0x00001458 cbz r6, 0x1474                                |         goto label_25;
                                                             |     }
    0x0000145a ldr r3, [pc, 0x39c]                           |     r3 = *(0x17fa);
    0x0000145c adds r6, 3                                    |     r6 += 3;
    0x0000145e bic r6, r6, 3                                 |     r6 = BIT_MASK (r6, 3);
    0x00001462 ldr r5, [r5, r3]                              |     r5 = *((r5 + r3));
    0x00001464 cmp r6, r5                                    |     
                                                             |     if (r6 >= r5) {
    0x00001466 bhs 0x1474                                    |         goto label_25;
                                                             |     }
                                                             |     do {
    0x00001468 ldrd r0, r3, [r6]                             |         __asm ("ldrd r0, r3, [r6]");
    0x0000146c adds r6, 8                                    |         r6 += 8;
    0x0000146e blx r3                                        |         uint32_t (*r3)(uint32_t) (r0);
    0x00001470 cmp r6, r5                                    |         
    0x00001472 blo 0x1468                                    |         
                                                             |     } while (r6 <= r5);
                                                             | label_25:
    0x00001474 ldr r2, [pc, 0x384]                           |     
    0x00001476 lsrs r0, r4, 0x1f                             |     r0 = r4 >> 0x1f;
    0x00001478 ldr r3, [pc, 0x344]                           |     r3 = *(0x17c0);
    0x0000147a add r2, pc                                    |     r2 = 0x2c7a;
    0x0000147c ldr r3, [r2, r3]                              |     r3 = *(0x2c7a);
    0x0000147e ldr r2, [r3]                                  |     r2 = *(0x2c7a);
    0x00001480 ldr r3, [sp, 0x34]                            |     r3 = *(arg_34h);
    0x00001482 eors r2, r3                                   |     r2 ^= r3;
    0x00001484 mov.w r3, 0                                   |     r3 = 0;
                                                             |     if (r2 != r3) {
    0x00001488 bne.w 0x17b6                                  |         goto label_26;
                                                             |     }
    0x0000148c add sp, 0x3c                                  |     
    0x0000148e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |     
                                                             | label_17:
    0x00001492 movw r3, 0x101                                |     r3 = 0x101;
    0x00001496 cmp r0, r3                                    |     
                                                             |     if (r0 == r3) {
    0x00001498 beq.w 0x159e                                  |         goto label_27;
                                                             |     }
    0x0000149c cmp.w r0, 0x102                               |     
                                                             |     if (r0 != 0x102) {
    0x000014a0 bne.w 0x17a4                                  |         goto label_24;
                                                             |     }
    0x000014a4 blx 0x103c                                    |     r0 = version ();
    0x000014a8 mov r4, r0                                    |     r4 = r0;
                                                             | label_11:
    0x000014aa cmp r4, 0                                     |     
                                                             |     if (r4 <= 0) {
    0x000014ac ble.w 0x16fe                                  |         goto label_28;
                                                             |     }
                                                             | label_12:
    0x000014b0 ldr r3, [pc, 0x34c]                           |     
    0x000014b2 add r3, pc                                    |     r3 = 0x2cb6;
    0x000014b4 ldr r2, [r3]                                  |     r2 = *(0x2cb6);
                                                             |     if (r2 == 0) {
    0x000014b6 cbnz r2, 0x14bc                               |         
    0x000014b8 movs r2, 0x2f                                 |         r2 = 0x2f;
    0x000014ba str r2, [r3]                                  |         *(r3) = r2;
                                                             |     }
    0x000014bc ldr r3, [pc, 0x344]                           |     
    0x000014be add r3, pc                                    |     r3 = 0x2cc6;
    0x000014c0 ldr r2, [r3]                                  |     r2 = *(0x2cc6);
    0x000014c2 cmp r2, 0                                     |     
                                                             |     if (r2 < 0) {
    0x000014c4 blt.w 0x16b4                                  |         goto label_29;
                                                             |     }
                                                             |     if (r2 != 0) {
    0x000014c8 beq 0x14d6                                    |         
    0x000014ca ldr r2, [pc, 0x33c]                           |         
    0x000014cc add r2, pc                                    |         r2 = 0x2cda;
    0x000014ce ldr r3, [r2]                                  |         r3 = *(0x2cda);
    0x000014d0 orr r3, r3, 8                                 |         r3 |= 8;
    0x000014d4 str r3, [r2]                                  |         *(r2) = r3;
                                                             |     }
                                                             | label_6:
    0x000014d6 ldr r3, [pc, 0x334]                           |     
    0x000014d8 add r3, pc                                    |     r3 = 0x2cea;
    0x000014da ldr r0, [r3]                                  |     r0 = *(0x2cea);
    0x000014dc blx 0x12b8                                    |     pager_open ();
    0x000014e0 ldr r3, [pc, 0x32c]                           |     r3 = *(0x1810);
    0x000014e2 ldr r3, [r5, r3]                              |     r3 = *((r5 + r3));
    0x000014e4 ldr.w sb, [r3]                                |     sb = *(0x1810);
    0x000014e8 cmp r8, sb                                    |     
                                                             |     if (r8 <= sb) {
    0x000014ea ble.w 0x1652                                  |         goto label_30;
                                                             |     }
    0x000014ee ldr r3, [pc, 0x324]                           |     
    0x000014f0 add.w r6, fp, sb, lsl 2                       |     r6 = fp + (sb << 2);
    0x000014f4 mov r7, r4                                    |     r7 = r4;
    0x000014f6 str r5, [sp, 0x1c]                            |     *(arg_1ch) = r5;
    0x000014f8 mov.w fp, 0                                   |     
    0x000014fc add r3, pc                                    |     r3 = 0x2d16;
    0x000014fe adds r3, 7                                    |     r3 += 7;
    0x00001500 str r3, [sp, 0x14]                            |     *(arg_14h) = r3;
    0x00001502 ldr r3, [pc, 0x314]                           |     
    0x00001504 add r3, pc                                    |     r3 = 0x2d22;
    0x00001506 str r3, [sp, 0x18]                            |     *(arg_18h) = r3;
                                                             | label_1:
    0x00001508 ldr r0, [r6]                                  |     r0 = *(r6);
    0x0000150a blx 0x1138                                    |     path_simplify ();
    0x0000150e ldr r5, [r6], 4                               |     r5 = *(r6);
                                                             |     r6 += 4;
    0x00001512 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00001514 beq.w 0x1722                                  |         goto label_31;
                                                             |     }
    0x00001516 strh r5, [r0, 8]                              |     *((r0 + 8)) = r5;
    0x00001518 ldrb r2, [r5]                                 |     r2 = *(r5);
    0x0000151a cmp r2, 0x2f                                  |     
                                                             |     if (r2 != 0x2f) {
    0x0000151c bne.w 0x16c2                                  |         goto label_32;
                                                             |     }
    0x00001520 ldr r4, [pc, 0x2f8]                           |     
    0x00001522 add r4, pc                                    |     r4 = 0x2d42;
    0x00001524 b 0x1538                                      |     
                                                             |     while (r0 == 0) {
    0x00001526 mov r0, r4                                    |         r0 = r4;
    0x00001528 blx 0x1258                                    |         strlen (r0);
    0x0000152c adds r0, 1                                    |         r0++;
    0x0000152e add r4, r0                                    |         r4 += r0;
    0x00001530 ldrb r3, [r4]                                 |         r3 = *(r4);
    0x00001532 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00001534 beq.w 0x1684                                  |             goto label_33;
                                                             |         }
    0x00001538 mov r1, r4                                    |         r1 = r4;
    0x0000153a mov r0, r5                                    |         r0 = r5;
    0x0000153c blx 0x10cc                                    |         r0 = startswith ();
    0x00001540 mov sl, r0                                    |         sl = r0;
    0x00001542 cmp r0, 0                                     |         
    0x00001544 beq 0x1526                                    |         
                                                             |     }
    0x00001546 ldr r1, [pc, 0x2d8]                           |     
    0x00001548 add r1, pc                                    |     r1 = 0x2d6e;
    0x0000154a blx 0x1108                                    |     strspn (r0, r1);
    0x0000154e ldrb.w r2, [sl, r0]                           |     r2 = *((sl + r0));
    0x00001552 add r0, sl                                    |     r0 += sl;
    0x00001554 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00001556 beq.w 0x16ce                                  |         goto label_34;
                                                             |     }
    0x0000155a mov r1, r4                                    |     r1 = r4;
    0x0000155c bl 0x19a0                                     |     r0 = fcn_000019a0 (r0, r1, r2, r3);
    0x00001560 mov r4, r0                                    |     r4 = r0;
                                                             | label_7:
    0x00001562 cmp r4, 0                                     |     
                                                             |     if (r4 >= 0) {
    0x00001564 blt 0x156a                                    |         
                                                             | label_8:
    0x00001566 add fp, r4                                    |         
    0x00001568 mov r4, r7                                    |         r4 = r7;
                                                             |     }
                                                             | label_5:
    0x0000156a add.w sb, sb, 1                               |     sb++;
    0x0000156e cmp r8, sb                                    |     
                                                             |     if (r8 == sb) {
    0x00001570 beq.w 0x1702                                  |         goto label_35;
                                                             |     }
    0x00001574 mov r7, r4                                    |     r7 = r4;
    0x00001576 b 0x1508                                      |     goto label_1;
                                                             | label_22:
    0x00001578 orr r6, r6, 2                                 |     r6 |= 2;
    0x0000157c b 0x13de                                      |     goto label_0;
                                                             | label_23:
    0x0000157e ldr r1, [pc, 0x2a4]                           |     
    0x00001580 mov r0, r4                                    |     r0 = r4;
    0x00001582 add r1, pc                                    |     r1 = 0x2dac;
    0x00001584 blx 0x1270                                    |     r0 = strcmp (r0, r1);
                                                             |     if (r0 != 0) {
    0x00001588 cbz r0, 0x15d0                                |         
    0x0000158a ldr r1, [pc, 0x29c]                           |         
    0x0000158c mov r0, r4                                    |         r0 = r4;
    0x0000158e add r1, pc                                    |         r1 = "process_suffix_chop";
    0x00001590 blx 0x1270                                    |         r0 = strcmp (r0, "process_suffix_chop");
    0x00001594 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00001596 bne 0x1630                                    |             goto label_36;
                                                             |         }
    0x00001598 orr r6, r6, 0x10                              |         r6 |= 0x10;
    0x0000159c b 0x13de                                      |         goto label_0;
                                                             | label_27:
    0x0000159e ldr r3, [pc, 0x238]                           |         r3 = *(0x17da);
    0x000015a0 movs r2, 0                                    |         r2 = 0;
    0x000015a2 ldr r0, [pc, 0x288]                           |         
    0x000015a4 ldr r3, [r5, r3]                              |         r3 = *((r5 + r3));
    0x000015a6 add r0, pc                                    |         r0 = "help";
    0x000015a8 ldr r1, [r3]                                  |         r1 = *(0x17da);
    0x000015aa blx 0x1240                                    |         r0 = parse_boolean_argument ();
    0x000015ae cmp r0, 0                                     |         
                                                             |         if (r0 < 0) {
    0x000015b0 blt 0x167a                                    |             goto label_37;
                                                             |         }
    0x000015b2 ldr r3, [pc, 0x27c]                           |         
    0x000015b4 add r3, pc                                    |         r3 = 0x2dea;
    0x000015b6 str r0, [r3]                                  |         *(r3) = r0;
    0x000015b8 b 0x137a                                      |         goto label_2;
                                                             |     }
    0x000015d0 orr r6, r6, 8                                 |     r6 |= 8;
    0x000015d4 b 0x13de                                      |     goto label_0;
                                                             | label_16:
    0x000015d6 ldr r2, [pc, 0x268]                           |     
    0x000015d8 add r2, pc                                    |     r2 = 0x2e1e;
    0x000015da ldr r3, [r2]                                  |     r3 = *(0x2e1e);
    0x000015dc orr r3, r3, 1                                 |     r3 |= 1;
    0x000015e0 str r3, [r2]                                  |     *(r2) = r3;
    0x000015e2 b 0x137a                                      |     goto label_2;
                                                             | label_18:
    0x000015e4 ldr r1, [pc, 0x25c]                           |     
    0x000015e6 add r2, sp, 0x30                              |     r2 += ptr;
    0x000015e8 ldr r0, [pc, 0x25c]                           |     
    0x000015ea str r7, [sp, 0x30]                            |     *(ptr) = r7;
    0x000015ec add r1, pc                                    |     r1 = 0x2e34;
    0x000015ee add r0, pc                                    |     r0 = 0x2e3a;
    0x000015f0 blx 0x11a4                                    |     terminal_urlify_man ();
    0x000015f2 ldcl p8, c2, [r8]                             |     __asm ("ldcl p8, c2, [r8]");
                                                             |     if (r0 < 0) {
    0x000015f6 blt.w 0x173e                                  |         goto label_38;
                                                             |     }
    0x000015fa ldr r2, [pc, 0x250]                           |     
    0x000015fc movs r0, 1                                    |     r0 = 1;
    0x000015fe ldr r1, [pc, 0x250]                           |     
    0x00001600 ldr r3, [sp, 0x30]                            |     r3 = *(ptr);
    0x00001602 ldr r2, [r5, r2]                              |     r2 = *((r5 + r2));
    0x00001604 add r1, pc                                    |     r1 = 0x2e5a;
    0x00001606 ldr r2, [r2]                                  |     r2 = *(0x184e);
    0x00001608 blx 0x12f4                                    |     printf_chk ()
    0x0000160c ldr r0, [sp, 0x30]                            |     r0 = *(ptr);
    0x0000160e blx 0x1060                                    |     free (r0);
                                                             | label_10:
    0x00001612 movs r4, 0                                    |     r4 = 0;
    0x00001614 b 0x1444                                      |     goto label_3;
                                                             | label_21:
    0x00001616 mov r0, r4                                    |     r0 = r4;
    0x00001618 ldrd r8, fp, [sp, 0x20]                       |     __asm ("ldrd r8, fp, [arg_20h]");
    0x0000161c ldr r5, [sp, 0x1c]                            |     r5 = *(arg_1ch);
    0x0000161e blx 0x1060                                    |     free (r0);
    0x00001622 cmp r6, 0                                     |     
                                                             |     if (r6 < 0) {
    0x00001624 blt.w 0x176e                                  |         goto label_39;
                                                             |     }
    0x00001628 ldr r3, [pc, 0x228]                           |     
    0x0000162a add r3, pc                                    |     r3 = 0x2e82;
    0x0000162c str r6, [r3]                                  |     *(r3) = r6;
    0x0000162e b 0x137a                                      |     goto label_2;
                                                             | label_36:
    0x00001630 ldr r1, [pc, 0x224]                           |     
    0x00001632 mov r0, r4                                    |     r0 = r4;
    0x00001634 add r1, pc                                    |     r1 = 0x2e90;
    0x00001636 blx 0x1270                                    |     r0 = strcmp (r0, r1);
                                                             |     if (r0 == 0) {
    0x0000163a cbz r0, 0x167e                                |         goto label_40;
                                                             |     }
    0x0000163c ldr r1, [pc, 0x21c]                           |     
    0x0000163e mov r0, r4                                    |     r0 = r4;
    0x00001640 add r1, pc                                    |     r1 = 0x2ea0;
    0x00001642 blx 0x1270                                    |     r0 = strcmp (r0, r1);
    0x00001646 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00001648 bne.w 0x1766                                  |         goto label_20;
                                                             |     }
    0x0000164c orr r6, r6, 0x2f                              |     r6 |= 0x2f;
    0x00001650 b 0x13de                                      |     goto label_0;
                                                             | label_30:
    0x00001652 ldr r6, [pc, 0x20c]                           |     
    0x00001654 mov.w fp, 0                                   |     
    0x00001656 lsrs r0, r0, 0xc                              |     r0 >>= 0xc;
    0x00001658 add r6, pc                                    |     r6 = 0x2ebe;
    0x0000165a b 0x166e                                      |     
                                                             |     while (r0 >= 0) {
    0x0000165c add fp, r0                                    |         
    0x0000165e mov r0, r6                                    |         r0 = r6;
    0x00001660 blx 0x1258                                    |         strlen (r0);
    0x00001664 adds r0, 1                                    |         r0++;
    0x00001666 add r6, r0                                    |         r6 += r0;
    0x00001668 ldrb r3, [r6]                                 |         r3 = *(r6);
    0x0000166a cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x0000166c beq 0x170a                                    |             goto label_41;
                                                             |         }
    0x0000166e movs r1, 0                                    |         r1 = 0;
    0x00001670 mov r0, r6                                    |         r0 = r6;
    0x00001672 bl 0x19a0                                     |         r0 = fcn_000019a0 (r0, r1, r2, r3);
    0x00001676 cmp r0, 0                                     |         
    0x00001678 bge 0x165c                                    |         
                                                             |     }
                                                             | label_37:
    0x0000167a mov r4, r0                                    |     r4 = r0;
    0x0000167c b 0x1438                                      |     goto label_4;
                                                             | label_40:
    0x0000167e orr r6, r6, 0x20                              |     r6 |= 0x20;
    0x00001682 b 0x13de                                      |     goto label_0;
                                                             | label_33:
    0x00001684 blx 0x10fc                                    |     r0 = log_get_max_level ();
    0x00001688 cmp r0, 2                                     |     
                                                             |     if (r0 <= 2) {
    0x0000168a ble 0x1760                                    |         goto label_42;
                                                             |     }
    0x0000168c ldr r3, [sp, 0x18]                            |     r3 = *(arg_18h);
    0x0000168e movs r1, 0x16                                 |     r1 = 0x16;
    0x00001690 ldr r2, [sp, 0x14]                            |     r2 = *(arg_14h);
    0x00001692 movt r1, 0x4000                               |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x00001696 movs r0, 3                                    |     r0 = 3;
    0x00001698 str r5, [sp, 8]                               |     *(arg_8h) = r5;
    0x0000169a str r3, [sp, 4]                               |     var_4h = r3;
    0x0000169c ldr r3, [pc, 0x1c4]                           |     
    0x0000169e add r3, pc                                    |     r3 = 0x2f06;
    0x000016a0 str r3, [sp]                                  |     *(sp) = r3;
    0x000016a2 movw r3, 0x201                                |     r3 = 0x201;
    0x000016a6 blx 0x1180                                    |     r0 = log_internal ();
    0x000016aa subs r4, r0, 0                                |     r4 = r0 - 0;
    0x000016ac it ge                                         |     
                                                             |     if (r4 < r0) {
    0x000016ae mvnge r4, 0x55                                |         r4 = ~0x55;
                                                             |     }
    0x000016b2 b 0x156a                                      |     goto label_5;
                                                             | label_29:
    0x000016b4 ldr r2, [pc, 0x1b0]                           |     
    0x000016b6 add r2, pc                                    |     
    0x000016b8 ldr r2, [r2]                                  |     r2 = *(0x2f22);
    0x000016ba ubfx r2, r2, 3, 1                             |     r2 = (r2 >> 3) & ((1 << 1) - 1);
    0x000016be str r2, [r3]                                  |     *(r3) = r2;
    0x000016c0 b 0x14d6                                      |     goto label_6;
                                                             | label_32:
    0x000016c2 mov r0, r5                                    |     r0 = r5;
    0x000016c4 movs r1, 0                                    |     r1 = 0;
    0x000016c6 bl 0x19a0                                     |     r0 = fcn_000019a0 (r0, r1, r2, r3);
    0x000016ca mov r4, r0                                    |     r4 = r0;
    0x000016cc b 0x1562                                      |     goto label_7;
                                                             | label_34:
    0x000016ce ldr.w sl, [pc, 0x19c]                         |     
    0x000016d2 mov r4, r2                                    |     r4 = r2;
    0x000016d4 add sl, pc                                    |     sl = 0x2f46;
    0x000016d6 b 0x16ee                                      |     goto label_43;
                                                             | label_9:
    0x000016d8 add r4, r0                                    |     r4 += r0;
    0x000016da mov r0, sl                                    |     r0 = sl;
    0x000016dc blx 0x1258                                    |     strlen (r0);
    0x000016e0 adds r0, 1                                    |     r0++;
    0x000016e2 add sl, r0                                    |     sl += r0;
    0x000016e4 ldrb.w r3, [sl]                               |     r3 = *(sl);
    0x000016e8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000016ea beq.w 0x1566                                  |         goto label_8;
                                                             |     }
                                                             | label_43:
    0x000016ee mov r1, r5                                    |     r1 = r5;
    0x000016f0 mov r0, sl                                    |     r0 = sl;
    0x000016f2 bl 0x19a0                                     |     r0 = fcn_000019a0 (r0, r1, r2, r3);
    0x000016f6 cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x000016f8 bge 0x16d8                                    |         goto label_9;
                                                             |     }
    0x000016fa mov r4, r0                                    |     r4 = r0;
    0x000016fc b 0x156a                                      |     goto label_5;
                                                             |     if (r0 == 0) {
                                                             | label_28:
    0x000016fe beq 0x1612                                    |         goto label_10;
                                                             |     }
    0x00001700 b 0x1438                                      |     goto label_4;
                                                             | label_35:
    0x00001702 cmp r4, 0                                     |     
    0x00001704 ldr r5, [sp, 0x1c]                            |     r5 = *(arg_1ch);
                                                             |     if (r4 < 0) {
    0x00001706 blt.w 0x1438                                  |         goto label_4;
                                                             |     }
                                                             | label_41:
    0x0000170a cmp.w fp, 0                                   |     
                                                             |     if (fp == 0) {
    0x0000170e beq 0x1738                                    |         goto label_44;
                                                             |     }
    0x00001710 ldr r2, [pc, 0x15c]                           |     
    0x00001712 add r2, pc                                    |     r2 = 0x2f86;
                                                             |     do {
    0x00001714 ldr r1, [pc, 0x15c]                           |         
    0x00001716 mov r3, fp                                    |         r3 = fp;
    0x00001718 movs r0, 1                                    |         r0 = 1;
    0x0000171a add r1, pc                                    |         r1 = 0x2f92;
    0x0000171c blx 0x12f4                                    |         printf_chk ()
    0x00001720 b 0x1444                                      |         goto label_3;
                                                             | label_31:
    0x00001722 ldr r1, [pc, 0x154]                           |         
    0x00001724 mov.w r2, 0x1ee                               |         r2 = 0x1ee;
    0x00001728 ldr r3, [pc, 0x150]                           |         
    0x0000172a ldr r0, [pc, 0x154]                           |         
    0x0000172c add r1, pc                                    |         r1 = 0x2faa;
    0x0000172e add r3, pc                                    |         r3 = 0x2fae;
    0x00001730 adds r1, 7                                    |         r1 += 7;
    0x00001732 add r0, pc                                    |         r0 = 0x2fb8;
    0x00001734 blx 0x1048                                    |         log_assert_failed ();
                                                             | label_44:
    0x00001738 ldr r2, [pc, 0x148]                           |         
    0x0000173a add r2, pc                                    |         r2 = 0x2fc2;
    0x0000173c b 0x1714                                      |         
                                                             |     } while (1);
                                                             | label_38:
    0x0000173e ldr r1, [pc, 0x148]                           |     
    0x00001740 movw r2, 0x20b                                |     r2 = 0x20b;
    0x00001744 ldr r3, [pc, 0x144]                           |     
    0x00001746 movs r0, 3                                    |     r0 = 3;
    0x00001748 add r1, pc                                    |     r1 = 0x2fd6;
    0x0000174a add r3, pc                                    |     r3 = 0x2fda;
    0x0000174c adds r1, 7                                    |     r1 += 7;
    0x0000174e blx 0x130c                                    |     r0 = log_oom_internal ();
    0x00001752 mov r4, r0                                    |     r4 = r0;
    0x00001754 ldr r0, [sp, 0x30]                            |     r0 = *(ptr);
    0x00001756 blx 0x1060                                    |     free (r0);
    0x0000175a b 0x14aa                                      |     goto label_11;
                                                             | label_15:
    0x0000175c movs r4, 1                                    |     r4 = 1;
    0x0000175e b 0x14b0                                      |     goto label_12;
                                                             | label_42:
    0x00001760 mvn r4, 0x15                                  |     r4 = ~0x15;
    0x00001764 b 0x156a                                      |     goto label_5;
                                                             | label_20:
    0x00001766 ldr r0, [sp, 0x30]                            |     r0 = *(ptr);
    0x00001768 ldr r5, [sp, 0x1c]                            |     r5 = *(arg_1ch);
    0x0000176a blx 0x1060                                    |     r0 = free (r0);
                                                             | label_39:
    0x0000176e blx 0x10fc                                    |     r0 = log_get_max_level ();
    0x00001772 cmp r0, 2                                     |     
                                                             |     if (r0 <= 2) {
    0x00001774 ble.w 0x1434                                  |         goto label_13;
                                                             |     }
    0x00001778 ldr r2, [pc, 0x114]                           |     
    0x0000177a movs r1, 0x16                                 |     r1 = 0x16;
    0x0000177c ldr r4, [pc, 0x114]                           |     
    0x0000177e movw r3, 0x261                                |     r3 = 0x261;
    0x00001782 ldr r0, [pc, 0x114]                           |     
    0x00001784 movt r1, 0x4000                               |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x00001788 add r2, pc                                    |     r2 = 0x301c;
    0x0000178a add r4, pc                                    |     r4 = 0x3022;
    0x0000178c adds r2, 7                                    |     r2 += 7;
    0x0000178e add r0, pc                                    |     r0 = 0x302c;
    0x00001790 strd r0, r4, [sp]                             |     __asm ("strd r0, r4, [sp]");
    0x00001794 movs r0, 3                                    |     r0 = 3;
    0x00001796 blx 0x1180                                    |     r0 = log_internal ();
    0x0000179a subs r4, r0, 0                                |     r4 = r0 - 0;
    0x0000179c it ge                                         |     
                                                             |     if (r4 < r0) {
    0x0000179e mvnge r4, 0x55                                |         r4 = ~0x55;
                                                             |     }
    0x000017a2 b 0x1438                                      |     goto label_4;
                                                             | label_24:
    0x000017a4 ldr r0, [pc, 0xf4]                            |     
    0x000017a6 movw r1, 0x272                                |     r1 = 0x272;
    0x000017aa ldr r2, [pc, 0xf4]                            |     
    0x000017ac add r0, pc                                    |     r0 = 0x304c;
    0x000017ae add r2, pc                                    |     r2 = 0x3054;
    0x000017b0 adds r0, 7                                    |     r0 += 7;
    0x000017b2 blx 0x1294                                    |     log_assert_failed_unreachable ();
                                                             | label_26:
    0x000017b6 blx 0x1198                                    |     stack_chk_fail ();
    0x000017ba nop                                           |     
    0x000017bc cmp r3, 0x88                                  |     
    0x000017be movs r0, r0                                   |     
    0x000017c0 lsls r4, r2, 4                                |     r4 = r2 << 4;
    0x000017c2 movs r0, r0                                   |     
    0x000017c4 cmp r3, 0x7e                                  |     
    0x000017c6 movs r0, r0                                   |     
    0x000017c8 lsls r0, r5, 4                                |     r0 = r5 << 4;
    0x000017ca movs r0, r0                                   |     
    0x000017cc lsls r4, r3, 4                                |     r4 = r3 << 4;
    0x000017ce movs r0, r0                                   |     
    0x000017d0 cmp r1, 0xce                                  |     
    0x000017d2 movs r0, r0                                   |     
    0x000017d4 adds r6, r5, r5                               |     r6 = r5 + r5;
    0x000017d6 movs r0, r0                                   |     
    0x000017d8 lsls r4, r4, 4                                |     r4 <<= 4;
    0x000017da movs r0, r0                                   |     
    0x000017dc adds r6, r7, r2                               |     r6 = r7 + r2;
    0x000017de movs r0, r0                                   |     
    0x000017e0 adds r2, r5, r2                               |     r2 = r5 + r2;
    0x000017e2 movs r0, r0                                   |     
    0x000017e4 cmp r4, 0x3c                                  |     
    0x000017e6 movs r0, r0                                   |     
    0x000017e8 adds r0, r3, r2                               |     r0 = r3 + r2;
    0x000017ea movs r0, r0                                   |     
    0x000017ec adds r4, r4, r1                               |     r4 += r1;
    0x000017ee movs r0, r0                                   |     
    0x000017f0 adds r2, r7, r3                               |     r2 = r7 + r3;
    0x000017f2 movs r0, r0                                   |     
    0x000017f4 lsls r4, r5, 4                                |     r4 = r5 << 4;
    0x000017f6 movs r0, r0                                   |     
    0x000017f8 lsls r0, r6, 4                                |     r0 = r6 << 4;
    0x000017fa movs r0, r0                                   |     
    0x000017fc cmp r2, 0x36                                  |     
    0x000017fe movs r0, r0                                   |     
    0x00001800 cmp r3, 0x56                                  |     
    0x00001802 movs r0, r0                                   |     
    0x00001804 cmp r3, 0x42                                  |     
    0x00001806 movs r0, r0                                   |     
    0x00001808 cmp r3, 0x3c                                  |     
    0x0000180a movs r0, r0                                   |     
    0x0000180c cmp r3, 0x34                                  |     
    0x0000180e movs r0, r0                                   |     
    0x00001810 lsls r0, r3, 4                                |     r0 = r3 << 4;
    0x00001812 movs r0, r0                                   |     
    0x00001814 asrs r4, r0, 0xf                              |     r4 = r0 >> 0xf;
    0x00001816 movs r0, r0                                   |     
    0x00001818 asrs r4, r4, 0x1f                             |     r4 >>= 0x1f;
    0x0000181a movs r0, r0                                   |     
    0x0000181c adds r2, r5, r6                               |     r2 = r5 + r6;
    0x0000181e movs r0, r0                                   |     
    0x00001820 asrs r4, r6, 0xe                              |     r4 = r6 >> 0xe;
    0x00001822 movs r0, r0                                   |     
    0x00001824 asrs r2, r1, 0x1c                             |     r2 = r1 >> 0x1c;
    0x00001826 movs r0, r0                                   |     
    0x00001828 asrs r2, r1, 0x1c                             |     r2 = r1 >> 0x1c;
    0x0000182a movs r0, r0                                   |     
    0x0000182c asrs r2, r6, 0x1c                             |     r2 = r6 >> 0x1c;
    0x0000182e movs r0, r0                                   |     
    0x00001830 cmp r2, 0x4c                                  |     
    0x00001832 movs r0, r0                                   |     
    0x00001834 asrs r4, r7, 0xb                              |     r4 = r7 >> 0xb;
    0x00001836 movs r0, r0                                   |     
    0x00001838 adds r2, r1, r1                               |     r2 = r1 + r1;
    0x0000183a movs r0, r0                                   |     
    0x0000183c asrs r2, r0, 0x14                             |     r2 = r0 >> 0x14;
    0x0000183e movs r0, r0                                   |     
    0x00001840 cmp r2, 0x34                                  |     
    0x00001842 movs r0, r0                                   |     
    0x00001844 asrs r0, r0, 0x14                             |     r0 >>= 0x14;
    0x00001846 movs r0, r0                                   |     
    0x00001848 asrs r2, r0, 0x14                             |     r2 = r0 >> 0x14;
    0x0000184a movs r0, r0                                   |     
    0x0000184c lsls r4, r7, 4                                |     r4 = r7 << 4;
    0x0000184e movs r0, r0                                   |     
    0x00001850 asrs r4, r7, 0x13                             |     r4 = r7 >> 0x13;
    0x00001852 movs r0, r0                                   |     
    0x00001854 cmp r1, 0xde                                  |     
    0x00001856 movs r0, r0                                   |     
    0x00001858 asrs r0, r6, 0x19                             |     r0 = r6 >> 0x19;
    0x0000185a movs r0, r0                                   |     
    0x0000185c asrs r0, r6, 0x19                             |     r0 = r6 >> 0x19;
    0x0000185e movs r0, r0                                   |     
    0x00001860 asrs r4, r4, 0x1f                             |     r4 >>= 0x1f;
    0x00001862 movs r0, r0                                   |     
    0x00001864 asrs r6, r0, 0x1c                             |     r6 = r0 >> 0x1c;
    0x00001866 movs r0, r0                                   |     
    0x00001868 cmp r1, 0x52                                  |     
    0x0000186a movs r0, r0                                   |     
    0x0000186c asrs r0, r5, 0x1d                             |     r0 = r5 >> 0x1d;
    0x0000186e movs r0, r0                                   |     
    0x00001870 asrs r2, r2, 0x15                             |     r2 >>= 0x15;
    0x00001872 movs r0, r0                                   |     
    0x00001874 asrs r2, r6, 0x17                             |     r2 = r6 >> 0x17;
    0x00001876 movs r0, r0                                   |     
    0x00001878 asrs r4, r2, 6                                |     r4 = r2 >> 6;
    0x0000187a movs r0, r0                                   |     
    0x0000187c asrs r2, r1, 0x1a                             |     r2 = r1 >> 0x1a;
    0x0000187e movs r0, r0                                   |     
    0x00001880 asrs r2, r6, 0x16                             |     r2 = r6 >> 0x16;
    0x00001882 movs r0, r0                                   |     
    0x00001884 asrs r6, r1, 0xb                              |     r6 = r1 >> 0xb;
    0x00001886 movs r0, r0                                   |     
    0x00001888 asrs r0, r7, 5                                |     r0 = r7 >> 5;
    0x0000188a movs r0, r0                                   |     
    0x0000188c asrs r2, r0, 0x1a                             |     r2 = r0 >> 0x1a;
    0x0000188e movs r0, r0                                   |     
    0x00001890 asrs r0, r7, 4                                |     r0 = r7 >> 4;
    0x00001892 movs r0, r0                                   |     
    0x00001894 asrs r6, r5, 0x14                             |     r6 = r5 >> 0x14;
    0x00001896 movs r0, r0                                   |     
    0x00001898 asrs r2, r5, 0x19                             |     r2 = r5 >> 0x19;
    0x0000189a movs r0, r0                                   |     
    0x0000189c asrs r4, r2, 4                                |     r4 = r2 >> 4;
    0x0000189e movs r0, r0                                   |     
    0x000018a0 asrs r6, r2, 0x19                             |     r6 = r2 >> 0x19;
    0x000018a2 movs r0, r0                                   |     
    0x000018d8 adds r0, 0x14                                 |     r0 += 0x14;
    0x000018da b 0x141c                                      |     goto label_14;
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/systemd-delta @ 0x19a0 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.000019a0 ()                                      | void fcn_000019a0 (FILE * stream, int16_t arg_2h, char * 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_20h;
                                                                 |     char * s1;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_4ch;
                                                                 |     int16_t var_50h;
                                                                 |     int16_t var_54h;
                                                                 |     int16_t var_58h;
                                                                 |     int16_t var_5ch;
                                                                 |     int16_t var_60h;
                                                                 |     int16_t var_64h;
                                                                 |     int16_t var_68h;
                                                                 |     int16_t var_6ch;
                                                                 |     int16_t var_74h;
                                                                 |     void * ptr;
                                                                 |     int16_t var_7ch;
                                                                 |     int16_t var_80h;
                                                                 |     void * var_84h;
                                                                 |     void * var_88h;
                                                                 |     int16_t var_8ch;
                                                                 |     int16_t var_90h;
                                                                 |     void * var_94h;
                                                                 |     int32_t var_94h_2;
                                                                 |     int16_t var_9ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x000019a0 ldr.w r3, [pc, 0xc7c]                             |     
    0x000019a4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000019a8 sub sp, 0xa4                                      |     
    0x000019aa ldr.w r2, [pc, 0xc78]                             |     
    0x000019ae add r3, pc                                        |     r3 = 0x3fd2;
    0x000019b0 str r3, [sp, 0x38]                                |     var_38h = r3;
    0x000019b2 ldr.w r3, [pc, 0xc74]                             |     r3 = *(0x262a);
    0x000019b6 add r2, pc                                        |     r2 = 0x3fe0;
    0x000019b8 str r1, [sp, 0x48]                                |     var_48h = r1;
    0x000019ba str r0, [sp, 0x24]                                |     s1 = r0;
    0x000019bc ldr r3, [r2, r3]                                  |     
    0x000019be ldr r3, [r3]                                      |     r3 = *(0x3fe0);
    0x000019c0 str r3, [sp, 0x9c]                                |     var_9ch = r3;
    0x000019c2 mov.w r3, 0                                       |     r3 = 0;
    0x000019c6 cmp r0, 0                                         |     
                                                                 |     if (stream == ) {
    0x000019c8 beq.w 0x20c0                                      |         goto label_43;
                                                                 |     }
    0x000019cc ldr.w r1, [pc, 0xc5c]                             |     
    0x000019d0 add r1, pc                                        |     r1 = .data;
    0x000019d2 blx 0x10cc                                        |     r0 = startswith ();
    0x000019d6 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000019d8 bne.w 0x20dc                                      |         goto label_44;
                                                                 |     }
    0x000019dc ldr.w r1, [pc, 0xc50]                             |     
    0x000019e0 ldr r0, [sp, 0x24]                                |     r0 = s1;
    0x000019e2 add r1, pc                                        |     r1 = 0x4016;
    0x000019e4 blx 0x11e0                                        |     r0 = strstr (r0, r1);
    0x000019e8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000019ea bne.w 0x20f8                                      |         goto label_45;
                                                                 |     }
    0x000019ee ldr.w r0, [pc, 0xc44]                             |     
    0x000019f2 ldr r1, [sp, 0x24]                                |     r1 = s1;
    0x000019f4 add r0, pc                                        |     r0 = 0x402e;
    0x000019f6 blx 0x121c                                        |     nulstr_get ();
    0x000019fa ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x000019fc mov r5, r0                                        |     r5 = r0;
    0x000019fe ldr.w r3, [pc, 0xc38]                             |     r3 = *(0x263a);
    0x00001a02 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00001a04 mov r4, r3                                        |     r4 = r3;
    0x00001a06 mov r0, r3                                        |     r0 = r3;
    0x00001a08 str r3, [sp, 0x40]                                |     var_40h = r3;
    0x00001a0a blx 0x1168                                        |     r0 = ordered_hashmap_new ();
    0x00001a0e mov r7, r0                                        |     r7 = r0;
    0x00001a10 str r0, [sp, 0x28]                                |     var_28h = r0;
    0x00001a12 mov r0, r4                                        |     r0 = r4;
    0x00001a14 blx 0x1168                                        |     ordered_hashmap_new ();
    0x00001a16 sub.w r6, r8, r6, lsl 16                          |     r6 = r8 - (r6 << 16);
    0x00001a1a str r0, [sp, 0x3c]                                |     var_3ch = r0;
    0x00001a1c mov r0, r4                                        |     r0 = r4;
    0x00001a1e blx 0x1168                                        |     ordered_hashmap_new ();
    0x00001a22 cmp r6, 0                                         |     
    0x00001a24 it ne                                             |     
                                                                 |     if (r6 != 0) {
    0x00001a26 cmpne r7, 0                                       |         __asm ("cmpne r7, 0");
                                                                 |     }
    0x00001a28 mov r3, r7                                        |     r3 = r7;
    0x00001a2a ite eq                                            |     
                                                                 |     if (r6 != 0) {
    0x00001a2c moveq r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 |     if (r6 == 0) {
    0x00001a2e movne r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x00001a30 cmp r0, 0                                         |     
    0x00001a32 it eq                                             |     
                                                                 |     if (r0 != 0) {
    0x00001a34 orreq r3, r3, 1                                   |         r3 |= 1;
                                                                 |     }
    0x00001a38 str r0, [sp, 0x20]                                |     var_20h = r0;
    0x00001a3a cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00001a3c bne.w 0x1ca2                                      |         goto label_46;
                                                                 |     }
    0x00001a40 ldr.w r2, [pc, 0xbf8]                             |     
    0x00001a44 str r3, [sp, 0x30]                                |     var_30h = r3;
    0x00001a46 ldr.w r3, [pc, 0xbf8]                             |     
    0x00001a4a add r2, pc                                        |     r2 = 0x408a;
    0x00001a4c str r5, [sp, 0x58]                                |     var_58h = r5;
    0x00001a4e str r2, [sp, 0x34]                                |     var_34h = r2;
    0x00001a50 add r3, pc                                        |     r3 = 0x4096;
    0x00001a52 ldr.w r2, [pc, 0xbf0]                             |     
    0x00001a56 adds r3, 7                                        |     r3 += 7;
    0x00001a58 str r3, [sp, 0x50]                                |     var_50h = r3;
    0x00001a5a ldr.w r3, [pc, 0xbec]                             |     
    0x00001a5e add r2, pc                                        |     r2 = 0x40a8;
    0x00001a60 str r2, [sp, 0x5c]                                |     var_5ch = r2;
    0x00001a62 ldr.w r2, [pc, 0xbe8]                             |     
    0x00001a66 add r3, pc                                        |     r3 = 0x40b4;
    0x00001a68 mov sl, r3                                        |     sl = r3;
    0x00001a6a add r2, pc                                        |     r2 = 0x40bc;
    0x00001a6c str r2, [sp, 0x54]                                |     var_54h = r2;
                                                                 | label_0:
    0x00001a6e ldr r2, [sp, 0x24]                                |     r2 = s1;
    0x00001a70 mov.w r3, -1                                      |     r3 = -1;
    0x00001a74 mov r1, sl                                        |     r1 = sl;
    0x00001a76 movs r0, 0                                        |     r0 = 0;
    0x00001a78 blx 0x11ec                                        |     r0 = path_extend_internal ();
    0x00001a7c mov r7, r0                                        |     r7 = r0;
    0x00001a7e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001a80 beq.w 0x1ca2                                      |         goto label_46;
                                                                 |     }
    0x00001a84 movs r4, 0                                        |     r4 = 0;
    0x00001a86 strd r4, r4, [sp, 0x88]                           |     __asm ("strd r4, r4, [var_8ch]");
    0x00001a8a blx 0x10fc                                        |     r0 = log_get_max_level ();
    0x00001a8e cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x00001a90 bgt.w 0x205c                                      |         goto label_47;
                                                                 |     }
                                                                 | label_15:
    0x00001a94 mov r0, r7                                        |     r0 = r7;
    0x00001a96 blx 0x1114                                        |     r0 = opendir ();
    0x00001a9a mov r4, r0                                        |     r4 = r0;
    0x00001a9c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001a9e beq.w 0x27d4                                      |         goto label_48;
                                                                 |     }
    0x00001aa2 blx 0x1210                                        |     r0 = readdir_ensure_type ();
    0x00001aa6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001aa8 beq 0x1b18                                        |         goto label_49;
                                                                 |     }
    0x00001aaa ldr r5, [sp, 0x58]                                |     r5 = var_58h;
    0x00001aac mov.w fp, 0                                       |     
    0x00001ab0 add.w r8, sp, 0x8c                                |     r8 += var_8ch;
    0x00001ab4 str r7, [sp, 0x2c]                                |     var_2ch = r7;
    0x00001ab6 mov r6, fp                                        |     r6 = fp;
    0x00001ab8 mov r7, r0                                        |     r7 = r0;
    0x00001aba mov sb, r8                                        |     sb = r8;
    0x00001abc str.w sl, [sp, 0x44]                              |     __asm ("str.w sl, [var_44h]");
                                                                 |     if (r5 != 0) {
                                                                 |         do {
    0x00001ac0 cbz r5, 0x1ace                                    |             
    0x00001ac2 ldrb.w sl, [r7, 0x12]                             |             sl = *((r7 + 0x12));
    0x00001ac6 cmp.w sl, 4                                       |             
                                                                 |             if (sl == 4) {
    0x00001aca beq.w 0x1d44                                      |                 goto label_50;
                                                                 |             }
                                                                 |         }
                                                                 | label_5:
    0x00001ace mov r0, r7                                        |         r0 = r7;
    0x00001ad0 blx 0x1054                                        |         r0 = dirent_is_file ();
                                                                 |         if (r0 != 0) {
    0x00001ad4 cbz r0, 0x1b06                                    |             
    0x00001ad6 movs r2, 4                                        |             r2 = 4;
    0x00001ad8 add.w r1, fp, 2                                   |             r1 += arg_2h;
    0x00001adc add r0, sp, 0x88                                  |             r0 += var_88h;
    0x00001ade blx 0x1144                                        |             r0 = greedy_realloc0 ();
    0x00001ae2 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x00001ae4 beq.w 0x1d80                                      |                 goto label_51;
                                                                 |             }
    0x00001ae8 add.w r0, r7, 0x13                                |             r0 = r7 + 0x13;
    0x00001aec ldr r7, [sp, 0x88]                                |             r7 = var_88h;
    0x00001aee blx 0x12e8                                        |             strdup (r0);
    0x00001af2 str.w r0, [r7, fp, lsl 2]                         |             __asm ("str.w r0, [r7, fp, lsl 2]");
    0x00001af6 ldr r3, [sp, 0x88]                                |             r3 = var_88h;
    0x00001af8 ldr.w r3, [r3, fp, lsl 2]                         |             offset_0 = fp << 2;
                                                                 |             r3 = *((r3 + offset_0));
    0x00001afc cmp r3, 0                                         |             
                                                                 |             if (r3 == 0) {
    0x00001afe beq.w 0x1d80                                      |                 goto label_51;
                                                                 |             }
    0x00001b02 add.w fp, fp, 1                                   |             
                                                                 |         }
    0x00001b06 mov r0, r4                                        |         r0 = r4;
    0x00001b08 blx 0x1210                                        |         r0 = readdir_ensure_type ();
    0x00001b0c mov r7, r0                                        |         r7 = r0;
    0x00001b0e cmp r0, 0                                         |         
    0x00001b10 bne 0x1ac0                                        |         
                                                                 |     } while (r0 != 0);
    0x00001b12 ldr r7, [sp, 0x2c]                                |     r7 = var_2ch;
    0x00001b14 ldr.w sl, [sp, 0x44]                              |     sl = var_44h;
    0x00001b16 adr r0, 0x110                                     |     r0 = 0x110;
                                                                 | label_49:
    0x00001b18 blx 0x127c                                        |     r0 = errno_location ();
    0x00001b1c ldr r3, [r0]                                      |     r3 = *(r0);
    0x00001b1e ldr r0, [sp, 0x8c]                                |     r0 = var_8ch;
    0x00001b20 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x00001b22 ble.w 0x1d9c                                      |         goto label_52;
                                                                 |     }
    0x00001b26 rsbs r3, r3, 0                                    |     r3 -= ;
    0x00001b28 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001b2a beq.w 0x1d92                                      |         goto label_14;
                                                                 |     }
                                                                 | label_6:
    0x00001b2e str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00001b30 blx 0x12ac                                        |     strv_free ();
    0x00001b34 str r0, [sp, 0x8c]                                |     var_8ch = r0;
    0x00001b36 ldr r0, [sp, 0x88]                                |     r0 = var_88h;
    0x00001b38 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
                                                                 |     if (r0 != 0) {
    0x00001b3a cbz r0, 0x1b46                                    |         
                                                                 | label_7:
    0x00001b3c str r3, [sp, 0x2c]                                |         var_2ch = r3;
    0x00001b3e blx 0x12ac                                        |         strv_free ();
    0x00001b42 ldr r3, [sp, 0x2c]                                |         r3 = var_2ch;
    0x00001b44 str r0, [sp, 0x88]                                |         var_88h = r0;
                                                                 |     }
                                                                 | label_8:
    0x00001b46 mov r0, r4                                        |     r0 = r4;
    0x00001b48 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00001b4a blx 0x1084                                        |     closedir ();
    0x00001b4e ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
                                                                 | label_39:
    0x00001b50 ldr r1, [sp, 0x30]                                |     r1 = var_30h;
    0x00001b52 mov r0, r7                                        |     r0 = r7;
    0x00001b54 mov r2, r1                                        |     r2 = r1;
    0x00001b56 cmp r1, 0                                         |     
    0x00001b58 it eq                                             |     
                                                                 |     if (r1 != 0) {
    0x00001b5a moveq r2, r3                                      |         r2 = r3;
                                                                 |     }
    0x00001b5c str r2, [sp, 0x30]                                |     var_30h = r2;
    0x00001b5e blx 0x1060                                        |     free (r0);
    0x00001b62 mov r0, sl                                        |     r0 = sl;
    0x00001b64 blx 0x1258                                        |     strlen (r0);
    0x00001b68 adds r0, 1                                        |     r0++;
    0x00001b6a add sl, r0                                        |     sl += r0;
    0x00001b6c ldrb.w r3, [sl]                                   |     r3 = *(sl);
    0x00001b70 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00001b72 bne.w 0x1a6e                                      |         goto label_0;
                                                                 |     }
    0x00001b76 mov r8, r3                                        |     r8 = r3;
    0x00001b78 str r3, [sp, 0x90]                                |     var_90h = r3;
    0x00001b7a mvn r3, 1                                         |     r3 = ~1;
    0x00001b7e add r4, sp, 0x78                                  |     r4 += ptr;
    0x00001b80 str r3, [sp, 0x8c]                                |     var_8ch = r3;
    0x00001b82 mov sl, r4                                        |     sl = r4;
    0x00001b84 ldr.w r3, [pc, 0xac8]                             |     
    0x00001b88 ldr.w r6, [pc, 0xac8]                             |     
    0x00001b8c ldr r4, [sp, 0x48]                                |     r4 = var_48h;
    0x00001b8e add r3, pc                                        |     r3 = 0x41e2;
    0x00001b90 str r3, [sp, 0x4c]                                |     var_4ch = r3;
    0x00001b92 add r6, pc                                        |     r6 = 0x41ea;
    0x00001b94 ldr.w r3, [pc, 0xac0]                             |     
    0x00001b98 add r3, pc                                        |     r3 = 0x41f4;
    0x00001b9a str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00001b9c ldr.w r3, [pc, 0xabc]                             |     
    0x00001ba0 add r3, pc                                        |     r3 = 0x4200;
    0x00001ba2 str r3, [sp, 0x34]                                |     var_34h = r3;
    0x00001ba4 add r3, sp, 0x8c                                  |     r3 += var_8ch;
    0x00001ba6 str r3, [sp, 0x44]                                |     var_44h = r3;
    0x00001ba8 add r3, sp, 0x74                                  |     r3 += var_74h;
    0x00001baa str r3, [sp, 0x40]                                |     var_40h = r3;
                                                                 |     do {
                                                                 | label_20:
    0x00001bac ldrd r2, r1, [sp, 0x40]                           |         __asm ("ldrd r2, r1, [var_44h]");
    0x00001bb0 mov r3, sl                                        |         r3 = sl;
    0x00001bb2 ldr r0, [sp, 0x28]                                |         r0 = var_28h;
    0x00001bb4 blx 0x1024                                        |         r0 = hashmap_iterate ();
    0x00001bb8 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00001bba beq.w 0x2540                                      |             goto label_53;
                                                                 |         }
    0x00001bbe ldr r1, [sp, 0x78]                                |         r1 = ptr;
    0x00001bc0 ldr r0, [sp, 0x3c]                                |         r0 = var_3ch;
    0x00001bc2 blx 0x10e4                                        |         r0 = hashmap_get ();
    0x00001bc6 mov r7, r0                                        |         r7 = r0;
    0x00001bc8 str r0, [sp, 0x80]                                |         var_80h = r0;
    0x00001bca cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00001bcc beq.w 0x2404                                      |             goto label_54;
                                                                 |         }
                                                                 |         if (r4 != 0) {
    0x00001bd0 cbz r4, 0x1bda                                    |             
    0x00001bd2 mov r1, r4                                        |             r1 = r4;
    0x00001bd4 blx 0x10cc                                        |             r0 = startswith ();
                                                                 |             if (r0 == 0) {
    0x00001bd8 cbz r0, 0x1c00                                    |                 goto label_21;
                                                                 |             }
                                                                 |         }
    0x00001bda ldr r5, [sp, 0x74]                                |         r5 = var_74h;
    0x00001bdc mov r0, r7                                        |         r0 = r7;
    0x00001bde mov r1, r5                                        |         r1 = r5;
    0x00001be0 blx 0x10d8                                        |         r0 = path_compare ();
    0x00001be4 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00001be6 bne.w 0x215c                                      |             goto label_55;
                                                                 |         }
    0x00001bea ldr r3, [sp, 0x4c]                                |         r3 = var_4ch;
    0x00001bec ldr r3, [r3]                                      |         r3 = *(r3);
    0x00001bee lsls r0, r3, 0x1b                                 |         r0 = r3 << 0x1b;
                                                                 |         if (r0 < r3) {
    0x00001bf0 bpl 0x1c00                                        |             
    0x00001bf2 ldr.w r1, [pc, 0xa6c]                             |             
    0x00001bf6 mov r2, r5                                        |             r2 = r5;
    0x00001bf8 movs r0, 1                                        |             r0 = 1;
    0x00001bfa add r1, pc                                        |             r1 = 0x4260;
    0x00001bfc blx 0x12f4                                        |             printf_chk ()
                                                                 |         }
                                                                 | label_21:
    0x00001c00 ldr r1, [sp, 0x78]                                |         r1 = ptr;
    0x00001c02 ldr r0, [sp, 0x20]                                |         r0 = var_20h;
    0x00001c04 blx 0x10e4                                        |         hashmap_get ();
    0x00001c08 str r0, [sp, 0x7c]                                |         var_7ch = r0;
    0x00001c0a cmp r0, 0                                         |         
    0x00001c0c beq 0x1bac                                        |         
                                                                 |     } while (r0 == 0);
    0x00001c0e mvn r5, 1                                         |     r5 = ~1;
    0x00001c12 movs r3, 0                                        |     r3 = 0;
    0x00001c14 add.w sb, sp, 0x94                                |     sb += var_94h;
    0x00001c16 lsrs r4, r2, 6                                    |     r4 = r2 >> 6;
    0x00001c18 add r7, sp, 0x80                                  |     r7 += var_80h;
    0x00001c1a strd r5, r3, [sp, 0x94]                           |     __asm ("strd r5, r3, [var_94h]");
    0x00001c1e str.w sl, [sp, 0x48]                              |     __asm ("str.w sl, [var_48h]");
    0x00001c22 b 0x1c5a                                          |     goto label_56;
                                                                 | label_2:
    0x00001c24 ldr.w sl, [pc, 0xa3c]                             |     
    0x00001c28 add sl, pc                                        |     sl = 0x4290;
    0x00001c2a blx 0x1078                                        |     r0 = get_color_mode ();
    0x00001c2e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001c30 beq 0x1c9a                                        |         goto label_57;
                                                                 |     }
                                                                 | label_3:
    0x00001c32 ldr.w fp, [pc, 0xa34]                             |     
    0x00001c36 add fp, pc                                        |     fp = 0x42a4;
                                                                 | label_4:
    0x00001c38 movs r0, 0xf                                      |     r0 = 0xf;
    0x00001c3a add.w r8, r8, 1                                   |     r8++;
    0x00001c3e blx 0x11d4                                        |     special_glyph ();
    0x00001c42 ldr r3, [sp, 0x24]                                |     r3 = s1;
    0x00001c44 mov r2, sl                                        |     r2 = sl;
    0x00001c46 strd r0, r5, [sp, 8]                              |     __asm ("strd r0, r5, [var_8h]");
    0x00001c4a movs r0, 1                                        |     r0 = 1;
    0x00001c4c ldr r1, [sp, 0x34]                                |     r1 = var_34h;
    0x00001c4e strd fp, r3, [sp]                                 |     __asm ("strd fp, r3, [sp]");
    0x00001c52 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x00001c54 blx 0x12f4                                        |     printf_chk ()
                                                                 |     do {
                                                                 | label_1:
    0x00001c58 ldr r0, [sp, 0x7c]                                |         r0 = var_7ch;
                                                                 | label_56:
    0x00001c5a movs r3, 0                                        |         r3 = 0;
    0x00001c5c mov r2, r7                                        |         r2 = r7;
    0x00001c5e mov r1, sb                                        |         r1 = sb;
    0x00001c60 blx 0x1024                                        |         r0 = hashmap_iterate ();
    0x00001c64 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00001c66 beq.w 0x2156                                      |             goto label_58;
                                                                 |         }
    0x00001c6a ldr r5, [sp, 0x80]                                |         r5 = var_80h;
                                                                 |         if (r4 == 0) {
    0x00001c6c cbz r4, 0x1c7a                                    |             goto label_59;
                                                                 |         }
    0x00001c6e mov r1, r4                                        |         r1 = r4;
    0x00001c70 mov r0, r5                                        |         r0 = r5;
    0x00001c72 blx 0x10cc                                        |         r0 = startswith ();
    0x00001c76 cmp r0, 0                                         |         
    0x00001c78 beq 0x1c58                                        |         
                                                                 |     } while (r0 == 0);
                                                                 | label_59:
    0x00001c7a ldr r3, [r6]                                      |     r3 = *(r6);
    0x00001c7c lsls r1, r3, 0x1a                                 |     r1 = r3 << 0x1a;
                                                                 |     if (r1 >= r3) {
    0x00001c7e bpl 0x1c58                                        |         goto label_1;
                                                                 |     }
    0x00001c80 ldr r3, [sp, 0x74]                                |     r3 = var_74h;
    0x00001c82 str r3, [sp, 0x24]                                |     s1 = r3;
    0x00001c84 blx 0x1078                                        |     r0 = get_color_mode ();
    0x00001c88 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00001c8a bne 0x1c24                                        |         goto label_2;
                                                                 |     }
    0x00001c8c ldr.w sl, [pc, 0x9dc]                             |     
    0x00001c90 add sl, pc                                        |     sl = 0x4300;
    0x00001c92 blx 0x1078                                        |     r0 = get_color_mode ();
    0x00001c96 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00001c98 bne 0x1c32                                        |         goto label_3;
                                                                 |     }
                                                                 | label_57:
    0x00001c9a ldr.w fp, [pc, 0x9d4]                             |     
    0x00001c9e add fp, pc                                        |     fp = 0x4314;
    0x00001ca0 b 0x1c38                                          |     goto label_4;
                                                                 | label_46:
    0x00001ca2 mov.w r8, 0                                       |     r8 = 0;
    0x00001ca6 add r4, sp, 0x78                                  |     r4 += ptr;
    0x00001ca8 mvn r3, 0xb                                       |     r3 = ~0xb;
    0x00001cac str r3, [sp, 0x30]                                |     var_30h = r3;
                                                                 | label_27:
    0x00001cae ldr.w r3, [pc, 0x9c4]                             |     r3 = *(0x2676);
    0x00001cb2 movs r1, 0                                        |     r1 = 0;
    0x00001cb4 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x00001cb6 add r7, sp, 0x94                                  |     r7 += var_94h;
    0x00001cb8 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x00001cba add r6, sp, 0x7c                                  |     r6 += var_7ch;
    0x00001cbc ldr r5, [r2, r3]                                  |     r5 = *((r2 + r3));
    0x00001cbe mov r2, r5                                        |     r2 = r5;
    0x00001cc0 blx 0x11b0                                        |     hashmap_free ();
    0x00001cc4 mov r2, r5                                        |     r2 = r5;
    0x00001cc6 ldr r0, [sp, 0x3c]                                |     r0 = var_3ch;
    0x00001cc8 movs r1, 0                                        |     r1 = 0;
    0x00001cca blx 0x11b0                                        |     hashmap_free ();
    0x00001cce mvn r2, 1                                         |     r2 = ~1;
    0x00001cd2 movs r3, 0                                        |     r3 = 0;
    0x00001cd4 ldr.w sb, [sp, 0x20]                              |     sb = var_20h;
    0x00001cd8 strd r2, r3, [sp, 0x94]                           |     __asm ("strd r2, r3, [var_94h]");
    0x00001cdc b 0x1cfc                                          |     
                                                                 |     while (r0 != 0) {
    0x00001cde ldr r1, [sp, 0x78]                                |         r1 = ptr;
    0x00001ce0 mov r0, sb                                        |         r0 = sb;
    0x00001ce2 blx 0x12dc                                        |         hashmap_remove ();
    0x00001ce6 mov r2, r5                                        |         r2 = r5;
    0x00001ce8 movs r1, 0                                        |         r1 = 0;
    0x00001cea blx 0x11b0                                        |         hashmap_free ();
    0x00001cee ldr r1, [sp, 0x78]                                |         r1 = ptr;
    0x00001cf0 mov r0, sb                                        |         r0 = sb;
    0x00001cf2 blx 0x12dc                                        |         hashmap_remove ();
    0x00001cf6 ldr r0, [sp, 0x78]                                |         r0 = ptr;
    0x00001cf8 blx 0x1060                                        |         free (r0);
    0x00001cfc mov r3, r4                                        |         r3 = r4;
    0x00001cfe mov r2, r6                                        |         r2 = r6;
    0x00001d00 mov r1, r7                                        |         r1 = r7;
    0x00001d02 mov r0, sb                                        |         r0 = sb;
    0x00001d04 blx 0x1024                                        |         r0 = hashmap_iterate ();
    0x00001d08 cmp r0, 0                                         |         
    0x00001d0a bne 0x1cde                                        |         
                                                                 |     }
    0x00001d0c ldr r2, [sp, 0x30]                                |     r2 = var_30h;
    0x00001d0e mov r1, r0                                        |     r1 = r0;
    0x00001d10 mov r3, r2                                        |     r3 = r2;
    0x00001d12 cmp r2, 0                                         |     
    0x00001d14 it eq                                             |     
                                                                 |     if (r2 != 0) {
    0x00001d16 moveq r3, r8                                      |         r3 = r8;
                                                                 |     }
    0x00001d18 mov r2, r0                                        |     r2 = r0;
    0x00001d1a ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x00001d1c str r3, [sp, 0x30]                                |     var_30h = r3;
    0x00001d1e blx 0x11b0                                        |     hashmap_free ();
    0x00001d22 ldr.w r2, [pc, 0x954]                             |     
    0x00001d26 ldr.w r3, [pc, 0x900]                             |     r3 = *(0x262a);
    0x00001d2a add r2, pc                                        |     r2 = 0x43a8;
    0x00001d2c ldr r3, [r2, r3]                                  |     r3 = *(0x43a8);
    0x00001d2e ldr r2, [r3]                                      |     r2 = *(0x43a8);
    0x00001d30 ldr r3, [sp, 0x9c]                                |     r3 = var_9ch;
    0x00001d32 eors r2, r3                                       |     r2 ^= r3;
    0x00001d34 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00001d38 bne.w 0x27d0                                      |         goto label_60;
                                                                 |     }
    0x00001d3c ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x00001d3e add sp, 0xa4                                      |     
    0x00001d40 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_50:
    0x00001d44 add.w r8, r7, 0x13                                |     r8 = r7 + 0x13;
    0x00001d48 ldr r1, [sp, 0x34]                                |     r1 = var_34h;
    0x00001d4a mov r0, r8                                        |     r0 = r8;
    0x00001d4c blx 0x1120                                        |     r0 = endswith ();
    0x00001d50 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001d52 beq.w 0x1ace                                      |         goto label_5;
                                                                 |     }
    0x00001d56 mov r2, sl                                        |     r2 = sl;
    0x00001d58 adds r1, r6, 2                                    |     r1 = r6 + 2;
    0x00001d5a mov r0, sb                                        |     r0 = sb;
    0x00001d5c blx 0x1144                                        |     r0 = greedy_realloc0 ();
                                                                 |     if (r0 != 0) {
    0x00001d60 cbz r0, 0x1d80                                    |         
    0x00001d62 mov r0, r8                                        |         r0 = r8;
    0x00001d64 ldr.w r8, [sp, 0x8c]                              |         r8 = var_8ch;
    0x00001d68 blx 0x12e8                                        |         strdup (r0);
    0x00001d6c str.w r0, [r8, r6, lsl 2]                         |         __asm ("str.w r0, [r8, r6, lsl 2]");
    0x00001d70 ldr r0, [sp, 0x8c]                                |         r0 = var_8ch;
    0x00001d72 ldr.w r2, [r0, r6, lsl 2]                         |         offset_1 = r6 << 2;
                                                                 |         r2 = *((r0 + offset_1));
    0x00001d76 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x00001d78 beq.w 0x241a                                      |             goto label_61;
                                                                 |         }
    0x00001d7c adds r6, 1                                        |         r6++;
    0x00001d7e b 0x1ace                                          |         goto label_5;
                                                                 |     }
                                                                 | label_51:
    0x00001d80 ldr r0, [sp, 0x8c]                                |     r0 = var_8ch;
    0x00001d82 mvn r3, 0xb                                       |     r3 = ~0xb;
    0x00001d86 ldr r7, [sp, 0x2c]                                |     r7 = var_2ch;
    0x00001d88 ldr.w sl, [sp, 0x44]                              |     sl = var_44h;
    0x00001d8c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00001d8e bne.w 0x1b2e                                      |         goto label_6;
                                                                 |     }
                                                                 | label_14:
    0x00001d92 ldr r0, [sp, 0x88]                                |     r0 = var_88h;
    0x00001d94 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00001d96 bne.w 0x1b3c                                      |         goto label_7;
                                                                 |     }
    0x00001d9a b 0x1b46                                          |     goto label_8;
                                                                 | label_52:
    0x00001d9c blx 0x10f0                                        |     strv_sort ();
    0x00001da0 ldr r0, [sp, 0x88]                                |     r0 = var_88h;
    0x00001da2 blx 0x10f0                                        |     strv_sort ();
    0x00001da6 ldr r3, [sp, 0x8c]                                |     r3 = var_8ch;
    0x00001da8 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00001daa beq.w 0x226c                                      |         goto label_62;
                                                                 |     }
    0x00001dae subs r3, 4                                        |     r3 -= 4;
    0x00001db0 ldr.w sb, [sp, 0x3c]                              |     sb = var_3ch;
    0x00001db4 str r3, [sp, 0x4c]                                |     var_4ch = r3;
    0x00001db6 mov fp, r4                                        |     
    0x00001db8 ldr.w r3, [pc, 0x8c0]                             |     
    0x00001dbc str.w sl, [sp, 0x6c]                              |     __asm ("str.w sl, [var_6ch]");
    0x00001dc0 mov sl, r7                                        |     sl = r7;
    0x00001dc2 add r3, pc                                        |     r3 = 0x4442;
    0x00001dc4 adds r3, 7                                        |     r3 += 7;
    0x00001dc6 str r3, [sp, 0x68]                                |     var_68h = r3;
    0x00001dc8 ldr.w r3, [pc, 0x8b4]                             |     
    0x00001dcc add r3, pc                                        |     r3 = 0x4450;
    0x00001dce adds r3, 7                                        |     r3 += 7;
    0x00001dd0 str r3, [sp, 0x64]                                |     var_64h = r3;
                                                                 | label_17:
    0x00001dd2 ldr r3, [sp, 0x4c]                                |     r3 = var_4ch;
    0x00001dd4 ldr r4, [r3, 4]!                                  |     r4 = *((r3 += 4));
    0x00001dd8 str r3, [sp, 0x4c]                                |     var_4ch = r3;
    0x00001dda cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00001ddc beq.w 0x2264                                      |         goto label_63;
                                                                 |     }
    0x00001de0 movs r3, 0                                        |     r3 = 0;
    0x00001de2 ldr r1, [sp, 0x5c]                                |     r1 = var_5ch;
    0x00001de4 mov r0, r4                                        |     r0 = r4;
    0x00001de6 str r3, [sp, 0x94]                                |     var_94h = r3;
    0x00001de8 blx 0x1120                                        |     r0 = endswith ();
    0x00001dec mov r6, r0                                        |     r6 = r0;
    0x00001dee cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00001df0 bne.w 0x2238                                      |         goto label_64;
                                                                 |     }
    0x00001df4 mov.w r3, -1                                      |     r3 = -1;
    0x00001df8 mov r2, r4                                        |     r2 = r4;
    0x00001dfa mov r1, sl                                        |     r1 = sl;
    0x00001dfc blx 0x11ec                                        |     r0 = path_extend_internal ();
    0x00001e00 mov r7, r0                                        |     r7 = r0;
    0x00001e02 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001e04 beq.w 0x1ffa                                      |         goto label_65;
                                                                 |     }
    0x00001e08 blx 0x10fc                                        |     r0 = log_get_max_level ();
    0x00001e0c cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x00001e0e bgt.w 0x2084                                      |         goto label_66;
                                                                 |     }
                                                                 | label_16:
    0x00001e12 mov r0, r4                                        |     r0 = r4;
    0x00001e14 blx 0x12e8                                        |     strdup (r0);
    0x00001e16 orn r6, r8, r6, lsl 16                            |     r6 = r8 | r6;
                                                                 |     r6 = ~r6;
    0x00001e1a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001e1c beq.w 0x1ffa                                      |         goto label_65;
                                                                 |     }
    0x00001e20 movs r1, 0x2e                                     |     r1 = 0x2e;
    0x00001e22 blx 0x12a0                                        |     r0 = strrchr (r0, r1);
    0x00001e26 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001e28 beq.w 0x2588                                      |         goto label_67;
                                                                 |     }
    0x00001e2c movs r3, 0                                        |     r3 = 0;
    0x00001e2e add r1, sp, 0x94                                  |     r1 += var_94h;
    0x00001e30 strb r3, [r0]                                     |     *(r0) = r3;
    0x00001e32 mov r0, r7                                        |     r0 = r7;
    0x00001e34 blx 0x1018                                        |     r0 = get_files_in_directory ();
    0x00001e38 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00001e3a blt.w 0x200e                                      |         goto label_68;
                                                                 |     }
    0x00001e3e ldr r0, [sp, 0x94]                                |     r0 = var_94h;
    0x00001e40 blx 0x10f0                                        |     strv_sort ();
    0x00001e44 ldr r3, [sp, 0x94]                                |     r3 = var_94h;
    0x00001e46 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00001e48 beq.w 0x20b2                                      |         goto label_37;
                                                                 |     }
    0x00001e4c sub.w r8, r3, 4                                   |     r8 = r3 - 4;
    0x00001e50 ldr.w r3, [pc, 0x830]                             |     
    0x00001e54 add r3, pc                                        |     r3 = 0x44dc;
    0x00001e56 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00001e58 ldr.w r3, [pc, 0x82c]                             |     
    0x00001e5c add r3, pc                                        |     r3 = 0x44e8;
    0x00001e5e str r3, [sp, 0x60]                                |     var_60h = r3;
                                                                 |     do {
                                                                 | label_9:
    0x00001e60 ldr r4, [r8, 4]!                                  |         r4 = *((r8 += 4));
    0x00001e64 cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x00001e66 beq.w 0x20aa                                      |             goto label_69;
                                                                 |         }
    0x00001e6a ldr r1, [sp, 0x2c]                                |         r1 = var_2ch;
    0x00001e6c mov r0, r4                                        |         r0 = r4;
    0x00001e6e blx 0x1120                                        |         r0 = endswith ();
    0x00001e72 cmp r0, 0                                         |         
    0x00001e74 beq 0x1e60                                        |         
                                                                 |     } while (r0 == 0);
    0x00001e76 mov r2, r4                                        |     r2 = r4;
    0x00001e78 mov.w r3, -1                                      |     r3 = -1;
    0x00001e7c mov r1, r7                                        |     r1 = r7;
    0x00001e7e movs r0, 0                                        |     r0 = 0;
    0x00001e80 blx 0x11ec                                        |     r0 = path_extend_internal ();
    0x00001e84 mov r5, r0                                        |     r5 = r0;
    0x00001e86 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001e88 beq.w 0x2252                                      |         goto label_70;
                                                                 |     }
    0x00001e8c mov r0, sl                                        |     r0 = sl;
    0x00001e8e blx 0x1258                                        |     r0 = strlen (r0);
    0x00001e92 adds r4, r0, 1                                    |     r4 = r0 + 1;
    0x00001e94 blx 0x10fc                                        |     r0 = log_get_max_level ();
    0x00001e98 cmp r0, 6                                         |     
    0x00001e9a add r4, r5                                        |     r4 += r5;
                                                                 |     if (r0 > 6) {
    0x00001e9c bgt 0x1f78                                        |         goto label_71;
                                                                 |     }
                                                                 | label_11:
    0x00001e9e ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x00001ea0 mov r2, r5                                        |     r2 = r5;
    0x00001ea2 mov r1, r4                                        |     r1 = r4;
    0x00001ea4 blx 0x1300                                        |     r0 = hashmap_put ();
    0x00001ea8 subs r3, r0, 0                                    |     r3 = r0 - 0;
                                                                 |     if (r3 >= r0) {
    0x00001eaa bge 0x1f2e                                        |         goto label_72;
                                                                 |     }
    0x00001eac cmn.w r3, 0x11                                    |     
                                                                 |     if (r3 != 0x11) {
    0x00001eb0 bne.w 0x2114                                      |         goto label_73;
                                                                 |     }
    0x00001eb4 blx 0x10fc                                        |     r0 = log_get_max_level ();
    0x00001eb8 cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x00001eba bgt 0x1f4e                                        |         goto label_74;
                                                                 |     }
                                                                 | label_10:
    0x00001ebc mov r1, r4                                        |     r1 = r4;
    0x00001ebe mov r0, sb                                        |     r0 = sb;
    0x00001ec0 blx 0x12dc                                        |     hashmap_remove ();
    0x00001ec4 blx 0x1060                                        |     free (r0);
    0x00001ec8 mov r2, r5                                        |     r2 = r5;
    0x00001eca mov r1, r4                                        |     r1 = r4;
    0x00001ecc mov r0, sb                                        |     r0 = sb;
    0x00001ece blx 0x1300                                        |     r0 = hashmap_put ();
    0x00001ed2 subs r3, r0, 0                                    |     r3 = r0 - 0;
                                                                 |     if (r3 < r0) {
    0x00001ed4 blt.w 0x2114                                      |         goto label_73;
                                                                 |     }
    0x00001ed8 ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x00001eda mov r1, r6                                        |     r1 = r6;
    0x00001edc blx 0x10e4                                        |     r0 = hashmap_get ();
    0x00001ee0 mov r4, r0                                        |     r4 = r0;
    0x00001ee2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001ee4 beq 0x1fd4                                        |         goto label_75;
                                                                 |     }
                                                                 | label_13:
    0x00001ee6 mov r0, r5                                        |     r0 = r5;
    0x00001ee8 blx 0x12e8                                        |     r0 = strdup (r0);
    0x00001eec mov r5, r0                                        |     r5 = r0;
    0x00001eee cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001ef0 beq.w 0x2252                                      |         goto label_70;
                                                                 |     }
    0x00001ef4 blx 0x10fc                                        |     r0 = log_get_max_level ();
    0x00001ef8 cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x00001efa bgt 0x1fa2                                        |         goto label_76;
                                                                 |     }
                                                                 | label_12:
    0x00001efc mov r0, r5                                        |     r0 = r5;
    0x00001efe blx 0x11f8                                        |     basename (r0);
    0x00001f02 mov r2, r5                                        |     r2 = r5;
    0x00001f04 mov r1, r0                                        |     r1 = r0;
    0x00001f06 mov r0, r4                                        |     r0 = r4;
    0x00001f08 blx 0x1300                                        |     r0 = hashmap_put ();
    0x00001f0c subs r3, r0, 0                                    |     r3 = r0 - 0;
                                                                 |     if (r3 >= r0) {
    0x00001f0e bge 0x1e60                                        |         goto label_9;
                                                                 |     }
    0x00001f10 mov r0, r5                                        |     r0 = r5;
    0x00001f12 str r3, [sp, 0x44]                                |     var_44h = r3;
    0x00001f14 blx 0x1060                                        |     free (r0);
    0x00001f16 invalid                                           |     
    0x00001f1a cmn.w r3, 0x11                                    |     
                                                                 |     if (r3 == 0x11) {
    0x00001f1e beq 0x1e60                                        |         goto label_9;
                                                                 |     }
    0x00001f20 mov sb, r7                                        |     sb = r7;
    0x00001f22 mov r4, fp                                        |     r4 = fp;
    0x00001f24 mov r7, sl                                        |     r7 = sl;
    0x00001f26 mov r8, r6                                        |     r8 = r6;
    0x00001f28 ldr.w sl, [sp, 0x6c]                              |     sl = var_6ch;
    0x00001f2c b 0x203a                                          |     goto label_18;
                                                                 | label_72:
    0x00001f2e mov r0, r5                                        |     r0 = r5;
    0x00001f30 blx 0x12e8                                        |     r0 = strdup (r0);
    0x00001f34 mov r5, r0                                        |     r5 = r0;
    0x00001f36 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001f38 beq.w 0x2252                                      |         goto label_70;
                                                                 |     }
    0x00001f3c mov r0, sl                                        |     r0 = sl;
    0x00001f3e blx 0x1258                                        |     r0 = strlen (r0);
    0x00001f42 adds r4, r0, 1                                    |     r4 = r0 + 1;
    0x00001f44 blx 0x10fc                                        |     r0 = log_get_max_level ();
    0x00001f48 cmp r0, 6                                         |     
    0x00001f4a add r4, r5                                        |     r4 += r5;
                                                                 |     if (r0 <= 6) {
    0x00001f4c ble 0x1ebc                                        |         goto label_10;
                                                                 |     }
                                                                 | label_74:
    0x00001f4e movs r0, 0xf                                      |     r0 = 0xf;
    0x00001f50 blx 0x11d4                                        |     special_glyph ();
    0x00001f54 ldr.w r3, [pc, 0x734]                             |     
    0x00001f58 movs r1, 0                                        |     r1 = 0;
    0x00001f5a strd r0, r5, [sp, 0xc]                            |     __asm ("strd r0, r5, [var_ch]");
    0x00001f5e movs r0, 7                                        |     r0 = 7;
    0x00001f60 ldr r2, [sp, 0x64]                                |     r2 = var_64h;
    0x00001f62 add r3, pc                                        |     
    0x00001f64 str r4, [sp, 8]                                   |     var_8h = r4;
    0x00001f66 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00001f68 ldr.w r3, [pc, 0x724]                             |     r3 = *(0x00002690);
    0x00001f6c add r3, pc                                        |     r3 = 0x6562;
    0x00001f6e str r3, [sp]                                      |     *(sp) = r3;
    0x00001f70 movs r3, 0xfa                                     |     r3 = 0xfa;
    0x00001f72 blx 0x1180                                        |     log_internal ();
    0x00001f76 b 0x1ebc                                          |     goto label_10;
                                                                 | label_71:
    0x00001f78 movs r0, 0xf                                      |     r0 = 0xf;
    0x00001f7a blx 0x11d4                                        |     special_glyph ();
    0x00001f7e ldr.w r3, [pc, 0x714]                             |     
    0x00001f82 movs r1, 0                                        |     r1 = 0;
    0x00001f84 strd r0, r5, [sp, 0xc]                            |     __asm ("strd r0, r5, [var_ch]");
    0x00001f88 movs r0, 7                                        |     r0 = 7;
    0x00001f8a ldr r2, [sp, 0x50]                                |     r2 = var_50h;
    0x00001f8c add r3, pc                                        |     r3 = 0x4626;
    0x00001f8e str r4, [sp, 8]                                   |     var_8h = r4;
    0x00001f90 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00001f92 ldr.w r3, [pc, 0x704]                             |     
    0x00001f96 add r3, pc                                        |     r3 = 0x4634;
    0x00001f98 str r3, [sp]                                      |     *(sp) = r3;
    0x00001f9a movs r3, 0xee                                     |     r3 = 0xee;
    0x00001f9c blx 0x1180                                        |     log_internal ();
    0x00001fa0 b 0x1e9e                                          |     goto label_11;
                                                                 | label_76:
    0x00001fa2 movs r0, 0xf                                      |     r0 = 0xf;
    0x00001fa4 blx 0x11d4                                        |     special_glyph ();
    0x00001fa8 str r0, [sp, 0x44]                                |     var_44h = r0;
    0x00001faa mov r0, r5                                        |     r0 = r5;
    0x00001fac blx 0x11f8                                        |     basename (r0);
    0x00001fb0 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x00001fb2 movs r1, 0                                        |     r1 = 0;
    0x00001fb4 str r0, [sp, 0x10]                                |     var_10h = r0;
    0x00001fb6 movs r0, 7                                        |     r0 = 7;
    0x00001fb8 ldr r2, [sp, 0x68]                                |     r2 = var_68h;
    0x00001fba str r3, [sp, 0x14]                                |     var_14h = r3;
    0x00001fbc strd r6, r3, [sp, 8]                              |     __asm ("strd r6, r3, [var_8h]");
    0x00001fc0 ldr r3, [sp, 0x60]                                |     r3 = var_60h;
    0x00001fc2 str r5, [sp, 0x18]                                |     var_18h = r5;
    0x00001fc4 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00001fc6 ldr r3, [sp, 0x54]                                |     r3 = var_54h;
    0x00001fc8 str r3, [sp]                                      |     *(sp) = r3;
    0x00001fca movw r3, 0x111                                    |     r3 = 0x111;
    0x00001fce blx 0x1180                                        |     log_internal ();
    0x00001fd2 b 0x1efc                                          |     goto label_12;
                                                                 | label_75:
    0x00001fd4 ldr r0, [sp, 0x40]                                |     r0 = var_40h;
    0x00001fd6 blx 0x1168                                        |     r0 = ordered_hashmap_new ();
    0x00001fda mov r4, r0                                        |     r4 = r0;
    0x00001fdc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001fde beq.w 0x2252                                      |         goto label_70;
                                                                 |     }
    0x00001fe2 mov r1, r6                                        |     r1 = r6;
    0x00001fe4 mov r2, r0                                        |     r2 = r0;
    0x00001fe6 ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x00001fe8 blx 0x1300                                        |     hashmap_put ();
    0x00001fec mov r0, r6                                        |     r0 = r6;
    0x00001fee blx 0x12e8                                        |     r0 = strdup (r0);
    0x00001ff2 mov r6, r0                                        |     r6 = r0;
    0x00001ff4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00001ff6 bne.w 0x1ee6                                      |         goto label_13;
                                                                 |     }
                                                                 | label_65:
    0x00001ffa mov sb, r7                                        |     sb = r7;
    0x00001ffc mov r4, fp                                        |     r4 = fp;
    0x00001ffe mov r7, sl                                        |     r7 = sl;
    0x00002000 mov.w r8, 0                                       |     r8 = 0;
    0x00002004 ldr.w sl, [sp, 0x6c]                              |     sl = var_6ch;
    0x00002008 mvn r3, 0xb                                       |     r3 = ~0xb;
    0x0000200c b 0x203a                                          |     goto label_18;
                                                                 | label_68:
    0x0000200e mov r8, r6                                        |     r8 = r6;
    0x00002010 mov r6, r0                                        |     r6 = r0;
    0x00002012 blx 0x10fc                                        |     r0 = log_get_max_level ();
    0x00002016 cmp r0, 2                                         |     
    0x00002018 mov sb, r7                                        |     sb = r7;
    0x0000201a it le                                             |     
                                                                 |     if (r0 <= 2) {
    0x0000201c rsble r3, r6, 0                                   |         __asm ("rsble r3, r6, 0");
                                                                 |     }
    0x0000201e mov r7, sl                                        |     r7 = sl;
    0x00002020 it le                                             |     
                                                                 |     if (r0 <= 2) {
    0x00002022 bicle r3, r3, 0x40000000                          |         __asm ("bicle r3, r3, 0x40000000");
                                                                 |     }
    0x00002026 ldr.w sl, [sp, 0x6c]                              |     sl = var_6ch;
    0x0000202a mov r4, fp                                        |     r4 = fp;
    0x0000202c it le                                             |     
                                                                 |     if (r0 <= 2) {
    0x0000202e rsble r3, r3, 0                                   |         __asm ("rsble r3, r3, 0");
                                                                 |     }
                                                                 |     if (r0 > 2) {
    0x00002030 bgt 0x212c                                        |         goto label_77;
                                                                 |     }
                                                                 | label_19:
    0x00002032 cmp r3, 0                                         |     
    0x00002034 it ge                                             |     
                                                                 |     if (r3 < 0) {
    0x00002036 mvnge r3, 0x55                                    |         r3 = ~0x55;
                                                                 |     }
                                                                 | label_18:
    0x0000203a ldr r0, [sp, 0x94]                                |     r0 = var_94h;
    0x0000203c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000203e bne.w 0x2616                                      |         goto label_78;
                                                                 |     }
    0x00002042 str r3, [sp, 0x2c]                                |     var_2ch = r3;
                                                                 | label_38:
    0x00002044 mov r0, sb                                        |     r0 = sb;
    0x00002046 blx 0x1060                                        |     free (r0);
    0x0000204a mov r0, r8                                        |     r0 = r8;
    0x0000204c blx 0x1060                                        |     free (r0);
    0x00002050 ldr r0, [sp, 0x8c]                                |     r0 = var_8ch;
    0x00002052 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x00002054 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00002056 bne.w 0x1b2e                                      |         goto label_6;
                                                                 |     }
    0x0000205a b 0x1d92                                          |     goto label_14;
                                                                 | label_47:
    0x0000205c ldr.w r3, [pc, 0x63c]                             |     
    0x00002060 mov r1, r4                                        |     r1 = r4;
    0x00002062 ldr.w r2, [pc, 0x63c]                             |     
    0x00002066 movs r0, 7                                        |     r0 = 7;
    0x00002068 str r7, [sp, 8]                                   |     var_8h = r7;
    0x0000206a add r3, pc                                        |     r3 = 0x470a;
    0x0000206c str r3, [sp, 4]                                   |     var_4h = r3;
    0x0000206e add r2, pc                                        |     r2 = 0x4714;
    0x00002070 ldr.w r3, [pc, 0x630]                             |     
    0x00002074 adds r2, 7                                        |     r2 += 7;
    0x00002076 add r3, pc                                        |     r3 = 0x471e;
    0x00002078 str r3, [sp]                                      |     *(sp) = r3;
    0x0000207a movw r3, 0x12d                                    |     r3 = 0x12d;
    0x0000207e blx 0x1180                                        |     log_internal ();
    0x00002082 b 0x1a94                                          |     goto label_15;
                                                                 | label_66:
    0x00002084 ldr.w r3, [pc, 0x620]                             |     
    0x00002088 mov r1, r6                                        |     r1 = r6;
    0x0000208a ldr.w r2, [pc, 0x620]                             |     
    0x0000208e movs r0, 7                                        |     r0 = 7;
    0x00002090 str r7, [sp, 8]                                   |     var_8h = r7;
    0x00002092 add r3, pc                                        |     r3 = 0x473e;
    0x00002094 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002096 add r2, pc                                        |     r2 = 0x4748;
    0x00002098 ldr.w r3, [pc, 0x614]                             |     
    0x0000209c adds r2, 7                                        |     r2 += 7;
    0x0000209e add r3, pc                                        |     r3 = 0x4752;
    0x000020a0 str r3, [sp]                                      |     *(sp) = r3;
    0x000020a2 movs r3, 0xcf                                     |     r3 = 0xcf;
    0x000020a4 blx 0x1180                                        |     log_internal ();
    0x000020a8 b 0x1e12                                          |     goto label_16;
                                                                 | label_69:
    0x000020aa ldr r0, [sp, 0x94]                                |     r0 = var_94h;
    0x000020ac cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000020ae bne.w 0x25e4                                      |         goto label_79;
                                                                 |     }
                                                                 | label_37:
    0x000020b2 mov r0, r7                                        |     r0 = r7;
    0x000020b4 blx 0x1060                                        |     free (r0);
    0x000020b8 mov r0, r6                                        |     r0 = r6;
    0x000020ba blx 0x1060                                        |     free (r0);
    0x000020be b 0x1dd2                                          |     goto label_17;
                                                                 | label_43:
    0x000020c0 ldr.w r1, [pc, 0x5f0]                             |     
    0x000020c4 mov.w r2, 0x196                                   |     r2 = 0x196;
    0x000020c8 ldr.w r3, [pc, 0x5ec]                             |     
    0x000020cc ldr.w r0, [pc, 0x5ec]                             |     
    0x000020d0 add r1, pc                                        |     r1 = 0x4788;
    0x000020d2 add r3, pc                                        |     r3 = 0x478e;
    0x000020d4 adds r1, 7                                        |     r1 += 7;
    0x000020d6 add r0, pc                                        |     r0 = 0x4796;
    0x000020d8 blx 0x1048                                        |     log_assert_failed ();
                                                                 | label_44:
    0x000020dc ldr.w r1, [pc, 0x5e0]                             |     
    0x000020e0 movw r2, 0x197                                    |     r2 = 0x197;
    0x000020e4 ldr.w r3, [pc, 0x5dc]                             |     
    0x000020e8 ldr.w r0, [pc, 0x5dc]                             |     
    0x000020ec add r1, pc                                        |     r1 = 0x47b0;
    0x000020ee add r3, pc                                        |     r3 = 0x47b6;
    0x000020f0 adds r1, 7                                        |     r1 += 7;
    0x000020f2 add r0, pc                                        |     r0 = 0x47be;
    0x000020f4 blx 0x1048                                        |     log_assert_failed ();
                                                                 | label_45:
    0x000020f8 ldr.w r1, [pc, 0x5d0]                             |     
    0x000020fc mov.w r2, 0x198                                   |     r2 = 0x198;
    0x00002100 ldr.w r3, [pc, 0x5cc]                             |     
    0x00002104 ldr.w r0, [pc, 0x5cc]                             |     
    0x00002108 add r1, pc                                        |     r1 = 0x47d8;
    0x0000210a add r3, pc                                        |     r3 = 0x47de;
    0x0000210c adds r1, 7                                        |     r1 += 7;
    0x0000210e add r0, pc                                        |     r0 = 0x47e6;
    0x00002110 blx 0x1048                                        |     log_assert_failed ();
                                                                 | label_73:
    0x00002114 mov r0, r5                                        |     r0 = r5;
    0x00002116 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00002118 mov sb, r7                                        |     sb = r7;
    0x0000211a mov r4, fp                                        |     r4 = fp;
    0x0000211c mov r7, sl                                        |     r7 = sl;
    0x0000211e mov r8, r6                                        |     r8 = r6;
    0x00002120 ldr.w sl, [sp, 0x6c]                              |     sl = var_6ch;
    0x00002124 blx 0x1060                                        |     free (r0);
    0x00002128 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x0000212a b 0x203a                                          |     goto label_18;
                                                                 | label_77:
    0x0000212c ldr.w r3, [pc, 0x5a8]                             |     
    0x00002130 mov r1, r6                                        |     r1 = r6;
    0x00002132 ldr.w r2, [pc, 0x5a8]                             |     
    0x00002136 movs r0, 3                                        |     r0 = 3;
    0x00002138 str.w sb, [sp, 8]                                 |     __asm ("str.w sb, [var_8h]");
    0x0000213c add r3, pc                                        |     r3 = 0x4818;
    0x0000213e str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002140 add r2, pc                                        |     r2 = 0x4822;
    0x00002142 ldr.w r3, [pc, 0x59c]                             |     
    0x00002146 adds r2, 7                                        |     r2 += 7;
    0x00002148 add r3, pc                                        |     r3 = 0x482e;
    0x0000214a str r3, [sp]                                      |     *(sp) = r3;
    0x0000214c movs r3, 0xdc                                     |     r3 = 0xdc;
    0x0000214e blx 0x1180                                        |     r0 = log_internal ();
    0x00002152 mov r3, r0                                        |     r3 = r0;
    0x00002154 b 0x2032                                          |     goto label_19;
                                                                 | label_58:
    0x00002156 ldr.w sl, [sp, 0x48]                              |     sl = var_48h;
    0x0000215a b 0x1bac                                          |     goto label_20;
                                                                 | label_55:
    0x0000215c mov.w sb, 0                                       |     sb = 0;
    0x00002160 str.w sb, [sp, 0x84]                              |     __asm ("str.w sb, [var_84h]");
    0x00002164 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00002166 beq.w 0x2552                                      |         goto label_80;
                                                                 |     }
    0x0000216a mov r1, sb                                        |     r1 = sb;
    0x0000216c mov r0, r5                                        |     r0 = r5;
    0x0000216e blx 0x1174                                        |     r0 = null_or_empty_path_with_root ();
    0x00002172 cmp r0, 0                                         |     
                                                                 |     if (r0 > 0) {
    0x00002174 bgt.w 0x23ae                                      |         goto label_81;
                                                                 |     }
    0x00002178 add r1, sp, 0x84                                  |     r1 += var_84h;
    0x0000217a mov r0, r5                                        |     r0 = r5;
    0x0000217c blx 0x118c                                        |     r0 = readlink_malloc ();
    0x00002180 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00002182 blt.w 0x242c                                      |         goto label_82;
                                                                 |     }
    0x00002186 ldr r0, [sp, 0x84]                                |     r0 = var_84h;
    0x00002188 add r3, sp, 0x88                                  |     r3 += var_88h;
    0x0000218a movs r2, 0x10                                     |     r2 = 0x10;
    0x0000218c mov r1, sb                                        |     r1 = sb;
    0x0000218e str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x00002192 str.w sb, [sp, 0x88]                              |     __asm ("str.w sb, [var_88h]");
    0x00002196 str.w sb, [sp, 0x94]                              |     __asm ("str.w sb, [var_94h]");
    0x0000219a blx 0x124c                                        |     r0 = chase_symlinks ();
    0x0000219e cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000021a0 blt.w 0x24e0                                      |         goto label_83;
                                                                 |     }
    0x000021a4 mov r1, sb                                        |     r1 = sb;
    0x000021a6 add r3, sp, 0x94                                  |     r3 += var_94h;
    0x000021a8 movs r2, 0x10                                     |     r2 = 0x10;
    0x000021aa mov r0, r7                                        |     r0 = r7;
    0x000021ac str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x000021b0 blx 0x124c                                        |     r0 = chase_symlinks ();
    0x000021b4 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000021b6 blt.w 0x24e0                                      |         goto label_83;
                                                                 |     }
    0x000021ba ldr.w fp, [sp, 0x94]                              |     fp = var_94h;
    0x000021be ldr r0, [sp, 0x88]                                |     r0 = var_88h;
    0x000021c0 mov r1, fp                                        |     r1 = fp;
    0x000021c2 blx 0x10d8                                        |     r0 = path_compare ();
    0x000021c6 mov sb, r0                                        |     sb = r0;
    0x000021c8 mov r0, fp                                        |     r0 = fp;
    0x000021ca blx 0x1060                                        |     free (r0);
    0x000021ce ldr r0, [sp, 0x88]                                |     r0 = var_88h;
    0x000021d0 blx 0x1060                                        |     free (r0);
    0x000021d4 ldr.w r3, [pc, 0x50c]                             |     
    0x000021d8 add r3, pc                                        |     
    0x000021da ldr r3, [r3]                                      |     r3 = *(0x48c0);
    0x000021dc cmp.w sb, 0                                       |     
                                                                 |     if (sb != 0) {
    0x000021e0 bne.w 0x24ec                                      |         goto label_84;
                                                                 |     }
    0x000021e4 lsls r2, r3, 0x1e                                 |     r2 = r3 << 0x1e;
                                                                 |     if (r2 >= r3) {
    0x000021e6 bpl.w 0x23a6                                      |         goto label_26;
                                                                 |     }
    0x000021ea blx 0x1078                                        |     r0 = get_color_mode ();
    0x000021ee cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000021f0 beq.w 0x25a2                                      |         goto label_85;
                                                                 |     }
    0x000021f4 ldr.w sb, [pc, 0x4f0]                             |     
    0x000021f8 add sb, pc                                        |     sb = 0x48e4;
                                                                 | label_32:
    0x000021fa blx 0x1078                                        |     r0 = get_color_mode ();
    0x000021fe cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00002200 beq.w 0x259a                                      |         goto label_86;
                                                                 |     }
    0x00002204 ldr.w fp, [pc, 0x4e4]                             |     
    0x00002208 add fp, pc                                        |     fp = 0x48f8;
                                                                 | label_31:
    0x0000220a movs r0, 0xf                                      |     r0 = 0xf;
    0x0000220c add.w r8, r8, 1                                   |     r8++;
    0x00002210 blx 0x11d4                                        |     special_glyph ();
    0x00002214 ldr.w r3, [pc, 0x4d8]                             |     
    0x00002216 adds r4, 0xd8                                     |     r4 += 0xd8;
    0x00002218 mov r2, sb                                        |     r2 = sb;
    0x0000221a ldr.w r1, [pc, 0x4d8]                             |     
    0x0000221e strd r0, r7, [sp, 8]                              |     __asm ("strd r0, r7, [var_8h]");
    0x00002222 movs r0, 1                                        |     r0 = 1;
    0x00002224 add r3, pc                                        |     r3 = 0x4918;
    0x00002226 strd fp, r5, [sp]                                 |     __asm ("strd fp, r5, [sp]");
    0x0000222a add r1, pc                                        |     r1 = 0x4924;
    0x0000222c blx 0x12f4                                        |     printf_chk ()
    0x00002230 ldr r0, [sp, 0x84]                                |     r0 = var_84h;
    0x00002232 blx 0x1060                                        |     free (r0);
    0x00002236 b 0x1c00                                          |     goto label_21;
                                                                 | label_64:
    0x00002238 ldr.w r1, [pc, 0x4bc]                             |     
    0x0000223c movs r2, 0xc9                                     |     r2 = 0xc9;
    0x0000223e ldr.w r3, [pc, 0x4bc]                             |     
    0x00002242 ldr.w r0, [pc, 0x4bc]                             |     
    0x00002246 add r1, pc                                        |     r1 = 0x4942;
    0x00002248 add r3, pc                                        |     r3 = 0x494a;
    0x0000224a adds r1, 7                                        |     r1 += 7;
    0x0000224c add r0, pc                                        |     r0 = 0x4952;
    0x0000224e blx 0x1048                                        |     log_assert_failed ();
                                                                 | label_70:
    0x00002252 mov sb, r7                                        |     sb = r7;
    0x00002254 mov r4, fp                                        |     r4 = fp;
    0x00002256 mov r7, sl                                        |     r7 = sl;
    0x00002258 mov r8, r6                                        |     r8 = r6;
    0x0000225a ldr.w sl, [sp, 0x6c]                              |     sl = var_6ch;
    0x0000225e mvn r3, 0xb                                       |     r3 = ~0xb;
    0x00002262 b 0x203a                                          |     goto label_18;
                                                                 | label_63:
    0x00002264 mov r7, sl                                        |     r7 = sl;
    0x00002266 ldr.w sl, [sp, 0x6c]                              |     sl = var_6ch;
    0x0000226a mov r4, fp                                        |     r4 = fp;
                                                                 | label_62:
    0x0000226c ldr r3, [sp, 0x88]                                |     r3 = var_88h;
    0x0000226e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00002270 beq.w 0x25d6                                      |         goto label_87;
                                                                 |     }
    0x00002274 subs r6, r3, 4                                    |     r6 = r3 - 4;
    0x00002276 ldr.w r3, [pc, 0x48c]                             |     
    0x0000227a ldr.w fp, [pc, 0x48c]                             |     
    0x0000227e str.w sl, [sp, 0x4c]                              |     __asm ("str.w sl, [var_4ch]");
    0x00002282 add r3, pc                                        |     r3 = 0x498c;
    0x00002284 ldr.w r8, [sp, 0x3c]                              |     r8 = var_3ch;
    0x00002288 add.w sb, r3, 7                                   |     sb = r3 + 7;
    0x0000228c ldr.w r3, [pc, 0x47c]                             |     
    0x00002290 add fp, pc                                        |     fp = 0x499e;
    0x00002292 ldr.w sl, [sp, 0x28]                              |     sl = var_28h;
    0x00002296 str.w fp, [sp, 0x44]                              |     __asm ("str.w fp, [var_44h]");
    0x0000229a add r3, pc                                        |     r3 = 0x49aa;
    0x0000229c str r4, [sp, 0x60]                                |     var_60h = r4;
    0x0000229e adds r5, r3, 7                                    |     r5 = r3 + 7;
    0x000022a0 ldr.w r3, [pc, 0x46c]                             |     
    0x000022a4 mov fp, r5                                        |     
    0x000022a6 add r3, pc                                        |     r3 = 0x49ba;
    0x000022a8 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x000022aa b 0x22e4                                          |     
                                                                 |     while (r0 < 0) {
    0x000022ac cmn.w r0, 0x11                                    |         
                                                                 |         if (r0 != 0x11) {
    0x000022b0 bne.w 0x2546                                      |             goto label_88;
                                                                 |         }
                                                                 | label_22:
    0x000022b4 blx 0x10fc                                        |         r0 = log_get_max_level ();
    0x000022b8 cmp r0, 6                                         |         
                                                                 |         if (r0 > 6) {
    0x000022ba bgt 0x2374                                        |             goto label_89;
                                                                 |         }
                                                                 | label_24:
    0x000022bc mov r0, r4                                        |         r0 = r4;
    0x000022be blx 0x11f8                                        |         r0 = basename (r0);
    0x000022c2 mov r1, r0                                        |         r1 = r0;
    0x000022c4 mov r0, r8                                        |         r0 = r8;
    0x000022c6 blx 0x12dc                                        |         hashmap_remove ();
    0x000022ca blx 0x1060                                        |         free (r0);
    0x000022ce mov r0, r4                                        |         r0 = r4;
    0x000022d0 blx 0x11f8                                        |         basename (r0);
    0x000022d4 mov r2, r4                                        |         r2 = r4;
    0x000022d6 mov r1, r0                                        |         r1 = r0;
    0x000022d8 mov r0, r8                                        |         r0 = r8;
    0x000022da blx 0x1300                                        |         r0 = hashmap_put ();
    0x000022de cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x000022e0 blt.w 0x2546                                      |             goto label_88;
                                                                 |         }
    0x000022e4 ldr r2, [r6, 4]!                                  |         r2 = *((r6 += 4));
    0x000022e8 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x000022ea beq.w 0x2566                                      |             goto label_90;
                                                                 |         }
    0x000022ee mov.w r3, -1                                      |         r3 = -1;
    0x000022f2 mov r1, r7                                        |         r1 = r7;
    0x000022f4 movs r0, 0                                        |         r0 = 0;
    0x000022f6 blx 0x11ec                                        |         r0 = path_extend_internal ();
    0x000022fa mov r4, r0                                        |         r4 = r0;
                                                                 |         if (r0 == 0) {
    0x000022fc cbz r0, 0x2326                                    |             goto label_91;
                                                                 |         }
    0x000022fe blx 0x10fc                                        |         r0 = log_get_max_level ();
    0x00002302 cmp r0, 6                                         |         
                                                                 |         if (r0 > 6) {
    0x00002304 bgt 0x2348                                        |             goto label_92;
                                                                 |         }
                                                                 | label_23:
    0x00002306 mov r0, r4                                        |         r0 = r4;
    0x00002308 blx 0x11f8                                        |         basename (r0);
    0x0000230c mov r2, r4                                        |         r2 = r4;
    0x0000230e mov r1, r0                                        |         r1 = r0;
    0x00002310 mov r0, sl                                        |         r0 = sl;
    0x00002312 blx 0x1300                                        |         r0 = hashmap_put ();
    0x00002316 cmp r0, 0                                         |         
    0x00002318 blt 0x22ac                                        |         
                                                                 |     }
    0x0000231a mov r0, r4                                        |     r0 = r4;
    0x0000231c blx 0x12e8                                        |     r0 = strdup (r0);
    0x00002320 mov r4, r0                                        |     r4 = r0;
    0x00002322 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00002324 bne 0x22b4                                        |         goto label_22;
                                                                 |     }
                                                                 | label_91:
    0x00002326 ldr.w sl, [sp, 0x4c]                              |     sl = var_4ch;
    0x0000232a mov.w r8, 0                                       |     r8 = 0;
    0x0000232e ldr r4, [sp, 0x60]                                |     r4 = var_60h;
    0x00002330 mvn r3, 0xb                                       |     r3 = ~0xb;
                                                                 | label_28:
    0x00002334 mov r0, r8                                        |     r0 = r8;
    0x00002336 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00002338 blx 0x1060                                        |     free (r0);
    0x0000233c ldr r0, [sp, 0x8c]                                |     r0 = var_8ch;
    0x0000233e ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x00002340 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00002342 bne.w 0x1b2e                                      |         goto label_6;
                                                                 |     }
    0x00002346 b 0x1d92                                          |     goto label_14;
                                                                 | label_92:
    0x00002348 mov r0, r4                                        |     r0 = r4;
    0x0000234a blx 0x11f8                                        |     r0 = basename (r0);
    0x0000234e mov r5, r0                                        |     r5 = r0;
    0x00002350 movs r0, 0xf                                      |     r0 = 0xf;
    0x00002352 blx 0x11d4                                        |     special_glyph ();
    0x00002356 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x00002358 mov r2, sb                                        |     r2 = sb;
    0x0000235a strd r5, r0, [sp, 8]                              |     __asm ("strd r5, r0, [var_8h]");
    0x0000235e movs r1, 0                                        |     r1 = 0;
    0x00002360 str r4, [sp, 0x10]                                |     var_10h = r4;
    0x00002362 movs r0, 7                                        |     r0 = 7;
    0x00002364 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002366 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x00002368 str r3, [sp]                                      |     *(sp) = r3;
    0x0000236a mov.w r3, 0x15e                                   |     r3 = 0x15e;
    0x0000236e blx 0x1180                                        |     log_internal ();
    0x00002372 b 0x2306                                          |     goto label_23;
                                                                 | label_89:
    0x00002374 mov r0, r4                                        |     r0 = r4;
    0x00002376 blx 0x11f8                                        |     r0 = basename (r0);
    0x0000237a mov r5, r0                                        |     r5 = r0;
    0x0000237c movs r0, 0xf                                      |     r0 = 0xf;
    0x0000237e blx 0x11d4                                        |     special_glyph ();
    0x00002382 ldr r3, [pc, 0x390]                               |     
    0x00002384 mov r2, fp                                        |     r2 = fp;
    0x00002386 strd r5, r0, [sp, 8]                              |     __asm ("strd r5, r0, [var_8h]");
    0x0000238a movs r1, 0                                        |     r1 = 0;
    0x0000238c str r4, [sp, 0x10]                                |     var_10h = r4;
    0x0000238e movs r0, 7                                        |     r0 = 7;
    0x00002390 add r3, pc                                        |     r3 = 0x4aaa;
    0x00002392 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002394 ldr r3, [pc, 0x380]                               |     
    0x00002396 add r3, pc                                        |     r3 = 0x4ab2;
    0x00002398 str r3, [sp]                                      |     *(sp) = r3;
    0x0000239a movw r3, 0x167                                    |     r3 = 0x167;
    0x0000239e blx 0x1180                                        |     log_internal ();
    0x000023a2 b 0x22bc                                          |     goto label_24;
                                                                 | label_25:
    0x000023a4 add r8, r3                                        |     r8 += r3;
                                                                 |     do {
                                                                 | label_26:
    0x000023a6 ldr r0, [sp, 0x84]                                |         r0 = var_84h;
    0x000023a8 blx 0x1060                                        |         free (r0);
    0x000023ac b 0x1c00                                          |         goto label_21;
                                                                 | label_81:
    0x000023ae ldr r3, [pc, 0x36c]                               |         
    0x000023b0 add r3, pc                                        |         
    0x000023b2 ldr r3, [r3]                                      |         r3 = *(0x4ad2);
    0x000023b4 lsls r1, r3, 0x1f                                 |         r1 = r3 << 0x1f;
    0x000023b6 bpl 0x23a6                                        |         
                                                                 |     } while (r1 >= r3);
    0x000023b8 blx 0x1078                                        |     r0 = get_color_mode ();
    0x000023bc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000023be beq.w 0x2580                                      |         goto label_93;
                                                                 |     }
    0x000023c2 ldr.w sb, [pc, 0x35c]                             |     
    0x000023c6 add sb, pc                                        |     sb = 0x4aec;
                                                                 | label_30:
    0x000023c8 blx 0x1078                                        |     r0 = get_color_mode ();
    0x000023cc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000023ce beq.w 0x2578                                      |         goto label_94;
                                                                 |     }
    0x000023d2 ldr.w fp, [pc, 0x350]                             |     
    0x000023d6 add fp, pc                                        |     fp = 0x4b00;
                                                                 | label_29:
    0x000023d8 movs r0, 0xf                                      |     r0 = 0xf;
    0x000023da add.w r8, r8, 1                                   |     r8++;
    0x000023de blx 0x11d4                                        |     special_glyph ();
    0x000023e2 ldr r3, [pc, 0x344]                               |     
    0x000023e4 mov r2, sb                                        |     r2 = sb;
    0x000023e6 ldr r1, [pc, 0x344]                               |     
    0x000023e8 strd r0, r7, [sp, 8]                              |     __asm ("strd r0, r7, [var_8h]");
    0x000023ec movs r0, 1                                        |     r0 = 1;
    0x000023ee add r3, pc                                        |     r3 = 0x4b1c;
    0x000023f0 strd fp, r5, [sp]                                 |     __asm ("strd fp, r5, [sp]");
    0x000023f4 add r1, pc                                        |     r1 = 0x4b26;
    0x000023f6 blx 0x12f4                                        |     printf_chk ()
    0x000023fa ldr r0, [sp, 0x84]                                |     r0 = var_84h;
    0x000023fc blx 0x1060                                        |     free (r0);
    0x00002400 b.w 0x1c00                                        |     goto label_21;
                                                                 | label_54:
    0x00002404 ldr r1, [pc, 0x328]                               |     
    0x00002406 movw r2, 0x1b9                                    |     r2 = 0x1b9;
    0x0000240a ldr r3, [pc, 0x328]                               |     
    0x0000240c ldr r0, [pc, 0x328]                               |     
    0x0000240e add r1, pc                                        |     r1 = 0x4b42;
    0x00002410 add r3, pc                                        |     r3 = 0x4b4a;
    0x00002412 adds r1, 7                                        |     r1 += 7;
    0x00002414 add r0, pc                                        |     r0 = 0x4b50;
    0x00002416 blx 0x1048                                        |     log_assert_failed ();
                                                                 | label_61:
    0x0000241a ldr r7, [sp, 0x2c]                                |     r7 = var_2ch;
    0x0000241c mvn r3, 0xb                                       |     r3 = ~0xb;
    0x00002420 ldr.w sl, [sp, 0x44]                              |     sl = var_44h;
    0x00002424 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00002426 bne.w 0x1b2e                                      |         goto label_6;
                                                                 |     }
    0x0000242a b 0x1d92                                          |     goto label_14;
                                                                 | label_82:
    0x0000242c ldr r3, [pc, 0x30c]                               |     
    0x0000242e add r3, pc                                        |     
    0x00002430 ldr r3, [r3]                                      |     r3 = *(0x4b6e);
    0x00002432 ands r3, r3, 8                                    |     r3 &= 8;
                                                                 |     if (r3 != r3) {
    0x00002436 beq 0x247a                                        |         
    0x00002438 blx 0x1078                                        |         r0 = get_color_mode ();
    0x0000243c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0000243e beq.w 0x25b2                                      |             goto label_95;
                                                                 |         }
    0x00002442 ldr.w sb, [pc, 0x2fc]                             |         
    0x00002446 add sb, pc                                        |         sb = 0x4b8c;
                                                                 | label_34:
    0x00002448 blx 0x1078                                        |         r0 = get_color_mode ();
    0x0000244c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0000244e beq.w 0x25aa                                      |             goto label_96;
                                                                 |         }
    0x00002452 ldr.w fp, [pc, 0x2f0]                             |         
    0x00002456 add fp, pc                                        |         fp = 0x4ba0;
                                                                 | label_33:
    0x00002458 movs r0, 0xf                                      |         r0 = 0xf;
    0x0000245a blx 0x11d4                                        |         special_glyph ();
    0x0000245e ldr r3, [pc, 0x2e8]                               |         
    0x00002460 mov r2, sb                                        |         r2 = sb;
    0x00002462 ldr r1, [pc, 0x2e8]                               |         
    0x00002464 str r0, [sp, 8]                                   |         var_8h = r0;
    0x00002466 movs r0, 1                                        |         r0 = 1;
    0x00002468 add r3, pc                                        |         r3 = 0x4bb6;
    0x0000246a str.w fp, [sp]                                    |         __asm ("str.w fp, [sp]");
    0x0000246e add r1, pc                                        |         r1 = 0x4bc0;
    0x00002470 str r7, [sp, 0xc]                                 |         var_ch = r7;
    0x00002472 str r5, [sp, 4]                                   |         var_4h = r5;
    0x00002474 blx 0x12f4                                        |         printf_chk ()
    0x00002476 invalid                                           |         
                                                                 |     }
    0x0000247a ldr r2, [pc, 0x2d4]                               |     
    0x0000247c add r2, pc                                        |     
    0x0000247e ldr r2, [r2]                                      |     r2 = *(0x4bd2);
    0x00002480 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00002482 beq 0x23a4                                        |         goto label_25;
                                                                 |     }
    0x00002484 ldr r3, [pc, 0x2cc]                               |     r3 = *(0x2754);
    0x00002486 movs r0, 0xa                                      |     r0 = 0xa;
    0x00002488 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x0000248a add.w sb, sp, 0x94                                |     sb += var_94h;
    0x0000248e ldr.w fp, [r2, r3]                                |     fp = *((r2 + r3));
    0x00002492 ldr.w r1, [fp]                                    |     r1 = *(fp);
    0x00002496 blx 0x11c8                                        |     putc (r0, r1);
    0x0000249a ldr.w r0, [fp]                                    |     r0 = *(fp);
    0x0000249e blx 0x1288                                        |     fflush (r0);
    0x000024a2 ldr r0, [pc, 0x2b4]                               |     
    0x000024a4 movs r2, 0                                        |     r2 = 0;
    0x000024a6 movw r3, 0x447                                    |     r3 = 0x447;
    0x000024aa mov r1, r2                                        |     r1 = r2;
    0x000024ac str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x000024b0 add r0, pc                                        |     r0 = 0x4c0e;
    0x000024b2 blx 0x115c                                        |     r0 = safe_fork_full ();
    0x000024b6 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000024b8 blt 0x25ba                                        |         goto label_97;
                                                                 |     }
                                                                 |     if (r0 == 0) {
    0x000024ba beq.w 0x25ea                                      |         goto label_98;
                                                                 |     }
    0x000024be add r8, r0                                        |     r8 += r0;
    0x000024c0 ldr r0, [pc, 0x298]                               |     
    0x000024c2 ldr r1, [sp, 0x94]                                |     r1 = var_94h;
    0x000024c4 movs r2, 1                                        |     r2 = 1;
    0x000024c6 add r0, pc                                        |     r0 = 0x4c26;
    0x000024c8 blx 0x10b4                                        |     wait_for_terminate_and_check ();
    0x000024cc ldr.w r1, [fp]                                    |     r1 = *(fp);
    0x000024d0 movs r0, 0xa                                      |     r0 = 0xa;
    0x000024d2 blx 0x11c8                                        |     putc (r0, r1);
    0x000024d6 ldr r0, [sp, 0x84]                                |     r0 = var_84h;
    0x000024d8 blx 0x1060                                        |     free (r0);
    0x000024dc b.w 0x1c00                                        |     goto label_21;
                                                                 | label_83:
    0x000024e0 ldr r0, [sp, 0x94]                                |     r0 = var_94h;
    0x000024e2 blx 0x1060                                        |     free (r0);
    0x000024e6 ldr r0, [sp, 0x88]                                |     r0 = var_88h;
    0x000024e8 blx 0x1060                                        |     free (r0);
                                                                 | label_84:
    0x000024ec ldr r3, [pc, 0x270]                               |     
    0x000024ee add r3, pc                                        |     
    0x000024f0 ldr r3, [r3]                                      |     r3 = *(0x4c52);
    0x000024f2 lsls r3, r3, 0x1d                                 |     r3 <<= 0x1d;
                                                                 |     if (r3 >= r3) {
    0x000024f4 bpl.w 0x23a6                                      |         goto label_26;
                                                                 |     }
    0x000024f8 blx 0x1078                                        |     r0 = get_color_mode ();
    0x000024fc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000024fe beq 0x25ce                                        |         goto label_99;
                                                                 |     }
    0x00002500 ldr.w sb, [pc, 0x260]                             |     
    0x00002504 add sb, pc                                        |     sb = 0x4c6c;
                                                                 | label_36:
    0x00002506 blx 0x1078                                        |     r0 = get_color_mode ();
    0x0000250a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000250c beq 0x25c6                                        |         goto label_100;
                                                                 |     }
    0x0000250e ldr.w fp, [pc, 0x258]                             |     
    0x00002512 add fp, pc                                        |     fp = 0x4c80;
                                                                 | label_35:
    0x00002514 movs r0, 0xf                                      |     r0 = 0xf;
    0x00002516 add.w r8, r8, 1                                   |     r8++;
    0x0000251a blx 0x11d4                                        |     special_glyph ();
    0x0000251e ldr r3, [pc, 0x24c]                               |     
    0x00002520 mov r2, sb                                        |     r2 = sb;
    0x00002522 ldr r1, [pc, 0x24c]                               |     
    0x00002524 strd r0, r7, [sp, 8]                              |     __asm ("strd r0, r7, [var_8h]");
    0x00002528 movs r0, 1                                        |     r0 = 1;
    0x0000252a add r3, pc                                        |     r3 = 0x4c9c;
    0x0000252c strd fp, r5, [sp]                                 |     __asm ("strd fp, r5, [sp]");
    0x00002530 add r1, pc                                        |     r1 = 0x4ca6;
    0x00002532 blx 0x12f4                                        |     printf_chk ()
    0x00002536 ldr r0, [sp, 0x84]                                |     r0 = var_84h;
    0x00002538 blx 0x1060                                        |     free (r0);
    0x0000253c b.w 0x1c00                                        |     goto label_21;
                                                                 | label_53:
    0x00002540 mov r4, sl                                        |     r4 = sl;
    0x00002542 b.w 0x1cae                                        |     goto label_27;
                                                                 | label_88:
    0x00002546 mov r8, r4                                        |     r8 = r4;
    0x00002548 ldr.w sl, [sp, 0x4c]                              |     sl = var_4ch;
    0x0000254a adr r0, 0x130                                     |     r0 = 0x130;
    0x0000254c ldr r4, [sp, 0x60]                                |     r4 = var_60h;
    0x0000254e mov r3, r0                                        |     r3 = r0;
    0x00002550 b 0x2334                                          |     goto label_28;
                                                                 | label_80:
    0x00002552 ldr r1, [pc, 0x220]                               |     
    0x00002554 movs r2, 0x97                                     |     r2 = 0x97;
    0x00002556 ldr r3, [pc, 0x220]                               |     
    0x00002558 ldr r0, [pc, 0x220]                               |     
    0x0000255a add r1, pc                                        |     r1 = 0x4cd4;
    0x0000255c add r3, pc                                        |     r3 = 0x4cda;
    0x0000255e adds r1, 7                                        |     r1 += 7;
    0x00002560 add r0, pc                                        |     r0 = 0x4ce0;
    0x00002562 blx 0x1048                                        |     log_assert_failed ();
                                                                 | label_90:
    0x00002566 ldr r0, [sp, 0x8c]                                |     r0 = var_8ch;
    0x00002568 mov r3, r2                                        |     r3 = r2;
    0x0000256a ldr.w sl, [sp, 0x4c]                              |     sl = var_4ch;
    0x0000256e ldr r4, [sp, 0x60]                                |     r4 = var_60h;
    0x00002570 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00002572 bne.w 0x1b2e                                      |         goto label_6;
                                                                 |     }
    0x00002576 b 0x1d92                                          |     goto label_14;
                                                                 | label_94:
    0x00002578 ldr.w fp, [pc, 0x204]                             |     
    0x0000257c add fp, pc                                        |     fp = 0x4d00;
    0x0000257e b 0x23d8                                          |     goto label_29;
                                                                 | label_93:
    0x00002580 ldr.w sb, [pc, 0x200]                             |     
    0x00002584 add sb, pc                                        |     sb = 0x4d0c;
    0x00002586 b 0x23c8                                          |     goto label_30;
                                                                 | label_67:
    0x00002588 mov sb, r7                                        |     sb = r7;
    0x0000258a mov r4, fp                                        |     r4 = fp;
    0x0000258c mov r7, sl                                        |     r7 = sl;
    0x0000258e mov r8, r6                                        |     r8 = r6;
    0x00002590 ldr.w sl, [sp, 0x6c]                              |     sl = var_6ch;
    0x00002594 mvn r3, 0x15                                      |     r3 = ~0x15;
    0x00002598 b 0x203a                                          |     goto label_18;
                                                                 | label_86:
    0x0000259a ldr.w fp, [pc, 0x1ec]                             |     
    0x0000259e add fp, pc                                        |     fp = 0x4d2c;
    0x000025a0 b 0x220a                                          |     goto label_31;
                                                                 | label_85:
    0x000025a2 ldr.w sb, [pc, 0x1e8]                             |     
    0x000025a6 add sb, pc                                        |     sb = 0x4d38;
    0x000025a8 b 0x21fa                                          |     goto label_32;
                                                                 | label_96:
    0x000025aa ldr.w fp, [pc, 0x1e4]                             |     
    0x000025ae add fp, pc                                        |     fp = 0x4d44;
    0x000025b0 b 0x2458                                          |     goto label_33;
                                                                 | label_95:
    0x000025b2 ldr.w sb, [pc, 0x1e0]                             |     
    0x000025b6 add sb, pc                                        |     sb = 0x4d50;
    0x000025b8 b 0x2448                                          |     goto label_34;
                                                                 | label_97:
    0x000025ba str r0, [sp, 0x30]                                |     var_30h = r0;
    0x000025bc ldr r0, [sp, 0x84]                                |     r0 = var_84h;
    0x000025be blx 0x1060                                        |     free (r0);
    0x000025c2 b.w 0x1c00                                        |     goto label_21;
                                                                 | label_100:
    0x000025c6 ldr.w fp, [pc, 0x1d0]                             |     
    0x000025ca add fp, pc                                        |     fp = 0x4d68;
    0x000025cc b 0x2514                                          |     goto label_35;
                                                                 | label_99:
    0x000025ce ldr.w sb, [pc, 0x1cc]                             |     
    0x000025d2 add sb, pc                                        |     sb = 0x4d74;
    0x000025d4 b 0x2506                                          |     goto label_36;
                                                                 | label_87:
    0x000025d6 ldr r0, [sp, 0x8c]                                |     r0 = var_8ch;
    0x000025d8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000025da bne.w 0x1b2e                                      |         goto label_6;
                                                                 |     }
    0x000025de mov r3, r0                                        |     r3 = r0;
    0x000025e0 b.w 0x1b46                                        |     goto label_8;
                                                                 | label_79:
    0x000025e4 blx 0x12ac                                        |     strv_free ();
    0x000025e8 b 0x20b2                                          |     goto label_37;
                                                                 | label_98:
    0x000025ea ldr r1, [pc, 0x1b4]                               |     
    0x000025ec ldr r3, [pc, 0x1b4]                               |     
    0x000025ee ldr r2, [pc, 0x1b8]                               |     
    0x000025f0 add r1, pc                                        |     r1 = 0x4d96;
    0x000025f2 strd r5, r0, [sp, 4]                              |     __asm ("strd r5, r0, [var_8h]");
    0x000025f6 add r3, pc                                        |     r3 = 0x4d9e;
    0x000025f8 mov r0, r1                                        |     r0 = r1;
    0x000025fa add r2, pc                                        |     r2 = 0x4da8;
    0x000025fc str r7, [sp]                                      |     *(sp) = r7;
    0x000025fe blx 0x1234                                        |     execlp ();
    0x00002602 blx 0x106c                                        |     log_open ();
    0x00002606 blx 0x10fc                                        |     r0 = log_get_max_level ();
    0x0000260a cmp r0, 2                                         |     
    0x0000260c bgt.w 0x27ac                                      |     
                                                                 |     while (1) {
    0x00002610 movs r0, 1                                        |         r0 = 1;
    0x00002612 blx 0x1264                                        |         exit (r0);
                                                                 | label_78:
    0x00002616 str r3, [sp, 0x2c]                                |         var_2ch = r3;
    0x00002618 blx 0x12ac                                        |         strv_free ();
    0x0000261c b 0x2044                                          |         goto label_38;
    0x000027ac blx 0x127c                                        |         errno_location ();
    0x000027b0 ldr r2, [pc, 0xc4]                                |         
    0x000027b2 mov r4, r0                                        |         r4 = r0;
    0x000027b4 ldr r1, [pc, 0xc4]                                |         
    0x000027b6 movs r3, 0xb3                                     |         r3 = 0xb3;
    0x000027b8 ldr r0, [pc, 0xc4]                                |         
    0x000027ba add r2, pc                                        |         r2 = 0x5036;
    0x000027bc add r1, pc                                        |         r1 = 0x503c;
    0x000027be adds r2, 7                                        |         r2 += 7;
    0x000027c0 add r0, pc                                        |         r0 = 0x5044;
    0x000027c2 str r1, [sp]                                      |         *(sp) = r1;
    0x000027c4 str r0, [sp, 4]                                   |         var_4h = r0;
    0x000027c6 movs r0, 3                                        |         r0 = 3;
    0x000027c8 ldr r1, [r4]                                      |         r1 = *(r4);
    0x000027ca blx 0x1180                                        |         log_internal ();
    0x000027ce b 0x2610                                          |         
                                                                 |     }
                                                                 | label_60:
    0x000027d0 blx 0x1198                                        |     stack_chk_fail ();
                                                                 | label_48:
    0x000027d4 blx 0x127c                                        |     r0 = errno_location ();
    0x000027d8 ldr r6, [r0]                                      |     r6 = *(r0);
    0x000027da cmp r6, 2                                         |     
                                                                 |     if (r6 == 2) {
    0x000027dc beq 0x281e                                        |         goto label_101;
                                                                 |     }
    0x000027de blx 0x10fc                                        |     r0 = log_get_max_level ();
    0x000027e2 cmp r0, 2                                         |     
                                                                 |     if (r0 > 2) {
    0x000027e4 bgt 0x2852                                        |         goto label_102;
                                                                 |     }
    0x000027e6 eor.w r3, r6, r6, asr 31                          |     r3 = r6 ^ (r6 >> 31);
    0x000027ea sub.w r3, r3, r6, asr 31                          |     r3 -= (r6 >> 31);
    0x000027ee bic r3, r3, 0x40000000                            |     r3 = BIT_MASK (r3, 0x40000000);
    0x000027f2 rsbs r3, r3, 0                                    |     r3 -= ;
                                                                 | label_42:
    0x000027f4 cmp r3, 0                                         |     
    0x000027f6 ldr r0, [sp, 0x8c]                                |     r0 = var_8ch;
                                                                 |     if (r3 < 0) {
    0x000027f8 blt 0x2844                                        |         goto label_103;
                                                                 |     }
                                                                 |     if (r0 == 0) {
    0x000027fa cbz r0, 0x2826                                    |         goto label_104;
                                                                 |     }
    0x000027fc mvn r3, 0x55                                      |     r3 = ~0x55;
                                                                 | label_40:
    0x00002800 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00002802 blx 0x12ac                                        |     strv_free ();
    0x00002806 str r0, [sp, 0x8c]                                |     var_8ch = r0;
    0x00002808 ldr r0, [sp, 0x88]                                |     r0 = var_88h;
    0x0000280a ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x0000280c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000280e beq.w 0x1b50                                      |         goto label_39;
                                                                 |     }
                                                                 | label_41:
    0x00002812 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00002814 blx 0x12ac                                        |     strv_free ();
    0x00002816 vstr d25, [sl, -0x2c]                             |     __asm ("vstr d25, [sl, -0x2c]");
    0x0000281a b.w 0x1b50                                        |     goto label_39;
                                                                 | label_101:
    0x0000281e ldr r0, [sp, 0x8c]                                |     r0 = var_8ch;
                                                                 |     if (r0 != 0) {
    0x00002820 cbz r0, 0x2836                                    |         
    0x00002822 mov r3, r4                                        |         r3 = r4;
    0x00002824 b 0x2800                                          |         goto label_40;
                                                                 | label_104:
    0x00002826 ldr r0, [sp, 0x88]                                |         r0 = var_88h;
                                                                 |         if (r0 != 0) {
    0x00002828 cbz r0, 0x282e                                    |             
    0x0000282a blx 0x12ac                                        |             strv_free ();
                                                                 |         }
    0x0000282e mvn r3, 0x55                                      |         r3 = ~0x55;
    0x00002832 b.w 0x1b50                                        |         goto label_39;
                                                                 |     }
    0x00002836 ldr r0, [sp, 0x88]                                |     r0 = var_88h;
                                                                 |     if (r0 != 0) {
    0x00002838 cbz r0, 0x283e                                    |         
    0x0000283a blx 0x12ac                                        |         strv_free ();
                                                                 |     }
    0x0000283e movs r3, 0                                        |     r3 = 0;
    0x00002840 b.w 0x1b50                                        |     goto label_39;
                                                                 | label_103:
    0x00002844 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00002846 bne 0x2800                                        |         goto label_40;
                                                                 |     }
    0x00002848 ldr r0, [sp, 0x88]                                |     r0 = var_88h;
    0x0000284a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000284c bne 0x2812                                        |         goto label_41;
                                                                 |     }
    0x0000284e b.w 0x1b50                                        |     goto label_39;
                                                                 | label_102:
    0x00002852 ldr r3, [pc, 0x30]                                |     
    0x00002854 mov r1, r6                                        |     r1 = r6;
    0x00002856 ldr r2, [pc, 0x30]                                |     
    0x00002858 movs r0, 3                                        |     r0 = 3;
    0x0000285a str r7, [sp, 8]                                   |     var_8h = r7;
    0x0000285c add r3, pc                                        |     r3 = 0x50e6;
    0x0000285e str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002860 add r2, pc                                        |     r2 = 0x50ee;
    0x00002862 ldr r3, [pc, 0x28]                                |     
    0x00002864 adds r2, 7                                        |     r2 += 7;
    0x00002866 add r3, pc                                        |     r3 = 0x50f8;
    0x00002868 str r3, [sp]                                      |     *(sp) = r3;
    0x0000286a mov.w r3, 0x134                                   |     r3 = 0x134;
    0x0000286e blx 0x1180                                        |     r0 = log_internal ();
    0x00002872 mov r3, r0                                        |     r3 = r0;
    0x00002874 b 0x27f4                                          |     goto label_42;
                                                                 | }

[*] Function printf used 9 times systemd-delta