[*] Binary protection state of systemd-tty-ask-password-agent

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


[*] Function printf tear down of systemd-tty-ask-password-agent

    ; 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-tty-ask-password-agent @ 0x23e4 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.000023e4 ()                                      | void fcn_000023e4 (int16_t arg1) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int32_t var_ch_2;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int32_t var_20h_2;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h;
                                                                 |     int32_t var_38h_2;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int32_t var_44h_2;
                                                                 |     int16_t var_4ch;
                                                                 |     int16_t var_55h;
                                                                 |     int16_t var_56h;
                                                                 |     size_t n;
                                                                 |     void * var_58h;
                                                                 |     void * ptr;
                                                                 |     int16_t var_60h;
                                                                 |     int16_t var_64h;
                                                                 |     int16_t var_68h;
                                                                 |     int16_t var_6ch;
                                                                 |     int16_t var_74h;
                                                                 |     int16_t var_78h;
                                                                 |     int32_t var_6h;
                                                                 |     int32_t var_8h_2;
                                                                 |     int32_t var_8h_3;
                                                                 |     int32_t var_eh;
                                                                 |     int16_t var_84h;
                                                                 |     int16_t var_104h;
                                                                 |     int16_t var_184h;
                                                                 |     int16_t var_188h;
                                                                 |     int16_t var_18ch;
                                                                 |     int16_t var_190h;
                                                                 |     int32_t var_194h;
                                                                 |     int32_t var_194h_2;
                                                                 |     int16_t var_19ch;
                                                                 |     int16_t var_1a0h;
                                                                 |     void * s;
                                                                 |     int16_t var_1a8h;
                                                                 |     int16_t var_1ach;
                                                                 |     int16_t var_1b0h;
                                                                 |     int16_t var_1b4h;
                                                                 |     int16_t var_1bch;
                                                                 |     int16_t var_1c0h;
                                                                 |     int16_t var_1c4h;
                                                                 |     int16_t var_1c8h;
                                                                 |     int32_t var_1d0h;
                                                                 |     int32_t var_1d0h_2;
                                                                 |     int16_t var_1d8h;
                                                                 |     int16_t var_1dch;
                                                                 |     int16_t var_1e4h;
                                                                 |     int16_t var_1e8h;
                                                                 |     int16_t var_1ech;
                                                                 |     int16_t var_1f0h;
                                                                 |     int16_t var_1f8h;
                                                                 |     int16_t var_1fch;
                                                                 |     int16_t var_200h;
                                                                 |     int16_t var_204h;
                                                                 |     int32_t var_0h_4;
                                                                 |     int16_t var_20ch;
                                                                 |     int32_t var_0h_3;
                                                                 |     int32_t var_0h_2;
                                                                 |     int32_t var_0h_5;
                                                                 |     int16_t var_224h;
                                                                 |     int16_t var_22ch;
                                                                 |     r0 = arg1;
    0x000023e4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000023e8 mov r8, r0                                        |     r8 = r0;
    0x000023ea ldr.w r0, [pc, 0xbe8]                             |     
    0x000023ee movs r3, 0                                        |     r3 = 0;
    0x000023f0 ldr.w r2, [pc, 0xbe4]                             |     r2 = *(0x2fd8);
    0x000023f4 vpush {d8}                                        |     __asm ("vpush {d8}");
    0x000023f8 sub.w sp, sp, 0x22c                               |     
    0x000023fc add r1, sp, 0x68                                  |     r1 += var_68h;
    0x000023fe add r0, pc                                        |     r0 = 0x53d8;
    0x00002400 add r4, sp, 0x64                                  |     r4 += var_64h;
    0x00002402 str r1, [sp, 0x1c]                                |     var_1ch = r1;
    0x00002404 str r4, [sp, 0x34]                                |     var_34h = r4;
    0x00002406 ldr r2, [r0, r2]                                  |     
    0x00002408 mov r0, r3                                        |     r0 = r3;
    0x0000240a ldr.w fp, [pc, 0xbd0]                             |     
    0x0000240e ldr r2, [r2]                                      |     r2 = *(0x53d8);
    0x00002410 str r2, [sp, 0x224]                               |     var_224h = r2;
    0x00002412 mov.w r2, 0                                       |     r2 = 0;
    0x00002416 str r3, [sp, 0x64]                                |     var_64h = r3;
    0x00002418 blx 0x1548                                        |     r0 = get_ctty_devnr ();
    0x0000241c adds r1, r0, 6                                    |     r1 = r0 + 6;
    0x0000241e add fp, pc                                        |     fp = 0x5400;
                                                                 |     if (r1 == r0) {
    0x00002420 beq.w 0x2f3c                                      |         goto label_46;
                                                                 |     }
    0x00002424 cmp r0, 0                                         |     
    0x00002426 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r0 < 0) {
    0x00002428 blt.w 0x294a                                      |         goto label_47;
                                                                 |     }
    0x0000242c ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x0000242e movs r1, 1                                        |     r1 = 1;
    0x00002430 ldr.w r2, [pc, 0xbac]                             |     
    0x00002434 ldr r0, [sp, 0x34]                                |     r0 = var_34h;
    0x00002436 ldr r5, [r3]                                      |     r5 = *(r3);
    0x00002438 ldr r3, [sp, 0x6c]                                |     r3 = var_6ch;
    0x0000243a add r2, pc                                        |     r2 = 0x541e;
    0x0000243c ubfx r6, r5, 8, 0xc                               |     r6 = (r5 >> 8) & ((1 << 0xc) - 1);
    0x00002440 lsrs r4, r5, 0xc                                  |     r4 = r5 >> 0xc;
    0x00002442 uxtb r5, r5                                       |     r5 = (int8_t) r5;
    0x00002444 orr.w r4, r4, r3, lsl 20                          |     r4 |= (r3 << 20);
    0x00002448 bic r3, r3, 0xff0                                 |     r3 = BIT_MASK (r3, 0xff0);
    0x0000244c bic r3, r3, 0xf                                   |     r3 = BIT_MASK (r3, 0xf);
    0x00002450 bic r4, r4, 0xff                                  |     r4 = BIT_MASK (r4, 0xff);
    0x00002454 orrs r3, r6                                       |     r3 |= r6;
    0x00002456 orrs r4, r5                                       |     r4 |= r5;
    0x00002458 str r4, [sp]                                      |     *(sp) = r4;
    0x0000245a blx 0x1758                                        |     r0 = asprintf_chk ()
    0x0000245e cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00002460 blt.w 0x2a48                                      |         goto label_48;
                                                                 |     }
    0x00002464 ldr r4, [sp, 0x34]                                |     r4 = var_34h;
    0x00002466 mov.w r1, 0x1c0                                   |     r1 = 0x1c0;
    0x0000246a ldr r0, [r4]                                      |     r0 = *(r4);
    0x0000246c blx 0x189c                                        |     mkdir_parents_label ();
    0x00002470 mov.w r1, 0x180                                   |     r1 = 0x180;
    0x00002474 ldr r0, [r4]                                      |     r0 = *(r4);
    0x00002476 blx 0x1698                                        |     mkfifo ();
    0x0000247a mov.w r1, 0x900                                   |     r1 = 0x900;
    0x0000247e ldr r0, [r4]                                      |     r0 = *(r4);
    0x00002480 movt r1, 8                                        |     r1 = (r1 & 0xFFFF) | 0x80000;
    0x00002484 blx 0x16b0                                        |     r0 = open64 ();
    0x00002488 subs.w sb, r0, 0                                  |     sb = r0 - 0;
                                                                 |     if (sb < r0) {
    0x0000248c blt.w 0x2b9e                                      |         goto label_49;
                                                                 |     }
                                                                 | label_12:
    0x00002490 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x00002492 add r5, sp, 0x84                                  |     r5 += var_84h;
    0x00002494 ldr.w r4, [pc, 0xb4c]                             |     
    0x00002498 ldr r0, [r3]                                      |     r0 = *(r3);
    0x0000249a add r4, pc                                        |     r4 = 0x5482;
    0x0000249c blx 0x1524                                        |     free (r0);
    0x000024a0 movw r1, 0x1ed                                    |     r1 = 0x1ed;
    0x000024a4 mov r0, r4                                        |     r0 = r4;
    0x000024a6 blx 0x17d0                                        |     mkdir_p_label ();
    0x000024aa mov r0, r5                                        |     r0 = r5;
    0x000024ac blx 0x186c                                        |     r0 = sigemptyset ();
    0x000024b0 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000024b2 blt.w 0x2bc0                                      |         goto label_50;
                                                                 |     }
    0x000024b6 mov.w r2, -1                                      |     r2 = -1;
    0x000024ba movs r1, 0xf                                      |     r1 = 0xf;
    0x000024bc mov r0, r5                                        |     r0 = r5;
    0x000024be blx 0x16e0                                        |     r0 = sigset_add_many ();
    0x000024c2 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000024c4 blt.w 0x2bf0                                      |         goto label_51;
                                                                 |     }
    0x000024c8 movs r2, 0                                        |     r2 = 0;
    0x000024ca mov r1, r5                                        |     r1 = r5;
    0x000024cc movs r0, 2                                        |     r0 = 2;
    0x000024ce blx 0x18a8                                        |     r0 = sigprocmask ();
    0x000024d2 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000024d4 blt.w 0x2c0c                                      |         goto label_52;
                                                                 |     }
    0x000024d8 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x000024dc bne.w 0x2994                                      |         goto label_53;
                                                                 |     }
    0x000024e0 mov.w r3, -1                                      |     r3 = -1;
    0x000024e4 mov sl, r3                                        |     sl = r3;
    0x000024e6 str r3, [sp, 0x40]                                |     var_40h = r3;
                                                                 | label_15:
    0x000024e8 ldr.w r3, [pc, 0xafc]                             |     
    0x000024ec mov r5, fp                                        |     r5 = fp;
    0x000024ee vmov.i32 d8, 0                                    |     __asm ("vmov.i32 d8, 0");
    0x000024f2 strd sl, sb, [sp, 0x44]                           |     __asm ("strd sl, sb, [var_44h]");
    0x000024f6 add r3, pc                                        |     r3 = 0x54e2;
    0x000024f8 str r3, [sp, 0x2c]                                |     var_2ch = r3;
                                                                 | label_5:
    0x000024fa ldr.w r7, [pc, 0xaf0]                             |     
    0x000024fe ldr.w r3, [pc, 0xaf0]                             |     
    0x00002502 add r7, pc                                        |     r7 = 0x54f4;
    0x00002504 add r3, pc                                        |     r3 = 0x54fa;
    0x00002506 str r3, [sp, 0x30]                                |     var_30h = r3;
                                                                 | label_4:
    0x00002508 mov r0, r7                                        |     r0 = r7;
    0x0000250a blx 0x162c                                        |     r0 = opendir ();
    0x0000250e mov fp, r0                                        |     
    0x00002510 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00002512 beq.w 0x2f6e                                      |         goto label_54;
                                                                 |     }
    0x00002516 blx 0x1770                                        |     r0 = readdir_ensure_type ();
    0x0000251a mov sb, r0                                        |     sb = r0;
    0x0000251c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000251e beq.w 0x2bdc                                      |         goto label_55;
                                                                 |     }
    0x00002522 movs r3, 0                                        |     r3 = 0;
    0x00002524 strd r8, r7, [sp, 0x38]                           |     __asm ("strd r8, r7, [var_38h]");
    0x00002528 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0000252a b 0x2598                                          |     goto label_56;
                                                                 | label_1:
    0x0000252c ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x00002530 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00002532 beq.w 0x2798                                      |         goto label_57;
                                                                 |     }
    0x00002536 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00002538 add r4, sp, 0x6c                                  |     r4 += var_6ch;
    0x0000253a ldr r2, [r4]                                      |     r2 = *(r4);
    0x0000253c ldr r3, [r3]                                      |     r3 = *(r3);
    0x0000253e orrs r3, r2                                       |     r3 |= r2;
                                                                 |     if (r3 != r2) {
    0x00002540 bne.w 0x2782                                      |         goto label_58;
                                                                 |     }
                                                                 | label_7:
    0x00002544 ldr r0, [r6]                                      |     r0 = *(r6);
    0x00002546 cmp r0, 0                                         |     
                                                                 |     if (r0 > 0) {
    0x00002548 bgt.w 0x2776                                      |         goto label_59;
                                                                 |     }
                                                                 | label_6:
    0x0000254c ldr.w r3, [pc, 0xaa4]                             |     
    0x00002550 add r3, pc                                        |     r3 = 0x5548;
    0x00002552 ldr r4, [r3]                                      |     r4 = *(0x5548);
    0x00002554 cmp r4, 2                                         |     
                                                                 |     if (r4 > 2) {
    0x00002556 bhi.w 0x26e2                                      |         goto label_60;
                                                                 |     }
    0x0000255a cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0000255c bne.w 0x27fc                                      |         goto label_61;
                                                                 |     }
    0x00002560 ldr r2, [r7]                                      |     r2 = *(r7);
    0x00002562 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00002564 beq.w 0x2b4e                                      |         goto label_62;
                                                                 |     }
                                                                 | label_18:
    0x00002568 ldr.w r1, [pc, 0xa8c]                             |     
    0x0000256c movs r0, 1                                        |     r0 = 1;
    0x0000256e ldr r3, [r6]                                      |     r3 = *(r6);
    0x00002570 add r1, pc                                        |     r1 = 0x556c;
    0x00002572 blx 0x18d8                                        |     printf_chk ()
                                                                 | label_3:
    0x00002576 ldr r0, [r7]                                      |     r0 = *(r7);
    0x00002578 blx 0x1524                                        |     free (r0);
    0x0000257c ldr.w r0, [sb]                                    |     r0 = *(sb);
    0x00002580 blx 0x1524                                        |     free (r0);
                                                                 | label_2:
    0x00002584 mov r0, sl                                        |     r0 = sl;
    0x00002586 blx 0x1524                                        |     free (r0);
                                                                 |     do {
                                                                 | label_0:
    0x0000258a mov r0, fp                                        |         r0 = fp;
    0x0000258c blx 0x1770                                        |         r0 = readdir_ensure_type ();
    0x00002590 mov sb, r0                                        |         sb = r0;
    0x00002592 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00002594 beq.w 0x271a                                      |             goto label_63;
                                                                 |         }
                                                                 | label_56:
    0x00002598 add.w r6, sb, 0x13                                |         r6 = sb + 0x13;
    0x0000259c mov r0, r6                                        |         r0 = r6;
    0x0000259e blx 0x1890                                        |         r0 = hidden_or_backup_file ();
    0x000025a2 mov r4, r0                                        |         r4 = r0;
    0x000025a4 cmp r0, 0                                         |         
    0x000025a6 bne 0x258a                                        |         
                                                                 |     } while (r0 != 0);
    0x000025a8 ldrb.w r3, [sb, 0x12]                             |     r3 = *((sb + 0x12));
    0x000025ac cmp r3, 8                                         |     
                                                                 |     if (r3 != 8) {
    0x000025ae bne 0x258a                                        |         goto label_0;
                                                                 |     }
    0x000025b0 ldr r1, [sp, 0x2c]                                |     r1 = var_2ch;
    0x000025b2 mov r0, r6                                        |     r0 = r6;
    0x000025b4 blx 0x15e4                                        |     r0 = startswith ();
    0x000025b8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000025ba beq 0x258a                                        |         goto label_0;
                                                                 |     }
    0x000025bc ldr r1, [sp, 0x30]                                |     r1 = var_30h;
    0x000025be mov r2, r6                                        |     r2 = r6;
    0x000025c0 mov.w r3, -1                                      |     r3 = -1;
    0x000025c4 mov r0, r4                                        |     r0 = r4;
    0x000025c6 blx 0x174c                                        |     r0 = path_extend_internal ();
    0x000025ca mov sl, r0                                        |     sl = r0;
    0x000025cc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000025ce beq.w 0x2974                                      |         goto label_64;
                                                                 |     }
    0x000025d2 add.w r2, sp, 0x57                                |     r2 += n;
    0x000025d6 add.w r3, sp, 0x55                                |     r3 += var_55h;
    0x000025da mov r1, r4                                        |     r1 = r4;
    0x000025dc str r2, [sp, 0x28]                                |     var_28h = r2;
    0x000025de add r0, sp, 0x1a4                                 |     r0 += s;
    0x000025e0 movs r2, 0x80                                     |     r2 = 0x80;
    0x000025e2 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x000025e4 add.w sb, sp, 0x58                                |     sb += var_58h;
    0x000025e8 strb.w r4, [sp, 0x55]                             |     var_55h = r4;
    0x000025ec add r7, sp, 0x5c                                  |     r7 += ptr;
    0x000025ee strb.w r4, [sp, 0x57]                             |     n = r4;
    0x000025f2 add r6, sp, 0x60                                  |     r6 += var_60h;
    0x000025f4 str.w r4, [sb]                                    |     __asm ("str.w r4, [sb]");
    0x000025f8 add.w r8, sp, 0x56                                |     r8 += var_56h;
    0x000025fc str r4, [r7]                                      |     *(r7) = r4;
    0x000025fe strb.w r4, [r8]                                   |     *(r8) = r4;
    0x00002602 str r4, [r6]                                      |     *(r6) = r4;
    0x00002604 vstr d8, [sp, 0x68]                               |     __asm ("vstr d8, [sp, 0x68]");
    0x00002608 blx 0x1620                                        |     memset (r0, r1, r2);
    0x0000260c ldr.w r2, [pc, 0x9ec]                             |     
    0x00002610 movs r0, 1                                        |     r0 = 1;
    0x00002612 ldr.w r3, [pc, 0x9ec]                             |     
    0x00002616 add r2, pc                                        |     r2 = 0x5616;
    0x00002618 str r2, [sp, 0x188]                               |     var_188h = r2;
    0x0000261a add r3, pc                                        |     r3 = 0x5620;
    0x0000261c ldr.w r2, [pc, 0x9e4]                             |     r2 = *(0x3004);
    0x00002620 str r3, [sp, 0x184]                               |     var_184h = r3;
    0x00002622 ldr r1, [r5, r2]                                  |     r1 = *((r5 + r2));
    0x00002624 ldr.w r2, [pc, 0x9e0]                             |     
    0x00002628 strd sb, r3, [sp, 0x194]                          |     __asm ("strd sb, r3, [var_194h]");
    0x0000262c str r1, [sp, 0x18c]                               |     var_18ch = r1;
    0x0000262e add r2, pc                                        |     r2 = 0x563a;
    0x00002630 str r0, [sp, 0x190]                               |     var_190h = r0;
    0x00002632 str r2, [sp, 0x19c]                               |     var_19ch = r2;
    0x00002634 mov r0, r4                                        |     r0 = r4;
    0x00002636 ldr.w r2, [pc, 0x9d4]                             |     r2 = *(0x300e);
    0x0000263a ldr r2, [r5, r2]                                  |     r2 = *((r5 + r2));
    0x0000263c str r1, [sp, 0x1b4]                               |     var_1b4h = r1;
    0x0000263e ldr r1, [sp, 0x1c]                                |     r1 = var_1ch;
    0x00002640 str r2, [sp, 0x1a0]                               |     var_1a0h = r2;
    0x00002642 ldr.w r2, [pc, 0x9cc]                             |     
    0x00002646 str r3, [sp, 0x1ac]                               |     var_1ach = r3;
    0x00002648 str r3, [sp, 0x1c0]                               |     var_1c0h = r3;
    0x0000264a add r2, pc                                        |     r2 = 0x5660;
    0x0000264c str r1, [sp, 0x1a8]                               |     var_1a8h = r1;
    0x0000264e str r2, [sp, 0x1b0]                               |     var_1b0h = r2;
    0x00002650 mov r1, sl                                        |     r1 = sl;
    0x00002652 ldr.w r2, [pc, 0x9c0]                             |     
    0x00002656 str r7, [sp, 0x1bc]                               |     var_1bch = r7;
    0x00002658 add r2, pc                                        |     r2 = 0x5672;
    0x0000265a str r2, [sp, 0x1c4]                               |     var_1c4h = r2;
    0x0000265c ldr.w r2, [pc, 0x9b8]                             |     r2 = *(0x3018);
    0x00002660 ldr r2, [r5, r2]                                  |     r2 = *((r5 + r2));
    0x00002662 strd r6, r3, [sp, 0x1d0]                          |     __asm ("strd r6, r3, [var_1d0h]");
    0x00002666 str r2, [sp, 0x1c8]                               |     var_1c8h = r2;
    0x00002668 ldr.w r2, [pc, 0x9b0]                             |     
    0x0000266c add r2, pc                                        |     r2 = 0x568c;
    0x0000266e str r2, [sp, 0x1d8]                               |     var_1d8h = r2;
    0x00002670 ldr.w r2, [pc, 0x9ac]                             |     r2 = *(0x3020);
    0x00002674 ldr r2, [r5, r2]                                  |     r2 = *((r5 + r2));
    0x00002676 str r3, [sp, 0x1e8]                               |     var_1e8h = r3;
    0x00002678 str r3, [sp, 0x1fc]                               |     var_1fch = r3;
    0x0000267a ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x0000267c str r2, [sp, 0x1dc]                               |     var_1dch = r2;
    0x0000267e str r2, [sp, 0x1f0]                               |     var_1f0h = r2;
    0x00002680 str r3, [sp, 0x1e4]                               |     var_1e4h = r3;
    0x00002682 ldr.w r3, [pc, 0x9a0]                             |     
    0x00002686 str r2, [sp, 0x204]                               |     var_204h = r2;
    0x00002688 str.w r8, [sp, 0x1f8]                             |     __asm ("str.w r8, [var_1f8h]");
    0x0000268c add r3, pc                                        |     r3 = 0x56b6;
    0x0000268e str r3, [sp, 0x1ec]                               |     var_1ech = r3;
    0x00002690 ldr.w r3, [pc, 0x994]                             |     
    0x00002694 ldr r2, [sp, 0x28]                                |     r2 = var_28h;
    0x00002696 strd r4, r4, [sp, 0xc]                            |     __asm ("strd r4, r4, [var_ch]");
    0x0000269a add r3, pc                                        |     r3 = 0x56c6;
    0x0000269c str r3, [sp, 0x200]                               |     var_200h = r3;
    0x0000269e ldr.w r3, [pc, 0x98c]                             |     r3 = *(0x302e);
    0x000026a2 str r2, [sp, 0x20c]                               |     var_20ch = r2;
    0x000026a4 movs r2, 3                                        |     r2 = 3;
    0x000026a6 str r2, [sp, 8]                                   |     var_8h = r2;
    0x000026a8 add r2, sp, 0x184                                 |     r2 += var_184h;
    0x000026aa str r2, [sp, 4]                                   |     var_4h = r2;
    0x000026ac mov r2, r4                                        |     r2 = r4;
    0x000026ae ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x000026b0 str r3, [sp]                                      |     *(sp) = r3;
    0x000026b2 mov r3, r4                                        |     r3 = r4;
    0x000026b4 blx 0x1728                                        |     r0 = config_parse ();
    0x000026b8 subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 >= r0) {
    0x000026ba bge.w 0x252c                                      |         goto label_1;
                                                                 |     }
                                                                 | label_8:
    0x000026be ldr r0, [r7]                                      |     r0 = *(r7);
    0x000026c0 blx 0x1524                                        |     free (r0);
    0x000026c4 ldr.w r0, [sb]                                    |     r0 = *(sb);
    0x000026c8 blx 0x1524                                        |     free (r0);
    0x000026cc ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x000026ce clz r3, r2                                        |     r3 &= r2;
    0x000026d2 lsrs r3, r3, 5                                    |     r3 >>= 5;
    0x000026d4 ands.w r3, r3, r4, lsr 31                         |     r3 &= (r4 >> 31);
    0x000026d8 ite eq                                            |     
                                                                 |     if (r3 != r3) {
    0x000026da moveq r3, r2                                      |         r3 = r2;
                                                                 |     }
                                                                 |     if (r3 == r3) {
    0x000026dc movne r3, r4                                      |         r3 = r4;
                                                                 |     }
    0x000026de str r3, [sp, 0x18]                                |     var_18h = r3;
    0x000026e0 b 0x2584                                          |     goto label_2;
                                                                 | label_60:
    0x000026e2 cmp r4, 3                                         |     
                                                                 |     if (r4 != 3) {
    0x000026e4 bne.w 0x2576                                      |         goto label_3;
                                                                 |     }
    0x000026e8 ldr r3, [r7]                                      |     r3 = *(r7);
    0x000026ea movs r2, 0                                        |     r2 = 0;
    0x000026ec ldr r1, [sp, 0x34]                                |     r1 = var_34h;
    0x000026ee str r2, [r1]                                      |     *(r1) = r2;
    0x000026f0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000026f2 beq.w 0x2b56                                      |         goto label_65;
                                                                 |     }
                                                                 | label_19:
    0x000026f6 ldr r2, [r6]                                      |     r2 = *(r6);
    0x000026f8 movs r1, 1                                        |     r1 = 1;
    0x000026fa ldr r0, [sp, 0x34]                                |     r0 = var_34h;
    0x000026fc str r2, [sp]                                      |     *(sp) = r2;
    0x000026fe ldr.w r2, [pc, 0x930]                             |     
    0x00002702 add r2, pc                                        |     r2 = 0x5738;
    0x00002704 blx 0x1758                                        |     r0 = asprintf_chk ()
    0x00002708 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0000270a blt.w 0x2c9a                                      |         goto label_66;
                                                                 |     }
    0x0000270e movs r4, 0                                        |     r4 = 0;
                                                                 | label_24:
    0x00002710 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x00002712 ldr r0, [r3]                                      |     r0 = *(r3);
    0x00002714 blx 0x1524                                        |     free (r0);
    0x00002716 invalid                                           |     
                                                                 | label_63:
    0x0000271a blx 0x1830                                        |     r0 = errno_location ();
    0x0000271e ldr r4, [r0]                                      |     r4 = *(r0);
    0x00002720 ldrd r8, r7, [sp, 0x38]                           |     __asm ("ldrd r8, r7, [var_38h]");
    0x00002724 cmp r4, 0                                         |     
                                                                 |     if (r4 > 0) {
    0x00002726 bgt 0x27a8                                        |         goto label_20;
                                                                 |     }
                                                                 | label_14:
    0x00002728 mov r0, fp                                        |     r0 = fp;
    0x0000272a blx 0x1560                                        |     closedir ();
    0x0000272e ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00002730 cmp r3, 0                                         |     
                                                                 |     if (r3 < 0) {
    0x00002732 blt.w 0x293c                                      |         goto label_45;
                                                                 |     }
                                                                 | label_9:
    0x00002736 mov.w r2, -1                                      |     r2 = -1;
    0x0000273a mov.w r3, -1                                      |     r3 = -1;
                                                                 | label_11:
    0x0000273e cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00002742 beq 0x276e                                        |         goto label_67;
                                                                 |     }
    0x00002744 add r4, sp, 0x74                                  |     r4 += var_74h;
    0x00002746 movs r1, 2                                        |     r1 = 2;
    0x00002748 mov r0, r4                                        |     r0 = r4;
    0x0000274a blx 0x1500                                        |     ppoll_usec ();
    0x0000274e adds r3, r0, 4                                    |     r3 += var_78h;
                                                                 |     if (r3 == var_78h) {
    0x00002750 beq.w 0x2508                                      |         goto label_4;
                                                                 |     }
    0x00002754 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00002756 blt.w 0x2e10                                      |         goto label_68;
                                                                 |     }
    0x0000275a ldrsh.w r3, [r4, 0xe]                             |     r3 = var_eh;
    0x0000275e cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00002760 bne.w 0x296c                                      |         goto label_69;
                                                                 |     }
                                                                 | label_13:
    0x00002764 ldrsh.w r3, [r4, 6]                               |     r3 = var_6h;
    0x00002768 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000276a beq.w 0x24fa                                      |         goto label_5;
                                                                 |     }
                                                                 | label_67:
    0x0000276e ldrd sl, sb, [sp, 0x44]                           |     __asm ("ldrd sl, sb, [var_44h]");
    0x00002772 movs r5, 0                                        |     r5 = 0;
    0x00002774 b 0x2a90                                          |     goto label_25;
                                                                 | label_59:
    0x00002776 blx 0x1740                                        |     r0 = pid_is_alive ();
    0x0000277a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000277c bne.w 0x254c                                      |         goto label_6;
                                                                 |     }
    0x00002780 b 0x2576                                          |     goto label_3;
                                                                 | label_58:
    0x00002782 movs r0, 1                                        |     r0 = 1;
    0x00002784 blx 0x17e8                                        |     now ();
    0x00002788 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x0000278a ldr r3, [r4]                                      |     r3 = *(r4);
    0x0000278c ldr r2, [r2]                                      |     r2 = *(r2);
    0x0000278e cmp r2, r0                                        |     
    0x00002790 sbcs r3, r1                                       |     __asm ("sbcs r3, r1");
                                                                 |     if (r2 >= r0) {
    0x00002792 bhs.w 0x2544                                      |         goto label_7;
                                                                 |     }
    0x00002796 b 0x2576                                          |     goto label_3;
                                                                 | label_57:
    0x00002798 blx 0x1608                                        |     r0 = log_get_max_level ();
    0x0000279c cmp r0, 2                                         |     
                                                                 |     if (r0 > 2) {
    0x0000279e bgt.w 0x2aca                                      |         goto label_70;
                                                                 |     }
    0x000027a2 mvn r4, 0x49                                      |     r4 = ~0x49;
    0x000027a6 b 0x26be                                          |     goto label_8;
                                                                 | label_20:
    0x000027a8 blx 0x1608                                        |     r0 = log_get_max_level ();
    0x000027ac cmp r0, 2                                         |     
                                                                 |     if (r0 > 2) {
    0x000027ae bgt.w 0x2afe                                      |         goto label_71;
                                                                 |     }
    0x000027b2 bic r4, r4, 0x40000000                            |     r4 = BIT_MASK (r4, 0x40000000);
    0x000027b6 rsbs r3, r4, 0                                    |     r3 = r4 - ;
    0x000027b8 str r3, [sp, 0x18]                                |     var_18h = r3;
                                                                 | label_16:
    0x000027ba ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x000027bc cmp r3, 0                                         |     
                                                                 |     if (r3 < 0) {
    0x000027be blt.w 0x2936                                      |         goto label_72;
                                                                 |     }
    0x000027c2 mov r0, fp                                        |     r0 = fp;
    0x000027c4 blx 0x1560                                        |     closedir ();
                                                                 | label_44:
    0x000027c8 mvn r3, 0x55                                      |     r3 = ~0x55;
    0x000027cc str r3, [sp, 0x18]                                |     var_18h = r3;
                                                                 | label_10:
    0x000027ce blx 0x1608                                        |     r0 = log_get_max_level ();
    0x000027d2 cmp r0, 2                                         |     
                                                                 |     if (r0 <= 2) {
    0x000027d4 ble 0x2736                                        |         goto label_9;
                                                                 |     }
    0x000027d6 ldr.w r3, [pc, 0x85c]                             |     
    0x000027da movs r0, 3                                        |     r0 = 3;
    0x000027dc ldr.w r2, [pc, 0x858]                             |     
    0x000027e0 ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x000027e2 add r3, pc                                        |     r3 = 0x581c;
    0x000027e4 str r3, [sp, 4]                                   |     var_4h = r3;
    0x000027e6 add r2, pc                                        |     r2 = 0x5822;
    0x000027e8 ldr.w r3, [pc, 0x850]                             |     
    0x000027ec adds r2, 7                                        |     r2 += 7;
    0x000027ee add r3, pc                                        |     r3 = 0x582e;
    0x000027f0 str r3, [sp]                                      |     *(sp) = r3;
    0x000027f2 mov.w r3, 0x182                                   |     r3 = 0x182;
    0x000027f6 blx 0x16bc                                        |     log_internal ();
    0x000027fa b 0x2736                                          |     goto label_9;
                                                                 | label_61:
    0x000027fc ldr r2, [sp, 0x34]                                |     r2 = var_34h;
    0x000027fe movs r3, 0                                        |     r3 = 0;
    0x00002800 ldr.w r0, [sb]                                    |     r0 = *(sb);
    0x00002804 movs r1, 2                                        |     r1 = 2;
    0x00002806 str r3, [r2]                                      |     *(r2) = r3;
    0x00002808 blx 0x171c                                        |     r0 = access (r0, r1);
    0x0000280c cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0000280e blt.w 0x2b84                                      |         goto label_73;
                                                                 |     }
    0x00002812 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00002814 ldrb r4, [r3]                                     |     r4 = *(r3);
    0x00002816 ldr.w r3, [pc, 0x828]                             |     
    0x0000281a add r3, pc                                        |     r3 = 0x5860;
    0x0000281c ldrb r3, [r3]                                     |     r3 = *(r3);
                                                                 |     if (r3 != 0) {
    0x0000281e cbz r3, 0x2824                                    |         
    0x00002820 orr r4, r4, 0x40                                  |         r4 |= 0x40;
                                                                 |     }
    0x00002824 ldrb.w r2, [r8]                                   |     r2 = *(r8);
                                                                 |     if (r2 != 0) {
    0x00002828 cbz r2, 0x282e                                    |         
    0x0000282a orr r4, r4, 4                                     |         r4 |= 4;
                                                                 |     }
    0x0000282e ldr r2, [sp, 0x28]                                |     r2 = var_28h;
    0x00002830 ldrb r2, [r2]                                     |     r2 = *(r2);
                                                                 |     if (r2 != 0) {
    0x00002832 cbz r2, 0x2838                                    |         
    0x00002834 orr r4, r4, 8                                     |         r4 |= 8;
                                                                 |     }
    0x00002838 ldr.w r2, [pc, 0x808]                             |     
    0x0000283c ldrd r0, r1, [sp, 0x68]                           |     __asm ("ldrd r0, r1, [var_68h]");
    0x00002840 ldr r6, [r7]                                      |     r6 = *(r7);
    0x00002842 add r2, pc                                        |     r2 = 0x588a;
    0x00002844 ldrb r2, [r2]                                     |     r2 = *(r2);
    0x00002846 strd r0, r1, [sp, 0x20]                           |     __asm ("strd r0, r1, [var_20h]");
    0x0000284a cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0000284c beq.w 0x29d8                                      |         goto label_74;
                                                                 |     }
    0x00002850 mov r3, r1                                        |     r3 = r1;
    0x00002852 ldr r1, [sp, 0x34]                                |     r1 = var_34h;
    0x00002854 mov r2, r0                                        |     r2 = r0;
    0x00002856 str r4, [sp]                                      |     *(sp) = r4;
    0x00002858 mov r0, r6                                        |     r0 = r6;
    0x0000285a strd sl, r1, [sp, 4]                              |     __asm ("strd sl, r1, [var_4h]");
    0x0000285e blx 0x177c                                        |     r0 = ask_password_plymouth ();
    0x00002862 mov r4, r0                                        |     r4 = r0;
                                                                 | label_21:
    0x00002864 cmp r4, 0                                         |     
                                                                 |     if (r4 < 0) {
    0x00002866 blt.w 0x2b60                                      |         goto label_22;
                                                                 |     }
                                                                 | label_23:
    0x0000286a ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x0000286c ldr r6, [r3]                                      |     r6 = *(r3);
    0x0000286e cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00002870 beq.w 0x2cda                                      |         goto label_75;
                                                                 |     }
    0x00002874 ldr r3, [r6]                                      |     r3 = *(r6);
    0x00002876 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00002878 beq.w 0x2dac                                      |         goto label_76;
                                                                 |     }
    0x0000287c ldr.w r1, [sb]                                    |     r1 = *(sb);
    0x00002880 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00002882 beq.w 0x2ed2                                      |         goto label_77;
                                                                 |     }
    0x00002886 add r3, sp, 0x104                                 |     r3 += var_104h;
    0x00002888 mov r0, r3                                        |     r0 = r3;
    0x0000288a str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0000288c blx 0x1530                                        |     sockaddr_un_set_path ();
    0x00002890 subs r3, r0, 0                                    |     r3 -= var_104h;
    0x00002892 str r3, [sp, 0x20]                                |     var_20h = r3;
                                                                 |     if (r3 < var_104h) {
    0x00002894 blt.w 0x2e3a                                      |         goto label_78;
                                                                 |     }
    0x00002898 sub.w r8, r6, 4                                   |     r8 = r6 - 4;
    0x0000289c movs r4, 1                                        |     r4 = 1;
    0x0000289e mov r6, r8                                        |     r6 = r8;
    0x000028a0 b 0x28aa                                          |     
                                                                 |     while (r0 != 0) {
    0x000028a2 blx 0x17c4                                        |         strlen (r0);
    0x000028a6 adds r0, 1                                        |         r0++;
    0x000028a8 add r4, r0                                        |         r4 += r0;
    0x000028aa ldr r0, [r6, 4]!                                  |         r0 = *((r6 += 4));
    0x000028ae cmp r0, 0                                         |         
    0x000028b0 bne 0x28a2                                        |         
                                                                 |     }
    0x000028b2 cmp r4, 1                                         |     
    0x000028b4 mov r0, r4                                        |     r0 = r4;
    0x000028b6 it lo                                             |     
                                                                 |     if (r4 >= 1) {
    0x000028b8 movlo r0, 1                                       |         r0 = 1;
                                                                 |     }
    0x000028ba blx 0x17b8                                        |     r0 = malloc (r0);
    0x000028be mov r6, r0                                        |     r6 = r0;
    0x000028c0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000028c2 beq.w 0x2f98                                      |         goto label_79;
                                                                 |     }
    0x000028c6 movs r3, 0x2b                                     |     r3 = 0x2b;
    0x000028c8 strb r3, [r0], 1                                  |     *(r0) = r3;
                                                                 |     r0++;
    0x000028cc b 0x28d4                                          |     
                                                                 |     while (r1 != 0) {
    0x000028ce blx 0x159c                                        |         stpcpy ();
    0x000028d2 adds r0, 1                                        |         r0++;
    0x000028d4 ldr r1, [r8, 4]!                                  |         r1 = *((r8 += 4));
    0x000028d8 cmp r1, 0                                         |         
    0x000028da bne 0x28ce                                        |         
                                                                 |     }
    0x000028dc mov r2, r1                                        |     r2 = r1;
    0x000028de movs r1, 2                                        |     
    0x000028e0 movt r1, 8                                        |     r1 = 0x80002;
    0x000028e4 movs r0, 1                                        |     r0 = 1;
    0x000028e6 blx 0x1710                                        |     r0 = socket (r0, r1, r2);
    0x000028ea subs.w r8, r0, 0                                  |     r8 = r0 - 0;
                                                                 |     if (r8 < r0) {
    0x000028ee blt.w 0x2d04                                      |         goto label_80;
                                                                 |     }
    0x000028f2 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x000028f4 mov r2, r4                                        |     r2 = r4;
    0x000028f6 mov r1, r6                                        |     r1 = r6;
    0x000028f8 str r3, [sp, 4]                                   |     var_4h = r3;
    0x000028fa ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x000028fc str r3, [sp]                                      |     *(sp) = r3;
    0x000028fe mov.w r3, 0x4000                                  |     r3 = 0x4000;
    0x00002902 blx 0x15f0                                        |     r0 = sendto ();
    0x00002906 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00002908 blt.w 0x2ee6                                      |         goto label_81;
                                                                 |     }
    0x0000290c mov r0, r8                                        |     r0 = r8;
    0x0000290e blx 0x16d4                                        |     safe_close ();
    0x00002912 mov r0, r6                                        |     r0 = r6;
    0x00002914 blx 0x1674                                        |     malloc_usable_size ();
    0x00002916 cdp p6, 0xa, c4, c14, c1, 0                       |     __asm ("cdp p6, 0xa, c4, c14, c1, 0");
    0x0000291a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000291c bne.w 0x2f62                                      |         goto label_82;
                                                                 |     }
                                                                 | label_42:
    0x00002920 mov r0, r6                                        |     r0 = r6;
    0x00002922 blx 0x1524                                        |     free (r0);
    0x00002926 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x00002928 ldr r0, [r3]                                      |     r0 = *(r3);
    0x0000292a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000292c beq.w 0x2576                                      |         goto label_3;
                                                                 |     }
    0x00002930 blx 0x15cc                                        |     strv_free_erase ();
    0x00002934 b 0x2576                                          |     goto label_3;
                                                                 | label_72:
    0x00002936 mov r0, fp                                        |     r0 = fp;
    0x00002938 blx 0x1560                                        |     closedir ();
                                                                 | label_45:
    0x0000293c ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x0000293e adds r3, 0x7d                                     |     r3 += 0x7d;
                                                                 |     if (r3 != 0x7d) {
    0x00002940 bne.w 0x27ce                                      |         goto label_10;
                                                                 |     }
                                                                 | label_43:
    0x00002944 movs r2, 0                                        |     r2 = 0;
    0x00002946 movs r3, 0                                        |     r3 = 0;
    0x00002948 b 0x273e                                          |     goto label_11;
                                                                 | label_47:
    0x0000294a blx 0x1608                                        |     r0 = log_get_max_level ();
    0x0000294e cmp r0, 2                                         |     
                                                                 |     if (r0 > 2) {
    0x00002950 bgt.w 0x2b26                                      |         goto label_83;
                                                                 |     }
    0x00002954 rsbs r3, r4, 0                                    |     r3 = r4 - ;
    0x00002956 bic r3, r3, 0x40000000                            |     r3 = BIT_MASK (r3, 0x40000000);
    0x0000295a rsb.w sb, r3, 0                                   |     sb = r3 - ;
                                                                 | label_17:
    0x0000295e cmp.w sb, 0                                       |     
                                                                 |     if (sb < 0) {
    0x00002962 blt.w 0x2490                                      |         goto label_12;
                                                                 |     }
    0x00002966 mvn sb, 0x55                                      |     sb = ~0x55;
    0x0000296a b 0x2490                                          |     goto label_12;
                                                                 | label_69:
    0x0000296c ldr r0, [sp, 0x44]                                |     r0 = var_44h;
    0x0000296e blx 0x1644                                        |     flush_fd ();
    0x00002972 b 0x2764                                          |     goto label_13;
                                                                 | label_64:
    0x00002974 ldr.w r1, [pc, 0x6d0]                             |     
    0x00002978 movw r2, 0x143                                    |     r2 = 0x143;
    0x0000297c ldr.w r3, [pc, 0x6cc]                             |     
    0x00002980 movs r0, 3                                        |     r0 = 3;
    0x00002982 ldrd r8, r7, [sp, 0x38]                           |     __asm ("ldrd r8, r7, [var_38h]");
    0x00002986 add r1, pc                                        |     r1 = 0x59d2;
    0x00002988 adds r1, 7                                        |     r1 += 7;
    0x0000298a add r3, pc                                        |     r3 = 0x59da;
    0x0000298c blx 0x18e4                                        |     log_oom_internal ();
    0x00002990 str r0, [sp, 0x18]                                |     var_18h = r0;
    0x00002992 b 0x2728                                          |     goto label_14;
                                                                 | label_53:
    0x00002994 mov.w r2, 0x800                                   |     r2 = 0x800;
    0x00002998 mov r1, r5                                        |     r1 = r5;
    0x0000299a movt r2, 8                                        |     r2 = (r2 & 0xFFFF) | 0x80000;
    0x0000299e mov.w r0, -1                                      |     r0 = -1;
    0x000029a2 blx 0x15a8                                        |     r0 = signalfd ();
    0x000029a6 subs r3, r0, 0                                    |     r3 = r0 - 0;
    0x000029a8 str r3, [sp, 0x40]                                |     var_40h = r3;
                                                                 |     if (r3 >= r0) {
    0x000029aa blt 0x2a64                                        |         
    0x000029ac ldr r3, [sp, 0x40]                                |         r3 = var_40h;
    0x000029ae movs r7, 1                                        |         r7 = 1;
    0x000029b0 mov.w r0, 0x80000                                 |         r0 = 0x80000;
    0x000029b4 str r7, [sp, 0x78]                                |         var_78h = r7;
    0x000029b6 add r6, sp, 0x74                                  |         r6 += var_74h;
    0x000029b8 str r3, [r6]                                      |         *(r6) = r3;
    0x000029ba blx 0x1848                                        |         r0 = inotify_init1 ();
    0x000029be subs.w sl, r0, 0                                  |         sl = r0 - 0;
                                                                 |         if (sl < r0) {
    0x000029c2 blt.w 0x2cb4                                      |             goto label_84;
                                                                 |         }
    0x000029c6 mov r1, r4                                        |         r1 = r4;
    0x000029c8 movs r2, 0x88                                     |         r2 = 0x88;
    0x000029ca blx 0x183c                                        |         r0 = inotify_add_watch_and_warn ();
    0x000029ce subs r5, r0, 0                                    |         r5 = r0 - 0;
                                                                 |         if (r5 < r0) {
    0x000029d0 blt 0x2a90                                        |             goto label_25;
                                                                 |         }
    0x000029d2 strd sl, r7, [r6, 8]                              |         __asm ("strd sl, r7, [var_8h_2]");
    0x000029d6 b 0x24e8                                          |         goto label_15;
                                                                 | label_74:
    0x000029d8 ldr.w r2, [pc, 0x674]                             |         
    0x000029dc add r2, pc                                        |         r2 = 0x5a30;
    0x000029de ldr.w r8, [r2]                                    |         r8 = *(0x5a30);
    0x000029e2 cmp.w r8, 0                                       |         
                                                                 |         if (r8 == 0) {
    0x000029e6 beq.w 0x2ce0                                      |             goto label_85;
                                                                 |         }
                                                                 | label_26:
    0x000029ea cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x000029ec beq.w 0x2c28                                      |             goto label_86;
                                                                 |         }
    0x000029f0 mov.w r3, -1                                      |         r3 = -1;
    0x000029f4 movs r1, 2                                        |         r1 = 2;
    0x000029f6 mov r0, r8                                        |         r0 = r8;
    0x000029f8 mov.w r2, -1                                      |         r2 = -1;
    0x000029fc blx 0x14d0                                        |         r0 = acquire_terminal ();
    0x00002a00 subs r3, r0, 0                                    |         r3 = r0 - 0;
    0x00002a02 str r3, [sp, 0x28]                                |         var_28h = r3;
                                                                 |         if (r3 < r0) {
    0x00002a04 blt.w 0x2ce8                                      |             goto label_87;
                                                                 |         }
    0x00002a08 movs r1, 1                                        |         r1 = 1;
    0x00002a0a blx 0x1860                                        |         r0 = reset_terminal_fd ();
    0x00002a0e subs r1, r0, 0                                    |         r1 = r0 - 0;
    0x00002a10 str r1, [sp, 0x4c]                                |         var_4ch = r1;
                                                                 |         if (r1 < r0) {
    0x00002a12 blt.w 0x2e44                                      |             goto label_88;
                                                                 |         }
                                                                 | label_35:
    0x00002a16 blx 0x1608                                        |         r0 = log_get_max_level ();
    0x00002a1a cmp r0, 5                                         |         
                                                                 |         if (r0 <= 5) {
    0x00002a1c ble.w 0x2c2e                                      |             goto label_89;
                                                                 |         }
    0x00002a20 ldr.w r3, [pc, 0x630]                             |         
    0x00002a24 movs r1, 0                                        |         r1 = 0;
    0x00002a26 ldr.w r2, [pc, 0x630]                             |         
    0x00002a2a movs r0, 6                                        |         r0 = 6;
    0x00002a2c str.w r8, [sp, 8]                                 |         __asm ("str.w r8, [var_8h]");
    0x00002a30 add r3, pc                                        |         r3 = 0x5a88;
    0x00002a32 str r3, [sp, 4]                                   |         var_4h = r3;
    0x00002a34 add r2, pc                                        |         r2 = 0x5a92;
    0x00002a36 ldr.w r3, [pc, 0x624]                             |         
    0x00002a3a adds r2, 7                                        |         r2 += 7;
    0x00002a3c add r3, pc                                        |         r3 = 0x5a9e;
    0x00002a3e str r3, [sp]                                      |         *(sp) = r3;
    0x00002a40 movs r3, 0x9d                                     |         r3 = 0x9d;
    0x00002a42 blx 0x16bc                                        |         log_internal ();
    0x00002a46 b 0x2c2e                                          |         goto label_89;
                                                                 | label_48:
    0x00002a48 ldr.w r1, [pc, 0x614]                             |         
    0x00002a4c mov.w r2, 0x11c                                   |         r2 = 0x11c;
    0x00002a50 ldr.w r3, [pc, 0x610]                             |         
    0x00002a54 movs r0, 3                                        |         r0 = 3;
    0x00002a56 add r1, pc                                        |         r1 = 0x5aba;
    0x00002a58 adds r1, 7                                        |         r1 += 7;
    0x00002a5a add r3, pc                                        |         r3 = 0x5ac2;
    0x00002a5c blx 0x18e4                                        |         r0 = log_oom_internal ();
    0x00002a60 mov sb, r0                                        |         sb = r0;
    0x00002a62 b 0x2490                                          |         goto label_12;
                                                                 |     }
    0x00002a64 blx 0x1830                                        |     r0 = errno_location ();
    0x00002a68 ldr r4, [r0]                                      |     r4 = *(r0);
    0x00002a6a blx 0x1608                                        |     r0 = log_get_max_level ();
    0x00002a6e cmp r0, 2                                         |     
                                                                 |     if (r0 > 2) {
    0x00002a70 bgt.w 0x2e18                                      |         goto label_90;
                                                                 |     }
    0x00002a74 eor.w r3, r4, r4, asr 31                          |     r3 = r4 ^ (r4 >> 31);
    0x00002a78 sub.w r3, r3, r4, asr 31                          |     r3 -= (r4 >> 31);
    0x00002a7c bic r3, r3, 0x40000000                            |     r3 = BIT_MASK (r3, 0x40000000);
    0x00002a80 rsbs r5, r3, 0                                    |     r5 = r3 - ;
                                                                 | label_33:
    0x00002a82 cmp r5, 0                                         |     
                                                                 |     if (r5 < 0) {
    0x00002a84 blt.w 0x2da6                                      |         goto label_91;
                                                                 |     }
    0x00002a88 mov.w sl, -1                                      |     sl = -1;
    0x00002a8c mvn r5, 0x55                                      |     r5 = ~0x55;
                                                                 | label_25:
    0x00002a90 ldr r0, [sp, 0x40]                                |     r0 = var_40h;
    0x00002a92 blx 0x16d4                                        |     safe_close ();
    0x00002a96 mov r0, sl                                        |     r0 = sl;
    0x00002a98 blx 0x16d4                                        |     safe_close ();
    0x00002a9c mov r0, sb                                        |     r0 = sb;
    0x00002a9e blx 0x16d4                                        |     safe_close ();
    0x00002aa2 ldr.w r1, [pc, 0x5c4]                             |     
    0x00002aa6 ldr.w r2, [pc, 0x530]                             |     r2 = *(0x2fda);
    0x00002aaa add r1, pc                                        |     r1 = 0x5b18;
    0x00002aac ldr r2, [r1, r2]                                  |     r2 = *(0x5b18);
    0x00002aae ldr r1, [r2]                                      |     r1 = *(0x5b18);
    0x00002ab0 ldr r2, [sp, 0x224]                               |     r2 = var_224h;
    0x00002ab2 eors r1, r2                                       |     r1 ^= r2;
    0x00002ab4 mov.w r2, 0                                       |     r2 = 0;
                                                                 |     if (r1 != r2) {
    0x00002ab8 bne.w 0x2fa8                                      |         goto label_92;
                                                                 |     }
    0x00002abc mov r0, r5                                        |     r0 = r5;
    0x00002abe add.w sp, sp, 0x22c                               |     
    0x00002ac2 vpop {d8}                                         |     __asm ("vpop {d8}");
    0x00002ac6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_70:
    0x00002aca ldr.w r3, [pc, 0x5a0]                             |     
    0x00002ace movs r1, 0x4a                                     |     r1 = 0x4a;
    0x00002ad0 ldr.w r2, [pc, 0x59c]                             |     
    0x00002ad4 movs r0, 3                                        |     r0 = 3;
    0x00002ad6 movt r1, 0x4000                                   |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x00002ada str.w sl, [sp, 8]                                 |     __asm ("str.w sl, [var_8h]");
    0x00002ade add r3, pc                                        |     r3 = 0x5b50;
    0x00002ae0 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002ae2 add r2, pc                                        |     r2 = 0x5b56;
    0x00002ae4 ldr.w r3, [pc, 0x58c]                             |     
    0x00002ae8 adds r2, 7                                        |     r2 += 7;
    0x00002aea add r3, pc                                        |     r3 = 0x5b62;
    0x00002aec str r3, [sp]                                      |     *(sp) = r3;
    0x00002aee movs r3, 0xcc                                     |     r3 = 0xcc;
    0x00002af0 blx 0x16bc                                        |     r0 = log_internal ();
    0x00002af4 subs r4, r0, 0                                    |     r4 = r0 - 0;
    0x00002af6 it ge                                             |     
                                                                 |     if (r4 < r0) {
    0x00002af8 mvnge r4, 0x55                                    |         r4 = ~0x55;
                                                                 |     }
    0x00002afc b 0x26be                                          |     goto label_8;
                                                                 | label_71:
    0x00002afe ldr.w r3, [pc, 0x578]                             |     
    0x00002b02 mov r1, r4                                        |     r1 = r4;
    0x00002b04 ldr.w r2, [pc, 0x574]                             |     
    0x00002b08 movs r0, 3                                        |     r0 = 3;
    0x00002b0a add r3, pc                                        |     r3 = 0x5b88;
    0x00002b0c str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002b0e add r2, pc                                        |     r2 = 0x5b8e;
    0x00002b10 ldr.w r3, [pc, 0x56c]                             |     
    0x00002b14 adds r2, 7                                        |     r2 += 7;
    0x00002b16 add r3, pc                                        |     r3 = 0x5b9a;
    0x00002b18 str r3, [sp]                                      |     *(sp) = r3;
    0x00002b1a mov.w r3, 0x134                                   |     r3 = 0x134;
    0x00002b1e blx 0x16bc                                        |     log_internal ();
    0x00002b20 stcl p0, c9, [lr, 0x18]                           |     __asm ("stcl p0, c9, [lr, 0x18]");
    0x00002b24 b 0x27ba                                          |     goto label_16;
                                                                 | label_83:
    0x00002b26 ldr.w r3, [pc, 0x55c]                             |     
    0x00002b2a mov r1, r4                                        |     r1 = r4;
    0x00002b2c ldr.w r2, [pc, 0x558]                             |     
    0x00002b30 movs r0, 3                                        |     r0 = 3;
    0x00002b32 add r3, pc                                        |     r3 = 0x5bbc;
    0x00002b34 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002b36 add r2, pc                                        |     r2 = 0x5bc2;
    0x00002b38 ldr.w r3, [pc, 0x550]                             |     
    0x00002b3c adds r2, 7                                        |     r2 += 7;
    0x00002b3e add r3, pc                                        |     r3 = 0x5bce;
    0x00002b40 str r3, [sp]                                      |     *(sp) = r3;
    0x00002b42 movw r3, 0x119                                    |     r3 = 0x119;
    0x00002b46 blx 0x16bc                                        |     r0 = log_internal ();
    0x00002b4a mov sb, r0                                        |     sb = r0;
    0x00002b4c b 0x295e                                          |     goto label_17;
                                                                 | label_62:
    0x00002b4e ldr.w r2, [pc, 0x540]                             |     
    0x00002b52 add r2, pc                                        |     r2 = 0x5be8;
    0x00002b54 b 0x2568                                          |     goto label_18;
                                                                 | label_65:
    0x00002b56 ldr.w r3, [pc, 0x53c]                             |     
    0x00002b5a add r3, pc                                        |     r3 = 0x5bf4;
    0x00002b5c b 0x26f6                                          |     goto label_19;
                                                                 | label_27:
    0x00002b5e rsbs r4, r3, 0                                    |     r4 = r3 - ;
                                                                 | label_22:
    0x00002b60 cmn.w r4, 0x3e                                    |     
                                                                 |     if (r4 != 0x3e) {
    0x00002b64 beq 0x2b8a                                        |         
    0x00002b66 adds r2, r4, 2                                    |         r2 = r4 + 2;
                                                                 |         if (r2 == r4) {
    0x00002b68 beq 0x2b8a                                        |             goto label_32;
                                                                 |         }
                                                                 | label_36:
    0x00002b6a blx 0x1608                                        |         r0 = log_get_max_level ();
    0x00002b6e cmp r0, 2                                         |         
                                                                 |         if (r0 > 2) {
    0x00002b70 bgt.w 0x2d62                                      |             goto label_93;
                                                                 |         }
    0x00002b74 rsbs r4, r4, 0                                    |         r4 -= ;
    0x00002b76 bic r0, r4, 0x40000000                            |         r0 = BIT_MASK (r4, 0x40000000);
    0x00002b7a rsbs r4, r0, 0                                    |         r4 = r0 - ;
                                                                 | label_29:
    0x00002b7c cmp r4, 0                                         |         
                                                                 |         if (r4 >= 0) {
    0x00002b7e bge.w 0x2cfe                                      |             goto label_94;
                                                                 |         }
    0x00002b82 b 0x2b8c                                          |         goto label_28;
                                                                 | label_73:
    0x00002b84 cmp r4, 1                                         |         
                                                                 |         if (r4 == 1) {
    0x00002b86 beq.w 0x2db2                                      |             goto label_95;
                                                                 |         }
                                                                 |     }
                                                                 | label_32:
    0x00002b8a movs r4, 0                                        |     r4 = 0;
                                                                 | label_28:
    0x00002b8c ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x00002b8e ldr r6, [r3]                                      |     r6 = *(r3);
    0x00002b90 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00002b92 beq.w 0x26be                                      |         goto label_8;
                                                                 |     }
                                                                 | label_31:
    0x00002b96 mov r0, r6                                        |     r0 = r6;
    0x00002b98 blx 0x15cc                                        |     strv_free_erase ();
    0x00002b9c b 0x26be                                          |     goto label_8;
                                                                 | label_49:
    0x00002b9e blx 0x1830                                        |     r0 = errno_location ();
    0x00002ba2 ldr r4, [r0]                                      |     r4 = *(r0);
    0x00002ba4 blx 0x1608                                        |     r0 = log_get_max_level ();
    0x00002ba8 cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x00002baa bgt.w 0x2de8                                      |         goto label_96;
                                                                 |     }
    0x00002bae eor.w r3, r4, r4, asr 31                          |     r3 = r4 ^ (r4 >> 31);
    0x00002bb2 sub.w r3, r3, r4, asr 31                          |     r3 -= (r4 >> 31);
    0x00002bb6 bic r3, r3, 0x40000000                            |     r3 = BIT_MASK (r3, 0x40000000);
    0x00002bba rsb.w sb, r3, 0                                   |     sb = r3 - ;
    0x00002bbe b 0x295e                                          |     goto label_17;
                                                                 | label_50:
    0x00002bc0 ldr.w r1, [pc, 0x4d4]                             |     
    0x00002bc4 mov.w r2, 0x15e                                   |     r2 = 0x15e;
    0x00002bc8 ldr.w r3, [pc, 0x4d0]                             |     
    0x00002bcc ldr.w r0, [pc, 0x4d0]                             |     
    0x00002bd0 add r1, pc                                        |     r1 = 0x5c6c;
    0x00002bd2 add r3, pc                                        |     r3 = 0x5c72;
    0x00002bd4 adds r1, 7                                        |     r1 += 7;
    0x00002bd6 add r0, pc                                        |     r0 = 0x5c7a;
    0x00002bd8 blx 0x1518                                        |     log_assert_failed ();
                                                                 | label_55:
    0x00002bdc blx 0x1830                                        |     r0 = errno_location ();
    0x00002be0 ldr r4, [r0]                                      |     r4 = *(r0);
    0x00002be2 cmp r4, 0                                         |     
                                                                 |     if (r4 > 0) {
    0x00002be4 bgt.w 0x27a8                                      |         goto label_20;
                                                                 |     }
    0x00002be8 mov r0, fp                                        |     r0 = fp;
    0x00002bea blx 0x1560                                        |     closedir ();
    0x00002bee b 0x2736                                          |     goto label_9;
                                                                 | label_51:
    0x00002bf0 ldr.w r1, [pc, 0x4b0]                             |     
    0x00002bf4 movw r2, 0x15f                                    |     r2 = 0x15f;
    0x00002bf8 ldr.w r3, [pc, 0x4ac]                             |     
    0x00002bfc ldr.w r0, [pc, 0x4ac]                             |     
    0x00002c00 add r1, pc                                        |     r1 = 0x5ca8;
    0x00002c02 add r3, pc                                        |     r3 = 0x5cae;
    0x00002c04 adds r1, 7                                        |     r1 += 7;
    0x00002c06 add r0, pc                                        |     r0 = 0x5cb6;
    0x00002c08 blx 0x1518                                        |     log_assert_failed ();
                                                                 | label_52:
    0x00002c0c ldr.w r1, [pc, 0x4a0]                             |     
    0x00002c10 mov.w r2, 0x160                                   |     r2 = 0x160;
    0x00002c14 ldr.w r3, [pc, 0x49c]                             |     
    0x00002c16 adds r4, 0x9c                                     |     r4 += 0x9c;
    0x00002c18 ldr.w r0, [pc, 0x49c]                             |     
    0x00002c1c add r1, pc                                        |     r1 = 0x5cd0;
    0x00002c1e add r3, pc                                        |     r3 = 0x5cd6;
    0x00002c20 adds r1, 7                                        |     r1 += 7;
    0x00002c22 add r0, pc                                        |     r0 = 0x5cde;
    0x00002c24 blx 0x1518                                        |     log_assert_failed ();
                                                                 | label_86:
    0x00002c28 mov.w r3, -1                                      |     r3 = -1;
    0x00002c2c str r3, [sp, 0x28]                                |     var_28h = r3;
                                                                 | label_89:
    0x00002c2e ldrd r2, r3, [sp, 0x20]                           |     __asm ("ldrd r2, r3, [var_20h]");
    0x00002c32 mov r1, r6                                        |     r1 = r6;
    0x00002c34 str r4, [sp, 8]                                   |     var_8h = r4;
    0x00002c36 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x00002c38 strd r2, r3, [sp]                                 |     __asm ("strd r2, r3, [sp]");
    0x00002c3c movs r2, 0                                        |     r2 = 0;
    0x00002c3e ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x00002c40 strd sl, r3, [sp, 0xc]                            |     __asm ("strd sl, r3, [var_ch]");
    0x00002c44 blx 0x14e8                                        |     ask_password_tty ();
    0x00002c46 mrrc p8, 0xd, pc, r0, c15                         |     __asm ("mrrc p8, 0xd, pc, r0, c15");
    0x00002c4a adds r4, 0x70                                     |     r4 += 0x70;
    0x00002c4c mov r4, r0                                        |     r4 = r0;
    0x00002c4e add r3, pc                                        |     r3 += pc;
    0x00002c50 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00002c52 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00002c54 beq.w 0x2864                                      |         goto label_21;
                                                                 |     }
    0x00002c58 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x00002c5a blx 0x16d4                                        |     safe_close ();
    0x00002c5e blx 0x1590                                        |     release_terminal ();
    0x00002c62 cmp r4, 0                                         |     
                                                                 |     if (r4 < 0) {
    0x00002c64 blt.w 0x2b60                                      |         goto label_22;
                                                                 |     }
    0x00002c68 blx 0x1608                                        |     r0 = log_get_max_level ();
    0x00002c6c cmp r0, 5                                         |     
                                                                 |     if (r0 <= 5) {
    0x00002c6e ble.w 0x286a                                      |         goto label_23;
                                                                 |     }
    0x00002c72 ldr.w r3, [pc, 0x44c]                             |     
    0x00002c76 movs r1, 0                                        |     r1 = 0;
    0x00002c78 ldr.w r2, [pc, 0x448]                             |     
    0x00002c7c movs r0, 6                                        |     r0 = 6;
    0x00002c7e str.w r8, [sp, 8]                                 |     __asm ("str.w r8, [var_8h]");
    0x00002c82 add r3, pc                                        |     r3 = 0x5d48;
    0x00002c84 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002c86 add r2, pc                                        |     r2 = 0x5d4e;
    0x00002c88 ldr.w r3, [pc, 0x43c]                             |     
    0x00002c8c adds r2, 7                                        |     r2 += 7;
    0x00002c8e add r3, pc                                        |     r3 = 0x5d5a;
    0x00002c90 str r3, [sp]                                      |     *(sp) = r3;
    0x00002c92 movs r3, 0xa7                                     |     r3 = 0xa7;
    0x00002c94 blx 0x16bc                                        |     log_internal ();
    0x00002c98 b 0x286a                                          |     goto label_23;
                                                                 | label_66:
    0x00002c9a ldr.w r1, [pc, 0x430]                             |     
    0x00002c9e movs r2, 0xe2                                     |     r2 = 0xe2;
    0x00002ca0 ldr.w r3, [pc, 0x42c]                             |     
    0x00002ca4 movs r0, 3                                        |     r0 = 3;
    0x00002ca6 add r1, pc                                        |     r1 = 0x5d78;
    0x00002ca8 adds r1, 7                                        |     r1 += 7;
    0x00002caa add r3, pc                                        |     r3 = 0x5d7e;
    0x00002cac blx 0x18e4                                        |     r0 = log_oom_internal ();
    0x00002cb0 mov r4, r0                                        |     r4 = r0;
    0x00002cb2 b 0x2710                                          |     goto label_24;
                                                                 | label_84:
    0x00002cb4 blx 0x1830                                        |     r0 = errno_location ();
    0x00002cb8 ldr r4, [r0]                                      |     r4 = *(r0);
    0x00002cba blx 0x1608                                        |     log_get_max_level ();
    0x00002cbc stc p8, c2, [r6], 8                               |     __asm ("stc p8, c2, [r6], 8");
    0x00002cbe cmp r0, 2                                         |     
                                                                 |     if (r0 > 2) {
    0x00002cc0 bgt 0x2d84                                        |         goto label_97;
                                                                 |     }
    0x00002cc2 eor.w r3, r4, r4, asr 31                          |     r3 = r4 ^ (r4 >> 31);
    0x00002cc6 sub.w r3, r3, r4, asr 31                          |     r3 -= (r4 >> 31);
    0x00002cca bic r3, r3, 0x40000000                            |     r3 = BIT_MASK (r3, 0x40000000);
    0x00002cce rsbs r5, r3, 0                                    |     r5 = r3 - ;
                                                                 | label_30:
    0x00002cd0 cmp r5, 0                                         |     
    0x00002cd2 it ge                                             |     
                                                                 |     if (r5 < 0) {
    0x00002cd4 mvnge r5, 0x55                                    |         r5 = ~0x55;
                                                                 |     }
    0x00002cd8 b 0x2a90                                          |     goto label_25;
                                                                 | label_75:
    0x00002cda mvn r4, 0x7c                                      |     r4 = ~0x7c;
    0x00002cde b 0x26be                                          |     goto label_8;
                                                                 | label_85:
    0x00002ce0 ldr.w r8, [pc, 0x3f0]                             |     
    0x00002ce4 add r8, pc                                        |     r8 = 0x5dbc;
    0x00002ce6 b 0x29ea                                          |     goto label_26;
                                                                 | label_87:
    0x00002ce8 blx 0x1608                                        |     r0 = log_get_max_level ();
    0x00002cec cmp r0, 2                                         |     
                                                                 |     if (r0 > 2) {
    0x00002cee bgt.w 0x2ea6                                      |         goto label_98;
                                                                 |     }
    0x00002cf2 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x00002cf4 rsbs r3, r3, 0                                    |     r3 -= ;
    0x00002cf6 bics r3, r3, 0x40000000                           |     __asm ("bics r3, r3, 0x40000000");
                                                                 |     if (r0 != 2) {
    0x00002cfa bne.w 0x2b5e                                      |         goto label_27;
                                                                 |     }
                                                                 | label_94:
    0x00002cfe mvn r4, 0x55                                      |     r4 = ~0x55;
    0x00002d02 b 0x2b8c                                          |     goto label_28;
                                                                 | label_80:
    0x00002d04 blx 0x1830                                        |     r0 = errno_location ();
    0x00002d08 ldr r4, [r0]                                      |     r4 = *(r0);
    0x00002d0a blx 0x1608                                        |     r0 = log_get_max_level ();
    0x00002d0e cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x00002d10 bgt.w 0x2f16                                      |         goto label_99;
                                                                 |     }
                                                                 | label_37:
    0x00002d14 eor.w r3, r4, r4, asr 31                          |     r3 = r4 ^ (r4 >> 31);
    0x00002d18 sub.w r3, r3, r4, asr 31                          |     r3 -= (r4 >> 31);
    0x00002d1c bic r3, r3, 0x40000000                            |     r3 = BIT_MASK (r3, 0x40000000);
    0x00002d20 rsbs r3, r3, 0                                    |     r3 -= ;
    0x00002d22 str r3, [sp, 0x20]                                |     var_20h = r3;
                                                                 | label_38:
    0x00002d24 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00002d26 mov r0, r8                                        |     r0 = r8;
    0x00002d28 cmp r3, 0                                         |     
                                                                 |     if (r3 < 0) {
    0x00002d2a blt.w 0x2e6c                                      |         goto label_100;
                                                                 |     }
    0x00002d2e blx 0x16d4                                        |     safe_close ();
    0x00002d32 mov r0, r6                                        |     r0 = r6;
    0x00002d34 blx 0x1674                                        |     r0 = malloc_usable_size ();
    0x00002d38 mov r1, r0                                        |     r1 = r0;
    0x00002d3a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00002d3c bne.w 0x2f44                                      |         goto label_101;
                                                                 |     }
    0x00002d40 mov r0, r6                                        |     r0 = r6;
    0x00002d42 blx 0x1524                                        |     free (r0);
                                                                 | label_40:
    0x00002d46 mvn r3, 0x55                                      |     r3 = ~0x55;
    0x00002d4a str r3, [sp, 0x20]                                |     var_20h = r3;
                                                                 | label_34:
    0x00002d4c blx 0x1608                                        |     r0 = log_get_max_level ();
    0x00002d50 cmp r0, 2                                         |     
                                                                 |     if (r0 > 2) {
    0x00002d52 bgt.w 0x2e84                                      |         goto label_102;
                                                                 |     }
    0x00002d56 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00002d58 rsbs r0, r3, 0                                    |     r0 = r3 - ;
    0x00002d5a bic r0, r0, 0x40000000                            |     r0 = BIT_MASK (r0, 0x40000000);
    0x00002d5e rsbs r4, r0, 0                                    |     r4 = r0 - ;
    0x00002d60 b 0x2b7c                                          |     goto label_29;
                                                                 | label_93:
    0x00002d62 ldr r3, [pc, 0x374]                               |     
    0x00002d64 mov r1, r4                                        |     r1 = r4;
    0x00002d66 ldr r2, [pc, 0x374]                               |     
    0x00002d68 movs r0, 3                                        |     r0 = 3;
    0x00002d6a add r3, pc                                        |     r3 = 0x5e48;
    0x00002d6c str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002d6e add r2, pc                                        |     r2 = 0x5e50;
    0x00002d70 ldr r3, [pc, 0x36c]                               |     
    0x00002d72 adds r2, 7                                        |     r2 += 7;
    0x00002d74 add r3, pc                                        |     r3 = 0x5e58;
    0x00002d76 str r3, [sp]                                      |     *(sp) = r3;
    0x00002d78 movw r3, 0x101                                    |     r3 = 0x101;
    0x00002d7c blx 0x16bc                                        |     r0 = log_internal ();
    0x00002d80 mov r4, r0                                        |     r4 = r0;
    0x00002d82 b 0x2b7c                                          |     goto label_29;
                                                                 | label_97:
    0x00002d84 ldr r3, [pc, 0x35c]                               |     
    0x00002d86 mov r1, r4                                        |     r1 = r4;
    0x00002d88 movs r0, 3                                        |     r0 = 3;
    0x00002d8a add r3, pc                                        |     r3 = 0x5e72;
    0x00002d8c adds r2, r3, 7                                    |     r2 = r3 + 7;
    0x00002d8e ldr r3, [pc, 0x358]                               |     
    0x00002d90 add r3, pc                                        |     r3 = 0x5e7e;
    0x00002d92 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002d94 ldr r3, [pc, 0x354]                               |     
    0x00002d96 add r3, pc                                        |     r3 = 0x5e86;
    0x00002d98 str r3, [sp]                                      |     *(sp) = r3;
    0x00002d9a movw r3, 0x16b                                    |     r3 = 0x16b;
    0x00002d9e blx 0x16bc                                        |     r0 = log_internal ();
    0x00002da2 mov r5, r0                                        |     r5 = r0;
    0x00002da4 b 0x2cd0                                          |     goto label_30;
                                                                 | label_91:
    0x00002da6 mov.w sl, -1                                      |     sl = -1;
    0x00002daa b 0x2a90                                          |     goto label_25;
                                                                 | label_76:
    0x00002dac mvn r4, 0x7c                                      |     r4 = ~0x7c;
    0x00002db0 b 0x2b96                                          |     goto label_31;
                                                                 | label_95:
    0x00002db2 blx 0x1608                                        |     r0 = log_get_max_level ();
    0x00002db6 cmp r0, 5                                         |     
                                                                 |     if (r0 <= 5) {
    0x00002db8 ble.w 0x2b8a                                      |         goto label_32;
                                                                 |     }
    0x00002dbc ldr r3, [r7]                                      |     r3 = *(r7);
    0x00002dbe cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00002dc0 beq.w 0x2f36                                      |         goto label_103;
                                                                 |     }
                                                                 | label_39:
    0x00002dc4 str r3, [sp, 8]                                   |     var_8h = r3;
    0x00002dc6 movs r1, 0                                        |     r1 = 0;
    0x00002dc8 ldr r3, [r6]                                      |     r3 = *(r6);
    0x00002dca movs r0, 6                                        |     r0 = 6;
    0x00002dcc ldr r2, [pc, 0x320]                               |     
    0x00002dce str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00002dd0 ldr r3, [pc, 0x320]                               |     
    0x00002dd2 add r2, pc                                        |     r2 = 0x5ec6;
    0x00002dd4 adds r2, 7                                        |     r2 += 7;
    0x00002dd6 add r3, pc                                        |     r3 = 0x5ece;
    0x00002dd8 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002dda ldr r3, [pc, 0x31c]                               |     
    0x00002ddc add r3, pc                                        |     r3 = 0x5eda;
    0x00002dde str r3, [sp]                                      |     *(sp) = r3;
    0x00002de0 movs r3, 0xee                                     |     r3 = 0xee;
    0x00002de2 blx 0x16bc                                        |     log_internal ();
    0x00002de6 b 0x2b8a                                          |     goto label_32;
                                                                 | label_96:
    0x00002de8 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x00002dea mov r1, r4                                        |     r1 = r4;
    0x00002dec ldr r2, [pc, 0x30c]                               |     
    0x00002dee movs r0, 7                                        |     r0 = 7;
    0x00002df0 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00002df2 add r2, pc                                        |     r2 = 0x5ef2;
    0x00002df4 adds r2, 7                                        |     r2 += 7;
    0x00002df6 str r3, [sp, 8]                                   |     var_8h = r3;
    0x00002df8 ldr r3, [pc, 0x304]                               |     
    0x00002dfa add r3, pc                                        |     r3 = 0x5efe;
    0x00002dfc str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002dfe ldr r3, [pc, 0x304]                               |     
    0x00002e00 add r3, pc                                        |     r3 = 0x5f0a;
    0x00002e02 str r3, [sp]                                      |     *(sp) = r3;
    0x00002e04 movw r3, 0x123                                    |     r3 = 0x123;
    0x00002e08 blx 0x16bc                                        |     r0 = log_internal ();
    0x00002e0c mov sb, r0                                        |     sb = r0;
    0x00002e0e b 0x295e                                          |     goto label_17;
                                                                 | label_68:
    0x00002e10 ldrd sl, sb, [sp, 0x44]                           |     __asm ("ldrd sl, sb, [var_44h]");
    0x00002e14 mov r5, r0                                        |     r5 = r0;
    0x00002e16 b 0x2a90                                          |     goto label_25;
                                                                 | label_90:
    0x00002e18 ldr r3, [pc, 0x2ec]                               |     
    0x00002e1a mov r1, r4                                        |     r1 = r4;
    0x00002e1c ldr r2, [pc, 0x2ec]                               |     
    0x00002e1e movs r0, 3                                        |     r0 = 3;
    0x00002e20 add r3, pc                                        |     r3 = 0x5f2c;
    0x00002e22 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002e24 add r2, pc                                        |     r2 = 0x5f34;
    0x00002e26 ldr r3, [pc, 0x2e8]                               |     
    0x00002e28 adds r2, 7                                        |     r2 += 7;
    0x00002e2a add r3, pc                                        |     r3 = 0x5f40;
    0x00002e2c str r3, [sp]                                      |     *(sp) = r3;
    0x00002e2e movw r3, 0x165                                    |     r3 = 0x165;
    0x00002e32 blx 0x16bc                                        |     r0 = log_internal ();
    0x00002e36 mov r5, r0                                        |     r5 = r0;
    0x00002e38 b 0x2a82                                          |     goto label_33;
                                                                 | label_78:
    0x00002e3a mov.w r0, -1                                      |     r0 = -1;
    0x00002e3e blx 0x16d4                                        |     safe_close ();
    0x00002e42 b 0x2d4c                                          |     goto label_34;
                                                                 | label_88:
    0x00002e44 blx 0x1608                                        |     r0 = log_get_max_level ();
    0x00002e48 cmp r0, 3                                         |     
    0x00002e4a ldr r1, [sp, 0x4c]                                |     r1 = var_4ch;
                                                                 |     if (r0 <= 3) {
    0x00002e4c ble.w 0x2a16                                      |         goto label_35;
                                                                 |     }
    0x00002e50 ldr r3, [pc, 0x2c0]                               |     
    0x00002e52 movs r0, 4                                        |     r0 = 4;
    0x00002e54 ldr r2, [pc, 0x2c0]                               |     
    0x00002e56 add r3, pc                                        |     r3 = 0x5f6e;
    0x00002e58 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002e5a add r2, pc                                        |     r2 = 0x5f76;
    0x00002e5c ldr r3, [pc, 0x2bc]                               |     
    0x00002e5e adds r2, 7                                        |     r2 += 7;
    0x00002e60 add r3, pc                                        |     r3 = 0x5f80;
    0x00002e62 str r3, [sp]                                      |     *(sp) = r3;
    0x00002e64 movs r3, 0x9b                                     |     r3 = 0x9b;
    0x00002e66 blx 0x16bc                                        |     log_internal ();
    0x00002e6a b 0x2a16                                          |     goto label_35;
                                                                 | label_100:
    0x00002e6c blx 0x16d4                                        |     safe_close ();
    0x00002e70 mov r0, r6                                        |     r0 = r6;
    0x00002e72 blx 0x1674                                        |     malloc_usable_size ();
    0x00002e74 invalid                                           |     
    0x00002e78 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00002e7a bne 0x2f56                                        |         goto label_104;
                                                                 |     }
                                                                 | label_41:
    0x00002e7c mov r0, r6                                        |     r0 = r6;
    0x00002e7e blx 0x1524                                        |     free (r0);
    0x00002e82 b 0x2d4c                                          |     goto label_34;
                                                                 | label_102:
    0x00002e84 ldr r3, [pc, 0x298]                               |     
    0x00002e86 movs r0, 3                                        |     r0 = 3;
    0x00002e88 ldr r2, [pc, 0x298]                               |     
    0x00002e8a ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x00002e8c add r3, pc                                        |     r3 = 0x5fb0;
    0x00002e8e str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002e90 add r2, pc                                        |     r2 = 0x5fb8;
    0x00002e92 ldr r3, [pc, 0x294]                               |     
    0x00002e94 adds r2, 7                                        |     r2 += 7;
    0x00002e96 add r3, pc                                        |     r3 = 0x5fc4;
    0x00002e98 str r3, [sp]                                      |     *(sp) = r3;
    0x00002e9a movw r3, 0x109                                    |     r3 = 0x109;
    0x00002e9e blx 0x16bc                                        |     r0 = log_internal ();
    0x00002ea2 mov r4, r0                                        |     r4 = r0;
    0x00002ea4 b 0x2b7c                                          |     goto label_29;
                                                                 | label_98:
    0x00002ea6 ldr r3, [pc, 0x284]                               |     
    0x00002ea8 movs r0, 3                                        |     r0 = 3;
    0x00002eaa ldr r2, [pc, 0x284]                               |     
    0x00002eac ldr r1, [sp, 0x28]                                |     r1 = var_28h;
    0x00002eae add r3, pc                                        |     r3 = 0x5fe0;
    0x00002eb0 str.w r8, [sp, 8]                                 |     __asm ("str.w r8, [var_8h]");
    0x00002eb4 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002eb6 add r2, pc                                        |     r2 = 0x5fec;
    0x00002eb8 ldr r3, [pc, 0x278]                               |     
    0x00002eba adds r2, 7                                        |     r2 += 7;
    0x00002ebc add r3, pc                                        |     r3 = 0x5ff4;
    0x00002ebe str r3, [sp]                                      |     *(sp) = r3;
    0x00002ec0 movs r3, 0x97                                     |     r3 = 0x97;
    0x00002ec2 blx 0x16bc                                        |     r0 = log_internal ();
    0x00002ec6 subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 < r0) {
    0x00002ec8 blt.w 0x2b60                                      |         goto label_22;
                                                                 |     }
    0x00002ecc mvn r4, 0x55                                      |     r4 = ~0x55;
    0x00002ed0 b 0x2b6a                                          |     goto label_36;
                                                                 | label_77:
    0x00002ed2 ldr r1, [pc, 0x264]                               |     
    0x00002ed4 movs r2, 0x42                                     |     r2 = 0x42;
    0x00002ed6 ldr r3, [pc, 0x264]                               |     
    0x00002ed8 ldr r0, [pc, 0x264]                               |     
    0x00002eda add r1, pc                                        |     r1 = 0x6018;
    0x00002edc add r3, pc                                        |     r3 = 0x601e;
    0x00002ede adds r1, 7                                        |     r1 += 7;
    0x00002ee0 add r0, pc                                        |     r0 = 0x6024;
    0x00002ee2 blx 0x1518                                        |     log_assert_failed ();
                                                                 | label_81:
    0x00002ee6 blx 0x1830                                        |     r0 = errno_location ();
    0x00002eea ldr r4, [r0]                                      |     r4 = *(r0);
    0x00002eec blx 0x1608                                        |     r0 = log_get_max_level ();
    0x00002ef0 cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x00002ef2 ble.w 0x2d14                                      |         goto label_37;
                                                                 |     }
    0x00002ef6 ldr r3, [pc, 0x24c]                               |     
    0x00002ef8 mov r1, r4                                        |     r1 = r4;
    0x00002efa ldr r2, [pc, 0x24c]                               |     
    0x00002efc movs r0, 7                                        |     r0 = 7;
    0x00002efe add r3, pc                                        |     r3 = 0x6048;
    0x00002f00 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002f02 add r2, pc                                        |     r2 = 0x6050;
    0x00002f04 ldr r3, [pc, 0x244]                               |     
    0x00002f06 adds r2, 7                                        |     r2 += 7;
    0x00002f08 add r3, pc                                        |     r3 = 0x6058;
    0x00002f0a str r3, [sp]                                      |     *(sp) = r3;
    0x00002f0c movs r3, 0x5c                                     |     r3 = 0x5c;
    0x00002f0e blx 0x16bc                                        |     log_internal ();
    0x00002f12 str r0, [sp, 0x20]                                |     var_20h = r0;
    0x00002f14 b 0x2d24                                          |     goto label_38;
                                                                 | label_99:
    0x00002f16 ldr r3, [pc, 0x238]                               |     
    0x00002f18 mov r1, r4                                        |     r1 = r4;
    0x00002f1a ldr r2, [pc, 0x238]                               |     
    0x00002f1c movs r0, 7                                        |     r0 = 7;
    0x00002f1e add r3, pc                                        |     r3 = 0x6074;
    0x00002f20 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002f22 add r2, pc                                        |     r2 = 0x607c;
    0x00002f24 ldr r3, [pc, 0x230]                               |     
    0x00002f26 adds r2, 7                                        |     r2 += 7;
    0x00002f28 add r3, pc                                        |     r3 = 0x6084;
    0x00002f2a str r3, [sp]                                      |     *(sp) = r3;
    0x00002f2c movs r3, 0x58                                     |     r3 = 0x58;
    0x00002f2e blx 0x16bc                                        |     log_internal ();
    0x00002f32 str r0, [sp, 0x20]                                |     var_20h = r0;
    0x00002f34 b 0x2d24                                          |     goto label_38;
                                                                 | label_103:
    0x00002f36 ldr r3, [pc, 0x224]                               |     
    0x00002f38 add r3, pc                                        |     r3 = 0x609a;
    0x00002f3a b 0x2dc4                                          |     goto label_39;
                                                                 | label_46:
    0x00002f3c mvn sb, 0x18                                      |     sb = ~0x18;
    0x00002f40 b.w 0x2490                                        |     goto label_12;
                                                                 | label_101:
    0x00002f44 mov r0, r6                                        |     r0 = r6;
    0x00002f46 mov.w r2, -1                                      |     r2 = -1;
    0x00002f4a blx 0x153c                                        |     explicit_bzero_chk ();
    0x00002f4e mov r0, r6                                        |     r0 = r6;
    0x00002f50 blx 0x1524                                        |     free (r0);
    0x00002f54 b 0x2d46                                          |     goto label_40;
                                                                 | label_104:
    0x00002f56 mov.w r2, -1                                      |     r2 = -1;
    0x00002f5a mov r0, r6                                        |     r0 = r6;
    0x00002f5c blx 0x153c                                        |     explicit_bzero_chk ();
    0x00002f60 b 0x2e7c                                          |     goto label_41;
                                                                 | label_82:
    0x00002f62 mov.w r2, -1                                      |     r2 = -1;
    0x00002f66 mov r0, r6                                        |     r0 = r6;
    0x00002f68 blx 0x153c                                        |     explicit_bzero_chk ();
    0x00002f6c b 0x2920                                          |     goto label_42;
                                                                 | label_54:
    0x00002f6e blx 0x1830                                        |     r0 = errno_location ();
    0x00002f72 ldr r4, [r0]                                      |     r4 = *(r0);
    0x00002f74 cmp r4, 2                                         |     
                                                                 |     if (r4 == 2) {
    0x00002f76 beq.w 0x2736                                      |         goto label_9;
                                                                 |     }
    0x00002f7a blx 0x1608                                        |     r0 = log_get_max_level ();
    0x00002f7e cmp r0, 2                                         |     
                                                                 |     if (r0 > 2) {
    0x00002f80 bgt 0x2fac                                        |         goto label_105;
                                                                 |     }
    0x00002f82 cmp r4, 0                                         |     
    0x00002f84 it lt                                             |     
                                                                 |     if (r4 < 0) {
    0x00002f86 rsblt r4, r4, 0                                   |         __asm ("rsblt r4, r4, 0");
                                                                 |     }
    0x00002f88 bics r4, r4, 0x40000000                           |     __asm ("bics r4, r4, 0x40000000");
                                                                 |     if (r4 == 0) {
    0x00002f8c beq.w 0x2736                                      |         goto label_9;
                                                                 |     }
    0x00002f90 cmp r4, 0x7d                                      |     
                                                                 |     if (r4 != 0x7d) {
    0x00002f92 bne.w 0x2736                                      |         goto label_9;
                                                                 |     }
    0x00002f96 b 0x2944                                          |     goto label_43;
                                                                 | label_79:
    0x00002f98 mov.w r0, -1                                      |     r0 = -1;
    0x00002f9c blx 0x16d4                                        |     safe_close ();
    0x00002fa0 mvn r3, 0xb                                       |     r3 = ~0xb;
    0x00002fa4 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x00002fa6 b 0x2d4c                                          |     goto label_34;
                                                                 | label_92:
    0x00002fa8 blx 0x16ec                                        |     stack_chk_fail ();
                                                                 | label_105:
    0x00002fac ldr r3, [pc, 0x1b0]                               |     
    0x00002fae mov r1, r4                                        |     r1 = r4;
    0x00002fb0 ldr r2, [pc, 0x1b0]                               |     
    0x00002fb2 movs r0, 3                                        |     r0 = 3;
    0x00002fb4 add r3, pc                                        |     r3 = 0x6118;
    0x00002fb6 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00002fb8 add r2, pc                                        |     r2 = 0x6120;
    0x00002fba ldr r3, [pc, 0x1ac]                               |     
    0x00002fbc adds r2, 7                                        |     r2 += 7;
    0x00002fbe add r3, pc                                        |     r3 = 0x612c;
    0x00002fc0 str r3, [sp]                                      |     *(sp) = r3;
    0x00002fc2 movw r3, 0x131                                    |     r3 = 0x131;
    0x00002fc6 blx 0x16bc                                        |     r0 = log_internal ();
    0x00002fca subs r3, r0, 0                                    |     r3 = r0 - 0;
    0x00002fcc str r3, [sp, 0x18]                                |     var_18h = r3;
                                                                 |     if (r3 >= r0) {
    0x00002fce bge.w 0x27c8                                      |         goto label_44;
                                                                 |     }
    0x00002fd2 b 0x293c                                          |     goto label_45;
                                                                 | }

[*] Function printf used 4 times systemd-tty-ask-password-agent