[*] Binary protection state of systemd-sleep
Full RELRO Canary found NX enabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function printf tear down of systemd-sleep
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/systemd/systemd-sleep @ 0x18a0 */
| #include <stdint.h>
|
| #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
|
; (fcn) fcn.000018a0 () | void fcn_000018a0 (int16_t arg_7h, int16_t arg1, int16_t arg2, int16_t arg3) {
| int16_t var_7h;
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_18h;
| int16_t var_24h;
| int16_t var_2ch;
| int16_t var_30h;
| int16_t var_34h;
| int16_t var_38h;
| int16_t var_40h;
| int16_t var_44h;
| int16_t var_48h;
| int32_t var_4ch;
| int32_t var_4ch_2;
| int16_t var_54h;
| int16_t var_6ch;
| int16_t var_84h;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
0x000018a0 ldr.w r3, [pc, 0x96c] | r3 = *(0x00002210);
0x000018a4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x000018a8 mov r8, r2 | r8 = r2;
0x000018aa ldr.w r5, [pc, 0x968] |
0x000018ae mov r4, r0 | r4 = r0;
0x000018b0 add r3, pc | r3 += pc;
0x000018b2 sub sp, 0x8c |
0x000018b4 ldr.w r2, [pc, 0x960] | r2 = *(0x00002218);
0x000018b8 movs r7, 0 | r7 = 0;
0x000018ba ldr r0, [r3] | r0 = *(r3);
0x000018bc add r5, pc | r5 = 0x3ad6;
0x000018be ldr.w r3, [pc, 0x95c] |
0x000018c2 add r2, pc | r2 += pc;
0x000018c4 str r5, [sp, 0x48] | var_48h = r5;
0x000018c6 mov r5, r1 | r5 = r1;
0x000018c8 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x000018ca ldr r3, [r3] | r3 = *(0x221e);
0x000018cc str r3, [sp, 0x84] | var_84h = r3;
0x000018ce mov.w r3, 0 | r3 = 0;
0x000018d2 str r7, [sp, 0x44] | var_44h = r7;
0x000018d4 blx 0x107c | sleep_operation_to_string ();
0x000018d8 str r7, [sp, 0x2c] | var_2ch = r7;
0x000018da strd r0, r7, [sp, 0x4c] | __asm ("strd r0, r7, [var_4ch]");
0x000018de cmp r4, 0 |
| if (r4 == 0) {
0x000018e0 beq.w 0x1d3a | goto label_17;
| }
0x000018e4 cmp r5, 0 |
| if (r5 < 0) {
0x000018e6 blt.w 0x1d54 | goto label_18;
| }
0x000018ea cmp r5, 3 |
| if (r5 > 3) {
0x000018ec bgt.w 0x1d6e | goto label_19;
| }
| if (r5 == 3) {
0x000018f0 beq.w 0x1df8 | goto label_20;
| }
0x000018f4 add.w r4, r4, r5, lsl 2 | r4 += (r5 << 2);
0x000018f8 ldr r6, [r4, 0x14] | r6 = *((r4 + 0x14));
0x000018fa ldr.w sb, [r4, 4] | sb = *((r4 + 4));
0x000018fe cmp r6, 0 |
| if (r6 == 0) {
0x00001900 beq.w 0x1ada | goto label_21;
| }
0x00001902 strh r3, [r5, 6] | *((r5 + 6)) = r3;
0x00001904 ldr r3, [r6] | r3 = *(r6);
0x00001906 cmp r3, 0 |
| if (r3 == 0) {
0x00001908 beq.w 0x1ada | goto label_21;
| }
0x0000190c ldr.w r1, [pc, 0x910] |
0x00001910 ldr.w r0, [pc, 0x910] |
0x00001914 add r1, pc | r1 = 0x3b38;
0x00001916 add r0, pc | r0 = 0x3b3e;
0x00001918 blx 0x113c | r0 = fopen64 ();
0x0000191c mov r4, r0 | r4 = r0;
0x0000191e cmp r0, 0 |
| if (r0 == 0) {
0x00001920 beq.w 0x21c4 | goto label_22;
| }
0x00001922 strh r0, [r2, 0x22] | *((r2 + 0x22)) = r0;
0x00001924 mov r3, r7 | r3 = r7;
0x00001926 mov r1, r7 | r1 = r7;
0x00001928 movs r2, 2 | r2 = 2;
0x0000192a blx 0x10c4 | setvbuf (r0, r1, r2, r3);
0x0000192e cmp.w sb, 0 |
0x00001930 lsrs r0, r0, 0x1c | r0 >>= 0x1c;
| if (r0 == r0) {
0x00001932 beq.w 0x1b1a | goto label_8;
| }
0x00001936 ldr.w r3, [sb] | r3 = *(sb);
0x0000193a cmp r3, 0 |
| if (r3 == 0) {
0x0000193c beq.w 0x1b1a | goto label_8;
| }
0x00001940 add r0, sp, 0x2c | r0 += var_2ch;
0x00001942 blx 0x10b8 | find_hibernate_location ();
0x00001946 subs r7, r0, 0 | r7 -= var_2ch;
| if (r7 < var_2ch) {
0x00001948 blt.w 0x1f82 | goto label_23;
| }
| if (r7 == var_2ch) {
0x0000194c bne.w 0x1a72 |
0x00001950 ldr.w sl, [sp, 0x2c] | sl = var_2ch;
0x00001954 cmp.w sl, 0 |
| if (sl == 0) {
0x00001958 beq.w 0x206c | goto label_24;
| }
0x0000195c ldr.w r3, [sl, 0x10] | r3 = *((sl + 0x10));
0x00001960 cmp r3, 0 |
| if (r3 == 0) {
0x00001962 beq.w 0x2080 | goto label_25;
| }
0x00001966 ldrd r1, r3, [sl] | __asm ("ldrd r1, r3, [sl]");
0x0000196a add.w fp, sp, 0x6c |
0x0000196e ldr.w r2, [pc, 0x8b8] |
0x00001972 add r2, pc | r2 = 0x3ba0;
0x00001974 uxtb r0, r1 | r0 = (int8_t) r1;
0x00001976 str r2, [sp] | *(sp) = r2;
0x00001978 lsrs r2, r1, 0xc | r2 = r1 >> 0xc;
0x0000197a orr.w r2, r2, r3, lsl 20 | r2 |= (r3 << 20);
0x0000197e bic r3, r3, 0xff0 | r3 = BIT_MASK (r3, 0xff0);
0x00001982 bic r3, r3, 0xf | r3 = BIT_MASK (r3, 0xf);
0x00001986 bic r2, r2, 0xff | r2 = BIT_MASK (r2, 0xff);
0x0000198a orrs r2, r0 | r2 |= r0;
0x0000198c mov r0, fp | r0 = fp;
0x0000198e str r2, [sp, 8] | var_8h = r2;
0x00001990 ubfx r2, r1, 8, 0xc | r2 = (r1 >> 8) & ((1 << 0xc) - 1);
0x00001994 orrs r3, r2 | r3 |= r2;
0x00001996 movs r2, 1 | r2 = 1;
0x00001998 str r3, [sp, 4] | var_4h = r3;
0x0000199a movs r3, 0x17 | r3 = 0x17;
0x0000199c mov r1, r3 | r1 = r3;
0x0000199e blx 0x10dc | snprintf_chk ()
0x000019a2 ldr.w r0, [pc, 0x888] |
0x000019a6 mov r1, fp | r1 = fp;
0x000019a8 mov r3, r7 | r3 = r7;
0x000019aa movs r2, 0x80 | r2 = 0x80;
0x000019ac add r0, pc | r0 = 0x3bde;
0x000019ae blx 0x101c | r0 = write_string_file_ts ();
0x000019b2 subs r1, r0, 0 | r1 = r0 - 0;
| if (r1 < r0) {
0x000019b4 blt.w 0x1fb4 | goto label_26;
| }
0x000019b8 blx 0xf98 | r0 = log_get_max_level ();
0x000019bc cmp r0, 6 |
| if (r0 > 6) {
0x000019be bgt.w 0x1fe2 | goto label_27;
| }
| label_10:
0x000019c2 ldr.w r3, [sl, 0x10] | r3 = *((sl + 0x10));
0x000019c6 ldr.w r1, [pc, 0x868] |
0x000019ca ldr r7, [r3, 4] | r7 = *((r3 + 4));
0x000019cc add r1, pc | r1 = 0x3c02;
0x000019ce mov r0, r7 | r0 = r7;
0x000019d0 blx 0x110c | r0 = strcmp (r0, r1);
0x000019d4 cmp r0, 0 |
| if (r0 == 0) {
0x000019d6 beq 0x1a72 | goto label_14;
| }
0x000019d8 ldr.w r1, [pc, 0x858] |
0x000019dc mov r0, r7 | r0 = r7;
0x000019de add r1, pc | r1 = 0x3c16;
0x000019e0 blx 0x110c | r0 = strcmp (r0, r1);
0x000019e4 mov fp, r0 |
0x000019e6 cmp r0, 0 |
| if (r0 != 0) {
0x000019e8 bne.w 0x202c | goto label_28;
| }
0x000019ec ldrd r3, r2, [sl, 8] | __asm ("ldrd r3, r2, [sl, 8]");
0x000019f0 orrs r3, r2 | r3 |= r2;
| if (r3 != r2) {
0x000019f2 beq 0x1a06 |
0x000019f4 ldr.w r0, [pc, 0x840] |
0x000019f8 movs r1, 2 | r1 = 2;
0x000019fa add r0, pc | r0 = 0x3c36;
0x000019fc blx 0x1064 | r0 = access (r0, r1);
0x00001a00 cmp r0, 0 |
| if (r0 < 0) {
0x00001a02 blt.w 0x20de | goto label_29;
| }
| }
0x00001a06 ldr.w ip, [pc, 0x834] |
0x00001a0a movs r3, 0x15 | r3 = 0x15;
0x00001a0c vldr d16, [sl, 8] | __asm ("vldr d16, [sl, 8]");
0x00001a10 add r7, sp, 0x54 | r7 += var_54h;
0x00001a12 mov r1, r3 | r1 = r3;
0x00001a14 movs r2, 1 | r2 = 1;
0x00001a16 add ip, pc | ip = 0x3c58;
0x00001a18 mov r0, r7 | r0 = r7;
0x00001a1a vstr d16, [sp, 8] | __asm ("vstr d16, [sp, 8]");
0x00001a1e str.w ip, [sp] | __asm ("str.w ip, [sp]");
0x00001a22 blx 0x10dc | snprintf_chk ()
0x00001a26 ldr.w r0, [pc, 0x818] |
0x00001a2a movs r3, 0 | r3 = 0;
0x00001a2c movs r2, 0x80 | r2 = 0x80;
0x00001a2e mov r1, r7 | r1 = r7;
0x00001a30 add r0, pc | r0 = 0x3c76;
0x00001a32 blx 0x101c | r0 = write_string_file_ts ();
0x00001a36 subs.w fp, r0, 0 |
| if (fp < r0) {
0x00001a3a blt.w 0x2100 | goto label_30;
| }
0x00001a3e blx 0xf98 | r0 = log_get_max_level ();
0x00001a42 cmp r0, 6 |
| if (r0 <= 6) {
0x00001a44 ble 0x1a72 | goto label_14;
| }
0x00001a46 str r7, [sp, 0xc] | var_ch = r7;
0x00001a48 movs r1, 0 | r1 = 0;
0x00001a4a ldr.w r3, [sl, 0x10] | r3 = *((sl + 0x10));
0x00001a4e movs r0, 7 | r0 = 7;
0x00001a50 ldr.w r2, [pc, 0x7f0] |
0x00001a54 ldr r3, [r3] | r3 = *(r3);
0x00001a56 add r2, pc | r2 = 0x3c9e;
0x00001a58 adds r2, 7 | r2 += 7;
0x00001a5a str r3, [sp, 8] | var_8h = r3;
0x00001a5c ldr.w r3, [pc, 0x7e8] |
0x00001a60 add r3, pc | r3 = 0x3cac;
0x00001a62 str r3, [sp, 4] | var_4h = r3;
0x00001a64 ldr.w r3, [pc, 0x7e4] |
0x00001a68 add r3, pc | r3 = 0x3cb8;
0x00001a6a str r3, [sp] | *(sp) = r3;
0x00001a6c movs r3, 0x51 | r3 = 0x51;
0x00001a6e blx 0x1028 | log_internal ();
| }
| label_14:
0x00001a72 ldr.w fp, [pc, 0x7dc] |
0x00001a76 sub.w sb, sb, 4 | sb -= 4;
0x00001a7a ldr.w sl, [pc, 0x7d8] | sl = *(0x00002254);
0x00001a7e add fp, pc | fp = 0x3cd4;
0x00001a80 add.w r3, fp, 7 | r3 += arg_7h;
0x00001a84 add sl, pc | sl += pc;
0x00001a86 mov.w fp, 0 |
0x00001a8a str r3, [sp, 0x24] | var_24h = r3;
0x00001a8c b 0x1a96 |
| while (r0 <= 6) {
| label_0:
0x00001a8e cmp.w fp, 0 |
0x00001a92 it eq |
| if (fp != 0) {
0x00001a94 moveq fp, r7 |
| }
0x00001a96 ldr r1, [sb, 4]! | r1 = *((sb += 4));
0x00001a9a cmp r1, 0 |
| if (r1 == 0) {
0x00001a9c beq.w 0x1f0c | goto label_31;
| }
0x00001aa0 movs r3, 0 | r3 = 0;
0x00001aa2 movs r2, 0x80 | r2 = 0x80;
0x00001aa4 mov r0, sl | r0 = sl;
0x00001aa6 blx 0x101c | r0 = write_string_file_ts ();
0x00001aaa subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 >= r0) {
0x00001aac bge 0x1b1a | goto label_8;
| }
0x00001aae blx 0xf98 | r0 = log_get_max_level ();
0x00001ab2 cmp r0, 6 |
0x00001ab4 ble 0x1a8e |
| }
0x00001ab6 ldr.w r3, [sb] | r3 = *(sb);
0x00001aba mov r1, r7 | r1 = r7;
0x00001abc ldr r2, [sp, 0x24] | r2 = var_24h;
0x00001abe movs r0, 7 | r0 = 7;
0x00001ac0 str r3, [sp, 8] | var_8h = r3;
0x00001ac2 ldr.w r3, [pc, 0x794] |
0x00001ac6 add r3, pc | r3 = 0x3d24;
0x00001ac8 str r3, [sp, 4] | var_4h = r3;
0x00001aca ldr.w r3, [pc, 0x790] |
0x00001ace add r3, pc | r3 = 0x3d30;
0x00001ad0 str r3, [sp] | *(sp) = r3;
0x00001ad2 movs r3, 0x60 | r3 = 0x60;
0x00001ad4 blx 0x1028 | log_internal ();
0x00001ad8 b 0x1a8e | goto label_0;
| label_21:
0x00001ada blx 0xf98 | r0 = log_get_max_level ();
0x00001ade cmp r0, 2 |
| if (r0 > 2) {
0x00001ae0 bgt.w 0x1cfe | goto label_32;
| }
0x00001ae4 movs r4, 0 | r4 = 0;
0x00001ae6 mvn r5, 0x15 | r5 = ~0x15;
| label_3:
0x00001aea mov r0, r4 | r0 = r4;
0x00001aec blx 0x10d0 | safe_fclose ();
0x00001af0 ldr r0, [sp, 0x2c] | r0 = var_2ch;
| if (r0 != 0) {
0x00001af2 cbz r0, 0x1af8 |
0x00001af4 blx 0xf20 | hibernate_location_free ();
| }
0x00001af8 ldr.w r2, [pc, 0x764] | r2 = *(0x00002260);
0x00001afc ldr.w r3, [pc, 0x71c] | r3 = *(0x221c);
0x00001b00 add r2, pc | r2 += pc;
0x00001b02 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00001b04 ldr r2, [r3] | r2 = *(0x221c);
0x00001b06 ldr r3, [sp, 0x84] | r3 = var_84h;
0x00001b08 eors r2, r3 | r2 ^= r3;
0x00001b0a mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00001b0e bne.w 0x21c0 | goto label_33;
| }
0x00001b12 mov r0, r5 | r0 = r5;
0x00001b14 add sp, 0x8c |
0x00001b16 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_8:
0x00001b1a cmp.w r8, 0 |
| if (r8 == 0) {
0x00001b1e beq.w 0x1cf4 | goto label_34;
| }
| label_2:
0x00001b22 ldr.w r0, [pc, 0x740] |
0x00001b26 movs r2, 1 | r2 = 1;
0x00001b28 mov r1, r8 | r1 = r8;
0x00001b2a add r0, pc | r0 = 0x3d94;
0x00001b2c blx 0x1070 | r0 = setenv (r0, r1, r2);
| if (r0 != 0) {
0x00001b30 cbz r0, 0x1b3c |
0x00001b32 blx 0xf98 | r0 = log_get_max_level ();
0x00001b36 cmp r0, 3 |
| if (r0 > 3) {
0x00001b38 bgt.w 0x1ea2 | goto label_35;
| }
| }
| label_7:
0x00001b3c ldr.w r0, [pc, 0x728] | r0 = *(0x00002268);
0x00001b40 movs r7, 0 | r7 = 0;
0x00001b42 mov.w sl, 3 | sl = 3;
0x00001b46 add.w sb, sp, 0x44 | sb += var_44h;
0x00001b4a addw r3, pc, 0x6bc | __asm ("addw r3, pc, 0x6bc");
0x00001b4e ldrd r2, r3, [r3] | __asm ("ldrd r2, r3, [r3]");
0x00001b52 add r0, pc | r0 += pc;
0x00001b54 strd r7, sl, [sp, 0xc] | __asm ("strd r7, sl, [var_10h]");
0x00001b58 strd r7, r7, [sp] | __asm ("strd r7, r7, [sp]");
0x00001b5c str.w sb, [sp, 8] | __asm ("str.w sb, [var_8h]");
0x00001b5e str r0, [sp, 0x20] | *((sp + 0x20)) = r0;
0x00001b60 blx 0x1160 | execute_directories ();
0x00001b64 vmov.i32 d16, 0 | __asm ("vmov.i32 d16, 0");
0x00001b68 add r0, sp, 0x34 | r0 += var_34h;
0x00001b6a str r7, [sp, 0x40] | var_40h = r7;
0x00001b6c strd r7, r7, [sp, 0x30] | __asm ("strd r7, r7, [var_34h]");
0x00001b70 vstr d16, [sp, 0x38] | __asm ("vstr d16, [sp, 0x38]");
0x00001b74 blx 0xfec | sd_bus_open_system ();
0x00001b78 subs.w r8, r0, 0 | r8 -= var_34h;
| if (r8 >= var_34h) {
0x00001b7c blt 0x1c08 |
0x00001b7e ldr.w r3, [pc, 0x6ec] |
0x00001b82 add r1, sp, 0x30 | r1 += var_30h;
0x00001b84 ldr.w r2, [pc, 0x6e8] |
0x00001b88 ldr r0, [sp, 0x34] | r0 = var_34h;
0x00001b8a add r3, pc | r3 = 0x3dfc;
0x00001b8c str r3, [sp, 4] | var_4h = r3;
0x00001b8e add r2, pc | r2 = 0x3e02;
0x00001b90 ldr.w r3, [pc, 0x6e0] |
0x00001b94 add r3, pc | r3 = 0x3e0c;
0x00001b96 str r3, [sp] | *(sp) = r3;
0x00001b98 ldr.w r3, [pc, 0x6dc] |
0x00001b9c add r3, pc | r3 = 0x3e18;
0x00001b9e blx 0x1040 | r0 = sd_bus_message_new_method_call ();
0x00001ba2 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x00001ba6 blt.w 0x1e70 | goto label_36;
| }
0x00001baa ldr r0, [sp, 0x30] | r0 = var_30h;
0x00001bac mov r1, r7 | r1 = r7;
0x00001bae blx 0xefc | r0 = sd_bus_message_set_auto_start ();
0x00001bb2 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x00001bb6 blt.w 0x1f32 | goto label_37;
| }
0x00001bba add.w r8, sp, 0x38 | r8 += var_38h;
0x00001bbe ldrd r1, r0, [sp, 0x30] | __asm ("ldrd r1, r0, [var_34h]");
0x00001bc2 addw r3, pc, 0x644 | __asm ("addw r3, pc, 0x644");
0x00001bc6 ldrd r2, r3, [r3] | __asm ("ldrd r2, r3, [r3]");
0x00001bca str r7, [sp, 4] | var_4h = r7;
0x00001bcc str.w r8, [sp] | __asm ("str.w r8, [sp]");
0x00001bd0 blx 0x1124 | r0 = sd_bus_call ();
0x00001bd4 subs.w fp, r0, 0 |
| if (fp < r0) {
0x00001bd8 blt.w 0x1ece | goto label_38;
| }
0x00001bdc blx 0xf98 | r0 = log_get_max_level ();
0x00001be0 cmp r0, 6 |
| if (r0 <= 6) {
0x00001be2 ble 0x1c16 | goto label_6;
| }
0x00001be4 ldr.w r3, [pc, 0x694] |
0x00001be8 mov r1, r7 | r1 = r7;
0x00001bea ldr.w r2, [pc, 0x694] |
0x00001bee movs r0, 7 | r0 = 7;
0x00001bf0 add r3, pc | r3 = 0x3e70;
0x00001bf2 str r3, [sp, 4] | var_4h = r3;
0x00001bf4 add r2, pc | r2 = 0x3e7a;
0x00001bf6 ldr.w r3, [pc, 0x68c] |
0x00001bfa adds r2, 7 | r2 += 7;
0x00001bfc add r3, pc | r3 = 0x3e86;
0x00001bfe str r3, [sp] | *(sp) = r3;
0x00001c00 movs r3, 0xa4 | r3 = 0xa4;
0x00001c02 blx 0x1028 | log_internal ();
0x00001c06 b 0x1c16 |
| } else {
0x00001c08 blx 0xf98 | r0 = log_get_max_level ();
0x00001c0c cmp r0, sl |
| if (r0 > sl) {
0x00001c0e bgt.w 0x1f60 | goto label_39;
| }
| label_5:
0x00001c12 add.w r8, sp, 0x38 | r8 += var_38h;
| }
| label_6:
0x00001c16 ldr r0, [sp, 0x34] | r0 = var_34h;
| if (r0 != 0) {
0x00001c18 cbz r0, 0x1c1e |
0x00001c1a blx 0x1010 | sd_bus_flush_close_unref ();
| }
0x00001c1e ldr r0, [sp, 0x30] | r0 = var_30h;
| if (r0 != 0) {
0x00001c20 cbz r0, 0x1c26 |
0x00001c22 blx 0x1094 | sd_bus_message_unref ();
| }
0x00001c26 mov r0, r8 | r0 = r8;
0x00001c28 blx 0x1004 | sd_bus_error_free ();
0x00001c2c mov r0, r5 | r0 = r5;
0x00001c2e blx 0x107c | sleep_operation_to_string ();
0x00001c32 ldr.w r3, [pc, 0x654] | r3 = *(0x00002288);
0x00001c36 mov r5, r0 | r5 = r0;
0x00001c38 add r3, pc | r3 += pc;
0x00001c3a ldr r0, [r3] | r0 = *(r3);
0x00001c3c blx 0x107c | sleep_operation_to_string ();
0x00001c40 ldr.w r2, [pc, 0x648] |
0x00001c44 ldr.w r3, [pc, 0x648] |
0x00001c48 str r5, [sp, 0xc] | var_ch = r5;
0x00001c4a movs r5, 0 | r5 = 0;
0x00001c4c add r2, pc | r2 = 0x3edc;
0x00001c4e mov r1, r5 | r1 = r5;
0x00001c50 add r3, pc | r3 = 0x3ee4;
0x00001c52 str r2, [sp, 0x10] | var_10h = r2;
0x00001c54 str r3, [sp, 8] | var_8h = r3;
0x00001c56 ldr.w r2, [pc, 0x63c] |
0x00001c5a ldr.w r3, [pc, 0x63c] |
0x00001c5e str r0, [sp, 0x14] | var_14h = r0;
0x00001c60 movs r0, 6 | r0 = 6;
0x00001c62 add r2, pc | r2 = 0x3efc;
0x00001c64 str r5, [sp, 0x18] | var_18h = r5;
0x00001c66 add r3, pc | r3 = 0x3f04;
0x00001c68 strd r3, r2, [sp] | __asm ("strd r3, r2, [sp]");
0x00001c6c movs r3, 0xf2 | r3 = 0xf2;
0x00001c6e ldr.w r2, [pc, 0x62c] |
0x00001c72 add r2, pc | r2 = 0x3f14;
0x00001c74 adds r2, 7 | r2 += 7;
0x00001c76 blx 0x10f4 | log_struct_internal ();
0x00001c7a ldr r1, [r6] | r1 = *(r6);
0x00001c7c cmp r1, 0 |
| if (r1 == 0) {
0x00001c7e beq.w 0x1d88 | goto label_40;
| }
0x00001c82 ldr.w r7, [pc, 0x61c] |
0x00001c86 ldr.w r8, [pc, 0x61c] |
0x00001c8a add r7, pc | r7 = 0x3f30;
0x00001c8c adds r7, 7 | r7 += 7;
0x00001c8e add r8, pc | r8 = 0x3f38;
0x00001c90 b 0x1cc0 |
| while (r0 <= 6) {
| label_1:
0x00001c92 mov r0, r4 | r0 = r4;
0x00001c94 cmp r5, 0 |
0x00001c96 it eq |
| if (r5 != 0) {
0x00001c98 moveq r5, sl | r5 = sl;
| }
0x00001c9a blx 0x10e8 | fclose (r0);
0x00001c9e ldr.w r1, [pc, 0x608] |
0x00001ca2 ldr.w r0, [pc, 0x608] |
0x00001ca6 add r1, pc | r1 = 0x3f54;
0x00001ca8 add r0, pc | r0 = 0x3f5a;
0x00001caa blx 0x113c | r0 = fopen64 ();
0x00001cae mov r4, r0 | r4 = r0;
0x00001cb0 cmp r0, 0 |
| if (r0 == 0) {
0x00001cb2 beq.w 0x1e12 | goto label_41;
| }
0x00001cb6 ldr r1, [r6, 4]! | r1 = *((r6 += 4));
0x00001cba cmp r1, 0 |
| if (r1 == 0) {
0x00001cbc beq.w 0x1e66 | goto label_42;
| }
0x00001cc0 movs r3, 0 | r3 = 0;
0x00001cc2 movs r2, 0x80 | r2 = 0x80;
0x00001cc4 mov r0, r4 | r0 = r4;
0x00001cc6 blx 0xfc8 | r0 = write_string_stream_ts ();
0x00001cca subs.w sl, r0, 0 | sl = r0 - 0;
| if (sl >= r0) {
0x00001cce bge 0x1d88 | goto label_40;
| }
0x00001cd0 blx 0xf98 | r0 = log_get_max_level ();
0x00001cd4 cmp r0, 6 |
0x00001cd6 ble 0x1c92 |
| }
0x00001cd8 ldr r3, [r6] | r3 = *(r6);
0x00001cda mov r2, r7 | r2 = r7;
0x00001cdc mov r1, sl | r1 = sl;
0x00001cde movs r0, 7 | r0 = 7;
0x00001ce0 strd r8, r3, [sp, 4] | __asm ("strd r8, r3, [var_8h]");
0x00001ce4 ldr.w r3, [pc, 0x5c8] |
0x00001ce8 add r3, pc | r3 = 0x3f9c;
0x00001cea str r3, [sp] | *(sp) = r3;
0x00001cec movs r3, 0x74 | r3 = 0x74;
0x00001cee blx 0x1028 | log_internal ();
0x00001cf2 b 0x1c92 | goto label_1;
| label_34:
0x00001cf4 mov r0, r5 | r0 = r5;
0x00001cf6 blx 0x107c | r0 = sleep_operation_to_string ();
0x00001cfa mov r8, r0 | r8 = r0;
0x00001cfc b 0x1b22 | goto label_2;
| label_32:
0x00001cfe mov r0, r5 | r0 = r5;
0x00001d00 ldr.w r4, [pc, 0x5b0] |
0x00001d04 blx 0x107c | sleep_operation_to_string ();
0x00001d08 ldr.w r5, [pc, 0x5ac] |
0x00001d0c movs r1, 0x16 | r1 = 0x16;
0x00001d0e ldr.w r2, [pc, 0x5ac] |
0x00001d12 add r4, pc | r4 = 0x3fca;
0x00001d14 movs r3, 0xc8 | r3 = 0xc8;
0x00001d16 movt r1, 0x4000 | r1 = (r1 & 0xFFFF) | 0x40000000;
0x00001d1a add r5, pc | r5 = 0x3fd6;
0x00001d1c str r4, [sp] | *(sp) = r4;
0x00001d1e add r2, pc | r2 = 0x3fe0;
0x00001d20 strd r5, r0, [sp, 4] | __asm ("strd r5, r0, [var_8h]");
0x00001d24 adds r2, 7 | r2 += 7;
0x00001d26 movs r0, 3 | r0 = 3;
0x00001d28 blx 0x1028 | r0 = log_internal ();
0x00001d2c subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 < r0) {
0x00001d2e blt.w 0x1f08 | goto label_43;
| }
| label_15:
0x00001d32 movs r4, 0 | r4 = 0;
0x00001d34 mvn r5, 0x55 | r5 = ~0x55;
0x00001d38 b 0x1aea | goto label_3;
| label_17:
0x00001d3a ldr.w r1, [pc, 0x584] |
0x00001d3e movs r2, 0xbf | r2 = 0xbf;
0x00001d40 ldr.w r3, [pc, 0x580] |
0x00001d44 ldr.w r0, [pc, 0x580] |
0x00001d48 add r1, pc | r1 = 0x400e;
0x00001d4a add r3, pc | r3 = 0x4012;
0x00001d4c adds r1, 7 | r1 += 7;
0x00001d4e add r0, pc | r0 = 0x401a;
0x00001d50 blx 0xf38 | log_assert_failed ();
| label_18:
0x00001d54 ldr.w r1, [pc, 0x574] |
0x00001d58 movs r2, 0xc0 | r2 = 0xc0;
0x00001d5a ldr.w r3, [pc, 0x574] |
0x00001d5e ldr.w r0, [pc, 0x574] |
0x00001d62 add r1, pc | r1 = 0x4032;
0x00001d64 add r3, pc | r3 = 0x403a;
0x00001d66 adds r1, 7 | r1 += 7;
0x00001d68 add r0, pc | r0 = 0x4042;
0x00001d6a blx 0xf38 | log_assert_failed ();
| label_19:
0x00001d6e ldr.w r1, [pc, 0x568] |
0x00001d72 movs r2, 0xc1 | r2 = 0xc1;
0x00001d74 ldr.w r3, [pc, 0x564] |
0x00001d78 ldr.w r0, [pc, 0x564] |
0x00001d7c add r1, pc | r1 = 0x405a;
0x00001d7e add r3, pc | r3 = 0x405e;
0x00001d80 adds r1, 7 | r1 += 7;
0x00001d82 add r0, pc | r0 = 0x4066;
0x00001d84 blx 0xf38 | log_assert_failed ();
| label_40:
0x00001d88 movs r5, 0 | r5 = 0;
| do {
0x00001d8a ldr.w r3, [pc, 0x558] | r3 = *(0x000022e4);
0x00001d8e add r3, pc | r3 += pc;
0x00001d90 ldr r0, [r3] | r0 = *(r3);
0x00001d92 blx 0x107c | sleep_operation_to_string ();
0x00001d96 ldr.w r3, [pc, 0x550] |
0x00001d9a movs r1, 0 | r1 = 0;
0x00001d9c ldr.w r2, [pc, 0x54c] |
0x00001da0 str r0, [sp, 0x10] | var_10h = r0;
0x00001da2 movs r0, 6 | r0 = 6;
0x00001da4 add r3, pc | r3 = 0x4092;
0x00001da6 str r1, [sp, 0x14] | var_14h = r1;
0x00001da8 str r3, [sp, 0xc] | var_ch = r3;
0x00001daa add r2, pc | r2 = 0x409a;
0x00001dac ldr.w r3, [pc, 0x540] |
0x00001db0 adds r2, 7 | r2 += 7;
0x00001db2 add r3, pc | r3 = 0x40a6;
0x00001db4 str r3, [sp, 8] | var_8h = r3;
0x00001db6 ldr.w r3, [pc, 0x53c] |
0x00001dba add r3, pc | r3 = 0x40b4;
0x00001dbc str r3, [sp, 4] | var_4h = r3;
0x00001dbe ldr.w r3, [pc, 0x538] |
0x00001dc2 add r3, pc | r3 = 0x40c0;
0x00001dc4 str r3, [sp] | *(sp) = r3;
0x00001dc6 movs r3, 0xfe | r3 = 0xfe;
0x00001dc8 blx 0x10f4 | log_struct_internal ();
| label_4:
0x00001dcc ldr.w r1, [pc, 0x52c] |
0x00001dd0 movs r3, 0 | r3 = 0;
0x00001dd2 ldr.w r0, [pc, 0x52c] |
0x00001dd6 movs r2, 3 | r2 = 3;
0x00001dd8 strd r3, r2, [sp, 0xc] | __asm ("strd r3, r2, [var_10h]");
0x00001ddc add r1, pc | r1 = 0x40dc;
0x00001dde strd r3, r3, [sp] | __asm ("strd r3, r3, [sp]");
0x00001de2 str.w sb, [sp, 8] | __asm ("str.w sb, [var_8h]");
0x00001de6 add r0, pc | r0 = 0x40ec;
0x00001de8 addw r3, pc, 0x41c | __asm ("addw r3, pc, 0x41c");
0x00001dec ldrd r2, r3, [r3] | __asm ("ldrd r2, r3, [r3]");
0x00001df0 str r1, [sp, 0x48] | var_48h = r1;
0x00001df2 blx 0x1160 | execute_directories ();
0x00001df6 b 0x1aea | goto label_3;
| label_20:
0x00001df8 ldr.w r1, [pc, 0x508] |
0x00001dfc movs r2, 0xc2 | r2 = 0xc2;
0x00001dfe ldr.w r3, [pc, 0x508] |
0x00001e02 ldr.w r0, [pc, 0x508] |
0x00001e04 lsls r0, r1, 0x14 | r0 = r1 << 0x14;
0x00001e06 add r1, pc | r1 = 0x410e;
0x00001e08 add r3, pc | r3 = 0x4116;
0x00001e0a adds r1, 7 | r1 += 7;
0x00001e0c add r0, pc | r0 = 0x411e;
0x00001e0e blx 0xf38 | log_assert_failed ();
| label_41:
0x00001e12 blx 0x1118 | r0 = errno_location ();
0x00001e16 ldr r2, [r0] | r2 = *(r0);
0x00001e18 ldr.w r3, [pc, 0x4f4] | r3 = *(0x00002310);
0x00001e1c cmp r2, 0 |
0x00001e1e rsb.w r5, r2, 0 | r5 = r2 - ;
0x00001e22 add r3, pc | r3 += pc;
0x00001e24 ldr r0, [r3] | r0 = *(r3);
0x00001e26 ble 0x1d8a |
| } while (r2 <= 0);
| do {
0x00001e28 blx 0x107c | sleep_operation_to_string ();
0x00001e2c movs r3, 0 | r3 = 0;
0x00001e2e ldr.w r2, [pc, 0x4e4] |
0x00001e32 str r3, [sp, 0x14] | var_14h = r3;
0x00001e34 mov r1, r5 | r1 = r5;
0x00001e36 ldr.w r3, [pc, 0x4e0] |
0x00001e3a add r2, pc | r2 = 0x4154;
0x00001e3c str r0, [sp, 0x10] | var_10h = r0;
0x00001e3e adds r2, 7 | r2 += 7;
0x00001e40 movs r0, 3 | r0 = 3;
0x00001e42 add r3, pc | r3 = 0x4160;
0x00001e44 str r3, [sp, 0xc] | var_ch = r3;
0x00001e46 ldr.w r3, [pc, 0x4d4] |
0x00001e4a add r3, pc | r3 = 0x416c;
0x00001e4c str r3, [sp, 8] | var_8h = r3;
0x00001e4e ldr.w r3, [pc, 0x4d0] |
0x00001e52 add r3, pc | r3 = 0x4178;
0x00001e54 str r3, [sp, 4] | var_4h = r3;
0x00001e56 ldr.w r3, [pc, 0x4cc] |
0x00001e5a add r3, pc | r3 = 0x4184;
0x00001e5c str r3, [sp] | *(sp) = r3;
0x00001e5e movs r3, 0xf9 | r3 = 0xf9;
0x00001e60 blx 0x10f4 | log_struct_internal ();
0x00001e64 b 0x1dcc | goto label_4;
| label_42:
0x00001e66 ldr.w r3, [pc, 0x4c0] | r3 = *(0x00002328);
0x00001e6a add r3, pc | r3 += pc;
0x00001e6c ldr r0, [r3] | r0 = *(r3);
0x00001e6e b 0x1e28 |
| } while (1);
| label_36:
0x00001e70 blx 0xf98 | r0 = log_get_max_level ();
0x00001e74 cmp r0, 2 |
| if (r0 <= 2) {
0x00001e76 ble.w 0x1c12 | goto label_5;
| }
0x00001e7a ldr.w r3, [pc, 0x4b0] |
0x00001e7e mov r1, r8 | r1 = r8;
0x00001e80 ldr.w r2, [pc, 0x4ac] |
0x00001e84 mov r0, sl | r0 = sl;
0x00001e86 add.w r8, sp, 0x38 | r8 += var_38h;
0x00001e8a add r3, pc | r3 = 0x41bc;
0x00001e8c str r3, [sp, 4] | var_4h = r3;
0x00001e8e add r2, pc | r2 = 0x41c2;
0x00001e90 ldr.w r3, [pc, 0x4a0] |
0x00001e94 adds r2, 7 | r2 += 7;
0x00001e96 add r3, pc | r3 = 0x41ce;
0x00001e98 str r3, [sp] | *(sp) = r3;
0x00001e9a movs r3, 0x96 | r3 = 0x96;
0x00001e9c blx 0x1028 | log_internal ();
0x00001ea0 b 0x1c16 | goto label_6;
| label_35:
0x00001ea2 blx 0x1118 | errno_location ();
0x00001ea6 ldr.w r3, [pc, 0x490] |
0x00001eaa ldr.w r2, [pc, 0x490] |
0x00001eae str.w r8, [sp, 8] | __asm ("str.w r8, [var_8h]");
0x00001eb2 add r3, pc | r3 = 0x41f0;
0x00001eb4 str r3, [sp, 4] | var_4h = r3;
0x00001eb6 add r2, pc | r2 = 0x41f8;
0x00001eb8 ldr.w r3, [pc, 0x484] |
0x00001ebc adds r2, 7 | r2 += 7;
0x00001ebe add r3, pc | r3 = 0x4202;
0x00001ec0 str r3, [sp] | *(sp) = r3;
0x00001ec2 movs r3, 0xed | r3 = 0xed;
0x00001ec4 ldr r1, [r0] | r1 = *(r0);
0x00001ec6 movs r0, 4 | r0 = 4;
0x00001ec8 blx 0x1028 | log_internal ();
0x00001ecc b 0x1b3c | goto label_7;
| label_38:
0x00001ece mov r0, r8 | r0 = r8;
0x00001ed0 blx 0xf08 | r0 = bus_error_is_unknown_service ();
0x00001ed4 cmp r0, 0 |
| if (r0 == 0) {
0x00001ed6 beq.w 0x203a | goto label_44;
| }
0x00001eda blx 0xf98 | r0 = log_get_max_level ();
0x00001ede cmp r0, 6 |
| if (r0 <= 6) {
0x00001ee0 ble.w 0x1c16 | goto label_6;
| }
0x00001ee4 ldr.w r3, [pc, 0x45c] |
0x00001ee8 mov r1, r7 | r1 = r7;
0x00001eea ldr.w r2, [pc, 0x45c] |
0x00001eee movs r0, 7 | r0 = 7;
0x00001ef0 add r3, pc |
0x00001ef2 str r3, [sp, 4] | var_4h = r3;
0x00001ef4 add r2, pc | r2 = 0x4242;
0x00001ef6 ldr.w r3, [pc, 0x454] | r3 = sym.imp.write_string_file_ts;
0x00001efa adds r2, 7 | r2 += 7;
0x00001efc add r3, pc | r3 = 0x6138;
0x00001efe str r3, [sp] | *(sp) = r3;
0x00001f00 movs r3, 0xa2 | r3 = 0xa2;
0x00001f02 blx 0x1028 | log_internal ();
0x00001f06 b 0x1c16 | goto label_6;
| label_43:
0x00001f08 movs r4, 0 | r4 = 0;
0x00001f0a b 0x1aea | goto label_3;
| label_31:
0x00001f0c cmp.w fp, 0 |
| if (fp == 0) {
0x00001f10 beq.w 0x1b1a | goto label_8;
| }
0x00001f14 blx 0xf98 | r0 = log_get_max_level ();
0x00001f18 cmp r0, 2 |
| if (r0 > 2) {
0x00001f1a bgt 0x200c | goto label_45;
| }
0x00001f1c rsb.w r5, fp, 0 | r5 = fp - ;
0x00001f20 bic r5, r5, 0x40000000 | r5 = BIT_MASK (r5, 0x40000000);
0x00001f24 rsbs r5, r5, 0 | r5 -= ;
| label_9:
0x00001f26 cmp r5, 0 |
| if (r5 < 0) {
0x00001f28 blt.w 0x1aea | goto label_3;
| }
0x00001f2c mvn r5, 0x55 | r5 = ~0x55;
0x00001f30 b 0x1aea | goto label_3;
| label_37:
0x00001f32 blx 0xf98 | r0 = log_get_max_level ();
0x00001f36 cmp r0, 2 |
| if (r0 <= 2) {
0x00001f38 ble.w 0x1c12 | goto label_5;
| }
0x00001f3c ldr.w r3, [pc, 0x410] |
0x00001f40 mov r1, r8 | r1 = r8;
0x00001f42 ldr.w r2, [pc, 0x410] |
0x00001f46 mov r0, sl | r0 = sl;
0x00001f48 add r3, pc | r3 = 0x429c;
0x00001f4a str r3, [sp, 4] | var_4h = r3;
0x00001f4c add r2, pc | r2 = 0x42a6;
0x00001f4e ldr.w r3, [pc, 0x408] |
0x00001f52 adds r2, 7 | r2 += 7;
0x00001f54 add r3, pc | r3 = 0x42b2;
0x00001f56 str r3, [sp] | *(sp) = r3;
0x00001f58 movs r3, 0x9b | r3 = 0x9b;
0x00001f5a blx 0x1028 | log_internal ();
0x00001f5e b 0x1c12 | goto label_5;
| label_39:
0x00001f60 ldr r3, [pc, 0x3f8] |
0x00001f62 mov r1, r8 | r1 = r8;
0x00001f64 ldr r2, [pc, 0x3f8] |
0x00001f66 movs r0, 4 | r0 = 4;
0x00001f68 add.w r8, sp, 0x38 | r8 += var_38h;
0x00001f6c add r3, pc | r3 = 0x42cc;
0x00001f6e str r3, [sp, 4] | var_4h = r3;
0x00001f70 add r2, pc | r2 = 0x42d4;
0x00001f72 ldr r3, [pc, 0x3f0] |
0x00001f74 adds r2, 7 | r2 += 7;
0x00001f76 add r3, pc | r3 = 0x42e0;
0x00001f78 str r3, [sp] | *(sp) = r3;
0x00001f7a movs r3, 0x8c | r3 = 0x8c;
0x00001f7c blx 0x1028 | log_internal ();
0x00001f80 b 0x1c16 | goto label_6;
| label_23:
0x00001f82 blx 0xf98 | r0 = log_get_max_level ();
0x00001f86 cmp r0, 2 |
| if (r0 <= 2) {
0x00001f88 bgt 0x1f94 |
0x00001f8a rsbs r3, r7, 0 | r3 = r7 - ;
0x00001f8c bic r3, r3, 0x40000000 | r3 = BIT_MASK (r3, 0x40000000);
0x00001f90 rsbs r5, r3, 0 | r5 = r3 - ;
0x00001f92 b 0x1f26 | goto label_9;
| }
0x00001f94 ldr r2, [pc, 0x3d0] |
0x00001f96 mov r1, r7 | r1 = r7;
0x00001f98 ldr r0, [pc, 0x3d0] |
0x00001f9a ldr r3, [pc, 0x3d4] |
0x00001f9c add r2, pc | r2 = 0x4308;
0x00001f9e add r0, pc | r0 = 0x430e;
0x00001fa0 adds r2, 7 | r2 += 7;
0x00001fa2 add r3, pc | r3 = 0x4318;
0x00001fa4 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x00001fa8 movs r3, 0xd8 | r3 = 0xd8;
0x00001faa movs r0, 3 | r0 = 3;
0x00001fac blx 0x1028 | r0 = log_internal ();
0x00001fb0 mov r5, r0 | r5 = r0;
0x00001fb2 b 0x1f26 | goto label_9;
| label_26:
0x00001fb4 str r1, [sp, 0x24] | var_24h = r1;
0x00001fb6 blx 0xf98 | r0 = log_get_max_level ();
0x00001fba cmp r0, 6 |
0x00001fbc ldr r1, [sp, 0x24] | r1 = var_24h;
| if (r0 > 6) {
0x00001fbe bgt 0x2094 | goto label_46;
| }
0x00001fc0 rsbs r5, r1, 0 | r5 = r1 - ;
0x00001fc2 bic r5, r5, 0x40000000 | r5 = BIT_MASK (r5, 0x40000000);
0x00001fc6 rsbs r5, r5, 0 | r5 -= ;
| label_11:
0x00001fc8 cmp r5, 0 |
| if (r5 < 0) {
0x00001fca blt 0x1fd0 | goto label_13;
| }
| label_12:
0x00001fcc mvn r5, 0x55 | r5 = ~0x55;
| do {
| label_13:
0x00001fd0 blx 0xf98 | r0 = log_get_max_level ();
0x00001fd4 cmp r0, 2 |
| if (r0 > 2) {
0x00001fd6 bgt 0x20be | goto label_47;
| }
0x00001fd8 rsbs r5, r5, 0 | r5 -= ;
0x00001fda bic r5, r5, 0x40000000 | r5 = BIT_MASK (r5, 0x40000000);
0x00001fde rsbs r5, r5, 0 | r5 -= ;
0x00001fe0 b 0x1f26 | goto label_9;
| label_27:
0x00001fe2 str.w fp, [sp, 0xc] | __asm ("str.w fp, [var_ch]");
0x00001fe6 mov r1, r7 | r1 = r7;
0x00001fe8 ldr.w r3, [sl, 0x10] | r3 = *((sl + 0x10));
0x00001fec movs r0, 7 | r0 = 7;
0x00001fee ldr r2, [pc, 0x384] |
0x00001ff0 ldr r3, [r3] | r3 = *(r3);
0x00001ff2 add r2, pc | r2 = 0x436c;
0x00001ff4 adds r2, 7 | r2 += 7;
0x00001ff6 str r3, [sp, 8] | var_8h = r3;
0x00001ff8 ldr r3, [pc, 0x37c] |
0x00001ffa add r3, pc | r3 = 0x4376;
0x00001ffc str r3, [sp, 4] | var_4h = r3;
0x00001ffe ldr r3, [pc, 0x37c] |
0x00002000 add r3, pc | r3 = 0x4382;
0x00002002 str r3, [sp] | *(sp) = r3;
0x00002004 movs r3, 0x36 | r3 = 0x36;
0x00002006 blx 0x1028 | log_internal ();
0x0000200a b 0x19c2 | goto label_10;
| label_45:
0x0000200c ldr r2, [pc, 0x370] |
0x0000200e mov r1, fp | r1 = fp;
0x00002010 ldr r5, [pc, 0x370] |
0x00002012 movs r3, 0xe3 | r3 = 0xe3;
0x00002014 ldr r0, [pc, 0x370] |
0x00002016 add r2, pc | r2 = 0x439a;
0x00002018 add r5, pc | r5 = 0x43a0;
0x0000201a adds r2, 7 | r2 += 7;
0x0000201c add r0, pc | r0 = 0x43a8;
0x0000201e strd r0, r5, [sp] | __asm ("strd r0, r5, [sp]");
0x00002022 movs r0, 3 | r0 = 3;
0x00002024 blx 0x1028 | r0 = log_internal ();
0x00002028 mov r5, r0 | r5 = r0;
0x0000202a b 0x1f26 | goto label_9;
| label_28:
0x0000202c blx 0xf98 | r0 = log_get_max_level ();
0x00002030 cmp r0, 6 |
| if (r0 > 6) {
0x00002032 bgt 0x2114 | goto label_48;
| }
0x00002034 mvn r5, 0x15 | r5 = ~0x15;
0x00002038 b 0x1fd0 |
| } while (1);
| label_44:
0x0000203a blx 0xf98 | r0 = log_get_max_level ();
0x0000203e cmp r0, 2 |
| if (r0 <= 2) {
0x00002040 ble.w 0x1c16 | goto label_6;
| }
0x00002044 mov r1, fp | r1 = fp;
0x00002046 mov r0, r8 | r0 = r8;
0x00002048 blx 0x1100 | bus_error_message ();
0x0000204c ldr r3, [pc, 0x33c] |
0x0000204e mov r1, fp | r1 = fp;
0x00002050 ldr r2, [pc, 0x33c] |
0x00002052 str r0, [sp, 8] | var_8h = r0;
0x00002054 mov r0, sl | r0 = sl;
0x00002056 add r3, pc | r3 = 0x43e6;
0x00002058 str r3, [sp, 4] | var_4h = r3;
0x0000205a add r2, pc | r2 = 0x43ee;
0x0000205c ldr r3, [pc, 0x334] |
0x0000205e adds r2, 7 | r2 += 7;
0x00002060 add r3, pc | r3 = 0x43f8;
0x00002062 str r3, [sp] | *(sp) = r3;
0x00002064 movs r3, 0xa0 | r3 = 0xa0;
0x00002066 blx 0x1028 | log_internal ();
0x0000206a b 0x1c16 | goto label_6;
| label_24:
0x0000206c ldr r1, [pc, 0x328] |
0x0000206e movs r2, 0x2d | r2 = 0x2d;
0x00002070 ldr r3, [pc, 0x328] |
0x00002072 ldr r0, [pc, 0x32c] |
0x00002074 add r1, pc | r1 = 0x4410;
0x00002076 add r3, pc | r3 = 0x4416;
0x00002078 adds r1, 7 | r1 += 7;
0x0000207a add r0, pc | r0 = 0x4420;
0x0000207c blx 0xf38 | log_assert_failed ();
| label_25:
0x00002080 ldr r1, [pc, 0x320] |
0x00002082 movs r2, 0x2e | r2 = 0x2e;
0x00002084 ldr r3, [pc, 0x320] |
0x00002086 ldr r0, [pc, 0x324] |
0x00002088 add r1, pc | r1 = 0x4430;
0x0000208a add r3, pc | r3 = 0x4436;
0x0000208c adds r1, 7 | r1 += 7;
0x0000208e add r0, pc | r0 = 0x4440;
0x00002090 blx 0xf38 | log_assert_failed ();
| label_46:
0x00002094 ldr r3, [pc, 0x318] |
0x00002096 str.w fp, [sp, 0xc] | __asm ("str.w fp, [var_ch]");
0x0000209a ldr.w r0, [sl, 0x10] | r0 = *((sl + 0x10));
0x0000209e add r3, pc | r3 = 0x4452;
0x000020a0 ldr r2, [pc, 0x310] |
0x000020a2 ldr r0, [r0] | r0 = *(r0);
0x000020a4 str r3, [sp, 4] | var_4h = r3;
0x000020a6 add r2, pc | r2 = 0x445e;
0x000020a8 ldr r3, [pc, 0x30c] |
0x000020aa adds r2, 7 | r2 += 7;
0x000020ac str r0, [sp, 8] | var_8h = r0;
0x000020ae movs r0, 7 | r0 = 7;
0x000020b0 add r3, pc | r3 = 0x446c;
0x000020b2 str r3, [sp] | *(sp) = r3;
0x000020b4 movs r3, 0x33 | r3 = 0x33;
0x000020b6 blx 0x1028 | r0 = log_internal ();
0x000020ba mov r5, r0 | r5 = r0;
0x000020bc b 0x1fc8 | goto label_11;
| label_47:
0x000020be ldr r2, [pc, 0x2fc] |
0x000020c0 mov r1, r5 | r1 = r5;
0x000020c2 ldr r0, [pc, 0x2fc] |
0x000020c4 ldr r3, [pc, 0x2fc] |
0x000020c6 add r2, pc | r2 = 0x4488;
0x000020c8 add r0, pc | r0 = 0x448e;
0x000020ca adds r2, 7 | r2 += 7;
0x000020cc add r3, pc | r3 = 0x4494;
0x000020ce strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x000020d2 movs r3, 0xde | r3 = 0xde;
0x000020d4 movs r0, 3 | r0 = 3;
0x000020d6 blx 0x1028 | r0 = log_internal ();
0x000020da mov r5, r0 | r5 = r0;
0x000020dc b 0x1f26 | goto label_9;
| label_29:
0x000020de blx 0x1118 | r0 = errno_location ();
0x000020e2 ldr r7, [r0] | r7 = *(r0);
0x000020e4 blx 0xf98 | log_get_max_level ();
0x000020e8 cmp r7, 2 |
| if (r7 == 2) {
0x000020ea beq 0x2188 | goto label_49;
| }
0x000020ec cmp r0, 6 |
| if (r0 > 6) {
0x000020ee bgt 0x2168 | goto label_50;
| }
0x000020f0 eor.w r5, r7, r7, asr 31 | r5 = r7 ^ (r7 >> 31);
0x000020f4 sub.w r5, r5, r7, asr 31 | r5 -= (r7 >> 31);
0x000020f8 bic r5, r5, 0x40000000 | r5 = BIT_MASK (r5, 0x40000000);
0x000020fc rsbs r5, r5, 0 | r5 -= ;
0x000020fe b 0x1fc8 | goto label_11;
| label_30:
0x00002100 blx 0xf98 | r0 = log_get_max_level ();
0x00002104 cmp r0, 6 |
| if (r0 > 6) {
0x00002106 bgt 0x213e | goto label_51;
| }
0x00002108 rsb.w r5, fp, 0 | r5 = fp - ;
0x0000210c bic r5, r5, 0x40000000 | r5 = BIT_MASK (r5, 0x40000000);
0x00002110 rsbs r5, r5, 0 | r5 -= ;
0x00002112 b 0x1fc8 | goto label_11;
| label_48:
0x00002114 ldr r2, [pc, 0x2b0] |
0x00002116 movs r1, 0x16 | r1 = 0x16;
0x00002118 ldr r3, [pc, 0x2b0] |
0x0000211a movt r1, 0x4000 | r1 = (r1 & 0xFFFF) | 0x40000000;
0x0000211e ldr r0, [pc, 0x2b0] |
0x00002120 add r2, pc | r2 = 0x44ec;
0x00002122 str r7, [sp, 8] | var_8h = r7;
0x00002124 add r3, pc | r3 = 0x44f4;
0x00002126 adds r2, 7 | r2 += 7;
0x00002128 add r0, pc | r0 = 0x44fe;
0x0000212a str r3, [sp, 4] | var_4h = r3;
0x0000212c str r0, [sp] | *(sp) = r0;
0x0000212e movs r3, 0x3d | r3 = 0x3d;
0x00002130 movs r0, 7 | r0 = 7;
0x00002132 blx 0x1028 | r0 = log_internal ();
0x00002136 subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 >= r0) {
0x00002138 bge.w 0x1fcc | goto label_12;
| }
0x0000213c b 0x1fd0 | goto label_13;
| label_51:
0x0000213e ldr r3, [pc, 0x294] |
0x00002140 mov r1, fp | r1 = fp;
0x00002142 str r7, [sp, 0xc] | var_ch = r7;
0x00002144 ldr.w r0, [sl, 0x10] | r0 = *((sl + 0x10));
0x00002148 add r3, pc | r3 = 0x4522;
0x0000214a ldr r2, [pc, 0x28c] |
0x0000214c ldr r0, [r0] | r0 = *(r0);
0x0000214e str r3, [sp, 4] | var_4h = r3;
0x00002150 add r2, pc | r2 = 0x452e;
0x00002152 ldr r3, [pc, 0x288] |
0x00002154 adds r2, 7 | r2 += 7;
0x00002156 str r0, [sp, 8] | var_8h = r0;
0x00002158 movs r0, 7 | r0 = 7;
0x0000215a add r3, pc | r3 = 0x453c;
0x0000215c str r3, [sp] | *(sp) = r3;
0x0000215e movs r3, 0x4e | r3 = 0x4e;
0x00002160 blx 0x1028 | r0 = log_internal ();
0x00002164 mov r5, r0 | r5 = r0;
0x00002166 b 0x1fc8 | goto label_11;
| label_50:
0x00002168 ldr r2, [pc, 0x274] |
0x0000216a mov r1, r7 | r1 = r7;
0x0000216c ldr r0, [pc, 0x274] |
0x0000216e ldr r3, [pc, 0x278] |
0x00002170 add r2, pc | r2 = 0x4554;
0x00002172 add r0, pc | r0 = 0x455a;
0x00002174 adds r2, 7 | r2 += 7;
0x00002176 add r3, pc | r3 = 0x4564;
0x00002178 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x0000217c movs r3, 0x48 | r3 = 0x48;
0x0000217e movs r0, 7 | r0 = 7;
0x00002180 blx 0x1028 | r0 = log_internal ();
0x00002184 mov r5, r0 | r5 = r0;
0x00002186 b 0x1fc8 | goto label_11;
| label_49:
0x00002188 cmp r0, 6 |
| if (r0 <= 6) {
0x0000218a ble.w 0x1a72 | goto label_14;
| }
0x0000218e vldr d16, [sl, 8] | __asm ("vldr d16, [sl, 8]");
0x00002192 mov r1, fp | r1 = fp;
0x00002194 ldr r2, [pc, 0x254] |
0x00002196 movs r3, 0x43 | r3 = 0x43;
0x00002198 ldr.w lr, [pc, 0x254] |
0x0000219c movs r0, 7 | r0 = 7;
0x0000219e vstr d16, [sp, 0x10] | __asm ("vstr d16, [sp, 0x10]");
0x000021a2 ldr.w r7, [sl, 0x10] | r7 = *((sl + 0x10));
0x000021a6 add r2, pc | r2 = 0x4596;
0x000021a8 ldr.w ip, [pc, 0x248] |
0x000021ac add lr, pc | lr = 0x45a0;
0x000021ae adds r2, 7 | r2 += 7;
0x000021b0 ldr r7, [r7] | r7 = *(r7);
0x000021b2 add ip, pc | ip = 0x45aa;
0x000021b4 strd ip, lr, [sp] | __asm ("strd ip, lr, [sp]");
0x000021b8 str r7, [sp, 8] | var_8h = r7;
0x000021ba blx 0x1028 | log_internal ();
0x000021be b 0x1a72 | goto label_14;
| label_33:
0x000021c0 blx 0x104c | stack_chk_fail ();
| label_22:
0x000021c4 blx 0x1118 | r0 = errno_location ();
0x000021c8 ldr r5, [r0] | r5 = *(r0);
0x000021ca blx 0xf98 | r0 = log_get_max_level ();
0x000021ce cmp r0, 2 |
| if (r0 > 2) {
0x000021d0 bgt 0x21e6 | goto label_52;
| }
0x000021d2 cmp r5, 0 |
0x000021d4 it lt |
| if (r5 < 0) {
0x000021d6 rsblt r5, r5, 0 | __asm ("rsblt r5, r5, 0");
| }
0x000021d8 bic r5, r5, 0x40000000 | r5 = BIT_MASK (r5, 0x40000000);
0x000021dc rsbs r5, r5, 0 | r5 -= ;
| label_16:
0x000021de cmp r5, 0 |
| if (r5 >= 0) {
0x000021e0 bge.w 0x1d32 | goto label_15;
| }
0x000021e4 b 0x1aea | goto label_3;
| label_52:
0x000021e6 ldr r2, [pc, 0x210] |
0x000021e8 mov r1, r5 | r1 = r5;
0x000021ea ldr r0, [pc, 0x210] |
0x000021ec ldr r3, [pc, 0x210] |
0x000021ee add r2, pc | r2 = 0x45ec;
0x000021f0 add r0, pc | r0 = 0x45f2;
0x000021f2 adds r2, 7 | r2 += 7;
0x000021f4 add r3, pc | r3 = 0x45f8;
0x000021f6 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x000021fa movs r3, 0xd0 | r3 = 0xd0;
0x000021fc movs r0, 3 | r0 = 3;
0x000021fe blx 0x1028 | r0 = log_internal ();
0x00002202 mov r5, r0 | r5 = r0;
0x00002204 b 0x21de | goto label_16;
| }
[*] Function printf used 3 times systemd-sleep