[*] 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