[*] 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-80367616.squashfs_v4_le_extract/usr/lib/systemd/systemd-timedated @ 0x3c3c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00003c3c ()                                      | void fcn_00003c3c (int16_t arg_10h, uint32_t arg1, uint32_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h_2;
                                                                 |     int32_t var_0h_4;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h_2;
                                                                 |     int32_t var_10h_4;
                                                                 |     int16_t var_18h_3;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_18h_2;
                                                                 |     int16_t var_10h_3;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_18h_4;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h_2;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h_2;
                                                                 |     int16_t var_34h_2;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch_2;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_74h;
                                                                 |     int16_t var_9ch;
                                                                 |     int16_t var_0h_3;
                                                                 |     int16_t var_4h_3;
                                                                 |     int16_t var_8h_3;
                                                                 |     int16_t var_ch_2;
                                                                 |     int16_t var_14h_3;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h_2;
                                                                 |     int16_t var_28h_2;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h_3;
                                                                 |     int16_t var_38h_2;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int32_t var_ch_3;
                                                                 |     int32_t var_ch_4;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h_3;
                                                                 |     int16_t var_30h_3;
                                                                 |     int16_t var_34h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 | label_8:
    0x00001db8 invalid                                           |     void (*0x1dbc)() ();
                                                                 | label_15:
    0x00001df8 bx pc                                             |     return void (*pc)() ();
    0x00003c3c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00003c40 mov r5, r2                                        |     r5 = r2;
    0x00003c42 ldr r2, [pc, 0x148]                               |     
    0x00003c44 ldr r3, [pc, 0x148]                               |     r3 = *(0x3d90);
    0x00003c46 add r2, pc                                        |     r2 = 0x79d8;
    0x00003c48 vpush {d8}                                        |     __asm ("vpush {d8}");
    0x00003c4c sub sp, 0x3c                                      |     
    0x00003c4e ldr r3, [r2, r3]                                  |     
    0x00003c50 ldr r3, [r3]                                      |     r3 = *(0x79d8);
    0x00003c52 str r3, [sp, 0x34]                                |     var_34h = r3;
    0x00003c54 mov.w r3, 0                                       |     r3 = 0;
    0x00003c56 lsls r0, r0, 0xc                                  |     r0 <<= 0xc;
    0x00003c58 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00003c5a beq 0x3d22                                        |         goto label_20;
                                                                 |     }
    0x00003c5c mov r8, r1                                        |     r8 = r1;
    0x00003c5e cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00003c60 beq.w 0x3d72                                      |         goto label_21;
                                                                 |     }
    0x00003c64 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r5 != 0) {
    0x00003c66 cbz r5, 0x3c7a                                    |         
    0x00003c68 ldr r0, [r0, 0xc]                                 |         r0 = *((r0 + 0xc));
    0x00003c6a cmp r0, r5                                        |         
                                                                 |         if (r0 == r5) {
    0x00003c6c beq 0x3d00                                        |             goto label_22;
                                                                 |         }
    0x00003c6e blx 0x1c80                                        |         fcn_00001c80 ();
    0x00003c72 mov r0, r5                                        |         r0 = r5;
    0x00003c74 blx 0x1a0c                                        |         sd_bus_message_ref ();
    0x00003c78 str r0, [r4, 0xc]                                 |         *((r4 + 0xc)) = r0;
                                                                 |     }
    0x00003c7a ldr r7, [r4, 0x14]                                |     r7 = *((r4 + 0x14));
    0x00003c7c cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00003c7e beq 0x3d00                                        |         goto label_22;
                                                                 |     }
    0x00003c80 ldr.w fp, [pc, 0x110]                             |     
    0x00003c84 add.w sb, sp, 0x28                                |     sb += var_28h_3;
    0x00003c88 ldr.w sl, [pc, 0x10c]                             |     
    0x00003c8c vmov.i32 d8, 0                                    |     __asm ("vmov.i32 d8, 0");
    0x00003c90 add fp, pc                                        |     fp = 0x7a28;
    0x00003c92 add sl, pc                                        |     sl = 0x7a2e;
    0x00003c94 b 0x3cbe                                          |     
                                                                 |     while (r0 != 0) {
    0x00003c96 movs r1, 1                                        |         r1 = 1;
    0x00003c98 mov r3, fp                                        |         r3 = fp;
    0x00003c9a strd r1, sb, [sp]                                 |         __asm ("strd r1, sb, [sp]");
    0x00003c9c adds r0, r0, r4                                   |         r0 += r4;
    0x00003c9e mov r2, r6                                        |         r2 = r6;
    0x00003ca0 mov r1, sl                                        |         r1 = sl;
    0x00003ca2 mov r0, r8                                        |         r0 = r8;
    0x00003ca4 strd r5, r4, [sp, 8]                              |         __asm ("strd r5, r4, [sp, 8]");
    0x00003ca8 blx 0x1b98                                        |         r0 = bus_map_all_properties ();
    0x00003cac subs r1, r0, 0                                    |         r1 = r0 - 0;
                                                                 |         if (r1 < r0) {
    0x00003cae blt 0x3d38                                        |             goto label_23;
                                                                 |         }
    0x00003cb0 mov r0, r6                                        |         r0 = r6;
    0x00003cb2 blx 0x19dc                                        |         free (r0);
    0x00003cb6 mov r0, sb                                        |         r0 = sb;
    0x00003cb8 blx 0x1b50                                        |         sd_bus_error_free ();
                                                                 |         if (r7 == 0) {
    0x00003cbc cbz r7, 0x3d00                                    |             goto label_22;
                                                                 |         }
    0x00003cbe mov r4, r7                                        |         r4 = r7;
    0x00003cc0 movs r5, 0                                        |         r5 = 0;
    0x00003cc2 vstr d8, [sp, 0x28]                               |         __asm ("vstr d8, [sp, 0x28]");
    0x00003cc6 str r5, [sp, 0x30]                                |         var_30h_3 = r5;
    0x00003cc8 ldr r0, [r4, 4]                                   |         r0 = *((r4 + 4));
    0x00003cca ldr r7, [r7, 0x14]                                |         r7 = *((r7 + 0x14));
    0x00003ccc blx 0x19dc                                        |         free (r0);
    0x00003cd0 ldr r0, [r4, 8]                                   |         r0 = *((r4 + 8));
    0x00003cd2 str r5, [r4, 4]                                   |         *((r4 + 4)) = r5;
    0x00003cd4 blx 0x19dc                                        |         free (r0);
    0x00003cd8 ldr r0, [r4, 0xc]                                 |         r0 = *((r4 + 0xc));
    0x00003cda str r5, [r4, 8]                                   |         *((r4 + 8)) = r5;
    0x00003cdc blx 0x19dc                                        |         free (r0);
    0x00003ce0 ldr r0, [r4]                                      |         r0 = *(r4);
    0x00003ce2 str r5, [r4, 0xc]                                 |         *((r4 + 0xc)) = r5;
    0x00003ce4 blx 0x1a6c                                        |         r0 = unit_dbus_path_from_name ();
    0x00003ce8 mov r6, r0                                        |         r6 = r0;
    0x00003cea cmp r0, 0                                         |         
    0x00003cec bne 0x3c96                                        |         
                                                                 |     }
    0x00003cee mvn r4, 0xb                                       |     r4 = ~0xb;
                                                                 |     do {
    0x00003cf2 mov r0, r6                                        |         r0 = r6;
    0x00003cf4 blx 0x19dc                                        |         free (r0);
    0x00003cf8 mov r0, sb                                        |         r0 = sb;
    0x00003cfa blx 0x1b50                                        |         sd_bus_error_free ();
    0x00003cfe b 0x3d02                                          |         goto label_24;
                                                                 | label_22:
    0x00003d00 movs r4, 0                                        |         r4 = 0;
                                                                 | label_24:
    0x00003d02 ldr r2, [pc, 0x98]                                |         
    0x00003d04 ldr r3, [pc, 0x88]                                |         r3 = *(0x3d90);
    0x00003d06 add r2, pc                                        |         r2 = 0x7aa8;
    0x00003d08 ldr r3, [r2, r3]                                  |         r3 = *(0x7aa8);
    0x00003d0a ldr r2, [r3]                                      |         r2 = *(0x7aa8);
    0x00003d0c ldr r3, [sp, 0x34]                                |         r3 = var_34h;
    0x00003d0e eors r2, r3                                       |         r2 ^= r3;
    0x00003d10 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00003d14 bne 0x3d88                                        |             goto label_25;
                                                                 |         }
    0x00003d16 mov r0, r4                                        |         r0 = r4;
    0x00003d18 add sp, 0x3c                                      |         
    0x00003d1a vpop {d8}                                         |         __asm ("vpop {d8}");
    0x00003d1e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_20:
    0x00003d22 ldr r1, [pc, 0x7c]                                |         
    0x00003d24 movw r2, 0x19b                                    |         r2 = 0x19b;
    0x00003d28 ldr r3, [pc, 0x78]                                |         
    0x00003d2a ldr r0, [pc, 0x7c]                                |         
    0x00003d2c add r1, pc                                        |         r1 = 0x7ad2;
    0x00003d2e add r3, pc                                        |         r3 = 0x7ad6;
    0x00003d30 adds r1, 7                                        |         r1 += 7;
    0x00003d32 add r0, pc                                        |         r0 = 0x7ae0;
    0x00003d34 blx 0x19ac                                        |         log_assert_failed ();
                                                                 | label_23:
    0x00003d38 mov r0, sb                                        |         r0 = sb;
    0x00003d3a ldr r4, [r4]                                      |         r4 = *(r4);
    0x00003d3c str r1, [sp, 0x24]                                |         var_24h = r1;
    0x00003d3e blx 0x1d88                                        |         fcn_00001d88 ();
    0x00003d42 ldr r2, [pc, 0x68]                                |         
    0x00003d44 str r0, [sp, 0x18]                                |         var_18h = r0;
    0x00003d46 ldr r3, [pc, 0x68]                                |         
    0x00003d48 add r2, pc                                        |         r2 = 0x7afa;
    0x00003d4a ldr r0, [pc, 0x68]                                |         
    0x00003d4c str r2, [sp]                                      |         *(sp) = r2;
    0x00003d4e ldr r2, [pc, 0x68]                                |         
    0x00003d50 add r3, pc                                        |         r3 = 0x7b06;
    0x00003d52 add r0, pc                                        |         r0 = 0x7b0c;
    0x00003d54 str r4, [sp, 8]                                   |         var_8h = r4;
    0x00003d56 str r3, [sp, 4]                                   |         var_4h = r3;
    0x00003d58 movw r3, 0x1bb                                    |         r3 = 0x1bb;
    0x00003d5c add r2, pc                                        |         r2 = 0x7b1a;
    0x00003d5e str r0, [sp, 0x14]                                |         var_14h = r0;
    0x00003d60 ldr r1, [sp, 0x24]                                |         r1 = var_24h;
    0x00003d62 adds r2, 7                                        |         r2 += 7;
    0x00003d64 movs r0, 3                                        |         r0 = 3;
    0x00003d66 strd r5, r5, [sp, 0xc]                            |         __asm ("strd r5, r5, [var_ch_3]");
    0x00003d6a blx 0x1d40                                        |         r0 = fcn_00001d40 ();
    0x00003d6e mov r4, r0                                        |         r4 = r0;
    0x00003d70 b 0x3cf2                                          |         
                                                                 |     } while (1);
                                                                 | label_21:
    0x00003d72 ldr r1, [pc, 0x48]                                |     
    0x00003d74 mov.w r2, 0x19c                                   |     r2 = 0x19c;
    0x00003d78 ldr r3, [pc, 0x44]                                |     
    0x00003d7a ldr r0, [pc, 0x48]                                |     
    0x00003d7c add r1, pc                                        |     r1 = 0x7b3e;
    0x00003d7e add r3, pc                                        |     r3 = 0x7b42;
    0x00003d80 adds r1, 7                                        |     r1 += 7;
    0x00003d82 add r0, pc                                        |     r0 = 0x7b4c;
    0x00003d84 blx 0x19ac                                        |     log_assert_failed ();
                                                                 | label_25:
    0x00003d88 blx 0x1bd4                                        |     stack_chk_fail ();
    0x00003d8c adds r1, 0xce                                     |     r1 += 0xce;
    0x00003d8e movs r0, r0                                       |     
    0x00003d90 lsls r0, r6, 6                                    |     r0 = r6 << 6;
    0x00003d92 movs r0, r0                                       |     
    0x00003d94 cmp r6, 0x4c                                      |     
    0x00003d96 movs r0, r0                                       |     
    0x00003d98 asrs r6, r6, 8                                    |     r6 >>= 8;
    0x00003d9a movs r0, r0                                       |     
    0x00003d9c adds r1, 0xe                                      |     r1 += 0xe;
    0x00003d9e movs r0, r0                                       |     
    0x00003da0 lsrs r0, r6, 0xf                                  |     r0 = r6 >> 0xf;
    0x00003da2 movs r0, r0                                       |     
    0x00003da4 subs r6, r4, r7                                   |     r6 = r4 - r7;
    0x00003da6 movs r0, r0                                       |     
    0x00003da8 lsrs r2, r6, 0x14                                 |     r2 = r6 >> 0x14;
    0x00003daa movs r0, r0                                       |     
    0x00003dac subs r0, r6, r6                                   |     r0 = r6 - r6;
    0x00003dae movs r0, r0                                       |     
    0x00003db0 lsrs r4, r5, 0x10                                 |     r4 = r5 >> 0x10;
    0x00003db2 movs r0, r0                                       |     
    0x00003db4 asrs r2, r2, 6                                    |     r2 >>= 6;
    0x00003db6 movs r0, r0                                       |     
    0x00003db8 lsrs r0, r0, 0xf                                  |     r0 >>= 0xf;
    0x00003dba movs r0, r0                                       |     
    0x00003dbc lsrs r0, r4, 0xe                                  |     r0 = r4 >> 0xe;
    0x00003dbe movs r0, r0                                       |     
    0x00003dc0 subs r6, r2, r6                                   |     r6 = r2 - r6;
    0x00003dc2 movs r0, r0                                       |     
    0x00003dc4 lsrs r6, r2, 0xf                                  |     r6 = r2 >> 0xf;
    0x00003dc6 movs r0, r0                                       |     
    0x00003dc8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00003dcc sub sp, 0x44                                      |     
    0x00003dce str r2, [sp, 0x20]                                |     var_20h = r2;
    0x00003dd0 mov r4, r0                                        |     r4 = r0;
    0x00003dd2 mov.w sb, 0                                       |     sb = 0;
    0x00003dd6 mov r6, r1                                        |     r6 = r1;
    0x00003dd8 ldr r2, [pc, 0x36c]                               |     
    0x00003dda ldr r3, [pc, 0x370]                               |     r3 = *(0x414e);
    0x00003ddc ldr.w sl, [pc, 0x370]                             |     
    0x00003de0 add r2, pc                                        |     r2 = 0x7f2c;
    0x00003de2 ldr r3, [r2, r3]                                  |     
    0x00003de4 add sl, pc                                        |     sl = 0x7f38;
    0x00003de6 ldr r3, [r3]                                      |     r3 = *(0x7f2c);
    0x00003de8 str r3, [sp, 0x3c]                                |     var_3ch = r3;
    0x00003dea mov.w r3, 0                                       |     r3 = 0;
    0x00003dee str.w sb, [sp, 0x30]                              |     __asm ("str.w sb, [var_30h]");
    0x00003df2 blx 0x1d70                                        |     fcn_00001d70 ();
    0x00003df6 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00003df8 beq.w 0x3f48                                      |         goto label_26;
                                                                 |     }
    0x00003dfc mov r5, r0                                        |     r5 = r0;
    0x00003dfe cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00003e00 beq.w 0x3f5e                                      |         goto label_27;
                                                                 |     }
    0x00003e04 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00003e06 beq.w 0x3f74                                      |         goto label_28;
                                                                 |     }
    0x00003e0a ldr r1, [pc, 0x348]                               |     
    0x00003e0c add r3, sp, 0x38                                  |     r3 += var_38h_2;
    0x00003e0e add r2, sp, 0x34                                  |     r2 += var_34h_3;
    0x00003e10 mov r0, r4                                        |     r0 = r4;
    0x00003e12 add r1, pc                                        |     r1 = 0x7f6c;
    0x00003e14 blx 0x1cbc                                        |     fcn_00001cbc ();
    0x00003e16 invalid                                           |     
                                                                 |     if (r6 < 0) {
    0x00003e1a blt.w 0x3f22                                      |         goto label_0;
                                                                 |     }
    0x00003e1e mov r2, r4                                        |     r2 = r4;
    0x00003e20 mov r1, r5                                        |     r1 = r5;
    0x00003e22 mov r0, r6                                        |     r0 = r6;
    0x00003e24 bl 0x3c3c                                         |     r0 = fcn_00003c3c (r0, r1, r2, r3);
    0x00003e28 subs r7, r0, 0                                    |     r7 = r0 - 0;
                                                                 |     if (r7 < r0) {
    0x00003e2a blt 0x3f22                                        |         goto label_0;
                                                                 |     }
    0x00003e2c mov r0, r6                                        |     r0 = r6;
    0x00003e2e bl 0x3be0                                         |     r0 = fcn_00003be0 (r0);
    0x00003e32 cmp r0, 0                                         |     
                                                                 |     if (r0 <= 0) {
    0x00003e34 ble 0x3f12                                        |         goto label_29;
                                                                 |     }
    0x00003e36 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00003e38 movs r1, 0x19                                     |     r1 = 0x19;
    0x00003e3a ldr r2, [pc, 0x31c]                               |     
    0x00003e3c mov r0, r4                                        |     r0 = r4;
    0x00003e3e str r3, [sp, 0xc]                                 |     var_ch_2 = r3;
    0x00003e40 ldr r3, [sp, 0x38]                                |     r3 = var_38h_2;
    0x00003e42 add r2, pc                                        |     r2 = 0x7fa0;
    0x00003e44 subs r3, 0                                        |     
    0x00003e46 it ne                                             |     
                                                                 |     if (r3 == 0) {
    0x00003e48 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x00003e4a str r3, [sp]                                      |     *(sp) = r3;
    0x00003e4c add.w r3, r6, 8                                   |     r3 = r6 + 8;
    0x00003e50 str r3, [sp, 8]                                   |     var_8h_3 = r3;
    0x00003e52 mov.w r3, -1                                      |     r3 = -1;
    0x00003e56 str r3, [sp, 4]                                   |     var_4h_3 = r3;
    0x00003e58 mov r3, sb                                        |     r3 = sb;
    0x00003e5a blx 0x1994                                        |     r0 = bus_verify_polkit_async ();
    0x00003e5e subs r7, r0, 0                                    |     r7 = r0 - 0;
                                                                 |     if (r7 < r0) {
    0x00003e60 blt 0x3f22                                        |         goto label_0;
                                                                 |     }
    0x00003e62 it eq                                             |     
                                                                 |     if (r7 != r0) {
    0x00003e64 moveq r7, 1                                       |         r7 = 1;
                                                                 |     }
                                                                 |     if (r7 == r0) {
    0x00003e66 beq 0x3f22                                        |         goto label_0;
                                                                 |     }
    0x00003e68 ldr.w r8, [r6, 0x14]                              |     r8 = *((r6 + 0x14));
    0x00003e6c cmp.w r8, 0                                       |     
    0x00003e6e lsrs r0, r0, 0x1c                                 |     r0 >>= 0x1c;
                                                                 |     if (r0 == r0) {
    0x00003e70 beq 0x3e8c                                        |         goto label_30;
                                                                 |     }
    0x00003e72 mov fp, r4                                        |     
    0x00003e74 mov r4, r8                                        |     r4 = r8;
                                                                 |     do {
    0x00003e76 mov r8, r4                                        |         r8 = r4;
    0x00003e78 ldr r4, [r4, 0x14]                                |         r4 = *((r4 + 0x14));
    0x00003e7a ldr.w r0, [r8, 0x10]                              |         r0 = *((r8 + 0x10));
    0x00003e7e blx 0x19dc                                        |         free (r0);
    0x00003e82 str.w sb, [r8, 0x10]                              |         __asm ("str.w sb, [r8, 0x10]");
    0x00003e86 cmp r4, 0                                         |         
    0x00003e88 bne 0x3e76                                        |         
                                                                 |     } while (r4 != 0);
    0x00003e8a mov r4, fp                                        |     r4 = fp;
                                                                 | label_30:
    0x00003e8c ldr r3, [r6, 0x10]                                |     r3 = *((r6 + 0x10));
    0x00003e8e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00003e90 beq.w 0x40b0                                      |         goto label_31;
                                                                 |     }
                                                                 | label_6:
    0x00003e94 ldr r0, [sp, 0x34]                                |     r0 = var_34h_3;
    0x00003e96 ldr.w sb, [r6, 0x14]                              |     sb = *((r6 + 0x14));
    0x00003e9a mov r1, sb                                        |     r1 = sb;
    0x00003e9c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00003e9e beq 0x3f8a                                        |         goto label_32;
                                                                 |     }
    0x00003ea0 cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x00003ea4 beq.w 0x40fc                                      |         goto label_33;
                                                                 |     }
    0x00003ea8 ldr r1, [pc, 0x2b0]                               |     
    0x00003eaa mov.w r8, 0                                       |     r8 = 0;
    0x00003eae strd r4, r6, [sp, 0x28]                           |     __asm ("strd r4, r6, [sp, 0x28]");
    0x00003eb2 mov r6, sb                                        |     r6 = sb;
    0x00003eb4 add r1, pc                                        |     r1 = 0x8014;
    0x00003eb6 adds r3, r1, 7                                    |     r3 = r1 + 7;
    0x00003eb8 str r3, [sp, 0x24]                                |     var_24h_2 = r3;
    0x00003eba ldr r3, [pc, 0x2a4]                               |     
    0x00003ebc add r3, pc                                        |     r3 = 0x8022;
    0x00003ebe mov fp, r3                                        |     
                                                                 |     do {
    0x00003ec0 mov sb, r6                                        |         sb = r6;
    0x00003ec2 mov r1, fp                                        |         r1 = fp;
    0x00003ec4 ldr.w r0, [sb, 4]                                 |         r0 = *((sb + 4));
    0x00003ec8 blx 0x1d94                                        |         fcn_00001d94 ();
    0x00003ecc ldr r6, [r6, 0x14]                                |         r6 = *((r6 + 0x14));
    0x00003ece mov r4, r0                                        |         r4 = r0;
                                                                 |         if (r0 == 0) {
    0x00003ed0 cbnz r0, 0x3f08                                   |             
    0x00003ed2 ldr r7, [sp, 0x20]                                |             r7 = var_20h;
    0x00003ed4 clz sl, r8                                        |             sl &= r8;
    0x00003ed8 lsr.w sl, sl, 5                                   |             sl >>= 5;
    0x00003edc mov r1, r5                                        |             r1 = r5;
    0x00003ede mov r0, sb                                        |             r0 = sb;
    0x00003ee0 mov r2, r7                                        |             r2 = r7;
    0x00003ee2 mov r3, sl                                        |             r3 = sl;
    0x00003ee4 bl 0x28c0                                         |             r0 = fcn_000028c0 (r0, r1, r2, r3);
    0x00003ee8 cmp r0, 0                                         |             
                                                                 |             if (r0 < 0) {
    0x00003eea blt.w 0x4012                                      |                 goto label_34;
                                                                 |             }
    0x00003eee mov r2, r7                                        |             r2 = r7;
    0x00003ef0 mov r3, sl                                        |             r3 = sl;
    0x00003ef2 mov r1, r5                                        |             r1 = r5;
    0x00003ef4 mov r0, sb                                        |             r0 = sb;
    0x00003ef6 bl 0x2adc                                         |             r0 = fcn_00002adc (r0, r1, r2, r3);
    0x00003efa subs r7, r0, 0                                    |             r7 = r0 - 0;
                                                                 |             if (r7 < r0) {
    0x00003efc blt.w 0x4062                                      |                 goto label_35;
                                                                 |             }
                                                                 | label_2:
    0x00003f00 cmp.w sl, 0                                       |             
    0x00003f04 it ne                                             |             
                                                                 |             if (sl != 0) {
    0x00003f06 movne r8, sb                                      |                 r8 = sb;
                                                                 |                 goto label_1;
                                                                 |             }
                                                                 |         }
                                                                 | label_1:
    0x00003f08 cmp r6, 0                                         |         
    0x00003f0a bne 0x3ec0                                        |         
                                                                 |     } while (r6 != 0);
    0x00003f0c ldrd r4, r6, [sp, 0x28]                           |     __asm ("ldrd r4, r6, [var_28h_2]");
    0x00003f10 b 0x3fe2                                          |     goto label_36;
                                                                 | label_29:
    0x00003f12 ldr r2, [pc, 0x250]                               |     
    0x00003f14 ldr r1, [pc, 0x250]                               |     
    0x00003f16 ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x00003f18 add r2, pc                                        |     r2 = 0x8082;
    0x00003f1a add r1, pc                                        |     r1 = 0x8086;
    0x00003f1c blx 0x1c68                                        |     r0 = fcn_00001c68 ();
    0x00003f20 mov r7, r0                                        |     r7 = r0;
                                                                 | label_0:
    0x00003f22 ldr r0, [sp, 0x30]                                |     r0 = var_30h;
                                                                 |     if (r0 != 0) {
    0x00003f24 cbz r0, 0x3f2a                                    |         
    0x00003f26 blx 0x1d4c                                        |         fcn_00001d4c ();
                                                                 |     }
    0x00003f2a ldr r1, [pc, 0x240]                               |     
    0x00003f2c ldr r3, [pc, 0x21c]                               |     r3 = *(0x414c);
    0x00003f2e add r1, pc                                        |     r1 = 0x80a0;
    0x00003f30 ldr r3, [r1, r3]                                  |     r3 = *(0x80a0);
    0x00003f32 ldr r1, [r3]                                      |     r1 = *(0x80a0);
    0x00003f34 ldr r3, [sp, 0x3c]                                |     r3 = var_3ch;
    0x00003f36 eors r1, r3                                       |     r1 ^= r3;
    0x00003f38 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r1 != r3) {
    0x00003f3c bne.w 0x4144                                      |         goto label_37;
                                                                 |     }
    0x00003f40 mov r0, r7                                        |     r0 = r7;
    0x00003f42 add sp, 0x44                                      |     
    0x00003f44 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_26:
    0x00003f48 ldr r1, [pc, 0x224]                               |     
    0x00003f4a movw r2, 0x39d                                    |     r2 = 0x39d;
    0x00003f4e ldr r3, [pc, 0x224]                               |     
    0x00003f50 ldr r0, [pc, 0x224]                               |     
    0x00003f52 add r1, pc                                        |     r1 = 0x80c6;
    0x00003f54 add r3, pc                                        |     r3 = 0x80ce;
    0x00003f56 adds r1, 7                                        |     r1 += 7;
    0x00003f58 add r0, pc                                        |     r0 = 0x80d4;
    0x00003f5a blx 0x19ac                                        |     log_assert_failed ();
                                                                 | label_27:
    0x00003f5e ldr r1, [pc, 0x21c]                               |     
    0x00003f60 movw r2, 0x39e                                    |     r2 = 0x39e;
    0x00003f64 ldr r3, [pc, 0x218]                               |     
    0x00003f66 ldr r0, [pc, 0x21c]                               |     
    0x00003f68 add r1, pc                                        |     r1 = 0x80ea;
    0x00003f6a add r3, pc                                        |     r3 = 0x80ee;
    0x00003f6c adds r1, 7                                        |     r1 += 7;
    0x00003f6e add r0, pc                                        |     r0 = 0x80f8;
    0x00003f70 blx 0x19ac                                        |     log_assert_failed ();
                                                                 | label_28:
    0x00003f74 ldr r1, [pc, 0x210]                               |     
    0x00003f76 movw r2, 0x39f                                    |     r2 = 0x39f;
    0x00003f7a ldr r3, [pc, 0x210]                               |     
    0x00003f7c ldr r0, [pc, 0x210]                               |     
    0x00003f7e add r1, pc                                        |     r1 = 0x810a;
    0x00003f80 add r3, pc                                        |     r3 = 0x8112;
    0x00003f82 adds r1, 7                                        |     r1 += 7;
    0x00003f84 add r0, pc                                        |     r0 = 0x8118;
    0x00003f86 blx 0x19ac                                        |     log_assert_failed ();
                                                                 | label_32:
    0x00003f8a cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00003f8c beq.w 0x4138                                      |         goto label_38;
                                                                 |     }
    0x00003f90 ldr.w sl, [pc, 0x200]                             |     
    0x00003f94 mov sb, r5                                        |     sb = r5;
    0x00003f96 ldr.w fp, [sp, 0x20]                              |     fp = var_20h;
    0x00003f9a mov r5, r1                                        |     r5 = r1;
    0x00003f9c str r4, [sp, 0x24]                                |     var_24h_2 = r4;
    0x00003f9e add sl, pc                                        |     sl = 0x8136;
                                                                 |     do {
    0x00003fa0 mov r8, r5                                        |         r8 = r5;
    0x00003fa2 mov r1, sl                                        |         r1 = sl;
    0x00003fa4 ldr.w r0, [r8, 4]                                 |         r0 = *((r8 + 4));
    0x00003fa8 blx 0x1d94                                        |         fcn_00001d94 ();
    0x00003fac ldr r5, [r5, 0x14]                                |         r5 = *((r5 + 0x14));
    0x00003fae mov r4, r0                                        |         r4 = r0;
                                                                 |         if (r0 == 0) {
    0x00003fb0 cbnz r0, 0x3fda                                   |             
    0x00003fb2 mov r3, r4                                        |             r3 = r4;
    0x00003fb4 mov r2, fp                                        |             r2 = fp;
    0x00003fb6 mov r1, sb                                        |             r1 = sb;
    0x00003fb8 mov r0, r8                                        |             r0 = r8;
    0x00003fba bl 0x28c0                                         |             fcn_000028c0 (r0, r1, r2, r3);
    0x00003fbe mov r3, r4                                        |             r3 = r4;
    0x00003fc0 bics.w r7, r7, r0, asr 32                         |             __asm ("bics.w r7, r7, r0, asr 32");
    0x00003fc4 it hs                                             |             
                                                                 |             if (r0 < 0) {
    0x00003fc6 movhs r7, r0                                      |                 r7 = r0;
                                                                 |             }
    0x00003fc8 mov r2, fp                                        |             r2 = fp;
    0x00003fca mov r0, r8                                        |             r0 = r8;
    0x00003fcc mov r1, sb                                        |             r1 = sb;
    0x00003fce bl 0x2adc                                         |             r0 = fcn_00002adc (r0, r1, r2, r3);
    0x00003fd2 bics.w r7, r7, r0, asr 32                         |             __asm ("bics.w r7, r7, r0, asr 32");
    0x00003fd6 it hs                                             |             
                                                                 |             if (r0 >= 0) {
    0x00003fd8 movhs r7, r0                                      |                 r7 = r0;
                                                                 |                 goto label_39;
                                                                 |             }
                                                                 |         }
                                                                 | label_39:
    0x00003fda cmp r5, 0                                         |         
    0x00003fdc bne 0x3fa0                                        |         
                                                                 |     } while (r5 != 0);
    0x00003fde ldr r4, [sp, 0x24]                                |     r4 = var_24h_2;
    0x00003fe0 mov r8, r5                                        |     r8 = r5;
                                                                 | label_36:
    0x00003fe2 cmp r7, 0                                         |     
                                                                 |     if (r7 < 0) {
    0x00003fe4 blt 0x3f22                                        |         goto label_0;
                                                                 |     }
    0x00003fe6 ldr r3, [sp, 0x34]                                |     r3 = var_34h_3;
    0x00003fe8 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00003fea beq 0x407a                                        |         goto label_40;
                                                                 |     }
    0x00003fec cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00003ff0 beq.w 0x40fc                                      |         goto label_33;
                                                                 |     }
    0x00003ff4 ldr r3, [sp, 0x30]                                |     r3 = var_30h;
                                                                 |     if (r3 != 0) {
    0x00003ff6 cbz r3, 0x3ffe                                    |         
    0x00003ff8 movs r2, 0                                        |         r2 = 0;
    0x00003ffa str r3, [r6, 0x10]                                |         *((r6 + 0x10)) = r3;
    0x00003ffc str r2, [sp, 0x30]                                |         var_30h = r2;
                                                                 |     }
                                                                 | label_4:
    0x00003ffe blx 0x1ab4                                        |     r0 = log_get_max_level ();
    0x00004002 cmp r0, 5                                         |     
                                                                 |     if (r0 > 5) {
    0x00004004 bgt 0x40d6                                        |         goto label_41;
                                                                 |     }
                                                                 | label_5:
    0x00004006 movs r1, 0                                        |     r1 = 0;
    0x00004008 mov r0, r4                                        |     r0 = r4;
    0x0000400a blx 0x1b5c                                        |     r0 = sd_bus_reply_method_return ();
    0x0000400e mov r7, r0                                        |     r7 = r0;
    0x00004010 b 0x3f22                                          |     goto label_0;
                                                                 | label_34:
    0x00004012 ldr r2, [sp, 0x20]                                |     r2 = var_20h;
    0x00004014 mov r3, r4                                        |     r3 = r4;
    0x00004016 mov r1, r5                                        |     r1 = r5;
    0x00004018 mov r0, sb                                        |     r0 = sb;
    0x0000401a bl 0x2adc                                         |     r0 = fcn_00002adc (r0, r1, r2, r3);
    0x0000401e subs r7, r0, 0                                    |     r7 = r0 - 0;
                                                                 |     if (r7 >= r0) {
    0x00004020 bge.w 0x3f08                                      |         goto label_1;
                                                                 |     }
    0x00004024 ldr.w r3, [sb]                                    |     r3 = *(sb);
                                                                 |     do {
    0x00004028 ldr r2, [pc, 0x16c]                               |         
    0x0000402a mov.w sl, 0                                       |         sl = 0;
    0x0000402e ldr r1, [pc, 0x16c]                               |         
    0x00004030 add r2, pc                                        |         r2 = 0x81cc;
    0x00004032 add r1, pc                                        |         r1 = 0x81d4;
                                                                 | label_3:
    0x00004034 str r3, [sp, 8]                                   |         var_8h_3 = r3;
    0x00004036 movs r0, 4                                        |         r0 = 4;
    0x00004038 ldr r3, [pc, 0x164]                               |         
    0x0000403a strd r2, r1, [sp, 0x18]                           |         __asm ("strd r2, r1, [sp, 0x18]");
    0x0000403e mov r1, r7                                        |         r1 = r7;
    0x00004040 ldr r2, [sp, 0x24]                                |         r2 = var_24h_2;
    0x00004042 add r3, pc                                        |         r3 = 0x81e6;
    0x00004044 str r3, [sp, 0x14]                                |         var_14h_3 = r3;
    0x00004046 ldr r3, [pc, 0x15c]                               |         
    0x00004048 add r3, pc                                        |         r3 = 0x81f2;
    0x0000404a str r3, [sp, 4]                                   |         var_4h_3 = r3;
    0x0000404c ldr r3, [pc, 0x158]                               |         
    0x0000404e add r3, pc                                        |         r3 = 0x81fa;
    0x00004050 str r3, [sp]                                      |         *(sp) = r3;
    0x00004052 movs r3, 0                                        |         r3 = 0;
    0x00004054 strd r3, r3, [sp, 0xc]                            |         __asm ("strd r3, r3, [sp, 0xc]");
    0x00004058 movw r3, 0x3d7                                    |         r3 = 0x3d7;
    0x0000405c blx 0x1d40                                        |         fcn_00001d40 ();
    0x00004060 b 0x3f00                                          |         goto label_2;
                                                                 | label_35:
    0x00004062 ldr.w r3, [sb]                                    |         r3 = *(sb);
    0x00004066 cmp.w r8, 0                                       |         
    0x0000406a bne 0x4028                                        |         
                                                                 |     } while (r8 != 0);
    0x0000406c ldr r2, [pc, 0x13c]                               |     
    0x0000406e mov.w sl, 1                                       |     sl = 1;
    0x00004072 ldr r1, [pc, 0x13c]                               |     
    0x00004074 add r2, pc                                        |     r2 = 0x8224;
    0x00004076 add r1, pc                                        |     r1 = 0x822c;
    0x00004078 b 0x4034                                          |     goto label_3;
                                                                 | label_40:
    0x0000407a ldr r2, [sp, 0x30]                                |     r2 = var_30h;
                                                                 |     if (r2 != 0) {
    0x0000407c cbz r2, 0x4082                                    |         
    0x0000407e str r3, [sp, 0x30]                                |         var_30h = r3;
    0x00004080 str r2, [r6, 0x10]                                |         *((r6 + 0x10)) = r2;
                                                                 |     }
    0x00004082 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x00004086 bne 0x3ffe                                        |         goto label_4;
                                                                 |     }
                                                                 | label_7:
    0x00004088 blx 0x1ab4                                        |     r0 = log_get_max_level ();
    0x0000408c cmp r0, 5                                         |     
                                                                 |     if (r0 <= 5) {
    0x0000408e ble 0x4006                                        |         goto label_5;
                                                                 |     }
    0x00004090 ldr r2, [pc, 0x120]                               |     
    0x00004092 movw r3, 0x3f6                                    |     r3 = 0x3f6;
    0x00004096 ldr r0, [pc, 0x120]                               |     
    0x00004098 ldr r1, [pc, 0x120]                               |     
    0x0000409a add r2, pc                                        |     r2 = 0x8252;
    0x0000409c add r0, pc                                        |     r0 = 0x825a;
    0x0000409e adds r2, 7                                        |     r2 += 7;
    0x000040a0 add r1, pc                                        |     r1 = 0x8260;
    0x000040a2 strd r1, r0, [sp]                                 |     __asm ("strd r1, r0, [sp]");
    0x000040a6 movs r1, 0                                        |     r1 = 0;
    0x000040a8 movs r0, 6                                        |     r0 = 6;
    0x000040aa blx 0x1bb0                                        |     log_internal ();
    0x000040ae b 0x4006                                          |     goto label_5;
                                                                 | label_31:
    0x000040b0 ldr r2, [pc, 0x10c]                               |     
    0x000040b2 add r1, sp, 0x30                                  |     r1 += var_30h;
    0x000040b4 mov r0, r5                                        |     r0 = r5;
    0x000040b6 ldr.w r2, [sl, r2]                                |     r2 = *((sl + r2));
    0x000040ba strd r3, r6, [sp, 4]                              |     __asm ("strd r3, r6, [sp, 4]");
    0x000040be ldr r3, [pc, 0x104]                               |     
    0x000040c0 ldr r2, [r2]                                      |     r2 = *(0x41c0);
    0x000040c2 add r3, pc                                        |     r3 = 0x828c;
    0x000040c4 str r3, [sp]                                      |     *(sp) = r3;
    0x000040c6 ldr r3, [pc, 0x100]                               |     
    0x000040c8 add r3, pc                                        |     r3 = 0x8296;
    0x000040ca blx 0x19f4                                        |     r0 = bus_match_signal_async ();
    0x000040ce subs r7, r0, 0                                    |     r7 = r0 - 0;
                                                                 |     if (r7 >= r0) {
    0x000040d0 bge.w 0x3e94                                      |         goto label_6;
                                                                 |     }
    0x000040d4 b 0x3f22                                          |     goto label_0;
                                                                 | label_41:
    0x000040d6 ldr r2, [pc, 0xf4]                                |     
    0x000040d8 ldr r3, [pc, 0xf4]                                |     
    0x000040da ldr r0, [pc, 0xf8]                                |     
    0x000040dc ldr.w r1, [r8]                                    |     r1 = *(r8);
    0x000040e0 add r2, pc                                        |     r2 = 0x82b2;
    0x000040e2 add r3, pc                                        |     r3 = 0x82b6;
    0x000040e4 adds r2, 7                                        |     r2 += 7;
    0x000040e6 add r0, pc                                        |     r0 = 0x82c0;
    0x000040e8 strd r3, r1, [sp, 4]                              |     __asm ("strd r3, r1, [sp, 4]");
    0x000040ec mov.w r3, 0x3f4                                   |     r3 = 0x3f4;
    0x000040f0 str r0, [sp]                                      |     *(sp) = r0;
    0x000040f2 movs r1, 0                                        |     r1 = 0;
    0x000040f4 movs r0, 6                                        |     r0 = 6;
    0x000040f6 blx 0x1bb0                                        |     log_internal ();
    0x000040fa b 0x4006                                          |     goto label_5;
                                                                 | label_33:
    0x000040fc blx 0x1ab4                                        |     r0 = log_get_max_level ();
    0x00004100 cmp r0, 2                                         |     
    0x00004102 it le                                             |     
                                                                 |     if (r0 <= 2) {
    0x00004104 mvnle r7, 1                                       |         r7 = ~1;
                                                                 |         goto label_42;
                                                                 |     }
                                                                 |     if (r0 <= 2) {
                                                                 | label_42:
    0x00004108 ble.w 0x3f22                                      |         goto label_0;
                                                                 |     }
    0x0000410c ldr r2, [pc, 0xc8]                                |     
    0x0000410e movs r1, 2                                        |     r1 = 2;
    0x00004110 ldr r0, [pc, 0xc8]                                |     
    0x00004112 movw r3, 0x3ee                                    |     r3 = 0x3ee;
    0x00004116 ldr r4, [pc, 0xc8]                                |     
    0x00004118 movt r1, 0x4000                                   |     r1 = (r1 & 0xFFFF) | 0x40000000;
    0x0000411c add r2, pc                                        |     r2 = 0x82f8;
    0x0000411e add r0, pc                                        |     r0 = 0x82fe;
    0x00004120 adds r2, 7                                        |     r2 += 7;
    0x00004122 add r4, pc                                        |     r4 = 0x8308;
    0x00004124 str r0, [sp, 4]                                   |     var_4h_3 = r0;
    0x00004126 str r4, [sp]                                      |     *(sp) = r4;
    0x00004128 movs r0, 3                                        |     r0 = 3;
    0x0000412a blx 0x1bb0                                        |     r0 = log_internal ();
    0x0000412e subs r7, r0, 0                                    |     r7 = r0 - 0;
    0x00004130 it ge                                             |     
                                                                 |     if (r7 < r0) {
    0x00004132 mvnge r7, 0x55                                    |         r7 = ~0x55;
                                                                 |     }
    0x00004136 b 0x3f22                                          |     goto label_0;
                                                                 | label_38:
    0x00004138 ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x0000413a cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000413c beq 0x4088                                        |         goto label_7;
                                                                 |     }
    0x0000413e str r1, [sp, 0x30]                                |     var_30h = r1;
    0x00004140 str r3, [r6, 0x10]                                |     *((r6 + 0x10)) = r3;
    0x00004142 b 0x4088                                          |     goto label_7;
                                                                 | label_37:
    0x00004144 blx 0x1bd4                                        |     stack_chk_fail ();
    0x00004148 adds r0, 0x34                                     |     r0 += 0x34;
    0x0000414a movs r0, r0                                       |     
    0x0000414c lsls r0, r6, 6                                    |     r0 = r6 << 6;
    0x0000414e movs r0, r0                                       |     
    0x00004150 adds r0, 0x30                                     |     r0 += 0x30;
    0x00004152 movs r0, r0                                       |     
    0x00004154 asrs r2, r0, 4                                    |     r2 = r0 >> 4;
    0x00004156 movs r0, r0                                       |     
    0x00004158 asrs r2, r2, 4                                    |     r2 >>= 4;
    0x0000415a movs r0, r0                                       |     
    0x0000415c lsrs r0, r5, 9                                    |     r0 = r5 >> 9;
    0x0000415e movs r0, r0                                       |     
    0x00004160 asrs r4, r0, 0x20                                 |     r4 = r0 >> 0x20;
    0x00004162 movs r0, r0                                       |     
    0x00004164 asrs r0, r0, 0x20                                 |     r0 >>= 0x20;
    0x00004166 movs r0, r0                                       |     
    0x00004168 asrs r2, r2, 0x20                                 |     r2 >>= 0x20;
    0x0000416a movs r0, r0                                       |     
    0x0000416c cmp r6, 0xe6                                      |     
    0x0000416e movs r0, r0                                       |     
    0x00004170 lsrs r2, r1, 7                                    |     r2 = r1 >> 7;
    0x00004172 movs r0, r0                                       |     
    0x00004174 subs r4, r2, r0                                   |     r4 = r2 - r0;
    0x00004176 movs r0, r0                                       |     
    0x00004178 asrs r4, r7, 7                                    |     r4 = r7 >> 7;
    0x0000417a movs r0, r0                                       |     
    0x0000417c lsrs r4, r6, 6                                    |     r4 = r6 >> 6;
    0x0000417e movs r0, r0                                       |     
    0x00004180 adds r6, r7, r7                                   |     r6 = r7 + r7;
    0x00004182 movs r0, r0                                       |     
    0x00004184 lsrs r2, r5, 7                                    |     r2 = r5 >> 7;
    0x00004186 movs r0, r0                                       |     
    0x00004188 lsrs r6, r3, 6                                    |     r6 = r3 >> 6;
    0x0000418a movs r0, r0                                       |     
    0x0000418c adds r0, r5, r7                                   |     r0 = r5 + r7;
    0x0000418e movs r0, r0                                       |     
    0x00004190 lsrs r0, r4, 0xb                                  |     r0 = r4 >> 0xb;
    0x00004192 movs r0, r0                                       |     
    0x00004194 lsrs r2, r4, 0x1c                                 |     r2 = r4 >> 0x1c;
    0x00004196 movs r0, r0                                       |     
    0x00004198 lsrs r4, r3, 0x1b                                 |     r4 = r3 >> 0x1b;
    0x0000419a movs r0, r0                                       |     
    0x0000419c lsrs r2, r4, 3                                    |     r2 = r4 >> 3;
    0x0000419e movs r0, r0                                       |     
    0x000041a0 lsrs r2, r0, 0x1d                                 |     r2 = r0 >> 0x1d;
    0x000041a2 movs r0, r0                                       |     
    0x000041a4 lsrs r4, r6, 4                                    |     r4 = r6 >> 4;
    0x000041a6 movs r0, r0                                       |     
    0x000041a8 adds r2, r1, r4                                   |     r2 = r1 + r4;
    0x000041aa movs r0, r0                                       |     
    0x000041ac lsrs r0, r2, 0x1a                                 |     r0 = r2 >> 0x1a;
    0x000041ae movs r0, r0                                       |     
    0x000041b0 lsrs r6, r2, 2                                    |     r6 = r2 >> 2;
    0x000041b2 movs r0, r0                                       |     
    0x000041b4 lsrs r2, r0, 2                                    |     r2 = r0 >> 2;
    0x000041b6 movs r0, r0                                       |     
    0x000041b8 lsrs r4, r1, 0x1d                                 |     r4 = r1 >> 0x1d;
    0x000041ba movs r0, r0                                       |     
    0x000041bc adds r0, r7, r2                                   |     r0 = r7 + r2;
    0x000041be movs r0, r0                                       |     
    0x000041c0 lsls r4, r5, 6                                    |     r4 = r5 << 6;
    0x000041c2 movs r0, r0                                       |     
    0x000041c4 lsls r3, r4, 0x1b                                 |     r3 = r4 << 0x1b;
    0x000041c6 movs r0, r0                                       |     
    0x000041c8 lsrs r0, r6, 0x1a                                 |     r0 = r6 >> 0x1a;
    0x000041ca movs r0, r0                                       |     
    0x000041cc lsrs r4, r7, 0x20                                 |     r4 = r7 >> 0x20;
    0x000041ce movs r0, r0                                       |     
    0x000041d0 lsrs r2, r5, 0x1b                                 |     r2 = r5 >> 0x1b;
    0x000041d2 movs r0, r0                                       |     
    0x000041d4 adds r2, r6, r1                                   |     r2 = r6 + r1;
    0x000041d6 movs r0, r0                                       |     
    0x000041d8 lsrs r0, r0, 0x20                                 |     r0 >>= 0x20;
    0x000041da movs r0, r0                                       |     
    0x000041dc lsrs r6, r1, 0x1a                                 |     r6 = r1 >> 0x1a;
    0x000041de movs r0, r0                                       |     
    0x000041e0 adds r6, r6, r0                                   |     r6 += r0;
    0x000041e2 movs r0, r0                                       |     
    0x000041e4 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x000041e8 mov r5, r2                                        |     r5 = r2;
    0x000041ea ldr r2, [pc, 0x314]                               |     
    0x000041ec mov r6, r0                                        |     r6 = r0;
    0x000041ee sub sp, 0xa0                                      |     
    0x000041f0 mov r4, r1                                        |     r4 = r1;
    0x000041f2 ldr r3, [pc, 0x310]                               |     r3 = *(0x4506);
    0x000041f4 add r2, pc                                        |     r2 = 0x86fa;
    0x000041f6 ldr r3, [r2, r3]                                  |     
    0x000041f8 ldr r3, [r3]                                      |     r3 = *(0x86fa);
    0x000041fa str r3, [sp, 0x9c]                                |     var_9ch = r3;
    0x000041fc mov.w r3, 0                                       |     r3 = 0;
    0x00004200 blx 0x1d70                                        |     fcn_00001d70 ();
    0x00004204 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00004206 beq 0x4306                                        |         goto label_43;
                                                                 |     }
    0x00004208 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0000420a beq.w 0x4342                                      |         goto label_44;
                                                                 |     }
    0x0000420e ldr r7, [r4, 0x10]                                |     r7 = *((r4 + 0x10));
                                                                 |     if (r7 != 0) {
    0x00004210 cbz r7, 0x423c                                    |         
    0x00004212 ldr r2, [pc, 0x2f4]                               |         
    0x00004214 ldr r3, [pc, 0x2ec]                               |         r3 = *(0x4504);
    0x00004216 add r2, pc                                        |         r2 = 0x8724;
    0x00004218 ldr r3, [r2, r3]                                  |         r3 = *(0x8724);
    0x0000421a ldr r2, [r3]                                      |         r2 = *(0x8724);
    0x0000421c ldr r3, [sp, 0x9c]                                |         r3 = var_9ch;
    0x0000421e eors r2, r3                                       |         r2 ^= r3;
    0x00004220 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00004224 bne.w 0x44fc                                      |             goto label_45;
                                                                 |         }
    0x00004228 ldr r2, [pc, 0x2e0]                               |         
    0x0000422a mov r0, r5                                        |         r0 = r5;
    0x0000422c ldr r1, [pc, 0x2e0]                               |         
    0x0000422e add r2, pc                                        |         r2 = 0x873e;
    0x00004230 add r1, pc                                        |         r1 = 0x8744;
    0x00004232 add sp, 0xa0                                      |         
    0x00004234 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |         
    0x00004238 b.w 0x1c64                                        |         void (*0x1c64)() ();
                                                                 |     }
    0x0000423c mov r1, r0                                        |     r1 = r0;
    0x0000423e mov r2, r6                                        |     r2 = r6;
    0x00004240 mov r0, r4                                        |     r0 = r4;
    0x00004242 bl 0x3c3c                                         |     r0 = fcn_00003c3c (r0, r1, r2, r3);
    0x00004246 subs r1, r0, 0                                    |     r1 = r0 - 0;
                                                                 |     if (r1 < r0) {
    0x00004248 blt 0x431c                                        |         goto label_46;
                                                                 |     }
    0x0000424a mov r0, r4                                        |     r0 = r4;
    0x0000424c bl 0x3170                                         |     r0 = fcn_00003170 (r0);
    0x00004250 cmp r0, 0                                         |     
                                                                 |     if (r0 > 0) {
    0x00004252 bgt 0x42dc                                        |         goto label_47;
                                                                 |     }
    0x00004254 movs r0, 1                                        |     r0 = 1;
    0x00004256 blx 0x1d58                                        |     fcn_00001d58 ();
    0x0000425a strd r0, r1, [sp, 0x38]                           |     __asm ("strd r0, r1, [sp, 0x38]");
    0x0000425e add r3, sp, 0x2c                                  |     r3 += var_2ch;
    0x00004260 ldr r1, [pc, 0x2b0]                               |     
    0x00004262 add r2, sp, 0x30                                  |     r2 += var_30h_2;
    0x00004264 str r3, [sp]                                      |     *(sp) = r3;
    0x00004266 mov r0, r6                                        |     r0 = r6;
    0x00004268 add r3, sp, 0x28                                  |     r3 += var_28h;
    0x0000426a add r1, pc                                        |     r1 = 0x8782;
    0x0000426c blx 0x1cbc                                        |     r0 = fcn_00001cbc ();
    0x00004270 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00004272 blt 0x42c0                                        |         goto label_9;
                                                                 |     }
    0x00004274 ldr r1, [sp, 0x28]                                |     r1 = var_28h;
    0x00004276 ldr r2, [sp, 0x30]                                |     r2 = var_30h_2;
    0x00004278 ldr r3, [sp, 0x34]                                |     r3 = var_34h_2;
    0x0000427a cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x0000427c bne 0x4358                                        |         goto label_48;
                                                                 |     }
    0x0000427e cmp r2, 1                                         |     
    0x00004280 sbcs r1, r3, 0                                    |     __asm ("sbcs r1, r3, 0");
                                                                 |     if (r2 < 1) {
    0x00004284 blt.w 0x4464                                      |         goto label_49;
                                                                 |     }
                                                                 |     do {
                                                                 | label_10:
    0x00004288 add r7, sp, 0x40                                  |         r7 += var_40h;
    0x0000428a mov r0, r7                                        |         r0 = r7;
    0x0000428c blx 0x1a54                                        |         timespec_store ();
    0x00004290 add.w r3, r4, 8                                   |         r3 = r4 + 8;
    0x00004294 ldr r2, [pc, 0x280]                               |         
    0x00004296 strd r3, r5, [sp, 8]                              |         __asm ("strd r3, r5, [sp, 8]");
    0x0000429a mov.w r3, -1                                      |         r3 = -1;
    0x0000429e str r3, [sp, 4]                                   |         var_4h_2 = r3;
    0x000042a0 movs r1, 0x19                                     |         r1 = 0x19;
    0x000042a2 ldr r3, [sp, 0x2c]                                |         r3 = var_2ch;
    0x000042a4 add r2, pc                                        |         r2 = 0x87c0;
    0x000042a6 mov r0, r6                                        |         r0 = r6;
    0x000042a8 subs r3, 0                                        |         
    0x000042aa it ne                                             |         
                                                                 |         if (r3 == 0) {
    0x000042ac movne r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x000042ae str r3, [sp]                                      |         *(sp) = r3;
    0x000042b0 movs r3, 0                                        |         r3 = 0;
    0x000042b2 blx 0x1994                                        |         r0 = bus_verify_polkit_async ();
    0x000042b6 cmp r0, 0                                         |         
                                                                 |         if (r0 >= 0) {
    0x000042b8 blt 0x42c0                                        |             
    0x000042ba it eq                                             |             
                                                                 |             if (r0 != 0) {
    0x000042bc moveq r0, 1                                       |                 r0 = 1;
                                                                 |             }
                                                                 |             if (r0 != 0) {
    0x000042be bne 0x4396                                        |                 goto label_50;
                                                                 |             }
                                                                 |         }
                                                                 | label_9:
    0x000042c0 ldr r2, [pc, 0x258]                               |         
    0x000042c2 ldr r3, [pc, 0x240]                               |         r3 = *(0x4506);
    0x000042c4 add r2, pc                                        |         r2 = 0x87e4;
    0x000042c6 ldr r3, [r2, r3]                                  |         r3 = *(0x87e4);
    0x000042c8 ldr r2, [r3]                                      |         r2 = *(0x87e4);
    0x000042ca ldr r3, [sp, 0x9c]                                |         r3 = var_9ch;
    0x000042cc eors r2, r3                                       |         r2 ^= r3;
    0x000042ce mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000042d2 bne.w 0x44fc                                      |             goto label_45;
                                                                 |         }
    0x000042d6 add sp, 0xa0                                      |         
    0x000042d8 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_47:
    0x000042dc ldr r2, [pc, 0x240]                               |         
    0x000042de ldr r3, [pc, 0x224]                               |         r3 = *(0x4506);
    0x000042e0 add r2, pc                                        |         r2 = 0x8804;
    0x000042e2 ldr r3, [r2, r3]                                  |         r3 = *(0x8804);
    0x000042e4 ldr r2, [r3]                                      |         r2 = *(0x8804);
    0x000042e6 ldr r3, [sp, 0x9c]                                |         r3 = var_9ch;
    0x000042e8 eors r2, r3                                       |         r2 ^= r3;
    0x000042ea mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000042ee bne.w 0x44fc                                      |             goto label_45;
                                                                 |         }
    0x000042f2 ldr r2, [pc, 0x230]                               |         
    0x000042f4 mov r0, r5                                        |         r0 = r5;
    0x000042f6 ldr r1, [pc, 0x230]                               |         
    0x000042f8 add r2, pc                                        |         r2 = 0x8822;
    0x000042fa add r1, pc                                        |         r1 = 0x8828;
    0x000042fc add sp, 0xa0                                      |         
    0x000042fe pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |         
    0x00004302 b.w 0x1c64                                        |         void (*0x1c64)() ();
                                                                 | label_43:
    0x00004306 ldr r1, [pc, 0x224]                               |         
    0x00004308 movw r2, 0x343                                    |         r2 = 0x343;
    0x0000430c ldr r3, [pc, 0x220]                               |         
    0x0000430e ldr r0, [pc, 0x224]                               |         
    0x00004310 add r1, pc                                        |         r1 = 0x8842;
    0x00004312 add r3, pc                                        |         r3 = 0x8846;
    0x00004314 adds r1, 7                                        |         r1 += 7;
    0x00004316 add r0, pc                                        |         r0 = 0x8850;
    0x00004318 blx 0x19ac                                        |         log_assert_failed ();
                                                                 | label_46:
    0x0000431c ldr r2, [pc, 0x218]                               |         
    0x0000431e ldr r3, [pc, 0x1e4]                               |         r3 = *(0x4506);
    0x00004320 add r2, pc                                        |         r2 = 0x885c;
    0x00004322 ldr r3, [r2, r3]                                  |         r3 = *(0x885c);
    0x00004324 ldr r2, [r3]                                      |         r2 = *(0x885c);
    0x00004326 ldr r3, [sp, 0x9c]                                |         r3 = var_9ch;
    0x00004328 eors r2, r3                                       |         r2 ^= r3;
    0x0000432a mov.w r3, 0                                       |         r3 = 0;
    0x0000432c lsls r0, r0, 0xc                                  |         r0 <<= 0xc;
                                                                 |         if (r0 != r0) {
    0x0000432e bne.w 0x44fc                                      |             goto label_45;
                                                                 |         }
    0x00004332 ldr r2, [pc, 0x208]                               |         
    0x00004334 mov r0, r5                                        |         r0 = r5;
    0x00004336 add r2, pc                                        |         r2 = 0x8878;
    0x00004338 add sp, 0xa0                                      |         
    0x0000433a pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |         
    0x0000433e b.w 0x1db8                                        |         goto label_8;
                                                                 | label_44:
    0x00004342 ldr r1, [pc, 0x1fc]                               |         
    0x00004344 mov.w r2, 0x344                                   |         r2 = 0x344;
    0x00004348 ldr r3, [pc, 0x1f8]                               |         
    0x0000434a ldr r0, [pc, 0x1fc]                               |         
    0x0000434c add r1, pc                                        |         r1 = 0x8892;
    0x0000434e add r3, pc                                        |         r3 = 0x8896;
    0x00004350 adds r1, 7                                        |         r1 += 7;
    0x00004352 add r0, pc                                        |         r0 = 0x88a0;
    0x00004354 blx 0x19ac                                        |         log_assert_failed ();
                                                                 | label_48:
    0x00004358 orrs r2, r3                                       |         r2 |= r3;
                                                                 |         if (r2 == r3) {
    0x0000435a beq 0x445a                                        |             goto label_51;
                                                                 |         }
    0x0000435c mov r0, r7                                        |         r0 = r7;
    0x0000435e mov.w r8, 0                                       |         r8 = 0;
    0x00004362 blx 0x1d58                                        |         fcn_00001d58 ();
    0x00004366 ldrd r7, ip, [sp, 0x30]                           |         __asm ("ldrd r7, ip, [var_30h_2]");
    0x0000436a mov lr, r8                                        |         lr = r8;
    0x0000436c adds r2, r7, r0                                   |         r2 = r7 + r0;
    0x0000436e adcs.w r3, ip, r1                                 |         __asm ("adcs.w r3, ip, r1");
    0x00004372 it hs                                             |         
                                                                 |         if (r2 < r7) {
    0x00004374 movhs r8, 1                                       |             r8 = 1;
                                                                 |         }
    0x00004378 cmp r7, 1                                         |         
    0x0000437a sbcs sb, ip, 0                                    |         __asm ("sbcs sb, ip, 0");
                                                                 |         if (r7 < 1) {
    0x0000437e blt 0x4474                                        |             goto label_52;
                                                                 |         }
    0x00004380 orrs.w lr, lr, r8                                 |         lr |= r8;
    0x00004384 beq 0x4288                                        |         
                                                                 |     } while (lr == lr);
                                                                 | label_11:
    0x00004386 ldr r2, [pc, 0x1c4]                               |     
    0x00004388 mov r0, r5                                        |     r0 = r5;
    0x0000438a ldr r1, [pc, 0x1c4]                               |     
    0x0000438c add r2, pc                                        |     r2 = 0x88de;
    0x0000438e add r1, pc                                        |     r1 = 0x88e4;
    0x00004390 blx 0x1c68                                        |     fcn_00001c68 ();
    0x00004394 b 0x42c0                                          |     goto label_9;
                                                                 | label_50:
    0x00004396 add r1, sp, 0x38                                  |     r1 += var_38h;
    0x00004398 mov r0, r6                                        |     r0 = r6;
    0x0000439a blx 0x1c74                                        |     r0 = fcn_00001c74 ();
    0x0000439e adds.w sb, r0, 0x3d                               |     sb = r0 + 0x3d;
    0x000043a2 it ne                                             |     
                                                                 |     if (sb == r0) {
    0x000043a4 movne sb, 1                                       |         sb = 1;
                                                                 |     }
    0x000043a8 ands.w sb, sb, r0, lsr 31                         |     sb &= (r0 >> 31);
                                                                 |     if (sb != sb) {
    0x000043ac bne 0x42c0                                        |         goto label_9;
                                                                 |     }
    0x000043ae mov r0, r7                                        |     r0 = r7;
    0x000043b0 blx 0x1a3c                                        |     r0 = timespec_load ();
    0x000043b4 mov r8, r0                                        |     r8 = r0;
    0x000043b6 movs r0, 1                                        |     r0 = 1;
    0x000043b8 mov sl, r1                                        |     sl = r1;
    0x000043ba blx 0x1d58                                        |     fcn_00001d58 ();
    0x000043be ldr r3, [sp, 0x38]                                |     r3 = var_38h;
    0x000043c0 adds.w r8, r8, r0                                 |     r8 += r0;
    0x000043c4 adc.w sl, sl, r1                                  |     __asm ("adc.w sl, sl, r1");
    0x000043c8 mov r0, r7                                        |     r0 = r7;
    0x000043ca subs.w r2, r8, r3                                 |     r2 = r8 - r3;
    0x000043ce ldr r3, [sp, 0x3c]                                |     r3 = var_3ch_2;
    0x000043d0 sbc.w r3, sl, r3                                  |     __asm ("sbc.w r3, sl, r3");
    0x000043d4 blx 0x1a54                                        |     timespec_store ();
    0x000043d8 mov r1, r7                                        |     r1 = r7;
    0x000043da mov r0, sb                                        |     r0 = sb;
    0x000043dc blx 0x1b14                                        |     r0 = clock_settime ();
    0x000043e0 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000043e2 blt 0x4492                                        |         goto label_53;
                                                                 |     }
    0x000043e4 ldrb r2, [r4, 4]                                  |     r2 = *((r4 + 4));
    0x000043e6 add r4, sp, 0x48                                  |     r4 += var_48h;
    0x000043e8 mov r1, r4                                        |     r1 = r4;
    0x000043ea mov r0, r7                                        |     r0 = r7;
    0x000043ec eor r2, r2, 1                                     |     r2 ^= 1;
    0x000043f0 blx 0x19d0                                        |     localtime_or_gmtime_r ();
    0x000043f4 mov r0, r4                                        |     r0 = r4;
    0x000043f6 blx 0x1b2c                                        |     r0 = clock_set_hwclock ();
    0x000043fa subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 < r0) {
    0x000043fc blt 0x44ae                                        |         goto label_54;
                                                                 |     }
                                                                 | label_12:
    0x000043fe mov r0, r7                                        |     r0 = r7;
    0x00004400 blx 0x1a3c                                        |     timespec_load ();
    0x00004404 movs r3, 0                                        |     r3 = 0;
    0x00004406 mov r5, r0                                        |     r5 = r0;
    0x00004408 mov r4, r1                                        |     r4 = r1;
    0x0000440a mov r2, r0                                        |     r2 = r0;
    0x0000440c str r3, [sp]                                      |     *(sp) = r3;
    0x0000440e add r0, sp, 0x74                                  |     r0 += var_74h;
    0x00004410 mov r3, r1                                        |     r3 = r1;
    0x00004412 movs r1, 0x26                                     |     r1 = 0x26;
    0x00004414 blx 0x19e8                                        |     format_timestamp_style ();
    0x00004416 invalid                                           |     
                                                                 |     if (r1 == 0x26) {
    0x0000441a beq 0x44d6                                        |         goto label_55;
                                                                 |     }
                                                                 | label_13:
    0x0000441c ldr r3, [pc, 0x134]                               |     
    0x0000441e str r0, [sp, 0x1c]                                |     var_1ch = r0;
    0x00004420 ldr r2, [pc, 0x134]                               |     
    0x00004422 add r3, pc                                        |     r3 = 0x897a;
    0x00004424 ldr r1, [pc, 0x134]                               |     
    0x00004426 str r3, [sp, 8]                                   |     var_18h_2 = r3;
    0x00004428 ldr r0, [pc, 0x134]                               |     
    0x0000442a add r2, pc                                        |     r2 = 0x8986;
    0x0000442c ldr r3, [pc, 0x134]                               |     
    0x0000442e add r1, pc                                        |     r1 = 0x898e;
    0x00004430 str r5, [sp, 0x10]                                |     var_10h_3 = r5;
    0x00004432 movs r5, 0                                        |     r5 = 0;
    0x00004434 add r0, pc                                        |     r0 = 0x8998;
    0x00004436 adds r2, 7                                        |     r2 += 7;
    0x00004438 add r3, pc                                        |     r3 = 0x89a0;
    0x0000443a str r0, [sp, 0x18]                                |     var_18h_4 = r0;
    0x0000443c strd r3, r1, [sp]                                 |     __asm ("strd r3, r1, [sp]");
    0x00004440 movs r0, 6                                        |     r0 = 6;
    0x00004442 mov r1, r5                                        |     r1 = r5;
    0x00004444 movw r3, 0x38e                                    |     r3 = 0x38e;
    0x00004448 str r4, [sp, 0x14]                                |     var_14h_2 = r4;
    0x0000444a str r5, [sp, 0x20]                                |     var_20h_2 = r5;
    0x0000444c blx 0x1d1c                                        |     fcn_00001d1c ();
    0x00004450 mov r1, r5                                        |     r1 = r5;
    0x00004452 mov r0, r6                                        |     r0 = r6;
    0x00004454 blx 0x1b5c                                        |     sd_bus_reply_method_return ();
    0x00004458 b 0x42c0                                          |     goto label_9;
                                                                 | label_51:
    0x0000445a mov r1, r7                                        |     r1 = r7;
    0x0000445c mov r0, r6                                        |     r0 = r6;
    0x0000445e blx 0x1b5c                                        |     sd_bus_reply_method_return ();
    0x00004462 b 0x42c0                                          |     goto label_9;
                                                                 | label_49:
    0x00004464 ldr r2, [pc, 0x100]                               |     
    0x00004466 mov r0, r5                                        |     r0 = r5;
    0x00004468 ldr r1, [pc, 0x100]                               |     
    0x0000446a add r2, pc                                        |     r2 = 0x89d6;
    0x0000446c add r1, pc                                        |     r1 = 0x89dc;
    0x0000446e blx 0x1c68                                        |     fcn_00001c68 ();
    0x00004472 b 0x42c0                                          |     goto label_9;
                                                                 | label_52:
    0x00004474 cmp r0, r2                                        |     
    0x00004476 sbcs r1, r3                                       |     __asm ("sbcs r1, r3");
    0x00004478 ite lo                                            |     
                                                                 |     if (r0 >= r2) {
    0x0000447a movlo r1, 1                                       |         r1 = 1;
                                                                 |     }
                                                                 |     if (r0 < r2) {
    0x0000447c movhs r1, 0                                       |         r1 = 0;
                                                                 |     }
    0x0000447e orrs.w r7, r7, ip                                 |     r7 |= ip;
    0x00004482 and r1, r1, 1                                     |     r1 &= 1;
    0x00004486 it eq                                             |     
                                                                 |     if (r7 != r7) {
    0x00004488 moveq r1, 0                                       |         r1 = 0;
                                                                 |     }
    0x0000448a cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0000448c beq.w 0x4288                                      |         goto label_10;
                                                                 |     }
    0x00004490 b 0x4386                                          |     goto label_11;
                                                                 | label_53:
    0x00004492 blx 0x1dac                                        |     r0 = fcn_00001dac ();
    0x00004496 mov r4, r0                                        |     r4 = r0;
    0x00004498 blx 0x1ab4                                        |     r0 = log_get_max_level ();
    0x0000449c cmp r0, 2                                         |     
    0x0000449e ldr r1, [r4]                                      |     r1 = *(r4);
                                                                 |     if (r0 > 2) {
    0x000044a0 bgt 0x44dc                                        |         goto label_56;
                                                                 |     }
                                                                 | label_14:
    0x000044a2 ldr r2, [pc, 0xcc]                                |     
    0x000044a4 mov r0, r5                                        |     r0 = r5;
    0x000044a6 add r2, pc                                        |     r2 = 0x8a1c;
    0x000044a8 blx 0x1dbc                                        |     fcn_00001dbc ();
    0x000044ac b 0x42c0                                          |     goto label_9;
                                                                 | label_54:
    0x000044ae blx 0x1ab4                                        |     r0 = log_get_max_level ();
    0x000044b2 cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x000044b4 ble 0x43fe                                        |         goto label_12;
                                                                 |     }
    0x000044b6 ldr r3, [pc, 0xbc]                                |     
    0x000044b8 mov r1, r4                                        |     r1 = r4;
    0x000044ba ldr r2, [pc, 0xbc]                                |     
    0x000044bc movs r0, 7                                        |     r0 = 7;
    0x000044be add r3, pc                                        |     r3 = 0x8a38;
    0x000044c0 str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x000044c2 add r2, pc                                        |     r2 = 0x8a40;
    0x000044c4 ldr r3, [pc, 0xb4]                                |     
    0x000044c6 adds r2, 7                                        |     r2 += 7;
    0x000044c8 add r3, pc                                        |     r3 = 0x8a48;
    0x000044ca str r3, [sp]                                      |     *(sp) = r3;
    0x000044cc mov.w r3, 0x38c                                   |     r3 = 0x38c;
    0x000044d0 blx 0x1bb0                                        |     log_internal ();
    0x000044d4 b 0x43fe                                          |     goto label_12;
                                                                 | label_55:
    0x000044d6 ldr r0, [pc, 0xa8]                                |     
    0x000044d8 add r0, pc                                        |     r0 = 0x8a5e;
    0x000044da b 0x441c                                          |     goto label_13;
                                                                 | label_56:
    0x000044dc ldr r3, [pc, 0xa4]                                |     
    0x000044de movs r0, 3                                        |     r0 = 3;
    0x000044e0 ldr r2, [pc, 0xa4]                                |     
    0x000044e2 add r3, pc                                        |     r3 = 0x8a6a;
    0x000044e4 str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x000044e6 add r2, pc                                        |     r2 = 0x8a72;
    0x000044e8 ldr r3, [pc, 0xa0]                                |     
    0x000044ea adds r2, 7                                        |     r2 += 7;
    0x000044ec add r3, pc                                        |     r3 = 0x8a7c;
    0x000044ee str r3, [sp]                                      |     *(sp) = r3;
    0x000044f0 movw r3, 0x383                                    |     r3 = 0x383;
    0x000044f4 blx 0x1bb0                                        |     log_internal ();
    0x000044f8 ldr r1, [r4]                                      |     r1 = *(r4);
    0x000044fa b 0x44a2                                          |     goto label_14;
                                                                 | label_45:
    0x000044fc blx 0x1bd4                                        |     stack_chk_fail ();
    0x00004500 cmp r4, 0x20                                      |     
    0x00004502 movs r0, r0                                       |     
    0x00004504 lsls r0, r6, 6                                    |     r0 = r6 << 6;
    0x00004506 movs r0, r0                                       |     
    0x00004508 cmp r3, 0xfe                                      |     
    0x0000450a movs r0, r0                                       |     
    0x0000450c lsrs r2, r3, 0x17                                 |     r2 = r3 >> 0x17;
    0x0000450e movs r0, r0                                       |     
    0x00004510 lsrs r4, r0, 0x18                                 |     r4 = r0 >> 0x18;
    0x00004512 movs r0, r0                                       |     
    0x00004514 lsrs r2, r1, 0x19                                 |     r2 = r1 >> 0x19;
    0x00004516 movs r0, r0                                       |     
    0x00004518 lsrs r0, r0, 0x19                                 |     r0 >>= 0x19;
    0x0000451a movs r0, r0                                       |     
    0x0000451c cmp r3, 0x50                                      |     
    0x0000451e movs r0, r0                                       |     
    0x00004520 cmp r3, 0x34                                      |     
    0x00004522 movs r0, r0                                       |     
    0x00004524 lsrs r0, r2, 0x16                                 |     r0 = r2 >> 0x16;
    0x00004526 movs r0, r0                                       |     
    0x00004528 lsrs r2, r7, 0x14                                 |     r2 = r7 >> 0x14;
    0x0000452a movs r0, r0                                       |     
    0x0000452c lsls r4, r1, 0x18                                 |     r4 = r1 << 0x18;
    0x0000452e movs r0, r0                                       |     
    0x00004530 asrs r2, r1, 0x14                                 |     r2 = r1 >> 0x14;
    0x00004532 movs r0, r0                                       |     
    0x00004534 lsrs r6, r7, 0x18                                 |     r6 = r7 >> 0x18;
    0x00004536 movs r0, r0                                       |     
    0x00004538 cmp r2, 0xf4                                      |     
    0x0000453a movs r0, r0                                       |     
    0x0000453c lsrs r2, r6, 0x14                                 |     r2 = r6 >> 0x14;
    0x0000453e movs r0, r0                                       |     
    0x00004540 lsls r0, r2, 0x17                                 |     r0 = r2 << 0x17;
    0x00004542 movs r0, r0                                       |     
    0x00004544 asrs r6, r1, 0x13                                 |     r6 = r1 >> 0x13;
    0x00004546 movs r0, r0                                       |     
    0x00004548 lsls r2, r2, 0x1c                                 |     r2 <<= 0x1c;
    0x0000454a movs r0, r0                                       |     
    0x0000454c lsrs r4, r0, 0x15                                 |     r4 = r0 >> 0x15;
    0x0000454e movs r0, r0                                       |     
    0x00004550 lsls r6, r0, 0x1c                                 |     r6 = r0 << 0x1c;
    0x00004552 movs r0, r0                                       |     
    0x00004554 lsrs r2, r3, 0x15                                 |     r2 = r3 >> 0x15;
    0x00004556 movs r0, r0                                       |     
    0x00004558 lsls r2, r6, 0x13                                 |     r2 = r6 << 0x13;
    0x0000455a movs r0, r0                                       |     
    0x0000455c lsrs r6, r3, 0x15                                 |     r6 = r3 >> 0x15;
    0x0000455e movs r0, r0                                       |     
    0x00004560 lsrs r4, r4, 0x14                                 |     r4 >>= 0x14;
    0x00004562 movs r0, r0                                       |     
    0x00004564 asrs r4, r2, 0xf                                  |     r4 = r2 >> 0xf;
    0x00004566 movs r0, r0                                       |     
    0x00004568 lsrs r6, r1, 0x11                                 |     r6 = r1 >> 0x11;
    0x0000456a movs r0, r0                                       |     
    0x0000456c lsls r0, r5, 0x18                                 |     r0 = r5 << 0x18;
    0x0000456e movs r0, r0                                       |     
    0x00004570 lsrs r2, r4, 0x11                                 |     r2 = r4 >> 0x11;
    0x00004572 movs r0, r0                                       |     
    0x00004574 lsrs r2, r5, 0x11                                 |     r2 = r5 >> 0x11;
    0x00004576 movs r0, r0                                       |     
    0x00004578 lsls r2, r3, 0x11                                 |     r2 = r3 << 0x11;
    0x0000457a movs r0, r0                                       |     
    0x0000457c asrs r4, r0, 0xd                                  |     r4 = r0 >> 0xd;
    0x0000457e movs r0, r0                                       |     
    0x00004580 lsrs r0, r5, 0xc                                  |     r0 = r5 >> 0xc;
    0x00004582 movs r0, r0                                       |     
    0x00004584 lsrs r6, r4, 0x10                                 |     r6 = r4 >> 0x10;
    0x00004586 movs r0, r0                                       |     
    0x00004588 lsls r6, r6, 0x10                                 |     r6 <<= 0x10;
    0x0000458a movs r0, r0                                       |     
    0x0000458c asrs r0, r4, 0xc                                  |     r0 = r4 >> 0xc;
    0x0000458e movs r0, r0                                       |     
    0x00004590 push {r3, r4, r5, lr}                             |     
    0x00004592 ldrd r5, r4, [sp, 0x10]                           |     __asm ("ldrd r5, r4, [var_10h]");
    0x00004596 ldr r2, [sp, 0x18]                                |     r2 = var_18h_2;
                                                                 |     if (r4 != 0) {
    0x00004598 cbz r4, 0x45ea                                    |         
                                                                 |         if (r0 == 0) {
    0x0000459a cbz r0, 0x4600                                    |             goto label_57;
                                                                 |         }
    0x0000459c cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0000459e beq 0x4616                                        |             goto label_58;
                                                                 |         }
    0x000045a0 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x000045a2 beq 0x462c                                        |             goto label_59;
                                                                 |         }
    0x000045a4 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x000045a6 beq 0x4642                                        |             goto label_60;
                                                                 |         }
    0x000045a8 ldr r3, [r4, 0x10]                                |         r3 = *((r4 + 0x10));
                                                                 |         if (r3 != 0) {
    0x000045aa cbz r3, 0x45bc                                    |             
    0x000045ac ldr r1, [pc, 0xa8]                                |             
    0x000045ae mov r0, r5                                        |             r0 = r5;
    0x000045b0 movs r2, 1                                        |             r2 = 1;
    0x000045b2 pop.w {r3, r4, r5, lr}                            |             
    0x000045b6 add r1, pc                                        |             r1 = 0x8c12;
    0x000045b8 b.w 0x1df8                                        |             goto label_15;
                                                                 |         }
    0x000045bc mov r1, r0                                        |         r1 = r0;
    0x000045be mov r2, r5                                        |         r2 = r5;
    0x000045c0 mov r0, r4                                        |         r0 = r4;
    0x000045c2 bl 0x3c3c                                         |         r0 = fcn_00003c3c (r0, r1, r2, r3);
    0x000045c6 cmp r0, 0                                         |         
                                                                 |         if (r0 >= 0) {
    0x000045c8 blt 0x45e8                                        |             
    0x000045ca mov r0, r4                                        |             r0 = r4;
    0x000045cc bl 0x3170                                         |             fcn_00003170 (r0);
    0x000045d0 ldr r1, [pc, 0x88]                                |             
    0x000045d2 cmp r0, 0                                         |             
    0x000045d4 it le                                             |             
                                                                 |             if (r0 > 0) {
    0x000045d6 movle r2, 0                                       |                 r2 = 0;
                                                                 |             }
    0x000045d8 mov r0, r5                                        |             r0 = r5;
    0x000045da it gt                                             |             
                                                                 |             if (r0 <= 0) {
    0x000045dc movgt r2, 1                                       |                 r2 = 1;
                                                                 |             }
    0x000045de pop.w {r3, r4, r5, lr}                            |             
    0x000045e2 add r1, pc                                        |             r1 = 0x8c42;
    0x000045e4 b.w 0x1df8                                        |             goto label_15;
                                                                 |         }
    0x000045e8 pop {r3, r4, r5, pc}                              |         
                                                                 |     }
    0x000045ea ldr r1, [pc, 0x74]                                |     
    0x000045ec movw r2, 0x283                                    |     r2 = 0x283;
    0x000045f0 ldr r3, [pc, 0x70]                                |     
    0x000045f2 ldr r0, [pc, 0x74]                                |     
    0x000045f4 add r1, pc                                        |     r1 = 0x8c5a;
    0x000045f6 add r3, pc                                        |     r3 = 0x8c5e;
    0x000045f8 adds r1, 7                                        |     r1 += 7;
    0x000045fa add r0, pc                                        |     r0 = 0x8c68;
    0x000045fc blx 0x19ac                                        |     log_assert_failed ();
                                                                 | label_57:
    0x00004600 ldr r1, [pc, 0x68]                                |     
    0x00004602 mov.w r2, 0x284                                   |     r2 = 0x284;
    0x00004606 ldr r3, [pc, 0x68]                                |     
    0x00004608 ldr r0, [pc, 0x68]                                |     
    0x0000460a add r1, pc                                        |     r1 = 0x8c7a;
    0x0000460c add r3, pc                                        |     r3 = 0x8c82;
    0x0000460e adds r1, 7                                        |     r1 += 7;
    0x00004610 add r0, pc                                        |     r0 = 0x8c88;
    0x00004612 blx 0x19ac                                        |     log_assert_failed ();
                                                                 | label_58:
    0x00004616 ldr r1, [pc, 0x60]                                |     
    0x00004618 movw r2, 0x285                                    |     r2 = 0x285;
    0x0000461c ldr r3, [pc, 0x5c]                                |     
    0x0000461e ldr r0, [pc, 0x60]                                |     
    0x00004620 add r1, pc                                        |     r1 = 0x8c9e;
    0x00004622 add r3, pc                                        |     r3 = 0x8ca2;
    0x00004624 adds r1, 7                                        |     r1 += 7;
    0x00004626 add r0, pc                                        |     r0 = 0x8cac;
    0x00004628 blx 0x19ac                                        |     log_assert_failed ();
                                                                 | label_59:
    0x0000462c ldr r1, [pc, 0x54]                                |     
    0x0000462e movw r2, 0x286                                    |     r2 = 0x286;
    0x00004632 ldr r3, [pc, 0x54]                                |     
    0x00004634 ldr r0, [pc, 0x54]                                |     
    0x00004636 add r1, pc                                        |     r1 = 0x8cbe;
    0x00004638 add r3, pc                                        |     r3 = 0x8cc6;
    0x0000463a adds r1, 7                                        |     r1 += 7;
    0x0000463c add r0, pc                                        |     r0 = 0x8ccc;
    0x0000463e blx 0x19ac                                        |     log_assert_failed ();
                                                                 | label_60:
    0x00004642 ldr r1, [pc, 0x4c]                                |     
    0x00004644 movw r2, 0x287                                    |     r2 = 0x287;
    0x00004648 ldr r3, [pc, 0x48]                                |     
    0x0000464a ldr r0, [pc, 0x4c]                                |     
    0x0000464c add r1, pc                                        |     r1 = 0x8ce2;
    0x0000464e add r3, pc                                        |     r3 = 0x8ce6;
    0x00004650 adds r1, 7                                        |     r1 += 7;
    0x00004652 add r0, pc                                        |     r0 = 0x8cf0;
    0x00004654 blx 0x19ac                                        |     r0 = log_assert_failed ();
    0x00004658 lsls r6, r0, 0x1f                                 |     r6 = r0 << 0x1f;
    0x0000465a movs r0, r0                                       |     
    0x0000465c lsls r2, r3, 0x1e                                 |     r2 = r3 << 0x1e;
    0x0000465e movs r0, r0                                       |     
    0x00004660 lsls r0, r5, 0xc                                  |     r0 = r5 << 0xc;
    0x00004662 movs r0, r0                                       |     
    0x00004664 asrs r6, r3, 6                                    |     r6 = r3 >> 6;
    0x00004666 movs r0, r0                                       |     
    0x00004668 lsls r2, r5, 0x11                                 |     r2 = r5 << 0x11;
    0x0000466a movs r0, r0                                       |     
    0x0000466c lsls r2, r2, 0xc                                  |     r2 <<= 0xc;
    0x0000466e movs r0, r0                                       |     
    0x00004670 asrs r0, r1, 6                                    |     r0 = r1 >> 6;
    0x00004672 movs r0, r0                                       |     
    0x00004674 lsls r0, r1, 0xd                                  |     r0 = r1 << 0xd;
    0x00004676 movs r0, r0                                       |     
    0x00004678 lsls r4, r7, 0xb                                  |     r4 = r7 << 0xb;
    0x0000467a movs r0, r0                                       |     
    0x0000467c asrs r2, r6, 5                                    |     r2 = r6 >> 5;
    0x0000467e movs r0, r0                                       |     
    0x00004680 lsrs r2, r2, 0xe                                  |     r2 >>= 0xe;
    0x00004682 movs r0, r0                                       |     
    0x00004684 lsls r6, r4, 0xb                                  |     r6 = r4 << 0xb;
    0x00004686 movs r0, r0                                       |     
    0x00004688 asrs r4, r3, 5                                    |     r4 = r3 >> 5;
    0x0000468a movs r0, r0                                       |     
    0x0000468c lsls r0, r7, 0x1c                                 |     r0 = r7 << 0x1c;
    0x0000468e movs r0, r0                                       |     
    0x00004690 lsls r0, r2, 0xb                                  |     r0 = r2 << 0xb;
    0x00004692 movs r0, r0                                       |     
    0x00004694 asrs r6, r0, 5                                    |     r6 = r0 >> 5;
    0x00004696 movs r0, r0                                       |     
    0x00004698 lsls r2, r1, 0xc                                  |     r2 = r1 << 0xc;
    0x0000469a movs r0, r0                                       |     
    0x0000469c push {r3, r4, r5, lr}                             |     
    0x0000469e ldrd r5, r4, [sp, 0x10]                           |     __asm ("ldrd r5, r4, [var_10h_2]");
    0x000046a2 ldr r2, [sp, 0x18]                                |     r2 = var_18h_3;
                                                                 |     if (r4 != 0) {
    0x000046a4 cbz r4, 0x46f6                                    |         
                                                                 |         if (r0 == 0) {
    0x000046a6 cbz r0, 0x470c                                    |             goto label_61;
                                                                 |         }
    0x000046a8 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x000046aa beq 0x4722                                        |             goto label_62;
                                                                 |         }
    0x000046ac cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x000046ae beq 0x4738                                        |             goto label_63;
                                                                 |         }
    0x000046b0 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x000046b2 beq 0x474e                                        |             goto label_64;
                                                                 |         }
    0x000046b4 ldr r3, [r4, 0x10]                                |         r3 = *((r4 + 0x10));
                                                                 |         if (r3 != 0) {
    0x000046b6 cbz r3, 0x46c8                                    |             
    0x000046b8 ldr r1, [pc, 0xa8]                                |             
    0x000046ba mov r0, r5                                        |             r0 = r5;
    0x000046bc movs r2, 1                                        |             r2 = 1;
    0x000046be pop.w {r3, r4, r5, lr}                            |             
    0x000046c2 add r1, pc                                        |             r1 = 0x8e2a;
    0x000046c4 b.w 0x1df8                                        |             goto label_15;
                                                                 |         }
    0x000046c8 mov r1, r0                                        |         r1 = r0;
    0x000046ca mov r2, r5                                        |         r2 = r5;
    0x000046cc mov r0, r4                                        |         r0 = r4;
    0x000046ce bl 0x3c3c                                         |         r0 = fcn_00003c3c (r0, r1, r2, r3);
    0x000046d2 cmp r0, 0                                         |         
                                                                 |         if (r0 >= 0) {
    0x000046d4 blt 0x46f4                                        |             
    0x000046d6 mov r0, r4                                        |             r0 = r4;
    0x000046d8 bl 0x3be0                                         |             fcn_00003be0 (r0);
    0x000046dc ldr r1, [pc, 0x88]                                |             
    0x000046de cmp r0, 0                                         |             
    0x000046e0 it le                                             |             
                                                                 |             if (r0 > 0) {
    0x000046e2 movle r2, 0                                       |                 r2 = 0;
                                                                 |             }
    0x000046e4 mov r0, r5                                        |             r0 = r5;
    0x000046e6 it gt                                             |             
                                                                 |             if (r0 <= 0) {
    0x000046e8 movgt r2, 1                                       |                 r2 = 1;
                                                                 |             }
    0x000046ea pop.w {r3, r4, r5, lr}                            |             
    0x000046ee add r1, pc                                        |             r1 = 0x8e5a;
    0x000046f0 b.w 0x1df8                                        |             goto label_15;
                                                                 |         }
    0x000046f4 pop {r3, r4, r5, pc}                              |         
                                                                 |     }
    0x000046f6 ldr r1, [pc, 0x74]                                |     
    0x000046f8 movw r2, 0x266                                    |     r2 = 0x266;
    0x000046fc ldr r3, [pc, 0x70]                                |     
    0x000046fe ldr r0, [pc, 0x74]                                |     
    0x00004700 add r1, pc                                        |     r1 = 0x8e72;
    0x00004702 add r3, pc                                        |     r3 = 0x8e76;
    0x00004704 adds r1, 7                                        |     r1 += 7;
    0x00004706 add r0, pc                                        |     r0 = 0x8e80;
    0x00004708 blx 0x19ac                                        |     log_assert_failed ();
                                                                 | label_61:
    0x0000470c ldr r1, [pc, 0x68]                                |     
    0x0000470e movw r2, 0x267                                    |     r2 = 0x267;
    0x00004712 ldr r3, [pc, 0x68]                                |     
    0x00004714 ldr r0, [pc, 0x68]                                |     
    0x00004716 add r1, pc                                        |     r1 = 0x8e92;
    0x00004718 add r3, pc                                        |     r3 = 0x8e9a;
    0x0000471a adds r1, 7                                        |     r1 += 7;
    0x0000471c add r0, pc                                        |     r0 = 0x8ea0;
    0x0000471e blx 0x19ac                                        |     log_assert_failed ();
                                                                 | label_62:
    0x00004722 ldr r1, [pc, 0x60]                                |     
    0x00004724 mov.w r2, 0x268                                   |     r2 = 0x268;
    0x00004728 ldr r3, [pc, 0x5c]                                |     
    0x0000472a ldr r0, [pc, 0x60]                                |     
    0x0000472c add r1, pc                                        |     r1 = 0x8eb6;
    0x0000472e add r3, pc                                        |     r3 = 0x8eba;
    0x00004730 adds r1, 7                                        |     r1 += 7;
    0x00004732 add r0, pc                                        |     r0 = 0x8ec4;
    0x00004734 blx 0x19ac                                        |     log_assert_failed ();
                                                                 | label_63:
    0x00004738 ldr r1, [pc, 0x54]                                |     
    0x0000473a movw r2, 0x269                                    |     r2 = 0x269;
    0x0000473e ldr r3, [pc, 0x54]                                |     
    0x00004740 ldr r0, [pc, 0x54]                                |     
    0x00004742 add r1, pc                                        |     r1 = 0x8ed6;
    0x00004744 add r3, pc                                        |     r3 = 0x8ede;
    0x00004746 adds r1, 7                                        |     r1 += 7;
    0x00004748 add r0, pc                                        |     r0 = 0x8ee4;
    0x0000474a blx 0x19ac                                        |     log_assert_failed ();
                                                                 | label_64:
    0x0000474e ldr r1, [pc, 0x4c]                                |     
    0x00004750 movw r2, 0x26a                                    |     r2 = 0x26a;
    0x00004754 ldr r3, [pc, 0x48]                                |     
    0x00004756 ldr r0, [pc, 0x4c]                                |     
    0x00004758 add r1, pc                                        |     r1 = 0x8efa;
    0x0000475a add r3, pc                                        |     r3 = 0x8efe;
    0x0000475c adds r1, 7                                        |     r1 += 7;
    0x0000475e add r0, pc                                        |     r0 = 0x8f08;
    0x00004760 blx 0x19ac                                        |     log_assert_failed ();
    0x00004764 lsls r2, r7, 0x1a                                 |     r2 = r7 << 0x1a;
    0x00004766 movs r0, r0                                       |     
    0x00004768 lsls r6, r1, 0x1a                                 |     r6 = r1 << 0x1a;
    0x0000476a movs r0, r0                                       |     
    0x0000476c lsls r4, r3, 8                                    |     r4 = r3 << 8;
    0x0000476e movs r0, r0                                       |     
    0x00004770 asrs r2, r7, 1                                    |     r2 = r7 >> 1;
    0x00004772 movs r0, r0                                       |     
    0x00004774 lsls r6, r3, 0xd                                  |     r6 = r3 << 0xd;
    0x00004776 movs r0, r0                                       |     
    0x00004778 lsls r6, r0, 8                                    |     r6 = r0 << 8;
    0x0000477a movs r0, r0                                       |     
    0x0000477c asrs r4, r4, 1                                    |     r4 >>= 1;
    0x0000477e movs r0, r0                                       |     
    0x00004780 lsls r4, r7, 8                                    |     r4 = r7 << 8;
    0x00004782 movs r0, r0                                       |     
    0x00004784 lsls r0, r6, 7                                    |     r0 = r6 << 7;
    0x00004786 movs r0, r0                                       |     
    0x00004788 asrs r6, r1, 1                                    |     r6 = r1 >> 1;
    0x0000478a movs r0, r0                                       |     
    0x0000478c lsrs r6, r0, 0xa                                  |     r6 = r0 >> 0xa;
    0x0000478e movs r0, r0                                       |     
    0x00004790 lsls r2, r3, 7                                    |     r2 = r3 << 7;
    0x00004792 movs r0, r0                                       |     
    0x00004794 asrs r0, r7, 0x20                                 |     r0 = r7 >> 0x20;
    0x00004796 movs r0, r0                                       |     
    0x00004798 lsls r4, r5, 0x18                                 |     r4 = r5 << 0x18;
    0x0000479a movs r0, r0                                       |     
    0x0000479c lsls r4, r0, 7                                    |     r4 = r0 << 7;
    0x0000479e movs r0, r0                                       |     
    0x000047a0 asrs r2, r4, 0x20                                 |     r2 = r4 >> 0x20;
    0x000047a2 movs r0, r0                                       |     
    0x000047a4 lsls r6, r7, 7                                    |     r6 = r7 << 7;
    0x000047a6 movs r0, r0                                       |     
    0x000047a8 ldr r2, [pc, 0x11c]                               |     
    0x000047aa ldr r3, [pc, 0x120]                               |     r3 = *(0x48ce);
    0x000047ac push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000047b0 sub sp, 0x14                                      |     
    0x000047b2 add r2, pc                                        |     r2 = 0x907e;
    0x000047b4 ldr r3, [r2, r3]                                  |     
    0x000047b6 ldr r3, [r3]                                      |     r3 = *(0x907e);
    0x000047b8 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x000047ba mov.w r3, 0                                       |     r3 = 0;
    0x000047be cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x000047c0 beq 0x4898                                        |         goto label_65;
                                                                 |     }
    0x000047c2 mov sb, r0                                        |     sb = r0;
    0x000047c4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000047c6 beq 0x48ae                                        |         goto label_66;
                                                                 |     }
    0x000047c8 mov r8, r1                                        |     r8 = r1;
    0x000047ca ldr r1, [pc, 0x104]                               |     
    0x000047cc movs r7, 0                                        |     r7 = 0;
    0x000047ce add r3, sp, 8                                     |     r3 += var_8h_2;
    0x000047d0 mov r2, r7                                        |     r2 = r7;
    0x000047d2 strd r7, r7, [sp]                                 |     __asm ("strd r7, r7, [sp]");
    0x000047d6 add r1, pc                                        |     r1 = 0x90ac;
    0x000047d8 blx 0x1cbc                                        |     r0 = fcn_00001cbc ();
    0x000047dc subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 < r0) {
    0x000047de blt 0x4848                                        |         goto label_67;
                                                                 |     }
    0x000047e0 ldr.w r4, [r8, 0x14]                              |     r4 = *((r8 + 0x14));
    0x000047e4 mov sl, r7                                        |     sl = r7;
    0x000047e6 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x000047e8 beq 0x4870                                        |         goto label_68;
                                                                 |     }
                                                                 |     do {
                                                                 | label_17:
    0x000047ea ldr r5, [r4, 0x10]                                |         r5 = *((r4 + 0x10));
    0x000047ec mov fp, r4                                        |         
    0x000047ee ldr r0, [sp, 8]                                   |         r0 = var_8h_2;
    0x000047f0 ldr r4, [r4, 0x14]                                |         r4 = *((r4 + 0x14));
    0x000047f2 subs r6, r5, 0                                    |         r6 = r5 - 0;
    0x000047f4 it ne                                             |         
                                                                 |         if (r6 == r5) {
    0x000047f6 movne r6, 1                                       |             r6 = 1;
                                                                 |         }
    0x000047f8 cmp r0, 0                                         |         
    0x000047fa ite eq                                            |         
                                                                 |         if (r0 != 0) {
    0x000047fc moveq r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r0 == 0) {
    0x000047fe andne r3, r6, 1                                   |             r3 = r6 & 1;
                                                                 |         }
                                                                 |         if (r3 != 0) {
    0x00004802 cbnz r3, 0x482e                                   |             goto label_69;
                                                                 |         }
    0x00004804 cmp r0, r5                                        |         
                                                                 |         if (r0 > r5) {
    0x00004806 blo 0x480a                                        |             
                                                                 |             if (r0 == r5) {
    0x00004808 beq 0x4838                                        |                 goto label_70;
                                                                 |             }
                                                                 |         }
                                                                 | label_16:
    0x0000480a add r7, r6                                        |         r7 += r6;
    0x0000480c cmp r4, 0                                         |         
    0x0000480e bne 0x47ea                                        |         
                                                                 |     } while (r4 != 0);
                                                                 |     if (r7 == 0) {
                                                                 | label_18:
    0x00004810 cbz r7, 0x4870                                    |         goto label_68;
                                                                 |     }
                                                                 | label_19:
    0x00004812 ldr r2, [pc, 0xc0]                                |     
    0x00004814 ldr r3, [pc, 0xb4]                                |     r3 = *(0x48cc);
    0x00004816 add r2, pc                                        |     r2 = 0x90f0;
    0x00004818 ldr r3, [r2, r3]                                  |     r3 = *(0x90f0);
    0x0000481a ldr r2, [r3]                                      |     r2 = *(0x90f0);
    0x0000481c ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0000481e eors r2, r3                                       |     r2 ^= r3;
    0x00004820 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00004824 bne 0x48c4                                        |         goto label_71;
                                                                 |     }
    0x00004826 movs r0, 0                                        |     r0 = 0;
    0x00004828 add sp, 0x14                                      |     
    0x0000482a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_69:
    0x0000482e mov r1, r5                                        |     r1 = r5;
    0x00004830 blx 0x1d94                                        |     r0 = fcn_00001d94 ();
    0x00004834 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00004836 bne 0x480a                                        |         goto label_16;
                                                                 |     }
                                                                 | label_70:
    0x00004838 mov r0, r5                                        |     r0 = r5;
    0x0000483a blx 0x19dc                                        |     free (r0);
    0x0000483e str.w sl, [fp, 0x10]                              |     __asm ("str.w sl, [arg_10h]");
    0x00004842 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00004844 bne 0x47ea                                        |         goto label_17;
                                                                 |     }
    0x00004846 b 0x4810                                          |     goto label_18;
                                                                 | label_67:
    0x00004848 blx 0x1ab4                                        |     r0 = log_get_max_level ();
    0x0000484c cmp r0, 2                                         |     
                                                                 |     if (r0 <= 2) {
    0x0000484e ble 0x4812                                        |         goto label_19;
                                                                 |     }
    0x00004850 ldr r2, [pc, 0x84]                                |     
    0x00004852 mov.w r3, 0x1cc                                   |     r3 = 0x1cc;
    0x00004856 ldr r5, [pc, 0x84]                                |     
    0x00004858 mov r1, r4                                        |     r1 = r4;
    0x0000485a ldr r0, [pc, 0x84]                                |     
    0x0000485c add r2, pc                                        |     r2 = 0x9138;
    0x0000485e add r5, pc                                        |     r5 = 0x9140;
    0x00004860 adds r2, 7                                        |     r2 += 7;
    0x00004862 add r0, pc                                        |     r0 = 0x9148;
    0x00004864 strd r0, r5, [sp]                                 |     __asm ("strd r0, r5, [sp]");
    0x00004868 movs r0, 3                                        |     r0 = 3;
    0x0000486a blx 0x1bb0                                        |     log_internal ();
    0x0000486e b 0x4812                                          |     goto label_19;
                                                                 | label_68:
    0x00004870 ldr.w r0, [r8, 0x10]                              |     r0 = *((r8 + 0x10));
    0x00004874 movs r4, 0                                        |     r4 = 0;
    0x00004876 blx 0x1d4c                                        |     fcn_00001d4c ();
    0x0000487a str.w r0, [r8, 0x10]                              |     __asm ("str.w r0, [r8, 0x10]");
    0x0000487e mov r0, sb                                        |     r0 = sb;
    0x00004880 blx 0x1d70                                        |     fcn_00001d70 ();
    0x00004884 ldr r3, [pc, 0x5c]                                |     
    0x00004886 ldr r2, [pc, 0x60]                                |     
    0x00004888 ldr r1, [pc, 0x60]                                |     
    0x0000488a add r3, pc                                        |     r3 = 0x9172;
    0x0000488c str r4, [sp]                                      |     *(sp) = r4;
    0x0000488e add r2, pc                                        |     r2 = 0x917c;
    0x00004890 add r1, pc                                        |     r1 = 0x9180;
    0x00004892 blx 0x1d7c                                        |     fcn_00001d7c ();
    0x00004896 b 0x4812                                          |     goto label_19;
                                                                 | label_65:
    0x00004898 ldr r1, [pc, 0x54]                                |     
    0x0000489a movw r2, 0x1c7                                    |     r2 = 0x1c7;
    0x0000489e ldr r3, [pc, 0x54]                                |     
    0x000048a0 ldr r0, [pc, 0x54]                                |     
    0x000048a2 add r1, pc                                        |     r1 = 0x9196;
    0x000048a4 add r3, pc                                        |     r3 = 0x919e;
    0x000048a6 adds r1, 7                                        |     r1 += 7;
    0x000048a8 add r0, pc                                        |     r0 = 0x91a4;
    0x000048aa blx 0x19ac                                        |     log_assert_failed ();
                                                                 | label_66:
    0x000048ae ldr r1, [pc, 0x4c]                                |     
    0x000048b0 mov.w r2, 0x1c8                                   |     r2 = 0x1c8;
    0x000048b4 ldr r3, [pc, 0x48]                                |     
    0x000048b6 ldr r0, [pc, 0x4c]                                |     
    0x000048b8 add r1, pc                                        |     r1 = 0x91ba;
    0x000048ba add r3, pc                                        |     r3 = 0x91be;
    0x000048bc adds r1, 7                                        |     r1 += 7;
    0x000048be add r0, pc                                        |     r0 = 0x91c8;
    0x000048c0 blx 0x19ac                                        |     log_assert_failed ();
                                                                 | label_71:
    0x000048c4 blx 0x1bd4                                        |     stack_chk_fail ();
    0x000048c8 movs r6, 0x62                                     |     r6 = 0x62;
    0x000048ca movs r0, r0                                       |     
    0x000048cc lsls r0, r6, 6                                    |     r0 = r6 << 6;
    0x000048ce movs r0, r0                                       |     
    0x000048d0 lsrs r6, r5, 7                                    |     r6 = r5 >> 7;
    0x000048d2 movs r0, r0                                       |     
    0x000048d4 movs r5, 0xfe                                     |     r5 = 0xfe;
    0x000048d6 movs r0, r0                                       |     
    0x000048d8 lsls r0, r0, 3                                    |     r0 <<= 3;
    0x000048da movs r0, r0                                       |     
    0x000048dc lsls r6, r4, 6                                    |     r6 = r4 << 6;
    0x000048de movs r0, r0                                       |     
    0x000048e0 asrs r6, r1, 3                                    |     r6 = r1 >> 3;
    0x000048e2 movs r0, r0                                       |     
    0x000048e4 lsrs r2, r0, 5                                    |     r2 = r0 >> 5;
    0x000048e6 movs r0, r0                                       |     
    0x000048e8 lsls r2, r6, 0xf                                  |     r2 = r6 << 0xf;
    0x000048ea movs r0, r0                                       |     
    0x000048ec lsls r4, r1, 0x10                                 |     r4 = r1 << 0x10;
    0x000048ee movs r0, r0                                       |     
    0x000048f0 lsls r2, r7, 1                                    |     r2 = r7 << 1;
    0x000048f2 movs r0, r0                                       |     
    0x000048f4 asrs r0, r4, 2                                    |     r0 = r4 >> 2;
    0x000048f6 movs r0, r0                                       |     
    0x000048f8 lsls r4, r7, 6                                    |     r4 = r7 << 6;
    0x000048fa movs r0, r0                                       |     
    0x000048fc lsls r4, r4, 1                                    |     r4 <<= 1;
    0x000048fe movs r0, r0                                       |     
    0x00004900 asrs r2, r1, 2                                    |     r2 = r1 >> 2;
    0x00004902 movs r0, r0                                       |     
    0x00004904 lsrs r6, r2, 2                                    |     r6 = r2 >> 2;
    0x00004906 movs r0, r0                                       |     
                                                                 |     /* [14] -r-x section size 8 named .fini */
    0x00004908 ands r0, r1                                       |     r0 &= r1;
    0x0000490a invalid                                           |     
                                                                 | }

[*] Function system used 3 times systemd-timedated