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