[*] Binary protection state of systemd-timedated

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


[*] Function system tear down of systemd-timedated

    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/systemd-timedated @ 0x29f0 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.000029f0 ()                              | void fcn_000029f0 (int16_t arg1, int16_t arg2, uint32_t arg3, int16_t arg4) {
                                                         |     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_1ch;
                                                         |     int16_t var_20h;
                                                         |     int16_t var_24h_2;
                                                         |     int16_t var_28h;
                                                         |     int16_t var_2ch_2;
                                                         |     int16_t var_30h;
                                                         |     int16_t var_34h;
                                                         |     int16_t var_38h;
                                                         |     int16_t var_40h;
                                                         |     int16_t var_6ch;
                                                         |     int16_t var_0h_2;
                                                         |     int16_t var_4h_2;
                                                         |     int16_t var_8h_2;
                                                         |     int16_t var_ch_2;
                                                         |     int32_t var_ch_3;
                                                         |     int16_t var_14h_2;
                                                         |     int16_t var_18h_2;
                                                         |     int16_t var_24h;
                                                         |     int16_t var_28h_2;
                                                         |     int16_t var_2ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x000029f0 push {r4, r5, r6, r7, lr}                 |     
    0x000029f2 mov r5, r0                                |     r5 = r0;
    0x000029f4 mov r0, r1                                |     r0 = r1;
    0x000029f6 ldr r1, [pc, 0x21c]                       |     
    0x000029f8 mov r6, r3                                |     r6 = r3;
    0x000029fa sub sp, 0x34                              |     
    0x000029fc ldr r3, [pc, 0x218]                       |     r3 = *(0x2c18);
    0x000029fe movs r7, 0                                |     r7 = 0;
    0x00002a00 add r1, pc                                |     r1 = 0x561a;
    0x00002a02 ldr r4, [pc, 0x218]                       |     
    0x00002a04 ldr r3, [r1, r3]                          |     
    0x00002a06 add r4, pc                                |     r4 = 0x5628;
    0x00002a08 ldr r3, [r3]                              |     r3 = *(0x561a);
    0x00002a0a str r3, [sp, 0x2c]                        |     var_2ch = r3;
    0x00002a0c mov.w r3, 0                               |     r3 = 0;
    0x00002a10 str r7, [sp, 0x24]                        |     var_24h = r7;
    0x00002a12 cmp r5, 0                                 |     
                                                         |     if (r5 == 0) {
    0x00002a14 beq.w 0x2b92                              |         goto label_9;
                                                         |     }
    0x00002a16 strh r5, [r7, 4]                          |     *((r7 + 4)) = r5;
    0x00002a18 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00002a1a beq.w 0x2ba8                              |         goto label_10;
                                                         |     }
    0x00002a1e cmp r2, 0                                 |     
                                                         |     if (r2 == 0) {
    0x00002a20 beq.w 0x2bbe                              |         goto label_11;
                                                         |     }
    0x00002a24 ldr r3, [pc, 0x1f8]                       |     r3 = *(0x2c20);
    0x00002a26 ldr r3, [r4, r3]                          |     r3 = *((r4 + r3));
    0x00002a28 ldr r1, [r3]                              |     r1 = *(0x2c20);
    0x00002a2a cmp r6, 0                                 |     
                                                         |     if (r6 != 0) {
    0x00002a2c bne 0x2aca                                |         goto label_12;
                                                         |     }
    0x00002a2e mov r3, r2                                |     r3 = r2;
    0x00002a30 ldr r2, [r5]                              |     r2 = *(r5);
    0x00002a32 str r2, [sp, 8]                           |     var_8h_2 = r2;
    0x00002a34 ldr r2, [pc, 0x1ec]                       |     
    0x00002a36 add r2, pc                                |     r2 = 0x565e;
    0x00002a38 str r2, [sp, 0xc]                         |     var_ch_2 = r2;
    0x00002a3a ldr r2, [pc, 0x1ec]                       |     
    0x00002a3c add r2, pc                                |     r2 = 0x566a;
    0x00002a3e str r2, [sp, 4]                           |     var_4h_2 = r2;
    0x00002a40 add r2, sp, 0x24                          |     r2 += var_24h;
    0x00002a42 str r2, [sp]                              |     *(sp) = r2;
    0x00002a44 ldr r2, [pc, 0x1e4]                       |     
    0x00002a46 add r2, pc                                |     r2 = 0x5676;
    0x00002a48 blx 0x1b24                                |     r0 = fcn_00001b24 ();
    0x00002a4c subs r4, r0, 0                            |     r4 = r0 - 0;
                                                         |     if (r4 < r0) {
    0x00002a4e blt 0x2b3a                                |         goto label_13;
                                                         |     }
    0x00002a50 ldr r3, [pc, 0x1dc]                       |     
    0x00002a52 mov r1, r4                                |     r1 = r4;
    0x00002a54 ldr r0, [pc, 0x1dc]                       |     
    0x00002a56 ldr r2, [pc, 0x1e0]                       |     
    0x00002a58 add r3, pc                                |     r3 = "unit_enable_or_disable";
    0x00002a5a strd r6, r6, [sp, 0xc]                    |     __asm ("strd r6, r6, [var_ch_2]");
    0x00002a5e add r0, pc                                |     r0 = 0x5696;
    0x00002a60 ldr r4, [r5]                              |     r4 = *(r5);
    0x00002a62 str r3, [sp, 0x18]                        |     var_18h_2 = r3;
    0x00002a64 add r2, pc                                |     r2 = 0x56a2;
    0x00002a66 ldr r3, [pc, 0x1d4]                       |     
    0x00002a68 adds r2, 7                                |     r2 += 7;
    0x00002a6a str r0, [sp, 0x14]                        |     var_14h_2 = r0;
    0x00002a6c ldr r0, [pc, 0x1d0]                       |     
    0x00002a6e add r3, pc                                |     r3 = 0x56b0;
    0x00002a70 str r4, [sp, 8]                           |     var_8h_2 = r4;
    0x00002a72 str r3, [sp, 4]                           |     var_4h_2 = r3;
    0x00002a74 mov.w r3, 0x1f2                           |     r3 = 0x1f2;
    0x00002a78 add r0, pc                                |     r0 = 0x56bc;
    0x00002a7a str r0, [sp]                              |     *(sp) = r0;
    0x00002a7c movs r0, 7                                |     r0 = 7;
    0x00002a7e blx 0x1b54                                |     fcn_00001b54 ();
                                                         |     do {
    0x00002a82 ldr r1, [pc, 0x1c0]                       |         
    0x00002a84 add r2, sp, 0x28                          |         r2 += var_28h_2;
    0x00002a86 ldr r0, [sp, 0x24]                        |         r0 = var_24h;
    0x00002a88 add r1, pc                                |         r1 = 0x56d2;
    0x00002a8a blx 0x1a7c                                |         r0 = fcn_00001a7c ();
    0x00002a8e subs r4, r0, 0                            |         r4 = r0 - 0;
                                                         |         if (r4 < r0) {
    0x00002a90 blt 0x2b20                                |             goto label_14;
                                                         |         }
    0x00002a92 ldr r1, [sp, 0x28]                        |         r1 = var_28h_2;
    0x00002a94 add.w r0, r5, 0x10                        |         r0 = r5 + 0x10;
    0x00002a98 blx 0x19d0                                |         r0 = fcn_000019d0 ();
    0x00002a9c cmp r0, 0                                 |         
    0x00002a9e it ge                                     |         
                                                         |         if (r0 < 0) {
    0x00002aa0 movge r4, 0                               |             r4 = 0;
                                                         |         }
                                                         |         if (r0 < 0) {
    0x00002aa2 blt.w 0x2bf6                              |             goto label_15;
                                                         |         }
                                                         | label_0:
    0x00002aa6 ldr r0, [sp, 0x24]                        |         r0 = var_24h;
                                                         |         if (r0 != 0) {
    0x00002aa8 cbz r0, 0x2aae                            |             
    0x00002aaa blx 0x1948                                |             sd_bus_message_unref ();
                                                         |         }
    0x00002aae ldr r2, [pc, 0x198]                       |         
    0x00002ab0 ldr r3, [pc, 0x164]                       |         r3 = *(0x2c18);
    0x00002ab2 add r2, pc                                |         r2 = "method_list_timezones";
    0x00002ab4 ldr r3, [r2, r3]                          |         r3 = "method_list_timezones";
    0x00002ab6 ldr r2, [r3]                              |         r2 = "method_list_timezones";
    0x00002ab8 ldr r3, [sp, 0x2c]                        |         r3 = var_2ch;
    0x00002aba eors r2, r3                               |         r2 ^= r3;
    0x00002abc mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00002ac0 bne.w 0x2c0e                              |             goto label_16;
                                                         |         }
    0x00002ac4 mov r0, r4                                |         r0 = r4;
    0x00002ac6 add sp, 0x34                              |         
    0x00002ac8 pop {r4, r5, r6, r7, pc}                  |         
                                                         | label_12:
    0x00002aca mov r3, r2                                |         r3 = r2;
    0x00002acc ldr r2, [r5]                              |         r2 = *(r5);
    0x00002ace str r2, [sp, 8]                           |         var_8h_2 = r2;
    0x00002ad0 ldr r2, [pc, 0x178]                       |         
    0x00002ad2 add r2, pc                                |         r2 = 0x5722;
    0x00002ad4 str r2, [sp, 0xc]                         |         var_ch_2 = r2;
    0x00002ad6 ldr r2, [pc, 0x178]                       |         
    0x00002ad8 add r2, pc                                |         r2 = 0x572e;
    0x00002ada str r2, [sp, 4]                           |         var_4h_2 = r2;
    0x00002adc add r2, sp, 0x24                          |         r2 += var_24h;
    0x00002ade str r2, [sp]                              |         *(sp) = r2;
    0x00002ae0 ldr r2, [pc, 0x170]                       |         
    0x00002ae2 add r2, pc                                |         r2 = 0x573a;
    0x00002ae4 blx 0x1b24                                |         r0 = fcn_00001b24 ();
    0x00002ae8 subs r4, r0, 0                            |         r4 = r0 - 0;
                                                         |         if (r4 < r0) {
    0x00002aea blt 0x2b6e                                |             goto label_17;
                                                         |         }
    0x00002aec ldr r3, [pc, 0x168]                       |         
    0x00002aee mov r1, r4                                |         r1 = r4;
    0x00002af0 ldr r0, [pc, 0x168]                       |         
    0x00002af2 strd r7, r7, [sp, 0xc]                    |         __asm ("strd r7, r7, [var_ch_2]");
    0x00002af6 add r3, pc                                |         r3 = 0x5752;
    0x00002af8 ldr r4, [r5]                              |         r4 = *(r5);
    0x00002afa add r0, pc                                |         r0 = 0x575a;
    0x00002afc str r3, [sp, 0x18]                        |         var_18h_2 = r3;
    0x00002afe str r0, [sp, 0x14]                        |         var_14h_2 = r0;
    0x00002b00 ldr r2, [pc, 0x15c]                       |         
    0x00002b02 ldr r3, [pc, 0x160]                       |         
    0x00002b04 ldr r0, [pc, 0x160]                       |         
    0x00002b06 add r2, pc                                |         r2 = 0x576a;
    0x00002b08 str r4, [sp, 8]                           |         var_8h_2 = r4;
    0x00002b0a add r3, pc                                |         r3 = 0x5774;
    0x00002b0c adds r2, 7                                |         r2 += 7;
    0x00002b0e add r0, pc                                |         r0 = 0x577a;
    0x00002b10 str r3, [sp, 4]                           |         var_4h_2 = r3;
    0x00002b12 str r0, [sp]                              |         *(sp) = r0;
    0x00002b14 mov.w r3, 0x1f2                           |         r3 = 0x1f2;
    0x00002b16 strb r1, [r7, 0xf]                        |         *((r7 + 0xf)) = r1;
    0x00002b18 movs r0, 7                                |         r0 = 7;
    0x00002b1a blx 0x1b54                                |         fcn_00001b54 ();
    0x00002b1e b 0x2a82                                  |         
                                                         |     } while (1);
                                                         | label_14:
    0x00002b20 blx 0x19a0                                |     r0 = fcn_000019a0 ();
    0x00002b24 cmp r0, 2                                 |     
    0x00002b26 ittt le                                   |     
                                                         |     if (r0 <= 2) {
    0x00002b28 rsble r4, r4, 0                           |         __asm ("rsble r4, r4, 0");
                                                         |     }
                                                         |     if (r0 <= 2) {
    0x00002b2a uxtble r4, r4                             |         __asm ("uxtble r4, r4");
                                                         |     }
                                                         |     if (r0 <= 2) {
    0x00002b2c rsble r4, r4, 0                           |         __asm ("rsble r4, r4, 0");
                                                         |     }
                                                         |     if (r0 > 2) {
    0x00002b2e bgt 0x2bd4                                |         goto label_18;
                                                         |     }
                                                         | label_1:
    0x00002b30 cmp r4, 0                                 |     
    0x00002b32 it ge                                     |     
                                                         |     if (r4 < 0) {
    0x00002b34 mvnge r4, 0x55                            |         r4 = ~0x55;
                                                         |     }
    0x00002b38 b 0x2aa6                                  |     goto label_0;
                                                         | label_13:
    0x00002b3a ldr r1, [pc, 0x130]                       |     
    0x00002b3c ldr r2, [pc, 0x130]                       |     
    0x00002b3e ldr r5, [r5]                              |     r5 = *(r5);
    0x00002b40 add r1, pc                                |     r1 = 0x57b2;
    0x00002b42 ldr r0, [pc, 0x130]                       |     
    0x00002b44 str r1, [sp, 0x18]                        |     var_18h_2 = r1;
    0x00002b46 add r2, pc                                |     r2 = 0x57ba;
    0x00002b48 ldr r1, [pc, 0x12c]                       |     
    0x00002b4a adds r2, 7                                |     r2 += 7;
    0x00002b4c ldr r3, [pc, 0x12c]                       |     
    0x00002b4e add r0, pc                                |     r0 = 0x57c8;
    0x00002b50 strd r6, r6, [sp, 0xc]                    |     __asm ("strd r6, r6, [var_ch_2]");
    0x00002b54 add r1, pc                                |     r1 = 0x57d0;
    0x00002b56 add r3, pc                                |     r3 = 0x57d6;
    0x00002b58 strd r3, r5, [sp, 4]                      |     __asm ("strd r3, r5, [var_8h_2]");
                                                         |     do {
    0x00002b5c str r0, [sp, 0x14]                        |         var_14h_2 = r0;
    0x00002b5e mov.w r3, 0x1f2                           |         r3 = 0x1f2;
    0x00002b62 str r1, [sp]                              |         *(sp) = r1;
    0x00002b64 movs r0, 4                                |         r0 = 4;
    0x00002b66 mov r1, r4                                |         r1 = r4;
    0x00002b68 blx 0x1b54                                |         fcn_00001b54 ();
    0x00002b6c b 0x2aa6                                  |         goto label_0;
                                                         | label_17:
    0x00002b6e ldr r1, [pc, 0x110]                       |         
    0x00002b70 ldr r2, [pc, 0x110]                       |         
    0x00002b72 ldr r3, [pc, 0x114]                       |         
    0x00002b74 add r1, pc                                |         r1 = 0x57fa;
    0x00002b76 ldr r5, [r5]                              |         r5 = *(r5);
    0x00002b78 ldr r0, [pc, 0x110]                       |         
    0x00002b7a add r2, pc                                |         r2 = 0x5802;
    0x00002b7c str r1, [sp, 0x18]                        |         var_18h_2 = r1;
    0x00002b7e add r3, pc                                |         r3 = "method_set_ntp";
    0x00002b80 ldr r1, [pc, 0x10c]                       |         
    0x00002b82 adds r2, 7                                |         r2 += 7;
    0x00002b84 add r0, pc                                |         r0 = 0x5814;
    0x00002b86 strd r7, r7, [sp, 0xc]                    |         __asm ("strd r7, r7, [var_ch_2]");
    0x00002b8a strd r3, r5, [sp, 4]                      |         __asm ("strd r3, r5, [var_8h_2]");
    0x00002b8e add r1, pc                                |         r1 = 0x5822;
    0x00002b90 b 0x2b5c                                  |         
                                                         |     } while (1);
                                                         | label_9:
    0x00002b92 ldr r1, [pc, 0x100]                       |     
    0x00002b94 movw r2, 0x1e5                            |     r2 = 0x1e5;
    0x00002b98 ldr r3, [pc, 0xfc]                        |     
    0x00002b9a ldr r0, [pc, 0x100]                       |     
    0x00002b9c add r1, pc                                |     r1 = 0x5836;
    0x00002b9e add r3, pc                                |     r3 = 0x583a;
    0x00002ba0 adds r1, 7                                |     r1 += 7;
    0x00002ba2 add r0, pc                                |     r0 = 0x5844;
    0x00002ba4 blx 0x1bac                                |     path_extend_internal ();
                                                         | label_10:
    0x00002ba8 ldr r1, [pc, 0xf4]                        |     
    0x00002baa mov.w r2, 0x1e6                           |     r2 = 0x1e6;
    0x00002bae ldr r3, [pc, 0xf4]                        |     
    0x00002bb0 ldr r0, [pc, 0xf4]                        |     
    0x00002bb2 add r1, pc                                |     r1 = 0x5856;
    0x00002bb4 add r3, pc                                |     r3 = 0x585e;
    0x00002bb6 adds r1, 7                                |     r1 += 7;
    0x00002bb8 add r0, pc                                |     r0 = 0x5864;
    0x00002bba blx 0x1bac                                |     path_extend_internal ();
                                                         | label_11:
    0x00002bbe ldr r1, [pc, 0xec]                        |     
    0x00002bc0 movw r2, 0x1e7                            |     r2 = 0x1e7;
    0x00002bc4 ldr r3, [pc, 0xe8]                        |     
    0x00002bc6 ldr r0, [pc, 0xec]                        |     
    0x00002bc8 add r1, pc                                |     r1 = 0x587a;
    0x00002bca add r3, pc                                |     r3 = 0x587e;
    0x00002bcc adds r1, 7                                |     r1 += 7;
    0x00002bce add r0, pc                                |     r0 = 0x5888;
    0x00002bd0 blx 0x1bac                                |     path_extend_internal ();
                                                         | label_18:
    0x00002bd4 ldr r2, [pc, 0xe0]                        |     
    0x00002bd6 mov r1, r4                                |     r1 = r4;
    0x00002bd8 ldr r5, [pc, 0xe0]                        |     
    0x00002bda movw r3, 0x1f9                            |     r3 = 0x1f9;
    0x00002bde ldr r0, [pc, 0xe0]                        |     
    0x00002be0 add r2, pc                                |     r2 = 0x589c;
    0x00002be2 add r5, pc                                |     r5 = 0x58a2;
    0x00002be4 adds r2, 7                                |     r2 += 7;
    0x00002be6 add r0, pc                                |     r0 = 0x58ac;
    0x00002be8 strd r0, r5, [sp]                         |     __asm ("strd r0, r5, [sp]");
    0x00002bec movs r0, 3                                |     r0 = 3;
    0x00002bee blx 0x1c84                                |     r0 = extract_first_word ();
    0x00002bf2 mov r4, r0                                |     r4 = r0;
    0x00002bf4 b 0x2b30                                  |     goto label_1;
                                                         | label_15:
    0x00002bf6 ldr r1, [pc, 0xcc]                        |     
    0x00002bf8 movw r2, 0x1fd                            |     r2 = 0x1fd;
    0x00002bfc ldr r3, [pc, 0xc8]                        |     
    0x00002bfe movs r0, 3                                |     r0 = 3;
    0x00002c00 add r1, pc                                |     r1 = 0x58ca;
    0x00002c02 add r3, pc                                |     r3 = 0x58ce;
    0x00002c04 adds r1, 7                                |     r1 += 7;
    0x00002c06 blx 0x1d98                                |     r0 = bus_verify_polkit_async ();
    0x00002c0a mov r4, r0                                |     r4 = r0;
    0x00002c0c b 0x2aa6                                  |     goto label_0;
                                                         | label_16:
    0x00002c0e blx 0x1c60                                |     bus_add_implementation ();
    0x00002c12 nop                                       |     
    0x00002c14 adds r4, 0x14                             |     r4 += 0x14;
    0x00002c16 movs r1, r0                               |     r1 = r0;
    0x00002c18 lsls r0, r1, 7                            |     r0 = r1 << 7;
    0x00002c1a movs r0, r0                               |     
    0x00002c1c adds r4, 0xe                              |     r4 += 0xe;
    0x00002c1e movs r1, r0                               |     r1 = r0;
    0x00002c20 lsls r0, r6, 6                            |     r0 = r6 << 6;
    0x00002c22 movs r0, r0                               |     
    0x00002c24 subs r6, r2, 2                            |     r6 = r2 - 2;
    0x00002c26 movs r0, r0                               |     
    0x00002c28 subs r0, r3, 2                            |     r0 = r3 - 2;
    0x00002c2a movs r0, r0                               |     
    0x00002c2c subs r2, r7, 1                            |     r2 = r7 - 1;
    0x00002c2e movs r0, r0                               |     
    0x00002c30 subs r4, r3, 1                            |     r4 = r3 - 1;
    0x00002c32 movs r0, r0                               |     
    0x00002c34 subs r2, r1, 1                            |     r2 = r1 - 1;
    0x00002c36 movs r0, r0                               |     
    0x00002c38 adds r0, r6, 5                            |     r0 = r6 + 5;
    0x00002c3a movs r0, r0                               |     
    0x00002c3c adds r2, r5, 6                            |     r2 = r5 + 6;
    0x00002c3e movs r0, r0                               |     
    0x00002c40 cmp r5, 0x1c                              |     
    0x00002c42 movs r0, r0                               |     
    0x00002c44 subs r4, r6, 4                            |     r4 = r6 - 4;
    0x00002c46 movs r0, r0                               |     
    0x00002c48 adds r3, 0x62                             |     r3 += 0x62;
    0x00002c4a movs r1, r0                               |     r1 = r0;
    0x00002c4c adds r2, r7, 7                            |     r2 = r7 + 7;
    0x00002c4e movs r0, r0                               |     
    0x00002c50 adds r4, r7, 7                            |     r4 = r7 + 7;
    0x00002c52 movs r0, r0                               |     
    0x00002c54 adds r6, r6, 7                            |     r6 += 7;
    0x00002c56 movs r0, r0                               |     
    0x00002c58 adds r6, r4, 6                            |     r6 = r4 + 6;
    0x00002c5a movs r0, r0                               |     
    0x00002c5c adds r6, r5, 6                            |     r6 = r5 + 6;
    0x00002c5e movs r0, r0                               |     
    0x00002c60 adds r6, r1, 3                            |     r6 = r1 + 3;
    0x00002c62 movs r0, r0                               |     
    0x00002c64 adds r6, r1, 4                            |     r6 = r1 + 4;
    0x00002c66 movs r0, r0                               |     
    0x00002c68 cmp r4, 0x86                              |     
    0x00002c6a movs r0, r0                               |     
    0x00002c6c adds r4, r6, 5                            |     r4 = r6 + 5;
    0x00002c6e movs r0, r0                               |     
    0x00002c70 adds r6, r1, 2                            |     r6 = r1 + 2;
    0x00002c72 movs r0, r0                               |     
    0x00002c74 adds r2, r3, 5                            |     r2 = r3 + 5;
    0x00002c76 movs r0, r0                               |     
    0x00002c78 cmp r4, 0x40                              |     
    0x00002c7a movs r0, r0                               |     
    0x00002c7c adds r2, r0, 3                            |     r2 = r0 + 3;
    0x00002c7e movs r0, r0                               |     
    0x00002c80 adds r0, r5, 4                            |     r0 = r5 + 4;
    0x00002c82 movs r0, r0                               |     
    0x00002c84 adds r2, r3, 1                            |     r2 = r3 + 1;
    0x00002c86 movs r0, r0                               |     
    0x00002c88 adds r2, r3, 2                            |     r2 = r3 + 2;
    0x00002c8a movs r0, r0                               |     
    0x00002c8c adds r4, r4, 4                            |     r4 += 4;
    0x00002c8e movs r0, r0                               |     
    0x00002c90 cmp r4, 6                                 |     
    0x00002c92 movs r0, r0                               |     
    0x00002c94 adds r0, r7, 0                            |     r0 = r7 + 0;
    0x00002c96 movs r0, r0                               |     
    0x00002c98 cmp r2, 0xd6                              |     
    0x00002c9a movs r0, r0                               |     
    0x00002c9c movs r2, 0x2a                             |     r2 = 0x2a;
    0x00002c9e movs r0, r0                               |     
    0x00002ca0 adds r2, r4, 0                            |     r2 = r4 + 0;
    0x00002ca2 movs r0, r0                               |     
    0x00002ca4 cmp r2, 0xc0                              |     
    0x00002ca6 movs r0, r0                               |     
    0x00002ca8 adds r4, r7, 0                            |     r4 = r7 + 0;
    0x00002caa movs r0, r0                               |     
    0x00002cac adds r4, r1, 0                            |     r4 = r1 + 0;
    0x00002cae movs r0, r0                               |     
    0x00002cb0 cmp r2, 0xaa                              |     
    0x00002cb2 movs r0, r0                               |     
    0x00002cb4 adds r2, r5, 0                            |     r2 = r5 + 0;
    0x00002cb6 movs r0, r0                               |     
    0x00002cb8 subs r4, r6, r7                           |     r4 = r6 - r7;
    0x00002cba movs r0, r0                               |     
    0x00002cbc adds r2, r3, 2                            |     r2 = r3 + 2;
    0x00002cbe movs r0, r0                               |     
    0x00002cc0 cmp r3, 0xae                              |     
    0x00002cc2 movs r0, r0                               |     
    0x00002cc4 subs r4, r2, r7                           |     r4 = r2 - r7;
    0x00002cc6 movs r0, r0                               |     
    0x00002cc8 cmp r3, 0x92                              |     
    0x00002cca movs r0, r0                               |     
    0x00002ccc push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x00002cd0 mov r6, r2                                |     r6 = r2;
    0x00002cd2 ldr r2, [pc, 0x2f4]                       |     
    0x00002cd4 sub sp, 0x74                              |     
    0x00002cd6 ldr r3, [pc, 0x2f4]                       |     r3 = *(0x2fce);
    0x00002cd8 add r2, pc                                |     r2 = 0x5ca6;
    0x00002cda ldr r7, [pc, 0x2f4]                       |     
    0x00002cdc ldr r3, [r2, r3]                          |     
    0x00002cde add r7, pc                                |     r7 = 0x5cb4;
    0x00002ce0 ldr r3, [r3]                              |     r3 = *(0x5ca6);
    0x00002ce2 str r3, [sp, 0x6c]                        |     var_6ch = r3;
    0x00002ce4 mov.w r3, 0                               |     r3 = 0;
    0x00002ce8 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00002cea beq.w 0x2df8                              |         goto label_19;
                                                         |     }
    0x00002cee mov r4, r1                                |     r4 = r1;
    0x00002cf0 cmp r1, 0                                 |     
                                                         |     if (r1 == 0) {
    0x00002cf2 beq.w 0x2e0e                              |         goto label_20;
                                                         |     }
    0x00002cf6 ldr r1, [pc, 0x2dc]                       |     
    0x00002cf8 add r3, sp, 0x30                          |     r3 += var_30h;
    0x00002cfa add r2, sp, 0x34                          |     r2 += var_34h;
    0x00002cfc mov r5, r0                                |     r5 = r0;
    0x00002cfe add r1, pc                                |     r1 = 0x5cd8;
    0x00002d00 blx 0x1a7c                                |     r0 = fcn_00001a7c ();
    0x00002d04 cmp r0, 0                                 |     
                                                         |     if (r0 < 0) {
    0x00002d06 blt 0x2dca                                |         goto label_2;
                                                         |     }
    0x00002d08 ldr r0, [sp, 0x34]                        |     r0 = var_34h;
    0x00002d0a movs r1, 7                                |     r1 = 7;
    0x00002d0c blx 0x1cb4                                |     r0 = timespec_load ();
    0x00002d10 cmp r0, 0                                 |     
                                                         |     if (r0 < 0) {
    0x00002d12 blt.w 0x2e24                              |         goto label_21;
                                                         |     }
    0x00002d16 ldr r0, [sp, 0x34]                        |     r0 = var_34h;
    0x00002d18 ldr r1, [r4]                              |     r1 = *(r4);
    0x00002d1a cmp r0, 0                                 |     
    0x00002d1c it ne                                     |     
                                                         |     if (r0 != 0) {
    0x00002d1e cmpne r1, 0                               |         __asm ("cmpne r1, 0");
                                                         |     }
                                                         |     if (r0 != 0) {
    0x00002d20 bne 0x2de6                                |         goto label_22;
                                                         |     }
    0x00002d22 cmp r0, r1                                |     
                                                         |     if (r0 <= r1) {
    0x00002d24 blo 0x2d28                                |         goto label_23;
                                                         |     }
                                                         |     if (r0 == r1) {
    0x00002d26 beq 0x2dee                                |         goto label_24;
                                                         |     }
                                                         |     do {
                                                         | label_23:
    0x00002d28 add.w r3, r4, 8                           |         r3 = r4 + 8;
    0x00002d2c ldr r2, [pc, 0x2a8]                       |         
    0x00002d2e strd r3, r6, [sp, 8]                      |         __asm ("strd r3, r6, [var_ch]");
    0x00002d32 mov.w r8, -1                              |         r8 = -1;
    0x00002d36 ldr r3, [sp, 0x30]                        |         r3 = var_30h;
    0x00002d38 movs r1, 0x19                             |         r1 = 0x19;
    0x00002d3a add r2, pc                                |         r2 = 0x5d16;
    0x00002d3c mov r0, r5                                |         r0 = r5;
    0x00002d3e str.w r8, [sp, 4]                         |         __asm ("str.w r8, [var_4h]");
    0x00002d42 subs r3, 0                                |         
    0x00002d44 it ne                                     |         
                                                         |         if (r3 == 0) {
    0x00002d46 movne r3, 1                               |             r3 = 1;
                                                         |         }
    0x00002d48 str r3, [sp]                              |         *(sp) = r3;
    0x00002d4a movs r3, 0                                |         r3 = 0;
    0x00002d4c blx 0x1da4                                |         r0 = unit_name_is_valid ();
    0x00002d50 cmp r0, 0                                 |         
                                                         |         if (r0 >= 0) {
    0x00002d52 blt 0x2dca                                |             
    0x00002d54 it eq                                     |             
                                                         |             if (r0 != 0) {
    0x00002d56 moveq r0, 1                               |                 r0 = 1;
                                                         |             }
                                                         |             if (r0 == 0) {
    0x00002d58 beq 0x2dca                                |                 goto label_2;
                                                         |             }
    0x00002d5a ldr r1, [sp, 0x34]                        |             r1 = var_34h;
    0x00002d5c mov r0, r4                                |             r0 = r4;
    0x00002d5e blx 0x19d0                                |             r0 = fcn_000019d0 ();
    0x00002d62 cmp r0, 0                                 |             
                                                         |             if (r0 < 0) {
    0x00002d64 blt 0x2dca                                |                 goto label_2;
                                                         |             }
    0x00002d66 ldr.w sb, [r4]                            |             sb = *(r4);
    0x00002d6a cmp.w sb, 0                               |             
                                                         |             if (sb != 0) {
    0x00002d6e beq 0x2d86                                |                 
    0x00002d70 ldrb.w r3, [sb]                           |                 r3 = *(sb);
                                                         |                 if (r3 == 0) {
    0x00002d74 cbz r3, 0x2d86                            |                     goto label_25;
                                                         |                 }
    0x00002d76 ldr r1, [pc, 0x264]                       |                 
    0x00002d78 mov r0, sb                                |                 r0 = sb;
    0x00002d7a add r1, pc                                |                 r1 = 0x5d5c;
    0x00002d7c blx 0x1d80                                |                 r0 = errno_location ();
    0x00002d80 cmp r0, 0                                 |                 
                                                         |                 if (r0 != 0) {
    0x00002d82 bne.w 0x2f12                              |                     goto label_26;
                                                         |                 }
                                                         |             }
                                                         | label_25:
    0x00002d86 ldr r0, [pc, 0x258]                       |             
    0x00002d88 movs r1, 0                                |             r1 = 0;
    0x00002d8a add r0, pc                                |             r0 = 0x5d70;
    0x00002d8c blx 0x1ad0                                |             r0 = fcn_00001ad0 ();
    0x00002d90 cmp r0, 0                                 |             
                                                         |             if (r0 < 0) {
    0x00002d92 blt.w 0x2f28                              |                 goto label_27;
                                                         |             }
    0x00002d96 ldr r0, [pc, 0x24c]                       |             
    0x00002d98 mov.w sb, 0                               |             sb = 0;
    0x00002d9c add r0, pc                                |             r0 = 0x5d86;
                                                         | label_4:
    0x00002d9e ldr r1, [pc, 0x248]                       |             
    0x00002da0 add r1, pc                                |             r1 = 0x5d8e;
    0x00002da2 blx 0x1a88                                |             r0 = fcn_00001a88 ();
    0x00002da6 mov r8, r0                                |             r8 = r0;
                                                         | label_6:
    0x00002da8 mov r0, sb                                |             r0 = sb;
    0x00002daa blx 0x1aa0                                |             fcn_00001aa0 ();
    0x00002dae cmp.w r8, 0                               |             
                                                         |             if (r8 >= 0) {
    0x00002db2 bge 0x2e36                                |                 goto label_5;
                                                         |             }
                                                         | label_8:
    0x00002db4 blx 0x19a0                                |             r0 = fcn_000019a0 ();
    0x00002db8 cmp r0, 2                                 |             
                                                         |             if (r0 > 2) {
    0x00002dba bgt.w 0x2f4a                              |                 goto label_28;
                                                         |             }
    0x00002dbe ldr r2, [pc, 0x22c]                       |             
    0x00002dc0 mov r1, r8                                |             r1 = r8;
    0x00002dc2 mov r0, r6                                |             r0 = r6;
    0x00002dc4 add r2, pc                                |             r2 = 0x5db6;
    0x00002dc6 blx 0x197c                                |             fcn_0000197c ();
                                                         |         }
                                                         | label_2:
    0x00002dca ldr r2, [pc, 0x224]                       |         
    0x00002dcc ldr r3, [pc, 0x1fc]                       |         r3 = *(0x2fcc);
    0x00002dce add r2, pc                                |         r2 = 0x5dc4;
    0x00002dd0 ldr r3, [r2, r3]                          |         r3 = *(0x5dc4);
    0x00002dd2 ldr r2, [r3]                              |         r2 = *(0x5dc4);
    0x00002dd4 ldr r3, [sp, 0x6c]                        |         r3 = var_6ch;
    0x00002dd6 eors r2, r3                               |         r2 ^= r3;
    0x00002dd8 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00002ddc bne.w 0x2fbe                              |             goto label_29;
                                                         |         }
    0x00002de0 add sp, 0x74                              |         
    0x00002de2 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_22:
    0x00002de6 blx 0x1d80                                |         r0 = errno_location ();
    0x00002dea cmp r0, 0                                 |         
    0x00002dec bne 0x2d28                                |         
                                                         |     } while (r0 != 0);
                                                         | label_24:
    0x00002dee movs r1, 0                                |     r1 = 0;
    0x00002df0 mov r0, r5                                |     r0 = r5;
    0x00002df2 blx 0x1924                                |     sd_bus_reply_method_return ();
    0x00002df6 b 0x2dca                                  |     goto label_2;
                                                         | label_19:
    0x00002df8 ldr r1, [pc, 0x1f8]                       |     
    0x00002dfa mov.w r2, 0x298                           |     r2 = 0x298;
    0x00002dfe ldr r3, [pc, 0x1f8]                       |     
    0x00002e00 ldr r0, [pc, 0x1f8]                       |     
    0x00002e02 add r1, pc                                |     r1 = 0x5dfa;
    0x00002e04 add r3, pc                                |     r3 = 0x5e02;
    0x00002e06 adds r1, 7                                |     r1 += 7;
    0x00002e08 add r0, pc                                |     r0 = 0x5e08;
    0x00002e0a blx 0x1bac                                |     path_extend_internal ();
                                                         | label_20:
    0x00002e0e ldr r1, [pc, 0x1f0]                       |     
    0x00002e10 movw r2, 0x299                            |     r2 = 0x299;
    0x00002e14 ldr r3, [pc, 0x1ec]                       |     
    0x00002e16 ldr r0, [pc, 0x1f0]                       |     
    0x00002e18 add r1, pc                                |     r1 = 0x5e1e;
    0x00002e1a add r3, pc                                |     r3 = 0x5e22;
    0x00002e1c adds r1, 7                                |     r1 += 7;
    0x00002e1e add r0, pc                                |     r0 = 0x5e2c;
    0x00002e20 blx 0x1bac                                |     path_extend_internal ();
                                                         | label_21:
    0x00002e24 ldr r2, [pc, 0x1e4]                       |     
    0x00002e26 mov r0, r6                                |     r0 = r6;
    0x00002e28 ldr r1, [pc, 0x1e4]                       |     
    0x00002e2a ldr r3, [sp, 0x34]                        |     r3 = var_34h;
    0x00002e2c add r2, pc                                |     r2 = 0x5e3c;
    0x00002e2e add r1, pc                                |     r1 = 0x5e42;
    0x00002e30 blx 0x1bc4                                |     sd_bus_send ();
    0x00002e34 b 0x2dca                                  |     goto label_2;
                                                         | label_5:
    0x00002e36 blx 0x1988                                |     fcn_00001988 ();
    0x00002e3a movs r0, 0                                |     r0 = 0;
    0x00002e3c blx 0x1bf4                                |     r0 = sd_bus_error_free ();
    0x00002e40 subs r6, r0, 0                            |     r6 = r0 - 0;
    0x00002e42 blt 0x2eea                                |     
                                                         |     while (r0 <= 6) {
                                                         | label_3:
    0x00002e44 ldrb r3, [r4, 4]                          |         r3 = *((r4 + 4));
                                                         |         if (r3 != 0) {
    0x00002e46 cbz r3, 0x2e74                            |             
    0x00002e48 add r6, sp, 0x38                          |             r6 += var_38h;
    0x00002e4a movs r0, 0                                |             r0 = 0;
    0x00002e4c mov r1, r6                                |             r1 = r6;
    0x00002e4e blx 0x1954                                |             r0 = clock_gettime ();
    0x00002e52 cmp r0, 0                                 |             
                                                         |             if (r0 != 0) {
    0x00002e54 bne.w 0x2f92                              |                 goto label_30;
                                                         |             }
    0x00002e58 add.w r8, sp, 0x40                        |             r8 += var_40h;
    0x00002e5c mov r0, r6                                |             r0 = r6;
    0x00002e5e mov r1, r8                                |             r1 = r8;
    0x00002e60 blx 0x190c                                |             r0 = localtime_r ();
    0x00002e64 cmp r0, 0                                 |             
                                                         |             if (r0 == 0) {
    0x00002e66 beq.w 0x2fa8                              |                 goto label_31;
                                                         |             }
    0x00002e6a mov r0, r8                                |             r0 = r8;
    0x00002e6c blx 0x1a30                                |             fcn_00001a30 ();
    0x00002e70 subs r6, r0, 0                            |             r6 -= var_40h;
                                                         |             if (r6 < var_40h) {
    0x00002e72 blt 0x2f6a                                |                 goto label_32;
                                                         |             }
                                                         |         }
                                                         | label_7:
    0x00002e74 ldr r2, [pc, 0x19c]                       |         r2 = *(0x3014);
    0x00002e76 ldr r3, [pc, 0x1a0]                       |         r3 = *(0x301a);
    0x00002e78 ldr r1, [r4]                              |         r1 = *(r4);
    0x00002e7a ldr r0, [r7, r2]                          |         r0 = *((r7 + r2));
    0x00002e7c ldr r4, [r7, r3]                          |         r4 = *((r7 + r3));
    0x00002e7e ldr r3, [pc, 0x19c]                       |         
    0x00002e80 str r1, [sp, 0x24]                        |         var_24h_2 = r1;
    0x00002e82 str r1, [sp, 0xc]                         |         var_ch = r1;
    0x00002e84 ldr r0, [r0]                              |         r0 = *(r0);
    0x00002e86 add r3, pc                                |         r3 = 0x5ea8;
    0x00002e88 str r3, [sp, 8]                           |         var_8h = r3;
    0x00002e8a ldr r3, [pc, 0x194]                       |         
    0x00002e8c ldr.w r1, [r4, r0, lsl 2]                 |         offset_0 = r0 << 2;
                                                         |         r1 = *((r4 + offset_0));
    0x00002e90 movs r4, 0                                |         r4 = 0;
    0x00002e92 str r0, [sp, 0x1c]                        |         var_1ch = r0;
    0x00002e94 add r3, pc                                |         r3 = 0x5eba;
    0x00002e96 ldr r2, [pc, 0x18c]                       |         
    0x00002e98 str r1, [sp, 0x28]                        |         var_28h = r1;
    0x00002e9a str r1, [sp, 0x14]                        |         var_14h = r1;
    0x00002e9c ldr r1, [pc, 0x188]                       |         
    0x00002e9e add r2, pc                                |         r2 = 0x5ec8;
    0x00002ea0 str r3, [sp, 4]                           |         var_4h = r3;
    0x00002ea2 adds r2, 7                                |         r2 += 7;
    0x00002ea4 ldr r0, [pc, 0x184]                       |         
    0x00002ea6 add r1, pc                                |         r1 = 0x5ed2;
    0x00002ea8 ldr r3, [pc, 0x184]                       |         
    0x00002eaa str r1, [sp, 0x10]                        |         var_10h = r1;
    0x00002eac ldr r1, [pc, 0x184]                       |         
    0x00002eae add r0, pc                                |         r0 = 0x5ede;
    0x00002eb0 add r3, pc                                |         r3 = 0x5ee4;
    0x00002eb2 str r0, [sp, 0x18]                        |         var_18h = r0;
    0x00002eb4 str r3, [sp]                              |         *(sp) = r3;
    0x00002eb6 movs r0, 6                                |         r0 = 6;
    0x00002eb8 add r1, pc                                |         r1 = 0x5ef0;
    0x00002eba movw r3, 0x2d3                            |         r3 = 0x2d3;
    0x00002ebe str r1, [sp, 0x20]                        |         var_20h = r1;
    0x00002ec0 mov r1, r4                                |         r1 = r4;
    0x00002ec2 str r4, [sp, 0x2c]                        |         var_2ch_2 = r4;
    0x00002ec4 blx 0x1c24                                |         sd_bus_default_system ()
    0x00002ec8 mov r0, r5                                |         r0 = r5;
    0x00002eca blx 0x1a64                                |         fcn_00001a64 ();
    0x00002ece ldr r3, [pc, 0x168]                       |         
    0x00002ed0 ldr r2, [pc, 0x168]                       |         
    0x00002ed2 ldr r1, [pc, 0x16c]                       |         
    0x00002ed4 add r3, pc                                |         r3 = 0x5f12;
    0x00002ed6 str r4, [sp]                              |         *(sp) = r4;
    0x00002ed8 add r2, pc                                |         r2 = 0x5f18;
    0x00002eda add r1, pc                                |         r1 = 0x5f20;
    0x00002edc blx 0x1c0c                                |         strv_find ();
    0x00002ede cdp p6, 9, c4, c6, c1, 1                  |         __asm ("cdp p6, 9, c4, c6, c1, 1");
    0x00002ee2 mov r0, r5                                |         r0 = r5;
    0x00002ee4 blx 0x1924                                |         sd_bus_reply_method_return ();
    0x00002ee8 b 0x2dca                                  |         goto label_2;
    0x00002eea blx 0x19a0                                |         r0 = fcn_000019a0 ();
    0x00002eee cmp r0, 6                                 |         
    0x00002ef0 ble 0x2e44                                |         
                                                         |     }
    0x00002ef2 ldr r3, [pc, 0x150]                       |     
    0x00002ef4 mov r1, r6                                |     r1 = r6;
    0x00002ef6 ldr r2, [pc, 0x150]                       |     
    0x00002ef8 movs r0, 7                                |     r0 = 7;
    0x00002efa add r3, pc                                |     r3 = 0x5f44;
    0x00002efc str r3, [sp, 4]                           |     var_4h = r3;
    0x00002efe add r2, pc                                |     r2 = 0x5f4c;
    0x00002f00 ldr r3, [pc, 0x148]                       |     
    0x00002f02 adds r2, 7                                |     r2 += 7;
    0x00002f04 add r3, pc                                |     r3 = 0x5f54;
    0x00002f06 str r3, [sp]                              |     *(sp) = r3;
    0x00002f08 mov.w r3, 0x2c4                           |     r3 = 0x2c4;
    0x00002f0c blx 0x1c84                                |     extract_first_word ();
    0x00002f10 b 0x2e44                                  |     goto label_3;
                                                         | label_26:
    0x00002f12 ldr r1, [pc, 0x13c]                       |     
    0x00002f14 mov r3, r8                                |     r3 = r8;
    0x00002f16 mov r2, sb                                |     r2 = sb;
    0x00002f18 movs r0, 0                                |     r0 = 0;
    0x00002f1a add r1, pc                                |     r1 = 0x5f70;
    0x00002f1c blx 0x1bb8                                |     r0 = sd_bus_error_setf ();
    0x00002f20 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00002f22 beq 0x2fc2                                |         goto label_33;
                                                         |     }
    0x00002f24 mov sb, r0                                |     sb = r0;
    0x00002f26 b 0x2d9e                                  |     goto label_4;
                                                         | label_27:
    0x00002f28 ldr r0, [pc, 0x128]                       |     
    0x00002f2a add r0, pc                                |     r0 = 0x5f82;
    0x00002f2c blx 0x1b48                                |     r0 = fcn_00001b48 ();
    0x00002f30 cmp r0, 0                                 |     
                                                         |     if (r0 >= 0) {
    0x00002f32 bge 0x2e36                                |         goto label_5;
                                                         |     }
    0x00002f34 blx 0x1d8c                                |     r0 = log_oom_internal ();
    0x00002f38 ldr r3, [r0]                              |     r3 = *(r0);
    0x00002f3a cmp r3, 2                                 |     
                                                         |     if (r3 == 2) {
    0x00002f3c beq.w 0x2e36                              |         goto label_5;
                                                         |     }
    0x00002f40 rsb.w r8, r3, 0                           |     r8 = r3 - ;
    0x00002f44 mov.w sb, 0                               |     sb = 0;
    0x00002f48 b 0x2da8                                  |     goto label_6;
                                                         | label_28:
    0x00002f4a ldr r2, [pc, 0x10c]                       |     
    0x00002f4c movs r0, 3                                |     r0 = 3;
    0x00002f4e ldr r1, [pc, 0x10c]                       |     
    0x00002f50 ldr r3, [pc, 0x10c]                       |     
    0x00002f52 add r2, pc                                |     r2 = 0x5fb0;
    0x00002f54 add r1, pc                                |     r1 = 0x5fb6;
    0x00002f56 adds r2, 7                                |     r2 += 7;
    0x00002f58 add r3, pc                                |     r3 = 0x5fbc;
    0x00002f5a strd r3, r1, [sp]                         |     __asm ("strd r3, r1, [sp]");
    0x00002f5e movw r3, 0x2ba                            |     r3 = 0x2ba;
    0x00002f62 mov r1, r8                                |     r1 = r8;
    0x00002f64 blx 0x1c84                                |     extract_first_word ();
    0x00002f66 cdp p7, 8, c14, c14, c9, 1                |     __asm ("cdp p7, 8, c14, c14, c9, 1");
                                                         | label_32:
    0x00002f6a blx 0x19a0                                |     r0 = fcn_000019a0 ();
    0x00002f6e cmp r0, 6                                 |     
                                                         |     if (r0 <= 6) {
    0x00002f70 ble 0x2e74                                |         goto label_7;
                                                         |     }
    0x00002f72 ldr r3, [pc, 0xf0]                        |     
    0x00002f74 mov r1, r6                                |     r1 = r6;
    0x00002f76 movs r0, 7                                |     r0 = 7;
    0x00002f78 add r3, pc                                |     r3 = 0x5fe2;
    0x00002f7a adds r2, r3, 7                            |     r2 = r3 + 7;
    0x00002f7c ldr r3, [pc, 0xe8]                        |     
    0x00002f7e add r3, pc                                |     r3 = 0x5fea;
    0x00002f80 str r3, [sp, 4]                           |     var_4h = r3;
    0x00002f82 ldr r3, [pc, 0xe8]                        |     
    0x00002f84 add r3, pc                                |     r3 = 0x5ff6;
    0x00002f86 str r3, [sp]                              |     *(sp) = r3;
    0x00002f88 mov.w r3, 0x2d0                           |     r3 = 0x2d0;
    0x00002f8c blx 0x1c84                                |     extract_first_word ();
    0x00002f90 b 0x2e74                                  |     goto label_7;
                                                         | label_30:
    0x00002f92 ldr r1, [pc, 0xdc]                        |     
    0x00002f94 movw r2, 0x2cb                            |     r2 = 0x2cb;
    0x00002f98 ldr r3, [pc, 0xd8]                        |     
    0x00002f9a ldr r0, [pc, 0xdc]                        |     
    0x00002f9c add r1, pc                                |     r1 = 0x6012;
    0x00002f9e add r3, pc                                |     r3 = 0x6016;
    0x00002fa0 adds r1, 7                                |     r1 += 7;
    0x00002fa2 add r0, pc                                |     r0 = 0x6020;
    0x00002fa4 blx 0x1bac                                |     path_extend_internal ();
                                                         | label_31:
    0x00002fa8 ldr r1, [pc, 0xd0]                        |     
    0x00002faa mov.w r2, 0x2cc                           |     r2 = 0x2cc;
    0x00002fae ldr r3, [pc, 0xd0]                        |     
    0x00002fb0 ldr r0, [pc, 0xd0]                        |     
    0x00002fb2 add r1, pc                                |     r1 = 0x6032;
    0x00002fb4 add r3, pc                                |     r3 = 0x603a;
    0x00002fb6 adds r1, 7                                |     r1 += 7;
    0x00002fb8 add r0, pc                                |     r0 = 0x6040;
    0x00002fba blx 0x1bac                                |     path_extend_internal ();
                                                         | label_29:
    0x00002fbe blx 0x1c60                                |     bus_add_implementation ();
                                                         | label_33:
    0x00002fc2 mvn r8, 0xb                               |     r8 = ~0xb;
    0x00002fc6 b 0x2db4                                  |     goto label_8;
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/systemd-timedated @ 0x32f0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.000032f0 ()                                      | void fcn_000032f0 (uint32_t arg1, uint32_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_8h_3;
                                                                 |     int32_t var_8h_4;
                                                                 |     int16_t var_10h_2;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch_2;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_64h;
                                                                 |     int16_t var_4h_3;
                                                                 |     int16_t var_10h_3;
                                                                 |     int16_t var_84h;
                                                                 |     int16_t var_90h;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_4h_4;
                                                                 |     int16_t var_18h_2;
                                                                 |     int16_t var_10h_4;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_18h_3;
                                                                 |     int16_t var_1ch_2;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_28h_2;
                                                                 |     int16_t var_2ch_3;
                                                                 |     int16_t var_30h_2;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h_2;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_74h;
                                                                 |     int16_t var_9ch;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_ch_2;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_20h_2;
                                                                 |     int16_t var_2ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 | label_7:
    0x00001a48 bx pc                                             |     return void (*pc)() ();
                                                                 | label_0:
    0x00001b6c bx pc                                             |     return void (*pc)() ();
    0x000032f0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000032f4 mov r5, r2                                        |     r5 = r2;
    0x000032f6 ldr r2, [pc, 0x13c]                               |     
    0x000032f8 sub sp, 0x34                                      |     
    0x000032fa ldr r3, [pc, 0x13c]                               |     r3 = *(0x343a);
    0x000032fc add r2, pc                                        |     r2 = 0x6736;
    0x000032fe ldr r3, [r2, r3]                                  |     
    0x00003300 ldr r3, [r3]                                      |     r3 = *(0x6736);
    0x00003302 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00003304 mov.w r3, 0                                       |     r3 = 0;
    0x00003308 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000330a beq 0x33ca                                        |         goto label_22;
                                                                 |     }
    0x0000330c mov r7, r1                                        |     r7 = r1;
    0x0000330e cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00003310 beq.w 0x341a                                      |         goto label_23;
                                                                 |     }
    0x00003314 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r5 != 0) {
    0x00003316 cbz r5, 0x332a                                    |         
    0x00003318 ldr r0, [r0, 0xc]                                 |         r0 = *((r0 + 0xc));
    0x0000331a cmp r0, r5                                        |         
                                                                 |         if (r0 == r5) {
    0x0000331c beq 0x33ac                                        |             goto label_24;
                                                                 |         }
    0x0000331e blx 0x1948                                        |         sd_bus_message_unref ();
    0x00003322 mov r0, r5                                        |         r0 = r5;
    0x00003324 blx 0x1d74                                        |         strcmp (r0, r1);
    0x00003328 str r0, [r4, 0xc]                                 |         *((r4 + 0xc)) = r0;
                                                                 |     }
    0x0000332a ldr r4, [r4, 0x14]                                |     r4 = *((r4 + 0x14));
    0x0000332c cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0000332e beq 0x33ac                                        |         goto label_24;
                                                                 |     }
    0x00003330 ldr.w sl, [pc, 0x108]                             |     sl = *(0x0000343c);
    0x00003334 add.w r8, sp, 0x20                                |     r8 += var_20h_2;
    0x00003338 ldr.w sb, [pc, 0x104]                             |     sb = *(0x00003440);
    0x0000333c movs r5, 0                                        |     r5 = 0;
    0x0000333e add sl, pc                                        |     sl += pc;
    0x00003340 add sb, pc                                        |     sb += pc;
    0x00003342 b 0x3370                                          |     
                                                                 |     while (r0 != 0) {
    0x00003344 movs r0, 1                                        |         r0 = 1;
    0x00003346 mov r3, sl                                        |         r3 = sl;
    0x00003348 strd r0, r8, [sp]                                 |         __asm ("strd r0, r8, [sp]");
    0x0000334c mov r2, r6                                        |         r2 = r6;
    0x0000334e mov r1, sb                                        |         r1 = sb;
    0x00003350 mov r0, r7                                        |         r0 = r7;
    0x00003352 strd r5, r4, [sp, 8]                              |         __asm ("strd r5, r4, [sp, 8]");
    0x00003356 blx 0x1ab8                                        |         r0 = fcn_00001ab8 ();
    0x0000335a subs.w fp, r0, 0                                  |         
                                                                 |         if (fp < r0) {
    0x0000335e blt 0x33e0                                        |             goto label_25;
                                                                 |         }
    0x00003360 mov r0, r6                                        |         r0 = r6;
    0x00003362 blx 0x1aa0                                        |         fcn_00001aa0 ();
    0x00003366 mov r0, r8                                        |         r0 = r8;
    0x00003368 blx 0x1c00                                        |         sd_bus_emit_properties_changed ();
    0x0000336c ldr r4, [r4, 0x14]                                |         r4 = *((r4 + 0x14));
                                                                 |         if (r4 == 0) {
    0x0000336e cbz r4, 0x33ac                                    |             goto label_24;
                                                                 |         }
    0x00003370 strd r5, r5, [sp, 0x24]                           |         __asm ("strd r5, r5, [sp, 0x24]");
    0x00003374 ldr r0, [r4, 4]                                   |         r0 = *((r4 + 4));
    0x00003376 str r5, [sp, 0x20]                                |         var_20h_2 = r5;
    0x00003378 blx 0x1aa0                                        |         fcn_00001aa0 ();
    0x0000337c ldr r0, [r4, 8]                                   |         r0 = *((r4 + 8));
    0x0000337e str r5, [r4, 4]                                   |         *((r4 + 4)) = r5;
    0x00003380 blx 0x1aa0                                        |         fcn_00001aa0 ();
    0x00003384 ldr r0, [r4, 0xc]                                 |         r0 = *((r4 + 0xc));
    0x00003386 str r5, [r4, 8]                                   |         *((r4 + 8)) = r5;
    0x00003388 blx 0x1aa0                                        |         fcn_00001aa0 ();
    0x0000338c ldr r0, [r4]                                      |         r0 = *(r4);
    0x0000338e str r5, [r4, 0xc]                                 |         *((r4 + 0xc)) = r5;
    0x00003390 blx 0x1900                                        |         r0 = unit_dbus_path_from_name ();
    0x00003394 mov r6, r0                                        |         r6 = r0;
    0x00003396 cmp r0, 0                                         |         
    0x00003398 bne 0x3344                                        |         
                                                                 |     }
    0x0000339a mvn r4, 0xb                                       |     r4 = ~0xb;
                                                                 |     do {
    0x0000339e mov r0, r6                                        |         r0 = r6;
    0x000033a0 blx 0x1aa0                                        |         fcn_00001aa0 ();
    0x000033a4 mov r0, r8                                        |         r0 = r8;
    0x000033a6 blx 0x1c00                                        |         sd_bus_emit_properties_changed ();
    0x000033aa b 0x33ae                                          |         goto label_26;
                                                                 | label_24:
    0x000033ac movs r4, 0                                        |         r4 = 0;
                                                                 | label_26:
    0x000033ae ldr r2, [pc, 0x94]                                |         
    0x000033b0 ldr r3, [pc, 0x84]                                |         r3 = *(0x3438);
    0x000033b2 add r2, pc                                        |         r2 = 0x67fc;
    0x000033b4 ldr r3, [r2, r3]                                  |         r3 = *(0x67fc);
    0x000033b6 ldr r2, [r3]                                      |         r2 = *(0x67fc);
    0x000033b8 ldr r3, [sp, 0x2c]                                |         r3 = var_2ch;
    0x000033ba eors r2, r3                                       |         r2 ^= r3;
    0x000033bc mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000033c0 bne 0x3430                                        |             goto label_27;
                                                                 |         }
    0x000033c2 mov r0, r4                                        |         r0 = r4;
    0x000033c4 add sp, 0x34                                      |         
    0x000033c6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_22:
    0x000033ca ldr r1, [pc, 0x7c]                                |         
    0x000033cc movw r2, 0x199                                    |         r2 = 0x199;
    0x000033d0 ldr r3, [pc, 0x78]                                |         
    0x000033d2 ldr r0, [pc, 0x7c]                                |         
    0x000033d4 add r1, pc                                        |         r1 = 0x6822;
    0x000033d6 add r3, pc                                        |         r3 = 0x6826;
    0x000033d8 adds r1, 7                                        |         r1 += 7;
    0x000033da add r0, pc                                        |         r0 = 0x6830;
    0x000033dc blx 0x1bac                                        |         path_extend_internal ();
                                                                 | label_25:
    0x000033e0 mov r1, fp                                        |         r1 = fp;
    0x000033e2 mov r0, r8                                        |         r0 = r8;
    0x000033e4 ldr r4, [r4]                                      |         r4 = *(r4);
    0x000033e6 blx 0x18f4                                        |         bus_error_message ();
    0x000033ea ldr r2, [pc, 0x68]                                |         
    0x000033ec mov r1, fp                                        |         r1 = fp;
    0x000033ee str r0, [sp, 0x18]                                |         var_18h = r0;
    0x000033f0 ldr r3, [pc, 0x64]                                |         
    0x000033f2 add r2, pc                                        |         r2 = 0x684c;
    0x000033f4 ldr r0, [pc, 0x64]                                |         
    0x000033f6 str r2, [sp]                                      |         *(sp) = r2;
    0x000033f8 ldr r2, [pc, 0x64]                                |         
    0x000033fa add r3, pc                                        |         r3 = 0x6856;
    0x000033fc add r0, pc                                        |         r0 = 0x685c;
    0x000033fe str r4, [sp, 8]                                   |         var_8h = r4;
    0x00003400 str r3, [sp, 4]                                   |         var_4h = r3;
    0x00003402 movw r3, 0x1b9                                    |         r3 = 0x1b9;
    0x00003406 add r2, pc                                        |         r2 = 0x686a;
    0x00003408 str r0, [sp, 0x14]                                |         var_14h = r0;
    0x0000340a adds r2, 7                                        |         r2 += 7;
    0x0000340c movs r0, 3                                        |         r0 = 3;
    0x0000340e strd r5, r5, [sp, 0xc]                            |         __asm ("strd r5, r5, [var_ch]");
    0x00003412 blx 0x1b54                                        |         r0 = fcn_00001b54 ();
    0x00003416 mov r4, r0                                        |         r4 = r0;
    0x00003418 b 0x339e                                          |         
                                                                 |     } while (1);
                                                                 | label_23:
    0x0000341a ldr r1, [pc, 0x48]                                |     
    0x0000341c mov.w r2, 0x19a                                   |     r2 = 0x19a;
    0x00003420 ldr r3, [pc, 0x44]                                |     
    0x00003422 ldr r0, [pc, 0x48]                                |     
    0x00003424 add r1, pc                                        |     r1 = 0x688e;
    0x00003426 add r3, pc                                        |     r3 = 0x6892;
    0x00003428 adds r1, 7                                        |     r1 += 7;
    0x0000342a add r0, pc                                        |     r0 = 0x689c;
    0x0000342c blx 0x1bac                                        |     path_extend_internal ();
                                                                 | label_27:
    0x00003430 blx 0x1c60                                        |     bus_add_implementation ();
    0x00003434 cmp r3, 0x18                                      |     
    0x00003436 movs r1, r0                                       |     r1 = r0;
    0x00003438 lsls r0, r1, 7                                    |     r0 = r1 << 7;
    0x0000343a movs r0, r0                                       |     
    0x0000343c movs r7, 0xc2                                     |     r7 = 0xc2;
    0x0000343e movs r1, r0                                       |     r1 = r0;
    0x00003440 adds r0, r1, r3                                   |     r0 = r1 + r3;
    0x00003442 movs r0, r0                                       |     
    0x00003444 cmp r2, 0x62                                      |     
    0x00003446 movs r1, r0                                       |     r1 = r0;
    0x00003448 asrs r0, r0, 0x10                                 |     r0 >>= 0x10;
    0x0000344a movs r0, r0                                       |     
    0x0000344c movs r2, 0xe6                                     |     r2 = 0xe6;
    0x0000344e movs r0, r0                                       |     
    0x00003450 asrs r6, r4, 0x14                                 |     r6 = r4 >> 0x14;
    0x00003452 movs r0, r0                                       |     
    0x00003454 movs r3, 0xe6                                     |     r3 = 0xe6;
    0x00003456 movs r0, r0                                       |     
    0x00003458 asrs r6, r3, 0x10                                 |     r6 = r3 >> 0x10;
    0x0000345a movs r0, r0                                       |     
    0x0000345c adds r0, r5, r0                                   |     r0 = r5 + r0;
    0x0000345e movs r0, r0                                       |     
    0x00003460 asrs r6, r1, 0xf                                  |     r6 = r1 >> 0xf;
    0x00003462 movs r0, r0                                       |     
    0x00003464 asrs r0, r6, 0xe                                  |     r0 = r6 >> 0xe;
    0x00003466 movs r0, r0                                       |     
    0x00003468 movs r2, 0x96                                     |     r2 = 0x96;
    0x0000346a movs r0, r0                                       |     
    0x0000346c asrs r2, r1, 0xf                                  |     r2 = r1 >> 0xf;
    0x0000346e movs r0, r0                                       |     
    0x00003470 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x00003474 mov r5, r2                                        |     r5 = r2;
    0x00003476 ldr r2, [pc, 0x314]                               |     
    0x00003478 mov r6, r0                                        |     r6 = r0;
    0x0000347a sub sp, 0xa0                                      |     
    0x0000347c mov r4, r1                                        |     r4 = r1;
    0x0000347e ldr r3, [pc, 0x310]                               |     r3 = *(0x3792);
    0x00003480 add r2, pc                                        |     r2 = 0x6c12;
    0x00003482 ldr r3, [r2, r3]                                  |     
    0x00003484 ldr r3, [r3]                                      |     r3 = *(0x6c12);
    0x00003486 str r3, [sp, 0x9c]                                |     var_9ch = r3;
    0x00003488 mov.w r3, 0                                       |     r3 = 0;
    0x0000348c blx 0x1a64                                        |     fcn_00001a64 ();
    0x00003490 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00003492 beq 0x3592                                        |         goto label_28;
                                                                 |     }
    0x00003494 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00003496 beq.w 0x35ce                                      |         goto label_29;
                                                                 |     }
    0x0000349a ldr r7, [r4, 0x10]                                |     r7 = *((r4 + 0x10));
                                                                 |     if (r7 != 0) {
    0x0000349c cbz r7, 0x34c8                                    |         
    0x0000349e ldr r2, [pc, 0x2f4]                               |         
    0x000034a0 ldr r3, [pc, 0x2ec]                               |         r3 = *(0x3790);
    0x000034a2 add r2, pc                                        |         r2 = 0x6c3c;
    0x000034a4 ldr r3, [r2, r3]                                  |         r3 = *(0x6c3c);
    0x000034a6 ldr r2, [r3]                                      |         r2 = *(0x6c3c);
    0x000034a8 ldr r3, [sp, 0x9c]                                |         r3 = var_9ch;
    0x000034aa eors r2, r3                                       |         r2 ^= r3;
    0x000034ac mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000034b0 bne.w 0x3788                                      |             goto label_30;
                                                                 |         }
    0x000034b4 ldr r2, [pc, 0x2e0]                               |         
    0x000034b6 mov r0, r5                                        |         r0 = r5;
    0x000034b8 ldr r1, [pc, 0x2e0]                               |         
    0x000034ba add r2, pc                                        |         r2 = 0x6c56;
    0x000034bc add r1, pc                                        |         r1 = 0x6c5c;
    0x000034be add sp, 0xa0                                      |         
    0x000034c0 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |         
    0x000034c4 b.w 0x1b6c                                        |         goto label_0;
                                                                 |     }
    0x000034c8 mov r1, r0                                        |     r1 = r0;
    0x000034ca mov r2, r6                                        |     r2 = r6;
    0x000034cc mov r0, r4                                        |     r0 = r4;
    0x000034ce bl 0x32f0                                         |     r0 = fcn_000032f0 (r0, r1, r2);
    0x000034d2 subs r1, r0, 0                                    |     r1 = r0 - 0;
                                                                 |     if (r1 < r0) {
    0x000034d4 blt 0x35a8                                        |         goto label_31;
                                                                 |     }
    0x000034d6 mov r0, r4                                        |     r0 = r4;
    0x000034d8 bl 0x3088                                         |     r0 = fcn_00003088 (r0);
    0x000034dc cmp r0, 0                                         |     
                                                                 |     if (r0 > 0) {
    0x000034de bgt 0x3568                                        |         goto label_32;
                                                                 |     }
    0x000034e0 movs r0, 1                                        |     r0 = 1;
    0x000034e2 blx 0x1c78                                        |     log_internal ();
    0x000034e6 strd r0, r1, [sp, 0x38]                           |     __asm ("strd r0, r1, [sp, 0x38]");
    0x000034ea add r3, sp, 0x2c                                  |     r3 += var_2ch_3;
    0x000034ec ldr r1, [pc, 0x2b0]                               |     
    0x000034ee add r2, sp, 0x30                                  |     r2 += var_30h_2;
    0x000034f0 str r3, [sp]                                      |     *(sp) = r3;
    0x000034f2 mov r0, r6                                        |     r0 = r6;
    0x000034f4 add r3, sp, 0x28                                  |     r3 += var_28h_2;
    0x000034f6 add r1, pc                                        |     r1 = 0x6c9a;
    0x000034f8 blx 0x1a7c                                        |     r0 = fcn_00001a7c ();
    0x000034fc cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000034fe blt 0x354c                                        |         goto label_1;
                                                                 |     }
    0x00003500 ldr r1, [sp, 0x28]                                |     r1 = var_28h_2;
    0x00003502 ldr r2, [sp, 0x30]                                |     r2 = var_30h_2;
    0x00003504 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x00003506 cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x00003508 bne 0x35e4                                        |         goto label_33;
                                                                 |     }
    0x0000350a cmp r2, 1                                         |     
    0x0000350c sbcs r1, r3, 0                                    |     __asm ("sbcs r1, r3, 0");
                                                                 |     if (r2 < 1) {
    0x00003510 blt.w 0x36f8                                      |         goto label_34;
                                                                 |     }
                                                                 |     do {
                                                                 | label_2:
    0x00003514 add r7, sp, 0x40                                  |         r7 += var_40h;
    0x00003516 mov r0, r7                                        |         r0 = r7;
    0x00003518 blx 0x1a18                                        |         fcn_00001a18 ();
    0x0000351c add.w r3, r4, 8                                   |         r3 = r4 + 8;
    0x00003520 ldr r2, [pc, 0x280]                               |         
    0x00003522 strd r3, r5, [sp, 8]                              |         __asm ("strd r3, r5, [sp, 8]");
    0x00003526 mov.w r3, -1                                      |         r3 = -1;
    0x0000352a str r3, [sp, 4]                                   |         var_4h_4 = r3;
    0x0000352c movs r1, 0x19                                     |         r1 = 0x19;
    0x0000352e ldr r3, [sp, 0x2c]                                |         r3 = var_2ch_3;
    0x00003530 add r2, pc                                        |         r2 = 0x6cd8;
    0x00003532 mov r0, r6                                        |         r0 = r6;
    0x00003534 subs r3, 0                                        |         
    0x00003536 it ne                                             |         
                                                                 |         if (r3 == 0) {
    0x00003538 movne r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x0000353a str r3, [sp]                                      |         *(sp) = r3;
    0x0000353c movs r3, 0                                        |         r3 = 0;
    0x0000353e blx 0x1da4                                        |         r0 = unit_name_is_valid ();
    0x00003542 cmp r0, 0                                         |         
                                                                 |         if (r0 >= 0) {
    0x00003544 blt 0x354c                                        |             
    0x00003546 it eq                                             |             
                                                                 |             if (r0 != 0) {
    0x00003548 moveq r0, 1                                       |                 r0 = 1;
                                                                 |             }
                                                                 |             if (r0 != 0) {
    0x0000354a bne 0x362a                                        |                 goto label_35;
                                                                 |             }
                                                                 |         }
                                                                 | label_1:
    0x0000354c ldr r2, [pc, 0x258]                               |         
    0x0000354e ldr r3, [pc, 0x240]                               |         r3 = *(0x3792);
    0x00003550 add r2, pc                                        |         r2 = 0x6cfc;
    0x00003552 ldr r3, [r2, r3]                                  |         r3 = *(0x6cfc);
    0x00003554 ldr r2, [r3]                                      |         r2 = *(0x6cfc);
    0x00003556 ldr r3, [sp, 0x9c]                                |         r3 = var_9ch;
    0x00003558 eors r2, r3                                       |         r2 ^= r3;
    0x0000355a mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0000355e bne.w 0x3788                                      |             goto label_30;
                                                                 |         }
    0x00003562 add sp, 0xa0                                      |         
    0x00003564 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_32:
    0x00003568 ldr r2, [pc, 0x240]                               |         
    0x0000356a ldr r3, [pc, 0x224]                               |         r3 = *(0x3792);
    0x0000356c add r2, pc                                        |         r2 = 0x6d1c;
    0x0000356e ldr r3, [r2, r3]                                  |         r3 = *(0x6d1c);
    0x00003570 ldr r2, [r3]                                      |         r2 = *(0x6d1c);
    0x00003572 ldr r3, [sp, 0x9c]                                |         r3 = var_9ch;
    0x00003574 eors r2, r3                                       |         r2 ^= r3;
    0x00003576 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0000357a bne.w 0x3788                                      |             goto label_30;
                                                                 |         }
    0x0000357e ldr r2, [pc, 0x230]                               |         
    0x00003580 mov r0, r5                                        |         r0 = r5;
    0x00003582 ldr r1, [pc, 0x230]                               |         
    0x00003584 add r2, pc                                        |         r2 = 0x6d3a;
    0x00003586 add r1, pc                                        |         r1 = 0x6d40;
    0x00003588 add sp, 0xa0                                      |         
    0x0000358a pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |         
    0x0000358e b.w 0x1b6c                                        |         goto label_0;
                                                                 | label_28:
    0x00003592 ldr r1, [pc, 0x224]                               |         
    0x00003594 movw r2, 0x342                                    |         r2 = 0x342;
    0x00003598 ldr r3, [pc, 0x220]                               |         
    0x0000359a ldr r0, [pc, 0x224]                               |         
    0x0000359c add r1, pc                                        |         r1 = 0x6d5a;
    0x0000359e add r3, pc                                        |         r3 = 0x6d5e;
    0x000035a0 adds r1, 7                                        |         r1 += 7;
    0x000035a2 add r0, pc                                        |         r0 = 0x6d68;
    0x000035a4 blx 0x1bac                                        |         path_extend_internal ();
                                                                 | label_31:
    0x000035a8 ldr r2, [pc, 0x218]                               |         
    0x000035aa ldr r3, [pc, 0x1e4]                               |         r3 = *(0x3792);
    0x000035ac add r2, pc                                        |         r2 = 0x6d74;
    0x000035ae ldr r3, [r2, r3]                                  |         r3 = *(0x6d74);
    0x000035b0 ldr r2, [r3]                                      |         r2 = *(0x6d74);
    0x000035b2 ldr r3, [sp, 0x9c]                                |         r3 = var_9ch;
    0x000035b4 eors r2, r3                                       |         r2 ^= r3;
    0x000035b6 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000035ba bne.w 0x3788                                      |             goto label_30;
                                                                 |         }
    0x000035be ldr r2, [pc, 0x208]                               |         
    0x000035c0 mov r0, r5                                        |         r0 = r5;
    0x000035c2 add r2, pc                                        |         r2 = 0x6d90;
    0x000035c4 add sp, 0xa0                                      |         
    0x000035c6 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |         
    0x000035ca b.w 0x1978                                        |         void (*0x1978)() ();
                                                                 | label_29:
    0x000035ce ldr r1, [pc, 0x1fc]                               |         
    0x000035d0 movw r2, 0x343                                    |         r2 = 0x343;
    0x000035d4 ldr r3, [pc, 0x1f8]                               |         
    0x000035d6 ldr r0, [pc, 0x1fc]                               |         
    0x000035d8 add r1, pc                                        |         r1 = 0x6daa;
    0x000035da add r3, pc                                        |         r3 = 0x6dae;
    0x000035dc adds r1, 7                                        |         r1 += 7;
    0x000035de add r0, pc                                        |         r0 = 0x6db8;
    0x000035e0 blx 0x1bac                                        |         path_extend_internal ();
                                                                 | label_33:
    0x000035e4 orrs r2, r3                                       |         r2 |= r3;
                                                                 |         if (r2 == r3) {
    0x000035e6 beq.w 0x36ee                                      |             goto label_36;
                                                                 |         }
    0x000035ea mov r0, r7                                        |         r0 = r7;
    0x000035ec mov.w r8, 0                                       |         r8 = 0;
    0x000035f0 blx 0x1c78                                        |         log_internal ();
    0x000035f4 ldrd ip, r7, [sp, 0x30]                           |         __asm ("ldrd ip, r7, [var_30h_2]");
    0x000035f8 mov lr, r8                                        |         lr = r8;
    0x000035fa adds.w r2, ip, r0                                 |         r2 = ip + r0;
    0x000035fe adcs.w r3, r7, r1                                 |         __asm ("adcs.w r3, r7, r1");
    0x00003602 it hs                                             |         
                                                                 |         if (r2 < ip) {
    0x00003604 movhs r8, 1                                       |             r8 = 1;
                                                                 |         }
    0x00003608 cmp.w ip, 1                                       |         
    0x0000360c sbcs ip, r7, 0                                    |         __asm ("sbcs ip, r7, 0");
                                                                 |         if (ip < 1) {
    0x00003610 blt 0x3708                                        |             goto label_37;
                                                                 |         }
    0x00003612 orrs.w lr, lr, r8                                 |         lr |= r8;
    0x00003616 beq.w 0x3514                                      |         
                                                                 |     } while (lr == lr);
                                                                 | label_3:
    0x0000361a ldr r2, [pc, 0x1bc]                               |     
    0x0000361c mov r0, r5                                        |     r0 = r5;
    0x0000361e ldr r1, [pc, 0x1bc]                               |     
    0x00003620 add r2, pc                                        |     r2 = 0x6dfe;
    0x00003622 add r1, pc                                        |     r1 = 0x6e04;
    0x00003624 blx 0x1b70                                        |     sd_notifyf ();
    0x00003628 b 0x354c                                          |     goto label_1;
                                                                 | label_35:
    0x0000362a add r1, sp, 0x38                                  |     r1 += var_38h_2;
    0x0000362c mov r0, r6                                        |     r0 = r6;
    0x0000362e blx 0x1cfc                                        |     r0 = timegm ();
    0x00003632 adds.w sb, r0, 0x3d                               |     sb = r0 + 0x3d;
    0x00003636 it ne                                             |     
                                                                 |     if (sb == r0) {
    0x00003638 movne sb, 1                                       |         sb = 1;
                                                                 |     }
    0x0000363c ands.w sb, sb, r0, lsr 31                         |     sb &= (r0 >> 31);
                                                                 |     if (sb != sb) {
    0x00003640 bne 0x354c                                        |         goto label_1;
                                                                 |     }
    0x00003642 mov r0, r7                                        |     r0 = r7;
    0x00003644 blx 0x1cc0                                        |     r0 = sd_bus_message_append_strv ();
    0x00003648 mov r8, r0                                        |     r8 = r0;
    0x0000364a movs r0, 1                                        |     r0 = 1;
    0x0000364c mov sl, r1                                        |     sl = r1;
    0x0000364e blx 0x1c78                                        |     log_internal ();
    0x00003652 ldr r3, [sp, 0x38]                                |     r3 = var_38h_2;
    0x00003654 adds.w r8, r8, r0                                 |     r8 += r0;
    0x00003658 adc.w sl, sl, r1                                  |     __asm ("adc.w sl, sl, r1");
    0x0000365c mov r0, r7                                        |     r0 = r7;
    0x0000365e subs.w r2, r8, r3                                 |     r2 = r8 - r3;
    0x00003662 ldr r3, [sp, 0x3c]                                |     r3 = var_3ch;
    0x00003664 sbc.w r3, sl, r3                                  |     __asm ("sbc.w r3, sl, r3");
    0x00003668 blx 0x1a18                                        |     fcn_00001a18 ();
    0x0000366c mov r1, r7                                        |     r1 = r7;
    0x0000366e mov r0, sb                                        |     r0 = sb;
    0x00003670 blx 0x1c9c                                        |     r0 = get_timezone ();
    0x00003674 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00003676 blt 0x371e                                        |         goto label_38;
                                                                 |     }
    0x00003678 ldrb r2, [r4, 4]                                  |     r2 = *((r4 + 4));
    0x0000367a add r4, sp, 0x48                                  |     r4 += var_48h;
    0x0000367c mov r1, r4                                        |     r1 = r4;
    0x0000367e mov r0, r7                                        |     r0 = r7;
    0x00003680 eor r2, r2, 1                                     |     r2 ^= 1;
    0x00003684 blx 0x1d14                                        |     sd_event_unref ();
    0x00003688 mov r0, r4                                        |     r0 = r4;
    0x0000368a blx 0x1a30                                        |     r0 = fcn_00001a30 ();
    0x0000368e subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 < r0) {
    0x00003690 blt 0x373a                                        |         goto label_39;
                                                                 |     }
                                                                 | label_4:
    0x00003692 mov r0, r7                                        |     r0 = r7;
    0x00003694 blx 0x1cc0                                        |     sd_bus_message_append_strv ();
    0x00003698 movs r3, 0                                        |     r3 = 0;
    0x0000369a mov r5, r0                                        |     r5 = r0;
    0x0000369c mov r4, r1                                        |     r4 = r1;
    0x0000369e mov r2, r0                                        |     r2 = r0;
    0x000036a0 str r3, [sp]                                      |     *(sp) = r3;
    0x000036a2 add r0, sp, 0x74                                  |     r0 += var_74h;
    0x000036a4 mov r3, r1                                        |     r3 = r1;
    0x000036a6 movs r1, 0x26                                     |     r1 = 0x26;
    0x000036a8 blx 0x1d50                                        |     r0 = sd_bus_slot_unref ();
    0x000036ac cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000036ae beq 0x3762                                        |         goto label_40;
                                                                 |     }
                                                                 | label_5:
    0x000036b0 ldr r3, [pc, 0x12c]                               |     
    0x000036b2 str r0, [sp, 0x1c]                                |     var_1ch_2 = r0;
    0x000036b4 ldr r2, [pc, 0x12c]                               |     
    0x000036b6 add r3, pc                                        |     r3 = 0x6e9a;
    0x000036b8 ldr r1, [pc, 0x12c]                               |     
    0x000036ba str r3, [sp, 8]                                   |     var_18h_2 = r3;
    0x000036bc ldr r0, [pc, 0x12c]                               |     
    0x000036be add r2, pc                                        |     r2 = 0x6ea6;
    0x000036c0 ldr r3, [pc, 0x12c]                               |     
    0x000036c2 add r1, pc                                        |     r1 = 0x6eae;
    0x000036c4 str r5, [sp, 0x10]                                |     var_10h_4 = r5;
    0x000036c6 movs r5, 0                                        |     r5 = 0;
    0x000036c8 add r0, pc                                        |     r0 = 0x6eb8;
    0x000036ca adds r2, 7                                        |     r2 += 7;
    0x000036cc add r3, pc                                        |     r3 = 0x6ec0;
    0x000036ce str r0, [sp, 0x18]                                |     var_18h_3 = r0;
    0x000036d0 strd r3, r1, [sp]                                 |     __asm ("strd r3, r1, [sp]");
    0x000036d4 movs r0, 6                                        |     r0 = 6;
    0x000036d6 mov r1, r5                                        |     r1 = r5;
    0x000036d8 movw r3, 0x38d                                    |     r3 = 0x38d;
    0x000036dc str r4, [sp, 0x14]                                |     var_14h_2 = r4;
    0x000036de str r5, [sp, 0x20]                                |     var_20h = r5;
    0x000036e0 blx 0x1c24                                        |     sd_bus_default_system ()
    0x000036e4 mov r1, r5                                        |     r1 = r5;
    0x000036e6 mov r0, r6                                        |     r0 = r6;
    0x000036e8 blx 0x1924                                        |     sd_bus_reply_method_return ();
    0x000036ec b 0x354c                                          |     goto label_1;
                                                                 | label_36:
    0x000036ee mov r1, r7                                        |     r1 = r7;
    0x000036f0 mov r0, r6                                        |     r0 = r6;
    0x000036f2 blx 0x1924                                        |     sd_bus_reply_method_return ();
    0x000036f6 b 0x354c                                          |     goto label_1;
                                                                 | label_34:
    0x000036f8 ldr r2, [pc, 0xf8]                                |     
    0x000036fa mov r0, r5                                        |     r0 = r5;
    0x000036fc ldr r1, [pc, 0xf8]                                |     
    0x000036fe add r2, pc                                        |     r2 = 0x6ef6;
    0x00003700 add r1, pc                                        |     r1 = 0x6efc;
    0x00003702 blx 0x1b70                                        |     sd_notifyf ();
    0x00003706 b 0x354c                                          |     goto label_1;
                                                                 | label_37:
    0x00003708 lsrs r7, r7, 0x1f                                 |     r7 >>= 0x1f;
    0x0000370a cmp r0, r2                                        |     
    0x0000370c sbcs r1, r3                                       |     __asm ("sbcs r1, r3");
    0x0000370e and r7, r7, 1                                     |     r7 &= 1;
    0x00003712 it hs                                             |     
                                                                 |     if (r0 < r2) {
    0x00003714 movhs r7, 0                                       |         r7 = 0;
                                                                 |     }
    0x00003716 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00003718 beq.w 0x3514                                      |         goto label_2;
                                                                 |     }
    0x0000371c b 0x361a                                          |     goto label_3;
                                                                 | label_38:
    0x0000371e blx 0x1d8c                                        |     r0 = log_oom_internal ();
    0x00003722 mov r4, r0                                        |     r4 = r0;
    0x00003724 blx 0x19a0                                        |     r0 = fcn_000019a0 ();
    0x00003728 cmp r0, 2                                         |     
    0x0000372a ldr r1, [r4]                                      |     r1 = *(r4);
                                                                 |     if (r0 > 2) {
    0x0000372c bgt 0x3768                                        |         goto label_41;
                                                                 |     }
                                                                 | label_6:
    0x0000372e ldr r2, [pc, 0xcc]                                |     
    0x00003730 mov r0, r5                                        |     r0 = r5;
    0x00003732 add r2, pc                                        |     r2 = 0x6f34;
    0x00003734 blx 0x197c                                        |     fcn_0000197c ();
    0x00003738 b 0x354c                                          |     goto label_1;
                                                                 | label_39:
    0x0000373a blx 0x19a0                                        |     r0 = fcn_000019a0 ();
    0x0000373e cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x00003740 ble 0x3692                                        |         goto label_4;
                                                                 |     }
    0x00003742 ldr r3, [pc, 0xbc]                                |     
    0x00003744 mov r1, r4                                        |     r1 = r4;
    0x00003746 ldr r2, [pc, 0xbc]                                |     
    0x00003748 movs r0, 7                                        |     r0 = 7;
    0x0000374a add r3, pc                                        |     r3 = 0x6f50;
    0x0000374c str r3, [sp, 4]                                   |     var_4h_4 = r3;
    0x0000374e add r2, pc                                        |     r2 = 0x6f58;
    0x00003750 ldr r3, [pc, 0xb4]                                |     
    0x00003752 adds r2, 7                                        |     r2 += 7;
    0x00003754 add r3, pc                                        |     r3 = 0x6f60;
    0x00003756 str r3, [sp]                                      |     *(sp) = r3;
    0x00003758 movw r3, 0x38b                                    |     r3 = 0x38b;
    0x0000375c blx 0x1c84                                        |     extract_first_word ();
    0x00003760 b 0x3692                                          |     goto label_4;
                                                                 | label_40:
    0x00003762 ldr r0, [pc, 0xa8]                                |     
    0x00003764 add r0, pc                                        |     r0 = 0x6f76;
    0x00003766 b 0x36b0                                          |     goto label_5;
                                                                 | label_41:
    0x00003768 ldr r3, [pc, 0xa4]                                |     
    0x0000376a movs r0, 3                                        |     r0 = 3;
    0x0000376c ldr r2, [pc, 0xa4]                                |     
    0x0000376e add r3, pc                                        |     r3 = 0x6f82;
    0x00003770 str r3, [sp, 4]                                   |     var_4h_4 = r3;
    0x00003772 add r2, pc                                        |     r2 = 0x6f8a;
    0x00003774 ldr r3, [pc, 0xa0]                                |     
    0x00003776 adds r2, 7                                        |     r2 += 7;
    0x00003778 add r3, pc                                        |     r3 = 0x6f94;
    0x0000377a str r3, [sp]                                      |     *(sp) = r3;
    0x0000377c movw r3, 0x382                                    |     r3 = 0x382;
    0x00003780 blx 0x1c84                                        |     extract_first_word ();
    0x00003784 ldr r1, [r4]                                      |     r1 = *(r4);
    0x00003786 b 0x372e                                          |     goto label_6;
                                                                 | label_30:
    0x00003788 blx 0x1c60                                        |     bus_add_implementation ();
    0x0000378c cmp r1, 0x94                                      |     
    0x0000378e movs r1, r0                                       |     r1 = r0;
    0x00003790 lsls r0, r1, 7                                    |     r0 = r1 << 7;
    0x00003792 movs r0, r0                                       |     
    0x00003794 cmp r1, 0x72                                      |     
    0x00003796 movs r1, r0                                       |     r1 = r0;
    0x00003798 asrs r2, r2, 0x1e                                 |     r2 >>= 0x1e;
    0x0000379a movs r0, r0                                       |     
    0x0000379c asrs r4, r7, 0x1e                                 |     r4 = r7 >> 0x1e;
    0x0000379e movs r0, r0                                       |     
    0x000037a0 adds r2, r0, r0                                   |     r2 = r0 + r0;
    0x000037a2 movs r0, r0                                       |     
    0x000037a4 asrs r0, r7, 0x1f                                 |     r0 = r7 >> 0x1f;
    0x000037a6 movs r0, r0                                       |     
    0x000037a8 cmp r0, 0xc4                                      |     
    0x000037aa movs r1, r0                                       |     r1 = r0;
    0x000037ac cmp r0, 0xa8                                      |     
    0x000037ae movs r1, r0                                       |     r1 = r0;
    0x000037b0 asrs r0, r1, 0x1d                                 |     r0 = r1 >> 0x1d;
    0x000037b2 movs r0, r0                                       |     
    0x000037b4 asrs r2, r6, 0x1b                                 |     r2 = r6 >> 0x1b;
    0x000037b6 movs r0, r0                                       |     
    0x000037b8 asrs r0, r7, 8                                    |     r0 = r7 >> 8;
    0x000037ba movs r0, r0                                       |     
    0x000037bc movs r0, 0x9a                                     |     r0 = 0x9a;
    0x000037be movs r0, r0                                       |     
    0x000037c0 asrs r6, r6, 0x1f                                 |     r6 >>= 0x1f;
    0x000037c2 movs r0, r0                                       |     
    0x000037c4 cmp r0, 0x68                                      |     
    0x000037c6 movs r1, r0                                       |     r1 = r0;
    0x000037c8 asrs r2, r5, 0x1b                                 |     r2 = r5 >> 0x1b;
    0x000037ca movs r0, r0                                       |     
    0x000037cc asrs r4, r7, 7                                    |     r4 = r7 >> 7;
    0x000037ce movs r0, r0                                       |     
    0x000037d0 movs r0, 0x5e                                     |     r0 = 0x5e;
    0x000037d2 movs r0, r0                                       |     
    0x000037d4 asrs r2, r4, 0xc                                  |     r2 = r4 >> 0xc;
    0x000037d6 movs r0, r0                                       |     
    0x000037d8 asrs r4, r6, 0x1b                                 |     r4 = r6 >> 0x1b;
    0x000037da movs r0, r0                                       |     
    0x000037dc asrs r6, r1, 0xc                                  |     r6 = r1 >> 0xc;
    0x000037de movs r0, r0                                       |     
    0x000037e0 asrs r2, r1, 0x1c                                 |     r2 = r1 >> 0x1c;
    0x000037e2 movs r0, r0                                       |     
    0x000037e4 asrs r6, r2, 4                                    |     r6 = r2 >> 4;
    0x000037e6 movs r0, r0                                       |     
    0x000037e8 asrs r6, r1, 0x1c                                 |     r6 = r1 >> 0x1c;
    0x000037ea movs r0, r0                                       |     
    0x000037ec asrs r4, r2, 0x1b                                 |     r4 = r2 >> 0x1b;
    0x000037ee movs r0, r0                                       |     
    0x000037f0 movs r0, 0x64                                     |     r0 = 0x64;
    0x000037f2 movs r0, r0                                       |     
    0x000037f4 asrs r6, r7, 0x17                                 |     r6 = r7 >> 0x17;
    0x000037f6 movs r0, r0                                       |     
    0x000037f8 asrs r0, r6, 8                                    |     r0 = r6 >> 8;
    0x000037fa movs r0, r0                                       |     
    0x000037fc asrs r2, r3, 0x18                                 |     r2 = r3 >> 0x18;
    0x000037fe movs r0, r0                                       |     
    0x00003800 asrs r2, r4, 0x18                                 |     r2 = r4 >> 0x18;
    0x00003802 movs r0, r0                                       |     
    0x00003804 asrs r6, r0, 2                                    |     r6 = r0 >> 2;
    0x00003806 movs r0, r0                                       |     
    0x00003808 subs r4, r3, 7                                    |     r4 = r3 - 7;
    0x0000380a movs r0, r0                                       |     
    0x0000380c asrs r0, r4, 0x13                                 |     r0 = r4 >> 0x13;
    0x0000380e movs r0, r0                                       |     
    0x00003810 asrs r6, r3, 0x17                                 |     r6 = r3 >> 0x17;
    0x00003812 movs r0, r0                                       |     
    0x00003814 asrs r2, r4, 1                                    |     r2 = r4 >> 1;
    0x00003816 movs r0, r0                                       |     
    0x00003818 subs r0, r7, 6                                    |     r0 = r7 - 6;
    0x0000381a movs r0, r0                                       |     
    0x0000381c push {r3, r4, r5, lr}                             |     
    0x0000381e ldrd r5, r4, [sp, 0x10]                           |     __asm ("ldrd r5, r4, [var_10h]");
    0x00003822 ldr r2, [sp, 0x18]                                |     r2 = var_18h_2;
                                                                 |     if (r4 != 0) {
    0x00003824 cbz r4, 0x3876                                    |         
                                                                 |         if (r0 == 0) {
    0x00003826 cbz r0, 0x388c                                    |             goto label_42;
                                                                 |         }
    0x00003828 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0000382a beq 0x38a2                                        |             goto label_43;
                                                                 |         }
    0x0000382c cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x0000382e beq 0x38b8                                        |             goto label_44;
                                                                 |         }
    0x00003830 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x00003832 beq 0x38ce                                        |             goto label_45;
                                                                 |         }
    0x00003834 ldr r3, [r4, 0x10]                                |         r3 = *((r4 + 0x10));
                                                                 |         if (r3 != 0) {
    0x00003836 cbz r3, 0x3848                                    |             
    0x00003838 ldr r1, [pc, 0xa8]                                |             
    0x0000383a mov r0, r5                                        |             r0 = r5;
    0x0000383c movs r2, 1                                        |             r2 = 1;
    0x0000383e pop.w {r3, r4, r5, lr}                            |             
    0x00003842 add r1, pc                                        |             r1 = 0x712a;
    0x00003844 b.w 0x1a48                                        |             goto label_7;
                                                                 |         }
    0x00003848 mov r1, r0                                        |         r1 = r0;
    0x0000384a mov r2, r5                                        |         r2 = r5;
    0x0000384c mov r0, r4                                        |         r0 = r4;
    0x0000384e bl 0x32f0                                         |         r0 = fcn_000032f0 (r0, r1, r2);
    0x00003852 cmp r0, 0                                         |         
                                                                 |         if (r0 >= 0) {
    0x00003854 blt 0x3874                                        |             
    0x00003856 mov r0, r4                                        |             r0 = r4;
    0x00003858 bl 0x3088                                         |             fcn_00003088 (r0);
    0x0000385c ldr r1, [pc, 0x88]                                |             
    0x0000385e cmp r0, 0                                         |             
    0x00003860 it le                                             |             
                                                                 |             if (r0 > 0) {
    0x00003862 movle r2, 0                                       |                 r2 = 0;
                                                                 |             }
    0x00003864 mov r0, r5                                        |             r0 = r5;
    0x00003866 it gt                                             |             
                                                                 |             if (r0 <= 0) {
    0x00003868 movgt r2, 1                                       |                 r2 = 1;
                                                                 |             }
    0x0000386a pop.w {r3, r4, r5, lr}                            |             
    0x0000386e add r1, pc                                        |             r1 = 0x715a;
    0x00003870 b.w 0x1a48                                        |             goto label_7;
                                                                 |         }
    0x00003874 pop {r3, r4, r5, pc}                              |         
                                                                 |     }
    0x00003876 ldr r1, [pc, 0x74]                                |     
    0x00003878 movw r2, 0x282                                    |     r2 = 0x282;
    0x0000387c ldr r3, [pc, 0x70]                                |     
    0x0000387e ldr r0, [pc, 0x74]                                |     
    0x00003880 add r1, pc                                        |     r1 = 0x7172;
    0x00003882 add r3, pc                                        |     r3 = 0x7176;
    0x00003884 adds r1, 7                                        |     r1 += 7;
    0x00003886 add r0, pc                                        |     r0 = 0x7180;
    0x00003888 blx 0x1bac                                        |     path_extend_internal ();
                                                                 | label_42:
    0x0000388c ldr r1, [pc, 0x68]                                |     
    0x0000388e movw r2, 0x283                                    |     r2 = 0x283;
    0x00003892 ldr r3, [pc, 0x68]                                |     
    0x00003894 ldr r0, [pc, 0x68]                                |     
    0x00003896 add r1, pc                                        |     r1 = 0x7192;
    0x00003898 add r3, pc                                        |     r3 = 0x719a;
    0x0000389a adds r1, 7                                        |     r1 += 7;
    0x0000389c add r0, pc                                        |     r0 = 0x71a0;
    0x0000389e blx 0x1bac                                        |     path_extend_internal ();
                                                                 | label_43:
    0x000038a2 ldr r1, [pc, 0x60]                                |     
    0x000038a4 mov.w r2, 0x284                                   |     r2 = 0x284;
    0x000038a8 ldr r3, [pc, 0x5c]                                |     
    0x000038aa ldr r0, [pc, 0x60]                                |     
    0x000038ac add r1, pc                                        |     r1 = 0x71b6;
    0x000038ae add r3, pc                                        |     r3 = 0x71ba;
    0x000038b0 adds r1, 7                                        |     r1 += 7;
    0x000038b2 add r0, pc                                        |     r0 = 0x71c4;
    0x000038b4 blx 0x1bac                                        |     path_extend_internal ();
                                                                 | label_44:
    0x000038b8 ldr r1, [pc, 0x54]                                |     
    0x000038ba movw r2, 0x285                                    |     r2 = 0x285;
    0x000038be ldr r3, [pc, 0x54]                                |     
    0x000038c0 ldr r0, [pc, 0x54]                                |     
    0x000038c2 add r1, pc                                        |     r1 = 0x71d6;
    0x000038c4 add r3, pc                                        |     r3 = 0x71de;
    0x000038c6 adds r1, 7                                        |     r1 += 7;
    0x000038c8 add r0, pc                                        |     r0 = 0x71e4;
    0x000038ca blx 0x1bac                                        |     path_extend_internal ();
                                                                 | label_45:
    0x000038ce ldr r1, [pc, 0x4c]                                |     
    0x000038d0 movw r2, 0x286                                    |     r2 = 0x286;
    0x000038d4 ldr r3, [pc, 0x48]                                |     
    0x000038d6 ldr r0, [pc, 0x4c]                                |     
    0x000038d8 add r1, pc                                        |     r1 = 0x71fa;
    0x000038da add r3, pc                                        |     r3 = 0x71fe;
    0x000038dc adds r1, 7                                        |     r1 += 7;
    0x000038de add r0, pc                                        |     r0 = 0x7208;
    0x000038e0 blx 0x1bac                                        |     path_extend_internal ();
    0x000038e4 asrs r6, r1, 0x17                                 |     r6 = r1 >> 0x17;
    0x000038e6 movs r0, r0                                       |     
    0x000038e8 asrs r2, r4, 0x16                                 |     r2 = r4 >> 0x16;
    0x000038ea movs r0, r0                                       |     
    0x000038ec lsrs r4, r2, 0x1d                                 |     r4 = r2 >> 0x1d;
    0x000038ee movs r0, r0                                       |     
    0x000038f0 adds r6, r2, 5                                    |     r6 = r2 + 5;
    0x000038f2 movs r0, r0                                       |     
    0x000038f4 asrs r2, r7, 1                                    |     r2 = r7 >> 1;
    0x000038f6 movs r0, r0                                       |     
    0x000038f8 lsrs r6, r7, 0x1c                                 |     r6 = r7 >> 0x1c;
    0x000038fa movs r0, r0                                       |     
    0x000038fc adds r0, r0, 5                                    |     r0 += 5;
    0x000038fe movs r0, r0                                       |     
    0x00003900 lsrs r0, r3, 0x1d                                 |     r0 = r3 >> 0x1d;
    0x00003902 movs r0, r0                                       |     
    0x00003904 lsrs r0, r5, 0x1c                                 |     r0 = r5 >> 0x1c;
    0x00003906 movs r0, r0                                       |     
    0x00003908 adds r2, r5, 4                                    |     r2 = r5 + 4;
    0x0000390a movs r0, r0                                       |     
    0x0000390c asrs r2, r1, 0x15                                 |     r2 = r1 >> 0x15;
    0x0000390e movs r0, r0                                       |     
    0x00003910 lsrs r2, r2, 0x1c                                 |     r2 >>= 0x1c;
    0x00003912 movs r0, r0                                       |     
    0x00003914 adds r4, r2, 4                                    |     r4 = r2 + 4;
    0x00003916 movs r0, r0                                       |     
    0x00003918 asrs r0, r0, 0x15                                 |     r0 >>= 0x15;
    0x0000391a movs r0, r0                                       |     
    0x0000391c lsrs r4, r7, 0x1b                                 |     r4 = r7 >> 0x1b;
    0x0000391e movs r0, r0                                       |     
    0x00003920 adds r6, r7, 3                                    |     r6 = r7 + 3;
    0x00003922 movs r0, r0                                       |     
    0x00003924 lsrs r2, r3, 0x1c                                 |     r2 = r3 >> 0x1c;
    0x00003926 movs r0, r0                                       |     
    0x00003928 push {r4, lr}                                     |     
    0x0000392a ldr r4, [sp, 8]                                   |     r4 = var_8h_2;
                                                                 |     if (r0 != 0) {
    0x0000392c cbz r0, 0x3948                                    |         
                                                                 |         if (r4 == 0) {
    0x0000392e cbz r4, 0x395e                                    |             goto label_46;
                                                                 |         }
    0x00003930 movs r0, 0                                        |         r0 = 0;
    0x00003932 blx 0x1c78                                        |         log_internal ();
    0x00003936 mov r3, r1                                        |         r3 = r1;
    0x00003938 ldr r1, [pc, 0x38]                                |         
    0x0000393a mov r2, r0                                        |         r2 = r0;
    0x0000393c mov r0, r4                                        |         r0 = r4;
    0x0000393e pop.w {r4, lr}                                    |         
    0x00003942 add r1, pc                                        |         r1 = 0x72ba;
    0x00003944 b.w 0x1a48                                        |         goto label_7;
                                                                 |     }
    0x00003948 ldr r1, [pc, 0x2c]                                |     
    0x0000394a mov.w r2, 0x23c                                   |     r2 = 0x23c;
    0x0000394e ldr r3, [pc, 0x2c]                                |     
    0x00003950 ldr r0, [pc, 0x2c]                                |     
    0x00003952 add r1, pc                                        |     r1 = 0x72ce;
    0x00003954 add r3, pc                                        |     r3 = 0x72d6;
    0x00003956 adds r1, 7                                        |     r1 += 7;
    0x00003958 add r0, pc                                        |     r0 = 0x72dc;
    0x0000395a blx 0x1bac                                        |     path_extend_internal ();
                                                                 | label_46:
    0x0000395e ldr r1, [pc, 0x24]                                |     
    0x00003960 mov.w r2, 0x23c                                   |     r2 = 0x23c;
    0x00003964 ldr r3, [pc, 0x20]                                |     
    0x00003966 ldr r0, [pc, 0x24]                                |     
    0x00003968 add r1, pc                                        |     r1 = 0x72f2;
    0x0000396a add r3, pc                                        |     r3 = 0x72f6;
    0x0000396c adds r1, 7                                        |     r1 += 7;
    0x0000396e add r0, pc                                        |     r0 = 0x7300;
    0x00003970 blx 0x1bac                                        |     path_extend_internal ();
    0x00003974 lsrs r6, r3, 0x1e                                 |     r6 = r3 >> 0x1e;
    0x00003976 movs r0, r0                                       |     
    0x00003978 lsrs r2, r0, 0x1a                                 |     r2 = r0 >> 0x1a;
    0x0000397a movs r0, r0                                       |     
    0x0000397c adds r0, r6, 2                                    |     r0 = r6 + 2;
    0x0000397e movs r0, r0                                       |     
    0x00003980 lsrs r4, r3, 0x1a                                 |     r4 = r3 >> 0x1a;
    0x00003982 movs r0, r0                                       |     
    0x00003984 lsrs r4, r5, 0x19                                 |     r4 = r5 >> 0x19;
    0x00003986 movs r0, r0                                       |     
    0x00003988 adds r2, r3, 2                                    |     r2 = r3 + 2;
    0x0000398a movs r0, r0                                       |     
    0x0000398c asrs r2, r3, 0x12                                 |     r2 = r3 >> 0x12;
    0x0000398e movs r0, r0                                       |     
    0x00003990 ldr r2, [pc, 0x98]                                |     
    0x00003992 ldr r3, [pc, 0x9c]                                |     r3 = *(0x3a32);
    0x00003994 push {r4, lr}                                     |     
    0x00003996 sub sp, 0x88                                      |     
    0x00003998 add r2, pc                                        |     r2 = 0x73c8;
    0x0000399a ldr r4, [sp, 0x90]                                |     r4 = var_90h;
    0x0000399c ldr r3, [r2, r3]                                  |     
    0x0000399e ldr r3, [r3]                                      |     r3 = *(0x73c8);
    0x000039a0 str r3, [sp, 0x84]                                |     var_84h = r3;
    0x000039a2 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r0 != 0) {
    0x000039a6 cbz r0, 0x39fa                                    |         
    0x000039a8 cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x000039aa beq 0x3a10                                        |             goto label_47;
                                                                 |         }
    0x000039ac add r3, sp, 4                                     |         r3 += var_4h_3;
    0x000039ae movs r2, 0x80                                     |         r2 = 0x80;
    0x000039b0 movs r1, 0                                        |         r1 = 0;
    0x000039b2 mov r0, r3                                        |         r0 = r3;
    0x000039b4 blx 0x1a24                                        |         fcn_00001a24 ();
    0x000039b8 blx 0x1b3c                                        |         r0 = fcn_00001b3c ();
    0x000039bc cmp r0, 0                                         |         
    0x000039be it lt                                             |         
                                                                 |         if (r0 >= 0) {
    0x000039c0 movlt r2, 0                                       |             r2 = 0;
                                                                 |         }
                                                                 |         if (r0 >= 0) {
    0x000039c2 blt 0x39d6                                        |             
    0x000039c4 ldr r2, [sp, 0x10]                                |             r2 = var_10h_3;
    0x000039c6 mov.w r3, 0x2400                                  |             
    0x000039ca movt r3, 0xf4                                     |             r3 = 0xf42400;
    0x000039ce cmp r2, r3                                        |             
    0x000039d0 ite ge                                            |             
                                                                 |             if (r2 < r3) {
    0x000039d2 movge r2, 0                                       |                 r2 = 0;
                                                                 |             }
                                                                 |             if (r2 < r3) {
    0x000039d4 movlt r2, 1                                       |                 r2 = 1;
                                                                 |                 goto label_48;
                                                                 |             }
                                                                 |         }
                                                                 | label_48:
    0x000039d6 ldr r1, [pc, 0x5c]                                |         
    0x000039d8 ldr r3, [pc, 0x54]                                |         r3 = *(0x3a30);
    0x000039da add r1, pc                                        |         r1 = 0x7414;
    0x000039dc ldr r3, [r1, r3]                                  |         r3 = *(0x7414);
    0x000039de ldr r1, [r3]                                      |         r1 = *(0x7414);
    0x000039e0 ldr r3, [sp, 0x84]                                |         r3 = var_84h;
    0x000039e2 eors r1, r3                                       |         r1 ^= r3;
    0x000039e4 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r1 != r3) {
    0x000039e8 bne 0x3a26                                        |             goto label_49;
                                                                 |         }
    0x000039ea ldr r1, [pc, 0x4c]                                |         
    0x000039ec mov r0, r4                                        |         r0 = r4;
    0x000039ee add r1, pc                                        |         r1 = 0x742c;
    0x000039f0 add sp, 0x88                                      |         
    0x000039f2 pop.w {r4, lr}                                    |         
    0x000039f6 b.w 0x1a48                                        |         goto label_7;
                                                                 |     }
    0x000039fa ldr r1, [pc, 0x40]                                |     
    0x000039fc movw r2, 0x23d                                    |     r2 = 0x23d;
    0x00003a00 ldr r3, [pc, 0x3c]                                |     
    0x00003a02 ldr r0, [pc, 0x40]                                |     
    0x00003a04 add r1, pc                                        |     r1 = 0x7446;
    0x00003a06 add r3, pc                                        |     r3 = 0x744a;
    0x00003a08 adds r1, 7                                        |     r1 += 7;
    0x00003a0a add r0, pc                                        |     r0 = 0x7454;
    0x00003a0c blx 0x1bac                                        |     path_extend_internal ();
                                                                 | label_47:
    0x00003a10 ldr r1, [pc, 0x34]                                |     
    0x00003a12 movw r2, 0x23d                                    |     r2 = 0x23d;
    0x00003a16 ldr r3, [pc, 0x34]                                |     
    0x00003a18 ldr r0, [pc, 0x34]                                |     
    0x00003a1a add r1, pc                                        |     r1 = 0x7466;
    0x00003a1c add r3, pc                                        |     r3 = 0x746e;
    0x00003a1e adds r1, 7                                        |     r1 += 7;
    0x00003a20 add r0, pc                                        |     r0 = 0x7474;
    0x00003a22 blx 0x1bac                                        |     path_extend_internal ();
                                                                 | label_49:
    0x00003a26 blx 0x1c60                                        |     bus_add_implementation ();
    0x00003a2a nop                                               |     
    0x00003a2c movs r4, 0x7c                                     |     r4 = 0x7c;
    0x00003a2e movs r1, r0                                       |     r1 = r0;
    0x00003a30 lsls r0, r1, 7                                    |     r0 = r1 << 7;
    0x00003a32 movs r0, r0                                       |     
    0x00003a34 movs r4, 0x3a                                     |     r4 = 0x3a;
    0x00003a36 movs r1, r0                                       |     r1 = r0;
    0x00003a38 asrs r2, r4, 0x10                                 |     r2 = r4 >> 0x10;
    0x00003a3a movs r0, r0                                       |     
    0x00003a3c lsrs r0, r2, 0x17                                 |     r0 = r2 >> 0x17;
    0x00003a3e movs r0, r0                                       |     
    0x00003a40 subs r6, r4, r7                                   |     r6 = r4 - r7;
    0x00003a42 movs r0, r0                                       |     
    0x00003a44 lsrs r2, r5, 0x17                                 |     r2 = r5 >> 0x17;
    0x00003a46 movs r0, r0                                       |     
    0x00003a48 lsrs r2, r7, 0x16                                 |     r2 = r7 >> 0x16;
    0x00003a4a movs r0, r0                                       |     
    0x00003a4c subs r0, r2, r7                                   |     r0 = r2 - r7;
    0x00003a4e movs r0, r0                                       |     
    0x00003a50 asrs r0, r5, 0xf                                  |     r0 = r5 >> 0xf;
    0x00003a52 movs r0, r0                                       |     
    0x00003a54 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00003a58 mov r6, r2                                        |     r6 = r2;
    0x00003a5a ldr.w r2, [pc, 0x4d4]                             |     r2 = *(0x00003f30);
    0x00003a5e sub sp, 0x6c                                      |     
    0x00003a60 ldr.w r3, [pc, 0x4d0]                             |     
    0x00003a64 add r2, pc                                        |     r2 += pc;
    0x00003a66 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00003a68 ldr r3, [r3]                                      |     r3 = *(0x3f34);
    0x00003a6a str r3, [sp, 0x64]                                |     var_64h = r3;
    0x00003a6c mov.w r3, 0                                       |     r3 = 0;
    0x00003a70 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00003a72 beq.w 0x3d34                                      |         goto label_50;
                                                                 |     }
    0x00003a76 mov r4, r1                                        |     r4 = r1;
    0x00003a78 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00003a7a beq.w 0x3d86                                      |         goto label_51;
                                                                 |     }
    0x00003a7e ldr.w r1, [pc, 0x4b8]                             |     
    0x00003a82 add r3, sp, 0x2c                                  |     r3 += var_2ch_2;
    0x00003a84 str r3, [sp]                                      |     *(sp) = r3;
    0x00003a86 add r2, sp, 0x24                                  |     r2 += var_24h;
    0x00003a88 add r3, sp, 0x28                                  |     r3 += var_28h;
    0x00003a8a mov r5, r0                                        |     r5 = r0;
    0x00003a8c add r1, pc                                        |     r1 = 0x79ca;
    0x00003a8e blx 0x1a7c                                        |     r0 = fcn_00001a7c ();
    0x00003a92 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00003a94 blt.w 0x3c3c                                      |         goto label_9;
                                                                 |     }
    0x00003a98 ldrb r2, [r4, 4]                                  |     r2 = *((r4 + 4));
    0x00003a9a ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00003a9c cmp r2, r3                                        |     
                                                                 |     if (r2 == r3) {
    0x00003a9e bne 0x3aa8                                        |         
    0x00003aa0 ldr r1, [sp, 0x28]                                |         r1 = var_28h;
    0x00003aa2 cmp r1, 0                                         |         
                                                                 |         if (r1 == 0) {
    0x00003aa4 beq.w 0x3d00                                      |             goto label_52;
                                                                 |         }
                                                                 |     }
    0x00003aa8 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch_2;
    0x00003aaa add.w r2, r4, 8                                   |     r2 = r4 + 8;
    0x00003aae strd r2, r6, [sp, 8]                              |     __asm ("strd r2, r6, [var_8h_3]");
    0x00003ab2 mov.w r7, -1                                      |     r7 = -1;
    0x00003ab6 ldr.w r2, [pc, 0x484]                             |     
    0x00003aba movs r1, 0x19                                     |     r1 = 0x19;
    0x00003abc subs r3, 0                                        |     
    0x00003abe mov r0, r5                                        |     r0 = r5;
    0x00003ac0 it ne                                             |     
                                                                 |     if (r3 == 0) {
    0x00003ac2 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x00003ac4 strd r3, r7, [sp]                                 |     __asm ("strd r3, r7, [sp]");
    0x00003ac8 add r2, pc                                        |     r2 = 0x7a0a;
    0x00003aca movs r3, 0                                        |     r3 = 0;
    0x00003acc blx 0x1da4                                        |     r0 = unit_name_is_valid ();
    0x00003ad0 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00003ad2 blt.w 0x3c3c                                      |         goto label_9;
                                                                 |     }
                                                                 |     if (r0 == 0) {
    0x00003ad6 beq.w 0x3d30                                      |         goto label_53;
                                                                 |     }
    0x00003ada ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00003adc ldrb r2, [r4, 4]                                  |     r2 = *((r4 + 4));
    0x00003ade cmp r2, r3                                        |     
                                                                 |     if (r2 == r3) {
    0x00003ae0 beq.w 0x3c64                                      |         goto label_19;
                                                                 |     }
    0x00003ae4 subs r3, 0                                        |     
    0x00003ae6 ldr.w r1, [pc, 0x458]                             |     
    0x00003aea it ne                                             |     
                                                                 |     if (r3 == 0) {
    0x00003aec movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x00003aee str r7, [sp]                                      |     *(sp) = r7;
    0x00003af0 strb r3, [r4, 4]                                  |     *((r4 + 4)) = r3;
    0x00003af2 movs r7, 0                                        |     r7 = 0;
    0x00003af4 add r3, sp, 0x38                                  |     r3 += var_38h;
    0x00003af6 add r1, pc                                        |     r1 = 0x7a3c;
    0x00003af8 strd r7, r3, [sp, 8]                              |     __asm ("strd r7, r3, [var_8h_3]");
    0x00003afc mov.w r2, -1                                      |     r2 = -1;
    0x00003b00 mov.w r3, -1                                      |     r3 = -1;
    0x00003b04 mvn r0, 0x63                                      |     r0 = ~0x63;
    0x00003b08 str r7, [sp, 0x10]                                |     var_10h_2 = r7;
    0x00003b0a str r7, [sp, 4]                                   |     var_4h_2 = r7;
    0x00003b0c str r7, [sp, 0x38]                                |     var_38h = r7;
    0x00003b0e blx 0x1a94                                        |     r0 = fcn_00001a94 ();
    0x00003b12 subs.w r8, r0, 0                                  |     r8 = r0 - 0;
                                                                 |     if (r8 < r0) {
    0x00003b16 blt.w 0x3d9c                                      |         goto label_54;
                                                                 |     }
    0x00003b1a ldr.w fp, [sp, 0x38]                              |     fp = var_38h;
    0x00003b1e movs r1, 0xa                                      |     r1 = 0xa;
    0x00003b20 mov r0, fp                                        |     r0 = fp;
    0x00003b22 blx 0x1af4                                        |     r0 = fcn_00001af4 ();
    0x00003b26 ldrb r3, [r0]                                     |     r3 = *(r0);
    0x00003b28 mov sl, r0                                        |     sl = r0;
    0x00003b2a cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00003b2c beq.w 0x3dcc                                      |         goto label_55;
                                                                 |     }
    0x00003b30 ldrb r3, [sl, 1]!                                 |     r3 = *((sl += 1));
    0x00003b34 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00003b36 beq.w 0x3ed2                                      |         goto label_56;
                                                                 |     }
    0x00003b3a mov r0, sl                                        |     r0 = sl;
    0x00003b3c movs r1, 0xa                                      |     r1 = 0xa;
    0x00003b3e blx 0x19f4                                        |     r0 = fcn_000019f4 ();
    0x00003b42 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00003b44 beq.w 0x3ef2                                      |         goto label_57;
                                                                 |     }
    0x00003b48 add.w sl, r0, 1                                   |     sl = r0 + 1;
    0x00003b4c movs r1, 0xa                                      |     r1 = 0xa;
    0x00003b4e mov r0, sl                                        |     r0 = sl;
    0x00003b50 blx 0x19f4                                        |     r0 = fcn_000019f4 ();
    0x00003b54 mov sb, r0                                        |     sb = r0;
    0x00003b56 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00003b58 beq.w 0x3f0c                                      |         goto label_58;
                                                                 |     }
    0x00003b5c blx 0x1b30                                        |     fcn_00001b30 ();
    0x00003b60 ldr r3, [pc, 0x3e0]                               |     
    0x00003b62 mov r8, r0                                        |     r8 = r0;
    0x00003b64 add r3, pc                                        |     r3 = 0x7aac;
    0x00003b66 str r3, [sp, 0x1c]                                |     var_1ch = r3;
                                                                 | label_15:
    0x00003b68 ldrb r3, [r4, 4]                                  |     r3 = *((r4 + 4));
    0x00003b6a sub.w sl, sl, fp                                  |     sl -= fp;
    0x00003b6e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00003b70 beq.w 0x3e24                                      |         goto label_59;
                                                                 |     }
    0x00003b74 add.w r0, r7, r8                                  |     r0 = r7 + r8;
    0x00003b78 adds r0, 6                                        |     r0 += 6;
    0x00003b7a add r0, sl                                        |     r0 += sl;
    0x00003b7c cmp r0, 1                                         |     
    0x00003b7e it lo                                             |     
                                                                 |     if (r0 >= 1) {
    0x00003b80 movlo r0, 1                                       |         r0 = 1;
                                                                 |     }
    0x00003b82 blx 0x1c54                                        |     r0 = stack_chk_fail ();
    0x00003b86 mov r7, r0                                        |     r7 = r0;
    0x00003b88 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00003b8a beq.w 0x3f24                                      |         goto label_60;
                                                                 |     }
    0x00003b8e mov r1, fp                                        |     r1 = fp;
    0x00003b90 mov r2, sl                                        |     r2 = sl;
    0x00003b92 blx 0x1b60                                        |     fcn_00001b60 ();
    0x00003b96 ldr r1, [sp, 0x1c]                                |     r1 = var_1ch;
    0x00003b98 add r0, sl                                        |     r0 += sl;
    0x00003b9a blx 0x1a0c                                        |     fcn_00001a0c ();
    0x00003b9e ldr r1, [pc, 0x3a8]                               |     
    0x00003ba0 add r1, pc                                        |     r1 = 0x7aee;
                                                                 | label_16:
    0x00003ba2 blx 0x1a0c                                        |     fcn_00001a0c ();
    0x00003ba6 mov r1, sb                                        |     r1 = sb;
    0x00003ba8 mov r2, r8                                        |     r2 = r8;
    0x00003baa blx 0x1b60                                        |     fcn_00001b60 ();
    0x00003bae ldr r1, [pc, 0x39c]                               |     
    0x00003bb0 movs r3, 0                                        |     r3 = 0;
    0x00003bb2 strb.w r3, [r0, r8]                               |     *((r0 + r8)) = r3;
    0x00003bb6 mov r0, r7                                        |     r0 = r7;
    0x00003bb8 add r1, pc                                        |     r1 = 0x7b0a;
    0x00003bba blx 0x1d80                                        |     r0 = errno_location ();
    0x00003bbe cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00003bc0 beq.w 0x3ea0                                      |         goto label_61;
                                                                 |     }
                                                                 | label_12:
    0x00003bc4 blx 0x1930                                        |     r0 = mac_selinux_init ();
    0x00003bc8 subs.w r8, r0, 0                                  |     r8 = r0 - 0;
                                                                 |     if (r8 < r0) {
    0x00003bcc blt.w 0x3de0                                      |         goto label_62;
                                                                 |     }
    0x00003bd0 ldr r0, [pc, 0x37c]                               |     
    0x00003bd2 movs r2, 0                                        |     r2 = 0;
    0x00003bd4 mov r1, r7                                        |     r1 = r7;
    0x00003bd6 add r0, pc                                        |     r0 = 0x7b2a;
    0x00003bd8 blx 0x1a3c                                        |     r0 = fcn_00001a3c ();
    0x00003bdc mov r8, r0                                        |     r8 = r0;
                                                                 | label_18:
    0x00003bde mov r0, r7                                        |     r0 = r7;
    0x00003be0 blx 0x1aa0                                        |     fcn_00001aa0 ();
    0x00003be4 ldr r0, [sp, 0x38]                                |     r0 = var_38h;
    0x00003be6 blx 0x1aa0                                        |     fcn_00001aa0 ();
    0x00003bea cmp.w r8, 0                                       |     
                                                                 |     if (r8 >= 0) {
    0x00003bee bge 0x3c64                                        |         goto label_19;
                                                                 |     }
                                                                 | label_13:
    0x00003bf0 blx 0x19a0                                        |     r0 = fcn_000019a0 ();
    0x00003bf4 cmp r0, 2                                         |     
                                                                 |     if (r0 > 2) {
    0x00003bf6 ble 0x3c24                                        |         
    0x00003bf8 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x00003bfa cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00003bfc bne.w 0x3eec                                      |             goto label_63;
                                                                 |         }
    0x00003c00 ldr r1, [pc, 0x350]                               |         
    0x00003c02 add r1, pc                                        |         r1 = 0x7b5a;
                                                                 | label_21:
    0x00003c04 ldr r2, [pc, 0x350]                               |         
    0x00003c06 movs r0, 3                                        |         r0 = 3;
    0x00003c08 ldr r3, [pc, 0x350]                               |         
    0x00003c0a str r1, [sp, 8]                                   |         var_8h_3 = r1;
    0x00003c0c ldr r1, [pc, 0x350]                               |         
    0x00003c0e add r2, pc                                        |         r2 = 0x7b6a;
    0x00003c10 add r3, pc                                        |         r3 = 0x7b70;
    0x00003c12 adds r2, 7                                        |         r2 += 7;
    0x00003c14 str r3, [sp, 4]                                   |         var_4h_2 = r3;
    0x00003c16 movw r3, 0x305                                    |         r3 = 0x305;
    0x00003c1a add r1, pc                                        |         r1 = 0x7b7e;
    0x00003c1c str r1, [sp]                                      |         *(sp) = r1;
    0x00003c1e mov r1, r8                                        |         r1 = r8;
    0x00003c20 blx 0x1c84                                        |         extract_first_word ();
                                                                 |     }
    0x00003c24 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00003c26 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00003c28 bne.w 0x3ee6                                      |         goto label_64;
                                                                 |     }
    0x00003c2c ldr r3, [pc, 0x334]                               |     
    0x00003c2e add r3, pc                                        |     r3 = 0x7b96;
                                                                 | label_20:
    0x00003c30 ldr r2, [pc, 0x334]                               |     
    0x00003c32 mov r1, r8                                        |     r1 = r8;
    0x00003c34 mov r0, r6                                        |     r0 = r6;
    0x00003c36 add r2, pc                                        |     r2 = 0x7ba2;
    0x00003c38 blx 0x197c                                        |     fcn_0000197c ();
                                                                 |     do {
                                                                 | label_9:
    0x00003c3c ldr r2, [pc, 0x32c]                               |         
    0x00003c3e ldr r3, [pc, 0x2f4]                               |         r3 = *(0x3f36);
    0x00003c40 add r2, pc                                        |         r2 = 0x7bb0;
    0x00003c42 ldr r3, [r2, r3]                                  |         r3 = *(0x7bb0);
    0x00003c44 ldr r2, [r3]                                      |         r2 = *(0x7bb0);
    0x00003c46 ldr r3, [sp, 0x64]                                |         r3 = var_64h;
    0x00003c48 eors r2, r3                                       |         r2 ^= r3;
    0x00003c4a mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00003c4e bne.w 0x3f20                                      |             goto label_65;
                                                                 |         }
    0x00003c52 add sp, 0x6c                                      |         
    0x00003c54 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_17:
    0x00003c58 mov r0, r7                                        |         r0 = r7;
    0x00003c5a blx 0x1aa0                                        |         fcn_00001aa0 ();
                                                                 | label_11:
    0x00003c5e ldr r0, [sp, 0x38]                                |         r0 = var_38h;
    0x00003c60 blx 0x1aa0                                        |         fcn_00001aa0 ();
                                                                 | label_19:
    0x00003c64 movs r0, 0                                        |         r0 = 0;
    0x00003c66 blx 0x1bf4                                        |         r0 = sd_bus_error_free ();
    0x00003c6a subs r6, r0, 0                                    |         r6 = r0 - 0;
                                                                 |         if (r6 < r0) {
    0x00003c6c blt 0x3d08                                        |             goto label_66;
                                                                 |         }
                                                                 | label_8:
    0x00003c6e add r7, sp, 0x30                                  |         r7 += var_30h;
    0x00003c70 movs r0, 0                                        |         r0 = 0;
    0x00003c72 mov r1, r7                                        |         r1 = r7;
    0x00003c74 blx 0x1954                                        |         r0 = clock_gettime ();
    0x00003c78 mov r6, r0                                        |         r6 = r0;
    0x00003c7a cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00003c7c bne.w 0x3dee                                      |             goto label_67;
                                                                 |         }
    0x00003c80 ldr r3, [sp, 0x28]                                |         r3 = var_28h;
    0x00003c82 ldrb r2, [r4, 4]                                  |         r2 = *((r4 + 4));
    0x00003c84 eor r2, r2, 1                                     |         r2 ^= 1;
    0x00003c88 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00003c8a beq 0x3d4a                                        |             goto label_68;
                                                                 |         }
    0x00003c8c add.w sb, sp, 0x38                                |         sb += var_38h;
    0x00003c90 mov r0, r7                                        |         r0 = r7;
    0x00003c92 mov r1, sb                                        |         r1 = sb;
    0x00003c94 blx 0x1d14                                        |         sd_event_unref ();
    0x00003c98 mov r0, sb                                        |         r0 = sb;
    0x00003c9a blx 0x1b94                                        |         clock_is_localtime ();
    0x00003c9e subs.w r8, r0, 0                                  |         r8 -= var_38h;
                                                                 |         if (r8 >= var_38h) {
    0x00003ca2 bge.w 0x3e52                                      |             goto label_69;
                                                                 |         }
    0x00003ca6 blx 0x19a0                                        |         r0 = fcn_000019a0 ();
    0x00003caa cmp r0, 6                                         |         
                                                                 |         if (r0 > 6) {
    0x00003cac bgt.w 0x3e04                                      |             goto label_70;
                                                                 |         }
                                                                 | label_10:
    0x00003cb0 blx 0x19a0                                        |         r0 = fcn_000019a0 ();
    0x00003cb4 cmp r0, 5                                         |         
                                                                 |         if (r0 > 5) {
    0x00003cb6 ble 0x3ce4                                        |             
    0x00003cb8 ldrb r3, [r4, 4]                                  |             r3 = *((r4 + 4));
    0x00003cba cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x00003cbc bne.w 0x3dc6                                      |                 goto label_71;
                                                                 |             }
    0x00003cc0 ldr r1, [pc, 0x2ac]                               |             
    0x00003cc2 add r1, pc                                        |             r1 = 0x7c36;
                                                                 | label_14:
    0x00003cc4 ldr r2, [pc, 0x2ac]                               |             
    0x00003cc6 ldr r3, [pc, 0x2b0]                               |             
    0x00003cc8 ldr r0, [pc, 0x2b0]                               |             
    0x00003cca add r2, pc                                        |             r2 = 0x7c42;
    0x00003ccc str r1, [sp, 8]                                   |             var_8h_3 = r1;
    0x00003cce add r3, pc                                        |             r3 = 0x7c4c;
    0x00003cd0 adds r2, 7                                        |             r2 += 7;
    0x00003cd2 add r0, pc                                        |             r0 = 0x7c52;
    0x00003cd4 str r3, [sp, 4]                                   |             var_4h_2 = r3;
    0x00003cd6 str r0, [sp]                                      |             *(sp) = r0;
    0x00003cd8 movw r3, 0x32f                                    |             r3 = 0x32f;
    0x00003cdc movs r1, 0                                        |             r1 = 0;
    0x00003cde movs r0, 6                                        |             r0 = 6;
    0x00003ce0 blx 0x1c84                                        |             extract_first_word ();
                                                                 |         }
    0x00003ce4 mov r0, r5                                        |         r0 = r5;
    0x00003ce6 movs r4, 0                                        |         r4 = 0;
    0x00003ce8 blx 0x1a64                                        |         fcn_00001a64 ();
    0x00003cec ldr r3, [pc, 0x290]                               |         
    0x00003cee ldr r2, [pc, 0x294]                               |         
    0x00003cf0 ldr r1, [pc, 0x294]                               |         
    0x00003cf2 add r3, pc                                        |         r3 = 0x7c76;
    0x00003cf4 str r4, [sp]                                      |         *(sp) = r4;
    0x00003cf6 add r2, pc                                        |         r2 = 0x7c80;
    0x00003cf8 add r1, pc                                        |         r1 = 0x7c84;
    0x00003cfa blx 0x1c0c                                        |         strv_find ();
    0x00003cfe mov r1, r4                                        |         r1 = r4;
                                                                 | label_52:
    0x00003d00 mov r0, r5                                        |         r0 = r5;
    0x00003d02 blx 0x1924                                        |         sd_bus_reply_method_return ();
    0x00003d06 b 0x3c3c                                          |         
                                                                 |     } while (1);
                                                                 | label_66:
    0x00003d08 blx 0x19a0                                        |     r0 = fcn_000019a0 ();
    0x00003d0c cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x00003d0e ble 0x3c6e                                        |         goto label_8;
                                                                 |     }
    0x00003d10 ldr r3, [pc, 0x278]                               |     
    0x00003d12 mov r1, r6                                        |     r1 = r6;
    0x00003d14 ldr r2, [pc, 0x278]                               |     
    0x00003d16 movs r0, 7                                        |     r0 = 7;
    0x00003d18 add r3, pc                                        |     r3 = 0x7ca8;
    0x00003d1a str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x00003d1c add r2, pc                                        |     r2 = 0x7cb0;
    0x00003d1e ldr r3, [pc, 0x274]                               |     
    0x00003d20 adds r2, 7                                        |     r2 += 7;
    0x00003d22 add r3, pc                                        |     r3 = 0x7cbc;
    0x00003d24 str r3, [sp]                                      |     *(sp) = r3;
    0x00003d26 movw r3, 0x30d                                    |     r3 = 0x30d;
    0x00003d2a blx 0x1c84                                        |     extract_first_word ();
    0x00003d2e b 0x3c6e                                          |     goto label_8;
                                                                 | label_53:
    0x00003d30 movs r0, 1                                        |     r0 = 1;
    0x00003d32 b 0x3c3c                                          |     goto label_9;
                                                                 | label_50:
    0x00003d34 ldr r1, [pc, 0x260]                               |     
    0x00003d36 movw r2, 0x2e7                                    |     r2 = 0x2e7;
    0x00003d3a ldr r3, [pc, 0x260]                               |     
    0x00003d3c ldr r0, [pc, 0x260]                               |     
    0x00003d3e add r1, pc                                        |     r1 = 0x7cda;
    0x00003d40 add r3, pc                                        |     r3 = 0x7ce2;
    0x00003d42 adds r1, 7                                        |     r1 += 7;
    0x00003d44 add r0, pc                                        |     r0 = 0x7ce8;
    0x00003d46 blx 0x1bac                                        |     path_extend_internal ();
                                                                 | label_68:
    0x00003d4a add r6, sp, 0x38                                  |     r6 += var_38h;
    0x00003d4c mov r0, r7                                        |     r0 = r7;
    0x00003d4e mov r1, r6                                        |     r1 = r6;
    0x00003d50 blx 0x1d14                                        |     sd_event_unref ();
    0x00003d54 mov r0, r6                                        |     r0 = r6;
    0x00003d56 blx 0x1a30                                        |     fcn_00001a30 ();
    0x00003d5a subs r6, r0, 0                                    |     r6 -= var_38h;
                                                                 |     if (r6 >= var_38h) {
    0x00003d5c bge 0x3cb0                                        |         goto label_10;
                                                                 |     }
    0x00003d5e blx 0x19a0                                        |     r0 = fcn_000019a0 ();
    0x00003d62 cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x00003d64 ble 0x3cb0                                        |         goto label_10;
                                                                 |     }
    0x00003d66 ldr r3, [pc, 0x23c]                               |     
    0x00003d68 mov r1, r6                                        |     r1 = r6;
    0x00003d6a ldr r2, [pc, 0x23c]                               |     
    0x00003d6c movs r0, 7                                        |     r0 = 7;
    0x00003d6e add r3, pc                                        |     r3 = 0x7d18;
    0x00003d70 str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x00003d72 add r2, pc                                        |     r2 = 0x7d20;
    0x00003d74 ldr r3, [pc, 0x234]                               |     
    0x00003d76 adds r2, 7                                        |     r2 += 7;
    0x00003d78 add r3, pc                                        |     r3 = 0x7d28;
    0x00003d7a str r3, [sp]                                      |     *(sp) = r3;
    0x00003d7c mov.w r3, 0x32c                                   |     r3 = 0x32c;
    0x00003d80 blx 0x1c84                                        |     extract_first_word ();
    0x00003d84 b 0x3cb0                                          |     goto label_10;
                                                                 | label_51:
    0x00003d86 ldr r1, [pc, 0x228]                               |     
    0x00003d88 mov.w r2, 0x2e8                                   |     r2 = 0x2e8;
    0x00003d8c ldr r3, [pc, 0x224]                               |     
    0x00003d8e ldr r0, [pc, 0x228]                               |     
    0x00003d90 add r1, pc                                        |     r1 = 0x7d46;
    0x00003d92 add r3, pc                                        |     r3 = 0x7d4a;
    0x00003d94 adds r1, 7                                        |     r1 += 7;
    0x00003d96 add r0, pc                                        |     r0 = 0x7d54;
    0x00003d98 blx 0x1bac                                        |     path_extend_internal ();
                                                                 | label_54:
    0x00003d9c cmn.w r8, 2                                       |     
                                                                 |     if (r8 != 2) {
    0x00003da0 bne 0x3de0                                        |         goto label_62;
                                                                 |     }
    0x00003da2 ldrb r3, [r4, 4]                                  |     r3 = *((r4 + 4));
    0x00003da4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00003da6 beq.w 0x3c5e                                      |         goto label_11;
                                                                 |     }
    0x00003daa ldr r0, [pc, 0x210]                               |     
    0x00003dac add r0, pc                                        |     r0 = 0x7d6e;
    0x00003dae blx 0x1c48                                        |     r0 = malloc (r0);
    0x00003db2 mov r7, r0                                        |     r7 = r0;
    0x00003db4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00003db6 bne.w 0x3bc4                                      |         goto label_12;
                                                                 |     }
    0x00003dba ldr r0, [sp, 0x38]                                |     r0 = var_38h;
    0x00003dbc mvn r8, 0xb                                       |     r8 = ~0xb;
    0x00003dc0 blx 0x1aa0                                        |     fcn_00001aa0 ();
    0x00003dc4 b 0x3bf0                                          |     goto label_13;
                                                                 | label_71:
    0x00003dc6 ldr r1, [pc, 0x1f8]                               |     
    0x00003dc8 add r1, pc                                        |     r1 = 0x7d8e;
    0x00003dca b 0x3cc4                                          |     goto label_14;
                                                                 | label_55:
    0x00003dcc ldr r3, [pc, 0x1f4]                               |     
    0x00003dce mov.w r8, 1                                       |     r8 = 1;
    0x00003dd2 ldr.w sb, [pc, 0x1f4]                             |     
    0x00003dd6 movs r7, 3                                        |     r7 = 3;
    0x00003dd8 add r3, pc                                        |     r3 = 0x7da0;
    0x00003dda add sb, pc                                        |     sb = 0x7da8;
    0x00003ddc str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00003dde b 0x3b68                                          |     goto label_15;
                                                                 | label_62:
    0x00003de0 mov r0, r7                                        |     r0 = r7;
    0x00003de2 blx 0x1aa0                                        |     fcn_00001aa0 ();
    0x00003de6 ldr r0, [sp, 0x38]                                |     r0 = var_38h;
    0x00003de8 blx 0x1aa0                                        |     fcn_00001aa0 ();
    0x00003dec b 0x3bf0                                          |     goto label_13;
                                                                 | label_67:
    0x00003dee ldr r1, [pc, 0x1dc]                               |     
    0x00003df0 mov.w r2, 0x310                                   |     r2 = 0x310;
    0x00003df4 ldr r3, [pc, 0x1d8]                               |     
    0x00003df6 ldr r0, [pc, 0x1dc]                               |     
    0x00003df8 add r1, pc                                        |     r1 = 0x7dca;
    0x00003dfa add r3, pc                                        |     r3 = 0x7dce;
    0x00003dfc adds r1, 7                                        |     r1 += 7;
    0x00003dfe add r0, pc                                        |     r0 = 0x7dd8;
    0x00003e00 blx 0x1bac                                        |     path_extend_internal ();
                                                                 | label_70:
    0x00003e04 ldr r3, [pc, 0x1d0]                               |     
    0x00003e06 mov r1, r8                                        |     r1 = r8;
    0x00003e08 ldr r2, [pc, 0x1d0]                               |     
    0x00003e0a movs r0, 7                                        |     r0 = 7;
    0x00003e0c add r3, pc                                        |     r3 = 0x7de8;
    0x00003e0e str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x00003e10 add r2, pc                                        |     r2 = 0x7df0;
    0x00003e12 ldr r3, [pc, 0x1cc]                               |     
    0x00003e14 adds r2, 7                                        |     r2 += 7;
    0x00003e16 add r3, pc                                        |     r3 = 0x7dfc;
    0x00003e18 str r3, [sp]                                      |     *(sp) = r3;
    0x00003e1a movw r3, 0x31b                                    |     r3 = 0x31b;
    0x00003e1e blx 0x1c84                                        |     extract_first_word ();
    0x00003e22 b 0x3cb0                                          |     goto label_10;
                                                                 | label_59:
    0x00003e24 add.w r0, r7, r8                                  |     r0 = r7 + r8;
    0x00003e28 adds r0, 4                                        |     r0 += 4;
    0x00003e2a add r0, sl                                        |     r0 += sl;
    0x00003e2c cmp r0, 1                                         |     
    0x00003e2e it lo                                             |     
                                                                 |     if (r0 >= 1) {
    0x00003e30 movlo r0, 1                                       |         r0 = 1;
                                                                 |     }
    0x00003e32 blx 0x1c54                                        |     r0 = stack_chk_fail ();
    0x00003e36 mov r7, r0                                        |     r7 = r0;
    0x00003e38 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00003e3a beq 0x3f24                                        |         goto label_60;
                                                                 |     }
    0x00003e3c mov r1, fp                                        |     r1 = fp;
    0x00003e3e mov r2, sl                                        |     r2 = sl;
    0x00003e40 blx 0x1b60                                        |     fcn_00001b60 ();
    0x00003e44 ldr r1, [sp, 0x1c]                                |     r1 = var_1ch;
    0x00003e46 add r0, sl                                        |     r0 += sl;
    0x00003e48 blx 0x1a0c                                        |     fcn_00001a0c ();
    0x00003e4c ldr r1, [pc, 0x194]                               |     
    0x00003e4e add r1, pc                                        |     r1 = 0x7e36;
    0x00003e50 b 0x3ba2                                          |     goto label_16;
                                                                 | label_69:
    0x00003e52 ldrb r1, [r4, 4]                                  |     r1 = *((r4 + 4));
    0x00003e54 mov r0, sb                                        |     r0 = sb;
    0x00003e56 eor r1, r1, 1                                     |     r1 ^= 1;
    0x00003e5a blx 0x1cd8                                        |     startswith ();
    0x00003e5e mov r1, r7                                        |     r1 = r7;
    0x00003e60 mov r3, r0                                        |     r3 = r0;
    0x00003e62 mov r0, r6                                        |     r0 = r6;
    0x00003e64 str r3, [sp, 0x30]                                |     var_30h = r3;
    0x00003e66 blx 0x1c9c                                        |     r0 = get_timezone ();
    0x00003e6a cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x00003e6c bge.w 0x3cb0                                      |         goto label_10;
                                                                 |     }
    0x00003e70 blx 0x1d8c                                        |     r0 = log_oom_internal ();
    0x00003e74 ldr r6, [r0]                                      |     r6 = *(r0);
    0x00003e76 blx 0x19a0                                        |     r0 = fcn_000019a0 ();
    0x00003e7a cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x00003e7c ble.w 0x3cb0                                      |         goto label_10;
                                                                 |     }
    0x00003e80 ldr r3, [pc, 0x164]                               |     
    0x00003e82 mov r1, r6                                        |     r1 = r6;
    0x00003e84 ldr r2, [pc, 0x164]                               |     
    0x00003e86 movs r0, 7                                        |     r0 = 7;
    0x00003e88 add r3, pc                                        |     r3 = 0x7e74;
    0x00003e8a str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x00003e8c add r2, pc                                        |     r2 = 0x7e7c;
    0x00003e8e ldr r3, [pc, 0x160]                               |     
    0x00003e90 adds r2, 7                                        |     r2 += 7;
    0x00003e92 add r3, pc                                        |     r3 = 0x7e88;
    0x00003e94 str r3, [sp]                                      |     *(sp) = r3;
    0x00003e96 movw r3, 0x321                                    |     r3 = 0x321;
    0x00003e9a blx 0x1c84                                        |     extract_first_word ();
    0x00003e9e b 0x3cb0                                          |     goto label_10;
                                                                 | label_61:
    0x00003ea0 ldr r0, [pc, 0x150]                               |     
    0x00003ea2 add r0, pc                                        |     r0 = 0x7e9a;
    0x00003ea4 blx 0x1b48                                        |     r0 = fcn_00001b48 ();
    0x00003ea8 cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x00003eaa bge.w 0x3c58                                      |         goto label_17;
                                                                 |     }
    0x00003eae blx 0x1d8c                                        |     r0 = log_oom_internal ();
    0x00003eb2 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00003eb4 ldr.w r8, [sp, 0x38]                              |     r8 = var_38h;
    0x00003eb8 cmp r0, 2                                         |     
    0x00003eba it ne                                             |     
                                                                 |     if (r0 == 2) {
    0x00003ebc rsbne r8, r0, 0                                   |         __asm ("rsbne r8, r0, 0");
                                                                 |         goto label_72;
                                                                 |     }
                                                                 |     if (r0 != 2) {
                                                                 | label_72:
    0x00003ec0 bne.w 0x3bde                                      |         goto label_18;
                                                                 |     }
    0x00003ec4 mov r0, r7                                        |     r0 = r7;
    0x00003ec6 blx 0x1aa0                                        |     fcn_00001aa0 ();
    0x00003eca mov r0, r8                                        |     r0 = r8;
    0x00003ecc blx 0x1aa0                                        |     fcn_00001aa0 ();
    0x00003ed0 b 0x3c64                                          |     goto label_19;
                                                                 | label_56:
    0x00003ed2 ldr r3, [pc, 0x124]                               |     
    0x00003ed4 mov.w r8, 1                                       |     r8 = 1;
    0x00003ed8 ldr.w sb, [pc, 0x120]                             |     
    0x00003edc movs r7, 2                                        |     r7 = 2;
    0x00003ede add r3, pc                                        |     r3 = 0x7edc;
    0x00003ee0 add sb, pc                                        |     sb = 0x7ee0;
    0x00003ee2 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00003ee4 b 0x3b68                                          |     goto label_15;
                                                                 | label_64:
    0x00003ee6 ldr r3, [pc, 0x118]                               |     
    0x00003ee8 add r3, pc                                        |     r3 = 0x7eee;
    0x00003eea b 0x3c30                                          |     goto label_20;
                                                                 | label_63:
    0x00003eec ldr r1, [pc, 0x114]                               |     
    0x00003eee add r1, pc                                        |     r1 = 0x7ef6;
    0x00003ef0 b 0x3c04                                          |     goto label_21;
                                                                 | label_57:
    0x00003ef2 mov r0, fp                                        |     r0 = fp;
    0x00003ef4 mov.w r8, 1                                       |     r8 = 1;
    0x00003ef8 blx 0x1b30                                        |     fcn_00001b30 ();
    0x00003efc ldr r3, [pc, 0x108]                               |     
    0x00003efe add.w sl, fp, r0                                  |     sl = fp + r0;
    0x00003f02 mov r7, r8                                        |     r7 = r8;
    0x00003f04 add r3, pc                                        |     r3 = 0x7f10;
    0x00003f06 mov sb, r3                                        |     sb = r3;
    0x00003f08 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00003f0a b 0x3b68                                          |     goto label_15;
                                                                 | label_58:
    0x00003f0c ldr r3, [pc, 0xfc]                                |     
    0x00003f0e mov r7, r0                                        |     r7 = r0;
    0x00003f10 ldr.w sb, [pc, 0xfc]                              |     
    0x00003f14 mov.w r8, 1                                       |     r8 = 1;
    0x00003f16 lsrs r1, r0, 0x20                                 |     r1 = r0 >> 0x20;
    0x00003f18 add r3, pc                                        |     r3 = 0x7f28;
    0x00003f1a add sb, pc                                        |     sb = 0x7f2e;
    0x00003f1c str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00003f1e b 0x3b68                                          |     goto label_15;
                                                                 | label_65:
    0x00003f20 blx 0x1c60                                        |     bus_add_implementation ();
                                                                 | label_60:
    0x00003f24 mov r0, fp                                        |     r0 = fp;
    0x00003f26 mvn r8, 0xb                                       |     r8 = ~0xb;
    0x00003f2a blx 0x1aa0                                        |     fcn_00001aa0 ();
    0x00003f2e b 0x3bf0                                          |     goto label_13;
                                                                 | }

[*] Function system used 6 times systemd-timedated